IP Library Granted Patent US 8,788,461
Granted Patent B2
US 8,788,461 · App. 13/645,409 · Granted Jul 22, 2014

Creating validated database snapshots for provisioning virtual databases

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 8,788,461
App. No.
13/645,409
Granted
Jul 22, 2014
Kind
B2
Abstract

Virtual databases are provisioned using point-in-time copies of a source database. Transaction logs received from the source database are applied to a point-in-time copy of the source database to create recovery milestones comprising database blocks that can be used to provision virtual databases. The recovery milestones are created in advance of receiving a request to provision a virtual database. Each recovery milestone is validated to determine that a consistent database snapshot can be created using the recovery milestone. If a problem is identified that prevents creation of a consistent database snapshot, the problem is fixed before creating the next recovery milestone. In response to receiving a request to provision a virtual database corresponding to a point in time, a recovery milestone is identified and transaction logs applied to the recovery milestone to create a database snapshot corresponding to the requested point in time.

Claims (77)

1. A method for pre-provisioning validated database snapshots, the method comprising:

receiving a plurality of database blocks corresponding to a point-in-time copy of a source database;

storing the database blocks on a storage system;

receiving transaction logs from the source database corresponding to transactions executed in the source database;

creating multiple recovery milestones without haying received a request for provisioning a virtual database, each recovery milestone comprising database blocks from which a consistent snapshot of source database corresponding to a point in time can be created, wherein at least some of the database blocks are associated with multiple recovery milestones, the creating of each recovery milestone comprising:

applying a set of transaction logs to either a plurality of database blocks received from the source database or a plurality of database blocks of a previous recovery milestone; and

validating the recovery milestone created to determine whether the recovery milestone can be used to create a consistent snapshot of the source database, the validating comprising, responsive to determining that the recovery milestone is invalid, identifying a defect resulting in creation of the invalid recovery milestone and executing steps to fix the defect, the steps comprising receiving a recent version of a vendor library to create a corresponding valid recovery milestone; and

responsive to receiving a request to provision a virtual database corresponding to a point in time, identifying a recovery milestone corresponding to the point in time, and provisioning the requested virtual database based on the recovery milestone.

2. The method of claim 1 , wherein responsive to the point in time of the requested virtual database matching the point in time of a recovery milestone, provisioning the requested virtual database comprising the database blocks of the matching recovery milestone.

3. The method of claim 1 , wherein provisioning the requested virtual database comprises:

responsive to the point in time of the requested virtual database not matching point in times of any of the recovery milestones, selecting a recovery milestone with a point in time closest to and occurring prior to the requested point in time; and

applying transaction logs to the database blocks of the selected recovery milestone to create a database snapshot corresponding to the requested point in time; and

provisioning the requested virtual database comprising the database blocks of the database snapshot created.

4. The method of claim 1 , wherein the multiple recovery milestones are created based on a predefined schedule.

5. The method of claim 1 , wherein validating the recovery milestone comprises:

responsive to determining that a set of transaction togs corresponding to the recovery milestone are corrupted, determining that the recovery milestone is invalid.

6. The method of claim 1 , wherein provisioning the requested virtual database based on the recovery milestone comprises applying a first set of transaction logs to the recovery milestone, wherein the first set of transaction logs is smaller than a set of transaction logs applied to the point-in-time copy of the source database to obtain the same recovery milestone.

7. The method of claim 1 , further comprising:

determining a rate at which point-in-time copies of the source database are received when recovery milestones are created as lower than a rate at which point-in-time copies of the source database are received if no recovery milestones are created.

8. A method for pre-provisioning validated database snapshots, the method comprising:

receiving a plurality of database blocks corresponding to a point-in-time copy of a source database;

storing the database blocks on a storage system;

receiving transaction logs from the source database corresponding to transactions executed in the source database;

creating multiple recovery milestones without having received a request for provisioning a virtual database, each recovery milestone comprising database blocks from which a consistent snapshot of source database corresponding to a point in time can be created, wherein at least some of the database blocks are associated with multiple recovery milestones, the creating of each recovery milestone comprising:

applying a set of transaction logs to either a plurality of database blocks received from the source database or a plurality of database blocks of a previous recovery milestone; and

responsive to receiving a request to provision a virtual database corresponding to a point in time, identifying a recovery milestone corresponding to the point in time, and provisioning the requested virtual database based on the recovery milestone, wherein provisioning comprises applying a first set of transaction logs to the recovery milestone, wherein the first set of transaction logs is smaller than a set of transaction logs applied to the point-in-time copy of the source database to obtain the same recovery milestone.

9. The method of claim 8 , further comprising:

receiving a request to provision a virtual database corresponding to a point in time;

responsive to the point in time of the requested virtual database not matching point in times of any of the recovery milestones, selecting a recovery milestone with a point in time closest to and occurring prior to the requested point in time;

applying transaction logs to the database blocks of the selected recovery milestone to create a database snapshot corresponding to the requested point in time; and

provisioning the requested virtual database comprising the database blocks of the database snapshot created.

10. The method of claim 8 , wherein creating each recovery milestone further comprises:

validating the recovery milestone created to determine whether the recovery milestone can be used to create a consistent snapshot of the source database.

11. The method of claim 10 , wherein validating the recovery milestone comprises:

responsive to determining that a set of transaction logs corresponding to the recovery milestone are corrupted, determining that the recovery milestone is invalid.

12. The method of claim 10 , wherein validating the recovery milestone comprises:

responsive to the determining that the recovery milestone is invalid, executing steps to identify the defect resulting in creation of the invalid recovery milestone and executing steps to fix the defect.

13. The method of claim 8 , further comprising:

