IP Library Granted Patent US 11,886,226
Granted Patent B2
US 11,886,226 · App. 17/536,601 · Granted Jan 30, 2024

Consolidating snapshots using partitioned patch files

Inventors: Vijay Karthik (Sunnyvale, CA); Abdullah Reza (Gilroy, CA)
Assignee: Rubrik, Inc.
G06F11/1451G06F16/125G06F16/128
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,886,226
App. No.
17/536,601
Granted
Jan 30, 2024
Kind
B2
Abstract

A method of consolidating snapshots includes receiving a request to consolidate a first snapshot with a second snapshot into a third snapshot, the first and second snapshots stored in separate backup files, each backup file organized as a directory where data parts of the first and second snapshots can be hard linked to locations outside of the backup file, comparing the data parts of the first and second snapshots to determine if any second snapshot data part fully overlaps with any first snapshot data part, responsive to determining that a second snapshot data part fully overlaps with a first snapshot data part, hard linking the determined second snapshot data part into the third snapshot, and storing the third snapshot in the backup file.

Claims (37)

1. A method of consolidating snapshots, comprising:

receiving a request to consolidate a first snapshot with a second snapshot into a third snapshot, the first and second snapshots stored in backup files, the backup files organized as directories where data parts of the first and second snapshots are hard linked to locations outside of the backup files;

comparing the data parts of the first and second snapshots to determine if any second snapshot data part fully overlaps with any first snapshot data part;

responsive to determining that a second snapshot data part fully overlaps with a first snapshot data part, hard linking the determined second snapshot data part into the third snapshot; and

storing the third snapshot in a third backup file.

2. The method of claim 1 , wherein the comparing compares logical offsets of the data parts of the first and second snapshots.

3. The method of claim 2 , wherein the backup files include indices indicating the logical offsets of the data parts.

4. The method of claim 1 , further comprising responsive to determining that an additional second snapshot data part partially overlaps with an additional first snapshot data part, consolidating the additional first and second snapshot data parts via regenerating a third snapshot data part based on the additional first and second snapshot data parts.

5. The method of claim 1 , wherein the data parts correspond to logical offset blocks of configurable size.

6. The method of claim 1 , wherein a backup file includes a manifest that lists all files in the backup file and their logical size.

7. The method of claim 1 , further comprising responsive to determining that for an additional first snapshot data part there is no corresponding additional second snapshot data part, hard linking the additional first snapshot data part into the third snapshot.

8. The method of claim 1 , further comprising responsive to determining that for an additional second snapshot data part there is no corresponding additional first snapshot data part, hard linking the additional second snapshot data part into the third snapshot.

9. The method of claim 1 , wherein the first and second snapshots are incremental snapshots.

10. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

receive a request to consolidate a first snapshot with a second snapshot into a third snapshot, the first and second snapshots stored in backup files, the backup files organized as directories where data parts of the first and second snapshots are hard linked to locations outside of the backup files;

compare the data parts of the first and second snapshots to determine if any second snapshot data part fully overlaps with any first snapshot data part;

responsive to determining that a second snapshot data part fully overlaps with a first snapshot data part, hard link the determined second snapshot data part into the third snapshot; and

store the third snapshot in a third backup file.

11. A computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the apparatus to:

receive a request to consolidate a first snapshot with a second snapshot into a third snapshot, the first and second snapshots stored in backup files, the backup files organized as directories where data parts of the first and second snapshots are hard linked to locations outside of the backup files;

compare the data parts of the first and second snapshots to determine if any second snapshot data part fully overlaps with any first snapshot data part;

responsive to determining that a second snapshot data part fully overlaps with a first snapshot data part, hard link the determined second snapshot data part into the third snapshot; and

store the third snapshot in a third backup file.

12. The computing apparatus of claim 11 , wherein the comparing compares logical offsets of the data parts of the first and second snapshots.

13. The computing apparatus of claim 12 , wherein the backup files include indices indicating the logical offsets of the data parts.

14. The computing apparatus of claim 11 , wherein the instructions, when executed by the processor, further configure the computing apparatus to:

responsive to determining that an additional second snapshot data part partially overlaps with an additional first snapshot data part, consolidate the additional first and second data parts via regenerating a third snapshot data part based on the additional first and second snapshot data parts.

15. The computing apparatus of claim 11 , the data parts correspond to logical offset blocks of configurable size.

16. The computing apparatus of claim 11 , wherein a backup file includes a manifest that lists all files in the backup file and their logical size.

17. The computing apparatus of claim 11 , wherein the instructions, when executed by the processor, further configure the computing apparatus to:

responsive to determining that for an additional first snapshot data part there is no corresponding additional second snapshot data part, hard linking the additional first snapshot data part into the third snapshot.

18. The computing apparatus of claim 11 , wherein the instructions, when executed by the processor, further configure the computing apparatus to:

responsive to determining that for an additional second snapshot data part there is no corresponding additional first snapshot data part, hard linking the additional second snapshot data part into the third snapshot.

19. The computing apparatus of claim 11 , wherein the first and second snapshots are incremental snapshots.

20. The computing apparatus of claim 11 , wherein the first snapshot is a base snapshot and the second snapshot in an incremental snapshot.

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 Dec 7, 2021
From: KARTHIK, VIJAY; REZA, ABDULLAH
To: RUBRIK, INC.
Reel/Frame 058317/0556 →
Cited By (3)
US 12,271,267 US 12,298,858 US 12,487,892