MDS ARRAY CODES WITH OPTIMAL BUILDING
First Claim
1. A computer method of operating a controller of an array of storage nodes, the method comprising:
- receiving configuration data at the controller that indicates operating features of the array; and
determining a parity code for operation of the array according to a permutation, wherein the configuration data specifies the array as comprising nodes defined by A=(ai,j) with size rm×
k for some integers k, m, and wherein for T={v0, . . . , vk−
1}Zrm a subset of vectors of size k, where for each v=(v1, . . . , vm)ε
T, gcd(v1, . . . , vm, r), where gcd is the greatest common divisor, such that for any l, 0≦
l≦
r−
1, and vε
T, the code values are determined by the permutation fvl;
[0, rm−
1]→
[0, rm−
1] by fvl(x)=x+lv.
2 Assignments
0 Petitions
Accused Products
Abstract
MDS array codes are widely used in storage systems to protect data against erasures. The rebuilding ratio problem is addressed and efficient parity codes are proposed. A controller as disclosed is configured for receiving configuration data at the controller that indicates operating features of the array and determining a parity code for operation of the array according to a permutation, wherein the configuration data specifies the array as comprising nodes defined by A=(ai,j) with size rm×k for some integers k, m, and wherein for T={v0, . . . , vk−1}Zrm a subset of vectors of size k, where for each v=(v1, . . . , vm)εT, gcd(v1, . . . , vm, r), where gcd is the greatest common divisor, such that for any l, 0≦l≦r−1, and vεT, the code values are determined by the permutation fvl:[0,rm−1]→[0,rm−1] by fvl(x)=x+lv.
-
Citations
10 Claims
-
1. A computer method of operating a controller of an array of storage nodes, the method comprising:
-
receiving configuration data at the controller that indicates operating features of the array; and determining a parity code for operation of the array according to a permutation, wherein the configuration data specifies the array as comprising nodes defined by A=(ai,j) with size rm×
k for some integers k, m, and wherein for T={v0, . . . , vk−
1}Zrm a subset of vectors of size k, where for each v=(v1, . . . , vm)ε
T, gcd(v1, . . . , vm, r), where gcd is the greatest common divisor, such that for any l, 0≦
l≦
r−
1, and vε
T, the code values are determined by the permutation fvl;
[0, rm−
1]→
[0, rm−
1] by fvl(x)=x+lv. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A controller of an array of storage nodes, the controller comprising:
-
a host interface through which the controller communicates with a host computer; a node interface through which the controller communicates with the array of storage nodes; a processor that operates a controller application for; receiving configuration data at the controller that indicates operating features of the array; and determining a parity code for operation of the array according to a permutation, wherein the configuration data specifies the array as comprising nodes defined by A=(ai,j) with size rm×
k for some integers k, m, and wherein forT={v0, . . . , vk−
1}Zrm a subset of vectors of size k, where for each v=(v1, . . . , vm)ε
T,gcd(v1, . . . , vm, r), where gcd is the greatest common divisor, such that for any l, 0≦
l≦
r−
1, and vε
T, the code values are determined by the permutation fvl;
[0, rm−
1]→
[0, rm−
1] by fvl(x)=x+lv.- View Dependent Claims (7, 8, 9, 10)
-
-
10. The controller of claim 8, wherein the code comprises a (k+2, k) MDS array code, and the array has size 2m×
- (k+2), wherein the permutations are defined by fj, jε
[0,k−
1] and for systematic information elements ai,j, and for row and zigzag parity elements ri and zi, respectively, for iε
[0,2m−
1], jε
[0,k−
1] and for row coefficients given by α
i,j=1 for all i, j, and zigzag coefficients given by β
i,j in some finite field F, the method further comprising;for a single erasure, (1) where one parity node is erased, rebuilding the row parity according to
- (k+2), wherein the permutations are defined by fj, jε
Specification