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 (maximum distance separable) 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 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 (7, 8, 9, 10)
-
Specification