IP Library › Granted Patent US 11,531,662
Granted Patent B2
US 11,531,662 · App. 16/735,448 · Granted Dec 20, 2022

System and method for use of a dynamic flow in a multidimensional database environment

Inventors: Natasha Reichman (Beer Sheva, IL); Sergei Riaboi (Arad, IL); Alexey Roytman (Beer Sheva, IL); Victor Belyaev (San Jose, CA); Kumar Ramaiyer (Cupertino, 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,531,662
App. No.
16/735,448
Filed
Jan 6, 2020
Granted
Dec 20, 2022
Kind
B2
Examiner
PHAM, TUAN A
Art Unit
2163
USPC
707/770
Abstract

In accordance with an embodiment, described herein is a system and method for use of a dynamic flow process (referred to herein in some examples as Query Processing Dynamic Flow (QPDF)) in a multidimensional database computing environment. The dynamic flow process enables hybrid use of, for example, aggregate storage option, block storage option, or other types of storage containers, and provides a common flow to process a received input query in bottom-up mode. The approach can be used to reduce the size of the cube, which provides for efficient calculation of dynamic members.

Claims (69)

1. A system for use of a streaming mode dynamic flow in a multidimensional database environment, comprising:

a computer, including a processor;

a multidimensional database;

a storage container; and

a data buffer comprising a plurality of buckets;

wherein the system executes a dynamic flow process that operates to:

receiving an input query from a requestor for processing against the multidimensional database;

expanding the input query to determine calculated data;

based upon the expanded input query, defining a plurality of calculation units, and determining an order of calculation;

building an executable flow comprising the defined calculation units connected in an order based on the determined order of calculation;

executing the executable flow comprising the defined calculation units connected in an order based on the determined order of calculation wherein each defined calculation unit executes and stores each calculated dynamic cell, and then returns all calculated dynamic cells to an output bucket; and

returning a result of the executable flow.

2. The system of claim 1 ,

wherein the storage container provides an interface for reading data from the multidimensional database and providing data for aggregation and calculation by the dynamic flow.

3. The system of claim 2 ,

wherein in executing the executable flow, each of the plurality of calculation units are placed, respectively, into a separate bucket of the plurality of buckets.

4. The system of claim 3 , wherein returning the result of the executable flow comprises:

storing the result in the multidimensional database.

5. The system of claim 3 , wherein returning the result of the executable flow comprises:

providing the result to the requestor via a streaming interface.

6. The system of claim 1 , wherein:

each calculation unit executes and stores each cell without temporary storage.

7. The system of claim 1 , further comprising:

a streaming interface for providing the result of the executable flow to the requestor.

8. A method for use of a streaming mode dynamic flow in a multidimensional database environment, comprising:

providing, at a computer including a processor:

a multidimensional database,

a storage container, and

a data buffer comprising a plurality of buckets; and

executing a dynamic flow process, comprising steps of:

receiving an input query from a requestor for processing against the multidimensional database;

expanding the input query to determine calculated data;

based upon the expanded input query, defining a plurality of calculation units, and determining an order of calculation;

building an executable flow comprising the defined calculation units connected in an order based on the determined order of calculation;

executing the executable flow comprising the defined calculation units connected in an order based on the determined order of calculation wherein each defined calculation unit executes and stores each calculated dynamic cell, and then returns all calculated dynamic cells to an output bucket; and

returning a result of the executable flow.

9. The method of claim 8 ,

wherein the storage container provides an interface for reading data from the multidimensional database and providing data for aggregation and calculation by the dynamic flow.

10. The method of claim 9 ,

wherein in executing the executable flow, each of the plurality of calculation units are placed, respectively, into a separate bucket of the plurality of buckets.

11. The method of claim 10 , wherein returning the result of the executable flow comprises:

storing the result in the multidimensional database.

12. The method of claim 10 , wherein returning the result of the executable flow comprises:

providing the result to the requestor via a streaming interface.

13. The method of claim 8 ,

wherein each defined calculation unit executes and stores each calculated dynamic cell without temporary storage.

14. The method of claim 8 , further comprising:

providing a streaming interface for the result of the executable flow.

15. A non-transitory computer readable storage medium, including instructions stored thereon for use of a streaming mode dynamic flow in a multidimensional database environment, which when read and executed by one or more computers cause the one or more computers to perform steps comprising:

providing, at a computer including a processor:

a multidimensional database,

a storage container, and

a data buffer comprising a plurality of buckets; and

executing a dynamic flow process, comprising steps of:

receiving an input query from a requestor for processing against the multidimensional database;

expanding the input query to determine calculated data;

based upon the expanded input query, defining a plurality of calculation units, and determining an order of calculation;

building an executable flow comprising the defined calculation units connected in an order based on the determined order of calculation;

executing the executable flow comprising the defined calculation units connected in an order based on the determined order of calculation wherein each defined calculation unit executes and stores each calculated dynamic cell, and then returns all calculated dynamic cells to an output bucket; and returning a result of the executable flow.

16. The non-transitory computer readable storage medium of claim 15 ,

wherein the storage container provides an interface for reading data from the multidimensional database and providing data for aggregation and calculation by the dynamic flow.

17. The non-transitory computer readable storage medium of claim 16 ,

wherein in executing the executable flow, each of the plurality of calculation units are placed, respectively, into a separate bucket of the plurality of buckets.

18. The non-transitory computer readable storage medium of claim 17 , wherein returning the result of the executable flow comprises:

storing the result in the multidimensional database.

19. The non-transitory computer readable storage medium of claim 17 , wherein returning the result of the executable flow comprises:

providing the result to the requestor using a streaming interface.

20. The non-transitory computer readable storage medium of claim 15 , wherein;

each calculation unit executes and stores each cell without temporary storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2020
From: REICHMAN, NATASHA; RIABOI, SERGEI; ROYTMAN, ALEXEY; BELYAEV, VICTOR; RAMAIYER, KUMAR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 051455/0635 →
Continuity (6)
Continuation 15332948 · Oct 24, 2016
Provisional Application 62245892 · Oct 23, 2015
Provisional Application 62245897 · Oct 23, 2015
Provisional Application 62245901 · Oct 23, 2015
Provisional Application 62411473 · Oct 21, 2016
Related Publication 20200142872A1 · May 7, 2020
Cited By (2)
US 12,197,408 US 12,608,377