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>

Reply via email to