Patent ID: 7644300

Claim:
A method for resynchronizing data between first and second storage systems, comprising: the first storage system synchronously mirroring data on the first storage system to the second storage system, comprising: the first storage system receiving a host write to a first cache of the first storage system; the first storage system timestamping modified data in the first cache from the host write; and the first storage system mirroring the host write to a second cache of the second storage system, wherein the second storage system maintains a remote copy of the data on the first storage system; at a regular checkpoint interval, the first storage system pushing any data in the first cache that were modified prior to a respective checkpoint time to a first nonvolatile storage of the first storage system and saving the checkpoint time to the first nonvolatile storage; at a regular snapshot interval greater than the checkpoint interval, the second storage system taking a respective snapshot of the remote copy; and when the first storage system has an uncontrolled shutdown: the second storage system receiving the checkpoint time closest in time to the uncontrolled shutdown from the first system; the second storage system determining a difference between (1) a snapshot closest in time to the checkpoint time and (2) the remote copy on the second storage system; the second storage system sending the difference between the snapshot and the remote copy to the first storage system after the first storage system returns online; and the first storage system updating the data on the first storage system with the difference.