IP Library Granted Patent US 11,294,869
Granted Patent B1
US 11,294,869 · App. 16/599,061 · Granted Apr 5, 2022

Expressing complexity of migration to a database candidate

Inventors: Florian Michael Waas (San Francisco, CA); Dmitri Korablev (San Francisco, CA); Michele Gage (San Francisco, CA); Mark Morcos (Oakland, CA); Amirhossein Aleyasen (Urbana, IL)
Assignee: DATOMETRY, INC.
G06F16/214G06F16/1734G06F16/215G06F16/2272G06F16/245G06F16/2445G06F16/2453
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,869
App. No.
16/599,061
Granted
Apr 5, 2022
Kind
B1
Abstract

Some embodiments provide a method for expressing viability of a first database as a candidate for replacing a second database. The method identifies a first group of database queries that a group of applications directed towards the second database. The method produces a second group of queries by removing, from the first group, queries that are duplicates. Based on a set of complexity values associated with a set of components of the second group of queries, the method generates a complexity indicator representing a level of difficulty for rewriting the second group of queries for the second database.

Claims (35)

1. A method for expressing viability of a first database as a candidate for replacing a second database, the method comprising:

identifying a first plurality of database queries that a plurality of applications directed towards the second database;

producing a second plurality of queries by removing, from the first plurality, queries that are duplicates;

based on a set of complexity values associated with a set of components of the second plurality of queries, generating a complexity indicator representing a level of difficulty for rewriting the second plurality of queries for that are written for the second database into a third plurality of queries that are written for the first database; and

providing the complexity indicator in a report for display in order to express the viability of replacing the second database with the first database.

2. The method of claim 1 , wherein the set of complexity values are defined with respect to the first database.

3. The method of claim 1 , wherein the set of complexity values are a set of compatibility values defined with respect to the second database.

4. The method of claim 3 , wherein the set of compatibility values are generated by identifying the set of components from a database-independent representation of the second plurality of queries.

5. The method of claim 1 , wherein the candidate first database is one of a plurality of candidate databases, and the report specifies a complexity indicator for each of the plurality of candidate databases.

6. The method of claim 1 further comprising receiving a selection of the first database from a plurality of candidate databases prior to generating the complexity indicator.

7. The method of claim 1 , wherein each query is a Structured Query Language (SQL) query comprising one or more SQL statements.

8. The method of claim 1 further comprising identifying the set of components of the second plurality of queries.

9. The method of claim 8 , wherein identifying the set of components comprises (i) grouping the components according to a set of component types and (ii) calculating a quantified number of each component type in the second plurality of queries; and

generating the complexity indicator comprises using the calculated quantified numbers for the different component types to calculate the complexity indicator.

10. The method of claim 9 , wherein calculating the complexity indicator comprises (i) assigning a weight value to each component type and (ii) performing a weighted sum of the quantified number of each type of component based on the assigned weighting values.

11. The method of claim 8 , wherein identifying the set of components comprises identifying a cost value for each identified component; and

generating the complexity indicator comprises calculating the complexity indicator from the identified cost values for the identified set of components.

12. The method of claim 1 further comprising migrating data stored in the second database to the first database after providing the complexity indicator in the report.

13. A non-transitory machine readable medium storing a program which when executed by at least one processing unit expresses viability of a first database as a candidate for replacing a second database, the program comprising sets of instructions for:

identifying a first plurality of database queries that a plurality of applications directed towards the second database;

producing a second plurality of queries by removing, from the first plurality, queries that are duplicates;

based on a set of complexity values associated with a set of components of the second plurality of queries, generating a complexity indicator representing a level of difficulty for rewriting the second plurality of queries for that are written for the second database into a third plurality of queries that are written for the first database; and

providing the complexity indicator in a report for display in order to express the viability of replacing the second database with the first database.

14. The non-transitory machine readable medium of claim 13 , wherein the set of complexity values are defined with respect to the first database.

15. The non-transitory machine readable medium of claim 13 , wherein the set of complexity values are a set of compatibility values defined with respect to the second database.

16. The non-transitory machine readable medium of claim 15 , wherein the set of compatibility values are generated by identifying the set of components from a database-independent representation of the second plurality of queries.

17. The non-transitory machine readable medium of claim 13 , wherein the candidate first database is one of a plurality of candidate databases, and the report specifies a complexity indicator for each of the plurality of candidate databases.

18. The non-transitory machine readable medium of claim 13 , wherein the program further comprises sets of instructions for identifying the set of components of the second plurality of queries.

19. The non-transitory machine readable medium of claim 18 , wherein:

the set of instructions for identifying the set of components comprises a set of instructions for (i) grouping the components according to a set of component types and (ii) calculating a quantified number of each component type in the second plurality of queries; and

the set of instructions for generating the complexity indicator comprises a set of instructions for using the calculated quantified numbers for the different component types to calculate the complexity indicator.

20. The non-transitory machine readable medium of claim 19 , wherein the set of instructions for calculating the complexity indicator comprises a set of instructions for (i) assigning a weight value to each component type and (ii) performing a weighted sum of the quantified number of each type of component based on the assigned weighting values.

21. The non-transitory machine readable medium of claim 18 , wherein:

the set of instructions for identifying the set of components comprises a set of instructions for identifying a cost value for each identified component; and

the set of instructions for generating the complexity indicator comprises a set of instructions for calculating the complexity indicator from the identified cost values for the identified set of components.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded Feb 26, 2026
From: DATOMETRY, INC.
To: SNOWFLAKE INC.
Reel/Frame 074957/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2019
From: WAAS, FLORIAN MICHAEL; KORABLEV, DMITRI; GAGE, MICHELE; MORCOS, MARK; ALEYASEN, AMIRHOSSEIN
To: DATOMETRY, INC.
Reel/Frame 051394/0177 →
Continuity (7)
Provisional Application 62890572 · Aug 22, 2019
Provisional Application 62859693 · Jun 10, 2019
Provisional Application 62817533 · Mar 12, 2019
Provisional Application 62782337 · Dec 19, 2018
Provisional Application 62824994 · Mar 27, 2019
Provisional Application 62859695 · Jun 10, 2019
Provisional Application 62915585 · Oct 15, 2019