Compact aggregation working areas for efficient grouping and aggregation using multi-core CPUs
First Claim
1. A computer program product comprising a non-transitory computer useable storage medium to store a computer readable program, wherein the computer readable program, when executed on a computer, causes the computer to perform operations comprising:
- computing a running aggregate for a group within a business intelligence (BI) query;
identifying a location to store running aggregate information within an aggregation working area of a cache, wherein the aggregation working area comprises;
a first data structure for storing running aggregate information that is associated with a group that is accessed frequently relative to a threshold; and
a second data structure for storing running aggregate information that is associated with a group that is accessed infrequently relative to the threshold;
estimating a final value of the running aggregate;
estimating a number of bits for storing the final value of the running aggregate;
allocating the estimated number of bits within either the first or second data structure; and
storing the running aggregate information in either the first or second data structure of the aggregation working area based on a characterization of the group as a frequently or infrequently accessed group.
1 Assignment
0 Petitions
Accused Products
Abstract
A system is described for creating compact aggregation working areas for efficient grouping and aggregation using multi-core CPUs. The system implements operations including computing a running aggregate for a group within a business intelligence (BI) query, and identifying a location to store running aggregate information within an aggregation working area of a cache. The aggregation working area includes first and second data structures. The first data structure stores running aggregate information that is associated with a group that is accessed frequently relative to a threshold. The second data structure stores running aggregate information that is associated with a group that is accessed infrequently relative to the threshold. The operations also include storing the running aggregate information in either the first or second data structure of the aggregation working area based on a characterization of the group as a frequently or infrequently accessed group.
8 Citations
20 Claims
-
1. A computer program product comprising a non-transitory computer useable storage medium to store a computer readable program, wherein the computer readable program, when executed on a computer, causes the computer to perform operations comprising:
-
computing a running aggregate for a group within a business intelligence (BI) query; identifying a location to store running aggregate information within an aggregation working area of a cache, wherein the aggregation working area comprises; a first data structure for storing running aggregate information that is associated with a group that is accessed frequently relative to a threshold; and a second data structure for storing running aggregate information that is associated with a group that is accessed infrequently relative to the threshold; estimating a final value of the running aggregate; estimating a number of bits for storing the final value of the running aggregate; allocating the estimated number of bits within either the first or second data structure; and storing the running aggregate information in either the first or second data structure of the aggregation working area based on a characterization of the group as a frequently or infrequently accessed group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method for implementing an aggregation working area, the method comprising:
-
computing a running aggregate for a group within a business intelligence (BI) query; identifying a location to store running aggregate information within the aggregation working area of a cache, wherein the aggregation working area comprises; a first data structure for storing running aggregate information that is associated with a group that is accessed frequently relative to a threshold; and a second data structure for storing running aggregate information that is associated with a group that is accessed infrequently relative to the threshold; wherein the threshold comprises a tuple threshold, and the frequently accessed group has a first number of tuples touching the group that is greater than the tuple threshold, and the infrequently accessed group has a second number of tuples touching the group that is less than or equal to the tuple threshold; and storing the running aggregate information in either the first or second data structure of the aggregation working area based on a characterization of the group as a frequently or infrequently accessed group. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a multi-core processor, wherein each core is configured to run at least one thread; a cache within a caching hierarchy coupled to the multi-core processor, wherein the cache is configured to implement an aggregation working area for each thread, and each aggregation working area is configured to store running aggregate information associated with an aggregation function of a business intelligence (BI) platform; wherein the caching hierarchy is configured to implement separate data structures for aggregates of frequently and infrequently accessed groups within each aggregation working area; and wherein the caching hierarchy is further configured to implement a first data structure for storing running aggregate information that is associated with a group that is accessed frequently relative to a threshold, wherein the running aggregate information for the frequently accessed group comprises a value of a running aggregate computed according to the aggregation function. - View Dependent Claims (16, 17, 18)
-
-
19. A system comprising:
-
a multi-core processor, wherein each core is configured to run at least one thread; and a cache within a caching hierarchy coupled to the multi-core processor, wherein the cache is configured to implement an aggregation working area for each thread, and each aggregation working area is configured to store running aggregate information associated with an aggregation function of a business intelligence (BI) platform, wherein the running aggregate information comprises information related to a running aggregate which comprises a value calculated according to the aggregation function; wherein the caching hierarchy is configured to implement separate a first data structure for aggregates of frequently accessed groups and a second data structure for aggregates of infrequently accessed groups, and to store a plurality of running aggregates into the first data structure for storing the aggregates associated with a group that is frequently accessed, wherein each of the plurality of running aggregates are located at adjacent locations using separately estimated numbers of bits, wherein each estimated number of bits is less than a standard number of bits for a working data type of the business data from which the corresponding running aggregate is computed. - View Dependent Claims (20)
-
Specification