Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer readable medium having program instructions stored thereon, the medium comprising: instructions to calculate, by a plurality of concurrently executing execution threads, hash values for join columns of a first input table and a second input table, the hash values including key-index pairs where each key of the key-index pairs that is distinct is mapped to a unique integer, the key of the key-index pairs being extracted from partitions of the first and second input tables, and the index of the key-index pairs comprising one of the unique integers; instructions to store the calculated hash values in a set of disjoint thread-local hash maps for each of the first input table and the second input table, the storing including storing a row number of the join columns of the first or second input table corresponding to an associated value stored for each of the key-index pairs; instructions to merge the set of thread-local hash maps of the first input table, by a second plurality of execution threads operating concurrently, to produce a set of merged hash maps, each of the second plurality of execution threads responsible for a dedicated range of all of the thread-local hash maps; instructions to compare each entry of the merged hash maps to each entry of the set of thread-local hash maps for the second input table to determine whether there is a match, according to a join type; and instructions to generate an output table including matches as determined by the comparing.
2. The medium of claim 1 , wherein the join columns and the join type are specified by a join query statement.
3. The medium of claim 1 , wherein the join type may be one of an inner join, an outer join, a left-outer join, and a right-outer join.
4. The medium of claim 1 , wherein the first input table is smaller than the second input table.
5. The medium of claim 1 , wherein the second input table is smaller than the first input table.
6. The medium of claim 1 , further comprising instructions to separate the first input table and the second input table into a plurality of the partitions.
7. The medium of claim 1 , further comprising instructions to assign the partitions to the execution threads.
8. The medium of claim 1 , further comprising program instructions to align the row number of the matches to facilitate retrieval of all corresponding rows from both the first input table and the second input table.
9. The medium of claim 1 , wherein the set of thread-local hash maps of the second input table is merged instead of or in addition to the merging of the set of the thread-local hash maps of the first input table.
10. The medium of claim 1 , wherein the calculating and storing of hash values and the merging is completed before a start of the comparing.
11. The medium of claim 1 , further comprising program instructions to partition each of the thread-local hash maps to facilitate a determination of the dedicated range of all of the thread-local hash maps each of the second plurality of execution threads is responsible.
12. A computer implemented method, the method comprising: separating a first input table and a second input table into a plurality of the partitions calculating, by a plurality of concurrently executing execution threads, hash values for join columns of the first input table and the second input table, the hash values including key-index pairs where each key of the key-index pairs that is distinct is mapped to a unique integer, the key of the key-index pairs being extracted from partitions of the first and second input tables, and the index of the key-index pairs comprising one of the unique integers; storing the calculated hash values in a set of disjoint thread-local hash maps for each of the first input table and the second input table, the storing including storing a row number of the join columns of the first or second input table corresponding to an associated value stored for each of the key-index pairs; merging the set of thread-local hash maps of the first input table, by a second plurality of execution threads operating concurrently, to produce a set of merged hash maps, each of the second plurality of execution threads responsible for a dedicated range of all of the thread-local hash maps; comparing each entry of the merged hash maps to each entry of the set of thread-local hash maps for the second input table to determine whether there is a match, according to a join type; and generating an output table including matches as determined by the comparing.
13. The method of claim 12 , wherein the join columns and the join type are specified by a join query statement.
14. The method of claim 12 , wherein the join type may be one of an inner join, an outer join, a left-outer join, and a right-outer join.
15. The method of claim 12 , wherein the second input table is smaller than the first input table.
16. The method of claim 12 , further comprising instructions to assign the partitions to the execution threads.
17. The method of claim 12 , further comprising program instructions to align the row number of the matches to facilitate retrieval of all corresponding rows from both the first input table and the second input table.
18. The method of claim 12 , wherein the set of thread-local hash maps of the second input table is merged instead of or in addition to the merging of the set of the thread-local hash maps of the first input table.
19. The method of claim 12 , wherein the calculating and storing of hash values and the merging is completed before a start of the comparing.
20. The method of claim 12 , further comprising program instructions to partition each of the thread-local hash maps to facilitate a determination of the dedicated range of all of the thread-local hash maps each of the second plurality of execution threads is responsible.
Unknown
November 3, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.