Patent ID: 8380686

Claim:
A method for copying updated data from a primary storage facility to a secondary storage facility, comprising: receiving from a host a current version of data in a primary storage controller and in a primary data replication appliance, both in the primary storage facility; determining in the primary data replication appliance if an immediately previous version of the data is stored in a first first-in-first-out (FIFO) buffer in the primary data replication appliance; if the immediately previous version of the data is not stored in the first FIFO buffer in the primary data replication appliance, transferring the current version of the data from the primary replication appliance to a secondary data replication appliance in the secondary storage facility; if the immediately previous version of the data is stored in the first FIFO buffer in the primary data replication appliance: calculating in the primary data replication appliance a difference between the current version of the data and the immediately previous version of the data; transferring the calculated difference from the primary data replication appliance to the secondary data replication appliance; receiving the difference from the primary data replication appliance at the secondary data replication appliance; determining if the immediately previous version of the data, received from the primary replication appliance in a previous transmission of data or recreated in a previous replication operation, is stored in a second FIFO buffer in the secondary data replication appliance; if the immediately previous version of the data is stored in the second FIFO buffer, reading the immediately previous version of the data from the second FIFO buffer; if the immediately previous version of the data is not stored in the second FIFO buffer, reading the immediately previous version of the data, received from the primary replication appliance in a previous transmission of data or recreated in a previous replication operation, from storage at the secondary data replication appliance; recreating the current version of the data in the secondary data replication appliance from the immediately previous version of the data and the received difference; and storing the recreated current version of the data in a secondary storage controller attached to the secondary data replication appliance in the secondary storage facility.