IP Library Granted Patent US 8,296,287
Granted Patent B1
US 8,296,287 · App. 12/907,494 · Granted Oct 23, 2012

Dynamic sourcing

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,296,287
App. No.
12/907,494
Granted
Oct 23, 2012
Kind
B1
Abstract

Dynamic sourcing, in which a data request that is associated with a query is received and a parameter of data needed for satisfaction of the query is identified. Parameter information defining data available in at least one cube stored in a cache is accessed and the parameter is compared with the parameter information. Based on comparison results, it is determined whether one or more cubes in the cache include sufficient data to satisfy the query. In response to a determination that one or more cubes include sufficient data to satisfy the query, a response to the data request is generated by executing the query against the one or more cubes. In response to a determination that the cubes do not include sufficient data to satisfy the query, a response to the data request is generated by executing at least a portion of the query against a database system.

Claims (111)

1. A computer-implemented method comprising:

receiving a data request that is associated with a query;

identifying one or more attributes of data needed for satisfaction of the query;

accessing, from electronic storage, attribute information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more attributes of data needed for satisfaction of the query with attributes of one or more single cubes in the cache;

determining that attributes of a single cube are not sufficient for satisfaction of the query;

in response to the determination that attributes of a single cube are not sufficient for satisfaction of the query:

comparing the identified one or more attributes of data needed for satisfaction of the query with an aggregation of attributes of multiple cubes in the cache;

determining that attributes of two or more aggregated cubes are sufficient for satisfaction of the query;

in response to the determination that attributes of two or more aggregated cubes are sufficient for satisfaction of the query, selecting the two or more aggregated cubes having sufficient attributes for execution of the query; and

in response to selection of the two or more aggregated cubes having sufficient attributes for execution of the query, generating a response to the data request by executing the query against the two or more aggregated cubes in the cache.

2. The method of claim 1 wherein receiving the data request that is associated with the query comprises receiving a query.

3. The method of claim 1 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

4. A computer-implemented method comprising:

receiving a data request that is associated with a query;

identifying a filter parameter of the query;

accessing, from electronic storage, filter information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified filter parameter of the query with a filter parameter of one or more cubes in the cache;

determining that the identified filter parameter of the query does not match a filter parameter of a cube in the cache;

in response to the determination that the identified filter parameter of the query does not match a filter parameter of a cube in the cache:

determining that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query;

in response to the determination that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query, selecting the cube having the less restrictive filter parameter for execution of the query; and

in response to selection of the cube having the less restrictive filter parameter for execution of the query, generating a response to the data request by executing the query against the cube having the less restrictive filter parameter.

5. The method of claim 4 wherein receiving the data request that is associated with the query comprises receiving a query.

6. The method of claim 4 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

7. A computer-implemented method comprising:

receiving a data request that is associated with a query;

identifying one or more metrics needed for satisfaction of the query;

accessing, from electronic storage, metric information for cubes stored in the cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more metrics needed for satisfaction of the query with one or more metrics included in one or more cubes in the cache;

determining that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache:

determining that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache, selecting the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable; and

in response to selection of the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable, generating a response to the data request by executing the query against the one or more cubes selected.

8. The method of claim 7 wherein receiving the data request that is associated with the query comprises receiving a query.

9. The method of claim 7 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

10. An electronic system comprising:

at least one electronic data storage device; and

at least one processor configured to perform operations comprising:

receiving a data request that is associated with a query;

identifying one or more attributes of data needed for satisfaction of the query;

accessing, from electronic storage, attribute information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more attributes of data needed for satisfaction of the query with attributes of one or more single cubes in the cache;

determining that attributes of a single cube are not sufficient for satisfaction of the query;

in response to the determination that attributes of a single cube are not sufficient for satisfaction of the query:

comparing the identified one or more attributes of data needed for satisfaction of the query with an aggregation of attributes of multiple cubes in the cache;

determining that attributes of two or more aggregated cubes are sufficient for satisfaction of the query;

in response to the determination that attributes of two or more aggregated cubes are sufficient for satisfaction of the query, selecting the two or more aggregated cubes having sufficient attributes for execution of the query; and

in response to selection of the two or more aggregated cubes having sufficient attributes for execution of the query, generating a response to the data request by executing the query against the two or more aggregated cubes in the cache.

