IP Library Granted Patent US 12,373,390
Granted Patent B2
US 12,373,390 · App. 18/615,911 · Granted Jul 29, 2025

Immutable storage of snapshot data in a public cloud environment

Inventors: Sai Kiran Katuri (Santa Clara, CA); Prateek Pandey (Bangalore, IN); Vikas Jain (San Francisco, CA); Jonathan Carlyle Derryberry (Union City, CA); Dharma Teja Bankuru (Bangalore, IN)
Assignee: Rubrik, Inc.
G06F16/128G06F11/1464G06F16/125G06F16/162G06F16/178G06F16/181G06F16/1827G06F2201/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 12,373,390
App. No.
18/615,911
Granted
Jul 29, 2025
Kind
B2
Abstract

A data management system may support techniques for immutable storage of snapshot data entities, which may each include data corresponding to one or more snapshots, in a cloud environment. The data management system may determine respective retention periods and respective immutability periods for the snapshot data entities. The data management system may extend the respective immutability period for a first snapshot data entity based on the respective retention period for the first snapshot data entity being greater than or equal to a threshold duration. Additionally or alternatively, the data management system may maintain (refrain from extending) the respective immutability period for a second snapshot data entity based at least in part on the respective retention period for the second snapshot data entity being less than the threshold duration.

Claims (48)

1. A method, comprising:

performing, at a first time, a first scan job to determine whether to extend respective immutability periods for snapshot data entities within a set of snapshot data entities, wherein, for a snapshot data entity of the set of snapshot data entities, a respective retention period for the snapshot data entity comprises a duration of time until the snapshot data entity is eligible for deletion and a respective immutability period for the snapshot data entity comprises a duration of time during which the snapshot data entity is immutable;

extending, based at least in part on the first scan job, the respective immutability period for a first snapshot data entity within the set of snapshot data entities based at least in part on the respective retention period for the first snapshot data entity being greater than or equal to a threshold duration;

performing a second scan job at a second time after the first time; and

maintaining, based at least in part on the second scan job, the respective immutability period for the first snapshot data entity based at least in part on the respective retention period for the first snapshot data entity being less than the threshold duration.

2. The method of claim 1 , further comprising:

maintaining, based at least in part on the first scan job, the respective immutability period for a second snapshot data entity of the set of snapshot data entities based at least in part on the respective retention period for the second snapshot data entity being greater than or equal to the threshold duration and the respective immutability period for the second snapshot data entity being greater than or equal to a second threshold duration.

3. The method of claim 1 , wherein extending the respective immutability period for the first snapshot data entity based at least in part on the first scan job is further based at least in part on the respective immutability period of the first snapshot data entity being, as of the first time at which the first scan job is performed, less than or equal to a second threshold duration.

4. The method of claim 1 , wherein the first scan job is included in or associated with a first instance of a periodic garbage collection job, wherein the second scan job is included in or associated with a second instance of the periodic garbage collection job, and wherein performing an instance of the periodic garbage collection job comprises deleting one or more snapshot data entities of the set of snapshot data entities from a cloud environment based at least in part on the respective retention period and the respective immutability period both being expired for each of the one or more snapshot data entities.

5. The method of claim 1 , further comprising:

performing a garbage collection job after performing the first scan job, wherein performing the garbage collection job comprises deleting one or more snapshot data entities of the set of snapshot data entities from a public cloud environment based at least in part on the respective retention period and the respective immutability period both being expired for each of the one or more snapshot data entities.

6. The method of claim 1 , further comprising:

performing a first garbage collection job after performing the first scan job, wherein, based at least in part on the respective immutability period for the first snapshot data entity being extended as a result of the first scan job, the first snapshot data entity is not deleted based at least in part on the first garbage collection job; and

performing a second garbage collection job after performing the second scan job, wherein, based at least in part on the respective immutability period for the first snapshot data entity being maintained as a result of the second scan job, the first snapshot data entity is deleted based at least in part on the second garbage collection job.

7. The method of claim 1 , further comprising:

setting, prior to performing the first scan job, the respective immutability period for the first snapshot data entity to have an initial duration that is longer than a period between successive instances of a periodic scan job, wherein the first scan job comprises a first instance of the periodic scan job and the second scan job comprises a second instance of the periodic scan job.

8. The method of claim 1 , further comprising:

setting the respective immutability period for the first snapshot data entity to have an initial duration that is longer than a period between a time of generation of the first snapshot data entity and the first time.

