Sailesh Mukil has posted comments on this change. ( http://gerrit.cloudera.org:8080/9343 )
Change subject: KUDU-2301: (Part-1) Add instrumentation on a per connection level ...................................................................... Patch Set 3: (17 comments) Since there's a lot of comments regarding the KB/s calculation and the rolling window, I've removed that from this patch and will address all those comments in a Part-2 patch. This patch now only contains the outbound queue size metric. This is so that we can get this patch in quickly and have some discussion before finalizing on Part-2. http://gerrit.cloudera.org:8080/#/c/9343/3//COMMIT_MSG Commit Message: http://gerrit.cloudera.org:8080/#/c/9343/3//COMMIT_MSG@7 PS3, Line 7: metrics > Maybe find a different word than "metrics" which already means a particular Done http://gerrit.cloudera.org:8080/#/c/9343/3//COMMIT_MSG@7 PS3, Line 7: KUDU-2031 > This one looks wrong. Done http://gerrit.cloudera.org:8080/#/c/9343/3//COMMIT_MSG@9 PS3, Line 9: rolling : average of transfer speeds > Can you point out where this would be helpful (and where it won't)? Naively Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.h File src/kudu/rpc/connection.h: http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.h@241 PS3, Line 241: double rough_kbps() const { > why not to move the implementation into the connection.cc file? Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.h@245 PS3, Line 245: for (int i = 0; i < rolling_window_size; ++i) { : rough_kbps += rolling_kbps_[i]; : } > syntactic sugar nit: I think it might be just Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.h@398 PS3, Line 398: kbps > Is this bit per second or byte per second? Please don't use abbreviations Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.h@398 PS3, Line 398: kbps > Can you talk a bit more about the use case for this? Do you think something Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc File src/kudu/rpc/connection.cc: http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc@82 PS3, Line 82: rolling_kbps_.set_capacity(1000); > move this to initialization list rolling_kbps_(1000) ? Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc@82 PS3, Line 82: 1000 > Does it make sense to control the size of the rolling window by a gflag? T Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc@662 PS3, Line 662: // Do the transfer and time it. : Stopwatch send_timer; : send_timer.start(); : Status status = transfer->SendBuffer(*socket_); : send_timer.stop(); > agreed grabbing the time at the start of each transfer and then the time wh Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc@662 PS3, Line 662: // Do the transfer and time it. : Stopwatch send_timer; : send_timer.start(); : Status status = transfer->SendBuffer(*socket_); : send_timer.stop(); > Yeah I think there's a danger that this is just timing how long it takes to Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/connection.cc@662 PS3, Line 662: // Do the transfer and time it. : Stopwatch send_timer; : send_timer.start(); : Status status = transfer->SendBuffer(*socket_); : send_timer.stop(); > Not sure how accurate this will be fore inferring throughput given this is Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/rpc-test.cc File src/kudu/rpc/rpc-test.cc: http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/rpc-test.cc@471 PS3, Line 471: CHECK_OK > why not just ASSERT_OK? Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/rpc-test.cc@472 PS3, Line 472: CHECK_OK > ditto Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/rpc-test.cc@502 PS3, Line 502: p.AsyncRequest(GenericCalculatorService::kAddMethodName, add_req, &add_resp, : controllers.back().get(), boost::bind(&CountDownLatch::CountDown, boost::ref(latch))); > we tend to use std::bind instead of boost::bind in newer tests, if possible I'd have to change the signature of ResponseCallback in that case. Is that acceptable? https://github.com/apache/kudu/blob/0ce5ba594412de4365625485ea7b3c1ee21bf28d/src/kudu/rpc/response_callback.h#L26 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/transfer.cc File src/kudu/rpc/transfer.cc: http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/transfer.cc@245 PS3, Line 245: if (TransferFinished()) return 0; > nit: Not sure if Kudu coding standard allows this kind of one liner. Will address in part-2 http://gerrit.cloudera.org:8080/#/c/9343/3/src/kudu/rpc/transfer.cc@246 PS3, Line 246: int32_t rem_in_cur_slice = payload_slices_[cur_slice_idx_].size() - cur_offset_in_slice_; : int32_t total_remaining = rem_in_cur_slice; > Why not just write Will address in part-2 -- To view, visit http://gerrit.cloudera.org:8080/9343 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iae1a5fe0066adf644a9cac41ad6696e1bbf00465 Gerrit-Change-Number: 9343 Gerrit-PatchSet: 3 Gerrit-Owner: Sailesh Mukil <sail...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Dan Burkert <d...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Lars Volker <l...@cloudera.com> Gerrit-Reviewer: Michael Ho <k...@cloudera.com> Gerrit-Reviewer: Sailesh Mukil <sail...@cloudera.com> Gerrit-Reviewer: Todd Lipcon <t...@apache.org> Gerrit-Comment-Date: Tue, 20 Feb 2018 01:39:56 +0000 Gerrit-HasComments: Yes