Patent ID: 8578094

Claim:
A method of maintaining data storage reliability in a write-back distributed data storage system including multiple nodes, each node comprising an array of failure independent data storage devices, the method comprising: storing information as a stripe including a collection of data strips and associated parity strips, the stripe distributed across data and parity nodes; each data node maintaining an associated data strip holding a first copy of data, and each parity node maintaining a parity strip holding a parity for the collection of data strips; a driver node initiating a full-stripe-write parity update protocol for maintaining parity coherency in conjunction with other nodes comprising data and parity nodes, by determining parity directly by computing new parity values for all data strips of a stripe from fast write data in order to keep the relevant parity strips coherent, wherein any node may function as a driver node; and upon detecting new data: writing new data to one or more strips in a stripe; the driver node computing new parity if the driver node is a parity node, and sending a commit message to another node in a predefined message order sequence; and each respective node receiving a commit message computing new parity if that respective node is a parity node, and sending a commit message to a next node in the predefined message order sequence unless that respective node is a last node in the predetermined message order sequence, wherein each parity held by a parity strip is calculated based on a different parity calculation formula for each parity.