IP Library Granted Patent US 11,928,032
Granted Patent B2
US 11,928,032 · App. 17/739,927 · Granted Mar 12, 2024

Time variation protection for snapshots

Inventors: Vijay Karthik (Sunnyvale, CA); Stephen Charles O'Hara-Smith (Tralee, IE); Sandeep Majji (Vizianagram, IN); Samyak Jain (Jaipur, IN); Aman Bansal (Jaipur, IN)
Assignee: Rubrik, Inc.
G06F11/1464G06F11/1451G06F11/1469G06F2201/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 11,928,032
App. No.
17/739,927
Granted
Mar 12, 2024
Kind
B2
Abstract

Techniques for data management are described. A monotonically increasing time source that indicates an elapsed time since a reference event may be activated. Multiple snapshots of a computing object may be generated in accordance with a schedule for backing up the computing object, where the schedule may include a retention duration for retaining snapshots. Based on generating the snapshots, timestamps for the snapshots may be stored, where the timestamps may indicate respective values of the monotonically increasing time source. As part of an expiration job, a reference value of the monotonically increasing time source may be identified based on the retention duration and a current value indicated by the monotonically increasing time source. Also, a snapshot of the snapshots may be expired based on a timestamp of the snapshot corresponding to a value of the monotonically increasing time source that is less than the reference value.

Claims (62)

1. A method at a data management service (DMS) cluster, comprising:

activating a monotonically increasing time source that indicates an elapsed time since a reference event;

generating a plurality of snapshots of a computing object in accordance with a schedule for backing up the computing object, the schedule comprising a retention duration for retaining snapshots of the plurality of snapshots;

storing a plurality of timestamps for the plurality of snapshots, the plurality of timestamps indicating respective values of the monotonically increasing time source associated with generating respective snapshots of the plurality of snapshots;

identifying, as part of an expiration job for expiring one or more of the plurality of snapshots, a reference value of the monotonically increasing time source, the reference value of the monotonically increasing time source based at least in part on the retention duration and a current value indicated by the monotonically increasing time source; and

expiring a snapshot of the plurality of snapshots based at least in part on a timestamp for the snapshot corresponding to a value of the monotonically increasing time source that is less than the reference value of the monotonically increasing time source.

2. The method of claim 1 , further comprising:

synchronizing, by the DMS cluster and based at least in part on the reference event, a second time source with a time provided by a network time protocol server or a system clock of the DMS cluster.

3. The method of claim 1 , further comprising:

determining a reference time point of a second time source corresponding to the reference value of the monotonically increasing time source, wherein expiring the snapshot of the plurality of snapshots comprises:

determining that the timestamp of the snapshot indicates a time point of the second time source that is less than the reference time point of the second time source.

4. The method of claim 1 , wherein the reference event comprises an initialization of the DMS cluster.

5. The method of claim 1 , wherein the monotonically increasing time source indicates a quantity of unit intervals that have elapsed since the reference event, the elapsed time comprising the quantity of unit intervals.

6. The method of claim 1 , wherein:

a timeline corresponding to the monotonically increasing time source is partitioned into a plurality of intervals,

the method further comprises identifying a plurality of consecutive intervals of the timeline based at least in part on the expiration job, wherein identifying the plurality of consecutive intervals comprises:

identifying an ending interval of the plurality of consecutive intervals that encompasses the current value indicated by the monotonically increasing time source, and

identifying a beginning interval of the plurality of consecutive intervals, wherein a leading edge of the beginning interval is separated from a trailing edge of the ending interval by a value corresponding to the retention duration, and

the reference value of the monotonically increasing time source is identified based at least in part on the leading edge of the beginning interval, the reference value of the monotonically increasing time source corresponding to the leading edge of the beginning interval.

7. The method of claim 1 , further comprising:

determining a reference time point of a second time source, the reference time point corresponding to the reference value of the monotonically increasing time source; and

identifying a reference snapshot based at least in part on the reference time point, the reference snapshot comprising an earliest snapshot of the plurality of snapshots that was generated within a duration that begins at the reference time point of the second time source.

8. The method of claim 7 , wherein:

a second timeline corresponding to the second time source is partitioned into a plurality of intervals, and

the method further comprises identifying a plurality of consecutive intervals of the second timeline based at least in part on the expiration job, wherein identifying the plurality of consecutive intervals comprises:

identifying a beginning interval of the plurality of consecutive intervals that encompasses the reference snapshot, and

identifying a set of subsequent intervals of the plurality of consecutive intervals, the set of subsequent intervals comprising an ending interval that encompasses a current time point of the second time source.

9. The method of claim 8 , further comprising:

identifying respective sets of snapshots in each interval of the plurality of consecutive intervals; and

