IP Library Granted Patent US 11,593,213
Granted Patent B2
US 11,593,213 · App. 17/861,470 · Granted Feb 28, 2023

Classifying snapshot image processing

Inventors: Jonathan Youngha Yoo (Mountain View, CA); Adam Gee (San Francisco, CA); Vivek Sanjay Jain (Palo Alto, CA); Junyong Lee (Menlo Park, CA)
Assignee: Rubrik, Inc.
G06F11/1435G06F3/0614G06F3/0641G06F3/0673G06F11/1451G06F11/1458G06F2201/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,593,213
App. No.
17/861,470
Granted
Feb 28, 2023
Kind
B2
Abstract

Systems, methods, and machine-storage medium for classifying snapshot image processing are described. The system receives read requests to read snapshot information. Each read request includes an offset identifying a storage location and a length. The snapshot information includes snapshots including a full snapshot and at least one incremental snapshot. The read requests include a first read request to read data from the snapshot information. The system generates a first plurality of read events including a second plurality of read events that are generated by processing the first read request. The second plurality of read events includes first and a second read events. The system identifies whether utilizing a cache optimizes the job based on the first plurality of read events.

Claims (57)

1. A method, comprising:

receiving a request to access snapshot information stored in a plurality of snapshots, the plurality of snapshots comprising a full snapshot of a subject and an incremental snapshot of the subject;

accessing, responsive to the request, a second level of a cache that has a plurality of levels that correspond to the plurality of snapshots, wherein a first level of the cache corresponds to the full snapshot and the second level of the cache corresponds to the incremental snapshot; and

outputting, based at least in part on accessing the second level of the cache, a response to the request.

2. The method of claim 1 , wherein the request indicates a portion of the second level of the cache, the method further comprising:

determining, based at least in part on accessing the second level of the cache, that the portion of the second level of the cache comprises at least one location comprising information, wherein the response outputted to the request comprises the information stored at the at least one location.

3. The method of claim 1 , wherein the request indicates a portion of the second level of the cache, the method further comprising:

determining, based at least in part on accessing the second level of the cache, that the portion of the second level of the cache comprises at least one empty location; and

accessing, based at least in part on the at least one empty location of the second level of the cache, at least one location of a second level of a memory device that corresponds to the at least one empty location in the second level of the cache,

wherein the second level of the memory device corresponds to the second level of the cache and the incremental snapshot, and a first level of the memory device corresponds to the first level of the cache and the full snapshot.

4. The method of claim 3 , further comprising:

transferring, to corresponding locations of the second level of the cache, information stored at one or more locations of the at least one location of the second level of the memory device based at least in part on accessing the at least one location of the second level of the memory device.

5. The method of claim 3 , further comprising:

accessing, responsive to the request and based at least in part on accessing the at least one location of the second level of the memory device, a portion of the first level of the cache, wherein the portion of the first level of the cache is non-overlapping with locations of the second level of the cache that comprise information and locations of the second level of the memory device that comprise information;

determining, based at least in part on accessing the first level of the cache, that the portion of the first level of the cache comprises at least one empty location; and

accessing, based at least in part on the at least one empty location of the first level of the cache, at least one location of the first level of the memory device that corresponds to the at least one empty location in the first level of the cache.

6. The method of claim 5 , further comprising:

transferring, to corresponding locations of the first level of the cache, information stored at one or more locations of the at least one location of the first level of the memory device based at least in part on accessing the at least one location of the first level of the memory device.

7. The method of claim 5 , wherein the response outputted to the request comprises a combination of the information stored at one or more locations of the at least one location of the second level of the memory device and the information stored at one or more locations of the at least one location of the first level of the memory device.

8. The method of claim 3 , wherein the memory device comprises a hard disk drive and the cache comprises a solid state drive.

9. The method of claim 1 , wherein the request comprises an offset and a length indicating one or more locations of the snapshot information.

10. The method of claim 1 , further comprising:

capturing, prior to receiving the request, the full snapshot and the incremental snapshot, the incremental snapshot being captured after the full snapshot; and

storing the full snapshot in a first level of a memory device and the incremental snapshot in a second level of the memory device.

11. The method of claim 10 , further comprising:

configuring, based at least in part on storing the full snapshot in the first level of the memory device, the first level of the cache to correspond with the first level of the memory device and the full snapshot; and

