Patent ID: 9110914
Filing Date: 2015-08-18
Classification: G06F

Abstract:
1. A computer implemented method comprising: intercepting a write Input/Output (I/O) to a first storage volume of a first storage array having a deduplication-based storage functionality; sending, by using a processor, metadata and a signature to a replication data protection appliance; increasing a first reference count representing the data in the write I/O stored at the first storage array if the signature is written to the first journal; writing the signature to a second journal if the signature is in a second storage array having a deduplication-based storage functionality, the second storage array comprising a second storage volume used to replicate the first storage volume; increasing a second reference count representing the data of the I/O at the second storage array if the signature is in the second storage array; reading the data from the I/O from the first storage volume if the signature is not in the second storage volume; writing the data from the I/O to the second journal if the signature is not in the second storage volume; notifying the first storage array to decrease the first reference count and the second storage array to decrease the second storage reference count if the signature or the data is written to the second journal; reading signatures in a DO METADATA stream in the second journal; reading data in a DO stream in the second journal that have no signatures in the DO stream; reading undo signatures from the second storage volume; writing the undo signatures to an UNDO METADATA stream in the second journal; increasing a second reference count of the data at the second storage array; writing the data matching the signatures read from the DO METADATA stream to the second storage volume using a command, the command using a location in the second journal and a signature and writing the I/O data matching the signature to the location in the second journal; and decreasing the second reference count for each signature written which has no corresponding I/O data.