Data Integrity Enhancement to Protect Against Returning Old Versions of Data
First Claim
1. A method of enhancing data integrity, the method comprising:
- receiving, at a storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host;
mapping, using a mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and
performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including;
generating metadata for the subset, the metadata including a version number for the subset;
calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and
storing the version number for the subset and the first CRC checksum for the subset in a version data structure.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enhance data integrity to protect against returning old versions of data. In one aspect, a method includes (1) receiving a write request from a host that specifies write data for a set of logical block addresses, (2) mapping, using a mapping table, the set of logical block addresses to a set of physical addresses, where the mapping table includes a plurality of subsets, and (3) performing operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the set of logical block addresses, including: (a) generating metadata for the subset, the metadata including a version number for the subset, (b) calculating a Cyclic Redundancy Check (CRC) checksum for the subset, and (c) storing the version number for the subset and the CRC checksum for the subset in a version data structure.
22 Citations
19 Claims
-
1. A method of enhancing data integrity, the method comprising:
-
receiving, at a storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host; mapping, using a mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including; generating metadata for the subset, the metadata including a version number for the subset; calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and storing the version number for the subset and the first CRC checksum for the subset in a version data structure. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A storage device, comprising:
-
a storage medium; memory distinct from the storage medium, the memory storing a mapping table, the mapping table including information for mapping logical addresses in a logic address space of a host to physical addresses in a physical address space of the storage system; and a storage controller having one or more processors configured to execute instructions in one or more programs, wherein the storage controller is configured to perform operations comprising; receiving, at the storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host; mapping, using the mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including; generating metadata for the subset, the metadata including a version number for the subset; calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and storing the version number for the subset and the first CRC checksum for the subset in a version data structure. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a storage device, the one or more programs including instructions for:
receiving, at the storage device, a write request from a host, wherein the write request specifies write data for a first set of one or more logical block addresses in a logical address space of the host; mapping, using a mapping table, the first set of one or more logical block addresses associated with the write request to a first set of one or more physical addresses of the storage device, wherein the mapping table includes a plurality of subsets, each subset having entries corresponding to a group of contiguous logical blocks in the logical address space of the host; and performing one or more operations for each subset of the mapping table that includes at least one entry corresponding to a logical block specified by the first set of one or more logical block addresses, including; generating metadata for the subset, the metadata including a version number for the subset; calculating a first Cyclic Redundancy Check (CRC) checksum for the subset; and storing the version number for the subset and the first CRC checksum for the subset in a version data structure. - View Dependent Claims (15, 16, 17, 18, 19)
Specification