FORK CODES FOR ERASURE CODING OF DATA BLOCKS
First Claim
1. In a computing environment, a method comprising, coding original data blocks into a first set of output data blocks including at least one parity data block, partitioning the output data blocks into one or more groups, and coding the groups into a second set of output data blocks.
2 Assignments
0 Petitions
Accused Products
Abstract
Described is a technology in which data blocks are coded into erasure coded blocks in a two-stage, two-level processing operation. In a first processing stage, such as via MDS coding, original blocks are coded into a first level of output data blocks including one or more parity blocks. In a second, fork code processing stage, the first level blocks are partitioned into groups, and those groups used to generate a second level of parity blocks. The blocks are maintained among a plurality of storage nodes. Recovery of a failed data block is accomplished by accessing only the other data blocks associated with the failed data block'"'"'s coding group (whenever possible), thus facilitating significantly more efficient recovery than with conventional erasure coding techniques.
-
Citations
20 Claims
- 1. In a computing environment, a method comprising, coding original data blocks into a first set of output data blocks including at least one parity data block, partitioning the output data blocks into one or more groups, and coding the groups into a second set of output data blocks.
- 7. In a computing environment, a system comprising, a first stage coding processor that generates a first set of output data blocks from original data blocks, the output data blocks including at least one data block that is generated as a function of the original data blocks, and a second stage coding processor that partitions the first set of output data blocks into groups and generates a second set of output data blocks, including data blocks that are functions of the data blocks from the groups.
-
15. One or more computer-readable media having computer-executable instructions, which when executed perform steps, comprising:
-
generating a first level of output data blocks (including one or more parity blocks) from original blocks; partitioning the original blocks and at least one parity block from the first level into groups; generating a second level of parity blocks from the groups, including generating at least one second level parity block from a first level parity block; and maintaining the first level of output data blocks, and the second level of parity blocks among a plurality of nodes. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification