IP Library Granted Patent US 9,053,101
Granted Patent B2
US 9,053,101 · App. 13/719,888 · Granted Jun 9, 2015

Database migration

Inventors: Srinath Gutti (San Jose, CA); Ivan W. Pulleyn (Sunnyvale, CA)
Assignee: Infoblox Inc.
G06F17/30008G06F17/303
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,053,101
App. No.
13/719,888
Granted
Jun 9, 2015
Kind
B2
Abstract

A technique for converting a first version of a database to a second version is disclosed. The technique includes determining available translation steps, selecting a translation path from the first version of the database to the second version, and executing the selected translation steps in the translation path. The translation path includes selected translation steps from among the available translation steps.

Claims (58)

1. A method of converting a first version of a database to a third version, including:

selecting, using a processor, a translation path from a plurality of translation paths based on either a shortest path or a first path found, each translation path proceeding from the first version of the database to the third version of the database via a second version of the database; and

traversing, using the processor, the selected translation path comprising:

converting the first version of the database to the second version of the database; and

converting the second version of the database to the third version of the database,

wherein the database is part of a cluster including a plurality of databases;

wherein in the event that the database fails at being upgraded, another database of the cluster is available to be upgraded from the first version to the third version;

wherein in the event that each database of the cluster fails to be upgraded from the first version to the third version, a determination is made that the cluster is unable to be upgraded;

wherein each of the first version of the database, the third version of the database, and the second version of the database is associated with a fully migrated version of the database;

wherein for each translation path, the first version of the database, the second version of the database, and the third version of the database are different from each other; and

wherein for each translation path, the second version of the database is different from the second version of the database of another translation path.

2. The method as recited in claim 1 , wherein the first version is an existing version of the database.

3. The method as recited in claim 1 , wherein the third version is a new version of the database.

4. The method as recited in claim 1 , further including building a translation graph for selecting the translation path.

5. The method as recited in claim 1 , wherein a cluster of databases includes a plurality of versions of the database.

6. The method as recited in claim 1 , further including determining the first version of the database.

7. The method as recited in claim 1 , further including determining the database version of the first version of the database based on a key obtained by taking a hash of the database schema of the database in the first version.

8. The method as recited in claim 1 , wherein each object of the first version of the database includes a different number of members than each object of the third version of the database.

9. The method as recited in claim 1 , wherein each object of the first version of the database includes a different member from each object of the third version of the database.

10. The method as recited in claim 1 , wherein selecting the translation path is based on a hash value associated with the first version and a hash value associated with the third version.

11. The method as recited in claim 1 , wherein each converting step is lossless.

12. The method as recited in claim 1 , wherein the traversing step includes processing an XML representation of each of the converting steps.

13. The method as recited in claim 1 , wherein each converting step translates the database to a different version of the database.

14. The method as recited in claim 1 , wherein at least one of the translation paths includes at least four different versions of the database and at least three conversions to convert the database from the first version to the third version.

15. A system for converting a first version of a database to a third version, including:

a processor configured to:

select a translation path from a plurality of translation paths based on either a shortest path or a first path found, each translation path proceeding from the first version of the database to the third version of the database via a second version of the database; and

traverse the selected translation path comprising:

convert the first version of the database to the second version of the database; and

convert the second version of the database to the third version of the database,

wherein the database is part of a cluster including a plurality of databases;

wherein in the event that the database fails at being upgraded, another database of the cluster is available to be upgraded from the first version to the third version;

wherein in the event that each database of the cluster fails to be upgraded from the first version to the third version, a determination is made that the cluster is unable to be upgraded;

wherein each of the first version of the database, the third version of the database, and the second version of the database is associated with a fully migrated version of the database;

wherein for each translation path, the first version of the database, the second version of the database, and the third version of the database are different from each other; and

wherein for each translation path, the second version of the database is different from the second version of the database of another translation path; and

a memory that is coupled with the processor, wherein the memory provides the processor with instructions.

16. The system as recited in claim 15 , wherein the first version is an existing version of the database.

17. The system as recited in claim 15 , wherein the third version is a new version of the database.

18. The system as recited in claim 15 , wherein the processor is further configured to build a translation graph for selecting the translation path.

19. The system as recited in claim 15 , wherein a cluster of databases includes a plurality of versions of the database.

20. The system as recited in claim 15 , wherein the processor is configured to determining the database version of the first version of the database based on a key obtained by taking a hash of the database schema of the database in the first version.

21. The system as recited in claim 15 , wherein the processor is further configured to determine the first version of the database.

22. The system as recited in claim 15 , wherein each object of the first version of the database includes a different number of members than each object of the third version of the database.

23. The system as recited in claim 15 , wherein each object of the first version of the database includes a different member from each object of the third version of the database.

24. The system as recited in claim 15 , wherein each converting step translates the database to a different version of the database.

25. The system as recited in claim 15 , wherein selecting the translation path is based on a hash value associated with the first version and a hash value associated with the third version.

26. A computer program product for converting a first version of a database to a third version, the computer program product being embodied in a non-transitory computer readable storage device and comprising computer instructions for:

selecting a translation path from a plurality of translation paths based on either a shortest path or a first path found, each translation path proceeding from the first version of the database to the third version of the database via a second version of the database; and

traversing the selected translation path comprising:

converting the first version of the database to the second version of the database; and

converting the second version of the database to the third version of the database,

wherein the database is part of a cluster including a plurality of databases;

wherein in the event that the database fails at being upgraded, another database of the cluster is available to be upgraded from the first version to the third version;

wherein in the event that each database of the cluster fails to be upgraded from the first version to the third version, a determination is made that the cluster is unable to be upgraded;

wherein each of the first version of the database, the third version of the database, and the second version of the database is associated with a fully migrated version of the database;

wherein for each translation path, the first version of the database, the second version of the database, and the third version of the database are different from each other; and

wherein for each translation path, the second version of the database is different from the second version of the database of another translation path.

Assignments (6)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS (RELEASES RF 040575/0549) Recorded Dec 3, 2020
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: INFOBLOX INC.
Reel/Frame 054585/0914 →
FIRST LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0317 →
SECOND LIEN SECURITY AGREEMENT Recorded Dec 2, 2020
From: INFOBLOX INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054615/0331 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS (RELEASES RF 040579/0302) Recorded Oct 23, 2019
From: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
To: INFOBLOX, INC.
Reel/Frame 050809/0980 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 8, 2016
From: INFOBLOX INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 040579/0302 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 7, 2016
From: INFOBLOX INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040575/0549 →
Continuity (2)
Continuation 10950192 · Sep 24, 2004
Related Publication 20130198136A1 · Aug 1, 2013