configuring, based at least in part on storing the incremental snapshot in the second level of the memory device, the second level of the memory device to correspond with the second level of the memory device and the incremental snapshot.

12. An apparatus, comprising:

a processor; and

memory coupled with the processor and storing instructions that are executable by the processor to cause the apparatus to:

receive a request to access snapshot information stored in a plurality of snapshots, the plurality of snapshots comprising a full snapshot of a subject and an incremental snapshot of the subject;

access, responsive to the request, a second level of a cache that has a plurality of levels that correspond to the plurality of snapshots, wherein a first level of the cache corresponds to the full snapshot and the second level of the cache corresponds to the incremental snapshot; and

output, based at least in part on accessing the second level of the cache, a response to the request.

13. The apparatus of claim 12 , wherein the request indicates a portion of the second level of the cache, and wherein the instructions are further executable by the processor to cause the apparatus to:

determine, based at least in part on accessing the second level of the cache, that the portion of the second level of the cache comprises at least one location comprising information, wherein the response outputted to the request comprises the information stored at the at least one location.

14. The apparatus of claim 12 , wherein the request indicates a portion of the second level of the cache, and wherein the instructions are further executable by the processor to cause the apparatus to:

determine, based at least in part on accessing the second level of the cache, that the portion of the second level of the cache comprises at least one empty location; and

access, based at least in part on the at least one empty location of the second level of the cache, at least one location of a second level of a memory device that corresponds to the at least one empty location in the second level of the cache,

wherein the second level of the memory device corresponds to the second level of the cache and the incremental snapshot, and a first level of the memory device corresponds to the first level of the cache and the full snapshot.

15. The apparatus of claim 14 , wherein the instructions are further executable by the processor to cause the apparatus to:

transfer, to corresponding locations of the second level of the cache, information stored at one or more locations of the at least one location of the second level of the memory device based at least in part on accessing the at least one location of the second level of the memory device.

16. The apparatus of claim 14 , wherein the instructions are further executable by the processor to cause the apparatus to:

access, responsive to the request and based at least in part on accessing the at least one location of the second level of the memory device, a portion of the first level of the cache, wherein the portion of the first level of the cache is non-overlapping with locations of the second level of the cache that comprise information and locations of the second level of the memory device that comprise information;

determine, based at least in part on accessing the first level of the cache, that the portion of the first level of the cache comprises at least one empty location; and

access, based at least in part on the at least one empty location of the first level of the cache, at least one location of the first level of the memory device that corresponds to the at least one empty location in the first level of the cache.

17. The apparatus of claim 12 , wherein the instructions are further executable by the processor to cause the apparatus to:

capture, prior to receiving the request, the full snapshot and the incremental snapshot, the incremental snapshot being captured after the full snapshot; and

store the full snapshot in a first level of a memory device and the incremental snapshot in a second level of the memory device.

18. The apparatus of claim 17 , wherein the instructions are further executable by the processor to cause the apparatus to:

configure, based at least in part on storing the full snapshot in the first level of the memory device, the first level of the cache to correspond with the first level of the memory device and the full snapshot; and

configure, based at least in part on storing the incremental snapshot in the second level of the memory device, the second level of the memory device to correspond with the second level of the memory device and the incremental snapshot.

19. A non-transitory, computer-readable medium that stores code comprising instructions that are executable by a processor to:

receive a request to access snapshot information stored in a plurality of snapshots, the plurality of snapshots comprising a full snapshot of a subject and an incremental snapshot of the subject;

access, responsive to the request, a second level of a cache that has a plurality of levels that correspond to the plurality of snapshots, wherein a first level of the cache corresponds to the full snapshot and the second level of the cache corresponds to the incremental snapshot; and

output, based at least in part on accessing the second level of the cache, a response to the request.

20. The non-transitory, computer-readable medium of claim 19 , wherein the request indicates a portion of the second level of the cache, and wherein the instructions are further executable by the processor to:

determine based at least in part on accessing the second level of the cache, that the portion of the second level of the cache comprises at least one location comprising information, wherein the response outputted to the request comprises the information stored at the at least one location.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2022
From: JOO, JONATHAN YOUNGHA; GEE, ADAM; JAIN, VIVEK SANJAY; LEE, JUNYONG
To: RUBRIK, INC.
Reel/Frame 060470/0901 →