IP Library Granted Patent US 9,778,992
Granted Patent B1
US 9,778,992 · App. 15/171,331 · Granted Oct 3, 2017

Interfacing with a virtual database system

Inventors: Jedidiah Yueh (Menlo Park, CA); Xavier David Luiz (Cupertino, CA); Yan Wang (Santa Clara, CA); Alok Srivastava (Newark, CA)
Assignee: Delphix Corporation
G06F11/1448G06F2201/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 9,778,992
App. No.
15/171,331
Granted
Oct 3, 2017
Kind
B1
Abstract

User interactions with a database storage system allow creation of virtual databases based on point-in-time copies associated with a source database. Multiple point-in-time copies are obtained for each source database. A point-in-time copy retrieves data changed in the source database since the retrieval of a previous point-in-time copy. A virtual database (VDB) is created by creating a set of files in the data storage system and mounting the files on a database server allowing the database server to access the files. User interactions allow the user to specify the source database, a point in time associated with the source database and a destination server to create the virtual database. User input can specify other attributes associated with the virtual database including the file paths, database parameters etc. The user can specify schedules of various actions, including making and retention of point-in-time copies.

Claims (109)

1. A method of creating virtual databases, the method comprising:

configuring for presentation, by a database storage system, one or more user interfaces for receiving a request for creating a virtual database, the one or more user interfaces configured to receive:

information identifying a particular source database executing on a database system;

information identifying a particular point in time associated with the source database, and

information identifying a particular destination database server for accessing the virtual database being created;

receiving, by the database storage system, point-in-time copies of the source database from the database system according to a first schedule;

receiving, by the database storage system, transaction logs of the source database from the database system according to a second schedule;

storing, by the database storage system, a plurality of point-in-time copies of the source database, each point-in-time copy comprising database blocks such that at least some of the database blocks are associated with other point-in-time copies of the source database;

receiving information identifying a source database for providing database blocks, wherein each database block includes metadata associated with the database block;

receiving information identifying a point in time, such that the source database comprises information stored prior to the point in time;

receiving information identifying a destination database server for accessing the virtual database being created; and

creating, by the database storage system, the virtual database based on a stored point-in-time copy of the source database associated with the point-in-time and transaction logs received after the point in time, wherein the virtual database shares database blocks with one or more other virtual databases.

2. The method of claim 1 , wherein the metadata of a database block includes one or more of information related to the data stored in the database block, information related to objects of database that the database block is part of, or information indicating when the data in the database block was updated.

3. The method of claim 1 , further comprising:

receiving information identifying a server machine hosting a plurality of databases;

analyzing the server machine to identify each of the plurality of databases hosted by the server machine;

presenting the plurality of databases as potential source databases; and

receiving a selection of a particular database of the server machine as the source database.

4. The method of claim 1 , wherein the source database is one of:

a live production database;

a storage level snapshot of a production database;

a clone of a production database; or

a previously created virtual database.

5. The method of claim 1 , wherein the one or more user interfaces are configured to present a geometric shape, wherein a position in the geometric shape corresponds to a time value, and wherein receiving the information identifying the point in time comprises:

receiving a selection of a position in the geometric shape; and

mapping the selection of the position in the geometric shape to the identified point in time.

6. The method of claim 1 , wherein the one or more user interfaces are configured to present a geometric shape, wherein a position in the geometric shape corresponds to database operations in the source database and wherein receiving the information identifying the point in time comprises:

receiving a selection of a position in the geometric shape;

mapping the selection of the position in the geometric shape to a database operation performed in the source database; and

determining the identified point in time based on a time of execution of the database operation.

7. The method of claim 1 , wherein the one or more user interfaces are further configured to receive a policy defining retention schedule for point-in-time copies.

8. The method of claim 1 , wherein the source database is a first source database and the database system is a first database system, the method further comprising:

receiving, by the database storage system, point-in-time copies of a second source database from a second database system; and

storing, by the database storage system, a plurality of point-in-time copies of the second source database, the point-in-time copies comprising database blocks such that at least some of the database blocks are associated with multiple point-in-time copies of the second source database.

