Patent ID: 8386891

Claim:
A method of increasing failure tolerance of an array of m storage units that is vulnerable to selected patterns of failures, comprising: storing k stripes across the array of m storage units, each stripe comprising n+r elements in which n is the number of data element in the stripe and r is the number of redundant elements in the stripe such that m>n+r and jm =k(n+r) in which j is an integer having a plurality of elements, each stripe forming one of an erasure correcting code having a minimum Hamming distance d or error correcting code having a minimum Hamming distance d, and each respective element of a stripe being stored on a different storage unit; subsequent to an element failure, selecting a recipient element; selecting an element in a donor stripe, the recipient element not being part of the donor stripe; and rebuilding a lost element of the recipient stripe on the selected element of the donor stripe, thereby increasing fault tolerance of the array.