IP Library Granted Patent US 8,812,490
Granted Patent B1
US 8,812,490 · App. 12/915,752 · Granted Aug 19, 2014

Data source joins

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 8,812,490
App. No.
12/915,752
Granted
Aug 19, 2014
Kind
B1
Abstract

Database report generation technology for handling a single logical query that requires data that is physically located in two different sources. The system uses intelligent push-down joins, which move data from one source to the other and join data within that source. The system dynamically determines which direction to move data depending on how the data is used in a query.

Claims (200)

1. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining a first volume measurement of data required from a first data source to satisfy the query, and

determining a second volume measurement of data required from a second data source to satisfy the query, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the first volume measurement with the second volume measurement; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the first volume measurement is greater than the second volume measurement, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the second volume measurement is greater than the first volume measurement, selecting the second data source as the primary source to receive data from the first data source.

2. The method of claim 1 wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises accounting for current usage of each of the multiple, different data sources in determining cost characteristics.

3. The method of claim 2 wherein the accounting for current usage of each of the multiple, different data sources in determining cost characteristics comprises accounting for current bandwidth and load of each of the multiple, different data sources in determining cost characteristics.

4. The method of claim 1 wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source further comprises determining, for each of the multiple, different data sources, a cost characteristic based on monetary fees associated with moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source.

5. The method of claim 1 further comprising, subsequent to executing the query against data included in the primary data source, deleting, from the primary data source, the identified data required from the multiple, different data sources other than the primary data source that was moved into the table included in the primary data source.

6. The method of claim 5 :

wherein the moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source comprises creating the table in the primary data source based on the selection of the primary data source; and

wherein the deleting, from the primary data source, the identified data required from the multiple, different data sources other than the primary data source that was moved into the table included in the primary data source comprises deleting the table created in the primary data source.

7. The method of claim 1 wherein the executing the query against data included in the primary data source comprises analyzing the query only against physical data storage of the primary data source.

8. The method of claim 1 wherein the executing the query against data included in the primary data source comprises analyzing the query against physical data storage of the primary data source without analyzing the query against physical data storage of any of the multiple, different data sources other than the primary data source.

9. The method of claim 1 wherein the moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source comprises joining, in the primary data source, the identified data required from the multiple, different data sources other than the primary data source with the identified data required from the primary data source.

10. The method of claim 1 wherein the receiving the data request that is associated with the query that requires data from each of multiple, different data sources comprises receiving a data request that is associated with a query that requires data from each of multiple, physically independent data sources that are located remotely from one another.

11. The method of claim 1 wherein the receiving the data request that is associated with the query that requires data from each of multiple, different data sources comprises receiving a query that requires data from each of multiple, different data sources.

12. The method of claim 1 wherein the receiving the data request that is associated with the query that requires data from each of multiple, different data sources comprises receiving a report generation request that requires execution of a query that requires data from each of multiple, different data sources to gather data required to generate the report.

13. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining whether data required from a first data source to satisfy the query is stored in a temporary table, and

determining whether data required from a second data source to satisfy the query is stored in a temporary table, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determination of whether data required from the first data source to satisfy the query is stored in a temporary table with the determination of whether data required from the second data source to satisfy the query is stored in a temporary table; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the data required from the first data source to satisfy the query is not stored in a temporary table and the data required from the second data source to satisfy the query is stored in a temporary table, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the data required from the second data source to satisfy the query is not stored in a temporary table and the data required from the first data source to satisfy the query is stored in a temporary table, selecting the second data source as the primary source to receive data from the first data source.

14. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining a first time period of existence of a first table including data required from a first data source to satisfy the query, and

determining a second time period of existence of a second table including data required from a second data source to satisfy the query, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the first time period with the second time period; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the first time period is longer than the second time period, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the second time period is longer than the first time period, selecting the second data source as the primary source to receive data from the first data source.

15. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises determining, for each of the multiple, different data sources, a time needed to access and transfer the identified data required from the multiple, different data sources other than the corresponding data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determined times with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to access and transfer the identified data required from the multiple, different data sources other than the primary data source.

16. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises determining, for each of the multiple, different data sources, a time needed to execute the query using the corresponding data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determined times with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to execute the query using the primary data source.

17. A computer-implemented method comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy query;

the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining, for each of the multiple, different data sources, a first time needed to access and transfer the identified data required from the multiple, different data sources other than the corresponding data source,

determining, for each of the multiple, different data sources, a second time needed to execute the query using the corresponding data source, and

computing, for each of the multiple, different data sources, a cost measurement for the identified data source that is indicative of time needed to yield query results when the identified data source is selected as primary based on the first time and the second time;

wherein the comparing the determined cost characteristics with each other comprises comparing the cost measurements with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to yield query results when selected as primary.

