Patent ID: 8156195

Claim:
A method of providing data availability and fault tolerance in a data storage network having a first protection domain comprising a first site and a second site, and a second protection domain separate from the first protection domain, the second protection domain having a third site, each site including at least one control node, the method comprising the steps of: storing a write request received from a host system to a first cache, the first cache corresponding to a first node in the first site; transmitting the write request to a second node at the second site; storing the write request received from the first node to a second cache in the second node, the write request in each of the first and second caches being directed to a first leg of a multiple-leg mirror volume distributed across the first and second protection domains, the write request in the second cache being a protection write request for temporary storage until the write request from the host is safely stored on at least two legs of the multiple-leg mirror volume; receiving at the first node an acknowledgement from the second node that the write request was received by the second node and stored in the second cache without also being written by the second node to a physical storage device; in response to receiving the acknowledgment from the second node, acknowledging to the host system by the first node that the write request is complete; sending the write request to a third node at a third site within the second protection domain, the write request to the third node being directed to a second leg of the multiple-leg mirror volume; and upon the write request to the third node being stored on a physical storage device in the second protection domain, deleting the protection write request in the second cache without storing the protection write request on a physical storage device in the first protection domain.