US 11,922,221 B2
System and method for automatic dependency analysis for use with a multidimensional database
Vinod Padinjat Menon, San Jose, CA (US); and Kumar Ramaiyer, Cupertino, CA (US)
Assigned to ORACLE INTERNATIONAL CORPORATION, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Sep. 23, 2021, as Appl. No. 17/482,628.
Application 17/482,628 is a continuation of application No. 16/659,126, filed on Oct. 21, 2019, granted, now 11,144,361.
Application 16/659,126 is a continuation of application No. 15/332,943, filed on Oct. 24, 2016, granted, now 10,467,251, issued on Nov. 5, 2019.
Claims priority of provisional application 62/411,473, filed on Oct. 21, 2016.
Claims priority of provisional application 62/245,880, filed on Oct. 23, 2015.
Prior Publication US 2022/0012100 A1, Jan. 13, 2022
Int. Cl. G06F 9/50 (2006.01); G06F 16/28 (2019.01); G06F 16/245 (2019.01)
CPC G06F 9/5066 (2013.01) [G06F 16/283 (2019.01); G06F 16/245 (2019.01)] 20 Claims
OG exemplary drawing
 
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; and
a computing device having a processor executing instructions that cause the processor to:
determine a set of task dimensions for an operation on the multidimensional database;
generate a plurality of tasks for the operation based on the set of task dimensions, wherein each task of the plurality of tasks calculates one or more data blocks associated with a combination of members from the task dimensions;
identify a non-participating dimension in the set of task dimensions based on the plurality of tasks;
determine a plurality of task levels based on the plurality of tasks and the non-participating dimension, wherein each task level includes a set of tasks and wherein the plurality of task levels are hierarchical such that an intermediate task level includes tasks dependent on tasks included in a previous task level; and
execute the plurality of task levels hierarchically, wherein tasks of each task level of the plurality of task levels are executed in parallel to calculate one or more data blocks.