Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
First Claim
1. A system for accessing data elements within a multidimensional database (MDB) comprising:
- a parallel computing platform having a plurality of processors and one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements thereof and wherein the location of each data element in said MDB is specified in MBD Space by inter-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data accessing mechanism in cooperation wit said address data mapping mechanism, for accessing each said data element in said one or more storage volumes using said integer-encoded data storage address mapped thereto.
11 Assignments
0 Petitions
Accused Products
Abstract
An improved method of and a system for managing data elements in a multidimensional database (MDB) supported upon a parallel computing platform using modular-arithmetic based address data mapping (i.e. translation) processes on integer-encoded business dimensions. The parallel computing platform has a plurality of processors and one or more storage volumes for physically storing data elements therein at integer-encoded physical addresses in Processor Storage Space (i.e. physical address space in the one or more storage volumes associated with a given processor). The location of each data element in the MDB is specified in MDB Space by integer-encoded business dimensions associated with the data element. A data loading mechanism loads the integer-encoded business dimensions and associated data elements from a data warehouse. The address data mapping mechanism performs a two part address mapping processing. The first step maps the integer-encoded business dimensions associated with each data element to a given processor identifier (which uniquely identifies the processor amongst the plurality of processors of the parallel computing platform). The second step maps the integer-encoded business dimensions associated with each data element into an integer-encoded physical data storage address in Processor Storage Space associated with the processor identified by the processor identifier generated in the first mapping step. The mapping performed in this second step is based upon size of the integer encoded business dimensions. The data management mechanism manages the data elements stored in the storage volumes using the integer-encoded data storage addresses generated during the two-part address data mapping process. The use of modular-arithmetic functions in the two-part address data mapping mechanism ensures that the data elements in the MDB are uniformly distributed among the plurality of processors for balanced loading and processing. The present invention can be used to realize (i) an improved MDB for supporting on-line analytical processing (OLAP) operations, (ii) an improved Internet URL Directory for supporting on-line information searching operations by Web-enabled client machines, as well as (iii) diverse types of MDB-based systems for supporting real-time control of processes in response to complex states of information reflected in the MDB.
228 Citations
95 Claims
-
1. A system for accessing data elements within a multidimensional database (MDB) comprising:
-
a parallel computing platform having a plurality of processors and one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements thereof and wherein the location of each data element in said MDB is specified in MBD Space by inter-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data accessing mechanism in cooperation wit said address data mapping mechanism, for accessing each said data element in said one or more storage volumes using said integer-encoded data storage address mapped thereto. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 22)
-
-
15. The system of claim 1, wherein said address data mapping mechanism maps the integer-encoded business dimensions associated with each said data element to a processor identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
22. The method of claim 13, wherein data elements within said MDB are evenly distributed among said plurality of processors on said parallel computing platform.
-
16. A method of accessing data elements within a multidimensional database MDB) comprising:
-
(a) providing a parallel computing platform having a plurality of processors and one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements therein, and wherein the location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
(b) loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
(c) mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said dam element; and
(d) using said integer-encoded data storage addresses to access said data elements from said one or more storage volumes. - View Dependent Claims (17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
30. The method of claim 16, wherein said mapping step maps the integer-encoded business dimensions associated with each said data element to a processor identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
31. A system for managing data elements within a multidimensional database (MDB) comprising:
-
a parallel computing platform having a plurality, of processors and one or more storage volumes wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements therein, and wherein the location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, in association with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data management mechanism, in cooperation with said address data mapping mechanism, for managing each said data element in said one or more storage volumes using said integer-encoded data storage address mapped thereto. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
45. The system of claim 31, wherein said address data mapping mechanism maps the integer-encoded business dimensions associated with each said data element to a processor a identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
46. A method of managing data elements within a multidimensional database (MDB) comprising:
-
(a) providing a parallel computing platform having a plurality of processors and one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements therein, and wherein the location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
(b) loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
(c) mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
(d) using said integer-encoded data storage address for each said data element to manage said data element in said one or more storage volumes. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
-
60. The method of claim 46, wherein said mapping step maps the integer-encoded business dimensions associated with each said data element to a processor identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
61. A system for accessing data elements within a multidimensional database (MDB) comprising:
-
a parallel computing platform having a plurality of processors and associated data storage, wherein each processor is assigned a unique integer-encoded data storage address space in said data storage for storing data elements therein, and wherein location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into integer-encoded data storage addresses within data storage address space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer encoded business dimensions; and
a data accessing mechanism, in cooperation with said address mapping mechanism, for accessing a given data element in said data storage using the integer-encoded data storage address associated with the given data element. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
-
-
76. The system of claim 61, wherein said address data mapping mechanism maps the integer-encoded business dimensions associated with each said data element to a processor identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
77. A method for accessing data elements within a multidimensional database (MDB) comprising the steps of:
-
providing a parallel computing platform having a plurality of processors and associated data storage, wherein each processor is assigned a unique integer-encoded data storage address space in said data storage for storing data elements therein, and wherein location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and mapping the integer-encoded business dimensions associated with each said data clement into integer-encoded data storage addresses within data storage address space associated with a specific processor identified by tee processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer encoded business dimensions; and
accessing a given data element in said data storage using the integer-encoded data storage address associated with the given data element. - View Dependent Claims (78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92)
performing parallel data loading operations between said data warehouse and said MDB using said modular arithmetic function which maps said integer-encoded business dimensions associated with each raw data element accessed from said RDBMS, into an integer-encoded data storage address within said data storage.
-
-
80. The method of claim 78, further comprising the step of:
performing parallel data aggregation operations within said MDB using said modular arithmetic function which maps said integer-encoded business dimensions associated with raw or previously pre-aggregated data elements to be stored within said MDB, into integer-encoded data storage addresses within said data storage at which the pre-aggregated data elements are to be stored.
-
81. The method of claim 80, further comprising the steps of:
performing OLAP operations within said MDB using said modular arithmetic function which maps said integer-encoded business dimensions associated with pre-aggregated data elements to be accessed from said MDB, into integer-encoded data storage addresses with said data storage, from which said pre-aggregated data elements are to be accessed.
-
82. The method of claim 77, wherein data processing tasks carried out on said MDB are evenly distributed among said plurality of processors on said parallel computing platform.
-
83. The method of claim 77, wherein said mapping performed by said address data mapping mechanism evenly distributes data elements among said integer-encoded data storage address space in said data storage associated with said plurality of processors of said parallel computing platform.
-
84. The method of claim 77, wherein each said processor on said parallel computing platform handles data elements assigned thereto during data elements address assignment operations carried out during parallel data loading operations between said data warehouse and said MDB within said system.
-
85. The method of claim 77, wherein each said processor on said parallel computing platform handles data elements assigned thereto during data elements address assignment operations carried out during parallel data aggregation operations within said MDB of said system.
-
86. The method of claim 77, wherein interprocessor communication among said plurality of processors is minimized during parallel data loading operations carried out between said data warehouse and said MDB on said parallel computing platform.
-
87. The method of claim 77, wherein interprocessor communication among said plurality of processors is minimized during parallel data aggregation operations carried out within said MDB on said parallel computing platform.
-
88. The method of claim 77, wherein interprocessor communication among said plurality of processors is minimized during OLAP operations carried out within said MDB on said parallel computing platform.
-
89. The method of claim 77, wherein said integer-encoded address space in said data storage comprises a virtual address space, further comprising the step of mapping said virtual address space to real address space accessible on a storage device.
-
90. The method of claim 77, wherein said data warehouse comprises a relational database management system (RDBMS).
-
91. The method of claim 77, wherein said mapping step maps the integer-encoded business dimensions associated with each said data element into integer-encoded data storage, addresses within said data storage based upon the following formula:
-
92. The method of claim 77, wherein said mapping step maps the integer-encoded business dimensions associated with each said data element to a processor identifier using a modular arithmetic function based on the number of processors of said parallel platform.
-
93. An Internet URL Directory system for supporting on-line information searching operations by Web-enabled client machines, said Internet URL Directory system comprising:
-
a parallel computing platform having a plurality of processors and one or more storage volumes for physically storing a plurality of data elements of a multidimensional database (MDB) in said one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements therein and wherein the location of each data element in said MDB is specified in NDB Space by integer-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data accessing mechanism, in cooperation with said address mapping mechanism, for accessing each said data element in said one or more storage volumes using said integer-encoded data storage address mapped thereto.
-
-
94. An Internet-enabled system for supporting real-time control of processes in response to complex states of information reflected in a multi-dimensional database (MDB), said Internet-enabled system comprising:
-
a parallel computing platform having a plurality of processors and one or more storage volumes for physically storing a plurality of data elements of a multidimensional database (MDS) in said one or more storage volumes at integer-encoded physical addresses specified in Processor Storage Space, and wherein the location of each data element in said MDB is specified in MDB Space by integer-encoded business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data accessing mechanism, in cooperation with said address mapping mechanism, for accessing each said data element in said one or more storage volumes using said integer-encoded data storage address mapped thereto.
-
-
95. A system for accessing data elements within a multidimensional database (MDB) comprising:
-
a parallel computing platform having a plurality of processors and one or more storage volumes, wherein each processor is associated with Processor Storage Space within said storage volumes for physically storing data elements therein, and wherein the location of each data element in said MDB is specified in MDB Space by business dimensions associated with said data element;
a data loading mechanism, associated with said parallel computing platform, for loading in the integer-encoded business dimensions and associated data elements from a data warehouse;
an address data mapping mechanism, associated with said data loading mechanism, for mapping the integer-encoded business dimensions associated with each said data element to a processor identifier, and for mapping the integer-encoded business dimensions associated with each said data element into an integer-encoded data storage address within Processor Storage Space associated with a specific processor identified by the processor identifier corresponding to said integer-encoded business dimensions based upon size of the integer-encoded business dimensions for each said data element; and
a data accessing mechanism, in cooperation with said address mapping mechanism, for accessing each said data element in said one or more storage volumes using said data storage address mapped thereto.
-
Specification