Patent ID: 8775860
Filing Date: 2014-07-08
Classification: G06F

Abstract:
1. A method for regenerating a failed storage node from a total number of storage nodes storing a file, the method comprising: splitting the file into a plurality of file segments using a formula, B=k (n−k+1), wherein B indicates the plurality of file segments, and wherein n indicates the total number of nodes, and wherein k indicates a plurality of data storage nodes of the total number of nodes (n), and wherein (n−k) indicates one or more parity nodes of the total number of storage nodes (n), and wherein the total number of storage nodes (n) are capable of storing the plurality of file segments (B); constructing an encoded matrix (M) using the plurality of file segments (B), wherein the encoded matrix (M) comprises (n−1) rows and n columns, wherein a column of the encoded matrix (M) represents one of a data storage node or a parity node, and wherein the encoded matrix (M) is, and wherein R (k−1)×k , D (n−k)×k and D T k×(n−k) indicate sub-matrices comprising the plurality of file segments (B), and wherein R (k−1)×k is a cyclic matrix, and wherein S (n−k−1)×(n−k) indicates a parity matrix formed by performing an XOR operation on the plurality of file segments (B); distributing the plurality of file segments (B) on the total number of storage nodes (n) based on the matrix (M), such that each storage node of the total number of nodes (n) is configured to store (n−1) file segments; and regenerating at least one file segment stored on the failed storage node upon identifying the failed node, wherein at least one file segment is regenerated by using at least one other file segment based on the matrix (M), and wherein at least one other file segment corresponds to remaining nodes (n−1) of the total number of nodes (n), and wherein the regenerating at least one file segment from each of the remaining nodes (n−1) facilitates the regeneration of the failed storage node, and wherein the splitting, the encoding, the distributing and the regenerating are performed by a processor.