IP Library Granted Patent US 10,909,071
Granted Patent B2
US 10,909,071 · App. 16/110,942 · Granted Feb 2, 2021

Batch-based deletion of snapshots archived in cloud/object storage

Inventors: Pooja Sarda (Cupertino, CA); Satish Kumar Kashi Visvanathan (San Jose, CA)
Assignee: VMWARE, INC.
G06F16/128G06F16/113G06F16/9027H04L67/1097
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,909,071
App. No.
16/110,942
Granted
Feb 2, 2021
Kind
B2
Abstract

According to one set of embodiments, a computer system can receive a request or command to delete a snapshot from among a plurality of snapshots of a dataset, where the plurality of snapshots are stored in cloud/object storage. In response, the computer system can add the snapshot to a batch of pending snapshots to be deleted and can determine whether the size of the batch has reached a threshold. If the size of the batch has not reached the threshold, the computer system return a response to an originator of the request or command indicating that the snapshot has been deleted, without actually deleting the snapshot from the cloud/object storage.

Claims (53)

1. A method for performing batch-based deletion of snapshots archived in cloud/object storage, the method comprising:

receiving, by a computer system, a request or command to delete a snapshot from among a plurality of snapshots of a dataset, the plurality of snapshots being stored in the cloud/object storage;

adding, by the computer system, the snapshot to a batch of pending snapshots to be deleted;

upon determining, by the computer system, that a size of the batch has reached a threshold, deleting, by the computer system, each snapshot in the batch, the deleting comprising:

determining a first minimum chunk ID and a first maximum chunk ID associated with the batch, the first minimum chunk ID and the first maximum chunk ID corresponding to endpoints of a first range of data chunks in the cloud/object storage that are needed to restore the dataset from each of the snapshots in the batch;

determining a second minimum chunk ID and a second maximum chunk ID associated with a second snapshot in the plurality of snapshots, the second snapshot being an immediate child snapshot of the last snapshot in the batch, the second minimum chunk ID and the second maximum chunk ID corresponding to endpoints of a second range of data chunks in the cloud/object storage that are needed to restore the dataset from the second snapshot; and

deleting said each snapshot based on the second minimum chunk ID and the first maximum chunk ID; and

upon determining that the size of the batch has not reached the threshold, returning, by the computer system, a response to an originator of the request or command indicating that the snapshot has been deleted, without deleting the snapshot from the cloud/object storage.

2. The method of claim 1 further comprising, upon determining that the size of the batch has reached the threshold:

clearing the contents of the batch.

3. The method of claim 1 wherein the threshold is determined dynamically at the time of receiving the request or command.

4. The method of claim 1 wherein the threshold is determined dynamically based on one or more runtime conditions of the computer system or of the cloud/object storage.

5. The method of claim 1 wherein the plurality of snapshots are uploaded to the cloud/object storage as a sequence of data chunks having monotonically increasing chunk identifiers (IDs).

6. The method of claim 1 wherein the deleting further comprises:

for each data chunk in the cloud/object storage identified by a chunk ID spanning from the second minimum chunk ID to the first maximum chunk ID:

checking, by the computer system, whether the data chunk is needed to restore the dataset from the second snapshot; and

if the data chunk not needed to restore the dataset from the second snapshot, deleting the data chunk from the cloud/object storage.

7. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code embodying a method for performing batch-based deletion of snapshots archived in cloud/object storage, the method comprising:

receiving a request or command to delete a snapshot from among a plurality of snapshots of a dataset, the plurality of snapshots being stored in the cloud/object storage;

adding the snapshot to a batch of pending snapshots to be deleted;

upon determining that a size of the batch has reached a threshold, deleting each snapshot in the batch, the deleting comprising:

determining a first minimum chunk ID and a first maximum chunk ID associated with the batch, the first minimum chunk ID and the first maximum chunk ID corresponding to endpoints of a first range of data chunks in the cloud/object storage that are needed to restore the dataset from each of the snapshots in the batch;

