Local Erasure Codes for Data Storage
First Claim
Patent Images
1. A method comprising:
- arranging data symbols into data groups;
for each data group;
generating a group parity symbol; and
including the group parity symbol in the data group;
generating one or more global parity symbols, wherein the one or more global parity symbols are based on the data symbols; and
recovering from failures, wherein the failures comprise;
up to a first failure associated with a data symbol or group parity symbol of each data group; and
up to a number of additional failures associated with one or more of the data symbols, the group parity symbols, and the global parity symbols, wherein the number of additional failures is up to a number of the global parity symbols.
3 Assignments
0 Petitions
Accused Products
Abstract
In some examples, an erasure code can be implemented to provide for fault-tolerant storage of data. Maximally recoverable cloud codes, resilient cloud codes, and robust product codes are examples of different erasure codes that can be implemented to encode and store data. Implementing different erasure codes and different parameters within each erasure code can involve trade-offs between reliability, redundancy, and locality. In some examples, an erasure code can specify placement of the encoded data on machines that are organized into racks.
72 Citations
20 Claims
-
1. A method comprising:
-
arranging data symbols into data groups; for each data group; generating a group parity symbol; and including the group parity symbol in the data group; generating one or more global parity symbols, wherein the one or more global parity symbols are based on the data symbols; and recovering from failures, wherein the failures comprise; up to a first failure associated with a data symbol or group parity symbol of each data group; and up to a number of additional failures associated with one or more of the data symbols, the group parity symbols, and the global parity symbols, wherein the number of additional failures is up to a number of the global parity symbols. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
one or more processors; a memory that includes a plurality of computer-executable components, the plurality of computer-executable components comprising an encoder module to; arrange a first plurality of machines into a grid of rows and columns; arrange a plurality of data symbols into data groups; for each data group of the data groups; generate a group parity symbol; and include the group parity symbol in the data group; store each of the data groups in a column of the first plurality of machines; generate a number of first global parity symbols equal to a number of the columns to form a global parity group, wherein each first global parity symbol is based on each of the data symbols; generate a second global parity symbol, wherein the second global parity symbol is a parity of the first global parity symbols; and include the second global parity symbol in the global parity group. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable medium storing computer-executable instructions that, when executed, cause one or more processors to perform acts comprising:
-
partitioning a stripe into data chunks to form data symbols; separately encoding the stripe, the encoding comprising; arranging the data symbols into a grid comprising a first number of rows and a second number of columns; for each row of the grid, generating a row parity symbol using a code that is different than codes used to generate parity symbols for other rows of the grid, wherein the row parity symbol is based on data symbols of the row; associating each row parity symbol with a corresponding row to form a row parity column of the grid that comprises each row parity symbol; for each column of the grid, generating a column parity symbol based on data symbols of the column; and associating each column parity symbol with a corresponding column to form a column parity row of the grid that comprises each column parity symbol. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification