IP Library Granted Patent US 12,271,271
Granted Patent B2
US 12,271,271 · App. 18/345,913 · Granted Apr 8, 2025

Scalable group backup in relational databases

Inventor: Prasenjit Sarkar (Los Gatos, CA)
Assignee: Rubrik, Inc.
G06F11/1464G06F11/1451G06F11/1461G06F11/1469G06F2201/80G06F2201/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 12,271,271
App. No.
18/345,913
Granted
Apr 8, 2025
Kind
B2
Abstract

In some examples, performing a backup of a group of relational databases comprises identifying the group of relational databases; identifying I/O traffic flowing into or out of the group of relational databases; temporarily freezing the I/O traffic flowing into or out of the group of relational databases; identifying a set of batch backup operations to be performed during the temporary I/O freeze; identifying relational dependencies between at least some databases in the group of relational databases; based on the identified relational dependencies, identifying, among the set of batch backup operations, a first sub-set of backup operations eligible to be performed in parallel, and a second sub-set of backup operations not eligible to be performed in parallel; conducting the backup, wherein conducting the backup comprises performing the identified first sub-set of backup operations in parallel and performing the identified second sub-set of backup operations sequentially; and unfreezing the I/O traffic.

Claims (57)

1. A method of performing a backup of a group of relational databases, the method comprising:

temporarily freezing input/output (I/O) traffic associated with the group of relational databases based at least in part on a plurality of backup operations to be performed on the group of relational databases;

performing a first sub-set of backup operations from among the plurality of backup operations in parallel, wherein performing the first sub-set of backup operations in parallel is based at least in part on a first set of relational dependencies between the first sub-set of backup operations;

performing a second sub-set of backup operations from among the plurality of backup operations sequentially, wherein performing the second sub-set of backup operations sequentially is based at least in part on a second set of relational dependencies between the second sub-set of backup operations; and

unfreezing the I/O traffic after performing the first sub-set of backup operations and the second sub-set of backup operations.

2. The method of claim 1 , further comprising:

identifying that the first sub-set of backup operations from among the plurality of backup operations is eligible to be performed in parallel based at least in part on a first quantity of dependencies included in the first set of relational dependencies; and

identifying that the second sub-set of backup operations from among the plurality of backup operations is not eligible to be performed in parallel based at least in part on a second quantity of dependencies included in the second set of relational dependencies.

3. The method of claim 1 , further comprising:

generating an order of operations associated with the plurality of backup operations, wherein performing the first sub-set of backup operations and the second sub-set of backup operations is based at least in part on the order of operations.

4. The method of claim 1 , further comprising:

identifying a database backup set comprising one or more databases from among the group of relational databases that are targeted for backup.

5. The method of claim 4 , wherein performing the first sub-set of backup operations and the second sub-set of backup operations comprises:

gathering metadata associated with the one or more databases in the database backup set based at least in part on identifying the database backup set, wherein the metadata comprises the first set of relational dependencies, the second set of relational dependencies, or both.

6. The method of claim 4 , wherein performing the first sub-set of backup operations and the second sub-set of backup operations comprises:

taking a snapshot of one or more volumes in which the database backup set resides; and

storing the snapshot as a volume shadow copy.

7. The method of claim 1 , wherein performing the first sub-set of backup operations and the second sub-set of backup operations comprises:

populating one or more database backup tables based at least in part on an accounting of the first sub-set of backup operations performed in parallel and the second sub-set of backup operations performed sequentially.

8. The method of claim 1 , wherein performing a backup operation of the plurality of backup operations comprises:

instantiating a snapshot writer to perform the backup operation; and

deleting the snapshot writer after completion of the backup operation.

9. The method of claim 1 , wherein the plurality of backup operations comprises backup operations to be performed on the group of relational databases while the I/O traffic is temporarily frozen.

10. An apparatus, comprising:

at least one processor;

at least one memory coupled with the at least one processor; and

instructions stored in the at least one memory and executable by the at least one processor to cause the apparatus to:

temporarily freeze input/output (I/O) traffic associated with a group of relational databases based at least in part on a plurality of backup operations to be performed on the group of relational databases;

perform a first sub-set of backup operations from among the plurality of backup operations in parallel, wherein performing the first sub-set of backup operations in parallel is based at least in part on a first set of relational dependencies between the first sub-set of backup operations;

perform a second sub-set of backup operations from among the plurality of backup operations sequentially, wherein performing the second sub-set of backup operations sequentially is based at least in part on a second set of relational dependencies between the second sub-set of backup operations; and