determining a rate at which point-in-time copies of the source database are received when recovery milestones are created as lower than a rate at which point-in-time copies of the source database are received if no recovery milestones are created.

14. A computer program product having a non-transitory computer-readable storage medium storing computer program modules configured to execute on the computer processor, the computer program modules comprising:

a point-in-time copy manager configured to:

receive a plurality of database blocks corresponding to a point-in-time copy of a source database and storing the database blocks on a storage system;

a transaction log manager configured to:

receive transaction logs from the source database corresponding to transactions executed in the source database;

a recovery milestone manager configured to:

create multiple recovery milestones in advance of receiving a request for provisioning a virtual database, each recovery milestone comprising database blocks from which a consistent snapshot of source database corresponding to a point in time can be created, wherein at least some of the database blocks are associated with multiple recovery milestones, the creating of each recovery milestone comprising:

applying a set of transaction logs to either a plurality of database blocks received from the source database or a plurality of database blocks of a previous recovery milestone; and

validating the recovery milestone created to determine whether the recovery milestone can be used to create a consistent snapshot of the source database, the validating comprising, responsive to determining that the recovery milestone is invalid, identifying a defect resulting in creation of the invalid recovery milestone and executing steps to fix the defect, the steps comprising receiving a recent version of a vendor library create a corresponding valid recover milestone; and

a virtual database manager configured to:

responsive to receiving a request to provision a virtual database corresponding to a point in time, identify a recovery milestone corresponding to the point in time, and provision the requested virtual database based on the recovery milestone.

15. The computer program product of claim 14 , wherein provisioning the requested virtual database comprises:

selecting a recovery milestone with a point in time closest to and occurring prior to the requested point in time; and

applying transaction logs to the database blocks of the selected recovery milestone to create a database snapshot corresponding to the requested point in time; and

provisioning the requested virtual database comprising the database blocks of the database snapshot created.

16. The computer program product of claim 14 , wherein the multiple recovery milestones are created based on a predefined schedule.

17. The computer program product of claim 14 , wherein validating the recovery milestone comprises:

responsive to determining that a set of transaction logs corresponding to the recovery milestone are corrupted, determining that the recovery milestone is invalid.

18. A computer program product having a non-transitory computer-readable storage medium storing computer program modules configured to execute on the computer processor, the computer program modules comprising:

a point-in-time copy manager configured to:

receive a plurality of database blocks corresponding to a point-in-time copy of a source database and storing the database blocks on a storage system;

a transaction log manager configured to:

receive transaction logs from the source database corresponding to transactions executed in the source database;

a recovery milestone manager configured to:

create multiple recovery milestones in advance of receiving a request for provisioning a virtual database, each recovery milestone comprising database blocks from which a consistent snapshot of source database corresponding to a point in time can be created, wherein at least some of the database blocks are associated with multiple recovery milestones, the creating of each recovery milestone comprising:

applying a set of transaction logs to either a plurality of database blocks received from the source database or a plurality of database blocks of a previous recovery milestone; and

a virtual database manager configured to:

responsive to receiving a request to provision a virtual database corresponding to a point in time, identifying a recovery milestone corresponding to the point in time, and provisioning the requested virtual database based on the recovery milestone, the provisioning comprising, applying a first set of transaction logs to the recovery milestone, wherein the first set of transaction logs is smaller than a set of transaction logs applied to the point-in-time copy of the source database to obtain the same recovery milestone.

19. The computer program product of claim 18 , wherein provisioning the requested virtual database comprises:

selecting a recovery milestone with a point in time closest to and occurring prior to the requested point in time; and

applying transaction logs to the database blocks of the selected recovery milestone to create a database snapshot corresponding to the requested point in time; and

provisioning the requested virtual database comprising the database blocks of the database snapshot created.

20. The computer program product of claim 18 , wherein validating the recovery milestone comprises:

responsive to determining that a set of transaction logs corresponding to the recovery milestone are corrupted, determining that the recovery milestone is invalid.

21. The computer program product of claim 18 , wherein validating the recovery milestone comprises:

responsive to determining that the recovery milestone is invalid, executing steps to identify the defect resulting in creation of the invalid recovery milestone and executing steps to fix the defect.

22. The computer program product of claim 18 , wherein validating the recovery milestone comprises:

responsive to determining that the recovery milestone is invalid, receiving a recent version of a vendor library to create a corresponding valid recovery milestone.

Assignments (16)
FIRST LIEN PATENT SECURITY AGREEMENT Recorded May 24, 2024
From: DELPHIX CORP.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 067528/0384 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded May 17, 2024
From: DELPHIX CORP.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 067453/0344 →
RELEASE OF SECURITY INTEREST Recorded Mar 22, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: DELPHIX CORP.
Reel/Frame 066869/0540 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: DELPHIX CORP.
Reel/Frame 060737/0201 →
SECURITY INTEREST Recorded Aug 5, 2022
From: DELPHIX CORP.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060734/0591 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
SECURITY INTEREST Recorded Jan 10, 2020
From: DELPHIX CORP.
To: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 051482/0043 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 9, 2020
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: DELPHIX CORP.
Reel/Frame 051532/0264 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047169 FRAME 0863. ASSIGNOR(S) HEREBY CONFIRMS THE AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0422 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047016 FRAME 0544. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0438 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 9, 2019
From: DELPHIX CORP.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050673/0234 →
SECURITY INTEREST Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047169/0863 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 047169/0901 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2014
From: STEWART, MICHAEL J.; SRIHARI, VINAY H.; SINHA, SUBHADEEP; LEVENTHAL, ADAM H.; AHRENS, MATTHEW ALLAN
To: DELPHIX CORP.
Reel/Frame 032534/0658 →