A method and system are provided for comparing data stored in a first
storage system with corresponding data stored in a second storage system.
In one implementation, the first system generates a random value
associated with a respective data block P, and transmits to the second
system an identifier associated with the data block P, and the random
value. The second system generates a first digest representing a data
block B, uses the first digest to encode the random value, producing a
first encoded value, and transmits the first encoded value to the first
system. The first system generates a second digest representing the data
block P, uses the second digest to encode the random value, producing a
second encoded value, and compares the first and second encoded values.
If the two encoded values are equal, the data block B is a duplicate of
the data block P. If the two encoded values are not the same, the data
blocks are different. Additionally, a method is provided for
synchronizing data stored on a second system to data stored on a first
system. In one implementation, a data block P stored on a first system is
compared to a data block B stored on a second system, as described above.
If the two data blocks are different, the first system transmits a copy
of the data block P, and the second system stores the copied data block
P.