IP Library Granted Patent US 11,422,986
Granted Patent B1
US 11,422,986 · App. 16/684,803 · Granted Aug 23, 2022

One-click database migration with automatic selection of a database

Inventors: Florian Michael Waas (San Francisco, CA); Dmitri Korablev (San Francisco, CA); Mohamed Soliman (Foster City, CA); Lyublena Rosenova Antova (Sunnyvale, CA); Michael Alexander Duller (San Francisco, CA); Mark Morcos (Oakland, CA); Marc Sugiyama (San Francisco, CA); Michele Gage (San Francisco, CA)
Assignee: DATOMETRY, INC.
G06F16/214G06F3/0484G06F16/2452G06F16/256G06F16/258
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 11,422,986
App. No.
16/684,803
Granted
Aug 23, 2022
Kind
B1
Abstract

Some embodiments provide a method for migrating a set of data objects from a first database of a first database type to a second database of a second database type. The method retrieves a particular set of data from the first database and performs an automated process to analyze the particular set of data in order to select the second database type from multiple other database types. The method presents on a display the selected second database type and a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type. In response to a selection of the user interface control, the method provisions the second database and transfers the set of data objects from the first database to the second database.

Claims (74)

1. A method for migrating a set of data objects from a first database of a first database type to a second database of a second database type, the method comprising:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data and, based on the analysis, select the second database type from a plurality of other database types, wherein performing the automated process comprises generating and storing metadata for each query, in a log of database queries, that is supported by the first database type and not supported by the second database type;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type;

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database;

redirecting new queries written for the first database to the provisioned second database, wherein the new queries are in a first database syntax associated with the first database type; and

translating the new queries to a second database syntax associated with the second database type.

2. The method of claim 1 , wherein performing the automated process to analyze the particular set of data comprises computing a compatibility score for each other database type, wherein each compatibility score quantifies an ease of migrating the set of data objects from the first database to a database of each other database type.

3. The method of claim 2 , wherein the selected second database type has the highest compatibility score.

4. A method of for migrating a set of data objects from a first database of a first database type to a second database of a second database type, the method comprising:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data and based on the analysis select the second database type from a plurality of other database types, wherein performing the automated process comprises computing a compatibility score for each other database type, wherein each compatibility score quantifies an ease of migrating the set of data objects from the first database to a database of each other database type,

wherein the particular set of data comprises a log of database queries that were performed on the first database during a time interval, wherein computing the compatibility score for each other database type comprises:

performing a query interpretation operation on each query in the log to identify a set of query components;

based on sets of cost values associated with the identified query components of each query, calculating an aggregate cost of the queries in the log for each other database type; and

computing the compatibility scores based on the aggregate cost of the queries for each other database type;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type; and

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database.

5. The method of claim 4 , wherein

the sets of cost values comprise a particular set of cost values associated with the first database type and a plurality of sets of cost values associated with each other database type,

calculating an aggregate cost of the queries in the log for each other database type comprises calculating a first aggregate cost based on the particular set of cost values and a second aggregate cost for each other database type based on the set of cost values associated with each other database type, and

computing the compatibility score for each other database type comprises computing the compatibility score based on a difference between the first aggregate cost and the second aggregate cost.

6. The method of claim 5 , wherein a subset of the identified query components are not supported by the second database type, wherein the difference between the first aggregate cost and the second aggregate cost is the difference in cost values of the subset of identified query components.

7. The method of claim 4 , wherein the cost values associated with the identified query components of each query are based on the first database type and each other database type, wherein computing the compatibility score for each other database type comprises computing the compatibility score based on the cost values associated with both the first database type and the other database type.

8. The method of claim 4 , wherein the query interpretation operation comprises pre-processing the log of database queries to reconstruct each query from a plurality of tables and a plurality of rows.

9. The method of claim 4 , wherein the query interpretation operation comprises pre-processing the log of database queries to remove duplicate queries.

10. The method of claim 4 , wherein the query interpretation operation comprises pre-processing the log of database queries to reorganize the queries into two or more sessions, wherein each session comprises queries that reference temporary database objects that are not referenced by queries in another session, wherein performing a query interpretation operation on each query comprises performing a plurality of query interpretation operations on queries in different sessions simultaneously.

11. The method of claim 4 further comprising redirecting new queries written for the first database to the provisioned second database.

12. The method of claim 11 , wherein the new queries are in a first database syntax associated with the first database type, the method further comprising translating the new queries to a second database syntax associated with the second database type.

