IP Library Granted Patent US 11,620,291
Granted Patent B1
US 11,620,291 · App. 16/599,055 · Granted Apr 4, 2023

Quantifying complexity of a database application

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/24549G06F16/214
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,620,291
App. No.
16/599,055
Granted
Apr 4, 2023
Kind
B1
Abstract

Some embodiments provide a method for quantifying the workload placed on a database by an application. The method identifies a first group of database queries that the application directed towards the database. The method produces a second group of queries by removing, from the first group of queries, queries that are duplicates based on the semantic structure of the queries. Based on a set of properties of the second group of queries, the method computes a complexity indicator that represents a complexity expression of the second group of queries.

Claims (36)

1. A method for quantifying workload placed on a first database by an application, the method comprising:

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

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

based on a set of properties of the second plurality of queries, computing a complexity indicator that represents a level of difficulty for rewriting the second plurality of queries for a second database that is a candidate database for migrating data in the first database; and

presenting the complexity indicator in a display to allow a user to determine whether the data should be migrated from the first database to the second database.

2. The method of claim 1 , wherein removing the duplicate queries comprises:

identifying a group of one or more duplicate sets of queries, each duplicate set comprising two or more queries that have the same query structure; and

eliminating, from the first plurality, all but one of each query in each identified duplicate query set.

3. The method of claim 1 , wherein removing the duplicate queries comprises:

for each identified query in the first plurality of queries, generating a query identifier based on a set of components of the identified query;

using the query identifiers to identify duplicate queries in the first plurality of queries.

4. The method of claim 1 , wherein the complexity indicator further represents a level of difficulty for verifying the results of executing the second plurality of queries on the second database.

5. The method of claim 1 , wherein each query in the second plurality is a unique query that does not have a same set of components as another query in the second plurality.

6. The method of claim 3 , wherein the query identifiers are hash values.

7. The method of claim 3 , wherein generating a query identifier for a query comprises generating a hash value from the set of components of the query.

8. The method of claim 1 , wherein the complexity indicator informs a user decision to migrate the application to a second database.

9. The method of claim 1 , wherein the first database is of a first database type, wherein the second database is of a second, different database type.

10. The method of claim 8 , wherein presenting the complexity indicator comprises generating a report comprising the complexity indicator for display on a user interface, wherein the report informs the user's determination.

11. The method of claim 10 , wherein the report comprises a plurality of complexity indicators for a plurality of applications that also direct queries to the first database.

12. A non-transitory machine readable medium storing a program which when executed by at least one processing unit quantifies a workload placed on a first database by an application, the program comprising sets of instructions for:

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

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

based on a set of properties of the second plurality of queries, computing a complexity indicator that represents a level of difficulty for rewriting the second plurality of queries for a second database that is a candidate database for migrating data in the first database; and

presenting the complexity indicator in a display to allow a user to determine whether the data should be migrated from the first database to the second database.

13. The non-transitory machine readable medium of claim 12 , wherein the set of instructions for removing the duplicate queries comprises sets of instructions for:

identifying a group of one or more duplicate sets of queries, each duplicate set comprising two or more queries that have the same query structure; and

eliminating, from the first plurality, all but one of each query in each identified duplicate query set.

14. The non-transitory machine readable medium of claim 12 , wherein the set of instructions for removing the duplicate queries comprises sets of instructions for:

for each identified query in the first plurality of queries, generating a query identifier based on a set of components of the identified query;

using the query identifiers to identify duplicate queries in the first plurality of queries.

15. The non-transitory machine readable medium of claim 12 , wherein the complexity indicator further represents a level of difficulty for verifying the results of executing the second plurality of queries on the second database.

16. The non-transitory machine readable medium of claim 12 , wherein each query in the second plurality is a unique query that does not have a same set of components as another query in the second plurality.

17. The non-transitory machine readable medium of claim 14 , wherein the query identifiers are hash values.

18. The non-transitory machine readable medium of claim 14 , wherein the set of instructions for generating a query identifier for a query comprises a set of instructions for generating a hash value from the set of components of the query.

19. The non-transitory machine readable medium of claim 12 , wherein a user interface informs a user decision to migrate the set of applications to a second database.

20. The non-transitory machine readable medium of claim 19 , the set of instructions for presenting the complexity indicator comprises a set of instructions for generating a report comprising the complexity indicator for display on the user interface, wherein the report (i) comprises a plurality of complexity indicators for a plurality of applications that also direct queries to the first database and (ii) informs the user's determination.

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/0007 →
Continuity (6)
Provisional Application 62890572 · Aug 22, 2019
Provisional Application 62859695 · Jun 10, 2019
Provisional Application 62859693 · Jun 10, 2019
Provisional Application 62824994 · Mar 27, 2019
Provisional Application 62817533 · Mar 12, 2019
Provisional Application 62782337 · Dec 19, 2018