Intra-block error correction
AssigneePure Storage, Inc.
InventorsEthan Miller, John Colgrove, Yuhong Mao
Life of this patent
Estimating the term…
Abstract
Intra-block error correction including generating reconstructed sub-portions of a portion of a dataset that is distributed into a plurality of portions that are stored on different storage devices of the storage system, wherein the dataset indicates a first number of errors that is greater than a second number of parity data portions of the dataset, determining that a sub-portion of the dataset does not match a corresponding reconstructed sub-portion of the dataset; and based on the determination, replacing the sub-portion of the dataset with the reconstructed sub-portion of the dataset.
Claims20
A system comprising:
- a plurality of storage devices;
- and
- a storage controller comprising a processing device operatively coupled to the plurality of storage devices, the processing device configured to:
- determine that two parity shards of an N+2 erasure coded stripe stored at two of the plurality of storage devices differ from expected values of the two parity shards calculated from remaining data shards of the N+2 erasure coded stripe;
- determine that a stored value for a particular data shard of the remaining data shards differs from an expected value for the particular data shard calculated using erasure codes from other remaining data shards of the remaining data shards and a first parity shard of the two parity shards;
- and
- utilize the expected value for the particular data shard calculated using the erasure code as a corrected value for the particular data shard.
A method comprising:
- determining that two parity shards of an N+2 erasure coded stripe stored at two of a plurality of storage devices differ from expected values of the two parity shards calculated from remaining data shards of the N+2 erasure coded stripe;
- determining, by a processing device, that a stored value for a particular data shard of the remaining data shards differs from an expected value for the particular data shard calculated using erasure codes from other remaining data shards of the remaining data shards and a first parity shard of the two parity shards;
- and
- utilizing the expected value for the particular data shard calculated using the erasure code as a corrected value for the particular data shard.
A non-transitory computer-readable storage medium storing instructions which, when executed, cause a processing device to:
- determine that two parity shards of an N+2 erasure coded stripe stored at two of a plurality of storage devices differ from expected values of the two parity shards calculated from remaining data shards of the N+2 erasure coded stripe;
- determine that a stored value for a particular data shard of the remaining data shards differs from an expected value for the particular data shard calculated using erasure codes from other remaining data shards of the remaining data shards and a first parity shard of the two parity shards;
- and
- utilize the expected value for the particular data shard calculated using the erasure code as a corrected value for the particular data shard.
Dependencies are inferred from the claim text.