IP Library › Granted Patent US 11,636,086
Granted Patent B1
US 11,636,086 · App. 17/706,278 · Granted Apr 25, 2023

Multi-database subsetting

Inventors: John Kristopher Goodnow (Portland, OR); Andrew C. Colombi (San Francisco, CA); Adam Jacob Kamor (Atlanta, GA)
Assignee: Tonic AI, Inc.
G06F16/2282G06F16/2445G06F16/256G06F16/288
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,636,086
App. No.
17/706,278
Granted
Apr 25, 2023
Kind
B1
Abstract

Multi-database subsetting includes receiving a set of source tables. It further includes sorting the set of source tables based at least in part on dependency relationships among tables in the set of source tables. It further includes determining a traversal order based at least in part on the sorting of the set of source tables. It further includes executing the traversal order. Executing the traversal order includes visiting a table in the source set of tables according to the determined traversal order and issuing a query to extract a subset of data from the table being visited.

Claims (60)

1. A system, comprising:

a processor configured to:

receive a set of source tables;

sort the set of source tables based at least in part on dependency relationships among tables in the set of source tables;

determine a traversal order based at least in part on the sorting of the set of source tables; and

subsequent to determining the traversal order, execute the traversal order, wherein executing the traversal order comprises:

visiting a table in the set of source tables according to the determined traversal order; and

issuing a query to extract a subset of data from the table being visited;

wherein extracting the subset of data from the table being visited comprises determining whether to perform an upstream pass on the table being visited or a downstream pass on the table being visited; and

wherein in response to determining that the upstream pass is to be performed on the table being visited, the subset of data extracted from the table being visited is determined based at least in part on data that has been collected from at least one neighboring table that is downstream of the table being visited, and wherein the at least one neighboring table that is downstream of the table being visited includes a primary key that a foreign key in the table being visited refers to; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system recited in claim 1 , wherein the processor is further configured to receive a specification of a target table.

3. The system recited in claim 2 , wherein the processor is further configured to receive a specification of a target condition on the target table.

4. The system recited in claim 3 , wherein the processor is further configured to extract a seed subset of data from the target table based at least in part on the target condition.

5. The system recited in claim 4 , wherein the table being visited is visited subsequent to extracting the seed subset of data from the target table, and wherein the subset of data extracted from the table being visited is determined based at least in part on at least a portion of the seed subset of data extracted from the target table.

6. The system recited in claim 1 , wherein the subset of data extracted from the table being visited is based at least in part on one or more primary key values that have been collected from the at least one neighboring table that is downstream of the table being visited.

7. A method, comprising:

receiving a set of source tables;

sorting the set of source tables based at least in part on dependency relationships among tables in the set of source tables;

determining a traversal order based at least in part on the sorting of the set of source tables; and

subsequent to determining the traversal order, executing the traversal order, wherein executing the traversal order comprises:

visiting a table in the set of source tables according to the determined traversal order; and

issuing a query to extract a subset of data from the table being visited;

wherein extracting the subset of data from the table being visited comprises determining whether to perform an upstream pass on the table being visited or a downstream pass on the table being visited; and

wherein in response to determining that the upstream pass is to be performed on the table being visited, the subset of data extracted from the table being visited is determined based at least in part on data that has been collected from at least one neighboring table that is downstream of the table being visited, and wherein the at least one neighboring table that is downstream of the table being visited includes a primary key that a foreign key in the table being visited refers to.

8. The method of claim 7 , further comprising receiving a specification of a target table.

9. The method of claim 8 , further comprising receiving a specification of a target condition on the target table.

10. The method of claim 9 , further comprising extracting a seed subset of data from the target table based at least in part on the target condition.

11. The method of claim 10 , wherein the table being visited is visited subsequent to extracting the seed subset of data from the target table, and wherein the subset of data extracted from the table being visited is determined based at least in part on at least a portion of the seed subset of data extracted from the target table.

12. The method of claim 7 , wherein the subset of data extracted from the table being visited is based at least in part on one or more primary key values that have been collected from the at least one neighboring table that is downstream of the table being visited.

13. A system, comprising:

a processor configured to:

receive a set of source tables;

sort the set of source tables based at least in part on dependency relationships among tables in the set of source tables;

determine a traversal order based at least in part on the sorting of the set of source tables; and

subsequent to determining the traversal order, execute the traversal order, wherein executing the traversal order comprises:

visiting a table in the set of source tables according to the determined traversal order; and

issuing a query to extract a subset of data from the table being visited;

wherein extracting the subset of data from the table being visited comprises determining whether to perform an upstream pass on the table being visited or a downstream pass on the table being visited; and

wherein in response to determining that the downstream pass is to be performed on the table being visited, the subset of data extracted from the table being visited is determined based at least in part on data that has been collected from at least one neighboring table that is upstream of the table being visited, and wherein the at least one neighboring table that is upstream of the table being visited includes a foreign key that refers to a primary key in the table being visited; and

a memory coupled to the processor and configured to provide the processor with instructions.

14. The system recited in claim 13 , wherein the processor is further configured to receive a specification of a target table.

15. The system recited in claim 14 , wherein the processor is further configured to receive a specification of a target condition on the target table.

16. The system recited in claim 15 , wherein the processor is further configured to extract a seed subset of data from the target table based at least in part on the target condition.

17. The system recited in claim 16 , wherein the table being visited is visited subsequent to extracting the seed subset of data from the target table, and wherein the subset of data extracted from the table being visited is determined based at least in part on at least a portion of the seed subset of data extracted from the target table.

18. The system recited in claim 13 , wherein the subset of data extracted from the table being visited is based at least in part on one or more foreign key values that have been collected from the at least one neighboring table that is upstream of the table being visited.

19. A method, comprising:

receiving a set of source tables;

sorting the set of source tables based at least in part on dependency relationships among tables in the set of source tables;

determining a traversal order based at least in part on the sorting of the set of source tables; and

subsequent to determining the traversal order, executing the traversal order, wherein executing the traversal order comprises:

visiting a table in the set of source tables according to the determined traversal order; and

issuing a query to extract a subset of data from the table being visited;

wherein extracting the subset of data from the table being visited comprises determining whether to perform an upstream pass on the table being visited or a downstream pass on the table being visited; and

wherein in response to determining that the downstream pass is to be performed on the table being visited, the subset of data extracted from the table being visited is determined based at least in part on data that has been collected from at least one neighboring table that is upstream of the table being visited, and wherein the at least one neighboring table that is upstream of the table being visited includes a foreign key that refers to a primary key in the table being visited.

20. The method of claim 19 , further comprising receiving a specification of a target table.

21. The method of claim 20 , further comprising receiving a specification of a target condition on the target table.

22. The method of claim 21 , further comprising extracting a seed subset of data from the target table based at least in part on the target condition.

23. The method of claim 22 , wherein the table being visited is visited subsequent to extracting the seed subset of data from the target table, and wherein the subset of data extracted from the table being visited is determined based at least in part on at least a portion of the seed subset of data extracted from the target table.

24. The method of claim 19 , wherein the subset of data extracted from the table being visited is based at least in part on one or more foreign key values that have been collected from the at least one neighboring table that is upstream of the table being visited.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2022
From: GOODNOW, JOHN KRISTOPHER; COLOMBI, ANDREW C.; KAMOR, ADAM JACOB
To: TONIC AI, INC.
Reel/Frame 059976/0658 →
Continuity (2)
Provisional Application 63291600 · Dec 20, 2021
Provisional Application 63167500 · Mar 29, 2021
Cited By (1)
US 12,360,832