Hello Mike Percy, Andrew Wong, I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/15701 to review the following change. Change subject: client/tserver: add support for connecting over unix domain sockets ...................................................................... client/tserver: add support for connecting over unix domain sockets This adds new experiental flags -rpc_listen_on_unix_domain_socket and -client_use_unix_domain_sockets. The former makes the RPC server bind to a unix socket and advertise this to the kudu master as part of the TS registration. The latter makes the client attempt to connect via a domain socket when it sees such a socket path advertised. I perf tested by scanning an int32 column from a table with 800M rows and using 'perf stat -a -r10' to look at total CPU consumption across the tserver and system. There's a fair amount of variability here due to inconsistent scheduling to cores/numa nodes, but seems like the unix socket on average is 10% faster or so in terms of total cycles. TCP sockets: Performance counter stats for 'system wide' (10 runs): 148,367.78 msec cpu-clock # 87.755 CPUs utilized ( +- 4.82% ) 101,755 context-switches # 0.686 K/sec ( +- 9.03% ) 866 cpu-migrations # 0.006 K/sec ( +- 6.42% ) 21,440 page-faults # 0.145 K/sec ( +- 19.32% ) 43,847,792,445 cycles # 0.296 GHz ( +- 3.77% ) (1.01%) 50,668,281,554 instructions # 1.16 insn per cycle ( +- 1.80% ) (1.11%) 7,676,337,185 branches # 51.739 M/sec ( +- 4.61% ) (0.85%) 69,634,718 branch-misses # 0.91% of all branches ( +- 4.72% ) (0.84%) 1.6907 +- 0.0811 seconds time elapsed ( +- 4.80% ) Unix sockets: Performance counter stats for 'system wide' (10 runs): 136,877.86 msec cpu-clock # 87.638 CPUs utilized ( +- 2.67% ) 77,376 context-switches # 0.565 K/sec ( +- 14.16% ) 846 cpu-migrations # 0.006 K/sec ( +- 6.58% ) 23,430 page-faults # 0.171 K/sec ( +- 39.77% ) 39,106,012,185 cycles # 0.286 GHz ( +- 4.26% ) (0.99%) 48,957,283,894 instructions # 1.25 insn per cycle ( +- 2.24% ) (1.08%) 7,635,756,771 branches # 55.785 M/sec ( +- 3.54% ) (0.83%) 69,900,882 branch-misses # 0.92% of all branches ( +- 5.14% ) (0.82%) 1.5619 +- 0.0415 seconds time elapsed ( +- 2.66% ) Change-Id: I0c390b4209ac7e08cd45239c49499fb0b96405d0 --- M src/kudu/client/meta_cache.cc M src/kudu/client/meta_cache.h M src/kudu/common/wire_protocol.cc M src/kudu/common/wire_protocol.proto M src/kudu/master/catalog_manager.cc M src/kudu/master/master.proto M src/kudu/server/rpc_server.cc M src/kudu/server/rpc_server.h M src/kudu/server/server_base.cc M src/kudu/tserver/heartbeater.cc M src/kudu/util/net/sockaddr.h 11 files changed, 99 insertions(+), 3 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/01/15701/1 -- To view, visit http://gerrit.cloudera.org:8080/15701 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0c390b4209ac7e08cd45239c49499fb0b96405d0 Gerrit-Change-Number: 15701 Gerrit-PatchSet: 1 Gerrit-Owner: Todd Lipcon <t...@apache.org> Gerrit-Reviewer: Andrew Wong <andrew.w...@cloudera.com> Gerrit-Reviewer: Mike Percy <mpe...@apache.org>