9. The method of claim 1 , wherein the snapshot data entities within the set of snapshot data entities comprise data from one or more snapshots of a target computing system.

10. The method of claim 1 , wherein the first snapshot data entity comprises data from one or more first snapshots of a target computing system, and wherein the respective retention period for the first snapshot data entity is based at least in part on one or more respective periods for the one or more first snapshots.

11. The method of claim 1 , wherein, as of the first time, the first snapshot data entity is ineligible for deletion within the threshold duration based at least in part on the respective retention period for the first snapshot data entity being greater than the threshold duration.

12. The method of claim 1 , further comprising:

generating an alert that indicates that the respective immutability period for the first snapshot data entity is less than a second threshold duration, wherein the second threshold duration is based at least in part on a periodicity of a garbage collection job for the set of snapshot data entities.

13. The method of claim 1 , further comprising:

adding the first snapshot data entity to an archive table based at least in part on the respective retention period for the first snapshot data entity being less than the threshold duration; and

deleting the first snapshot data entity based at least in part on the first snapshot data entity being added to the archive table.

14. The method of claim 1 , wherein the set of snapshot data entities are stored in a public cloud environment.

15. An apparatus, comprising:

one or more memories storing processor-executable code; and

one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:

perform, at a first time, a first scan job to determine whether to extend respective immutability periods for snapshot data entities within a set of snapshot data entities, wherein, for a snapshot data entity of the set of snapshot data entities, a respective retention period for the snapshot data entity comprises a duration of time until the snapshot data entity is eligible for deletion and a respective immutability period for the snapshot data entity comprises a duration of time during which the snapshot data entity is immutable;

extend, based at least in part on the first scan job, the respective immutability period for a first snapshot data entity within the set of snapshot data entities based at least in part on the respective retention period for the first snapshot data entity being greater than or equal to a threshold duration;

perform a second scan job at a second time after the first time; and

maintain, based at least in part on the second scan job, the respective immutability period for the first snapshot data entity based at least in part on the respective retention period for the first snapshot data entity being less than the threshold duration.

16. The apparatus of claim 15 , wherein the code is further executable, individually or collectively, by the one or more processors to cause the apparatus to:

maintain, based at least in part on the first scan job, the respective immutability period for a second snapshot data entity of the set of snapshot data entities based at least in part on the respective retention period for the second snapshot data entity being greater than or equal to the threshold duration and the respective immutability period for the second snapshot data entity being greater than or equal to a second threshold duration.

17. The apparatus of claim 15 , wherein the code is further executable, individually or collectively, by the one or more processors to cause the apparatus to:

extend the respective immutability period for the first snapshot data entity, based at least in part on the first scan job, based at least in part on the respective immutability period of the first snapshot data entity being, as of the first time, less than or equal to a second threshold duration.

18. The apparatus of claim 15 , wherein the code is further executable, individually or collectively, by the one or more processors to cause the apparatus to:

perform a first garbage collection job after the first scan job, wherein, based at least in part on the respective immutability period for the first snapshot data entity being extended as a result of the first scan job, the code is executable, individually or collectively, by the one or more processors to cause the apparatus to not delete the first snapshot data entity based at least in part on the first garbage collection job; and

perform a second garbage collection job after the second scan job, wherein, based at least in part on the respective immutability period for the first snapshot data entity being maintained as a result of the second scan job, the code is executable, individually or collectively, by the one or more processors to cause the apparatus to delete the first snapshot data entity based at least in part on the second garbage collection job.

19. The apparatus of claim 15 , wherein the code is further executable, individually or collectively, by the one or more processors to cause the apparatus to:

set the respective immutability period for the first snapshot data entity to have an initial duration that is longer than a period between a time of generation of the first snapshot data entity and the first time.

20. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

perform, at a first time, a first scan job to determine whether to extend respective immutability periods for snapshot data entities within a set of snapshot data entities, wherein, for a snapshot data entity of the set of snapshot data entities, a respective retention period for the snapshot data entity comprises a duration of time until the snapshot data entity is eligible for deletion and a respective immutability period for the snapshot data entity comprises a duration of time during which the snapshot data entity is immutable;

extend, based at least in part on the first scan job, the respective immutability period for a first snapshot data entity within the set of snapshot data entities based at least in part on the respective retention period for the first snapshot data entity being greater than or equal to a threshold duration;

perform a second scan job at a second time after the first time; and

