IP Library Granted Patent US 10,108,685
Granted Patent B2
US 10,108,685 · App. 14/326,664 · Granted Oct 23, 2018

Remote provisioning of 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,108,685
App. No.
14/326,664
Granted
Oct 23, 2018
Kind
B2
Abstract

Database storage systems provide replication capability that allows data of a source database storage system to be replicated to a target database storage system. Virtual databases can be provisioned from the target database system, thereby supporting remote provisioning of virtual databases. The virtual databases on the remote site can be used to perform various operations including read/write of data, refresh, rollback, and so on. Database objects may be deleted on the source database storage system while the corresponding data is used by other entities for example, virtual databases at the target database storage system. The database storage system verifies if an entity being deleted is in use by any other database infrastructure object of the database storage system. A placeholder object maintains the data corresponding to the deleted object. This provides the ability to create geographical distribution networks and support remote provisioning of virtual databases.

Claims (58)

1. A method for remote provisioning of virtual databases, the method comprising:

storing on a source database storage system, snapshots of data received from a source database, a snapshot representing a state of a source database at a point in time, wherein the snapshot shares database blocks with another snapshot associated with a different point in time;

replicating data from the source database storage system to a target database storage system, wherein replicating the data comprises, replicating a first database infrastructure object of the source database storage system to a second database infrastructure object of the target database storage system, wherein a database infrastructure object represents an entity associated with database blocks;

creating, by the target database storage system, one or more database infrastructure objects dependent on the second database infrastructure object and marking the created database infrastructure objects active, wherein a database infrastructure object dependent on another database infrastructure object shares database blocks with the other database infrastructure object;

in response to receiving a request to delete the first database infrastructure object at the source database storage system, deleting the first database infrastructure object by:

verifying whether any active database infrastructure object depends on the second database infrastructure object at the target database system, comprising, determining whether any database infrastructure object at the target database system depends on at least one of: the second database infrastructure object or another database infrastructure object dependent on the second database infrastructure object;

responsive to verifying that there is an active database infrastructure object dependent on the second database infrastructure object at the target database system, replacing the first database infrastructure object at the source database system with a placeholder object, wherein the placeholder object maintains the database blocks corresponding to the first database infrastructure object at the source database system and prevents reclamation of storage space of the database blocks associated with the first database infrastructure object; and

responsive to the deletion of the first database infrastructure object by replacing the first database infrastructure object with the placeholder object at the source database system, limiting the ability of the active database infrastructure object at the target database system to perform one or more types of operations, while preserving the ability of the active data structure to perform one or more other types of operations associated with the active database infrastructure object; and

responsive to determining that there are no active database infrastructure objects depending on the second database infrastructure object, reclaiming the database blocks corresponding to the first database infrastructure object.

2. The computer-implemented method of claim 1 , wherein a database infrastructure object represents a virtual database, wherein the virtual database shares database blocks with one or more other virtual databases.

3. The computer-implemented method of claim 1 , wherein a database infrastructure object represents a source database, wherein one or more virtual databases are provisioned using database blocks from the source database.

4. The computer-implemented method of claim 1 , wherein a database infrastructure object represents a snapshot stored at the target database storage system, the snapshot representing data received from the source database storage system at a point in time.

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

identifying a third database infrastructure object that was replaced by a placeholder object, wherein the second database infrastructure object depended on the third database infrastructure object; and

responsive to determining that there are no active database infrastructure objects depending on the second database infrastructure object, reclaiming the storage space used by database blocks corresponding to the third database infrastructure object.

6. The computer-implemented method of claim 1 , wherein creating one or more database infrastructure objects dependent on the second database infrastructure object comprises creating a virtual database provisioned from the second database infrastructure object.

7. The computer-implemented method of claim 1 , wherein creating one or more database infrastructure objects dependent on the second database infrastructure object comprises creating a virtual database provisioned from a third database infrastructure object, wherein the third database infrastructure object depends on the second database infrastructure object.

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

maintaining for each database infrastructure object, information identifying one or more other database infrastructure objects dependent on the database infrastructure object.

9. The computer-implemented method of claim 1 , wherein the data received from a source database comprises changed blocks of the source database.

10. The computer-implemented method of claim 1 , wherein creating one or more database infrastructure objects dependent on the second database infrastructure object comprises provisioning a virtual database, the provisioning:

receiving information identifying a point in time;

identifying a snapshot saved before the identified point in time; and

creating the virtual database using database blocks from the identified snapshot.

11. The computer-implemented method of claim 1 , wherein the request to delete the first database infrastructure object at the source database storage system is due to a retention policy associated with the first database infrastructure object.

12. The computer-implemented method of claim 1 , wherein the request to delete the first database infrastructure object at the source database storage system is received from a user.

13. The computer-implemented method of claim 1 , wherein replicating data from a source database storage system to a target database storage system comprises:

transmitting changed database blocks stored at the source database storage system to the target database storage system, wherein changed database blocks comprise database blocks modified since a previous transmission of changed database blocks to the target database storage system.

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

maintaining a graph representation, wherein nodes of the graph represent database infrastructure objects and a first node has an edge to a second node if the second node represents a virtual database provisioned from the first node.

