Synchronization of storage using comparisons of fingerprints of blocks
First Claim
1. A system for processing data comprising:
- a data storage device, wherein the data storage device stores a set of data; and
a processor is configured to;
divide the set of data in the data storage device into a set of segments;
compute a set of fingerprints, wherein the set of fingerprints comprises a fingerprint for each segment of the set of segments;
store the set of fingerprints in a new snapshot stored in the data storage device, wherein the new snapshot comprises an indication of the set of segments at a given point in time;
identify a second set of fingerprints in the new snapshot that are not already in a fingerprint index including comparing each fingerprint in the new snapshot with each fingerprint in the fingerprint index;
cause a second set of segments associated with the second set of fingerprints to be stored in a backup data storage system;
cause the second set of fingerprints to be added to the fingerprint index;
identify a third set of fingerprints in the new snapshot that are not found in a list of fingerprints in a target snapshot;
delete a first subset of data stored in the data storage device, wherein the first subset of data are associated with the third set of fingerprints;
retrieve a second subset of data from the backup data storage system, wherein the second subset of data are associated with fingerprints that are found in the list of fingerprints in the target snapshot; and
insert the second subset of data into appropriate locations in the data storage device.
8 Assignments
0 Petitions
Accused Products
Abstract
A system for processing data includes a data storage device and a processor. The data storage device stores a set of data. The processor is configured to divide the set of data in the data storage system into a set of segments; compute a set of fingerprints, wherein the set of fingerprints comprises a fingerprint for each segment of the set of segments; store the set of fingerprints in a new snapshot; identify a second set of fingerprints in the new snapshot that are not already in a fingerprint index; cause a second set of segments associated with the second set of fingerprints to be stored in a backup data storage system; and cause the second set of fingerprints to be added to the fingerprint index.
19 Citations
19 Claims
-
1. A system for processing data comprising:
-
a data storage device, wherein the data storage device stores a set of data; and a processor is configured to; divide the set of data in the data storage device into a set of segments; compute a set of fingerprints, wherein the set of fingerprints comprises a fingerprint for each segment of the set of segments; store the set of fingerprints in a new snapshot stored in the data storage device, wherein the new snapshot comprises an indication of the set of segments at a given point in time; identify a second set of fingerprints in the new snapshot that are not already in a fingerprint index including comparing each fingerprint in the new snapshot with each fingerprint in the fingerprint index; cause a second set of segments associated with the second set of fingerprints to be stored in a backup data storage system; cause the second set of fingerprints to be added to the fingerprint index; identify a third set of fingerprints in the new snapshot that are not found in a list of fingerprints in a target snapshot; delete a first subset of data stored in the data storage device, wherein the first subset of data are associated with the third set of fingerprints; retrieve a second subset of data from the backup data storage system, wherein the second subset of data are associated with fingerprints that are found in the list of fingerprints in the target snapshot; and insert the second subset of data into appropriate locations in the data storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for processing data, comprising:
-
dividing a set of data in a data storage device into a set of segments; computing, using a processor, a set of fingerprints, wherein the set of fingerprints comprises a fingerprint for each segment of the set of segments; storing the set of fingerprints in a new snapshot stored in the data storage device, wherein the new snapshot comprises an indication of the set of segments at a given point in time; identifying a second set of fingerprints in the new snapshot that are not already in a fingerprint index including comparing each fingerprint in the new snapshot with each fingerprint in the fingerprint index; causing a second set of segments associated with the second set of fingerprints to be stored in a backup data storage system; causing the second set of fingerprints to be added to the fingerprint index; identifying a third set of fingerprints in the new snapshot that are not found in a list of fingerprints in a target snapshot; deleting a first subset of data stored in the data storage device, wherein the first subset of data are associated with the third set of fingerprints; retrieving a second subset of data from the backup data storage system, wherein the second subset of data are associated with fingerprints that are found in the list of fingerprints in the target snapshot; and inserting the second subset of data into appropriate locations in the data storage device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product for processing data, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
-
dividing a set of data in a data storage device into a set of segments; computing, using a processor, a set of fingerprints, wherein the set of fingerprints comprises a fingerprint for each segment of the set of segments; storing the set of fingerprints in a new snapshot stored in the data storage device, wherein the new snapshot comprises an indication of the set of segments at a given point in time; identifying a second set of fingerprints in the new snapshot that are not already in a fingerprint index including comparing each fingerprint in the new snapshot with each fingerprint in the fingerprint index; causing a second set of segments associated with the second set of fingerprints to be stored in a backup data storage system; causing the second set of fingerprints to be added to the fingerprint index; identifying a third set of fingerprints in the new snapshot that are not found in a list of fingerprints in a target snapshot; deleting a first subset of data stored in the data storage device, wherein the first subset of data are associated with the third set of fingerprints; retrieving a second subset of data from the backup data storage system, wherein the second subset of data are associated with fingerprints that are found in the list of fingerprints in the target snapshot; and inserting the second subset of data into appropriate locations in the data storage device.
-
Specification