# US 10,503,602 B2 · Deletion and restoration of archived data in cloud/object storage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,503,602 B2
- Document ID: US10503602B2
- Status: Granted
- Kind: B2
- Application number: 15/870,728
- Filed: 2018-01-12
- Published: 2019-07-18
- Granted: 2019-12-10
- Earliest claimed: 2018-01-12
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Satish Kumar Kashi Visvanathan; Pooja Sarda; Ilya Langouev
- Web page: https://patentgrep.com/patent/US10503602B2

## CPC

- G06F 3/0608: {Saving storage space on storage systems}
- G06F 11/1435: {using file system or storage system metadata}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 16/162: {Delete operations (erasing in storage systems G06F3/0652)}
- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 2201/82: Solving problems relating to consistency
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for deleting a snapshot of a data set archived in cloud/object storage are provided. In one set of embodiments, a computer system can identify data blocks that are part of the snapshot and are referred to by an incremental child snapshot of the snapshot. The computer system can further create a new metadata object that includes metadata entries for the identified data blocks, each metadata entry comprising an identifier of the incremental child snapshot, an identifier of a data block, and an identifier of a data object of the incremental child snapshot where the data block is stored. The computer system can then associate the new metadata object with the incremental child snapshot in the cloud/object storage.

## Claims

### Claim 1

A method comprising:
deleting, by a computer system, a snapshot of a data set archived in cloud storage, the deleting comprising:
identifying data blocks that are part of the snapshot and are referred to by an incremental child snapshot of the snapshot;
creating a new metadata object that includes metadata entries for the identified data blocks, each metadata entry comprising an identifier of the incremental child snapshot, an identifier of a data block, and an identifier of a data object of the snapshot where the data block is stored; and
associating the new metadata object with the incremental child snapshot in the cloud storage; and
concurrently with the deleting of the snapshot, restoring the data set from the incremental child snapshot without locking any data objects of the snapshot.

### Claim 2 (depends on 1)

The method of claim 1 wherein the deleting further comprises:
deleting all metadata objects for the snapshot from the cloud storage.

### Claim 3 (depends on 1)

The method of claim 1 wherein the deleting further comprises, at a later time:
identifying data objects of the snapshot that do not include any data blocks referred to by child snapshots; and
deleting the identified data objects from the cloud storage.

### Claim 4 (depends on 1)

The method of claim 1 wherein the restoring comprises:
traversing up a hierarchy of snapshots needed to restore the data set from the incremental child snapshot; and
for each snapshot in the hierarchy:
if one or more metadata objects for the snapshot can be found in the cloud storage, incorporating the one or more snapshots into a metadata view for the data set; and
if one or more metadata objects for the snapshot cannot be found in the cloud storage, returning to an immediate child snapshot of the snapshot in the hierarchy and examining the immediate child snapshot to identify any new metadata objects.

### Claim 5 (depends on 1)

The method of claim 1 wherein the incremental child snapshot is restored from a replicated region of the cloud storage that is different from a region of the cloud storage where the incremental child snapshot was originally uploaded.

### Claim 6 (depends on 5)

The method of claim 5 wherein the restoring comprises:
verifying, prior to initiating the restore, that all objects needed for restoring the data set are present in the replicated region.

### Claim 7

A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code embodying a method comprising:
deleting a snapshot of a data set archived in cloud storage, the deleting comprising:
identifying data blocks that are part of the snapshot and are referred to by an incremental child snapshot of the snapshot;
creating a new metadata object that includes metadata entries for the identified data blocks, each metadata entry comprising an identifier of the incremental child snapshot, an identifier of a data block, and an identifier of a data object of the snapshot where the data block is stored; and
associating the new metadata object with the incremental child snapshot in the cloud storage; and
concurrently with the deleting of the snapshot, restoring the data set from the incremental child snapshot without locking any data objects of the snapshot.

### Claim 8 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the deleting further comprises:
deleting all metadata objects for the snapshot from the cloud storage.

### Claim 9 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the deleting further comprises, at a later time:
identifying data objects of the snapshot that do not include any data blocks referred to by child snapshots; and
deleting the identified data objects from the cloud storage.

### Claim 10 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the restoring comprises:
traversing up a hierarchy of snapshots needed to restore the data set from the incremental child snapshot; and
for each snapshot in the hierarchy:
if one or more metadata objects for the snapshot can be found in the cloud storage, incorporating the one or more snapshots into a metadata view for the data set; and
if one or more metadata objects for the snapshot cannot be found in the cloud storage, returning to an immediate child snapshot of the snapshot in the hierarchy and examining the immediate child snapshot to identify any new metadata objects.

### Claim 11 (depends on 7)

The non-transitory computer readable storage medium of claim 7 wherein the incremental child snapshot is restored from a replicated region of the cloud storage that is different from a region of the cloud storage where the incremental child snapshot was originally uploaded.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11 wherein the restoring comprises:
verifying, prior to initiating the restore, that all objects needed for restoring the data set are present in the replicated region.

### Claim 13

A computer system comprising:
a processor; and
a non-transitory computer readable medium having stored thereon program code that causes the processor to:
delete a snapshot of a data set archived in cloud storage, the deleting comprising:
identifying data blocks that are part of the snapshot and are referred to by an incremental child snapshot of the snapshot;
creating a new metadata object that includes metadata entries for the identified data blocks, each metadata entry comprising an identifier of the incremental child snapshot, an identifier of a data block, and an identifier of a data object of the incremental child snapshot where the data block is stored; and
associating the new metadata object with the incremental child snapshot in the cloud storage; and
concurrently with the deleting of the snapshot, restore the data set from the incremental child snapshot without locking any data objects of the snapshot.

### Claim 14 (depends on 13)

The computer system of claim 13 wherein the deleting further comprises:
deleting all metadata objects for the snapshot from the cloud storage.

### Claim 15 (depends on 13)

The computer system of claim 13 wherein the deleting further comprises, at a later time:
identifying data objects of the snapshot that do not include any data blocks referred to by child snapshots; and
deleting the identified data objects from the cloud storage.

### Claim 16 (depends on 13)

The computer system of claim 13 wherein the restoring comprises:
traversing up a hierarchy of snapshots needed to restore the data set from the incremental child snapshot; and
for each snapshot in the hierarchy:
if one or more metadata objects for the snapshot can be found in the cloud storage, incorporating the one or more snapshots into a metadata view for the data set; and
if one or more metadata objects for the snapshot cannot be found in the cloud storage, returning to an immediate child snapshot of the snapshot in the hierarchy and examining the immediate child snapshot to identify any new metadata objects.

### Claim 17 (depends on 13)

The computer system of claim 13 wherein the incremental child snapshot is restored from a replicated region of the cloud storage that is different from a region of the cloud storage where the incremental child snapshot was originally uploaded.

### Claim 18 (depends on 17)

The computer system of claim 17 wherein the restoring comprises:
verifying, prior to initiating the restore, that all objects needed for restoring the data set are present in the replicated region.
