IP Library Granted Patent US 9,904,601
Granted Patent B2
US 9,904,601 · App. 15/192,500 · Granted Feb 27, 2018

Synchronization of storage using comparisons of fingerprints of blocks

Inventor: R. Hugo Patterson (Los Altos, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1446G06F3/065G06F3/067G06F3/0608G06F3/0641G06F11/1453G06F11/1471G06F17/00G06F17/30G06F17/3023G06F17/30088G06F17/30091G06F17/30156G06F2201/83G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,904,601
App. No.
15/192,500
Granted
Feb 27, 2018
Kind
B2
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.

Claims (51)

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.

2. The system as in claim 1 , wherein the data storage device for storing data comprises a block storage system.

3. The system as in claim 1 , wherein the backup data storage system comprises a deduplicating storage system.

4. The system as in claim 1 , wherein a block is associated with one or more segments of the set of segments.

5. The system as in claim 4 , wherein the block is restored by reading the one or more segments from the backup data storage system and used to reconstruct the block.

6. The system as in claim 5 , wherein the processor is further configured to transfer the one or more segments from the backup data storage system to the data storage device.

7. The system as in claim 6 , wherein transferring the one or more segments comprises transferring the one or more segments requested by a user.

8. The system as in claim 1 , wherein the new snapshot is one of a plurality of snapshots.

9. The system as in claim 1 , wherein the new snapshot is associated with a snapshot time.

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.

11. The method as in claim 10 , wherein the data storage device for storing data comprises a block storage system.

12. The method as in claim 10 , wherein the backup data storage system comprises a deduplicating storage system.

13. The method as in claim 10 , wherein a block is associated with one or more segments of the set of segments.

14. The method as in claim 13 , wherein the block is restored by reading the one or more segments from the backup data storage system and used to reconstruct the block.

15. The method as in claim 14 , further comprising transferring the one or more segments from the backup data storage system to the data storage device.

16. The method as in claim 15 , wherein transferring the one or more segments comprises transferring the one or more segments requested by a user.

17. The method as in claim 10 , wherein the new snapshot is one of a plurality of snapshots.

18. The method as in claim 10 , wherein the new snapshot is associated with a snapshot time.

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.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040679/0386) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0666 →
RELEASE OF SECURITY INTEREST AT REEL 040633 FRAME 0799 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
Reel/Frame 058297/0427 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 23, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0386 →
SECURITY INTEREST Recorded Nov 16, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040633/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2016
From: PATTERSON, R. HUGO
To: EMC CORPORATION
Reel/Frame 039029/0308 →
Continuity (4)
Continuation 14677231 · Apr 2, 2015
Continuation 14259068 · Apr 22, 2014
Continuation 13107769 · May 13, 2011
Related Publication 20160306703A1 · Oct 20, 2016