You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Todd Lipcon (Code Review)" <ge...@cloudera.org> on 2018/04/23 21:26:33 UTC

[kudu-CR] rpc: cache call deadline in InboundCall

Hello Binglin Chang, Mike Percy, Henry Robinson, Kudu Jenkins, Adar Dembo, 

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

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

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

Change subject: rpc: cache call deadline in InboundCall
......................................................................

rpc: cache call deadline in InboundCall

The call deadline is used when queueing a call in the service queue.
Previously, we recomputed the deadline from a non-inlined function
every time it was needed, which hurt the performance of queueing.

To test, I set the number of worker threads to only 2 to ensure
that a lot of calls were hitting the queue itself instead of the
direct hand-off path. I ran this both before and after two times each,
alternatingly:

  rpc-bench --worker_threads=2 --client_threads=24 \
    --async_call_concurrency=100 --server_reactors=24 --run_seconds=2 \
    --gtest_filter=\*Calls --gtest_repeat=30 \

I then grepped out the 'Reqs/sec' and ran a t-test using R:

> t.test(d.before$V1, d.after$V1)

        Welch Two Sample t-test

data:  d.before$V1 and d.after$V1
t = -5.3229, df = 113.94, p-value = 5.182e-07
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -11997.452  -5489.415
sample estimates:
mean of x mean of y
 375830.2  384573.6

So, with 95% confidence this improves throughput by at least 1.5%.

Oddly, the user CPU, system CPU, and context switch rate didn't show any
statistically significant difference, but the throughput difference was
clear.

Change-Id: I72138b4dcee6db105bbf9499961c4c1e8c26bd3f
---
M src/kudu/rpc/inbound_call.cc
M src/kudu/rpc/inbound_call.h
2 files changed, 15 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/42/2942/5
-- 
To view, visit http://gerrit.cloudera.org:8080/2942
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I72138b4dcee6db105bbf9499961c4c1e8c26bd3f
Gerrit-Change-Number: 2942
Gerrit-PatchSet: 5
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Binglin Chang <de...@gmail.com>
Gerrit-Reviewer: Henry Robinson <he...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <mp...@apache.org>