Jean-Daniel Cryans has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/8902 )
Change subject: KUDU-2231: sparse column predicate can cause excessive data-block reads ...................................................................... KUDU-2231: sparse column predicate can cause excessive data-block reads When scanning with a sparsely-matching predicate, the CFileIterator can repeatedly materialize non-predicate column blocks multiple times. The result is huge amounts of CPU wasted in block decoding and poor performance. The root cause is that CFileIterator::SeekToOrdinal does not check whether the currently materialized data block contains the ordinal index being seeked to. Instead, it throws away the currently prepared blocks (in CFileIterator::PrepareForNewSeek), and re-materializes the blocks again. This commit is a very targeted fix. Since I've had some time to get familiar with this codepath in the past few days, I've found some things that I think we could improve and simplify in follow-up commits, which I've filed as KUDU-2243. Change-Id: I8eb3be4a809f882ccd80c48612099b2071306ff7 Reviewed-on: http://gerrit.cloudera.org:8080/8869 Tested-by: Kudu Jenkins Reviewed-by: Dan Burkert <danburk...@apache.org> (cherry picked from commit 36ecb300901daf4006fae0c9be5657f2f6127233) Reviewed-on: http://gerrit.cloudera.org:8080/8902 Reviewed-by: Jean-Daniel Cryans <jdcry...@apache.org> --- M src/kudu/cfile/cfile_reader.cc M src/kudu/tablet/tablet-pushdown-test.cc 2 files changed, 107 insertions(+), 24 deletions(-) Approvals: Kudu Jenkins: Verified Jean-Daniel Cryans: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/8902 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: branch-1.6.x Gerrit-MessageType: merged Gerrit-Change-Id: I8eb3be4a809f882ccd80c48612099b2071306ff7 Gerrit-Change-Number: 8902 Gerrit-PatchSet: 2 Gerrit-Owner: Dan Burkert <danburk...@apache.org> Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon <t...@apache.org>