IP Library Granted Patent US 11,899,544
Granted Patent B2
US 11,899,544 · App. 16/878,256 · Granted Feb 13, 2024

Efficient synchronization of cloud enabled file system database during snapshot restore operation

Inventors: Anurag Bhatnagar (Bangalore, IN); Priyamrita Ghosh (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F11/1464G06F16/128G06F16/162G06F16/178G06F2201/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 11,899,544
App. No.
16/878,256
Granted
Feb 13, 2024
Kind
B2
Abstract

Methods, apparatus, and processor-readable storage media for efficient synchronization of a cloud enabled file system database during a snapshot restore operation are provided herein. An example computer-implemented method includes intercepting a user request to initiate a snapshot restore operation on a file system associated with a local storage system, wherein the file system comprises one or more stub files that are indicative of locations of cloud objects comprising files that were previously sent from the local storage system to a cloud storage platform; prior to the snapshot restore operation being performed, creating a current snapshot of the file system; obtaining an indication that the file system was successfully restored on the local storage system; and using the current snapshot to perform a synchronization operation, wherein the synchronization operation deletes one or more orphan cloud objects in the cloud storage platform that resulted from the snapshot restore operation.

Claims (50)

1. A computer-implemented method comprising:

intercepting a user request to initiate a snapshot restore operation on a file system of a local storage system, wherein the file system comprises one or more stub files that are indicative of locations of cloud objects comprising files that were previously sent from the local storage system to a cloud storage platform;

prior to the snapshot restore operation being performed, creating a current snapshot of the file system;

obtaining an indication that the file system was successfully restored on the local storage system; and

using the current snapshot to perform a synchronization operation, wherein the synchronization operation deletes one or more orphan cloud objects in the cloud storage platform that resulted from the snapshot restore operation, wherein the synchronization operation comprises: (i) looping through one or more previous snapshots of the file system based on respective creation times associated with the one or more previous snapshots of the file system, wherein the looping for a given one of the previous snapshots comprises determining whether or not the time the stub file corresponding to a given one of the cloud objects was deleted occurred within the time between the snapshot that was used to restore the file system and the snapshot having the latest creation time relative to the snapshot that was used to restore the file system and the snapshot; and (ii) deleting the given one of the cloud objects from the cloud storage platform based on a result of the looping;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The computer-implemented method of claim 1 , further comprising:

deleting the current snapshot in response to completion of the synchronization operation.

3. The computer-implemented method of claim 1 , further comprising:

adding a record to a database of the local storage system that is indicative of the time the stub file for the given one of the cloud objects from the cloud storage platform was deleted from the local storage system, wherein the stub file for the given one of the cloud objects from the cloud storage platform was deleted in response to a user operation.

4. The computer-implemented method of claim 3 , wherein the synchronization operation comprises:

in response to determining that no previous snapshot of the file system exists, deleting the given one of the cloud objects from the cloud storage platform that corresponds to the record in the database.

5. The computer-implemented method of claim 3 , wherein the looping is performed in response to determining that one or more previous snapshots of the file system exist, and wherein the given one of the cloud objects is deleted from the cloud storage platform based on the current snapshot, the one or more previous snapshots, and the time the stub file corresponding to the given one of the cloud objects was deleted.

6. The computer-implemented method of claim 5 , comprising:

creating the one or more previous snapshots on the local storage system based on one or more user defined policies.

7. The computer-implemented method of claim 1 , wherein the looping at the given one of the previous snapshots comprises one or more of:

determining whether or not the time the stub file corresponding to the given one of the cloud objects was deleted occurred after the snapshot that was used to restore the file system; and

determining whether or not the stub file for a given one of the cloud objects from the cloud storage platform was deleted prior to the snapshot that was used to restore the file system.

8. The computer-implemented method of claim 1 , wherein a given one of the stub files comprises a pointer to an address of the corresponding cloud object within the cloud storage platform.

9. A non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to intercept a user request to initiate a snapshot restore operation on a file system of a local storage system, wherein the file system comprises one or more stub files that are indicative of locations of cloud objects comprising files that were previously sent from the local storage system to a cloud storage platform;

prior to the snapshot restore operation being performed, to create a current snapshot of the file system;

to obtain an indication that the file system was successfully restored on the local storage system; and

to use the current snapshot to perform a synchronization operation, wherein the synchronization operation deletes one or more orphan cloud objects in the cloud storage platform that resulted from the snapshot restore operation, wherein the synchronization operation comprises: (i) looping through one or more previous snapshots of the file system based on respective creation times associated with the one or more previous snapshots of the file system, wherein the looping for a given one of the previous snapshots comprises determining whether or not the time the stub file corresponding to a given one of the cloud objects was deleted occurred within the time between the snapshot that was used to restore the file system and the snapshot having the latest creation time relative to the snapshot that was used to restore the file system and the snapshot; and (ii) deleting the given one of the cloud objects from the cloud storage platform based on a result of the looping.

10. The non-transitory processor-readable storage medium of claim 9 , wherein the at least one processing device is further caused:

to delete the current snapshot in response to completion of the synchronization operation.

11. The non-transitory processor-readable storage medium of claim 9 , wherein the at least one processing device is further caused:

to add a record to a database of the local storage system that is indicative of the time the stub file for the given one of the cloud objects from the cloud storage platform was deleted from the local storage system, wherein the stub file for the given one of the cloud objects from the cloud storage platform was deleted in response to a user operation.

12. The non-transitory processor-readable storage medium of claim 11 , wherein the synchronization operation comprises:

in response to determining that no previous snapshot of the file system exists, deleting the given one of the cloud objects from the cloud storage platform that corresponds to the record in the database.

13. The non-transitory processor-readable storage medium of claim 11 , wherein the looping is performed in response to determining that one or more previous snapshots of the file system exist, and wherein the given one of the cloud objects is deleted from the cloud storage platform based on the current snapshot, the one or more previous snapshots, and the time the stub file corresponding to the given one of the cloud objects was deleted.

14. The non-transitory processor-readable storage medium of claim 13 , wherein the at least one processing device is further caused:

to create the one or more previous snapshots on the local storage system based on one or more user defined policies.

15. The non-transitory processor-readable storage medium of claim 9 , wherein the looping at the given one of the previous snapshots comprises one or more of:

determining whether or not the time the stub file corresponding to the given one of the cloud objects was deleted occurred after the snapshot that was used to restore the file system; and

determining whether or not the stub file for a given one of the cloud objects from the cloud storage platform was deleted prior to the snapshot that was used to restore the file system.

16. The non-transitory processor-readable storage medium of claim 9 , wherein a given one of the stub files comprises a pointer to an address of the corresponding cloud object within the cloud storage platform.

17. An apparatus comprising:

at least one memory storing computer program code;

at least one processor coupled to the at least one memory, the at least one memory and the at least one processor being configured to cause the apparatus:

to intercept a user request to initiate a snapshot restore operation on a file system of a local storage system, wherein the file system comprises one or more stub files that are indicative of locations of cloud objects comprising files that were previously sent from the local storage system to a cloud storage platform;

prior to the snapshot restore operation being performed, to create a current snapshot of the file system;

to obtain an indication that the file system was successfully restored on the local storage system; and

to use the current snapshot to perform a synchronization operation, wherein the synchronization operation deletes one or more orphan cloud objects in the cloud storage platform that resulted from the snapshot restore operation, wherein the synchronization operation comprises: (i) looping through one or more previous snapshots of the file system based on respective creation times associated with the one or more previous snapshots of the file system, wherein the looping for a given one of the previous snapshots comprises determining whether or not the time the stub file corresponding to a given one of the cloud objects was deleted occurred within the time between the snapshot that was used to restore the file system and the snapshot having the latest creation time relative to the snapshot that was used to restore the file system and the snapshot; and (ii) deleting the given one of the cloud objects from the cloud storage platform based on a result of the looping.

18. The apparatus of claim 17 , wherein the at least one memory and the at least one processor being further configured to cause the apparatus:

to delete the current snapshot in response to completion of the synchronization operation.

19. The apparatus of claim 17 , wherein the at least one memory and the at least one processor being further configured to cause the apparatus:

to add a record to a database of the local storage system that is indicative of the time the stub file for the given one of the cloud objects from the cloud storage platform was deleted from the local storage system, wherein the stub file for the given one of the cloud objects from the cloud storage platform was deleted in response to a user operation.

20. The apparatus of claim 19 , wherein the synchronization operation comprises:

in response to determining that no previous snapshot of the file system exists, deleting the given one of the cloud objects from the cloud storage platform that corresponds to the record in the database.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 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
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 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
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 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
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2020
From: BHATNAGAR, ANURAG; GHOSH, PRIYAMRITA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052706/0189 →
Continuity (1)
Related Publication 20210365329A1 · Nov 25, 2021