US2016217037A1PendingUtilityA1

Method and system for multi-dimensional raid

58
Assignee: DSSD INCPriority: Mar 23, 2012Filed: Mar 31, 2016Published: Jul 28, 2016
Est. expiryMar 23, 2032(~5.7 yrs left)· nominal 20-yr term from priority
G06F 3/0689G06F 3/0619G06F 11/1076G06F 3/064G06F 2211/1057G06F 11/108G06F 11/1096
58
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for storing data. The method includes receiving data to write to persistent storage, calculating parity values for a grid using the data, where each of the parity values is associated with one selected from of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group. The method further includes writing the data to a data grid in the persistent storage, where the data grid is part of the grid, and writing the parity values for the grid to a portion of the grid, where the portion of the grid comprises physical locations associated with a Row Q Parity Group, a Row P Parity Group, a Column Q Parity Group, a Column P Parity Group, and an Intersection Parity Group, wherein the portion of the grid is distinct from the data grid.

Claims

exact text as granted — not AI-modified
1 .- 29 . (canceled) 
     
     
         30 . A non-transitory computer readable medium comprising instructions, which when executed perform a method for storing data, the method comprising:
 receiving the data to write to persistent storage;   calculating parity values for a grid using the data, wherein the grid comprises a Row Q Parity Group, a Row P Parity Group, a Column Q Parity Group, a Column P Parity Group, and an Intersection Parity Group, wherein each of the parity values is associated with one selected from a group consisting of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group, and wherein the parity values associated with the Intersection Parity Group are calculated using the parity values from at least one selected from a group consisting of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, and the Column P Parity Group;   writing the data to a data grid in the persistent storage, wherein the data grid is part of the grid; and   writing the parity values for the grid to a portion of the grid, wherein the portion of the grid comprises physical locations associated with the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group, wherein the portion of the grid is distinct from the data grid.   
     
     
         31 . The non-transitory computer readable medium of  claim 30 , wherein at least one physical location in the portion of the grid is associated with a first independent fault domain and a second independent fault domain. 
     
     
         32 . The non-transitory computer readable medium of  claim 30 , wherein the persistent storage comprises a plurality of storage modules, wherein each of the plurality of storage modules comprises solid state memory, and wherein the first independent fault domain is the plurality of storage modules and the second independent fault domain is a plurality of channels in each of the plurality of storage modules. 
     
     
         33 . The non-transitory computer readable medium of  claim 30 , wherein a parity value in the Row P Parity Group is a P parity value. 
     
     
         34 . The non-transitory computer readable medium of  claim 30 , wherein a parity value in the Row Q Parity Group is a Q parity value. 
     
     
         35 . The non-transitory computer readable medium of  claim 30 , wherein the persistent storage comprises solid state memory. 
     
     
         36 . The non-transitory computer readable medium of  claim 35 , wherein the solid state memory comprises NAND flash. 
     
     
         37 . The non-transitory computer readable medium of  claim 30 , parity values associated with the Intersection Parity Group are not calculated using any of the data. 
     
     
         38 . The non-transitory computer readable medium of  claim 30 , wherein the grid comprises a plurality of rows, wherein a location of a parity value from the Row P Parity Group in a first row of the plurality of rows is in a different relative location as compared to a location of a parity value from the Row P Parity Group in a second row of the plurality of rows. 
     
     
         39 . A system, comprising:
 a controller;   a non-transitory computer medium operatively connected to the controller;   persistent storage operatively connected to the controller and comprising a plurality of storage modules;   wherein the non-transitory computer readable medium comprises instructions which when executed by the controller performs a method, the method comprising:   receiving data to write to persistent storage;   calculating parity values for a grid using the data, wherein the grid comprises a Row Q Parity Group, a Row P Parity Group, a Column Q Parity Group, a Column P Parity Group, and an Intersection Parity Group, wherein each of the parity values is associated with one selected from a group consisting of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group, and wherein the parity values associated with the Intersection Parity Group are calculated using the parity values from at least one selected from a group consisting of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, and the Column P Parity Group;   writing the data to a data grid in the persistent storage, wherein the data grid is part of the grid; and   writing the parity values for the grid to a portion of the grid, wherein the portion of the grid comprises physical locations associated with the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group, wherein the portion of the grid is distinct from the data grid.   
     
     
         40 . The system of  claim 39 , further comprising:
 a field programmable gate array (FPGA) operatively connected to the controller,   wherein calculating at least one of the parity values using the data comprises using the FPGA to calculate at least one of the parity values.   
     
     
         41 . The system of  claim 39 , wherein the controller stores a grid geometry for the grid. 
     
     
         42 . The system of  claim 41 , wherein the grid geometry comprises a size of the grid and specifies independent fault domains associated with each dimension of the grid. 
     
     
         43 . The system of  claim 41 , wherein the controller tracks locations of parity values in the grid. 
     
     
         44 . The system of  claim 39 , wherein the plurality of storage modules each comprises a plurality of NAND dies. 
     
     
         45 . The system of  claim 43 , wherein the controller is configured to reconstruct a corrupted datum in the persistent storage using the parity values in at least one selected from a group consisting of the Row Q Parity Group, the Row P Parity Group, the Column Q Parity Group, the Column P Parity Group, and the Intersection Parity Group. 
     
     
         46 . The system of  claim 39 , wherein at least one physical location in the portion of the grid is associated with a first independent fault domain and a second independent fault domain. 
     
     
         47 . The system of  claim 39 , wherein each of the plurality of storage modules comprises solid state memory, and wherein the first independent fault domain is the plurality of storage modules and the second independent fault domain is a plurality of channels in each of the plurality of storage modules. 
     
     
         48 . The system of  claim 39 , wherein a parity value in the Row P Parity Group is a P parity value. 
     
     
         49 . The system of  claim 39 , wherein a parity value in the Row Q Parity Group is a Q parity value.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.