IP Library › Granted Patent US 10,417,180
Granted Patent B1
US 10,417,180 · App. 14/863,318 · Granted Sep 17, 2019

Fast recovery of backup cloud gateway following crash without garbage collection

Inventor: Kedar Patwardhan (Prune, IN)
Assignee: EMC IP HOLDING Company, LLC
G06F16/128G06F11/1451G06F11/1464G06F11/1469
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 10,417,180
App. No.
14/863,318
Filed
Sep 23, 2015
Granted
Sep 17, 2019
Kind
B1
Examiner
VO, CECILE H
Art Unit
2153
USPC
707/640
Abstract

In a cloud storage system, fast recovery from a crash of a cloud gateway or the cloud storage is afforded without the necessity of traditional garbage collection. Data objects are each broken up into a plurality of chunk objects that are prefixed with a unique non-repeating forever increasing generation number that is incremented for each different data object. The chunk objects of a particular data object are identified and listed in a manifest file that is also associated with that generation number. Upon a crash of either the cloud gateway or the cloud storage, a query identifies the cloud and deletes all orphaned chunk objects prefixed by and all manifest files associated with the prevailing generation number at the time of the crash. The deleted chunk objects and manifest files are regenerated and restored to cloud storage to return to consistency.

Claims (39)

1. A method of recovering from a crash of a system that stores backup images of data objects in backup storage without the necessity of garbage collection, comprising:

creating a plurality of chunk objects from a data object to be backed up, for a each chunk object comprising a different portion of said data object;

generating for each chunk object a unique fingerprint;

assigning a generation number to said data object, said generation number comprising a unique non-repeating number that identifies a time of storage of said data object in backup storage relative to other data objects;

prefixing each of said plurality of chunk objects created from said data object with said generation number assigned to said data object from which each of said chunk objects was created and with said unique fingerprint of each said chunk object to identify each of said plurality of chunk objects and to associate each of said chunk objects with said data object from which each chunk was created;

listing in a manifest file for said data object each of said prefixed chunk objects in an order of appearance of said chunk object in said data object, and assigning to said manifest file as an identifier the same generation number as assigned to said data object;

storing said prefixed chunk objects in backup storage and storing said manifest file in persistent storage;

upon a crash of said system occurring, deleting all chunk objects from said backup storage that are prefixed by a generation number that is later than a last generation number that was persistently stored prior to said crash; and

recreating using said manifest file and unique fingerprint and storing in said backup storage prefixed with a new generation number replacement chunk objects corresponding to said deleted chunk objects to return said backup storage to a consistent state.

2. The method of claim 1 , wherein said generation number comprises a forever increasing number that is consecutively incremented for each new data object.

3. The method of claim 1 , wherein said generation number comprises a number of a sequence that has a value that distinguishes its relative rank in the sequence to other numbers of the sequence.

4. The method of claim 1 further comprising associating each chunk object with an offset and a length of said each chunk object relative to a reference location in said data object.

5. The method of claim 4 further comprising upon a crash deleting said manifest file corresponding to said data object.

6. The method of claim 1 , wherein said backup storage comprises cloud storage, and said creating, said generating and said prefixing are performed by a cloud gateway communicating with said data processing system, and wherein said manifest file is additionally stored in a cloud gateway interfaced to said data processing system.

7. The method of claim 6 , wherein said cloud gateway generates said generation number, and stores said generation number and said manifest file in persistent storage in said cloud gateway.

8. The method of claim 6 , wherein said cloud storage comprises persistent storage, and said manifest file and said generation number are stored in persistent storage.

9. A method of recovering from a crash of a system that stores backup images of data objects in cloud storage without the necessity of garbage collection, comprising:

breaking up a data object into a plurality of chunk objects, each chunk object comprising a different portion of said data object;

creating for and associating with each chunk object a fingerprint that uniquely identifies said chunk object;

assigning a generation number to said data object and prefixing the same generation number to each of said plurality of chunk objects created from said data object, said generation number comprising a unique number that identifies a time of storage of said data object in backup storage relative to other data objects, and that associates each of said plurality of chunk objects with said data object;

listing each of said prefixed chunk objects in a manifest file in order of their appearance in said data object along with metadata indicating a location of each chunk object in said data object;

storing said plurality of chunk objects prefixed with said generation number in said cloud storage;

upon a crash of said system occurring, deleting all chunk objects in cloud storage having with a generation number that is greater than a last consistent generation number that was associated with a consistent state of the cloud storage prior to the crash; and

recreating in cloud storage using said manifest file and said fingerprint replacement chunk objects for said chunk objects that were deleted to return said cloud storage to a consistent state.

10. The method of claim 9 , wherein said generation number is consecutively incremented.

11. The method of claim 9 further comprising, identifying said manifest file by said generation number.

12. The method of claim 9 further comprising storing said manifest file and said generation number in persistent storage in said cloud storage and in a cloud gateway interfaced to said cloud storage.

13. Non-transitory computer readable media storing executable instructions for controlling the operations of a computer to recover from a crash of a system that stores backup images of data objects in cloud storage without the necessity of garbage collection, comprising:

creating a plurality of chunk objects from a data object, each chunk object comprising a different portion of said data object;

generating for each data chunk a unique fingerprint;

assigning a generation number to said data object, said generation number comprising a unique non-repeating number that identifies a time of backup of said data object in backup storage relative to other data objects;

prefixing each of said plurality of chunk objects created from said data object with said generation number assigned to said data object from which each of said chunk objects was created and with said unique fingerprint of each said chunk object to identify each of said plurality of chunk objects as having been created from said data object;

listing each of said prefixed chunk objects in a manifest file in order of their appearance in said data object, and assigning to said manifest file as an identifier the same generation number as assigned to said data object;

upon a crash of said system occurring, deleting all chunk objects from said cloud storage that are prefixed by a generation number that is later than a last generation number that was persistently stored prior to said crash; and

recreating using said manifest file and said unique fingerprint and storing new replacement chunk objects for said chunk objects of said data object that were deleted to return said storage to a consistent state.

14. The non-transitory computer readable media of claim 13 , wherein said generation number comprises a forever increasing number that is consecutively incremented for each new data object.

15. The non-transitory computer readable media of claim 13 further comprising associating each chunk object with an offset and a length of each chunk object relative to a reference location in said data object.

16. The non-transitory computer readable media of claim 15 further comprising upon a crash deleting said manifest file corresponding to said data object.

17. The non-transitory computer readable media of claim 13 , further comprising a cloud gateway that interfaces with said cloud storage, and storing said manifest file and said generation number in persistent storage in said cloud gateway and in said cloud storage.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: PATWARDHAN, KEDAR
To: EMC CORPORTION
Reel/Frame 036674/0404 →
Cited By (6)
US 12,197,875 US 12,223,525 US 12,235,842 US 12,238,056 US 12,261,844 US 12,332,934