Hello Tidy Bot, Alexey Serbin, Attila Bukor, Kudu Jenkins, Andrew Wong,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/14380
to look at the new patch set (#5).
Change subject: [cfile] KUDU-2852 Push predicate evaluation for int type RLE
decoder
......................................................................
[cfile] KUDU-2852 Push predicate evaluation for int type RLE decoder
This change adds optimization that evaluates the predicate for each run
instead of materializing each cell and then applying the predicate
for integer datatype RLE decoder.
Added a utility method in SelectionVectorView to clear bits
from caller specified offset. This helps clear batch of rows
from a caller maintained offset without advancing the internal
row_offset in SelectionVectorView.
Tests:
- Extended all_types-scan-correctness-test with repeating
data instead of sequential to better test data encoded
with RLE.
- Verified all unit tests pass.
- To benchmark, adjusted all_types-scan-correctness-test with
- large number of rows 100k to 1M with run lengths of 1k to 10k
- predicate that selects subset of rows
- only RLE encoded integer datatypes
Observed 40% to 60% perf improvement in scan compared to not doing decoder
level evaluation (i.e. materializing_iterator_decoder_eval = false)
Change-Id: I6e05775ec1301d3d0b0365a7704b8e962a20455e
---
M src/kudu/cfile/rle_block.h
M src/kudu/common/rowblock.h
M src/kudu/tablet/all_types-scan-correctness-test.cc
3 files changed, 276 insertions(+), 53 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/80/14380/5
--
To view, visit http://gerrit.cloudera.org:8080/14380
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I6e05775ec1301d3d0b0365a7704b8e962a20455e
Gerrit-Change-Number: 14380
Gerrit-PatchSet: 5
Gerrit-Owner: Bankim Bhavsar <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Andrew Wong <[email protected]>
Gerrit-Reviewer: Attila Bukor <[email protected]>
Gerrit-Reviewer: Bankim Bhavsar <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)