Jean-Daniel Cryans has uploaded a new patch set (#2).

Change subject: WIP [java client] Implement RPC tracing
......................................................................

WIP [java client] Implement RPC tracing

First stab at getting traces in the Java client. This patch is using a pretty 
simple
method if just shoving container objects into a list, per RPC. The traces are 
lightweight
and don't try anything fancy. We also introduce the concept of "parent RPC", so 
that say
a Write RPC might spawn a GetTableLocations, and the latter will be added to 
the former
so that the call to the master adds traces to both RPCs.

This patch isn't adding a nice way to present the traces (like JSON) but here's 
a simple
toString example:

RpcTraceObject{rpcMethod='Write', timestampMs=1477079973546, 
action=PICKED_REPLICA},
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973547, 
action=SEND_TO_SERVER, server=3926a6a73e994152be1336beb434154e},
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973548, 
action=RECEIVE_FROM_SERVER, server=3926a6a73e994152be1336beb434154e, 
callStatus=Network error: [Peer 3926a6a73e994152be1336beb434154e] Connection 
reset on [id: 0xc83743df]}
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973548, 
action=SLEEP_THEN_RETRY, callStatus=Network error: [Peer 
3926a6a73e994152be1336beb434154e] Connection reset on [id: 0xc83743df]},
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973574, 
action=QUERY_MASTER},
RpcTraceObject{rpcMethod='GetTableLocations', timestampMs=1477079973574, 
action=PICKED_REPLICA},
RpcTraceObject{rpcMethod='GetTableLocations', timestampMs=1477079973574, 
action=SEND_TO_SERVER, server=c0d4588690d241c69821ee773eebd185},
RpcTraceObject{rpcMethod='GetTableLocations', timestampMs=1477079973576, 
action=RECEIVE_FROM_SERVER, server=c0d4588690d241c69821ee773eebd185, 
callStatus=OK},
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973579, 
action=PICKED_REPLICA},
RpcTraceObject{rpcMethod='Write', timestampMs=1477079973579, 
action=SEND_TO_SERVER, server=0353a6d97d6c49f9a727bc1ee6c3393e},

Change-Id: I69ef56acc071b9f80b34e38c1821df4096f54907
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Batch.java
M java/kudu-client/src/main/java/org/apache/kudu/client/CreateTableRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/DeleteTableRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetMasterRegistrationRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableLocationsRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetTableSchemaRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/IsAlterTableDoneRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/IsCreateTableDoneRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTablesRequest.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletServersRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ListTabletsRequest.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Operation.java
M java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java
A java/kudu-client/src/main/java/org/apache/kudu/client/RpcTraceObject.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
19 files changed, 229 insertions(+), 49 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/81/4781/2
-- 
To view, visit http://gerrit.cloudera.org:8080/4781
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I69ef56acc071b9f80b34e38c1821df4096f54907
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Jean-Daniel Cryans <[email protected]>
Gerrit-Reviewer: Todd Lipcon <[email protected]>

Reply via email to