IP Library Granted Patent US 12,277,036
Granted Patent B2
US 12,277,036 · App. 16/890,542 · Granted Apr 15, 2025

Database snapshot and backup management with recoverable chains

Inventors: Jiangbin Luo (Cupertino, CA); Christopher Wong (Mountain View, CA)
Assignee: Rubrik, Inc.
G06F11/1469G06F11/1471G06F2201/80G06F2201/805G06F2201/82G06F2201/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,277,036
App. No.
16/890,542
Granted
Apr 15, 2025
Kind
B2
Abstract

Methods and systems for recovering databases and other applications with reduced downtime using recoverable chains are described. When protecting or backing up a database, an integrated data management and storage system may capture snapshots of the database at a snapshot frequency (e.g., at 15 minute intervals) and acquire database transaction logs that include data changes of the database at a frequency that is greater than the snapshot frequency. The integrated data management and storage system may generate a particular point in time version of the database by identifying a recoverable chain that comprises a combination of one or more database snapshots including the snapshot closest to the recovery point and one or more database transaction logs.

Claims (48)

1. A method, comprising,

creating, by a data management system, a first recoverable chain comprising a first full image of a virtual machine and a set of reverse incremental files, wherein the first full image and the set of reverse incremental files correspond to a first set of restore points for the virtual machine, wherein each of the set of reverse incremental files stores data changes to the virtual machine relative to a respective immediately subsequent restore point of the first recoverable chain that occurred before the first full image was taken, wherein a time to restore the virtual machine to a first restore point using the first recoverable chain is less than a time to restore the virtual machine to the first restore point using a second recoverable chain, the first full image comprising a most recent restore point of the first recoverable chain, and wherein the first restore point corresponds to one of the set of reverse incremental files;

creating, by the data management system, the second recoverable chain comprising at least one second full image of the virtual machine and a set of forward incremental files, wherein the at least one second full image of the virtual machine and the set of forward incremental files correspond to a second set of restore points for the virtual machine, wherein each of the set of forward incremental files stores data changes to the virtual machine relative to a respective immediately prior restore point of the second recoverable chain that occurred after the at least one second full image was taken, wherein a time to restore the virtual machine to a second restore point using the second recoverable chain is less than a time to restore the virtual machine to the second restore point using the first recoverable chain, and wherein the second restore point corresponds to one of the set of forward incremental files;

determining a first combined disk size associated with the first recoverable chain;

determining a second combined disk size associated with the second recoverable chain;

identifying, based at least in part on the first combined disk size and the second combined disk size, a recoverable chain associated with a smaller combined disk size from among the first recoverable chain and the second recoverable chain, the recoverable chain associated with the smaller combined disk size being the first recoverable chain or the second recoverable chain; and

restoring the virtual machine to a point in time using the recoverable chain associated with the smaller combined disk size.

2. The method of claim 1 , wherein, based at least in part on a backup file gap in the first recoverable chain, the data management system is unable to restore the virtual machine to a third restore point using the first recoverable chain.

3. The method of claim 1 , wherein the at least one second full image of the second recoverable chain comprises the first full image of the first recoverable chain, and wherein the set of forward incremental files store changes to the virtual machine that occurred after the first full image was taken.

4. The method of claim 1 , wherein at least one of the first recoverable chain or the second recoverable chain comprises one or more backup metadata files associated with a backup job scheduled by the data management system, the one or more backup metadata files identifying one or more of a set of virtual machines associated with the backup job, a number of backup files associated with the backup job, or a set of restore points associated with the backup job.

5. The method of claim 1 , wherein the first restore point corresponds to a first snapshot of the virtual machine at a first point in time and the second restore point corresponds to a second snapshot of the virtual machine at a second point in time.

6. The method of claim 1 , further comprising:

creating respective recoverable chains for a plurality of virtual machines in accordance with a backup job scheduled by the data management system, the respective recoverable chains comprising one or both of the first recoverable chain or the second recoverable chain.

7. The method of claim 1 , further comprising:

applying the data changes stored in one or more reverse incremental files of the set of reverse incremental files to the first full image of the first recoverable chain to restore the virtual machine to the first restore point.

8. The method of claim 1 , wherein the second recoverable chain comprises more than one full image of the virtual machine.

9. The method of claim 1 , wherein the time to restore the virtual machine to the first restore point using the first recoverable chain is less than the time to restore the virtual machine to the second restore point using the first recoverable chain.

10. The method of claim 1 , wherein the time to restore the virtual machine to the second restore point using the second recoverable chain is less than the time to restore the virtual machine to the first restore point using the second recoverable chain.

11. The method of claim 1 , further comprising:

generating, by the data management system, the first full image via combining a third full image of the virtual machine with a forward incremental file that stores data changes to the virtual machine relative to the third full image that occurred after the third full image, wherein the forward incremental file corresponds to the most recent restore point; and

generating, by the data management system, a first reverse incremental file of the set of reverse incremental files based on the data changes stored in the forward incremental file, wherein the first reverse incremental file corresponds to a same restore point as the third full image.

12. A data management system, comprising:

one or more memories storing code; and

one or more processors coupled with the one or more memories and operable to execute the code to cause the data management system to:

create a first recoverable chain comprising a first full image of a virtual machine and a set of reverse incremental files, wherein the first full image and the set of reverse incremental files correspond to a first set of restore points for the virtual machine, wherein each of the set of reverse incremental files is configured to store data changes to the virtual machine relative to a respective immediately subsequent restore point of the first recoverable chain that occurred before the first full image was taken, wherein a time to restore the virtual machine to a first restore point using the first recoverable chain is less than a time to restore the virtual machine to the first restore point using a second recoverable chain, the first full image comprising a most recent restore point of the first recoverable chain, and wherein the first restore point corresponds to one of the set of reverse incremental files;

create the second recoverable chain comprising at least one second full image of the virtual machine and a set of forward incremental files, wherein the at least one second full image of the virtual machine and the set of forward incremental files correspond to a second set of restore points for the virtual machine, wherein each of the set of forward incremental files is configured to store data changes to the virtual machine relative to a respective immediately prior restore point of the second recoverable chain that occurred after the at least one second full image was taken, wherein a time to restore the virtual machine to a second restore point using the second recoverable chain is less than a time to restore the virtual machine to the second restore point using the first recoverable chain, and wherein the second restore point corresponds to one of the set of forward incremental files;

determine a first combined disk size associated with the first recoverable chain;

determine a second combined disk size associated with the second recoverable chain;

identify, based at least in part on the first combined disk size and the second combined disk size, a recoverable chain associated with a smaller combined disk size from among the first recoverable chain and the second recoverable chain, the recoverable chain associated with the smaller combined disk size being the first recoverable chain or the second recoverable chain; and

restore the virtual machine to a point in time using the recoverable chain associated with the smaller combined disk size.

13. The data management system of claim 12 , wherein, based at least in part on a backup file gap in the first recoverable chain, the data management system is unable to restore the virtual machine to a third restore point using the first recoverable chain.

14. The data management system of claim 12 , wherein the at least one second full image of the second recoverable chain comprises the first full image of the first recoverable chain, and wherein the set of forward incremental files store changes to the virtual machine that occurred after the first full image was taken.

15. The data management system of claim 12 , wherein at least one of the first recoverable chain or the second recoverable chain comprises one or more backup metadata files associated with a backup job scheduled by the data management system, the one or more backup metadata files identifying one or more of a set of virtual machines associated with the backup job, a number of backup files associated with the backup job, or a set of restore points associated with the backup job.

16. The data management system of claim 12 , wherein the first restore point corresponds to a first snapshot of the virtual machine at a first point in time and the second restore point corresponds to a second snapshot of the virtual machine at a second point in time.

