IP Library Granted Patent US 12,001,391
Granted Patent B2
US 12,001,391 · App. 17/476,876 · Granted Jun 4, 2024

Managing objects stored at a remote storage

Inventors: Praveen Kumar Yarlagadda (Santa Clara, CA); Aiswarya Bhavani Shankar (San Jose, CA); Venkata Ranga Radhanikanth Guturi (San Jose, CA); Anubhav Gupta (Sunnyvale, CA)
Assignee: Cohesity, Inc.
G06F16/125G06F11/1451G06F16/1752
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 12,001,391
App. No.
17/476,876
Granted
Jun 4, 2024
Kind
B2
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 (42)

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.

2. 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.

3. 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.

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.

5. 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.

6. 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.

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.

8. 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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

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.

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.

17. 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.

18. 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.

19. 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.

20. 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.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2022
From: YARLAGADDA, PRAVEEN KUMAR; SHANKAR, AISWARYA BHAVANI; GUTURI, VENKATA RANGA RADHANIKANTH; GUPTA, ANUBHAV
To: COHESITY, INC.
Reel/Frame 059948/0270 →
Continuity (1)
Related Publication 20230077938A1 · Mar 16, 2023