determining a second minimum chunk ID and a second maximum chunk ID associated with a second snapshot in the plurality of snapshots, the second snapshot being an immediate child snapshot of the last snapshot in the batch, the second minimum chunk ID and the second maximum chunk ID corresponding to endpoints of a second range of data chunks in the cloud/object storage that are needed to restore the dataset from the second snapshot; and

deleting said each snapshot based on the second minimum chunk ID and the first maximum chunk ID; and

upon determining that the size of the batch has not reached the threshold, returning a response to an originator of the request or command indicating that the snapshot has been deleted, without deleting the snapshot from the cloud/object storage.

8. The non-transitory computer readable storage medium of claim 7 wherein the method further comprises, upon determining that the size of the batch has reached the threshold:

clearing the contents of the batch.

9. The non-transitory computer readable storage medium of claim 7 wherein the threshold is determined dynamically at the time of receiving the request or command.

10. The non-transitory computer readable storage medium of claim 7 wherein the threshold is determined dynamically based on one or more runtime conditions of the computer system or of the cloud/object storage.

11. The non-transitory computer readable storage medium of claim 7 wherein the plurality of snapshots are uploaded to the cloud/object storage as a sequence of data chunks having monotonically increasing chunk identifiers (IDs).

12. The non-transitory computer readable storage medium of claim 7 wherein the deleting further comprises:

for each data chunk in the cloud/object storage identified by a chunk ID spanning from the second minimum chunk ID to the first maximum chunk ID:

checking, by the computer system, whether the data chunk is needed to restore the dataset from the second snapshot; and

if the data chunk not needed to restore the dataset from the second snapshot, deleting the data chunk from the cloud/object storage.

13. A computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to:

receive a request or command to delete a snapshot from among a plurality of snapshots of a dataset, the plurality of snapshots being stored in cloud/object storage;

add the snapshot to a batch of pending snapshots to be deleted;

upon determining that a size of the batch has reached a threshold, delete each snapshot in the batch by:

determining a first minimum chunk ID and a first maximum chunk ID associated with the batch, the first minimum chunk ID and the first maximum chunk ID corresponding to endpoints of a first range of data chunks in the cloud/object storage that are needed to restore the dataset from each of the snapshots in the batch;

determining a second minimum chunk ID and a second maximum chunk ID associated with a second snapshot in the plurality of snapshots, the second snapshot being an immediate child snapshot of the last snapshot in the batch, the second minimum chunk ID and the second maximum chunk ID corresponding to endpoints of a second range of data chunks in the cloud/object storage that are needed to restore the dataset from the second snapshot; and

deleting said each snapshot based on the second minimum chunk ID and the first maximum chunk ID; and

upon determining that the size of the batch has not reached the threshold, return a response to an originator of the request or command indicating that the snapshot has been deleted, without deleting the snapshot from the cloud/object storage.

14. The computer system of claim 13 wherein the program code further causes the processor to, upon determining that the size of the batch has reached the threshold:

clear the contents of the batch.

15. The computer system of claim 13 wherein the threshold is determined dynamically at the time of receiving the request or command.

16. The computer system of claim 13 wherein the threshold is determined dynamically based on one or more runtime conditions of the computer system or of the cloud/object storage.

17. The computer system of claim 13 wherein the plurality of snapshots are uploaded to the cloud/object storage as a sequence of data chunks having monotonically increasing chunk identifiers (IDs).

18. The computer system of claim 13 wherein the program code that causes the processor to delete said each snapshot based on the second minimum chunk ID and the first maximum chunk ID comprise program code that causes the processor to:

for each data chunk in the cloud/object storage identified by a chunk ID spanning from the second minimum chunk ID to the first maximum chunk ID:

check whether the data chunk is needed to restore the dataset from the second snapshot; and

if the data chunk not needed to restore the dataset from the second snapshot, delete the data chunk from the cloud/object storage.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2018
From: SARDA, POOJA; KASHI VISVANATHAN, SATISH KUMAR
To: VMWARE INC.
Reel/Frame 046688/0315 →
Continuity (2)
Continuation In Part 16035439 · Jul 13, 2018
Related Publication 20200019620A1 · Jan 16, 2020