IP Library Granted Patent US 11,656,949
Granted Patent B2
US 11,656,949 · App. 17/473,130 · Granted May 23, 2023

Snapshot range filters

Inventors: Vijay Karthik (Sunnyvale, CA); Abdullah Reza (Gilroy, CA)
Assignee: Rubrik, Inc.
G06F11/1451G06F11/1464G06F11/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,656,949
App. No.
17/473,130
Granted
May 23, 2023
Kind
B2
Abstract

In some examples, a method comprises: receiving a request to read data within a specified range from a backup file storing at least one base snapshot and at least one incremental snapshot; looking up the specified range in range filters from the backup file, the range filters corresponding to snapshots stored in the backup file and each range filter comprising bits indicating whether data exists at respective ranges within the snapshot corresponding to the respective range filter; and in response to the looking up, reading the requested data from the looked-up range in the backup file.

Claims (47)

1. A method, comprising:

receiving a request to read data within a specified logical address range from a backup file storing at least one base snapshot and at least one incremental snapshot;

looking up the specified logical address range in range filters associated with the backup file, the range filters corresponding to respective snapshots stored in the backup file and each range filter comprising bits indicating whether a corresponding snapshot includes data within a corresponding logical address range of the backup file that is spanned by the range filter, wherein at least two of the range filters span at least the specified logical address range from the backup file; and

in response to the looking up, reading the requested data from the looked-up range in the backup file.

2. The method of claim 1 , wherein each range filter is generated by:

setting a range filter size;

scanning snapshots for data at the set range filter size;

generating corresponding range filters for each snapshot based on the scanning; and

storing the generated range filters in a root index of the backup file.

3. The method of claim 2 , further comprising adjusting the range filter size as the backup file increases in size.

4. The method of claim 3 , wherein the adjusting the range filter size doubles the range filter size when the backup file doubles in size.

5. The method of claim 1 , wherein the backup file is a two-level index key value store.

6. The method of claim 1 , wherein each range filter is generated by:

setting a range filter size;

scanning snapshot indices for data at the set range filter size;

generating corresponding range filters for each snapshot index based on the scanning; and

storing the generated range filters in a root index of the backup file.

7. The method of claim 1 , further comprising restoring a backed-up file using the read requested data.

8. The method of claim 1 , wherein the range filters are stored as range filter bit vectors.

9. The method of claim 1 , further comprising reading a root index having the range filters into memory without reading snapshot indices into memory.

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 read data within a specified logical address range from a backup file storing at least one base snapshot and at least one incremental snapshot;

look up the specified logical address range in range filters associated with the backup file, the range filters corresponding to respective snapshots stored in the backup file and each range filter comprising bits indicating whether a corresponding snapshot includes data within a corresponding logical address range of the backup file that is spanned by the range filter, wherein at least two of the range filters span at least the specified logical address range from the backup file; and

in response to the looking up, reading the requested data from the looked-up range in the 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 read data within a specified logical address range from a backup file storing at least one base snapshot and at least one incremental snapshot;

look up the specified logical address range in range filters associated with the backup file, the range filters corresponding to respective snapshots stored in the backup file and each range filter comprising bits indicating whether a corresponding snapshot includes data within a corresponding logical address range of the backup file that is spanned by the range filter, wherein at least two of the range filters span at least the specified logical address range from the backup file; and

in response to the looking up, reading the requested data from the looked-up range in the backup file.

12. The computing apparatus of claim 11 , wherein each range filter is generated by:

setting a range filter size;

scanning snapshots for data at the set range filter size;

generating corresponding range filters for each snapshot based on the scanning; and

storing the generated range filters in a root index of the backup file.

13. The computing apparatus of claim 12 , wherein the instructions further configure the apparatus to adjust the range filter size as the backup file increases in size.

14. The computing apparatus of claim 13 , wherein the adjusting the range filter size doubles the range filter size when the backup file doubles in size.

15. The computing apparatus of claim 13 , wherein the range filter is a bit vector and the adjusting the range filter size doubles the range filter size by ORing adjacent bits in the range filter.

16. The computing apparatus of claim 11 , wherein the backup file is a two-level index key value store.

17. The computing apparatus of claim 11 , wherein each range filter is generated by:

setting a range filter size;

scanning snapshot indices for data at the set range filter size;

generating corresponding range filters for each snapshot index based on the scanning; and

storing the generated range filters in a root index of the backup file.

18. The computing apparatus of claim 11 , wherein the instructions further configure the apparatus to restore a backed-up file using the read requested data.

19. The computing apparatus of claim 11 , wherein the range filters are stored as range filter bit vectors.

20. The computing apparatus of claim 11 , wherein the instructions configure the apparatus to read a root index having the range filters into memory without reading snapshot indices into memory.

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 Sep 17, 2021
From: KARTHIK, VIJAY; REZA, ABDULLAH
To: RUBRIK, INC.
Reel/Frame 057511/0862 →
Continuity (1)
Related Publication 20230080500A1 · Mar 16, 2023