unfreeze the I/O traffic after performing the first sub-set of backup operations and the second sub-set of backup operations.

11. The apparatus of claim 10 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

identify the first sub-set of backup operations from among the plurality of backup operations is eligible to be performed in parallel based at least in part on a first quantity of dependencies included in the first set of relational dependencies; and

identify the second sub-set of backup operations from among the plurality of backup operations is not eligible to be performed in parallel based at least in part on a second quantity of dependencies included in the second set of relational dependencies.

12. The apparatus of claim 10 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

generate an order of operations associated with the plurality of backup operations, wherein performing the first sub-set of backup operations and the second sub-set of backup operations is based at least in part on the order of operations.

13. The apparatus of claim 10 , wherein the instructions are further executable by the at least one processor to cause the apparatus to:

identify a database backup set comprising one or more databases from among the group of relational databases that are targeted for backup.

14. The apparatus of claim 13 , wherein the instructions to perform the first sub-set of backup operations and the second sub-set of backup operations are further executable by the at least one processor to cause the apparatus to:

gather metadata associated with the one or more databases in the database backup set based at least in part on identifying the database backup set, wherein the metadata comprises the first set of relational dependencies, the second set of relational dependencies, or both.

15. The apparatus of claim 13 , wherein the instructions to perform the first sub-set of backup operations and the second sub-set of backup operations are further executable by the at least one processor to cause the apparatus to:

take a snapshot of one or more volumes in which the database backup set resides; and

store the snapshot as a volume shadow copy.

16. The apparatus of claim 10 , wherein the instructions to perform the first sub-set of backup operations and the second sub-set of backup operations are further executable by the at least one processor to cause the apparatus to:

populate one or more database backup tables based at least in part on an accounting of the first sub-set of backup operations performed in parallel and the second sub-set of backup operations performed sequentially.

17. A non-transitory computer-readable medium storing code, the code comprising instructions executable by at least one processor to:

temporarily freeze input/output (I/O) traffic associated with a group of relational databases based at least in part on a plurality of backup operations to be performed on the group of relational databases;

perform a first sub-set of backup operations from among the plurality of backup operations in parallel, wherein performing the first sub-set of backup operations in parallel is based at least in part on a first set of relational dependencies between the first sub-set of backup operations;

perform a second sub-set of backup operations from among the plurality of backup operations sequentially, wherein performing the second sub-set of backup operations sequentially is based at least in part on a second set of relational dependencies between the second sub-set of backup operations; and

unfreeze the I/O traffic after performing the first sub-set of backup operations and the second sub-set of backup operations.

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

identify the first sub-set of backup operations from among the plurality of backup operations is eligible to be performed in parallel based at least in part on a first quantity of dependencies included in the first set of relational dependencies; and

identify the second sub-set of backup operations from among the plurality of backup operations is not eligible to be performed in parallel based at least in part on a second quantity of dependencies included in the second set of relational dependencies.

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

generate an order of operations associated with the plurality of backup operations, wherein performing the first sub-set of backup operations and the second sub-set of backup operations is based at least in part on the order of operations.

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

identify a database backup set comprising one or more databases from among the group of relational databases that are targeted for backup.

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, 2023
From: SARKAR, PRASENJIT
To: RUBRIK, INC.
Reel/Frame 064207/0186 →
Continuity (2)
Continuation 17486256 · Sep 27, 2021
Related Publication 20230342264A1 · Oct 26, 2023
References Cited (14)
US 6480904B1 · Kato · 2002 [cited by examiner]
US 10146629B1 · Yadav et al. · 2018 [cited by applicant]
US 11032156B1 · Jain et al. · 2021 [cited by applicant]
US 11567871B2 · Allu et al. · 2023 [cited by applicant]
US 11748207B2 · Sarkar · 2023 [cited by applicant]
US 20100100698A1 · Yang et al. · 2010 [cited by applicant]
US 20120017214A1 · Shannon et al. · 2012 [cited by applicant]
US 20140136708A1 · Dees, Jr et al. · 2014 [cited by applicant]
US 20140229628A1 · Mandal · 2014 [cited by applicant]
US 20150278328A1 · Honsowetz et al. · 2015 [cited by applicant]
US 20200034245A1 · Kohler · 2020 [cited by applicant]
US 20210263779A1 · Haghighat et al. · 2021 [cited by applicant]
US 20220214998A1 · Mutnuru · 2022 [cited by applicant]
US 20230095814A1 · Sarkar · 2023 [cited by applicant]