IP Library Granted Patent US 11,422,897
Granted Patent B2
US 11,422,897 · App. 16/528,337 · Granted Aug 23, 2022

Optimizing snapshot image processing

Inventors: Jonathan Youngha Joo (Mountain View, CA); Adam Gee (San Francisco, CA); Vivek Jain (Palo Alto, CA); Junyong Lee (Menlo Park, CA); Aravind Menon (Palo Alto, CA)
Assignee: Rubrik, Inc.
G06F11/1448G06F9/45558G06F11/1456G06F2009/4557G06F2201/835G06F2201/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,422,897
App. No.
16/528,337
Granted
Aug 23, 2022
Kind
B2
Abstract

Systems, methods, and machine-storage mediums for optimizing snapshot image processing are described. The system receives a first read request to read data from optimized snapshot information including snapshot information and cached snapshot information. The first read request includes a first offset identifying a first storage location and a first length. The snapshot information includes a full snapshot and at least one incremental snapshot. The system identifies a first portion of the data is stored in the snapshot information responsive to identifying the first portion of the data is not stored in the cache snapshot information. The system identifies a second portion of data is stored in the optimized snapshot information, reads the first portion of data and the second portion of data from the optimized snapshot information, and communicates the data, including the first and second portions of the data, to the job.

Claims (40)

1. A system comprising:

at least one processor and memory having instructions that, when executed, cause the at least one processor to perform operations comprising:

receiving a first read request to read data from optimized snapshot information, the optimized snapshot information including snapshot information and cached snapshot information, the first read request being received from a job that is repeatedly executed, the first read request including a first offset identifying a first storage location and a first length, the first length being added to the first storage location to identify a range of storage locations including at least one storage location, the snapshot information including a full snapshot of a production machine and at least one incremental snapshot of the production machine;

determining that a first portion of the data is stored in a first level of the snapshot information responsive to determining that the first portion of the data is not stored in a corresponding level of the cached snapshot information, wherein the first level corresponds to a first incremental snapshot captured during a first time window and a second level corresponds to a second incremental snapshot captured during a second time window;

determining that a second portion of the data is stored in a second level of the optimized snapshot information;

reading the first portion of data and the second portion of data from the optimized snapshot information; and

communicating the data to the job, the data including the first portion of the data and the second portion of the data.

2. The system of claim 1 , wherein the reading the first portion of the data from the optimized snapshot information includes reading the first portion of the data from the snapshot information of a full snapshot of the production machine.

3. The system of claim 2 , further comprising writing the first portion of the data to the cached snapshot information corresponding to the snapshot information of the full snapshot of the production machine.

4. The system of claim 3 , further comprising:

determining that the range of storage locations includes additional storage locations in addition to the at least one storage location, wherein the additional storage locations are to be read from the optimized snapshot information.

5. The system of claim 4 , further comprising:

determining that a plurality of snapshots are to be read from the optimized snapshot information.

6. The system of claim 1 , wherein the reading the first portion of the data from the snapshot information includes reading the first portion of the data from an incremental snapshot of the production machine.

7. The system of claim 6 , further comprising writing the first portion of the data to the cached snapshot information corresponding to the incremental snapshot of the production machine.

8. The system of claim 1 , wherein the full snapshot of the production machine includes copying an image of a virtual machine in the production machine, and wherein the full snapshot includes a timestamp.

9. The system of claim 8 , wherein each incremental snapshot of the production machine includes change information describing changes to the image during a segment of time, wherein the change information includes an offset and data, and wherein the segment of time includes a start time and an end time.

10. A method comprising:

receiving a first read request to read data from optimized snapshot information, the optimized snapshot information including snapshot information and cached snapshot information, the first read request being received from a job that is repeatedly executed, the first read request including a first offset identifying a first storage location and a first length, the first length being added to the first storage location to identify a range of storage locations including at least one storage location, the snapshot information including a full snapshot of a production machine and at least one incremental snapshot of the production machine, the receiving using at least one processor;

determining that a first portion of the data is stored in a first level of the snapshot information responsive to determining that the first portion of the data is not stored in a corresponding level of the cached snapshot information, wherein the first level corresponds to a first incremental snapshot captured during a first time window and a second level corresponds to a second incremental snapshot captured during a second time window, the identifying using at least one processor;

determining that a second portion of the data is stored in a second level of the optimized snapshot information;

reading the first portion of data and the second portion of data from the optimized snapshot information; and

communicating the data to the job, the data including the first portion of the data and the second portion of the data.

11. The method of claim 10 , wherein the reading the first portion of the data from the optimized snapshot information includes reading the first portion of the data from the snapshot information of a full snapshot of the production machine.

12. The method of claim 11 , further comprising writing the first portion of the data to the cached snapshot information corresponding to the snapshot information of the full snapshot of the production machine.

13. The method of claim 12 , further comprising:

determining that the range of storage locations includes additional storage locations in addition to the at least one storage location, wherein the additional storage locations are to be read from the optimized snapshot information.

14. The method of claim 13 , further comprising:

determining that a plurality of snapshots are to be read from the optimized snapshot information.

15. The method of claim 10 , wherein the reading the first portion of the data from the snapshot information includes reading the first portion of the data from an incremental snapshot of the production machine.

16. The method of claim 15 , further comprising writing the first portion of the data to the cached snapshot information corresponding to the incremental snapshot of the production machine.

17. The method of claim 10 , wherein the full snapshot of the production machine includes copying an image of a virtual machine in the production machine, and wherein the full snapshot includes a timestamp.

18. The method of claim 17 , wherein each incremental snapshot of the production machine includes change information describing changes to the image during a segment of time, wherein the change information includes an offset and data, and wherein the segment of time includes a start time and an end time.

19. A machine-storage medium and storing a set of instructions that, when executed by a processor, causes a machine to perform operations comprising:

receiving a first read request to read data from optimized snapshot information, the optimized snapshot information including snapshot information and cached snapshot information, the first read request being received from a job that is repeatedly executed, the first read request including a first offset identifying a first storage location and a first length, the first length being added to the first storage location to identify a range of storage locations including at least one storage location, the snapshot information including a full snapshot of a production machine and at least one incremental snapshot of the production machine, the receiving using at least one processor;

determining that a first portion of the data is stored in a first level of the snapshot information responsive to determining that the first portion of the data is not stored in a corresponding level of the cached snapshot information, wherein the first level corresponds to a first incremental snapshot captured during a first time window and a second level corresponds to a second incremental snapshot captured during a second time window, the identifying using at least one processor;

determining that a second portion of the data is stored in a second level of the optimized snapshot information;

reading the first portion of data and the second portion of data from the optimized snapshot information; and

communicating the data to the job, the data including the first portion of the data and the second portion of the data.

20. The machine-storage medium of claim 19 , wherein the reading the first portion of the data from the optimized snapshot information includes reading the first portion of the data from the snapshot information of a full snapshot of the production machine.

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 Feb 16, 2021
From: GEE, ADAM; JOO, JONATHAN YOUNGHA; JAIN, VIVEK SANJAY; LEE, JUNYONG; MENON, ARAVIND
To: RUBRIK, INC.
Reel/Frame 055273/0427 →