System and method for distributed erasure coding
US-2019050289-A1 · Feb 14, 2019 · US
US12135609B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12135609-B2 |
| Application number | US-202217574069-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 12, 2022 |
| Priority date | Jul 22, 2019 |
| Publication date | Nov 5, 2024 |
| Grant date | Nov 5, 2024 |
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.
A method describes that a lost first block in a first stripe is directly reconstructed based on a first result obtained from a target quantity of storage devices, so that there is no need to read an unlost block in the first stripe. The first block may be reconstructed provided that the target quantity of first results are obtained. An amount of data of the first result is less than that of the unlost block in the first stripe. Therefore, a data transmission process occupies less network bandwidth, and this improves block reconstruction performance.
Opening claim text (preview).
What is claimed is: 1. A data reconstruction method, wherein the method comprises: determining a first block in a lost block in a first stripe, wherein a block in the first stripe is stored by a target quantity of storage devices; splitting a check matrix of the first stripe into a first submatrix and a target quantity of second submatrices, wherein the first submatrix comprises a column corresponding to the first block and a column corresponding to a second block, each second submatrix comprises a column corresponding to at least one third block, stored on one storage device, in the first stripe, the second block is any block in the stored valid block in the first stripe, and the at least one third block is any block other than the second block in the stored valid block; obtaining a first result from each of the target quantity of storage devices, wherein each first result is obtained after one of the target quantity of storage devices reads a stored valid block in the first stripe and performs calculation based on the stored valid block that is read, wherein an amount of data of the first result is less than that of a unlost block in the first stripe; and reconstructing the first block based on the first results from the target quantity of storage devices and the first submatrix. 2. The method according to claim 1 , wherein the reconstructing the first block based on the first results from the target quantity of storage devices and the first submatrix comprises: summing the first results from the target quantity of storage devices to obtain a summation matrix; obtaining a target block matrix based on an inverse matrix of the first submatrix and the summation matrix; and determining a first target row of the target block matrix as a reconstructed first block. 3. The method according to claim 1 , wherein before the reconstructing the first block based on the first results from the target quantity of storage devices and the first submatrix, the method further comprises: sending a first obtaining request to a storage device of the target quantity of storage devices corresponding to each second submatrix, wherein the first obtaining request comprises the second submatrix corresponding to the storage device, block information of a third block corresponding to each column of the second submatrix, and an identifier of a control device; and obtaining the first results returned by the target quantity of storage devices based on the first obtaining request. 4. The method according to claim 1 , wherein after the reconstructing the first block based on the first results from the target quantity of storage devices and the first submatrix, the method further comprises: sending a write request to a target storage device, wherein the write request comprises the reconstructed first block and block information of the reconstructed first block, and the target storage device stores the reconstructed first block based on the block information of the reconstructed first block. 5. The method according to claim 4 , wherein before the sending the write request to the target storage device, the method further comprises: obtaining the second block from a storage device of the target quantity of storage devices that stores the second block; reconstructing the second block based on the first results from the target quantity of storage devices and the first submatrix; and if a reconstructed second block is the same as the obtained second block, performing the sending the write request to the target storage device; otherwise, skipping performing the sending the write request to the target storage device, and preventing use of the first stripe. 6. The method according to claim 1 , wherein before the reconstructing the first block based on the first results from the target quantity of storage devices and the first submatrix, the method further comprises: sending a second obtaining request to the storage device of the target quantity of storage devices corresponding to each second submatrix, wherein the second obtaining request comprises the second submatrix corresponding to the storage device, block information of a third block corresponding to each column of the second submatrix, and an identifier of a target storage device; sending a target reconstruction request to the target storage device, wherein the target reconstruction request comprises the first submatrix, and the target reconstruction request indicates to reconstruct the first block based on the first submatrix; and receiving a reconstruction completion response sent by the target storage device, wherein the reconstruction completion response indicates that the first block is completely reconstructed. 7. The method according to claim 1 , wherein before the determining the first block in the lost block in the first stripe, the method further comprises: receiving a first reconstruction request, wherein the first reconstruction request comprises a storage medium identifier of an invalid storage medium on a storage device of the target quantity of storage devices; determining at least one second stripe based on the storage medium identifier in the first reconstruction request; and determining any stripe in the at least one second stripe as the first stripe, and wherein the determining the first block in the lost block in the first stripe comprises: determining any block in the lost block in the first stripe as the first block based on the storage medium identifier. 8. The method according to claim 1 , wherein before the determining the first block in the lost block in the first stripe, the method further comprises: receiving a second reconstruction request, wherein the second reconstruction request comprises block information of at least one block lost in a storage medium on a storage device of the target quantity of storage devices; determining at least one second stripe based on the block information of the at least one block in the second reconstruction request; and determining any stripe in the at least one second stripe as the first stripe, and wherein the determining the first block in the lost block in the first stripe comprises: determining any block in the lost block in the first stripe as the first block based on the block information of the at least one block in the second reconstruction request. 9. A computer device comprising: a memory configured to store instructions; and a processor coupled to the memory and configured to perform operations, the operations comprising: determining a first block in a lost block in a first stripe, wherein a block in the first stripe is stored by a target quantity of storage devices; splitting a check matrix of the first stripe into a first submatrix and a target quantity of second submatrices, wherein the first submatrix comprises a column corresponding to the first block and a column corresponding to a second block, each second submatrix comprises a column corresponding to at least one third block, stored on one storage device, in the first stripe, the second block is any block in the stored valid block in the first stripe, and the at least one third block is any block other than the second block in the stored valid block; obtaining a first result from each of the target quantity of storage devices, wherein each first result is obtained after one of the target quantity of storage devices reads a stored valid block in the first stripe and performs calculation based on the stored valid block that is read, wherein an amount of data of the first result is less than that of a unlost block in the first stripe; and reconstructing the first block based on the first results from the target quantity of storage devices and the first submatr
using file system or storage system metadata · CPC title
Rebuilding, e.g. when physically replacing a failing disk · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Management of blocks · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.