Patent ID: 7555701

Claim:
A method of recovering n×m unresolved symbols from a possible m-storage element failure in a networked array of n data storage elements and m parity storage elements, where m is greater than two and n is greater than or equal to m, each storage element having n symbols, the method comprising: deriving a first set of n relationships, each of the first set of n relationships consisting of n data symbols from the n data storage elements and one parity symbol from a first set of parity symbols, the n data symbols and one parity symbol in each relationship being individually subjected to XOR operations that collectively equal zero; deriving a second set of n relationships, each of the second set of n relationships consisting of n symbols from the n data storage elements and first set of parity symbols and one parity symbol from a second set of parity symbols, the n symbols and one parity symbol from the second set of parity symbols in each relationship being individually subjected to XOR operations that collectively equal zero; deriving additional sets of relationships such that a total of m sets of relationships are derived, each of the additional sets of relationships composed of up to (n+i−1) C i−1 relationships, where i indicates the numbered set of relationship and C is the mathematical symbol for combination, meaning the number of combinations of (n+i−1) symbols taken i−1 at a time, each relationship in the sets of relationships consisting of n symbols from the n data storage elements and i−1 sets of parity symbols and one parity symbol from the i th set of parity symbols, the at least n symbols and one parity symbol from the i th set of parity symbols in each relationship being individually subjected to XOR operations that collectively equal zero; generating scripts that use the first, second and additional sets of relationships to generate XOR equations to resolve the unresolved n×m symbols resulting from possible m-storage element failure combinations, uploading the scripts to one or more storage element controllers for the networked array; and running the scripts to resolve the unresolved n×m symbols resulting from an m storage element failure combination.