IP Library › Granted Patent US 10,318,498
Granted Patent B2
US 10,318,498 · App. 15/332,937 · Granted Jun 11, 2019

System and method for parallel support of multidimensional slices with a multidimensional database

Inventors: Long Tran (San Jose, CA); Vinod Padinjat Menon (San Jose, CA); Kumar Ramaiyer (Cupertino, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/211G06F9/5061G06F16/283G06F17/30292G06F17/30592
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 10,318,498
App. No.
15/332,937
Granted
Jun 11, 2019
Kind
B2
Abstract

A system and method is described for use with a multidimensional database computing environment to provide support for parallel calculation of multidimensional slices. Users are able to specify a set of slices and a number of parallel threads to employ. The multidimensional database environment generates tasks that include calculations and/or aggregations, which are able to be executed by the system in parallel. Also described herein are mechanisms of utilizing variables within the calculations performed by respective threads, and combining thread variables after execution.

Claims (34)

1. A system for providing parallel calculation within a multidimensional database environment, comprising:

a multidimensional database for storing data associated with a plurality of dimensions, each dimension having a plurality of members; and

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

receive a calculation script specifying at least a member list and a command to be performed on a portion of the multidimensional database indicated by the member list;

determine two or more slices to be calculated based upon at least the member list, wherein each of the two or more slices comprises a unique combination of members from the member list;

generate a task list based on the member list and the determined two or more slices that contains a plurality of tasks that are simultaneously executable, wherein each task includes the command and is associated with a respective slice of the two or more slices; and

execute each task of the task list by using a set of threads.

2. The system of claim 1 , wherein the calculation script further specifies a number of threads, of the set of threads, to be utilized to execute tasks of the task list.

3. The system of claim 1 , wherein the command of the calculation script includes at least one variable.

4. The system of claim 3 , wherein each thread of the set of threads utilizes a respective thread variable when executing the command that include the at least one variable.

5. The system of claim 4 , wherein the processor further executes instructions to configure the processor to combine respective thread variables from respective threads of the set of thread following completion of all tasks of the task list.

6. The system of claim 1 , wherein the member list is a user-definable parameter of the calculation to direct a parallel calculation to a database region.

7. The system of claim 1 , wherein the member list includes at least one non-dynamic sparse member.

8. The system of claim 7 , wherein the task list is generated based on the at least one non-dynamic sparse member included in the member list.

9. A method for parallel calculation for a multidimensional database, comprising:

receiving, at a computing device, a calculation that specifies at least a member list and a command to be performed on a portion of the multidimensional database indicated by the member list;

determine two or more slices to be calculated based upon at least the member list, wherein each of the two or more slices comprises a unique combination of members from the member list

generating, by the computing device, a task list based on the member list and the determined two or more slices, wherein the task list contains a plurality of tasks that are simultaneously executable, each task includes the command and is associated with a respective slice of the two or more slices; and

executing each task of the task list by a set of threads provided by the computing device.

10. The method of claim 9 , wherein the calculation script further specifies a number of threads, of the set of threads, utilized to execute tasks of the task list.

11. The method of claim 9 , wherein the command of the calculation script includes at least one variable.

12. The method of claim 11 , further comprising utilizing, by each thread of the set of threads, a respective thread variable when executing the command that includes the at least one variable.

13. The method of claim 12 , further comprising combining respective thread variables from respective threads of the set of thread following completion of all tasks of the task list.

14. The method of claim 9 , wherein the member list includes at least one non-dynamic sparse member, and the method further comprises generating the task list based on the at least one non-dynamic sparse member included in the member list.

15. A non-transitory computer-readable storage medium having instructions stored thereon, which when read and executed by a computer, cause the computer to:

parse a calculation script specifying at least a member list and a command to be performed on a portion of the multidimensional database indicated by the member list;

determine two or more slices to be calculated based upon at least the member list, wherein each of the two or more slices comprises a unique combination of members from the member list;

generate a task list based on the member list and the determined two or more slices that contains a plurality of tasks that are simultaneously executable, wherein each task includes the command and is associated with a respective slice of the two or more slices; and

execute each task of the task list by using a set of threads.

16. The non-transitory computer-readable medium of claim 15 , wherein the calculation script further specifies a number of threads, of the set of threads, to be utilized to execute tasks of the task list.

17. The non-transitory computer-readable medium of claim 16 , wherein the command of the calculation script includes at least one variable.

18. The non-transitory computer-readable medium of claim 17 , wherein each thread of the set of threads utilizes a respective thread variable when executing the command that include the at least one variable.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions further cause the computer to aggregate respective thread variables associated with respective threads of the set of thread following completion of all tasks of the task list.

20. The non-transitory computer readable storage medium of claim 15 , wherein the member list includes at least one non-dynamic sparse member, and the method further comprises generating the task list based on the at least one non-dynamic sparse member included in the member list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2017
From: TRAN, LONG; MENON, VINOD PADINJAT; RAMAIYER, KUMAR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 041509/0719 →
Continuity (3)
Provisional Application 62245877 · Oct 23, 2015
Provisional Application 62411473 · Oct 21, 2016
Related Publication 20170116032A1 · Apr 27, 2017
Cited By (5)
US 12,197,408 US 12,235,876 US 12,499,128 US 12,530,329 US 12,608,377