IP Library Granted Patent US 8,782,083
Granted Patent B1
US 8,782,083 · App. 13/615,950 · Granted Jul 15, 2014

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,782,083
App. No.
13/615,950
Granted
Jul 15, 2014
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 (76)

1. A computer-implemented method comprising:

receiving a data request that is associated with a query;

identifying a parameter of data needed for satisfaction of the query;

accessing, from electronic storage, parameter information defining data available in cubes stored in a cache, each of the cubes being a pre-processed abstraction of data stored in a database system and being stored in the cache prior to receipt of the data request;

comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache;

based on comparison results, determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache;

based on the determination, processing, by at least one processor, data from the one or more cubes in the cache to obtain data needed for satisfaction of the query; and

generating a response to the data request based on the obtained data needed for satisfaction of the query.

2. The method of claim 1 :

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified parameter of data needed for satisfaction of the query is attainable through processing data from a first cube in the catch and a second in the cache; and

wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises processing first data from the first cube in the cache and second data from the second cube in the cache to obtain data needed for satisfaction of the query.

3. The method of claim 2 , wherein processing the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query comprises:

accessing the first data from the first cube in the cache;

accessing the second data from the second cube in the cache; and

combining the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query.

4. The method of claim 2 , wherein processing the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query comprises:

accessing the first data from the first cube in the cache;

accessing the second data from the second cube in the cache; and

computing new data needed for satisfaction of the query using the first data from the first cube in the cache and the second data from the second cube in the cache.

5. The method of claim 1 , wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises filtering data from the one or more cubes in the cache to obtain data needed for satisfaction of the query.

6. The method of claim 1 , wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises computing new data needed for satisfaction of the query using the data from the one or more cubes in the cache.

7. The method of claim 1 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying attributes of data needed for satisfaction of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, attribute information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified attributes of data needed for satisfaction of the query with the accessed attribute information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified attributes of data needed for satisfaction of the query do not match attribute information of a cube in the cache, but that the identified attributes of data needed for satisfaction of the query are attainable through processing data from at least two cubes in the cache.

8. The method of claim 1 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying a filter parameter of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, filter information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified filter parameter of the query with the accessed filter information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified filter parameter of the query does not match filter information for a cube stored in the cache, but that the identified filter parameter of the query is attainable through filtering data from one of the cubes in the cache.

9. The method of claim 1 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying one or more metrics needed for satisfaction of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, metric information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified one or more metrics needed for satisfaction of the query with the accessed metric information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified one or more metrics needed for satisfaction of the query do not match metric information for a cube stored in the cache, but that the one or more metrics needed for satisfaction of the query are attainable through performing computations using data from one or more of the cubes in the cache.

10. The method of claim 1 wherein accessing, from electronic storage, parameter information defining data available in cubes stored in the cache comprises accessing, from the cache, the cubes.

11. A system comprising:

one or more computers; and

a 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;

identifying a parameter of data needed for satisfaction of the query;

accessing, from electronic storage, parameter information defining data available in cubes stored in a cache, each of the cubes being a pre-processed abstraction of data stored in a database system and being stored in the cache prior to receipt of the data request;

comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache;

based on comparison results, determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache;

based on the determination, processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query; and

generating a response to the data request based on the obtained data needed for satisfaction of the query.

12. The system of claim 11 :

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified parameter of data needed for satisfaction of the query is attainable through processing data from a first cube in the catch and a second in the cache; and

wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises processing first data from the first cube in the cache and second data from the second cube in the cache to obtain data needed for satisfaction of the query.

13. The system of claim 12 , wherein processing the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query comprises:

accessing the first data from the first cube in the cache;

accessing the second data from the second cube in the cache; and

combining the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query.

14. The system of claim 12 , wherein processing the first data from the first cube in the cache and the second data from the second cube in the cache to obtain data needed for satisfaction of the query comprises:

accessing the first data from the first cube in the cache;

accessing the second data from the second cube in the cache; and

computing new data needed for satisfaction of the query using the first data from the first cube in the cache and the second data from the second cube in the cache.

15. The system of claim 11 , wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises filtering data from the one or more cubes in the cache to obtain data needed for satisfaction of the query.

16. The system of claim 11 , wherein processing data from the one or more cubes in the cache to obtain data needed for satisfaction of the query comprises computing new data needed for satisfaction of the query using the data from the one or more cubes in the cache.

17. The system of claim 11 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying attributes of data needed for satisfaction of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, attribute information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified attributes of data needed for satisfaction of the query with the accessed attribute information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified attributes of data needed for satisfaction of the query do not match attribute information of a cube in the cache, but that the identified attributes of data needed for satisfaction of the query are attainable through processing data from at least two cubes in the cache.

18. The system of claim 11 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying a filter parameter of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, filter information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified filter parameter of the query with the accessed filter information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified filter parameter of the query does not match filter information for a cube stored in the cache, but that the identified filter parameter of the query is attainable through filtering data from one of the cubes in the cache.

19. The system of claim 11 :

wherein identifying the parameter of data needed for satisfaction of the query comprises identifying one or more metrics needed for satisfaction of the query;

wherein accessing, from electronic storage, parameter information defining data available in the cubes stored in the cache comprises accessing, from electronic storage, metric information for the cubes stored in the cache;

wherein comparing the identified parameter of data needed for satisfaction of the query with the accessed parameter information defining data available in the cubes stored in the cache comprises comparing the identified one or more metrics needed for satisfaction of the query with the accessed metric information for the cubes stored in the cache; and

wherein determining that the identified parameter of data needed for satisfaction of the query does not match parameter information of a cube in the cache, but that the identified parameter of data needed for satisfaction of the query is attainable through processing data from one or more cubes in the cache comprises determining that the identified one or more metrics needed for satisfaction of the query do not match metric information for a cube stored in the cache, but that the one or more metrics needed for satisfaction of the query are attainable through performing computations using data from one or more of the cubes in the cache.

20. The system of claim 11 wherein accessing, from electronic storage, parameter information defining data available in cubes stored in the cache comprises accessing, from the cache, the cubes.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2014
From: CAPPIELLO, SCOTT; FENG, XUN; KIRYAKOV, YULIYAN; YUAN, JUN
To: MICROSTRATEGY INCORPORATED
Reel/Frame 032965/0910 →