IP Library › Granted Patent US 11,520,760
Granted Patent B2
US 11,520,760 · App. 15/333,022 · Granted Dec 6, 2022

System and method for providing bottom-up aggregation in a multidimensional database environment

Inventors: Alexey Roytman (Beer Sheva, IL); Natasha Reichman (Beer Sheva, IL); Victor Belyaev (San Jose, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/22G06F16/24562G06F16/283
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,520,760
App. No.
15/333,022
Granted
Dec 6, 2022
Kind
B2
Abstract

In accordance with an embodiment, the system supports bottom-up aggregation in a multidimensional database computing environment. A dynamic flow, coupled with a data retrieval layer or data fetching component, which in some environments can incorporate a kernel-based data structure, referred to herein as an odometer retriever, or odometer, that manages pointers to data blocks, contains control information, or otherwise operates as an array of arrays of pointers to stored members, enables bottom-up aggregation of cube data which, for example with pure aggregating queries, provides considerable run time improvement.

Claims (44)

1. A system for providing bottom-up aggregation in a multidimensional database environment, comprising:

a multidimensional database server for at least one of storage or analysis of data in a multidimensional database, the multidimensional database utilizing data blocks to store data, wherein the multidimensional database server includes:

a storage container including data that represent at least a portion of the multidimensional database, the storage container being configured as one of a block storage option or an aggregate storage option;

a data retrieval layer configured to retrieve data from at least one of the storage container or the multidimensional database during processing of a query; and

a computing device having a processor executing instructions that cause the processor to:

receive an input query that defines a region within the multidimensional database, wherein the region defined by the input query includes links to other regions within the multidimensional database;

identify a first set of data blocks that contribute to a result of the input query, wherein the first set of data blocks are in the region within the multidimensional database defined by the input query;

identify a second set of data blocks from the other regions within the multidimensional database linked to in the region defined by the input query, wherein the second set of data blocks include a subset of data blocks from the other regions that contribute to the result of the input query; and

retrieve, using the data retrieval layer, the first and second sets of data blocks from one of the storage container or the multidimensional database to accumulate data in accordance with the input query,

wherein the data retrieval layer scans the multidimensional database to identify the first set of data blocks and the second set of data blocks while data is accumulated in accordance with the input query.

2. The system of claim 1 , wherein a dynamic flow process includes marking of members as dynamic, for use during processing of the input query, including expanding dynamic members down to a selection of aggregated members.

3. The system of claim 1 , wherein the data retrieval layer includes an array of arrays of pointers to data blocks.

4. A method for providing bottom-up aggregation in a multidimensional database environment, comprising:

providing, at a computer system including a processor, a multidimensional database server for at least one of storage or analysis of data in a multidimensional database, the multidimensional database utilizing data blocks to store data, wherein the multidimensional database server further includes:

a storage container including data that represent at least a portion of the multidimensional database, the storage container being configured as one of a block storage option or an aggregate storage option; and

a data retrieval layer configured to retrieve data from at least one of the storage container or the multidimensional database during processing of a query;

receiving an input query that defines a region within the multidimensional database, wherein the region defined by the input query includes links to other regions within the multidimensional database;

identifying a first set of data blocks that contribute to a result of the input query, wherein the first set of data blocks are in region within the multidimensional database defined by the input query;

identifying a second set of data blocks from the other regions within the multidimensional database linked to in region defined by the input query, wherein the second set of data blocks include a subset of data blocks from the other regions that contribute to the result of the input query; and

retrieving, using the data retrieval layer, the first and second sets of data blocks from one of the storage container or the multidimensional database to accumulate data in accordance with the input query,

wherein the data retrieval layer scans the multidimensional database to identify the first set of data blocks and the second set of data blocks while data is accumulated in accordance with the input query.

5. The method of claim 4 , wherein a dynamic flow process includes marking of members as dynamic, for use during processing of the input query, including expanding dynamic members down to a selection of aggregated members.

6. The method of claim 4 , wherein the data retrieval layer includes an array of arrays of pointers to data blocks.

7. A non-transitory computer readable storage medium, including instructions stored thereon which when read and executed by a computer system including a processor cause the processor to perform the method comprising:

providing, at the computer system including the processor, a multidimensional database server for at least one of storage or analysis of data in a multidimensional database, the multidimensional database utilizing data blocks to store data, and an index to locate data blocks, wherein the multidimensional database server further includes:

a storage container including data that represent at least a portion of the multidimensional database, the storage container being configured as one of a block storage option or an aggregate storage option; and

a data retrieval layer configured to retrieve data from at least one of the storage container or the multidimensional database during processing of a query;

receiving an input query that defines a region within the multidimensional database, wherein the region defined by the input query includes links to other regions within the multidimensional database;

identifying a first set of data blocks that contribute to a result of the input query, wherein the first set of data blocks are in region within the multidimensional database defined by the input query

identifying a second set of data blocks from the other regions within the multidimensional database linked to in the region defined by the input query, wherein the second set of data blocks include a subset of data blocks from the other regions that contribute to the result of the input query; and

retrieving, using the data retrieval layer, the first and second sets of of data blocks from one of the storage container or the multidimensional database to accumulate data in accordance with the input query,

wherein the data retrieval layer scans the multidimensional database to identify the first set of data blocks and the second set of data blocks while data is accumulated in accordance with the input query.

8. The non-transitory computer readable storage medium of claim 7 , wherein a dynamic flow process includes marking of members as dynamic, for use during processing of the input query, including expanding dynamic members down to a selection of aggregated members.

9. The non-transitory computer readable storage medium of claim 7 , wherein the data retrieval layer includes an array of arrays of pointers to data blocks.

10. The system of claim 1 , wherein the instructions cause the processor to provide a response to the input query, the response including the data accumulated.

11. The method of claim 4 , further comprising:

providing a response to the input query, the response including the data accumulated.

12. The non-transitory computer readable storage medium of claim 7 , further comprising;

providing a response to the input query, the response including the data accumulated.

13. The system of claim 2 , wherein the data retrieval layer includes a data structure for pointers to data blocks.

14. The system of claim 13 , wherein the instructions cause the processor to expand the data structure by including additional pointers associated with dynamic members expanded down to the selection of aggregated members.

15. The system of claim 13 , wherein, to retrieve the first and second sets of data blocks from one of the storage container or the multidimensional database, the data retrieval layer utilizes the pointers in the data structure.

16. The method of claim 5 , wherein the data retrieval layer includes a data structure for pointers to data blocks, and wherein the method further comprises expanding the data structure by including additional pointers associated with dynamic members expanded down to the selection of aggregated members.

17. The non-transitory computer readable storage medium of claim 8 , wherein the data retrieval layer includes a data structure for pointers to data blocks, and further including instructions to cause the processor to expand the data structure by including additional pointers associated with dynamic members expanded down to the selection of aggregated members.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2017
From: ROYTMAN, ALEXEY; REICHMAN, NATASHA; BELYAEV, VICTOR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 041920/0947 →
Continuity (5)
Provisional Application 62411473 · Oct 21, 2016
Provisional Application 62245897 · Oct 23, 2015
Provisional Application 62245892 · Oct 23, 2015
Provisional Application 62245901 · Oct 23, 2015
Related Publication 20170116281A1 · Apr 27, 2017
Cited By (1)
US 12,197,408