9. The method of claim 1 , further comprising:

determining a metric representing storage savings obtained as a result of storing data in a set of virtual databases, the metric based on a measure of storage used by the set of virtual databases and a set of database corresponding to the virtual databases that do not share database blocks; and

sending the metric for presentation.

10. The method of claim 1 , further comprising:

determining a metric representing storage savings obtained as a result of storing data in a set of virtual databases based on the source database, the metric based on an estimate of an amount of storage used in virtualized form compared to an estimate of an amount of storage used in unvirtualized form, the storage used for storing:

database blocks obtained initially by the database storage system from the source database,

database blocks for each point-in-time copy of the source database stored on the database storage system, and

transaction logs obtained by the database storage system from the source database,

sending the metric for presentation.

11. A non-transitory computer readable storage medium storing instructions for:

configuring for presentation, by a database storage system, one or more user interfaces for receiving a request for creating a virtual database, the one or more user interfaces configured to receive:

information identifying a particular source database executing on a database system;

information identifying a particular point in time associated with the source database, and

information identifying a particular destination database server for accessing the virtual database being created;

receiving, by the database storage system, point-in-time copies of the source database from the database system according to a first schedule;

receiving, by the database storage system, transaction logs of the source database from the database system according to a second schedule;

storing, by the database storage system, a plurality of point-in-time copies of the source database, each point-in-time copy comprising database blocks such that at least some of the database blocks are associated with other point-in-time copies of the source database;

receiving information identifying a source database for providing database blocks, wherein each database block includes metadata associated with the database block;

receiving information identifying a point in time, such that the source database comprises information stored prior to the point in time;

receiving information identifying a destination database server for accessing the virtual database being created; and

creating, by the database storage system, the virtual database based on a stored point-in-time copy of the source database associated with the point-in-time and transaction logs received after the point in time, wherein the virtual database shares database blocks with one or more other virtual databases.

12. The non-transitory computer readable storage medium of claim 11 , wherein the metadata of a database block includes one or more of information related to the data stored in the database block, information related to objects of database that the database block is part of, or information indicating when the data in the database block was updated.

13. The non-transitory computer readable storage medium of claim 11 , wherein the stored instructions are further for:

receiving information identifying a server machine hosting a plurality of databases;

analyzing the server machine to identify each of the plurality of databases hosted by the server machine;

presenting the plurality of databases as potential source databases; and

receiving a selection of a particular database of the server machine as the source database.

14. The non-transitory computer readable storage medium of claim 11 , wherein the source database is one of:

a live production database;

a storage level snapshot of a production database;

a clone of a production database; or

a previously created virtual database.

15. The non-transitory computer readable storage medium of claim 11 , wherein the one or more user interfaces are configured to present a geometric shape, wherein a position in the geometric shape corresponds to a time value, and wherein instructions for receiving the information identifying the point in time comprise instructions for:

receiving a selection of a position in the geometric shape; and

mapping the selection of the position in the geometric shape to the identified point in time.

16. The non-transitory computer readable storage medium of claim 11 , wherein the one or more user interfaces are configured to present a geometric shape, wherein a position in the geometric shape corresponds to database operations in the source database and wherein instructions for receiving the information identifying the point in time comprise instructions for:

receiving a selection of a position in the geometric shape;

mapping the selection of the position in the geometric shape to a database operation performed in the source database; and

determining the identified point in time based on a time of execution of the database operation.

17. The non-transitory computer readable storage medium of claim 11 , wherein the source database is a first source database and the database system is a first database system, wherein the stored instructions further comprise instructions for:

receiving, by the database storage system, point-in-time copies of a second source database from a second database system; and

storing, by the database storage system, a plurality of point-in-time copies of the second source database, the point-in-time copies comprising database blocks such that at least some of the database blocks are associated with multiple point-in-time copies of the second source database.

18. The non-transitory computer readable storage medium of claim 11 , wherein the stored instructions further comprise instructions for:

determining a metric representing storage savings obtained as a result of storing data in a set of virtual databases, the metric based on a measure of storage used by the set of virtual databases and a set of database corresponding to the virtual databases that do not share database blocks; and