18. A system comprising:

one or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source;

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining a first volume measurement of data required from a first data source to satisfy the query, and

determining a second volume measurement of data required from a second data source to satisfy the query, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the first volume measurement with the second volume measurement; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the first volume measurement is greater than the second volume measurement, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the second volume measurement is greater than the first volume measurement, selecting the second data source as the primary source to receive data from the first data source.

19. A system comprising:

one or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple,

different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source,

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining whether data required from a first data source to satisfy the query is stored in a temporary table, and

determining whether data required from a second data source to satisfy the query is stored in a temporary table, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determination of whether data required from the first data source to satisfy the query is stored in a temporary table with the determination of whether data required from the second data source to satisfy the query is stored in a temporary table; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the data required from the first data source to satisfy the query is not stored in a temporary table and the data required from the second data source to satisfy the query is stored in a temporary table, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the data required from the second data source to satisfy the query is not stored in a temporary table and the data required from the first data source to satisfy the query is stored in a temporary table, selecting the second data source as the primary source to receive data from the first data source.

20. A system comprising:

one or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source,

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining a first time period of existence of a first table including data required from a first data source to satisfy the query, and

determining a second time period of existence of a second table including data required from a second data source to satisfy the query, the second data source being different than the first data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the first time period with the second time period; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises:

when the comparison reveals that the first time period is longer than the second time period, selecting the first data source as the primary source to receive data from the second data source; and

when the comparison reveals that the second time period is longer than the first time period, selecting the second data source as the primary source to receive data from the first data source.

21. A system comprising:

one or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source,

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises determining, for each of the multiple, different data sources, a time needed to access and transfer the identified data required from the multiple, different data sources other than the corresponding data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determined times with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to access and transfer the identified data required from the multiple, different data sources other than the primary data source.

22. A system comprising:

one or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source,

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises determining, for each of the multiple, different data sources, a time needed to execute the query using the corresponding data source;

wherein the comparing the determined cost characteristics with each other comprises comparing the determined times with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to execute the query using the primary data source.

23. A system comprising:

One or more computers; and

a non-transitory computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving a data request that is associated with a query that requires data from each of multiple, different data sources;

identifying data required from each of the multiple, different data sources to satisfy the query;

determining, for each of the multiple, different data sources, a cost characteristic related to moving, to a corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source;

comparing the determined cost characteristics with each other;

based on comparison results, selecting, from among the multiple, different data sources, a primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source;

based on the selection of the primary data source, moving, into a table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source;

subsequent to moving, into the table included in the primary data source, the identified data required from the multiple, different data sources other than the primary data source, executing the query against data included in the primary data source; and

providing a response to the data request based on the execution of the query against data included in the primary data source,

wherein the determining, for each of the multiple, different data sources, a cost characteristic related to moving, to the corresponding data source, the identified data required from the multiple, different data sources other than the corresponding data source and executing the query at the corresponding data source comprises:

determining, for each of the multiple, different data sources, a first time needed to access and transfer the identified data required from the multiple, different data sources other than the corresponding data source,

determining, for each of the multiple, different data sources, a second time needed to execute the query using the corresponding data source, and

computing, for each of the multiple, different data sources, a cost measurement for the identified data source that is indicative of time needed to yield query results when the identified data source is selected as primary based on the first time and the second time;

wherein the comparing the determined cost characteristics with each other comprises comparing the cost measurements with each other; and

wherein the selecting, from among the multiple, different data sources, the primary data source that is associated with the determined cost characteristic that indicates lowest cost of moving, to the primary data source, the identified data required from the multiple, different data sources other than the primary data source and executing the query at the primary data source comprises selecting, from among the multiple, different data sources, a primary data source that has lowest time needed to yield query results when selected as primary.

Assignments (3)
CHANGE OF NAME Recorded Sep 19, 2025
From: MICROSTRATEGY INCORPORATED
To: STRATEGY INC
Reel/Frame 072909/0658 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT REEL/FRAME: 056647/0687, REEL/FRAME: 057435/0023, REEL/FRAME: 059256/0247, REEL/FRAME: 062794/0255 AND REEL/FRAME: 066663/0713 Recorded Sep 26, 2024
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS SUCCESSOR IN INTEREST TO U.S. BANK NATIONAL ASSOCIATION, IN ITS CAPACITY AS COLLATERAL AGENT FOR THE SECURED PARTIES
To: MICROSTRATEGY INCORPORATED; MICROSTRATEGY SERVICES CORPORATION
Reel/Frame 069065/0539 →
SECURITY INTEREST Recorded Jun 22, 2021
From: MICROSTRATEGY INCORPORATED
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056647/0687 →