US5873074A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Applying distinct hash-join distributions of operators to both even and uneven database records
Assignee: International Business Machines Corp
•
Filing: 1997-04-18
•
Granted: 1999-02-16
•
Expires: 2017-04-18
Abstract
Abstract A computer-based method and system of processing records read respectively from first and second related tables of a database includes determining whether data contained in the records read from the first or second tables is unevenly distributed. Records corresponding to evenly distributed data are searched for matches using a first set of instances of the hash-join operator, and records corresponding to data which is unevenly distributed are searched for matches using a second set of instances of a hash-join operator.
Inventors
- 👤 Anurag Kashyap
- 👤 Robert H. Gerber
- 👤 Diane L. Davison
- 👤 Sanket Atal
- 👤 Hannes A. Spintzik
- 👤 Mark T. Nelson
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-26 00:29
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2455; G06F16/24553; G06F16/24558; G06F16/2456; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99934; Y10S707/99936; Y10S707/99937; Y10S707/99938
Claims Analysis
Total Claims: 47
Claim 1
Independent Claim
83 words
A computer-based method of processing records read respectively from first and second related tables of a database comprising: determining whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and searching for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and searching for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 2
Dependent Claim
83 words
A computer-based method of processing records read respectively from first and second related tables of a database comprising: determining whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and searching for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and searching for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 3
Dependent Claim
38 words
The method of claim 1 wherein determining comprises checking whether one of the instances in the first set of instances of the hash-join operator is receiving a relatively uneven number of the records read from the first table.
Claim 4
Dependent Claim
11 words
The method of claim 2 wherein the determining is done periodically.
Claim 5
Dependent Claim
117 words
The method of claim 1 wherein each instance in the first set and second set of instances of the hard-join operator comprises a respective hash table comprising a plurality of buckets, the method further comprising labelling one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is receiving a relatively uneven number of the records read from the first table, wherein records that are read from the first table and that are mapped to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator.
Claim 6
Dependent Claim
39 words
The method of claim 4 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to at least one instance in the second set of instances of the hash-join operator.
Claim 7
Dependent Claim
46 words
The method of claim 5 wherein records that are read from the second table and that are mapped to the spilled bucket are replicated and a copy of each such replicated record is routed to each of the second set of instances of the hash-join operator.
Claim 8
Dependent Claim
39 words
The method of claim 4 wherein records that are read from the first table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator.
Claim 9
Dependent Claim
43 words
The method of claim 7 wherein records that are read from the first table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator using a round-robin technique.
Claim 10
Dependent Claim
81 words
The method of claim 1 wherein each instance of the first set and second set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets, wherein the determining comprises checking whether one of the buckets in a particular instance from the first set of instances of the hash-join operator is receiving a relatively uneven number of the records read from the first table relative to other buckets in the particular instance of the hash-join operator.
Claim 11
Dependent Claim
49 words
The method of claim 9 further comprising labelling a particular bucket in one of the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular bucket is receiving a relatively uneven number of the records read from the first table.
Claim 12
Dependent Claim
40 words
The method of claim 10 wherein records that are read from the first table and that are mapped or routed to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator.
Claim 13
Dependent Claim
38 words
The method of claim 10 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator.
Claim 14
Dependent Claim
39 words
The method of claim 10 wherein records that are read from the first table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator.
Claim 15
Dependent Claim
43 words
The method of claim 13 wherein records that are read from the first table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator using a round-robin technique.
Claim 16
Dependent Claim
46 words
The method of claim 10 wherein records that are read from the second table and that are mapped to the spilled bucket are replicated and a copy of each such replicated record is routed to each of the second set of instances of the hash-join operator.
Claim 17
Dependent Claim
11 words
The method of claim 9 wherein the determining is done periodically.
Claim 18
Dependent Claim
34 words
The method of claim 1 wherein determining comprises checking whether one of the first set of instances of the hash-join operator is receiving relatively uneven number of the records read from the second table.
Claim 19
Dependent Claim
147 words
The method of claim 17 wherein each instance in the first set and second set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets, the method further comprising labelling one of the buckets in a particular instance of the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is receiving a relatively uneven number of records read from the second table, wherein records that were previously read from the first table and routed to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator, and wherein records that are read from the second table and mapped to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator.
Claim 20
Dependent Claim
46 words
The method of claim 18 wherein records that were previously read from the first table and routed to the spilled bucket are replicated and a copy of each such replicated record is routed to each instance in the second set of instances of the hash-join operator.
Claim 21
Dependent Claim
39 words
The method of claim 18 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator.
Claim 22
Dependent Claim
43 words
The method of claim 19 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator using a round-robin technique.
Claim 23
Dependent Claim
11 words
The method of claim 17 wherein the determining is done periodically.
Claim 24
Dependent Claim
80 words
The method of claim 1 wherein each instance of the first set and second set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets, wherein determining comprises checking whether any of the buckets in a particular instance of the first set of instances of the hash-join operator is receiving a relatively uneven number of the records read from the second table relative to other buckets in the particular instance of the hash-join operator.
Claim 25
Dependent Claim
80 words
The method of claim 23 further comprising: labelling a particular bucket in one of the firs set of instances of the hash-join operator as a spilled bucket if it is determined that the particular bucket is receiving a relatively uneven number of the records read from the second table; and routing records that were previously read from the first table and routed to the spilled bucket to at least one of the second set of instances of the hash-join operator.
Claim 26
Dependent Claim
40 words
The method of claim 24 wherein records that are read from the second table and that are mapped or routed to the spilled bucket are routed to at least one of the second set of instances of the hash-join operator.
Claim 27
Dependent Claim
46 words
The method of claim 24 wherein records that were previously read from the first table and routed to the spilled bucket are replicated, and a copy of each such replicated record is routed to each instance in the second set of instances of the hash-join operator.
Claim 28
Dependent Claim
37 words
The method of claim 24 wherein records that are read from the second table and mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator.
Claim 29
Dependent Claim
43 words
The method of claim 27 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator using a round-robin technique.
Claim 30
Dependent Claim
25 words
The method of claim 1 further comprising allocating memory to be shared among the first set and second set of instances of the hash-join operator.
Claim 31
Dependent Claim
46 words
The method of claim 29 further comprising releasing memory previously allocated to one of the instances in the first set of instances of the hash-join operator to be used by at least one of the instances in the second set of instances of the hash-join operator.
Claim 32
Dependent Claim
33 words
The method of claim 1 herein each instance in the first set of instances checks at least once whether the data contained in the records read from the first table is unevenly distributed.
Claim 33
Dependent Claim
26 words
The method of claim 1 wherein determining comprises checking whether data contained in the records read from both the first and second tables is unevenly distributed.
Claim 34
Dependent Claim
11 words
The method of claim 32 wherein the determining is done periodically.
Claim 35
Dependent Claim
179 words
A computer-based method of processing records read respectively from first and second related tables of a database comprising: searching for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determining whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; labelling one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continuing to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and searching for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
Claim 36
Dependent Claim
179 words
A computer-based method of processing records read respectively from first and second related tables of a database comprising: searching for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determining whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; labelling one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continuing to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and searching for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
Claim 37
Dependent Claim
46 words
The method of claim 34 wherein records that were previously read from the first table and routed to the spilled bucket are replicated, and a copy of each such replicated record is routed to each instance in the second set of instances of the hash-join operator.
Claim 38
Dependent Claim
39 words
The method of claim 34 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator.
Claim 39
Dependent Claim
43 words
The method of claim 36 wherein records that are read from the second table and that are mapped to the spilled bucket are routed to and distributed substantially evenly among the second set of instances of the hash-join operator using a round-robin technique.
Claim 40
Dependent Claim
144 words
A programmable computer system comprising at least one processor, a data storage system, at least one input device, and at least one output device, wherein the data storage system includes a database including a first table and a second table related to the first table, wherein the at least one processor is programmed to respond to a query received through the input device by performing operations including: reading records from the first table; reading records from the second table; determining whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and searching for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and searching for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 41
Dependent Claim
144 words
A programmable computer system comprising at least one processor, a data storage system, at least one input device, and at least one output device, wherein the data storage system includes a database including a first table and a second table related to the first table, wherein the at least one processor is programmed to respond to a query received through the input device by performing operations including: reading records from the first table; reading records from the second table; determining whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and searching for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and searching for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 42
Dependent Claim
240 words
A programmable computer system comprising at least one processor, a data storage system, at least one input device, and at least one output device, wherein the data storage system includes a database including a first table and a second table related to the first table, wherein the at least one processor is programmed to respond to a query received through the input device by performing operations including: reading records from the first table; reading records from the second table; searching for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determining whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; labelling one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continuing to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and searching for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
Claim 43
Dependent Claim
240 words
A programmable computer system comprising at least one processor, a data storage system, at least one input device, and at least one output device, wherein the data storage system includes a database including a first table and a second table related to the first table, wherein the at least one processor is programmed to respond to a query received through the input device by performing operations including: reading records from the first table; reading records from the second table; searching for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determining whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; labelling one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continuing to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and searching for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
Claim 44
Dependent Claim
107 words
A computer program, residing on a computer-readable medium, comprising instructions for causing a computer system to: read records from a first table in a database; read records from a second table in the database, wherein the first and second table are related; determine whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and search for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and search for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 45
Dependent Claim
107 words
A computer program, residing on a computer-readable medium, comprising instructions for causing a computer system to: read records from a first table in a database; read records from a second table in the database, wherein the first and second table are related; determine whether data contained in the records read from at least one of the first and second tables is unevenly distributed; and search for matches among records corresponding to evenly distributed data using a first set of instances of the hash-join operator, and search for matches among records corresponding to data which is unevenly distributed using a second set of instances of a hash-join operator.
Claim 46
Dependent Claim
203 words
A computer program, residing on a computer-readable medium, comprising instructions for causing a computer system to: read records from a first table in a database; read records from a second table in the database, wherein the first and second table are related; search for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determine whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; label one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continue to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and search for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
Claim 47
Dependent Claim
203 words
A computer program, residing on a computer-readable medium, comprising instructions for causing a computer system to: read records from a first table in a database; read records from a second table in the database, wherein the first and second table are related; search for matching records among the records read from the first and second tables using a first set of instances of a hash-join operator, wherein each instance of the first set of instances of the hash-join operator comprises a respective hash table comprising a plurality of buckets; determine whether one of the instances in the first set of instances of the hash-join operator is producing a relatively uneven number of matching records; label one of the buckets in a particular instance in the first set of instances of the hash-join operator as a spilled bucket if it is determined that the particular instance of the hash-join operator is producing a relatively uneven number of the matching records; and continue to search for matches among records mapped to a non-spilled bucket using the first set of instances of the hash-join operator, and search for matches among records mapped to the spilled bucket using a second set of instances of a hash-join operator.
References Cited (Backward Citations)
US5163131A
Cited
US5355453A
Cited
US5121494A
Cited
US5551031A
Cited
US5557791A
Cited
US5414704A
Cited
US5692177A
Cited
US5687361A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-02-15 | 2002-08-17 | 2003-02-16 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-02-15 | 2006-08-17 | 2007-02-16 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-02-15 | 2010-08-17 | 2011-02-16 | $7700.00 | Window Closed / Lapsed |