Patent ID: 9177025
Filing Date: 2015-11-03
Classification: G06F

Abstract:
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.