Patent ID: 8365043

Claim:
A system including: a set of data blocks, including a plurality of proper subsets of data blocks; a plurality of first-level parity blocks wherein each first-level parity block is generated from a corresponding proper subset of data blocks within the plurality of proper subsets of data blocks without reference to other data blocks not in the corresponding proper subset; and a second-level parity block wherein the second-level parity block is generated from a plurality of data blocks included in at least two of the plurality of proper subsets of data blocks; a read-write controller coupled with the set of data blocks, wherein the read-write controller is configured to: receive an indication that a lost block is detected; identify whether the lost block is an identified first-level parity block, the second-level parity block, or an identified data block in an identified proper subset of data blocks of the plurality of proper subsets of data blocks; 1) in the event the lost block is the identified first-level parity block, recompute the lost block as a function of a proper subset of data corresponding to the identified first-level parity block; 2) in the event the lost block is the second-level parity block, recompute the lost block as a function of the set of data blocks; and 3) in the event the lost block is the identified data block, recompute the lost block as a function of remaining data blocks in the identified proper subset of data blocks and an identified first-level parity block corresponding to the identified proper subset of data blocks.