Hello Michael Ho, Alexey Serbin, I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/12184 to review the following change. Change subject: rpc: add TCP socket statistics to /rpcz ...................................................................... rpc: add TCP socket statistics to /rpcz This adds the ability to fetch various bits of socket-level information for each RPC connection and publish the info into /rpcz. The information itself is fetched using getsockopt(TCP_INFO) as well as ioctls to check the current send and receive queue lengths. This data can help resolve whether a use case is network bound or bound by the application itself. For example, a high number of retransmitted packets can indicate that the network path to the receiver is overloaded. Eventually we may want to expose some of this information on a per-call basis. However, doing so is quite tricky, since 'send()' completes when the data has been placed into the outbound packet queue and doesn't wait until the data is ACKed. We'd need to defer checking for retransmissions until all of the data has been ACKed, which is at some indeterminate point in the future. The very newest kernels allow subscribing to such notifications (along with lots of interesting stats) but, given none of that is available in el7, it's probably not worth tackling at this point. Change-Id: I552c9dd80c0730ccd6bf7b13bb63761744a854c2 --- M src/kudu/rpc/connection.cc M src/kudu/rpc/connection.h M src/kudu/rpc/inbound_call.cc M src/kudu/rpc/inbound_call.h M src/kudu/rpc/messenger.cc M src/kudu/rpc/messenger.h M src/kudu/rpc/outbound_call.cc M src/kudu/rpc/outbound_call.h M src/kudu/rpc/reactor.cc M src/kudu/rpc/reactor.h M src/kudu/rpc/rpc-test.cc M src/kudu/rpc/rpc_introspection.proto M src/kudu/rpc/rpc_stub-test.cc M src/kudu/server/rpcz-path-handler.cc 14 files changed, 299 insertions(+), 37 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/84/12184/1 -- To view, visit http://gerrit.cloudera.org:8080/12184 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I552c9dd80c0730ccd6bf7b13bb63761744a854c2 Gerrit-Change-Number: 12184 Gerrit-PatchSet: 1 Gerrit-Owner: Todd Lipcon <t...@apache.org> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Michael Ho <k...@cloudera.com>