sending the metric for presentation.

19. The non-transitory computer readable storage medium of claim 11 , wherein the stored instructions further comprise instructions for:

determining a metric representing storage savings obtained as a result of storing data in a set of virtual databases based on the source database, the metric based on an estimate of an amount of storage used in virtualized form compared to an estimate of an amount of storage used in unvirtualized form, the storage used for storing:

database blocks obtained initially by the database storage system from the source database,

database blocks for each point-in-time copy of the source database stored on the database storage system, and

transaction logs obtained by the database storage system from the source database,

sending the metric for presentation.

20. A computer system comprising:

a processor; and

a non-transitory computer readable storage medium storing instructions for execution by the processor, the instructions for:

configuring for presentation, by a database storage system, one or more user interfaces for receiving a request for creating a virtual database, the one or more user interfaces configured to receive:

information identifying a particular source database executing on a database system;

information identifying a particular point in time associated with the source database, and

information identifying a particular destination database server for accessing the virtual database being created;

receiving, by the database storage system, point-in-time copies of the source database from the database system according to a first schedule;

receiving, by the database storage system, transaction logs of the source database from the database system according to a second schedule;

storing, by the database storage system, a plurality of point-in-time copies of the source database, each point-in-time copy comprising database blocks such that at least some of the database blocks are associated with other point-in-time copies of the source database;

receiving information identifying a source database for providing database blocks, wherein each database block includes metadata associated with the database block;

receiving information identifying a point in time, such that the source database comprises information stored prior to the point in time;

receiving information identifying a destination database server for accessing the virtual database being created; and

creating, by the database storage system, the virtual database based on a stored point-in-time copy of the source database associated with the point-in-time and transaction logs received after the point in time, wherein the virtual database shares database blocks with one or more other virtual databases.

21. The computer system of claim 20 , wherein the metadata of a database block includes one or more of information related to the data stored in the database block, information related to objects of database that the database block is part of, or information indicating when the data in the database block was updated.

22. The computer system of claim 20 , wherein the one or more user interfaces are configured to present a geometric shape, wherein a position in the geometric shape corresponds to a time value, and wherein instructions for receiving the information identifying the point in time comprise instructions for:

receiving a selection of a position in the geometric shape; and

mapping the selection of the position in the geometric shape to the identified point in time.

23. The computer system of claim 20 , wherein the source database is a first source database and the database system is a first database system, wherein the stored instructions further comprise instructions for:

receiving, by the database storage system, point-in-time copies of a second source database from a second database system; and

storing, by the database storage system, a plurality of point-in-time copies of the second source database, the point-in-time copies comprising database blocks such that at least some of the database blocks are associated with multiple point-in-time copies of the second source database.

24. The computer system of claim 20 , wherein the stored instructions further comprise instructions for:

determining a metric representing storage savings obtained as a result of storing data in a set of virtual databases, the metric based on a measure of storage used by the set of virtual databases and a set of database corresponding to the virtual databases that do not share database blocks; and

sending the metric for presentation.

Assignments (16)
SECURITY INTEREST Recorded Apr 7, 2026
From: PERFORCE SOFTWARE, INC.; DELPHIX CORP.; AKANA, INC.; ROGUE WAVE SOFTWARE, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 075368/0968 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2026
From: CORTLAND CAPITAL MARKET SERVICES, AS COLLATERAL AGENT
To: ROGUE WAVE SOFTWARE, INC.; AKANA, INC.; GLIFFY, INC.; DELPHIX CORP.
Reel/Frame 075365/0519 →
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: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
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 →
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 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047169/0863 →
SECURITY INTEREST Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: YUEH, JEDIDIAH; LUIZ, XAVIER DAVID; WANG, YAN; SRIVASTAVA, ALOK
To: DELPHIX CORP.
Reel/Frame 043295/0385 →
Continuity (4)
Continuation 14573761 · Dec 17, 2014
Continuation 13894259 · May 14, 2013
Continuation 13301448 · Nov 21, 2011
Provisional Application 61418396 · Nov 30, 2010