US 11,797,496 B2
System and method for parallel support of multidimensional slices with a multidimensional database
Long Tran, San Jose, CA (US); Vinod Padinjat Menon, San Jose, CA (US); and Kumar Ramaiyer, Cupertino, CA (US)
Assigned to ORACLE INTERNATIONAL CORPORATION, Redwood Shores (CA)
Filed by ORACLE INTERNATIONAL CORPORATION, Redwood Shores, CA (US)
Filed on Mar. 12, 2021, as Appl. No. 17/200,296.
Application 17/200,296 is a continuation of application No. 16/399,187, filed on Apr. 30, 2019, granted, now 10,956,380, issued on Mar. 23, 2021.
Application 16/399,187 is a continuation of application No. 15/332,937, filed on Oct. 24, 2016, granted, now 10,318,498, issued on Jun. 11, 2019.
Claims priority of provisional application 62/411,473, filed on Oct. 21, 2016.
Claims priority of provisional application 62/245,877, filed on Oct. 23, 2015.
Prior Publication US 2021/0200726 A1, Jul. 1, 2021
Int. Cl. G06F 16/21 (2019.01); G06F 16/28 (2019.01); G06F 9/50 (2006.01)
CPC G06F 16/211 (2019.01) [G06F 9/5061 (2013.01); G06F 16/283 (2019.01)] 18 Claims
OG exemplary drawing
 
1. A system for providing parallel calculation within a multidimensional database environment, comprising:
one or more computing devices operating as a multidimensional database server, and providing access to a multidimensional database for storage of data associated with a plurality of data dimensions associated with dimension members;
wherein the database server includes a calculation engine that performs commands or operations upon the data in response to requests and according to a calculation script, including wherein:
the calculation script includes a member list and a plurality of operations to be performed on a portion of the multidimensional database indicated by the member list, and
the calculation engine generates, for a particular operation of the plurality of operations, a plurality of tasks to fulfil the operation on the portion of the multidimensional database indicated by the member list and queues the tasks to a task list;
wherein the calculation engine uses a thread to process the calculation script, generate the task list, and create a plurality of child threads to execute the tasks of the task list, wherein the calculation engine thread then proceeds to perform additional operations in the calculation script; and
wherein the child threads search for available tasks from the task list, execute the tasks, and notify the calculation engine thread when no more tasks are available.