Method and system for multi-dimensional raid
First Claim
1. A non-transitory computer readable medium comprising instructions, which when executed perform a method for storing data, the method comprising:
- receiving data from a client;
calculating a first set of parity values using the data;
calculating a second set of parity values using the first set of parity values;
calculating a third set of parity values using the data, the first set of parity values, and the second set of parity values;
storing a portion of the data in a grid of a plurality of grids, wherein the grid comprises a plurality of grids locations, wherein each grid location is associated with a physical location in persistent storage, wherein each physical location is determined using a unique combination of at least a first value determined using a first independent fault domain and a second value determined using a second independent fault domain;
storing parity values from the first set of parity values that correspond to the portion of the data in the grid;
storing parity values from the second set of parity values that correspond to the parity values from the first set of parity values in the grid; and
storing, in the persistent storage, each of the third set of parity values in one of a plurality of parity grids in the persistent storage, wherein the one of the plurality of parity grids is associated with the grid.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for storing data including calculating: a first set of parity values using the data, a second set of parity values using the first set of parity values, and a third set of parity values using the data, and the first set and second set of parity values. The method further includes storing a portion of the data in a grid, where the grid includes grids locations that are each associated with a physical location, where each physical location is determined using a unique combination of at least a first value determined using a first independent fault domain and a second value determined using a second independent fault domain. The method further includes storing parity values from the first set of parity values and parity values from the second set of parity values in the grid, and storing the third set of parity values in an associated parity grid.
32 Citations
20 Claims
-
1. A non-transitory computer readable medium comprising instructions, which when executed perform a method for storing data, the method comprising:
-
receiving data from a client; calculating a first set of parity values using the data; calculating a second set of parity values using the first set of parity values; calculating a third set of parity values using the data, the first set of parity values, and the second set of parity values; storing a portion of the data in a grid of a plurality of grids, wherein the grid comprises a plurality of grids locations, wherein each grid location is associated with a physical location in persistent storage, wherein each physical location is determined using a unique combination of at least a first value determined using a first independent fault domain and a second value determined using a second independent fault domain; storing parity values from the first set of parity values that correspond to the portion of the data in the grid; storing parity values from the second set of parity values that correspond to the parity values from the first set of parity values in the grid; and storing, in the persistent storage, each of the third set of parity values in one of a plurality of parity grids in the persistent storage, wherein the one of the plurality of parity grids is associated with the grid. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a controller; a non-transitory computer readable medium operatively connected to the controller; persistent storage operatively connected to the controller and comprising a plurality of storage modules, wherein each of the plurality of storage modules comprises solid state memory; wherein the non-transitory computer readable medium comprises instructions which when executed by the controller performs a method, the method comprising; receiving a plurality of data from a client; calculating a first set of parity values using the plurality of data; calculating a second set of parity values using the first set of parity values; calculating a third set of parity values using the plurality of data, the first set of parity values, and the second set of parity values; storing a portion of the data in a grid of a plurality of grids, wherein the grid comprises a plurality of grids locations, wherein each of the plurality of grid locations is associated with a physical location in the persistent storage, wherein each physical location is determined using a unique combination of at least a first value determined using a first independent fault domain and a second value determined using a second independent fault domain; storing parity values from the first set of parity values that correspond to the portion of the data in the grid; storing parity values from the second set of parity values that correspond to the parity values from the first set of parity values in the grid; and storing, in the persistent storage, each of the third set of parity values in one of a plurality of parity grids in the persistent storage, wherein the one of the plurality of parity grids is associated with the grid. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification