One-way hash functions for distributed data synchronization
First Claim
Patent Images
1. A method for synchronizing two data sets, comprising:
- computing a signature for a first data set in a first address space and a signature for a second data set in a second address space using a one-way hash function;
comparing the signatures for the first and second data sets to determine whether they are identical; and
if the signatures are not identical, identifying an area of difference between the first data set and the second data set and transferring data corresponding to the area of difference between the first data set and the second data set from the first data set to the second data set.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for synchronizing two data sets includes computing a signature for a first data set in a first address space and a signature for a second data set in a second address space using a one-way hash function and comparing the signatures for the first and second data sets to determine whether they are identical. If the signatures are not identical, the method further includes identifying an area of difference between the first data set and the second data set and transferring data corresponding to the area of difference between the first data set and the second data set from the first data set to the second data set.
276 Citations
30 Claims
-
1. A method for synchronizing two data sets, comprising:
-
computing a signature for a first data set in a first address space and a signature for a second data set in a second address space using a one-way hash function;
comparing the signatures for the first and second data sets to determine whether they are identical; and
if the signatures are not identical, identifying an area of difference between the first data set and the second data set and transferring data corresponding to the area of difference between the first data set and the second data set from the first data set to the second data set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for synchronizing two data sets, comprising:
-
computing a signature for a first data set in a first address space and a signature for a second data set in a second address space using a one-way hash function;
comparing the signatures for the first and second data sets to determine whether they are identical; and
if the signatures are not identical, dividing the first data set into two data blocks and the second data set into two data blocks, pairing each data block in the first data set with a corresponding data block in the second data set, and identifying an area of difference for each pair of data blocks by computing the signature for each data block in the pair of data blocks using the one-way hash function and comparing the signature of the data blocks in the pair of data blocks to determine whether they are identical, eliminating the pair of data blocks from further consideration if the signatures are identical, checking the size of the data blocks to determine whether the data blocks are elementary data blocks if the signatures are not identical, subdividing each data block into two data blocks and pairing each data block in the first of the pair of data blocks with a corresponding data block in the second of the pair of data blocks if the data blocks are not elementary data blocks, repeating identifying an area of difference for each pair of data blocks until all remaining data blocks are elementary data blocks; and
transferring the elementary data blocks from the first data set to the second data set. - View Dependent Claims (12, 13)
-
-
14. A method for synchronizing two data sets, comprising:
-
subdividing a first data set in a first address space and a second data set in a second address space into their respective elementary data blocks;
computing a signature for each elementary data block using a one-way hash function and storing the signatures of the elementary data blocks in the first data set in a first array and the signatures of the elementary data blocks in the second data set in a second array; and
comparing each signature in the first array to a corresponding signature in the second array to determine whether they are identical and, if they are not identical, transferring the corresponding data block from the first data set to the second data set. - View Dependent Claims (15)
-
-
16. A method for synchronizing two data sets, the method comprising:
-
subdividing a first data set in a first address space and a second data set in a second address space into their respective elementary data blocks;
computing a signature for each elementary data block using a first one-way hash function and storing the signatures of the elementary data blocks in the first data set in a first array and the signatures of the elementary data blocks in the second data set in a second array;
computing a signature for the first array and a signature for the second array using a second one-way hash function and comparing the signatures for the first and second arrays to determine whether they are identical;
if the signatures for the first and second arrays are not identical, identifying the unique signatures in the first and second arrays; and
transferring the elementary data blocks corresponding to the unique signatures from the first data set to the second data set. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A data synchronization system, comprising:
-
a first agent having access to a first data set in a first address space;
a second agent having access to a second data set in a second address space; and
an engine which communicates with the first agent and the second agent when activated, the engine being configured to;
send a request to the first agent to compute a signature for the first data set in the first address space and a request to the second agent to compute a signature for the second data in the second address space using a one-way hash function;
transfer the signature for the first data set from the first address space to the second address space and send a request to the second agent to determine whether the signature for the first data set is identical to the signature for the second data set; and
identify an area of difference between the first data set and the second data set in collaboration with the first and second agents if the signatures of the data sets are not identical and, upon identifying the area of difference between the data sets, transfer data corresponding to the area of difference between the data sets from the first address space to the second address space and copy the data into the second data set. - View Dependent Claims (26)
-
-
27. A data synchronization system, comprising:
-
a first agent having access to a first data set in a first address space;
a second agent having access to a second data set in a second address space; and
an engine which communicates with the first agent and the second agent when activated, the engine being configured to;
send a request to the first agent to subdivide the first data set into elementary data blocks, to compute a signature for each elementary data block using a one-way hash function, and to store the signatures of the elementary data blocks in a first array;
send a request to the second agent to subdivide the second data set into elementary data blocks, to compute a signature for each elementary block using the one-way hash function, and to store the signatures of the elementary data blocks in a second array;
transfer the first array from the first address space to the second address space and send a request to the second agent to compare each signature in the first array to a corresponding signature in the second array to determine whether they are identical and, if they are not identical, transfer the corresponding data block from the first data set to the second data set. - View Dependent Claims (28)
-
-
29. A data synchronization system, comprising:
-
a first agent having access to a first data set in a first address space;
a second agent having access to a second data set in a second address space; and
an engine which communicates with the first agent and the second agent when activated, the engine being configured to;
send a request to the first agent to subdivide the first data set into elementary data blocks, to compute a signature for each elementary data block using a first one-way hash function, to store the signatures of the elementary data blocks in a first array, and to compute a signature for the first array using a second one-way hash function;
send a request to the second agent to subdivide the second data set into elementary data blocks, to compute the a signature for each elementary block using the first one-way hash function, to store the signatures of the elementary data blocks in a second array, and to compute a signature for the second array using the second one-way hash function;
transfer the signature for the first array from the first address space to the second address space and send a request to the second agent to determine whether the signature for the first array is identical to the signature for the second array; and
identify an area of difference between the first array and the second array in collaboration with the first and second agents if the signatures of the arrays are not identical and, upon identifying the area of difference between the arrays, transfer data corresponding to the area of difference between the arrays from the first address space to the second address space and copy the data into the second data set. - View Dependent Claims (30)
-
Specification