← Back to Patent Explorer
US5761652A Expired / Lapsed US ⏱️ 0.0 years remaining

Constructing balanced multidimensional range-based bitmap indices

Assignee: International Business Machines Corp
•
Filing: 1996-03-20
•
Granted: 1998-06-02
•
Expires: 2016-03-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Kun-Lung Wu
  • 👤 Philip Shi-lung Yu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 19:24
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/22; G06F16/2228; G06F16/2264; G06F16/2237; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99941; Y10S707/99942; Y10S707/99943; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 96 words
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.
Claim 2
Dependent Claim 96 words
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.
Claim 3
Dependent Claim 42 words
A computerized method as claimed in claim 1, further comprising the steps of: constructing the balanced range-based bitmap indices according to the ranges of attribute values of the combined partitions; and storing the balanced range-based bitmap indices on a computer readable memory.
Claim 4
Dependent Claim 37 words
A computerized method as claimed in claim 1, further comprising the step of splitting the partition into a plurality of partitions when the occurrence count exceeds a threshold, responsive to said step of incrementing the occurrence count.
Claim 5
Dependent Claim 30 words
A computerized method as claimed in claim 3, further comprising the step of dynamically adjusting the threshold as a function of a percentage of the database that has been scanned.
Claim 6
Dependent Claim 51 words
A computerized method as claimed in claim 1, wherein said step of sequentially scanning each tuple further comprises the steps of: determining when the attribute value is an isolated skew value; creating a special partition associated with said isolated skew value; and incrementing the occurrence count associated with the special partition.
Claim 7
Dependent Claim 93 words
A computerized method for processing a multiattribute query using the balanced range based bitmap indices constructed according to the method of claim 2, comprising the steps of: receiving a query including multiattribute predicates, retrieving corresponding range-based bitmap indexes based on the attribute values specified in the predicates; performing bitwise AND/OR operations on retrieved bitmap indexes; retrieving the tuples corresponding to the one's in the resulting bitmap index in response to the bitwise AND/OR operations; and filtering out all tuples having attribute values that do not match the attribute values specified in the predicates.
Claim 8
Dependent Claim 197 words
A computerized method as claimed in claim 5, wherein said step of determining when the attribute value is said isolated skew value further comprises the steps of: maintaining a primary stack prioritized by recency of occurrence and a secondary stack prioritized by frequency of occurrence; searching the primary stack for a primary entry matching the attribute value and performing the following steps: when the primary entry is found, moving the primary entry to the top of the primary stack; when the primary entry is not found, obtaining a bottom primary entry from the bottom of the primary stack and associating the attribute value therewith, and moving the bottom primary entry to the top of the primary stack; searching the secondary stack for a secondary entry matching the attribute value and performing the following steps: when the secondary entry is found, incrementing a count associated with the secondary entry and moving the secondary entry to a location according to the count; when the secondary entry is not found, associating the attribute value with a bottom secondary entry and initializing the count; and identifying the attribute value as said isolated skew value when the count exceeds a skew threshold.
Claim 9
Dependent Claim 31 words
A computerized method as claimed in claim 7, further comprising the step of dynamically adjusting the skew threshold as a function of a percentage of the database that has been scanned.
Claim 10
Dependent Claim 81 words
A computerized method as claimed in claim 5 wherein said step of combining partitions and balancing the occurrence count across the combined partitions comprises the steps of: assigning a separate partition for each isolated skew value as a function of the occurrence count exceeding an ideal mean; allocating proportional partitions to each contiguous range of values bounded by the separate partition, responsive to said step of assigning; and combining and balancing said each contiguous range of values into the proportional partitions.
Claim 11
Dependent Claim 30 words
A computerized method as claimed in claim 5 wherein said step of combining and balancing said each contiguous range of values into the proportional partitions comprises a one-pass zigzag heuristic.
Claim 12
Dependent Claim 21 words
A computerized method as claimed in claim 1, further comprising the step of pre-specifying a distribution of tuples in each partition.
Claim 13
Dependent Claim 214 words
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.
Claim 14
Dependent Claim 214 words
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.
Claim 15
Dependent Claim 27 words
A computer storage device readable by a computer, tangibly embodying a multidimensional range-based bitmap indexed data structure as created by the method steps claimed in claim 2.
Claim 16
Dependent Claim 115 words
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.
Claim 17
Dependent Claim 115 words
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.
Claim 18
Dependent Claim 61 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 14, further comprising the steps of: constructing the balanced range-based bitmap indices according to the ranges of attribute values of the combined partitions; and storing the balanced range-based bitmap indices on a computer readable memory.
Claim 19
Dependent Claim 56 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 14, further comprising the step of splitting the partition into a plurality of partitions when the occurrence count exceeds a threshold, responsive to said step of incrementing the occurrence count.
Claim 20
Dependent Claim 49 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 16, further comprising the step of dynamically adjusting the threshold as a function of a percentage of the database that has been scanned.
Claim 21
Dependent Claim 70 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 14, wherein said step of sequentially scanning each tuple further comprises the steps of: determining when the attribute value is an isolated skew value; creating a special partition associated with said isolated skew value; and incrementing the occurrence count associated with the special partition.
Claim 22
Dependent Claim 56 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 18, further comprising the step of splitting the partition into a plurality of partitions when the occurrence count exceeds a threshold, responsive to said step of incrementing the occurrence count.
Claim 23
Dependent Claim 216 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 18, wherein said step of determining when the attribute value is said isolated skew value further comprises the steps of: maintaining a primary stack prioritized by recency of occurrence and a secondary stack prioritized by frequency of occurrence; searching the primary stack for a primary entry matching the attribute value and performing the following steps: when the primary entry is found, moving the primary entry to the top of the primary stack; when the primary entry is not found, obtaining a bottom primary entry from the bottom of the primary stack and associating the attribute value therewith, and moving the bottom primary entry to the top of the primary stack; searching the secondary stack for a secondary entry matching the attribute value and performing the following steps: when the secondary entry is found, incrementing a count associated with the secondary entry and moving the secondary entry to a location according to the count; when the secondary entry is not found, associating the attribute value with a bottom secondary entry and initializing the count; and identifying the attribute value as said isolated skew value when the count exceeds a skew threshold.
Claim 24
Dependent Claim 50 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 20, further comprising the step of dynamically adjusting the skew threshold as a function of a percentage of the database that has been scanned.
Claim 25
Dependent Claim 100 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 18 wherein said step of combining partitions and balancing the occurrence count across the combined partitions comprises the steps of: assigning a separate partition for each isolated skew value as a function of the occurrence count exceeding an ideal mean; allocating proportional partitions to each contiguous range of values bounded by the separate partition, responsive to said step of assigning; and combining and balancing said each contiguous range of values into the proportional partitions.
Claim 26
Dependent Claim 49 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim 18 wherein said step of combining and balancing said each contiguous range of values into the proportional partitions comprises a one-pass zigzag heuristic.
Claim 27
Dependent Claim 227 words
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.
Claim 28
Dependent Claim 227 words
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.

References Cited (Backward Citations)

US4606002A Cited
US5495608A Cited
US5257365A Cited
US5276872A Cited
US5551027A Cited
US5537589A Cited
US5625815A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-06-01 2001-12-01 2002-06-02 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-06-01 2005-12-01 2006-06-02 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-06-01 2009-12-01 2010-06-02 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag