Patent ID: 8898112

Claim:
A method, comprising: generating a write signature command, the write signature command having parameters used in execution comprising an offset, a number of blocks of data and a signature, the write signature command configured to: write the signature to the offset in a storage array without the data, the signature being a hash value generated using a hash function on the data; and enable the storage array to write the data with the same signature to a volume if the data is available at the storage array; executing the write signature command to synchronize data between a second site and a first site, executing the write signature command comprising: reading a first hash value having a first offset at the first site associated with a block of data at the first site; sending the first hash value to the second site; using the write signature command with the first hash value received from the first site to determine if there is a block of data stored at the second site associated with the first hash value, wherein the write signature command uses the first hash value to copy a block of data, from a location at the second site indicated in a hash table associated with the first hash value, to a second offset at the second site if the first hash value is found in the hash table; determining if the write signature command was successful by determining there is the block of data stored at the second site associated with the first hash value; and if the write command is not successful: reading the block of data from the first site associated with the first hash value; and writing the block of data from the first site associated with the first hash value to the second offset at the second site, the second offset being equal to the first offset.