15. The computer-implemented method of claim 14 , wherein verifying whether any database infrastructure object depends on the second database infrastructure object comprises traversing the graph from the node corresponding to the second database infrastructure object to determine if any node reachable from the node represents an active database infrastructure object.

16. The computer-implemented method of claim 1 , wherein operations of the active database infrastructure object are limited such that a virtual database associated with the active database infrastructure object is unable to refresh data to reflect changes associated with the source database.

17. The computer-implemented method of claim 16 , wherein the one or more other operations associated with the active database infrastructure object that are allowed includes: read operation, update operation, start operation, and stop operation.

18. The computer-implemented method of claim 16 , wherein allowing one or more other operations associated with the active database infrastructure object comprises creating new virtual databases based on the active database infrastructure object.

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

storing on a source database storage system, snapshots of data received from a source database, a snapshot representing a state of a source database at a point in time, wherein the snapshot shares database blocks with another snapshot associated with a different point in time;

replicating data from the source database storage system to a target data base storage system, wherein replicating the data comprises, replicating a first database infrastructure object of the source database storage system to a second database infrastructure object of the target database storage system, wherein a database infrastructure object represents an entity associated with database blocks;

creating, by the target database storage system, one or more database infrastructure objects dependent on the second database infrastructure object and marking the created database infrastructure objects active, wherein a database infrastructure object dependent on another database infrastructure object shares database blocks with the other database infrastructure object;

in response to receiving a request to delete the first database infrastructure object at the source database storage system, deleting the first database infrastructure object by:

verifying whether any active database infrastructure object depends on the second database infrastructure object at the target database system, comprising, determining whether any database infrastructure object at the target database system depends on at least one of: the second database infrastructure object or another database infrastructure object dependent on the second database infrastructure object; and

responsive to verifying that there is an active database infrastructure object dependent on the second database infrastructure object at the target database system, replacing the first database infrastructure object at the source database system with a placeholder object, wherein the placeholder object maintains the database blocks corresponding to the first database infrastructure object at the source database system and prevents reclamation of storage space of the database blocks associated with the first database infrastructure object; and

responsive to the deletion of the first database infrastructure object by replacing the first database infrastructure object with the placeholder object at the source database system, limiting the ability of the active database infrastructure object at the target database system to perform one or more types of operations, while preserving the ability of the active data structure to perform one or more other types of operations associated with the active database infrastructure object; and

responsive to determining that there are no active database infrastructure objects depending on the second database infrastructure object, reclaiming the database blocks corresponding to the second database infrastructure object.

20. The non-transitory computer readable storage medium of claim 19 , further comprising instructions for:

identifying a third database infrastructure object that was replaced by a placeholder object, wherein the second database infrastructure object depended on the third database infrastructure object; and

responsive to determining that there are no active database infrastructure objects depending on the second database infrastructure object, reclaiming the storage space used by database blocks corresponding to the third database infrastructure object.

21. The non-transitory computer readable storage medium of claim 19 , wherein creating one or more database infrastructure objects dependent on the second database infrastructure object comprises creating a virtual database provisioned from the second database infrastructure object.

22. A computer system comprising:

a computer processor; and

non-transitory computer readable storage medium storing instructions for:

storing on a source database storage system, snapshots of data received from a source database, a snapshot representing a state of a source database at a point in time, wherein the snapshot shares database blocks with another snapshot associated with a different point in time;

replicating data from the source database storage system to a target data base storage system, wherein replicating the data comprises, replicating a first database infrastructure object of the source database storage system to a second database infrastructure object of the target database storage system, wherein a database infrastructure object represents an entity associated with database blocks;

creating, by the target database storage system, one or more database infrastructure objects dependent on the second database infrastructure object and marking the created database infrastructure objects active, wherein a database infrastructure object dependent on another database infrastructure object shares database blocks with the other database infrastructure object;

in response to receiving a request to delete the first database infrastructure object at the source database storage system, deleting the first database infrastructure object by:

verifying whether any active database infrastructure object depends on the second database infrastructure object at the target database system, comprising, determining whether any database infrastructure object at the target database system depends on at least one of: the second database infrastructure object or another database infrastructure object dependent on the second database infrastructure object;

responsive to verifying that there is an active database infrastructure object dependent on the second database infrastructure object at the target database system, replacing the first database infrastructure object at the source database system with a placeholder object, wherein the placeholder object maintains the database blocks corresponding to the first database infrastructure object at the source database system and prevents reclamation of storage space of the database blocks associated with the first database infrastructure object; and

responsive to the deletion of the first database infrastructure object by replacing the first database infrastructure object with the placeholder object at the source database system, limiting the ability of the active database infrastructure object at the target database system to perform one or more types of operations, while preserving the ability of the active data structure to perform one or more other types of operations associated with the active database infrastructure object; and

responsive to determining that there are no active database infrastructure objects depending on the second database infrastructure object, reclaiming the database blocks corresponding to the second database infrastructure object.

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 Jul 9, 2014
From: AMDUR, MATTHEW BENJAMIN; SCHROCK, ERIC NOAH
To: DELPHIX CORP.
Reel/Frame 033271/0323 →
Cited By (6)
US 12,306,819 US 12,481,638 US 12,613,857 US 12,657,097 US 12,693,999 US 12,699,685