17. The data management system of claim 12 , wherein the one or more processors are further operable to execute the code to cause the data management system to:

create respective recoverable chains for a plurality of virtual machines in accordance with a backup job scheduled by the data management system, the respective recoverable chains comprising one or both of the first recoverable chain or the second recoverable chain.

18. The data management system of claim 12 , wherein the one or more processors are further operable to execute the code to cause the data management system to:

apply the data changes stored in one or more reverse incremental files of the set of reverse incremental files to the first full image of the first recoverable chain to restore the virtual machine to the first restore point.

19. The data management system of claim 12 , wherein the one or more processors are further operable to execute the code to cause the data management system to:

generate, by the data management system, the first full image via combining a third full image of the virtual machine with a forward incremental file that stores data changes to the virtual machine relative to the third full image that occurred after the third full image, wherein the forward incremental file corresponds to the most recent restore point; and

generate, by the data management system, a first reverse incremental file of the set of reverse incremental files based on the data changes stored in the forward incremental file, wherein the first reverse incremental file corresponds to a same restore point as the third full image.

20. A non-transitory computer-readable medium storing code that comprises instructions executable by one or more processors to:

create, by a data management system, a first recoverable chain comprising a first full image of a virtual machine and a set of reverse incremental files, wherein the first full image and the set of reverse incremental files correspond to a first set of restore points for the virtual machine, wherein each of the set of reverse incremental files is configured to store data changes to the virtual machine relative to a respective immediately subsequent restore point of the first recoverable chain that occurred before the first full image was taken, wherein a time to restore the virtual machine to a first restore point using the first recoverable chain is less than a time to restore the virtual machine to the first restore point using a second recoverable chain, the first full image comprising a most recent restore point of the first recoverable chain, and wherein the first restore point corresponds to one of the set of reverse incremental files;

create, by the data management system, the second recoverable chain comprising at least one second full image of the virtual machine and a set of forward incremental files, wherein the at least one second full image of the virtual machine and the set of forward incremental files correspond to a second set of restore points for the virtual machine, wherein each of the set of forward incremental files is configured to store data changes to the virtual machine relative to a respective immediately prior restore point of the second recoverable chain that occurred after the at least one second full image was taken, wherein a time to restore the virtual machine to a second restore point using the second recoverable chain is less than a time to restore the virtual machine to the second restore point using the first recoverable chain, and wherein the second restore point corresponds to one of the set of forward incremental files;

determine a first combined disk size associated with the first recoverable chain;

determine a second combined disk size associated with the second recoverable chain;

identify, based at least in part on the first combined disk size and the second combined disk size, a recoverable chain associated with a smaller combined disk size from among the first recoverable chain and the second recoverable chain, the recoverable chain associated with the smaller combined disk size being the first recoverable chain or the second recoverable chain; and

restore the virtual machine to a point in time using the recoverable chain associated with the smaller combined disk size.

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 Jan 11, 2021
From: LUO, JIANGBIN; WONG, CHRISTOPHER
To: RUBRIK, INC.
Reel/Frame 054874/0482 →
Continuity (2)
Continuation 15819373 · Nov 21, 2017
Related Publication 20210117293A1 · Apr 22, 2021
References Cited (86)
US 6324548B1 · Sorenson · 2001 [cited by applicant]
US 6701345B1 · Carley et al. · 2004 [cited by applicant]
US 7620785B1 · Coulter · 2009 [cited by examiner]
US 8244685B2 · Fiske · 2012 [cited by applicant]
US 8478726B2 · Habermann et al. · 2013 [cited by applicant]
US 9558072B1 · Mam · 2017 [cited by applicant]
US 9563655B2 · Chen et al. · 2017 [cited by applicant]
US 10049020B2 · French et al. · 2018 [cited by applicant]
US 10713124B2 · Luo et al. · 2020 [cited by applicant]
US 11216344B2 · Kochar et al. · 2022 [cited by applicant]
US 11416344B2 · Zhou et al. · 2022 [cited by applicant]
US 20020007363A1 · Vaitzblit · 2002 [cited by applicant]
US 20030061537A1 · Cha et al. · 2003 [cited by applicant]
US 20030191782A1 · Buxton et al. · 2003 [cited by applicant]
US 20030220950A1 · Hiraoka et al. · 2003 [cited by applicant]
US 20040181560A1 · Romanufa et al. · 2004 [cited by applicant]
US 20050081118A1 · Cheston et al. · 2005 [cited by applicant]
US 20050120064A1 · Sinha et al. · 2005 [cited by applicant]
US 20070083530A1 · Lakshminath et al. · 2007 [cited by applicant]
US 20070185922A1 · Kapoor et al. · 2007 [cited by applicant]
US 20070294495A1 · Uchida et al. · 2007 [cited by applicant]
US 20080229142A1 · Anand et al. · 2008 [cited by applicant]
US 20080270838A1 · Dorai et al. · 2008 [cited by applicant]
US 20080285449A1 · Larsson et al. · 2008 [cited by applicant]
US 20090228429A1 · Diaconu et al. · 2009 [cited by applicant]
US 20090323970A1 · Cerruti et al. · 2009 [cited by applicant]
US 20100017573A1 · Shinozaki et al. · 2010 [cited by applicant]
US 20110087874A1 · Timashev et al. · 2011 [cited by applicant]
US 20110161295A1 · Ngo · 2011 [cited by applicant]
US 20110161327A1 · Pawar · 2011 [cited by applicant]
US 20110258164A1 · Mandagere et al. · 2011 [cited by applicant]
US 20120110287A1 · Han et al. · 2012 [cited by applicant]
US 20130111266A1 · Tosaka · 2013 [cited by applicant]
US 20140108367A1 · Kim et al. · 2014 [cited by applicant]
US 20140115232A1 · Goss et al. · 2014 [cited by applicant]
US 20150112591A1 · Kim et al. · 2015 [cited by applicant]
US 20150261623A1 · Ho · 2015 [cited by examiner]
US 20150370644A1 · Graefe et al. · 2015 [cited by applicant]
US 20160110268A1 · Sekiguchi · 2016 [cited by examiner]
US 20160117228A1 · Farlee et al. · 2016 [cited by applicant]
US 20160306709A1 · Shaull · 2016 [cited by applicant]
US 20170075764A1 · Banister · 2017 [cited by applicant]
US 20170230177A1 · Barbas et al. · 2017 [cited by applicant]
US 20180137016A1 · Brown · 2018 [cited by examiner]
US 20180373604A1 · Martin et al. · 2018 [cited by applicant]
US 20190073372A1 · Venkatesan · 2019 [cited by examiner]
US 20190102257A1 · Zhou et al. · 2019 [cited by applicant]
US 20190155699A1 · Luo et al. · 2019 [cited by applicant]
US 20210224166A1 · Luo et al. · 2021 [cited by applicant]
US 20210357297A1 · Kochar et al. · 2021 [cited by applicant]
US 20220058093A1 · Kochar et al. · 2022 [cited by applicant]
US 20220114064A1 · Gupta et al. · 2022 [cited by applicant]
US 20220327026A1 · Zhou et al. · 2022 [cited by applicant]
WO 2019070915 · 2019 [cited by applicant]
U.S. Appl. No. 17/517,895, filed Nov. 3, 2021, Real Time Database Backup Status Indication and Restore. [cited by applicant]
“U.S. Appl. No. 16/151,263, Examiner Interview Summary mailed Nov. 4, 2021”, 2 pages. [cited by applicant]
“U.S. Appl. No. 16/151,263, Response filed Nov. 8, 2021 to Non Final Office Action mailed Aug. 10, 2021”, 10 pages. [cited by applicant]
“U.S. Appl. No. 15/931,291, Corrected Notice of Allowability mailed Dec. 1, 2021”, 2 pages. [cited by applicant]
“U.S. Appl. No. 15/931,291, Response filed Jul. 7, 2021 to Non Final Office Action mailed Apr. 15, 2021”, 9 pages. [cited by applicant]
U.S. Appl. No. 17/849,939, filed Jun. 27, 2022, Pending. [cited by applicant]
U.S. Appl. No. 17/517,895, filed Nov. 3, 2021, Pending. [cited by applicant]
PCT/US2018/054256, Oct. 3, 2018, Published, WO 2019/070915 A1. [cited by applicant]
EP 18864993.3, Oct. 3, 2018, Withdrawn. [cited by applicant]
EP Application No. 18864993.3, Extended European Search Report dated Oct. 23, 2020, 8 pages. [cited by applicant]
U.S. Appl. No. 16/151,263, filed Oct. 3, 2018, Partial Database Restoration. [cited by applicant]
U.S. Appl. No. 15/819,373 U.S. Pat. No. 10,713,124, filed Nov. 21, 2017, Database Snapshot and Backup Management With Recoverable Chains. [cited by applicant]
U.S. Appl. No. 15/931,291, filed May 13, 2020, Real Time Database Backup Status Indication and Restore. [cited by applicant]
U.S. Appl. No. 17/143,081, filed Jan. 6, 2021, Database Snapshot and Backup Management With Recoverable Chains. [cited by applicant]
“U.S. Appl. No. 15/931,291, Notice of Allowance mailed Aug. 4, 2021”, 7 pages. [cited by applicant]
“U.S. Appl. No. 16/151,263, Non Final Office Action mailed Aug. 10, 2021”, 23 pages. [cited by applicant]
“International Application Serial No. PCT US2018 054256, International Search Report mailed Dec. 4, 2018”, 3 pgs. [cited by applicant]
“International Application Serial No. PCT US2018 054256, Written Opinion mailed Dec. 4, 2018”, 4 pgs. [cited by applicant]
“U.S. Appl. No. 15/819,373, Non Final Office Action mailed Nov. 27, 2019”, 27 pgs. [cited by applicant]
“U.S. Appl. No. 15/819,373, Response filed Feb. 19, 2020 to Non Final Office Action mailed Nov. 27, 2019”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 15/819,373, Notice of Allowance mailed Mar. 5, 2020”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 16/151,263, Non Final Office Action mailed Apr. 23, 2020”, 23 pgs. [cited by applicant]
“U.S. Appl. No. 16/151,263, Response filed Oct. 21, 2020 to Non Final Office Action mailed Apr. 23, 2020”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 16/151,263, Final Office Action mailed Dec. 2, 2020”, 23 pgs. [cited by applicant]
“U.S. Appl. No. 16/151,263, Response filed Mar. 1, 2021 to Final Office Action mailed Dec. 2, 2020”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 16/151,263, Advisory Action mailed Mar. 10, 2021”, 3 pgs. [cited by applicant]
“U.S. Appl. No. 17/143,081, Preliminary Amendment filed Apr. 12, 2021”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 15/931,291, Non Final Office Action mailed Apr. 15, 2021”, 8 pages. [cited by applicant]
Osuna, A, “Introduction to SnapManager for Virtual Infrastructure”, SnapManager 2.0 for Virtual Infrastructure Best Practices, (2010), 6 pages. [cited by applicant]
Rubrik, “Rubrik Announces Andes 5.0 Release”, (Nov. 14, 2018), 7 pages. [cited by applicant]
Rubrik, “Rubrik Andes 5.0”, (Nov. 12, 2018), 2 pages. [cited by applicant]
Rubrik, “Game-Changing Innovation for Oracle Data Management”, (Nov. 12, 2018), 4 pages. [cited by applicant]