Hello Tidy Bot, Andrew Wong, Kudu Jenkins, Adar Dembo,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/14874

to look at the new patch set (#2).

Change subject: memrowset: small optimizations for scanning
......................................................................

memrowset: small optimizations for scanning

This adds two small optimizations for MRS/CBTree. They should have a
small (maybe not noticeable) effect on user scans, but hopefully will
also improve the speed of flushing by a few percent, which I found to be
CPU bound when using an NVM disk for storage.

- add a new getter to fetch the stored values without also accessing the
  stored keys. In most cases we don't care about the encoded key when
  accessing MRS, so we can avoid potentially following the key pointer
  (should avoid a cache miss)

Shows a small effect in the modified benchmark:

I1210 10:04:46.209149 15145 cbtree-test.cc:795] Time spent Scan 4000000 keys 10 
times (frozen): real 0.638s     user 0.636s     sys 0.000s
I1210 10:04:46.804275 15145 cbtree-test.cc:806] Time spent Scan 4000000 keys 10 
times (frozen, val-only): real 0.595s   user 0.596s     sys 0.000s

... though this one didn't show a major effect in memrowset-test on its
own.

- add prefetching of the MRS values during scanning

Tested with:

  memrowset-test --gtest_filter=\*InsertCount\* --roundtrip_num_rows=10000000 
--gtest_repeat=10

t-test for the "all committed" result shows a significant (though <5%) effect:

data:  subset(d, V1 == "before")$V2 and subset(d, V1 == "after-prefetch")$V2
t = 3.4999, df = 18, p-value = 0.002557
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 0.004876512 0.019523488
sample estimates:
mean of x mean of y
   0.3622    0.3500

Change-Id: Ia44b34606439625fbbbcc83e3652455a8894a0b3
---
M src/kudu/tablet/cbtree-test.cc
M src/kudu/tablet/concurrent_btree.h
M src/kudu/tablet/memrowset.cc
M src/kudu/tablet/memrowset.h
4 files changed, 80 insertions(+), 35 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/74/14874/2
--
To view, visit http://gerrit.cloudera.org:8080/14874
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ia44b34606439625fbbbcc83e3652455a8894a0b3
Gerrit-Change-Number: 14874
Gerrit-PatchSet: 2
Gerrit-Owner: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <andrew.w...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to