11. The system of claim 10 wherein receiving the data request that is associated with the query comprises receiving a query.

12. The system of claim 10 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

13. An electronic system comprising:

at least one electronic data storage device; and

at least one processor configured to perform operations comprising:

receiving a data request that is associated with a query;

identifying a filter parameter of the query;

accessing, from electronic storage, filter information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified filter parameter of the query with a filter parameter of one or more cubes in the cache;

determining that the identified filter parameter of the query does not match a filter parameter of a cube in the cache;

in response to the determination that the identified filter parameter of the query does not match a filter parameter of a cube in the cache:

determining that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query;

in response to the determination that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query, selecting the cube having the less restrictive filter parameter for execution of the query; and

in response to selection of the cube having the less restrictive filter parameter for execution of the query, generating a response to the data request by executing the query against the cube having the less restrictive filter parameter.

14. The system of claim 13 wherein receiving the data request that is associated with the query comprises receiving a query.

15. The system of claim 13 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

16. An electronic system comprising:

at least one electronic data storage device; and

at least one processor configured to perform operations comprising:

receiving a data request that is associated with a query;

identifying one or more metrics needed for satisfaction of the query;

accessing, from electronic storage, metric information for cubes stored in the cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more metrics needed for satisfaction of the query with one or more metrics included in one or more cubes in the cache;

determining that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache:

determining that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache, selecting the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable; and

in response to selection of the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable, generating a response to the data request by executing the query against the one or more cubes selected.

17. The system of claim 16 wherein receiving the data request that is associated with the query comprises receiving a query.

18. The system of claim 16 wherein receiving the data request that is associated with the query comprises receiving a report generation request that requires execution of a query to gather data required to generate the report.

19. At least one computer-readable storage medium encoded with executable instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a data request that is associated with a query;

identifying one or more attributes of data needed for satisfaction of the query;

accessing, from electronic storage, attribute information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more attributes of data needed for satisfaction of the query with attributes of one or more single cubes in the cache;

determining that attributes of a single cube are not sufficient for satisfaction of the query;

in response to the determination that attributes of a single cube are not sufficient for satisfaction of the query:

comparing the identified one or more attributes of data needed for satisfaction of the query with an aggregation of attributes of multiple cubes in the cache;

determining that attributes of two or more aggregated cubes are sufficient for satisfaction of the query;

in response to the determination that attributes of two or more aggregated cubes are sufficient for satisfaction of the query, selecting the two or more aggregated cubes having sufficient attributes for execution of the query; and

in response to selection of the two or more aggregated cubes having sufficient attributes for execution of the query, generating a response to the data request by executing the query against the two or more aggregated cubes in the cache.

20. At least one computer-readable storage medium encoded with executable instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a data request that is associated with a query;

identifying a filter parameter of the query;

accessing, from electronic storage, filter information for cubes stored in a cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified filter parameter of the query with a filter parameter of one or more cubes in the cache;

determining that the identified filter parameter of the query does not match a filter parameter of a cube in the cache;

in response to the determination that the identified filter parameter of the query does not match a filter parameter of a cube in the cache:

determining that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query;

in response to the determination that a filter parameter of a cube in the cache is less restrictive than the identified filter parameter of the query, selecting the cube having the less restrictive filter parameter for execution of the query; and

in response to selection of the cube having the less restrictive filter parameter for execution of the query, generating a response to the data request by executing the query against the cube having the less restrictive filter parameter.

21. At least one computer-readable storage medium encoded with executable instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a data request that is associated with a query;

identifying one or more metrics needed for satisfaction of the query;

accessing, from electronic storage, metric information for cubes stored in the cache, the cubes being pre-processed abstractions of data from a database system and being stored in the cache prior to receipt of the data request;

comparing the identified one or more metrics needed for satisfaction of the query with one or more metrics included in one or more cubes in the cache;

determining that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are not found in one or more cubes in the cache:

determining that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache;

in response to the determination that the identified one or more metrics needed for satisfaction of the query are derivable from metrics included in one or more cubes in the cache, selecting the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable; and

in response to selection of the one or more cubes in the cache from which the identified one or more metrics needed for satisfaction of the query are derivable, generating a response to the data request by executing the query against the one or more cubes selected.

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 →