IP Library Granted Patent US 11,294,870
Granted Patent B1
US 11,294,870 · App. 16/684,847 · Granted Apr 5, 2022

One-click database migration to a selected 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/214G06F16/2455G06F16/254
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,294,870
App. No.
16/684,847
Granted
Apr 5, 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 receives a selection of the second database type and receives a selection of a user interface control for initiating the database migration from the first database of the first database type to the second database of the selected second database type. The method provisions the second database and transfers the set of data objects from the first database to the second database.

Claims (48)

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:

computing, for the second database type, a compatibility score that quantifies an ease of migrating the set of data objects from the first database to the second database, wherein the computed compatibility score is presented on a user interface prior to receiving a selection of the second database type;

receiving a selection of the second database type;

receiving a selection of a user interface control for initiating the database migration from the first database of the first database type to the second database of the selected second database type;

provisioning the second database;

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

using the second database to process queries.

2. The method of claim 1 further comprising receiving a selection of one or more applications that access the first database, wherein transferring the set of data objects comprises transferring only a subset of the data objects that are referenced by the selected applications.

3. The method of claim 1 , wherein a plurality of compatibility scores are presented on the user interface for a plurality of other database types prior to receiving the user selection of the second database type.

4. The method of claim 1 , wherein computing the compatibility score for the second database type comprises:

retrieving a first set of data from the first database;

retrieving, from a storage, a second set of data for the second database type; and

comparing the first set of data with the second set of data.

5. The method of claim 4 , wherein the first set of data comprises (i) a log of database queries that were performed on the first database during a time interval, (ii) a schema describing the set of data objects stored in the first database, and (iii) a set of operational metadata generated during execution of the database queries on the first database, wherein each query in the log of database queries comprises one or more references to the data objects.

6. The method of claim 5 , wherein comparing the first set of data with the second set of data comprises generating and storing metadata for each query that that is supported by the first database type and not supported by the second database type.

7. The method of claim 5 , wherein computing the compatibility score for the selected second database type comprises:

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

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

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

8. The method of claim 7 , wherein:

the set of cost values comprise a first set of cost values associated with the first database type and a second set of cost values associated with the second database type;

calculating an aggregate cost of the queries in the log for the second database type comprises calculating a first aggregate cost based on the first set of cost values and a second aggregate cost for the second database type based on the second set of cost values; and

computing the compatibility score for the selected second database type comprises computing the compatibility score based on a difference between (i) the first aggregate cost and (ii) the second aggregate cost.

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

10. The method of claim 7 , wherein the cost values associated with the identified query components of each query are based on the first database type and the second database type.

11. The method of claim 7 , wherein the query interpretation operation comprises pre-processing the log of database queries to (i) reconstruct each query from a plurality of tables and a plurality of rows, (ii) remove duplicate queries, and (iii) reorganize the queries into two or more sessions, wherein the queries in each session comprise references to 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.

12. 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:

receiving a selection of the second database type;

receiving a selection of a user interface control for initiating the database migration from the first database of the first database type to the second database of the selected second database type;

provisioning the second database;

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.

13. The method of claim 12 , wherein translating the new queries comprises retrieving and using stored metadata associated with queries that that are supported by the first database type and not supported by the second database type.

14. 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:

computing, for the second database type, a compatibility score that quantifies an ease of migrating the set of data objects from the first database to the second database, wherein the computed compatibility score is presented on a user interface prior to receiving a selection of the second database type;

receiving a selection of the second database type;

receiving a selection of a user interface control for initiating the database migration from the first database of the first database type to the second database of the selected second database type;

provisioning the second database;

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

using the second database to process queries.

15. The non-transitory machine readable medium of claim 14 , wherein the set of instructions for computing the compatibility score for the second database type comprises sets of instructions for:

retrieving a first set of data from the first database that comprises a log of database queries that were performed on the first database during a time interval;

retrieving, from a storage, a second set of data for the second database type that comprises a set of operational metadata generated during execution of the database queries on the first database; and

comparing the first set of data with the second set of data.

16. The non-transitory machine readable medium of claim 15 , wherein the set of instructions for computing the compatibility score for the selected second 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 a set of cost values associated with the identified query components of each query, calculating an aggregate cost of the queries in the log for the selected second database type; and

computing the compatibility score based on the aggregate cost of the queries for 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 5, 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 051832/0311 →
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 (3)
US 12,298,972 US 12,436,974 US 12,547,595