Tim Armstrong has uploaded a new patch set (#8).
Change subject: IMPALA-4674: Part 3: fix null-aware anti join
IMPALA-4674: Part 3: fix null-aware anti join
Part 2 regressed NAAJ by tightening up the spilling invariants (e.g.
can't unpin with spilling disabled) but we didn't have tests for
spilling NAAJs that could detect the regression. This patch adds
those tests, fixes the regressions, and improves NAAJ by reliably
spilling the probe side and not trying to bring the whole probe side
The changes are:
* All null-aware streams start off in memory and are only unpinned if
spilling is enabled.
* The null-aware build partition can be spilled in the same way as hash
* Probe streams are unpinned whenever there is memory pressure - if
spilling is enabled and either a build partition is spilled or
appending to the probe stream fails.
* Spilled probe streams are not re-pinned in EvaluateNullProbe().
Instead we just iterate over the rows of the stream.
Add query tests where the three different buckets of rows are large
enough to spill: the build and probe of the null-aware partition and the
null probe rows.
Test both spilling and in-memory (with spilling disabled) cases.
7 files changed, 422 insertions(+), 91 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/67/7367/8
To view, visit http://gerrit.cloudera.org:8080/7367
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Dan Hecht <dhe...@cloudera.com>
Gerrit-Reviewer: Michael Ho
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>