Patent ID: 7533325
Filing Date: 2009-05-12
Classification: G06F

Abstract:
1. A method for increasing an error tolerance of an array of m storage units in which m is an integer, comprising: storing k stripes across the array of m storage units in which k is an integer, each stripe comprising n+r elements in which n is the number of data elements in the stripe and r is the number of redundant elements in the stripe, m>n+r, jm=k(n+r), and j is an integer, each stripe forming a correcting code, the correcting code being one of an erasure correcting code having a minimum Hamming distance d and an error correcting code having a minimum Hamming distance d, and each respective element of a stripe being stored on a different storage unit; selecting an element in a donor stripe when a difference between a minimum distance of the donor stripe and a minimum distance of a recipient stripe of the k stripes is greater or equal to 2 and when an element of the recipient stripe has been lost, the donor stripe and the recipient stripe being from the k stripes, the selected element being stored on a storage unit comprising no elements of the recipient stripe; and increasing the minimum distance of the recipient stripe by rebuilding the lost element of the recipient stripe on the selected element of the donor stripe so that the recipient stripe can tolerate a loss of another element without loss of data.