Constructing balanced multidimensional range-based bitmap indices
First Claim
1. A computerized method of constructing balanced multidimensional range-based bitmap indices associated with a database which includes a plurality of tuples, each tuple having a plurality of attributes, said method comprising the steps of:
- partitioning each attribute in the database into partitions spanning contiguous ranges of attribute values, each partition having an occurrence count;
sequentially scanning each tuple in the database and incrementing the occurrence count of a partition associated with an attribute value of each of said attributes; and
when all tuples have been scanned once, combining partitions and balancing the occurrence count across combined partitions.
1 Assignment
0 Petitions
Accused Products
Abstract
A computerized method of building balanced ranges of attribute values for multiple attributes of a database simultaneously without requiring presorting of the database. The balanced ranges are used to construct balanced range-based multidimensional bitmap indexes for processing complex multipredicate queries against the database. A dynamic partition expansion and contraction method can construct balanced ranges for bitmap indexing of tuples having high cardinality attributes and even in the presence of highly skewed data.
203 Citations
24 Claims
-
1. A computerized method of constructing balanced multidimensional range-based bitmap indices associated with a database which includes a plurality of tuples, each tuple having a plurality of attributes, said method comprising the steps of:
-
partitioning each attribute in the database into partitions spanning contiguous ranges of attribute values, each partition having an occurrence count; sequentially scanning each tuple in the database and incrementing the occurrence count of a partition associated with an attribute value of each of said attributes; and when all tuples have been scanned once, combining partitions and balancing the occurrence count across combined partitions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13)
-
-
12. A computerized method of constructing balanced multidimensional range-based bitmap indices associated with a database which includes a plurality of tuples, each tuple having a plurality of attributes, said method comprising the steps of:
-
partitioning each attribute in the database into partitions spanning contiguous ranges of attribute values, each partition having an occurrence count; sequentially scanning each tuple in the database and incrementing the occurrence count of a partition associated with an attribute value of each of said attributes; determining when the attribute value is an isolated skew value; creating a special partition associated with said isolated skew value; incrementing the occurrence count associated with the special partition; splitting the partition into a plurality of partitions when the occurrence count exceeds a threshold, responsive to said step of incrementing the occurrence count; dynamically adjusting the threshold as a function of a percentage of the database that has been scanned; when all tuples have been scanned once, combining partitions and balancing the occurrence count across combined partitions; constructing the balanced range-based bitmap indices according to the ranges of attribute values of the combined partitions, responsive to said steps of combining partitions and balancing; and storing the balanced range-based bitmap indices on a computer readable memory, responsive to said step of constructing the balanced range-based bitmap indices.
-
-
14. A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a computerized method of constructing balanced range-based bitmap indices associated with a database which includes a plurality of tuples, each tuple having a plurality of attributes, said method comprising the steps of:
-
partitioning each attribute in the database into partitions spanning contiguous ranges of attribute values, each partition having an occurrence count; sequentially scanning each tuple in the database and incrementing the occurrence count of a partition associated with an attribute value of each of said attributes; and when all tuples have been scanned once, combining partitions and balancing the occurrence count across combined partitions. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to construct balanced range-based bitmap indices associated with a database which includes a plurality of tuples, each tuple having a plurality of attributes, said method comprising the steps of:
-
partitioning each attribute in the database into partitions spanning contiguous ranges of attribute values, each partition having an occurrence count; sequentially scanning each tuple in the database and incrementing the occurrence of a partition associated with an attribute value of each of said attributes; determining when the attribute value is an isolated skew value; creating a special partition associated with said isolated skew value; incrementing the occurrence count associated with the special partition; splitting the partition into a plurality of partitions when the occurrence count exceeds a threshold, responsive to said step of incrementing the occurrence count; dynamically adjusting the threshold as a function of a percentage of the database that has been scanned; when all tuples have been scanned once, combining partitions and balancing the occurrence count across combined partitions; constructing the balanced range-based bitmap indices according to the ranges of attribute values of the combined partitions, responsive to said steps of combining partitions and balancing; and storing the balanced range-based bitmap indices on a computer readable memory, responsive to said step of constructing the balanced range-based bitmap indices.
-
Specification