maintain, based at least in part on the second scan job, the respective immutability period for the first snapshot data entity based at least in part on the respective retention period for the first snapshot data entity being less than the threshold duration.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2024
From: KATURI, SAI KIRAN; PANDEY, PRATEEK; JAIN, VIKAS; DERRYBERRY, JONATHAN CARLYLE; BANKURU, DHARMA TEJA
To: RUBRIK, INC.
Reel/Frame 067062/0727 →
Priority Claims (1)
IN 202241065076 · Nov 14, 2022 · national
Continuity (2)
Continuation 18093283 · Jan 4, 2023
Related Publication 20240232134A1 · Jul 11, 2024
References Cited (47)
US 8321632B2 · Revanuru · 2012 [cited by applicant]
US 8335768B1 · Desai et al. · 2012 [cited by applicant]
US 9645762B2 · Nara et al. · 2017 [cited by applicant]
US 10073650B2 · Nara et al. · 2018 [cited by applicant]
US 10176036B2 · Haridas et al. · 2019 [cited by applicant]
US 10248494B2 · Haridas et al. · 2019 [cited by applicant]
US 10474388B2 · Nara et al. · 2019 [cited by applicant]
US 10721141B1 · Verma et al. · 2020 [cited by applicant]
US 10853162B2 · Haridas et al. · 2020 [cited by applicant]
US 11169729B2 · Nara et al. · 2021 [cited by applicant]
US 11188248B2 · Reddy A V et al. · 2021 [cited by applicant]
US 11474896B2 · Haridas et al. · 2022 [cited by applicant]
US 11928032B2 · Karthik et al. · 2024 [cited by applicant]
US 12001451B2 · Gokhale et al. · 2024 [cited by applicant]
US 20080046476A1 · Anderson · 2008 [cited by examiner]
US 20140188804A1 · Gokhale et al. · 2014 [cited by applicant]
US 20150254141A1 · Wertheimer et al. · 2015 [cited by applicant]
US 20160350029A1 · Nara et al. · 2016 [cited by applicant]
US 20170123889A1 · Haridas et al. · 2017 [cited by applicant]
US 20170123890A1 · Haridas et al. · 2017 [cited by applicant]
US 20180025034A1 · Gnanamani et al. · 2018 [cited by applicant]
US 20180336210A1 · Bourgeois et al. · 2018 [cited by applicant]
US 20190005106A1 · Kalach · 2019 [cited by examiner]
US 20190034295A1 · Bourgeois et al. · 2019 [cited by applicant]
US 20190095272A1 · Haridas et al. · 2019 [cited by applicant]
US 20190179710A1 · Derryberry · 2019 [cited by applicant]
US 20200019470A1 · Wolfson et al. · 2020 [cited by applicant]
US 20200117365A1 · Patwardhan et al. · 2020 [cited by applicant]
US 20200142780A1 · Derryberry · 2020 [cited by applicant]
US 20200285546A1 · Kraplanee et al. · 2020 [cited by applicant]
US 20210042184A1 · Haridas et al. · 2021 [cited by applicant]
US 20210096958A1 · Kumar et al. · 2021 [cited by applicant]
US 20210141698A1 · Bourgeois et al. · 2021 [cited by applicant]
US 20210232318A1 · Reddy A V et al. · 2021 [cited by applicant]
US 20220083514A1 · Rath et al. · 2022 [cited by applicant]
US 20220107870A1 · Nagarajegowda · 2022 [cited by examiner]
US 20220222074A1 · Rath et al. · 2022 [cited by applicant]
US 20220229805A1 · Chakeres et al. · 2022 [cited by applicant]
US 20220342907A1 · Gokhale et al. · 2022 [cited by applicant]
US 20230032714A1 · Pandit et al. · 2023 [cited by applicant]
US 20230083104A1 · Xiang · 2023 [cited by examiner]
US 20230359531A1 · Karthik et al. · 2023 [cited by applicant]
US 20230359585A1 · George · 2023 [cited by examiner]
US 20240152431A1 · Karthik et al. · 2024 [cited by applicant]
CN 109409126A · 2019 [cited by applicant]
“International Search Report and Written Opinion of the International Searching Authority,” issued in connection with Int'l Appl. No. PCT/US2023/079226, dated Mar. 1, 2024 (15 pages). [cited by applicant]
Jinsun, S., et al., “WORM-Based Data Protection Approach”, Cyber-Enabled Distributed Computing and Knowledge Discovery, Oct. 10, 2010, pp. 410-416. [cited by applicant]