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 2020/03/15 06:58:17 UTC
[kudu-CR] rpc: reduce context switches and receive calls
Hello Adar Dembo,
I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/15440
to review the following change.
Change subject: rpc: reduce context switches and receive calls
......................................................................
rpc: reduce context switches and receive calls
* When queueing a task to execute on the reactor, avoid writing to the
eventfd to wake it up if such a write has already been done. This
should reduce the number of read/write syscalls to the eventfd and
avoid "spurious" wakeups of the reactor.
* When reading inbound data, read an extra 4 bytes, and if it's
available, loop around to read another call without putting the
reactor back to sleep.
The effect on context switches is clearly visible using
rpc-bench --gtest_filter=\*Async
Before:
I0305 12:50:56.463312 7468 rpc-bench.cc:128] Ctx Sw. per req: 0.640409
I0305 12:50:58.015260 7542 rpc-bench.cc:128] Ctx Sw. per req: 0.613172
I0305 12:50:59.563201 7587 rpc-bench.cc:128] Ctx Sw. per req: 0.589479
I0305 12:51:01.014848 7662 rpc-bench.cc:128] Ctx Sw. per req: 0.562744
I0305 12:51:02.666339 7736 rpc-bench.cc:128] Ctx Sw. per req: 0.569126
After:
I0305 12:52:03.567790 9005 rpc-bench.cc:128] Ctx Sw. per req: 0.383251
I0305 12:52:05.050909 9079 rpc-bench.cc:128] Ctx Sw. per req: 0.454404
I0305 12:52:06.626401 9138 rpc-bench.cc:128] Ctx Sw. per req: 0.3308
I0305 12:52:08.123154 9198 rpc-bench.cc:128] Ctx Sw. per req: 0.317752
I0305 12:52:09.666586 9272 rpc-bench.cc:128] Ctx Sw. per req: 0.391739
And on system CPU:
Before:
I0305 12:50:56.463310 7468 rpc-bench.cc:127] Sys CPU per req: 16.5524us
I0305 12:50:58.015259 7542 rpc-bench.cc:127] Sys CPU per req: 16.1158us
I0305 12:50:59.563199 7587 rpc-bench.cc:127] Sys CPU per req: 17.3184us
I0305 12:51:01.014847 7662 rpc-bench.cc:127] Sys CPU per req: 16.7911us
I0305 12:51:02.666337 7736 rpc-bench.cc:127] Sys CPU per req: 15.7659us
After:
I0305 12:52:03.567787 9005 rpc-bench.cc:127] Sys CPU per req: 13.0533us
I0305 12:52:05.050906 9079 rpc-bench.cc:127] Sys CPU per req: 13.7925us
I0305 12:52:06.626399 9138 rpc-bench.cc:127] Sys CPU per req: 11.6987us
I0305 12:52:08.123152 9198 rpc-bench.cc:127] Sys CPU per req: 11.9214us
I0305 12:52:09.666584 9272 rpc-bench.cc:127] Sys CPU per req: 13.4031us
And on syscalls:
todd@turbo:~/kudu$ grep recvfr /tmp/before /tmp/after
/tmp/before: 1458969 syscalls:sys_enter_recvfrom ( +- 1.99% )
/tmp/before: 1458969 syscalls:sys_exit_recvfrom ( +- 1.99% )
/tmp/after: 1252328 syscalls:sys_enter_recvfrom ( +- 1.82% )
/tmp/after: 1252328 syscalls:sys_exit_recvfrom ( +- 1.82% )
todd@turbo:~/kudu$ grep epoll_ctl /tmp/before /tmp/after
/tmp/before: 915862 syscalls:sys_enter_epoll_ctl ( +- 1.47% )
/tmp/before: 915862 syscalls:sys_exit_epoll_ctl ( +- 1.47% )
/tmp/after: 475978 syscalls:sys_enter_epoll_ctl ( +- 3.61% )
/tmp/after: 475978 syscalls:sys_exit_epoll_ctl ( +- 3.61% )
On a more macro-benchmark (TSBS single-groupby-1-1-1 16 workers on an
8-core machine) this also reduces syscalls a bit, though the end-to-end
improvement is minimal.
Before:
Performance counter stats for 'system wide' (10 runs):
340,444 cs ( +- 0.30% )
144,024 syscalls:sys_enter_recvfrom ( +- 0.00% )
94,379 syscalls:sys_enter_epoll_ctl ( +- 0.06% )
129,376 syscalls:sys_enter_epoll_wait ( +- 0.10% )
2.025755946 seconds time elapsed ( +- 0.43% )
After:
Performance counter stats for 'system wide' (10 runs):
333,865 cs ( +- 0.27% )
119,216 syscalls:sys_enter_recvfrom ( +- 0.04% )
88,731 syscalls:sys_enter_epoll_ctl ( +- 0.08% )
104,149 syscalls:sys_enter_epoll_wait ( +- 0.08% )
2.005614271 seconds time elapsed ( +- 0.19% )
Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
---
M src/kudu/rpc/connection.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/transfer.cc
M src/kudu/rpc/transfer.h
4 files changed, 61 insertions(+), 36 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/15440/1
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Andrew Wong (Code Review)" <ge...@cloudera.org>.
Andrew Wong has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 2: Verified+1 Code-Review+2
One test reported failure because of KUDU-2432
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 2
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Thu, 19 Mar 2020 22:58:13 +0000
Gerrit-HasComments: No
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Bankim Bhavsar (Code Review)" <ge...@cloudera.org>.
Bankim Bhavsar has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 1:
(2 comments)
Would it be possible to add some correctness related tests for this change?
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc
File src/kudu/rpc/transfer.cc:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc@104
PS1, Line 104: const int kExtraReadLength = kMsgLengthPrefixLength;
> nit: could be static?
static constexpr
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc@163
PS1, Line 163: extra_4->clear();
DCHECK extra_read <= kExtraReadLength?
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Tue, 17 Mar 2020 21:54:17 +0000
Gerrit-HasComments: Yes
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Todd Lipcon (Code Review)" <ge...@cloudera.org>.
Hello Kudu Jenkins, Andrew Wong, Adar Dembo, Bankim Bhavsar,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/15440
to look at the new patch set (#2).
Change subject: rpc: reduce context switches and receive calls
......................................................................
rpc: reduce context switches and receive calls
* When queueing a task to execute on the reactor, avoid writing to the
eventfd to wake it up if such a write has already been done. This
should reduce the number of read/write syscalls to the eventfd and
avoid "spurious" wakeups of the reactor.
* When reading inbound data, read an extra 4 bytes, and if it's
available, loop around to read another call without putting the
reactor back to sleep.
The effect on context switches is clearly visible using
rpc-bench --gtest_filter=\*Async
Before:
I0305 12:50:56.463312 7468 rpc-bench.cc:128] Ctx Sw. per req: 0.640409
I0305 12:50:58.015260 7542 rpc-bench.cc:128] Ctx Sw. per req: 0.613172
I0305 12:50:59.563201 7587 rpc-bench.cc:128] Ctx Sw. per req: 0.589479
I0305 12:51:01.014848 7662 rpc-bench.cc:128] Ctx Sw. per req: 0.562744
I0305 12:51:02.666339 7736 rpc-bench.cc:128] Ctx Sw. per req: 0.569126
After:
I0305 12:52:03.567790 9005 rpc-bench.cc:128] Ctx Sw. per req: 0.383251
I0305 12:52:05.050909 9079 rpc-bench.cc:128] Ctx Sw. per req: 0.454404
I0305 12:52:06.626401 9138 rpc-bench.cc:128] Ctx Sw. per req: 0.3308
I0305 12:52:08.123154 9198 rpc-bench.cc:128] Ctx Sw. per req: 0.317752
I0305 12:52:09.666586 9272 rpc-bench.cc:128] Ctx Sw. per req: 0.391739
And on system CPU:
Before:
I0305 12:50:56.463310 7468 rpc-bench.cc:127] Sys CPU per req: 16.5524us
I0305 12:50:58.015259 7542 rpc-bench.cc:127] Sys CPU per req: 16.1158us
I0305 12:50:59.563199 7587 rpc-bench.cc:127] Sys CPU per req: 17.3184us
I0305 12:51:01.014847 7662 rpc-bench.cc:127] Sys CPU per req: 16.7911us
I0305 12:51:02.666337 7736 rpc-bench.cc:127] Sys CPU per req: 15.7659us
After:
I0305 12:52:03.567787 9005 rpc-bench.cc:127] Sys CPU per req: 13.0533us
I0305 12:52:05.050906 9079 rpc-bench.cc:127] Sys CPU per req: 13.7925us
I0305 12:52:06.626399 9138 rpc-bench.cc:127] Sys CPU per req: 11.6987us
I0305 12:52:08.123152 9198 rpc-bench.cc:127] Sys CPU per req: 11.9214us
I0305 12:52:09.666584 9272 rpc-bench.cc:127] Sys CPU per req: 13.4031us
And on syscalls:
todd@turbo:~/kudu$ grep recvfr /tmp/before /tmp/after
/tmp/before: 1458969 syscalls:sys_enter_recvfrom ( +- 1.99% )
/tmp/before: 1458969 syscalls:sys_exit_recvfrom ( +- 1.99% )
/tmp/after: 1252328 syscalls:sys_enter_recvfrom ( +- 1.82% )
/tmp/after: 1252328 syscalls:sys_exit_recvfrom ( +- 1.82% )
todd@turbo:~/kudu$ grep epoll_ctl /tmp/before /tmp/after
/tmp/before: 915862 syscalls:sys_enter_epoll_ctl ( +- 1.47% )
/tmp/before: 915862 syscalls:sys_exit_epoll_ctl ( +- 1.47% )
/tmp/after: 475978 syscalls:sys_enter_epoll_ctl ( +- 3.61% )
/tmp/after: 475978 syscalls:sys_exit_epoll_ctl ( +- 3.61% )
On a more macro-benchmark (TSBS single-groupby-1-1-1 16 workers on an
8-core machine) this also reduces syscalls a bit, though the end-to-end
improvement is minimal.
Before:
Performance counter stats for 'system wide' (10 runs):
340,444 cs ( +- 0.30% )
144,024 syscalls:sys_enter_recvfrom ( +- 0.00% )
94,379 syscalls:sys_enter_epoll_ctl ( +- 0.06% )
129,376 syscalls:sys_enter_epoll_wait ( +- 0.10% )
2.025755946 seconds time elapsed ( +- 0.43% )
After:
Performance counter stats for 'system wide' (10 runs):
333,865 cs ( +- 0.27% )
119,216 syscalls:sys_enter_recvfrom ( +- 0.04% )
88,731 syscalls:sys_enter_epoll_ctl ( +- 0.08% )
104,149 syscalls:sys_enter_epoll_wait ( +- 0.08% )
2.005614271 seconds time elapsed ( +- 0.19% )
Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
---
M src/kudu/rpc/connection.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/transfer.cc
M src/kudu/rpc/transfer.h
4 files changed, 71 insertions(+), 37 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/15440/2
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 2
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Todd Lipcon (Code Review)" <ge...@cloudera.org>.
Todd Lipcon has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 1:
(4 comments)
> Patch Set 1:
>
> (2 comments)
>
> Would it be possible to add some correctness related tests for this change?
The code path is covered pretty well by the benchmark in the commit message (and really by every other distributed test we have). I didn't think it was worth trying to write a really targeted unit test for InboundTransfer here since functional tests cover it.
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h
File src/kudu/rpc/transfer.h:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h@70
PS1, Line 70: faststring&&
> Yeah, the Google Style Guide doesn't like rvalue references outside of move
Done
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h@73
PS1, Line 73: faststring* extra_4
> nit: doc this?
Done
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc
File src/kudu/rpc/transfer.cc:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc@104
PS1, Line 104: const int kExtraReadLength = kMsgLengthPrefixLength;
> static constexpr
Done
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc@163
PS1, Line 163: extra_4->clear();
> DCHECK extra_read <= kExtraReadLength?
Done
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Thu, 19 Mar 2020 21:40:27 +0000
Gerrit-HasComments: Yes
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Bankim Bhavsar (Code Review)" <ge...@cloudera.org>.
Bankim Bhavsar has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 2: Code-Review+1
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 2
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
Gerrit-Comment-Date: Fri, 20 Mar 2020 01:51:19 +0000
Gerrit-HasComments: No
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Todd Lipcon (Code Review)" <ge...@cloudera.org>.
Todd Lipcon has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
rpc: reduce context switches and receive calls
* When queueing a task to execute on the reactor, avoid writing to the
eventfd to wake it up if such a write has already been done. This
should reduce the number of read/write syscalls to the eventfd and
avoid "spurious" wakeups of the reactor.
* When reading inbound data, read an extra 4 bytes, and if it's
available, loop around to read another call without putting the
reactor back to sleep.
The effect on context switches is clearly visible using
rpc-bench --gtest_filter=\*Async
Before:
I0305 12:50:56.463312 7468 rpc-bench.cc:128] Ctx Sw. per req: 0.640409
I0305 12:50:58.015260 7542 rpc-bench.cc:128] Ctx Sw. per req: 0.613172
I0305 12:50:59.563201 7587 rpc-bench.cc:128] Ctx Sw. per req: 0.589479
I0305 12:51:01.014848 7662 rpc-bench.cc:128] Ctx Sw. per req: 0.562744
I0305 12:51:02.666339 7736 rpc-bench.cc:128] Ctx Sw. per req: 0.569126
After:
I0305 12:52:03.567790 9005 rpc-bench.cc:128] Ctx Sw. per req: 0.383251
I0305 12:52:05.050909 9079 rpc-bench.cc:128] Ctx Sw. per req: 0.454404
I0305 12:52:06.626401 9138 rpc-bench.cc:128] Ctx Sw. per req: 0.3308
I0305 12:52:08.123154 9198 rpc-bench.cc:128] Ctx Sw. per req: 0.317752
I0305 12:52:09.666586 9272 rpc-bench.cc:128] Ctx Sw. per req: 0.391739
And on system CPU:
Before:
I0305 12:50:56.463310 7468 rpc-bench.cc:127] Sys CPU per req: 16.5524us
I0305 12:50:58.015259 7542 rpc-bench.cc:127] Sys CPU per req: 16.1158us
I0305 12:50:59.563199 7587 rpc-bench.cc:127] Sys CPU per req: 17.3184us
I0305 12:51:01.014847 7662 rpc-bench.cc:127] Sys CPU per req: 16.7911us
I0305 12:51:02.666337 7736 rpc-bench.cc:127] Sys CPU per req: 15.7659us
After:
I0305 12:52:03.567787 9005 rpc-bench.cc:127] Sys CPU per req: 13.0533us
I0305 12:52:05.050906 9079 rpc-bench.cc:127] Sys CPU per req: 13.7925us
I0305 12:52:06.626399 9138 rpc-bench.cc:127] Sys CPU per req: 11.6987us
I0305 12:52:08.123152 9198 rpc-bench.cc:127] Sys CPU per req: 11.9214us
I0305 12:52:09.666584 9272 rpc-bench.cc:127] Sys CPU per req: 13.4031us
And on syscalls:
todd@turbo:~/kudu$ grep recvfr /tmp/before /tmp/after
/tmp/before: 1458969 syscalls:sys_enter_recvfrom ( +- 1.99% )
/tmp/before: 1458969 syscalls:sys_exit_recvfrom ( +- 1.99% )
/tmp/after: 1252328 syscalls:sys_enter_recvfrom ( +- 1.82% )
/tmp/after: 1252328 syscalls:sys_exit_recvfrom ( +- 1.82% )
todd@turbo:~/kudu$ grep epoll_ctl /tmp/before /tmp/after
/tmp/before: 915862 syscalls:sys_enter_epoll_ctl ( +- 1.47% )
/tmp/before: 915862 syscalls:sys_exit_epoll_ctl ( +- 1.47% )
/tmp/after: 475978 syscalls:sys_enter_epoll_ctl ( +- 3.61% )
/tmp/after: 475978 syscalls:sys_exit_epoll_ctl ( +- 3.61% )
On a more macro-benchmark (TSBS single-groupby-1-1-1 16 workers on an
8-core machine) this also reduces syscalls a bit, though the end-to-end
improvement is minimal.
Before:
Performance counter stats for 'system wide' (10 runs):
340,444 cs ( +- 0.30% )
144,024 syscalls:sys_enter_recvfrom ( +- 0.00% )
94,379 syscalls:sys_enter_epoll_ctl ( +- 0.06% )
129,376 syscalls:sys_enter_epoll_wait ( +- 0.10% )
2.025755946 seconds time elapsed ( +- 0.43% )
After:
Performance counter stats for 'system wide' (10 runs):
333,865 cs ( +- 0.27% )
119,216 syscalls:sys_enter_recvfrom ( +- 0.04% )
88,731 syscalls:sys_enter_epoll_ctl ( +- 0.08% )
104,149 syscalls:sys_enter_epoll_wait ( +- 0.08% )
2.005614271 seconds time elapsed ( +- 0.19% )
Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Reviewed-on: http://gerrit.cloudera.org:8080/15440
Reviewed-by: Andrew Wong <aw...@cloudera.com>
Tested-by: Andrew Wong <aw...@cloudera.com>
Reviewed-by: Bankim Bhavsar <ba...@cloudera.com>
---
M src/kudu/rpc/connection.cc
M src/kudu/rpc/reactor.cc
M src/kudu/rpc/transfer.cc
M src/kudu/rpc/transfer.h
4 files changed, 71 insertions(+), 37 deletions(-)
Approvals:
Andrew Wong: Looks good to me, approved; Verified
Bankim Bhavsar: Looks good to me, but someone else must approve
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 3
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Adar Dembo (Code Review)" <ge...@cloudera.org>.
Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 1:
(1 comment)
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h
File src/kudu/rpc/transfer.h:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h@70
PS1, Line 70: faststring&&
> nit: why not pass by copy instead of explicitly r-value work? Seems like fa
Yeah, the Google Style Guide doesn't like rvalue references outside of move constructors and move-assignment operators.
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Mon, 16 Mar 2020 07:42:04 +0000
Gerrit-HasComments: Yes
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Andrew Wong (Code Review)" <ge...@cloudera.org>.
Andrew Wong has removed a vote on this change.
Change subject: rpc: reduce context switches and receive calls
......................................................................
Removed Verified-1 by Kudu Jenkins (120)
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: deleteVote
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 2
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Bankim Bhavsar <ba...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Todd Lipcon <to...@apache.org>
[kudu-CR] rpc: reduce context switches and receive calls
Posted by "Andrew Wong (Code Review)" <ge...@cloudera.org>.
Andrew Wong has posted comments on this change. ( http://gerrit.cloudera.org:8080/15440 )
Change subject: rpc: reduce context switches and receive calls
......................................................................
Patch Set 1:
(3 comments)
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h
File src/kudu/rpc/transfer.h:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h@70
PS1, Line 70: faststring&&
nit: why not pass by copy instead of explicitly r-value work? Seems like faststring has a move operator.
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.h@73
PS1, Line 73: faststring* extra_4
nit: doc this?
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc
File src/kudu/rpc/transfer.cc:
http://gerrit.cloudera.org:8080/#/c/15440/1/src/kudu/rpc/transfer.cc@104
PS1, Line 104: const int kExtraReadLength = kMsgLengthPrefixLength;
nit: could be static?
--
To view, visit http://gerrit.cloudera.org:8080/15440
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c5e4d146c25be8e90665a0cb8385fcd017b15c
Gerrit-Change-Number: 15440
Gerrit-PatchSet: 1
Gerrit-Owner: Todd Lipcon <to...@apache.org>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Comment-Date: Sun, 15 Mar 2020 07:42:39 +0000
Gerrit-HasComments: Yes