IP Library Granted Patent US 8,364,631
Granted Patent B1
US 8,364,631 · App. 10/950,192 · Granted Jan 29, 2013

Database migration

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,364,631
App. No.
10/950,192
Granted
Jan 29, 2013
Kind
B1
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 second version, 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;

determining available translation steps;

using a processor to select a translation path from the first version of the database to the second version of the database, wherein the translation path includes a sequence of two or more translation steps that are a subset of the available translation steps, wherein the selected translation steps comprise a first selected translation step and a second selected translation step, each translation step being expressed in a markup language; and

executing the selected translation steps in the translation path, wherein executing comprises:

using the first selected translation step to convert the first version of the database to a third version of the database; and

using the second selected translation step to convert the third version of the database to the second version of the database,

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

wherein the selecting of the translation path includes selecting one translation path from a plurality of translation paths based on either a shortest path or a first path, the third version of the database being different from each other for each of the translation paths.

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

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

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

5. A method as recited in claim 1 , wherein the path is the shortest path in a translation graph.

6. A method as recited in claim 1 , wherein the path is the first path in a translation graph.

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

8. A 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 second version.

9. A method as recited in claim 1 , wherein executing includes processing an XML representation of each of the sequence of the two or more translation steps.

10. A method as recited in claim 1 , wherein each translation step translates the database to another version of the database.

11. A method as recited in claim 1 , wherein executing includes applying a translation of type name change, value change, new member, or value transform.

12. A system for converting a first version of a database to a second version, including:

a processor configured to:

determine 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;

determine available translation steps;

select a translation path from the first version of the database to the second version of the database, wherein the translation path includes a sequence of two or more translation steps that are a subset of the available translation steps, wherein the selected translation steps comprise a first selected translation step and a second selected translation step, each translation step being expressed in a markup language; and

execute the selected translation steps in the translation path, wherein to execute comprises:

to use the first selected translation step to convert the first version of the database to a third version of the database; and

to use the second selected translation step to convert the third version of the database to the second version of the database, wherein each of the first version of the database, the second version of the database, and the third version of the database is associated with a fully migrated version of the database; and

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

wherein the selecting of the translation path includes selecting one translation path from a plurality of translation paths based on either a shortest path or a first path, the third version of the database being different from each other for each of the translation paths.

13. A system as recited in claim 12 , wherein the first version is an existing version of the database.

14. A system as recited in claim 12 , wherein the second version is a new version of the database.

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

16. A system as recited in claim 12 , wherein the path is the shortest path in a translation graph.

17. A system as recited in claim 12 , wherein the path is the first path in a translation graph.

18. A system as recited in claim 12 , wherein the processor is further configured to determine the version of the first database.

19. A system as recited in claim 12 , wherein the translation path is selected based on a hash value associated with the first version and a hash value associated with the second version.

20. A system as recited in claim 12 , wherein the processor is configured to execute the selected translation steps in the translation path at least in part by processing an XML representation of each translation step.

21. A system as recited in claim 12 , wherein each translation step translates the database to another version of the database.

22. A system as recited in claim 12 , wherein the processor is configured to execute the selected translation steps in the translation path at least in part by applying a translation of type name change, value change, new member, or value transform.

23. A computer program product for converting a first version of a database to a second version, the computer program product being embodied in a computer readable storage device and comprising computer instructions for:

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;

determining available translation steps;

selecting a translation path from the first version of the database to the second version of the database, wherein the translation path includes a sequence of two or more translation steps that are a subset of the available translation steps, wherein the selected translation steps comprise a first selected translation step and a second selected translation step; and

executing the selected translation steps in the translation path, wherein executing comprises:

using the first selected translation step to convert the first version of the database to a third version of the database; and

using the second selected translation step to convert the third version of the database to the second version of the database, wherein each of the first version of the database, the second version of the database, and the third version of the database is associated with a fully migrated version of the database,

wherein the selecting of the translation path includes selecting one translation path from a plurality of translation paths based on either a shortest path or a first path, the third version of the database being different from each other for each of the translation paths.

24. A computer program product as recited in claim 23 , wherein the first version is an existing version of the database.

25. A computer program product as recited in claim 23 , wherein the second version is a new version of the database.

26. A computer program product as recited in claim 23 , the computer program product further comprising computer instructions for building a translation graph for selecting the translation path.

27. A computer program product as recited in claim 23 , wherein the path is the shortest path in a translation graph.

28. A computer program product as recited in claim 23 , wherein the path is the first path in a translation graph.

29. A computer program product as recited in claim 23 , the computer program product further comprising computer instructions for determining the version of the first database.

30. A computer program product as recited in claim 23 , wherein selecting the translation path is based on a hash value associated with the first version and a hash value associated with the second version.

31. A computer program product as recited in claim 23 , wherein executing includes processing a markup language representation of each translation step.

32. A computer program product as recited in claim 23 , wherein executing includes processing an XML representation of each translation step.

33. A computer program product as recited in claim 23 , wherein each translation step translates the database to another version of the database.

34. A computer program product as recited in claim 23 , wherein executing includes applying a translation of type name change, value change, new member, or value transform.

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 →