Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Implement RPC tracing, part 1
......................................................................


Patch Set 3:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/4781/3//COMMIT_MSG
Commit Message:

Line 30: RpcTraceObject{rpcMethod='Write', timestampMs=1477079973579, 
action=SEND_TO_SERVER, server=0353a6d97d6c49f9a727bc1ee6c3393e},
> Hmm, how is that possible? Did you ctrl-c the program or something? Or is i
It's just an incomplete trace that I grabbed from the log.


http://gerrit.cloudera.org:8080/#/c/4781/3/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
File java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java:

Line 679:             .action(RpcTraceObject.Action.PICKED_REPLICA)
> But we emit PICKED_REPLICA right before a master RPC too (e.g. GetTableLoca
Yeah I was thinking of adding an optional "payload" to the trace object and 
this is one instance where it could be useful. What are your thoughts on this?


Line 1001:         
rpc.setTimeoutMillis(parentRpc.deadlineTracker.getMillisBeforeDeadline());
> Alright, then please update the commit message to reflect these changes.
Done


http://gerrit.cloudera.org:8080/#/c/4781/3/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
File java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java:

Line 78:   private KuduRpc<?> parentRpc;
> I disagree pretty strongly with your position.
Wherever we use RPC, at least in the Java client, we could probably use 
"Operation" instead, although that term is already used to describe what 
sessions apply.

Overall I'm not sure we're actually in disagreement. Reading through the links 
you provided above, what I'm proposing with this patch fulfills the need you 
state. If you look at the trace I posted in the commit message (imagine it ends 
with RECEIVE_FROM_SERVER for the sake of this discussion), it seems all we're 
missing is a first "Flushing batch" trace (and as a payload we could add which 
tablet it is we're flushing the batch to).

Specifically to your answer to #4, the user would know the trace is associated 
to the Flush because it'd come with the exception that that flush is sending 
back (not implemented in this patch). So I didn't previously add the flush 
trace because IMO it's obvious the trace is coming from the flush that's 
error'ing on you.


-- 
To view, visit http://gerrit.cloudera.org:8080/4781
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I69ef56acc071b9f80b34e38c1821df4096f54907
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans <jdcry...@apache.org>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-HasComments: Yes

Reply via email to