IP Library Granted Patent US 10,067,952
Granted Patent B2
US 10,067,952 · App. 14/052,580 · Granted Sep 4, 2018

Retrieving point-in-time copies of a source database for creating 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 10,067,952
App. No.
14/052,580
Granted
Sep 4, 2018
Kind
B2
Abstract

A storage system maintains copies of a source database to allow virtual databases to be provisioned. Transaction logs received from the source database are applied to database blocks stored in the storage system to update the database blocks. The storage system checks if there are defect in the transaction logs of the source database. If a defect in transaction logs is detected, the storage system obtains a latest copy of the source database. The storage system matches database blocks of the received copy with database blocks already available in the storage system to determine whether a corresponding database block is already available in the storage system. If a received database block is different from database blocks already available at the storage system, the received database block is stored in the storage system. The database blocks may be matched using a hash value of the database blocks.

Claims (55)

1. A method for storing copies of databases in a database storage system, the method comprising:

maintaining, by the database storage system, a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein a database block is a unit of data used by a database, wherein a portion of the database block stores metadata associated with the database block, wherein one or more database blocks are associated with at least two copies of the source database stored on the database storage system, the maintaining comprising, iteratively:

receiving, by the database storage system, from a backup server maintaining backups of the source database, a full backup of the source database;

restoring the full backup of the source database to obtain a first copy of the source database;

creating, by the database storage system, one or more intermediate copies of the source database, comprising:

receiving transaction logs from the backup server; and

creating an intermediate copy by updating the first copy or a previously created intermediate copy of the source database by applying the received transaction logs;

determining whether a recent copy of the source database can be successfully updated using transaction logs received from the backup server;

responsive to detecting a failure in updating the recent copy using the received transaction logs, receiving, from the backup server, another full backup of the source database;

restoring the other full backup of the source database to obtain a plurality of database blocks; and

determining, by the database storage system, a subset of the plurality of database blocks, the determining comprising, excluding database blocks that match corresponding database blocks of a previously stored copy of the source database;

storing the determined subset of database blocks as a new copy of the source database.

2. The method of claim 1 , wherein determining whether the recent copy of the source database can be successfully updated comprises determining whether any transaction logs in the received transaction logs are missing.

3. The method of claim 2 , wherein determining whether any transaction logs in the received transaction logs are missing comprises comparing sequence numbers of consecutive transaction logs received.

4. The method of claim 1 , wherein determining whether the recent copy of the source database can be successfully updated comprises determining whether any transaction logs in the received transaction logs are corrupted.

5. The method of claim 1 , wherein restoring the received transaction logs comprises mounting the database storage system on a database server and sending a request to the database server to restore the received transaction logs.

6. The method of claim 1 , wherein restoring the received transaction logs comprises:

determining whether the transaction logs received are in backup format; and

responsive to determining that the transaction logs are in backup format, converting the transaction logs from backup format to transaction log format.

7. The method of claim 1 , wherein transaction logs are received from the backup server based on a predefined schedule.

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

a database storage system configured to maintain a plurality of copies of a source database on a database storage system, each copy including a plurality of database blocks, wherein a database block is a unit of data used by a database, wherein a portion of the database block stores metadata associated with the database block, wherein one or more database blocks are associated with at least two copies of the source database stored on the database storage system, the database storage system comprising instructions to:

receive, from a backup server maintaining backups of the source database, a full backup of the source database;

send a request to restore the full backup of the source database to obtain a first copy of the source database;

create one or more intermediate copies of the source database by receiving transaction logs from the backup server and creating an intermediate copy by updating the first copy or a previously created intermediate copy of the source database by applying the received transaction logs;

determine whether a recent copy of the source database can be successfully updated using transaction logs received from the backup server;

responsive to detecting a failure in updating the recent copy using the received information, receive, from the backup server, another full backup of the source database;

send a request to restore the other full backup of the source database to obtain a plurality of database blocks; and

determine a subset of the plurality of database blocks by excluding, the database blocks that match corresponding database blocks of a previously stored copy of the source database;

store the determined subset of database blocks as a new copy of the source database.

9. The computer program product of claim 8 , wherein the database storage system is configured to determine whether the recent copy of the source database can be successfully updated by determining whether any transaction logs in the received transaction logs are missing.

10. The computer program product of claim 9 , wherein the database storage system is configured to determine whether any transaction logs in the received transaction logs are missing by comparing sequence numbers of consecutive transaction logs received.

11. The computer program product of claim 8 , wherein the database storage system is configured to determine whether the recent copy of the source database can be successfully updated by determining whether any transaction logs in the received transaction logs are corrupted.

12. The computer program product of claim 8 , wherein the database storage system is configured to restore the received transaction logs by mounting the database storage system on a database server and sending a request to the database server to restore the received transaction logs.

13. The computer program product of claim 8 , wherein the database storage system is configured to restore the received transaction logs by determining whether the transaction logs received are in backup format, and if the transaction logs are determined to be in backup format, converting the transaction logs from backup format to transaction log format.

14. The computer program product of claim 8 , wherein transaction logs are received from the backup server based on a predefined schedule.

15. A computer-implemented system for storing copies of databases in a database storage system, the system comprising:

a computer processor; and

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

a database storage system configured to maintain a plurality of copies of a source database on a storage system, each copy including a plurality of database blocks, wherein a database block is a unit of data used by a database, wherein a portion of the database block stores metadata associated with the database block, wherein one or more database blocks are associated with at least two copies of the source database stored on the database storage system, the database storage system comprising instructions to:

receive, from a backup server maintaining backups of the source database, a full backup of the source database;

send a request to restore the full backup of the source database to obtain a first copy of the source database;

create one or more intermediate copies of the source database by receiving transaction logs from the backup server and creating an intermediate copy by updating the first copy or a previously created intermediate copy of the source database by applying the received transaction logs;

determine whether a recent copy of the source database can be successfully updated using transaction logs received from the backup server;

responsive to detecting a failure in updating the recent copy using the received information, receive, from the backup server, another full backup of the source database;

send a request to restore the other full backup of the source database to obtain a plurality of database blocks; and

determine a subset of the plurality of database blocks by excluding, the database blocks that match corresponding database blocks of a previously stored copy of the source database;

store the determined subset of database blocks as a new copy of the source database.

16. The computer-implemented system of claim 15 , wherein the database storage system is configured to determine whether the recent copy of the source database can be successfully updated by determining whether any transaction logs in the received transaction logs are missing.

17. The computer-implemented system of claim 16 , wherein the database storage system is configured to determine whether any transaction logs in the received transaction logs are missing by comparing sequence numbers of consecutive transaction logs received.

18. The computer-implemented system of claim 15 , wherein the database storage system is configured to determine whether the recent copy of the source database can be successfully updated by determining whether any transaction logs in the received transaction logs are corrupted.

19. The computer-implemented system of claim 15 , wherein the database storage system is configured to restore the received transaction logs by mounting the database storage system on a database server and sending a request to the database server to restore the received transaction logs.

20. The computer-implemented system of claim 15 , wherein transaction logs are received from the backup server based on a predefined schedule.

21. The computer-implemented method of claim 1 , further comprising:

creating a virtual database comprising database blocks from a plurality of copies of the source database stored on the database storage system, the virtual database sharing database blocks with one or more other virtual databases.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: AHRENS, MATTHEW ALLAN; SINHA, SUBHADEEP; WILSON, GEORGE RAYMOND; BISEDA, JEFFREY KARR
To: DELPHIX CORP.
Reel/Frame 045065/0851 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →