Grid encoded data storage systems for efficient data repair
First Claim
1. A computer-implemented method, comprising:
- storing, on a plurality of storage devices, a grid of shards indexed by a first index and a second index, wherein individual shards of the grid of shards are each reproducible from first shards associated with a respective value of the first index and reproducible from second shards associated with a respective value of the second index, the first shards different from the second shards;
detecting that a shard of the grid of shards is to be replaced, the shard being associated with a first index value of the first index and a second index value of the second index; and
replacing the shard by at least;
updating the shard with new data to result in an updated shard;
storing the updated shard on a storage device of the plurality of storage devices, the storage device associated with the first index value and the second index value;
updating a plurality of shards in the grid of shards, the plurality of shards associated with the second index value, to result in an updated plurality of shards; and
storing, on a subset of the plurality of storage devices associated with the second index value the updated plurality of shards.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for encoding data storage systems using grid encoded data storage systems are described herein. Data to be stored in a data storage system is obtained and the data is stored in a grid of shards using grid encoding techniques that store the data in a combination of data shards and derived shards. Each of the shards has at least a first index corresponding to one dimension of the grid and a second index corresponding to a second dimension of the grid. Loss of a plurality of data shards can be repaired because each shard is reproducible from one or more shards with a first index that is associated with the first index of the shard and is also reproducible from one or more shards with a second index that is associated with the second index of the shard.
263 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
storing, on a plurality of storage devices, a grid of shards indexed by a first index and a second index, wherein individual shards of the grid of shards are each reproducible from first shards associated with a respective value of the first index and reproducible from second shards associated with a respective value of the second index, the first shards different from the second shards; detecting that a shard of the grid of shards is to be replaced, the shard being associated with a first index value of the first index and a second index value of the second index; and replacing the shard by at least; updating the shard with new data to result in an updated shard; storing the updated shard on a storage device of the plurality of storage devices, the storage device associated with the first index value and the second index value; updating a plurality of shards in the grid of shards, the plurality of shards associated with the second index value, to result in an updated plurality of shards; and storing, on a subset of the plurality of storage devices associated with the second index value the updated plurality of shards. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising at least one computing device that implements one or more services, wherein the one or more services:
-
obtain data; use the obtained data to generate a grid of shards such that; the grid of shards is indexed by at least a first index and a second index; and the grid of shards comprises a set of data shards and a set of derived shards, each shard of the grid of shards having a corresponding value of a first index and corresponding value of a second index and being configured such that the shard is reproducible from a plurality of shards associated with the first value and each shard of the grid of shards is reproducible from a plurality of other shards associated with the second value, the plurality of shards associated with the first value being different from the plurality of shards associated with the second value; store, on a plurality of storage devices respectively associated with the first index and the second index, shards of the grid of shards; and as a result of detecting that a first shard of the grid of shards is to be updated with new data, the first shard having a respective first index value of the first index and a respective second index value of the second index; update the first shard with the new data, thereby generating an updated first shard; and update, based on the updated first shard, a first set of derived shards of the grid of shards and a second set of derived shards of the grid of shards, the first set of derived shards being associated with the first index value, the second set of derived shards being associated with the second index value, thereby respectively generating an updated first set of derived shards and an updated second set of derived shards. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to at least:
-
receive a request to update a shard of a grid of shards, the grid of shards indexed by a first index and a second index, wherein each shard of the grid of shards has at least a corresponding value of a first index and corresponding value from a second index and is configured such that the shard is reproducible from first shards associated with the corresponding first index value and the shard is reproducible from second shards associated with the corresponding second index value, the first shards being different from the second shards; and as a result of receiving the request; update a first shard of the grid, the first shard having a corresponding first index value of the first index and a corresponding second index value of the second index; update a first set of derived shards associated with the corresponding first index value to result in an updated first set of derived shards, the first set of derived shards associated with the corresponding first index having a second shard that is associated with a third index value of the second index that differs from the corresponding second index value; update a second set of derived shards associated with the corresponding second index value to result in an updated second set of derived shards; and store, at respective locations of one or more data storage devices associated with the computer system, the updated first set of derived shards and the updated second set of derived shards. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification