Non-parity in grid encoded data storage systems
First Claim
Patent Images
1. A computer-implemented method, comprising:
- generating a grid of shards, the grid of shards indexed by row and column, the grid of shards comprising a set of data shards and a set of derived shards, the set of derived shards comprising a set of horizontally-derived shards and a set of vertically-derived shards, wherein each shard of the grid of shards has a corresponding datacenter location, a corresponding row, and corresponding column and is configured such that;
the shard is reproducible from other shards associated with the row and reproducible from other shards associated with the column;
if the shard is a horizontally-derived shard of the set of horizontally-derived shards, the shard is derived based at least in part on a set of data shards having a same corresponding row as the horizontally-derived shard using a first linear redundancy code;
if the shard is a vertically-derived shard of the set of vertically-derived shards, the shard is derived based at least in part on a set of shards having a same corresponding column as the vertically-derived shard using a second linear redundancy code and the shard is derived based at least in part a set of vertically-derived shards having the same corresponding row as the vertically-derived shard using the first redundancy code;
each row of the grid of shards with one or more data shards includes a first number of horizontally-derived shards, the first number being at least two and a subset of the set of data shards with a second number of data shards, the second number being at least twice the first number; and
each row of the grid of shards with less than one data shard includes a subset of the set of vertically-derived shards with a third number of vertically-derived shards, the third number being equal to the first number plus the second number;
receiving a request to repair the grid of shards; and
as a result of receiving the request, at least;
selecting a set of shards to repair based at least in part on the request; and
repairing a shard of the set of shards to repair by at least;
selecting a first set of shards of the grid of shards, each shard of the first set of shards selected based at least in part on the row and column of the shard of the set of shards to repair; and
reproducing the shard of the set of shards to repair from a subset of the set of selected shards based at least in part on a first redundancy code and a second redundancy code.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for encoding data storage systems using grid-encoded data storage systems with non-parity linear redundancy encoding schemes are described herein. A grid of shards with derived shards and data shards is generated that is indexed by a first index and a second index and is configured so that each shard is reproducible from other shards with the same first index and is also reproducible from other shards with the same second index. The grid of shards is further configured so that each data row of the grid of shards has at least two derived shards and at least twice as many data shards as derived shards.
267 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
generating a grid of shards, the grid of shards indexed by row and column, the grid of shards comprising a set of data shards and a set of derived shards, the set of derived shards comprising a set of horizontally-derived shards and a set of vertically-derived shards, wherein each shard of the grid of shards has a corresponding datacenter location, a corresponding row, and corresponding column and is configured such that; the shard is reproducible from other shards associated with the row and reproducible from other shards associated with the column; if the shard is a horizontally-derived shard of the set of horizontally-derived shards, the shard is derived based at least in part on a set of data shards having a same corresponding row as the horizontally-derived shard using a first linear redundancy code; if the shard is a vertically-derived shard of the set of vertically-derived shards, the shard is derived based at least in part on a set of shards having a same corresponding column as the vertically-derived shard using a second linear redundancy code and the shard is derived based at least in part a set of vertically-derived shards having the same corresponding row as the vertically-derived shard using the first redundancy code; each row of the grid of shards with one or more data shards includes a first number of horizontally-derived shards, the first number being at least two and a subset of the set of data shards with a second number of data shards, the second number being at least twice the first number; and each row of the grid of shards with less than one data shard includes a subset of the set of vertically-derived shards with a third number of vertically-derived shards, the third number being equal to the first number plus the second number; receiving a request to repair the grid of shards; and as a result of receiving the request, at least; selecting a set of shards to repair based at least in part on the request; and repairing a shard of the set of shards to repair by at least; selecting a first set of shards of the grid of shards, each shard of the first set of shards selected based at least in part on the row and column of the shard of the set of shards to repair; and reproducing the shard of the set of shards to repair from a subset of the set of selected shards based at least in part on a first redundancy code and a second redundancy code. - View Dependent Claims (2, 3, 4)
-
-
5. A system, comprising:
-
one or more processors; and memory that stores computer-executable instructions that, as a result of execution by the one or more processors, cause the system to generate a grid of shards, the grid of shards indexed at least by a first index and a second index, the grid of shards comprising a set of data shards and a set of derived shards, wherein; each shard of the grid of shards has a corresponding first index and a corresponding second index, each shard configured such that the shard is reproducible from other shards associated with the first index and the shard is reproducible from other shards associated with the second index; each data shard of the set of data shards has a corresponding data row of the grid of shards, each data row including a subset of the set of derived shards having at a number of derived shards that is at least two and a subset of the set of data shards having at a number of data shards least twice the number of derived shards, the subset of the set of data shards at least including the data shard; and repair a shard in the grid of shards by at least reproducing the shard from a set of shards associated with the first index or the second index. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
-
13. 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:
-
generate a grid of shards, the grid of shards indexed by a first index and a second index, the grid of shards including a set of data shards and a set of derived shards, wherein; each shard of the grid of shards has at least a corresponding first index and corresponding second index and is configured such that the shard is reproducible from other shards associated with the corresponding first index using a first redundancy code and the shard is reproducible from other shards associated with the corresponding second index using a second redundancy code; each data shard of the set of data shards having a corresponding data row of the grid of shards, each data row including a first subset of the set of derived shards having first number of derived shards and a first subset of the set of data shards having a second number of data shards at least twice the first number of derived shards, the subset of the set of data shards at least including the data shard; each vertically-derived shard of the set of derived shards having a corresponding derived row of the grid of shards, each derived row including a second subset of the set of derived shards having at least a third number of derived shards equal to a sum of the first number and the second number, the second subset of the set of derived shards at least including the derived shard; and repair a shard in the grid of shards by at least reproducing the shard from a set of shards associated with the first index or the second index. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification