You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@impala.apache.org by "Zoltan Borok-Nagy (Code Review)" <ge...@cloudera.org> on 2026/10/10 19:46:56 UTC
[Impala-ASF-CR] PROTOTYPE: Build shared hash join tables with several threads
Zoltan Borok-Nagy has uploaded this change for review. ( http://gerrit.cloudera.org:8080/25089
Change subject: PROTOTYPE: Build shared hash join tables with several threads
......................................................................
PROTOTYPE: Build shared hash join tables with several threads
A join build shared by several probe threads (a broadcast join with
mt_dop > 0) builds the hash tables of its partitions one by one in one
thread while the probe threads wait. In TPC-DS SF1000 q78 this took
17.8 s per host for a 288M-row broadcast build.
If a shared build has at least --parallel_hash_table_build_min_rows
rows (default 1M), up to --parallel_hash_table_build_threads threads
(default 8) now build the partitions' hash tables, largest first. Each
thread has its own HashTableCtx and expr pools, and the hash table
suballocator takes a lock meanwhile. Partitions that do not fit in
memory are retried serially, as before.
Testing:
- TPC-DS SF1000, 8 executors, MT_DOP=8, PLANNER=CALCITE,
CTE_THRESHOLD=1, on top of earlier prototypes: q78 hash table build
17.8 s -> 2.2 s per host; total 376.8 s -> 353.1 s.
No new tests.
Change-Id: I8617a7115bea8dedc8c402f0a03ab80b10e7a794
Assisted-by: Claude Opus 5.5 (Claude Code)
---
M be/src/exec/partitioned-hash-join-builder.cc
M be/src/exec/partitioned-hash-join-builder.h
M be/src/runtime/bufferpool/suballocator.cc
M be/src/runtime/bufferpool/suballocator.h
4 files changed, 134 insertions(+), 3 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/89/25089/1
--
To view, visit http://gerrit.cloudera.org:8080/25089
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8617a7115bea8dedc8c402f0a03ab80b10e7a794
Gerrit-Change-Number: 25089
Gerrit-PatchSet: 1
Gerrit-Owner: Zoltan Borok-Nagy <bo...@cloudera.com>
[Impala-ASF-CR] PROTOTYPE: Build shared hash join tables with several threads
Posted by "Impala Public Jenkins (Code Review)" <ge...@cloudera.org>.
Impala Public Jenkins has posted comments on this change. ( http://gerrit.cloudera.org:8080/25089 )
Change subject: PROTOTYPE: Build shared hash join tables with several threads
......................................................................
Patch Set 1:
Build Successful
https://jenkins.impala.io/job/gerrit-code-review-checks/24465/ : Initial code review checks passed. Use gerrit-verify-dryrun-external or gerrit-verify-dryrun to run full precommit tests.
--
To view, visit http://gerrit.cloudera.org:8080/25089
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I8617a7115bea8dedc8c402f0a03ab80b10e7a794
Gerrit-Change-Number: 25089
Gerrit-PatchSet: 1
Gerrit-Owner: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>
Gerrit-Comment-Date: Sat, 10 Oct 2026 20:15:29 +0000
Gerrit-HasComments: No
[Impala-ASF-CR] PROTOTYPE IMPALA-15631: Build shared hash join tables with several threads
Posted by "Zoltan Borok-Nagy (Code Review)" <ge...@cloudera.org>.
Hello Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/25089
to look at the new patch set (#2).
Change subject: PROTOTYPE IMPALA-15631: Build shared hash join tables with several threads
......................................................................
PROTOTYPE IMPALA-15631: Build shared hash join tables with several threads
A join build shared by several probe threads (a broadcast join with
mt_dop > 0) builds the hash tables of its partitions one by one in one
thread while the probe threads wait. In TPC-DS SF1000 q78 this took
17.8 s per host for a 288M-row broadcast build.
If a shared build has at least --parallel_hash_table_build_min_rows
rows (default 1M), up to --parallel_hash_table_build_threads threads
(default 8) now build the partitions' hash tables, largest first. Each
thread has its own HashTableCtx and expr pools, and the hash table
suballocator takes a lock meanwhile. Partitions that do not fit in
memory are retried serially, as before.
Testing:
- TPC-DS SF1000, 8 executors, MT_DOP=8, PLANNER=CALCITE,
CTE_THRESHOLD=1, on top of earlier prototypes: q78 hash table build
17.8 s -> 2.2 s per host; total 376.8 s -> 353.1 s.
No new tests.
Change-Id: I8617a7115bea8dedc8c402f0a03ab80b10e7a794
Assisted-by: Claude Opus 5.5 (Claude Code)
---
M be/src/exec/partitioned-hash-join-builder.cc
M be/src/exec/partitioned-hash-join-builder.h
M be/src/runtime/bufferpool/suballocator.cc
M be/src/runtime/bufferpool/suballocator.h
4 files changed, 134 insertions(+), 3 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/89/25089/2
--
To view, visit http://gerrit.cloudera.org:8080/25089
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I8617a7115bea8dedc8c402f0a03ab80b10e7a794
Gerrit-Change-Number: 25089
Gerrit-PatchSet: 2
Gerrit-Owner: Zoltan Borok-Nagy <bo...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <im...@cloudera.com>