consolidating, in each interval of the plurality of consecutive intervals, the respective sets of snapshots into respective single snapshots.

10. The method of claim 8 , wherein a second duration of the plurality of consecutive intervals is greater than the retention duration.

11. The method of claim 10 , wherein the second duration of the plurality of consecutive intervals is greater than the retention duration based at least in part on a time jump of the second time source.

12. The method of claim 8 , wherein the snapshot of the plurality of snapshots is expired based at least in part on the snapshot occurring prior to the reference snapshot on the second time source.

13. The method of claim 7 , wherein expiring the snapshot of the plurality of snapshots comprises:

deleting the snapshot, consolidating the snapshot and the reference snapshot, or both.

14. The method of claim 1 , further comprising:

initiating the expiration job based at least in part on generating the plurality of snapshots, wherein the reference value of the monotonically increasing time source is identified based at least in part on initiating the expiration job.

15. A data management system, comprising:

memory; and

at least one processor coupled with the memory and configured to cause the data management system to:

activate a monotonically increasing time source that indicates an elapsed time since a reference event;

generate a plurality of snapshots of a computing object in accordance with a schedule for backing up the computing object, the schedule comprising a retention duration for retaining snapshots of the plurality of snapshots;

store a plurality of timestamps for the plurality of snapshots, the plurality of timestamps indicating respective values of the monotonically increasing time source associated with generating respective snapshots of the plurality of snapshots;

identify, as part of an expiration job for expiring one or more of the plurality of snapshots, a reference value of the monotonically increasing time source, the reference value of the monotonically increasing time source based at least in part on the retention duration and a current value indicated by the monotonically increasing time source; and

expire a snapshot of the plurality of snapshots based at least in part on a timestamp for the snapshot corresponding to a value of the monotonically increasing time source that is less than the reference value of the monotonically increasing time source.

16. The data management system of claim 15 , wherein the at least one processor is further configured to cause the data management system to:

synchronize, by a data management service (DMS) cluster and based at least in part on the reference event, a second time source with a time provided by a network time protocol server or a system clock of the DMS cluster.

17. The data management system of claim 15 , wherein a timeline corresponding to the monotonically increasing time source is partitioned into a plurality of intervals, and wherein the at least one processor is further configured to cause the data management system to:

identify a plurality of consecutive intervals of the timeline based at least in part on the expiration job, wherein, to identify the plurality of consecutive intervals, the at least one processor is configured to:

identify an ending interval of the plurality of consecutive intervals that encompasses the current value indicated by the monotonically increasing time source, and

identify a beginning interval of the plurality of consecutive intervals, wherein a leading edge of the beginning interval is separated from a trailing edge of the ending interval by a value corresponding to the retention duration, wherein the reference value of the monotonically increasing time source is identified based at least in part on the leading edge of the beginning interval, the reference value of the monotonically increasing time source corresponding to the leading edge of the beginning interval.

18. The data management system of claim 15 , wherein the at least one processor is further configured to cause the data management system to:

determine a reference time point of a second time source, the reference time point corresponding to the reference value of the monotonically increasing time source; and

identify a reference snapshot based at least in part on the reference time point, the reference snapshot comprising an earliest snapshot of the plurality of snapshots that was generated within a duration that begins at the reference time point of the second time source.

19. A non-transitory, computer-readable medium at a data management system storing code, wherein the code comprises instructions that are executable by at least one processor to:

activate a monotonically increasing time source that indicates an elapsed time since a reference event;

generate a plurality of snapshots of a computing object in accordance with a schedule for backing up the computing object, the schedule comprising a retention duration for retaining snapshots of the plurality of snapshots;

store a plurality of timestamps for the plurality of snapshots, the plurality of timestamps indicating respective values of the monotonically increasing time source associated with generating respective snapshots of the plurality of snapshots;

identify, as part of an expiration job for expiring one or more of the plurality of snapshots, a reference value of the monotonically increasing time source, the reference value of the monotonically increasing time source based at least in part on the retention duration and a current value indicated by the monotonically increasing time source; and

expire a snapshot of the plurality of snapshots based at least in part on a timestamp for the snapshot corresponding to a value of the monotonically increasing time source that is less than the reference value of the monotonically increasing time source.

20. The non-transitory, computer-readable medium of claim 19 , wherein the instructions are further executable by the at least one processor to:

synchronize, by a data management service (DMS) cluster and based at least in part on the reference event, a second time source with a time provided by a network time protocol server or a system clock of the DMS cluster.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: KARTHIK, VIJAY; O'HARA-SMITH, STEPHEN CHARLES; MAJJI, SANDEEP; JAIN, SAMYAK; BANSAL, AMAN
To: RUBRIK, INC.
Reel/Frame 059873/0981 →
Cited By (2)
US 12,332,839 US 12,373,390