IMU, the left side is always located with the hash join node. If the stats are 
correct, the left side will always be a larger table/input. There're two 
terminologies in the hash join algorithm: build and probe. The smaller table 
that can be built into an in-memory hash table is called the "build" input. 
It's represented at the right side. After the in-memory hash table is built, 
the larger table will be scanned and rows will be probed in the hash table to 
find matched results. The larger table is called the "probe" input and 
represented at the left side.So not all rows are sent across the network to 
perform a hash join. Usually the larger table is scanned locally. Network 
traffic comes from the "build" input. It's smaller and sometimes can even be 
represented as a BloomFilter (one kind of RuntimeFilter in Impala).

However, there's still one case that all rows are sent across the network 
anyway. That is when all tables are not located in the Impala cluster (e.g. 
Impala is deployed in a portion of the Hadoop cluster). Scanning the tables 
both consumes network traffic. However, when performing hash join, the results 
of the right side will be sent to the left side, since they have smaller size 
and consumes less network traffic than sending the left side.


I find this paper in "Impala Reading List" has much more details and deserves 
to be read more times: 
Hash joins and hash teams in Microsoft SQL Server (Graefe, Bunker, Cooper)


HTH


At 2018-02-12 18:13:09, "Jeszy" <jes...@gmail.com> wrote:
>IIUC, every row scanned in a partitioned hash join (both sides) is sent
>across the network (an exchange on HASH(key)). The targets of this exchange
>are nodes that have data locality with the left side of the join. Why does
>Impala do it that way?
>
>Since all rows are sent across the network anyway, Impala could just use
>all the nodes in the cluster. The upside would be better parallelism for
>the join itself as well as for all the operators sitting on top of it. Is
>there a downside I'm forgetting?
>If not, is there a jira tracking this already? Haven't found one.
>
>Thanks!

Reply via email to