Distributed storage of data
First Claim
Patent Images
1. A system, comprising:
- a processor; and
a memory that stores instructions that, when executed by the processor, cause the processor to perform operations comprisingobtaining, in a data message, a first plurality of information symbols and a second plurality of information symbols,encoding the first plurality of information symbols using an erasure code to generate a plurality of coded symbols,combining a portion of the plurality of coded symbols with a portion of the second plurality of information symbols to generate a plurality of combined data values, wherein one of the plurality of combined data values comprises a linear combination of one of the plurality of coded symbols and one of the second plurality of information symbols, and wherein the one of the second plurality of information symbols is unencoded, andinitiating storage of the plurality of combined data values by a plurality of nodes of a distributed storage system.
1 Assignment
0 Petitions
Accused Products
Abstract
Multi-reliability regenerating (MRR) erasure codes are disclosed. The erasure codes can be used to encode and regenerate data. In particular, the regenerating erasure codes can be used to encode data included in at least one of two or more data messages to satisfy respective reliability requirements for the data. Encoded portions of data from one data message can be mixed with encoded or unencoded portions of data from a second data message and stored at a distributed storage system. This approach can be used to improve efficiency and performance of data storage and recovery in the event of failures of one or more nodes of a distributed storage system.
22 Citations
20 Claims
-
1. A system, comprising:
-
a processor; and a memory that stores instructions that, when executed by the processor, cause the processor to perform operations comprising obtaining, in a data message, a first plurality of information symbols and a second plurality of information symbols, encoding the first plurality of information symbols using an erasure code to generate a plurality of coded symbols, combining a portion of the plurality of coded symbols with a portion of the second plurality of information symbols to generate a plurality of combined data values, wherein one of the plurality of combined data values comprises a linear combination of one of the plurality of coded symbols and one of the second plurality of information symbols, and wherein the one of the second plurality of information symbols is unencoded, and initiating storage of the plurality of combined data values by a plurality of nodes of a distributed storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
obtaining, at a storage server that comprises processor and a memory and in a data message, a first plurality of information symbols and a second plurality of information symbols; encoding, by the storage server and using an erasure code, the first plurality of information symbols to generate a plurality of coded symbols; combining, by the storage server, a portion of the plurality of coded symbols with a portion of the second plurality of information symbols to generate a plurality of combined data values, wherein one of the plurality of combined data values comprises a linear combination of one of the plurality of coded symbols and one of the second plurality of information symbols, and wherein the one of the second plurality of information symbols is unencoded; and initiating, by the storage server, storage of the plurality of combined data values by a plurality of nodes of a distributed storage system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A memory that stores instructions that, when executed by a processor, cause the processor to perform operations comprising:
-
obtaining, in a data message, a first plurality of information symbols and a second plurality of information symbols; encoding the first plurality of information symbols using an erasure code to generate a plurality of coded symbols; combining a portion of the plurality of coded symbols with a portion of the second plurality of information symbols to generate a plurality of combined data values, wherein one of the plurality of combined data values comprises a linear combination of one of the plurality of coded symbols and one of the second plurality of information symbols, and wherein the one of the second plurality of information symbols is unencoded; and initiating storage of the plurality of combined data values by a plurality of nodes of a distributed storage system. - View Dependent Claims (18, 19, 20)
-
Specification