# US 12,001,391 B2 · Managing objects stored at a remote storage

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

- Number: US 12,001,391 B2
- Document ID: US12001391B2
- Status: Granted
- Kind: B2
- Application number: 17/476,876
- Filed: 2021-09-16
- Published: 2023-03-16
- Granted: 2024-06-04
- Earliest claimed: 2021-09-16
- Assignees: Cohesity, Inc.
- Applicants: Cohesity, Inc.
- Inventors: Praveen Kumar Yarlagadda; Aiswarya Bhavani Shankar; Venkata Ranga Radhanikanth Guturi; Anubhav Gupta
- Web page: https://patentgrep.com/patent/US12001391B2

## CPC

- G06F 16/125: {characterised by the use of retention policies (retention policies for HSM systems G06F16/185)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1453: {using de-duplication of the data}
- G06F 16/1752: {based on file chunks}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 11/3034: {where the computing system component is a storage system, e.g. DASD based or network based (digital input from or digital output to record carriers G06F3/06; digital recording or reproducing G11B20/18; 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], H04L67/1097)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 2201/81: Threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An indication to store to a remote storage a new archive of a snapshot of a source storage is received. At least one shared data chunk of the new archive is determined to be already stored in an existing chunk object of the remote storage storing data chunks of a previous archive. One or more evaluation metrics for the existing chunk object are determined based at least in part on a retention period associated with one or more individual chunks stored in the chunk object and a data lock period associated with the entire existing chunk object. It is determined based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage.

## Claims

### Claim 1

A method, comprising:
receiving an indication to store to a remote storage a new archive of a snapshot of a source storage;
determining that at least one shared data chunk of the new archive is already stored in an existing chunk object of the remote storage storing data chunks of a previous archive;
determining one or more evaluation metrics for the existing chunk object based at least in part on a retention period associated with one or more individual chunks stored in the existing chunk object and a data lock period associated with an entire portion of the existing chunk object, wherein the one or more evaluation metrics for the existing chunk object are based at least in part on a percentage of data chunks of the existing chunk object that have expired and an amount of time before the existing chunk object is allowed to be removed from the remote storage; and
determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining that the at least one shared data chunk of the new archive that is already stored in the existing chunk object of the remote storage storing data chunks of a previous archive includes comparing a corresponding chunk identifier associated with the at least one shared data chunk of the new archive with a plurality of chunk identifiers stored in an archive chunk metadata data structure.

### Claim 3 (depends on 2)

The method of claim 2, wherein the archive chunk metadata data structure includes a plurality of entries, wherein each entry of the plurality of entries associates a chunk identifier corresponding to a data chunk with a chunk object identifier associated with a chunk object storing the data chunk.

### Claim 4

A method, comprising:
receiving an indication to store to a remote storage a new archive of a snapshot of a source storage;
determining that at least one shared data chunk of the new archive is already stored in an existing chunk object of the remote storage storing data chunks of a previous archive;
determining one or more evaluation metrics for the existing chunk object based at least in part on a retention period associated with one or more individual chunks stored in the existing chunk object and a data lock period associated with an entire portion of the existing chunk object, wherein the one or more evaluation metrics for the existing chunk object include a percentage of data chunks of the existing chunk object that have expired; and
determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage, wherein determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in the new chunk object of the remote storage includes comparing the percentage of data chunks of the existing chunk object that have expired to an expiration threshold percentage.

### Claim 5 (depends on 4)

The method of claim 4, further comprising referencing the at least one shared data chunk from the existing chunk object in response to determining that the percentage of data chunks of the existing chunk object that have expired is not greater than the expiration threshold percentage.

### Claim 6 (depends on 4)

The method of claim 4, further comprising storing the at least one shared data chunk in the new chunk object of the remote storage in response to determining that the percentage of data chunks of the existing chunk object that have expired is greater than the expiration threshold percentage.

### Claim 7

A method, comprising:
receiving an indication to store to a remote storage a new archive of a snapshot of a source storage;
determining that at least one shared data chunk of the new archive is already stored in an existing chunk object of the remote storage storing data chunks of a previous archive;
determining one or more evaluation metrics for the existing chunk object based at least in part on a retention period associated with one or more individual chunks stored in the existing chunk object and a data lock period associated with an entire portion of the existing chunk object, wherein the one or more evaluation metrics for the existing chunk object include an amount of time before the existing chunk object is allowed to be removed from the remote storage; and
determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage, wherein determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in the new chunk object of the remote storage includes comparing the amount of time before the existing chunk object can be removed from the remote storage to an expiration threshold period.

### Claim 8 (depends on 7)

The method of claim 7, wherein the amount of time is based on the retention period associated with one or more individual chunks stored in the existing chunk object and the data lock period associated with the entire portion of the existing chunk object.

### Claim 9 (depends on 7)

The method of claim 7, further comprising referencing the at least one shared data chunk from the existing chunk object in response to determining that the amount of time before the existing chunk object can be removed from the remote storage is not within the expiration threshold period.

### Claim 10 (depends on 7)

The method of claim 7, further comprising storing the at least one shared data chunk in the new chunk object of the remote storage in response to determining that the amount of time before the existing chunk object can be removed from the remote storage is within the expiration threshold period.

### Claim 11 (depends on 1)

The method of claim 1, wherein determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in the new chunk object of the remote storage includes comparing the percentage of data chunks of the existing chunk object that have expired to an expiration threshold percentage and comparing the amount of time before the existing chunk object can be removed from the remote storage to an expiration threshold period.

### Claim 12 (depends on 11)

The method of claim 11, further comprising referencing the at least one shared data chunk from the existing chunk object in response to determining that the percentage of data chunks of the existing chunk object that have expired is not greater than the expiration threshold percentage and/or the amount of time before the existing chunk object can be removed from the remote storage is not within the expiration threshold period.

### Claim 13 (depends on 11)

The method of claim 11, further comprising storing the at least one shared data chunk in the new chunk object of the remote storage in response to determining that that the percentage of data chunks of the existing chunk object that have expired is greater than the expiration threshold percentage and the amount of time before the existing chunk object can be removed from the remote storage is within the expiration threshold period.

### Claim 14 (depends on 1)

The method of claim 1, wherein in response determining to reference the at least one shared data chunk of the new archive from the existing chunk object includes generating archive metadata for the new archive that references the at least one shared data chunk.

### Claim 15

A non-transitory computer readable medium and comprising computer instructions for:
receiving an indication to store to a remote storage a new archive of a snapshot of a source storage;
determining that at least one shared data chunk of the new archive is already stored in an existing chunk object of the remote storage storing data chunks of a previous archive;
determining one or more evaluation metrics for the existing chunk object based at least in part on a retention period associated with one or more individual chunks stored in the existing chunk object and a data lock period associated with an entire portion of the existing chunk object, wherein the one or more evaluation metrics for the existing chunk object are based at least in part on a percentage of data chunks of the existing chunk object that have expired and an amount of time before the existing chunk object is allowed to be removed from the remote storage; and
determining based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage.

### Claim 16

A system, comprising:
one or more processors configured to:
receive an indication to store to a remote storage a new archive of a snapshot of a source storage;
determine that at least one shared data chunk of the new archive is already stored in an existing chunk object of the remote storage storing data chunks of a previous archive;
determine one or more evaluation metrics for the existing chunk object based at least in part on a retention period associated with one or more individual chunks stored in the existing chunk object and a data lock period associated with an entire portion of the existing chunk object, wherein the one or more evaluation metrics for the existing chunk object are based at least in part on a percentage of data chunks of the existing chunk object that have expired and an amount of time before the existing chunk object is allowed to be removed from the remote storage; and
determine based on the one or more evaluation metrics whether to reference the at least one shared data chunk of the new archive from the existing chunk object or store the at least one shared data chunk in a new chunk object of the remote storage; and
a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein determining that the at least one shared data chunk of the new archive that is already stored in the existing chunk object of the remote storage storing data chunks of a previous archive includes comparing a corresponding chunk identifier associated with the at least one shared data chunk of the new archive with a plurality of chunk identifiers stored in an archive chunk metadata data structure.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the archive chunk metadata data structure includes a plurality of entries, wherein each entry of the plurality of entries associates a chunk identifier corresponding to a data chunk with a chunk object identifier associated with a chunk object storing the data chunk.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein in response determining to reference the at least one shared data chunk of the new archive from the existing chunk object includes generating archive metadata for the new archive that references the at least one shared data chunk.

### Claim 20 (depends on 16)

The system of claim 16, wherein to determine that the at least one shared data chunk of the new archive that is already stored in the existing chunk object of the remote storage storing data chunks of a previous archive, the one or more processors are configured to compare a corresponding chunk identifier associated with the at least one shared data chunk of the new archive with a plurality of chunk identifiers stored in an archive chunk metadata data structure.
