System and method for parallel support of multidimensional slices with a multidimensional database
AssigneeOracle International Corporation
InventorsLong Tran, Vinod Padinjat Menon, Kumar Ramaiyer
Life of this patent
Estimating the term…
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.
Claims18
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 associated with the dimension members, and
- the calculation engine generates, for a particular operation, a plurality of tasks to fulfil the operation 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.
A method for parallel calculation for a multidimensional database, comprising:
- providing, at one or more computing devices, 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 associated with the dimension members, and
- the calculation engine generates, for a particular operation, a plurality of tasks to fulfil the operation 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.
A non-transitory computer-readable storage medium having instructions stored thereon, which when read and executed by a computer, cause the computer to:
- providing, at one or more computing devices, 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 associated with the dimension members, and
- the calculation engine generates, for a particular operation, a plurality of tasks to fulfil the operation 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.
Dependencies are inferred from the claim text.