Alexey Serbin has posted comments on this change. (
http://gerrit.cloudera.org:8080/5905 )
Change subject: KUDU-1865 (part 1): reduce some cross-thread allocations
......................................................................
Patch Set 7:
> I am curious, Did you see an improvement in some of the RPC
> benchmarks as a result of this change?
The improvements are minuscule and sometimes there is improvement at all in
synthetic test scenarios (such as GetTableLocations and GetTableSchema
concurrent RPC scenarios). I also tried to replace std::function with
boost::function in ReactorTask, and that helps a bit with number of allocations
per tcmalloc's allocation tracing, but not much as for the real-world
benchmarks.
Below are some results:
GetTableLocations RPC (RELEASE build with third-party CLANG, 60 seconds):
Without patch: 15528.3 req/sec
With patch: 15535.4 req/sec
------------------------------------------------------------------------
GetTableSchema RPC (RELEASE build with third-party CLANG, 60 seconds):
Without patch: 103892 req/sec
With patch: 102711 req/sec
Results from rpc-bench, 60 seconds runtime
Mode: Sync
Client threads: 16
Worker threads: 1
Server reactors: 4
Encryption: 0
(RELEASE build with third-party CLANG):
Without patch:
Reqs/sec: 68191.4
User CPU per req: 34.8228us
Sys CPU per req: 172.426us
Ctx Sw. per req: 3.58111
Server reactor load histogram
Count: 11980
Mean: 36.4902
Percentiles:
0% (min) = 16
25% = 26
50% (med) = 28
75% = 31
95% = 78
99% = 84
99.9% = 88
99.99% = 90
100% (max) = 91
Server reactor latency histogram
Count: 13517690
Mean: 29.8539
Percentiles:
0% (min) = 0
25% = 18
50% (med) = 28
75% = 36
95% = 58
99% = 86
99.9% = 135
99.99% = 191
100% (max) = 28239
----------------------------------
With patch:
Reqs/sec: 67295.2
User CPU per req: 37.7613us
Sys CPU per req: 171.141us
Ctx Sw. per req: 3.59101
Server reactor load histogram
Count: 11979
Mean: 36.1685
Percentiles:
0% (min) = 16
25% = 26
50% (med) = 28
75% = 32
95% = 80
99% = 87
99.9% = 91
99.99% = 93
100% (max) = 93
Server reactor latency histogram
Count: 13141249
Mean: 30.3945
Percentiles:
0% (min) = 0
25% = 18
50% (med) = 29
75% = 37
95% = 58
99% = 86
99.9% = 141
99.99% = 204
100% (max) = 26220
--
To view, visit http://gerrit.cloudera.org:8080/5905
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I7d4d5f14fb302196b1797c712b21cfce81f157c1
Gerrit-Change-Number: 5905
Gerrit-PatchSet: 7
Gerrit-Owner: Todd Lipcon <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Andrew Wong <[email protected]>
Gerrit-Reviewer: Bankim Bhavsar <[email protected]>
Gerrit-Reviewer: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Grant Henke <[email protected]>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Michael Ho <[email protected]>
Gerrit-Reviewer: Sailesh Mukil <[email protected]>
Gerrit-Reviewer: Tidy Bot (241)
Gerrit-Reviewer: Todd Lipcon <[email protected]>
Gerrit-Comment-Date: Tue, 26 May 2020 22:31:39 +0000
Gerrit-HasComments: No