Method, device and computer program product for detecting incomplete write of data
US-2019332480-A1 · Oct 31, 2019 · US
US11403189B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11403189-B2 |
| Application number | US-202016870801-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 8, 2020 |
| Priority date | May 8, 2020 |
| Publication date | Aug 2, 2022 |
| Grant date | Aug 2, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for resynchronizing data in a storage system. One of the methods includes determining that a particular primary disk of a capacity object of a storage system has failed, wherein the capacity comprises a plurality of segments, and wherein the each segment comprises: a plurality of primary columns each corresponding to a respective primary disk of the capacity object, and a plurality of parity columns each corresponding to a respective parity disk of the capacity object; and resynchronizing, for each segment of one or more segments of the capacity object, the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object, ii) one or more parity columns of the segment, and iii) the column summaries of the segment.
Opening claim text (preview).
What is claimed is: 1. A system comprising: a capacity object comprising a plurality of segments, wherein each segment comprises: a plurality of primary columns each corresponding to a respective primary disk, wherein each primary column comprises a plurality of primary storage blocks and a column summary comprising a data integrity token derived from the primary storage blocks of the primary column; and a plurality of parity columns each corresponding to a respective parity disk, wherein each parity column comprises a plurality of parity storage blocks; and a data recovery subsystem configured to reconstruct a particular primary disk in response to a failure, the reconstruction comprising: resynchronizing, for each segment of one or more segments of the capacity object, the primary column of the segment corresponding to the particular primary disk wherein the resynchronizing comprises using i) the primary columns of the segment corresponding to each other primary disk of the capacity object, ii) one or more parity columns of the segment, and iii) the column summaries of the segment to reconstruct the particular primary disk. 2. The system of claim 1 , wherein resynchronizing the primary column of a segment corresponding to the particular primary disk comprises: generating, for each parity column of the segment, a respective version of the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object and ii) the parity column; determining whether the respective versions of the primary column of the segment corresponding to the particular primary disk match; in response to determining that the respective versions match, restoring the primary column of the segment corresponding to the particular primary disk using one of the versions; and in response to determining that the respective versions do not match, selecting a first version and restoring the primary column of the segment corresponding to the particular primary disk using the first version, wherein the selecting comprising determining that the data integrity token in the column summary of the first version is valid. 3. The system of claim 1 , wherein resynchronizing the primary column of a segment corresponding to the particular primary disk comprises: generating a first version of the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object and ii) a first parity column of the parity columns of the segment; determining whether the data integrity token in the column summary of the first version is valid; in response to determining that the data integrity token is valid, restoring the primary column of the segment corresponding to the particular primary disk using the first version; and in response to determining that the data integrity token is not valid: generating a second version of the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object and ii) a second parity column of the parity columns of the segment, wherein the second parity column is different from the first parity column; determining whether the data integrity token in the column summary of the second version is valid; and in response to determining that the data integrity token is valid, restoring the primary column of the segment corresponding to the particular primary disk using the second version. 4. The system of claim 1 , wherein the system further comprises a meta object, wherein the meta object is configured to perform operations comprising: receiving a plurality of write requests corresponding to respective data items; for each write request, storing one or more copies of the respective data item; determining that a size of a set of data items is greater than a threshold; and executing a batch write of the set of data items to the capacity object. 5. The system of claim 1 , wherein the system further comprises a logical map identifying, for each of a plurality of data elements, a primary storage block of the data element. 6. The system of claim 1 , wherein the system further comprises: a segment usage table identifying a linked list of particular segments of the storage subsystem that are currently in use, the segment usage table comprising, for each of the particular segments: data identifying a previous segment in the linked list; data identifying a next segment in the linked list; data identifying a number of storage blocks of the particular segment that are currently in use; and a transaction ID of the particular segment. 7. The system of claim 6 , wherein resynchronizing, for each segment of one or more segments of the capacity object, the primary column of the segment corresponding to the particular primary disk comprises: determining the one or more segments using the segment usage table, comprising determining each segment whose transaction ID is larger than a time at which the particular primary disk failed. 8. A method comprising: determining that a particular primary disk of a capacity object of a storage system has failed, wherein the capacity object comprises a plurality of segments, and wherein the each segment comprises: a plurality of primary columns each corresponding to a respective primary disk of the capacity object, wherein each primary column comprises a plurality of primary storage blocks and a column summary comprising a data integrity token derived from the primary storage blocks of the primary column; and a plurality of parity columns each corresponding to a respective parity disk of the capacity object, wherein each parity column comprises a plurality of parity storage blocks; and resynchronizing, for each segment of one or more segments of the capacity object, the primary column of the segment corresponding to the particular primary disk, wherein the resynchronizing comprises using i) the primary columns of the segment corresponding to each other primary disk of the capacity object, ii) one or more parity columns of the segment, and iii) the column summaries of the segment to reconstruct the particular primary disk. 9. The method of claim 8 , wherein resynchronizing the primary column of a segment corresponding to the particular primary disk comprises: generating, for each parity column of the segment, a respective version of the primary column of the segment corresponding to the particular primary disk using i) the primary columns of the segment corresponding to each other primary disk of the capacity object and ii) the parity column; determining whether the respective versions of the primary column of the segment corresponding to the particular primary disk match; in response to determining that the respective versions match, restoring the primary column of the segment corresponding to the particular primary disk using one of the versions; and in response to determining that the respective versions do not match, selecting a first version and restoring the primary column of the segment corresponding to the particular primary disk using the first version, wherein the selecting comprising determining that the data integrity token in the column summary of the first version is valid. 10. The method of claim 8 , wherein resynchronizing the primary column of a segment corresponding to the particular primary disk comprises: generating a first version of the primary column of the segment corresponding to the particular primary disk using i) the primary
to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00) · CPC title
Parity data used in redundant arrays of independent storages, e.g. in RAID systems · CPC title
Reconstruction on already foreseen single or plurality of spare disks · CPC title
Solving problems relating to consistency · CPC title
Backup restoration techniques · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.