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, the first set of one or more physical addresses corresponding to one or more physical pages of the storage device; and
performing one or more operations for each logical block specified by the first set of one or more logical block addresses, including;
generating metadata for the logical block, the metadata including a version number for the logical block;
storing the metadata, including the version number, for the logical block in a header of a physical page in which the logical block is stored; and
storing the version number for the logical block in a version data structure.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods and/or devices are used to enable enhancing data integrity to protect against returning old versions of data. In one aspect, the method includes (1) receiving a write request from a host that specifies write data for a set of logical block addresses in a logical address space of the host, (2) mapping the set of logical block addresses to a set of physical addresses corresponding to physical pages of the storage device, and (3) performing one or more operations for each logical block specified by the set of logical block addresses, including: (a) generating metadata for the logical block, the metadata including a version number for the logical block, (b) storing the metadata, including the version number, in a header of a physical page in which the logical block is stored, and (c) storing the version number in a version data structure.
15 Citations
25 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, the first set of one or more physical addresses corresponding to one or more physical pages of the storage device; and performing one or more operations for each logical block specified by the first set of one or more logical block addresses, including; generating metadata for the logical block, the metadata including a version number for the logical block; storing the metadata, including the version number, for the logical block in a header of a physical page in which the logical block is stored; and storing the version number for the logical block in a version data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. 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 the host, wherein the write request specifies write data for a first set of one or more logical block addresses in the 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, the first set of one or more physical addresses corresponding to one or more physical pages of the storage device; and performing one or more operations for each logical block specified by the first set of one or more logical block addresses, including; generating metadata for the logical block, the metadata including a version number for the logical block; storing the metadata, including the version number, for the logical block in a header of a physical page in which the logical block is stored; and storing the version number for the logical block in a version data structure. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. 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 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, the first set of one or more physical addresses corresponding to one or more physical pages of the storage device; and performing one or more operations for each logical block specified by the first set of one or more logical block addresses, including; generating metadata for the logical block, the metadata including a version number for the logical block; storing the metadata, including the version number, for the logical block in a header of a physical page in which the logical block is stored; and storing the version number for the logical block in a version data structure. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification