IP Library Granted Patent US 10,628,270
Granted Patent B1
US 10,628,270 · App. 16/252,491 · Granted Apr 21, 2020

Point-in-time database restoration using a reduced dataset

Inventors: Rupesh Bajaj (Bangalore, IN); Sunil Moolchandani (Sunnyvale, CA); Sandeep Tandekar (Bangalore, IN); Vivek Velankar (Bangalore, IN)
Assignee: Cohesity, Inc.
G06F11/1469G06F11/1451G06F16/273G06F2201/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 10,628,270
App. No.
16/252,491
Granted
Apr 21, 2020
Kind
B1
Abstract

A method and system for restoring a database are described. An identification of a restoration point of the database is received. Using a processor, metadata of a plurality of backups are analyzed to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point. The reduced dataset is provided for use in restoring the database to the restoration point.

Claims (104)

1. A method, comprising:

receiving an identification of a restoration point of a database;

analyzing, using a processor, metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

providing the reduced dataset for use in restoring the database to the restoration point;

wherein the analyzing further comprises:

detecting a backup having a time range including the restoration point;

detecting a full or incremental backup closest to and before the restoration point,

identifying a plurality of transactions occurring between the full or incremental backup and the backup; and

wherein the providing the reduced dataset further includes

providing the plurality of transactions and at least one additional transaction from the backup; and

wherein the detecting the backup further comprises:

determining, using the processor, a first node of a restore tree, the restore tree including a plurality of nodes corresponding to a plurality of backups, the first node corresponding to the backup; and

wherein the detecting the full or incremental backup includes traversing a portion of a restore tree from the first node to a second node corresponding to the full or incremental backup.

2. The method of claim 1 , wherein the detecting the full or incremental backup further includes:

ensuring that the full or incremental backup and the backup share a branch of the restore tree.

3. The method of claim 1 , wherein the backup is a log backup.

4. The method of claim 1 , further comprising:

restoring the database using the full or incremental backup and the plurality of transactions.

5. The method of claim 1 , wherein the full or incremental backup is selected from a full backup and a fully hydrated incremental backup.

6. The method of claim 1 , further comprising building the restore tree.

7. The method of claim 1 , further comprising completing restoration of the database using the full or incremental backup and the plurality of transactions.

8. The method of claim 7 , wherein completing restoration of the database using the full or incremental backup and the plurality of transactions includes cloning files associated with the full or incremental backup and the plurality of transactions.

9. The method of claim 8 , further comprising storing the cloned files as a temporary view.

10. The method of claim 9 , further comprising deleting the temporary view upon completing the restoration of the database.

11. The method of claim 1 , further comprising determining a log file from the full or incremental backup.

12. A method, comprising:

receiving an identification of a restoration point of a database;

analyzing, using a processor, metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

providing the reduced dataset for use in restoring the database to the restoration point;

wherein the analyzing further comprises:

detecting a backup having a time range including the restoration point;

detecting a full or incremental backup closest to and before the restoration point; and

identifying a plurality of transactions occurring between the full or incremental backup and the backup;

wherein the providing further includes

providing the plurality of transactions and at least one additional transaction from the backup; and

wherein the restoration point has a database restoration time and a storage system restoration time and wherein the detecting the backup further includes:

identifying a database backup time range for each of the plurality of backups;

identifying a storage system backup time for each of the plurality of backups; and

selecting the backup as having the database backup time range including the database restoration time and the storage system backup time range including the storage system restoration time.

13. A system for restoring a database, comprising

a processor configured to:

receive an identification of a restoration point of the database;

analyze metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

provide the reduced dataset for use in restoring the database to the restoration point; and

a memory coupled to the processor and configured to provide the processor with instructions;

wherein the to analyze the metadata, the processor is configured to:

detect a backup having a time range including the restoration point;

detect a full or incremental backup closest to and before the restoration point; and

identify a plurality of transactions occurring between the full or incremental backup and the backup;

wherein to provide the reduced dataset the processor is configured to provide the plurality of transactions and at least one additional transaction from the backup; and

wherein to detect the backup the processor is further configured to:

determine a first node of a restore tree, the restore tree including a plurality of nodes corresponding to a plurality of backups, the first node corresponding to the backup; and

wherein to detect the full or incremental backup the processor is configured to traverse a portion of a restore tree from the first node to a second node corresponding to the full or incremental backup.

14. The system of claim 13 , wherein to detect the full or incremental backup the processor is further configured to ensure that the full or incremental backup and the backup share a branch of the restore tree.

15. The system of claim 13 , wherein the backup is a log backup.

16. The system of claim 13 , wherein the full or incremental backup is selected from a full backup and a fully hydrated incremental backup.

17. A system for restoring a database, comprising:

a processor configured to:

receive an identification of a restoration point of the database;

analyze metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

provide the reduced dataset for use in restoring the database to the restoration point; and

a memory coupled to the processor and configured to provide the processor with instructions

wherein the to analyze the metadata, the processor is configured to:

detect a backup having a time range including the restoration point;

detect a full or incremental backup closest to and before the restoration point; and

identify a plurality of transactions occurring between the full or incremental backup and the backup;

wherein to provide the reduced dataset the processor is configured to

provide the plurality of transactions and at least one additional transaction from the backup; and

wherein the restoration point has a database restoration time and a storage system restoration time and wherein to detect the backup the processor is further configured to:

identify a database backup time range for each of the plurality of backups;

identify a storage system backup time for each of the plurality of backups; and

select the backup as having the database backup time range including the database restoration time and the storage system backup time range including the storage system restoration time.

18. A computer program product for restoring a database, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving an identification of a restoration point of a database;

analyzing metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

providing the reduced dataset for use in restoring the database to the restoration point;

wherein the instructions for analyzing further include instructions for:

detecting a backup having a time range including the restoration point;

detecting a full or incremental backup closest to and before the restoration point; and

identifying a plurality of transactions occurring between the full or incremental backup and the backup;

wherein the instructions for providing further includes instructions for

providing the plurality of transactions and at least one additional transaction from the backup; and

wherein the instructions for detecting the backup further comprise instructions for:

determining, using a processor, a first node of a restore tree, the restore tree including a plurality of nodes corresponding to a plurality of backups, the first node corresponding to the backup; and

wherein the instructions for detecting the full or incremental backup includes instructions for

traversing a portion of a restore tree from the first node to a second node corresponding to the full or incremental backup.

19. The computer program product of claim 18 wherein the instructions for detecting the full or incremental backup further include instructions for:

ensuring that the full or incremental backup and the backup share a branch of the restore tree.

20. The computer program product of claim 18 , wherein the backup is a log backup.

21. The computer program product of claim 18 , wherein the full or incremental backup is selected from a full backup and a fully hydrated incremental backup.

22. A computer program product for restoring a database, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving an identification of a restoration point of a database;

analyzing metadata of a plurality of backups to identify from the plurality of backups a reduced dataset required to restore the database to the restoration point; and

providing the reduced dataset for use in restoring the database to the restoration point;

wherein the instructions for analyzing further include instructions for:

detecting a backup having a time range including the restoration point;

detecting a full or incremental backup closest to and before the restoration point; and

identifying a plurality of transactions occurring between the full or incremental backup and the backup;

wherein the instructions for providing further includes instructions for

providing the plurality of transactions and at least one additional transaction from the backup; and

wherein the restoration point has a database restoration time and a storage system restoration time and wherein the instructions for detecting the backup further include instructions for:

identifying a database backup time range for each of the plurality of backups;

identifying a storage system backup time for each of the plurality of backups; and

selecting the backup as having the database backup time range including the database restoration time and the storage system backup time range including the storage system restoration time.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2019
From: BAJAJ, RUPESH; MOOLCHANDANI, SUNIL; TANDEKAR, SANDEEP; VELANKAR, VIVEK
To: COHESITY, INC.
Reel/Frame 048870/0616 →
Cited By (5)
US 12,346,207 US 12,373,126 US 12,405,859 US 12,530,319 US 12,608,487