Impala Public Jenkins has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/14787 )
Change subject: IMPALA-9126: part 3: move more logic to PhjBuilder ...................................................................... IMPALA-9126: part 3: move more logic to PhjBuilder The general flavour of this patch is to move code that orchestrates the top-level spilling hash join algorithm to PhjBuilder, and better encapsulate state in PhjBuilder by reducing the number of public methods. Specific changes include: * Move HashJoinState to PhjBuilder, which is necessary for the shared join build since the builder will be orchestrating the spilling. * Reduce public methods of PhjBuilder. The goal is for the builder to hand off pointers to hash tables, partitions, etc only during transitions of the state machine (i.e. synchronization points when we have a shared build). * Highlight methods of PhjBuilder that will be synchronization points for the shared join build where hash tables are built and destroyed. * Highlight other future changes to PhjBuilder. * Move some of the output build partition logic from NextSpilledProbeRowBatch() to the builder, which required a few other changes - e.g. explicit *eos output arguments for some functions. This does *not* include a change to have the builder pick the spilled partition to process. That will be a follow-on, because it requires more refactoring of the relationship between PhjBuilder::Partition and ProbePartition. Testing: * Earlier version of patch passed exhaustive tests. Change-Id: I0e233468de1eeae86651ab96df207de19e091053 Reviewed-on: http://gerrit.cloudera.org:8080/14787 Reviewed-by: Impala Public Jenkins <[email protected]> Tested-by: Impala Public Jenkins <[email protected]> --- M be/src/exec/partitioned-hash-join-builder.cc M be/src/exec/partitioned-hash-join-builder.h M be/src/exec/partitioned-hash-join-node-ir.cc M be/src/exec/partitioned-hash-join-node.cc M be/src/exec/partitioned-hash-join-node.h 5 files changed, 554 insertions(+), 392 deletions(-) Approvals: Impala Public Jenkins: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/14787 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0e233468de1eeae86651ab96df207de19e091053 Gerrit-Change-Number: 14787 Gerrit-PatchSet: 9 Gerrit-Owner: Tim Armstrong <[email protected]> Gerrit-Reviewer: Bikramjeet Vig <[email protected]> Gerrit-Reviewer: Csaba Ringhofer <[email protected]> Gerrit-Reviewer: Impala Public Jenkins <[email protected]> Gerrit-Reviewer: Michael Ho <[email protected]> Gerrit-Reviewer: Thomas Tauber-Marshall <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]>