13. The method of claim 1 , wherein translating the new queries from the first syntax to the second syntax comprises retrieving and using the generated metadata.

14. A method for migrating a set of data objects from a first database of a first database type to a second database of a second database type, the method comprising:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data and based on the analysis select the second database type from a plurality of other database types;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type;

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database;

redirecting new queries written for the first database to the provisioned second database, wherein the new queries are in a first database syntax associated with the first database type; and

translating the new queries to a second database syntax associated with the second database type,

wherein redirecting new queries comprises configuring a Domain Name Service (DNS) to redirect the new queries to a database virtualization system (DVS), wherein translating the new queries further comprises using the DVS to translate the new queries.

15. The method of claim 1 , wherein the particular set of data further comprises (i) a schema describing the set of data objects stored in the first database, and (ii) a set of operational metadata generated during execution of the database queries on the first database.

16. A non-transitory machine readable medium storing a program which when executed by at least one processing unit migrates a set of data objects from a first database of a first database type to a second database of a second database type, the program comprising sets of instructions for:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data, and based on the analysis select the second database type from a plurality of other database types, wherein performing the automated process comprises generating and storing metadata for each query, in a log of database queries, that is supported by the first database type and not supported by the second database type;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type; and

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database;

redirecting new queries written for the first database to the provisioned second database, wherein the new queries are in a first database syntax associated with the first database type; and

translating the new queries to a second database syntax associated with the second database type.

17. The non-transitory machine readable medium of claim 16 , wherein the set of instructions for performing the automated process to analyze the particular set of data comprises a set of instructions for computing a compatibility score for each other database type, wherein each compatibility score quantifies an ease of migrating the set of data objects from the first database to a database of each other database type, wherein the selected second database type has the highest compatibility score.

18. A non-transitory machine readable medium storing a program which when executed by at least one processing unit migrates a set of data objects from a first database of a first database type to a second database of a second database type, the program comprising sets of instructions for:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data and based on the analysis select the second database type from a plurality of other database types, wherein performing the automated process comprises computing a compatibility score for each other database type, wherein each compatibility score quantifies an ease of migrating the set of data objects from the first database to a database of each other database type, wherein the selected second database type has the highest compatibility score;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type; and

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database,

wherein the particular set of data comprises a log of database queries that were performed on the first database during a time interval, wherein computing the compatibility score for each other database type comprises sets of instructions for:

performing a query interpretation operation on each query in the log to identify a set of query components;

based on sets of cost values associated with the identified query components of each query, calculating an aggregate cost of the queries in the log for each other database type; and

computing the compatibility score based on the aggregate cost of the queries for each other database type.

19. A non-transitory machine readable medium storing a program which when executed by at least one processing unit migrates a set of data objects from a first database of a first database type to a second database of a second database type, the program comprising sets of instructions for:

retrieving a particular set of data from the first database;

performing an automated process to analyze the particular set of data and based on the analysis select the second database type from a plurality of other database types;

presenting on a display (i) the selected second database type and (ii) a user interface control for migrating the set of data objects stored in the first database to the second database of the second database type; and

in response to a selection of the user interface control:

provisioning the second database; and

transferring the set of data objects from the first database to the second database; and

redirecting new queries written for the first database to the provisioned second database, wherein redirecting new queries comprises configuring a Domain Name Service (DNS) to redirect the new queries to a database virtualization system (DVS) to translate the new queries from a first database syntax associated with the first database type to a second database syntax associated with the second database type.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Feb 26, 2026
From: DATOMETRY, INC.
To: SNOWFLAKE INC.
Reel/Frame 074957/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: WAAS, FLORIAN MICHAEL; KORABLEV, DMITRI; SOLIMAN, MOHAMED; ANTOVA, LYUBLENA ROSENOVA; DULLER, MICHAEL ALEXANDER; MORCOS, MARK; SUGIYAMA, MARC; GAGE, MICHELE
To: DATOMETRY, INC.
Reel/Frame 051976/0265 →
Continuity (7)
Provisional Application 62915585 · Oct 15, 2019
Provisional Application 62890572 · Aug 22, 2019
Provisional Application 62859693 · Jun 10, 2019
Provisional Application 62859695 · Jun 10, 2019
Provisional Application 62824994 · Mar 27, 2019
Provisional Application 62817533 · Mar 12, 2019
Provisional Application 62782337 · Dec 19, 2018
Cited By (2)
US 12,242,471 US 12,711,128