[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-26 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 2:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/4781/2/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:

PS2, Line 975: relatedRpc
> nit: does it makes sense to rename the parameter as well: relatedRpc --> pa
Yup, already did that for the next revision.


http://gerrit.cloudera.org:8080/#/c/4781/2/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:

PS2, Line 238: this.parentRpc = parentRpc
> Nit: does it make sense to protect against setting parentRpc to itself?
Lemme add an assert.


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

PS2, Line 568: return an exception if we couldn't dispatch the error, or null
> nit: probably, this out of the scope, but just in case: do we use @return t
This is just Javadoc standards, here I use @return because it's what this 
method returns. You'd use @throws if it was thrown.


-- 
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: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1715. Add a way to set ReplicaSelection to the java client

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new patch set (#3).

Change subject: KUDU-1715. Add a way to set ReplicaSelection to the java client
..

KUDU-1715. Add a way to set ReplicaSelection to the java client

This patch adds a ReplicaSelection option for all the RPCs, which always 
defaults
to LEADER_ONLY, as well as a way to change it for scanners.

Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
---
M 
java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ReplicaSelection.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
9 files changed, 115 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/37/4837/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4837
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 2:

This is just a rebase on top of my other Java patches that I'm now depending on 
in this patch.

-- 
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: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] [java client] Refactor all server info into a single class, add locality

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new patch set (#3).

Change subject: [java client] Refactor all server info into a single class, add 
locality
..

[java client] Refactor all server info into a single class, add locality

Having this helps propagate information around the client. RemoteTablet can now
answer requests for local servers.

This patch also tries to simplify how RemoteTablets are created, as it's getting
a bit messy and redundant with the passing of ServerInfos.

Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
7 files changed, 177 insertions(+), 87 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/36/4836/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4836
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
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 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] KUDU-1715. Add a way to set ReplicaSelection to the java client

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: KUDU-1715. Add a way to set ReplicaSelection to the java client
..


Patch Set 2:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/4837/2/java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java
File 
java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.java:

PS2, Line 319: us
> Nit: use
Done


http://gerrit.cloudera.org:8080/#/c/4837/2/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:

PS2, Line 265: ReplicaSelection getReplicaSelection() {
 : return ReplicaSelection.LEADER_ONLY;
 :   }
> why is this hard-coded to "leader only"?
We basically make it impossible to configure, unless the actual RPCs (like 
scanners) allow it.


http://gerrit.cloudera.org:8080/#/c/4837/2/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

PS2, Line 170: us
> nit: use
Done


PS2, Line 171: a UUID for the server that matches the selection, can be null
> how can this be null? I think we should put some thought into whether we tr
It is a hint, it works the way you expect it. So it can be null if we don't 
even know where the leader might be, for example.


Line 180: return null;
> Uh, shouldn't this just throw something?
Can throw an unchecked exception yeah.


http://gerrit.cloudera.org:8080/#/c/4837/2/java/kudu-client/src/main/java/org/apache/kudu/client/ReplicaSelection.java
File 
java/kudu-client/src/main/java/org/apache/kudu/client/ReplicaSelection.java:

PS2, Line 33: random one
> is this actually true? are the replicas really selected at random? or does 
This is lifted straight out of client.h, and as far as the user can tell it 
will be random (non-deterministic would be a better word given the 
implementation in the Java client).


http://gerrit.cloudera.org:8080/#/c/4837/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java:

Line 180:   public void testLocalScanner() throws Exception {
> I'm assuming that you omitted the "leader only" case because it's the defau
Sure thing.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: Yes


[kudu-CR] [java client] Refactor all server info into a single class, add locality

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Refactor all server info into a single class, add 
locality
..


Patch Set 2:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/4836/2/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

PS2, Line 38: once it is init()'d
> please update
Done


PS2, Line 151: or null if this
 :* cache doesn't know of any servers
> Is this actually possible? Wouldn't we reject the creation of a RemoteTable
Super stale cache and all the replicas moved and we, for some reason, don't 
query the master each time we find a tablet has moved. Almost impossible.


Line 163:   return lastUuid;
> http://dilbert.com/strip/2001-10-25
Hey that's how this patch failed the first time, values() returned things in a 
different order on my machine and on Linux.


http://gerrit.cloudera.org:8080/#/c/4836/2/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java:

Line 26: @InterfaceStability.Evolving
> Is this needed for Private interfaces?
Not really, I'll remove.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: Yes


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 1:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/4781/1/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 233:* only one related RPC.
> worth documenting that you should be careful not to cause any cycle in "rel
Good idea, I wasn't super happy with "related" but when we talked about a while 
ago that's the name we came up with. "parent" in this implementation makes more 
sense.


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

PS1, Line 33: private final TabletClient server
> Is it possible to store just the identifier here?  My concern is that a tra
I think we'll want to print more information, but it just so happens that I 
have this other patch https://gerrit.cloudera.org/#/c/4836/ that adds a new 
class that we could use here instead :)


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

PS1, Line 225:  sendRpc(rpc);
> Is it necessary to add a trace here as well?
No, you'd get double-logging since you'd add it here then again on line 162.


-- 
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: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1715. Add a way to set ReplicaSelection to the java client

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: KUDU-1715. Add a way to set ReplicaSelection to the java client
..


Patch Set 2:

> Removed the following votes:
 > 
 > * Verified-1 by Kudu Jenkins (120)

All Java tests are passing, dist test is not working.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR] [java client] Refactor all server info into a single class, add locality

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Refactor all server info into a single class, add 
locality
..


Patch Set 2:

> Removed the following votes:
 > 
 > * Verified-1 by Kudu Jenkins (120)

All Java tests are passing, dist test is not working.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR] Add krb5 dependency to Java README

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Add krb5 dependency to Java README
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5e4ffe0bee242ddec3a9effd4c3404348f1b889c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Refactor all server info into a single class, add locality

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4836

to look at the new patch set (#2).

Change subject: [java client] Refactor all server info into a single class, add 
locality
..

[java client] Refactor all server info into a single class, add locality

Having this helps propagate information around the client. RemoteTablet can now
answer requests for local servers.

This patch also tries to simplify how RemoteTablets are created, as it's getting
a bit messy and redundant with the passing of ServerInfos.

Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
7 files changed, 178 insertions(+), 86 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1715. Add a way to set ReplicaSelection to the java client

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4837

Change subject: KUDU-1715. Add a way to set ReplicaSelection to the java client
..

KUDU-1715. Add a way to set ReplicaSelection to the java client

This patch adds a ReplicaSelection option for all the RPCs, which always 
defaults
to LEADER_ONLY, as well as a way to change it for scanners.

Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
---
M 
java/kudu-client/src/main/java/org/apache/kudu/client/AbstractKuduScannerBuilder.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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ReplicaSelection.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
9 files changed, 109 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/37/4837/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4837
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3bb08c9c78271a0065c8aa8fb9b0f3301f84e828
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Refactor all server info into a single class, add locality

2016-10-25 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4836

Change subject: [java client] Refactor all server info into a single class, add 
locality
..

[java client] Refactor all server info into a single class, add locality

Having this helps propagate information around the client. RemoteTablet can now
answer requests for local servers.

This patch also tries to simplify how RemoteTablets are created, as it's getting
a bit messy and redundant with the passing of ServerInfos.

Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
7 files changed, 178 insertions(+), 86 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/36/4836/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4836
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I33984a437d8c8d07d5db4d16f8da723b3e904189
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Identify client-local TabletClients

2016-10-24 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Identify client-local TabletClients
..


[java client] Identify client-local TabletClients

This patch adds building blocks to enable selecting the closest replica. Another
patch will be required to finish the plumbing job.

Inspired by Hadoop: 
https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java#L698

Change-Id: Ia1bfcbc6b6aea7cb9610e8ae934bf08ab0774ee3
Reviewed-on: http://gerrit.cloudera.org:8080/4786
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
6 files changed, 97 insertions(+), 43 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia1bfcbc6b6aea7cb9610e8ae934bf08ab0774ee3
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] MiniKdc for Java

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: MiniKdc for Java
..


Patch Set 1:

(7 comments)

http://gerrit.cloudera.org:8080/#/c/4788/1/java/kudu-client/src/test/java/org/apache/kudu/client/MiniKdc.java
File java/kudu-client/src/test/java/org/apache/kudu/client/MiniKdc.java:

Line 1: package org.apache.kudu.client;
Missing license.


PS1, Line 28: An
nit: A


Line 30:  */
Maybe explain how this class works? Like it uses external processes for about 
everything, how it does it, etc.


PS1, Line 132: potentially race
nit: race-prone?


PS1, Line 178: C
nit: c


Line 322:   private static String getBinaryPath(String executable, List 
searchPaths) throws IOException {
nit: long line


http://gerrit.cloudera.org:8080/#/c/4788/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKdc.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKdc.java:

Line 1: package org.apache.kudu.client;
Missing license.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie24eaa94fae14ca91fb4fdd2deae1f9aec58438b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] [java client] Identify client-local TabletClients

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4786

Change subject: [java client] Identify client-local TabletClients
..

[java client] Identify client-local TabletClients

This patch adds building blocks to enable selecting the closest replica. Another
patch will be required to finish the plumbing job.

Inspired by Hadoop: 
https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java#L698

Change-Id: Ia1bfcbc6b6aea7cb9610e8ae934bf08ab0774ee3
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/main/java/org/apache/kudu/util/NetUtil.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
6 files changed, 97 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/86/4786/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4786
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia1bfcbc6b6aea7cb9610e8ae934bf08ab0774ee3
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 1:

> also the patch should have at least some kind of test I think

I didn't want to get too deep, this is a WIP :)

-- 
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: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 1:

> haven't looked at the code yet, but a couple quick thoughts:
 > - let's make sure the trace buffer is bounded, so that if we have
 > some sort of tight loop retry bug we don't just make the user app
 > OOME

Will do, right now it's unlimited.

 > - probably worth doing a sanity check of perf using YCSB or
 > something to make sure the tracing isn't costing too much (I think
 > a few percent is fine, but if it's a lot we should look at
 > optimizations before committing)

Planning on doing that!

-- 
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: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

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


Patch Set 1:

> Removed the following votes:
 > 
 > * Verified-1 by Kudu Jenkins (120)

Unrelated failure.

-- 
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: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] WIP [java client] Implement RPC tracing

2016-10-21 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4781

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 "related 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, 228 insertions(+), 49 deletions(-)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I69ef56acc071b9f80b34e38c1821df4096f54907
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR](gh-pages) Add 10/20 weekly update

2016-10-20 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Add 10/20 weekly update
..


Patch Set 1: Code-Review+2

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4775/1/_posts/2016-10-20-weekly-update.md
File _posts/2016-10-20-weekly-update.md:

Line 42: 
I resent the lack of link to rack awareness.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I98bbe5bd3d16a90a99dacd793e0bf2e2fea1b50d
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: Yes


[kudu-CR] [java client] Decouple TabletClient from RemoteTablet

2016-10-20 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4757

to look at the new patch set (#2).

Change subject: [java client] Decouple TabletClient from RemoteTablet
..

[java client] Decouple TabletClient from RemoteTablet

RemoteTablet was caching TabletClients which was making it hard to test it
in isolation, since it required having real connections to servers.

This patch makes it so that only UUIDs are passed around, the client now
queries a RemoteTablet to know which UUID to get from ConnectionCache. A
lot of new unit tests were written that weren't possible before without
a lot of mocking.

Doing this brings subtle behavior changes. ConnectionCache is now the only
component responsible for handling TabletClients. The whole concept of 
"reconnection"
could be brought into ConnectionCache, simplifying sendRpcToTablet. It also
means that using an object monitor likely creates a bottleneck in 
ConnectionCache,
so a RWL was deployed instead.

Since I was in that code, I also changed the tablet ID from Slice to String in
RemoteTablet. It was an old mistake I made years ago, we didn't need the Slice.

This still needs to be benchmarked against the 1.0.x client jar.

Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
---
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/ConnectionCache.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/Operation.java
A java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java
A java/kudu-client/src/main/java/org/apache/kudu/client/PingResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Statistics.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestUtils.java
17 files changed, 628 insertions(+), 525 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Decouple TabletClient from RemoteTablet

2016-10-20 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Decouple TabletClient from RemoteTablet
..


Patch Set 1:

(8 comments)

http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java:

PS1, Line 49: } 
> {@link TabletClient}s are currently...
Done


Line 95:   void connectTS(Master.TSInfoPB tsInfoPB) throws UnknownHostException 
{
> private or @VisibleForTesting (here and elsewhere)
This is used by AsyncKuduClient.


PS1, Line 99: {uuid}
> This doesn't work correctly, the braces have to be empty.
Done


Line 167: readLock.lock();
> call getClient here instead of dealing with locks.
Done


Line 187: ArrayList> deferreds = new ArrayList<>();
> I think it's still an improvement to move the ArrayList creation inside the
Ok I'll just move everything in then.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

Line 70: synchronized (tabletServers) {
> I think it's fine in the ctor.  There's some kind of happens before relatio
Done


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
File java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java:

Line 623:* This method is not synchronized.  You need to synchronize on this
> Should this be updated?
Oh right, thanks!


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestUtils.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestUtils.java:

Line 298:   static Common.PartitionPB.Builder getFakePartitionPB() {
> This is a valid partition.  Not sure if that matters or not.
I won't say bogus then, but it is fake as it's not represented on a cluster.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Decouple TabletClient from RemoteTablet

2016-10-19 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Decouple TabletClient from RemoteTablet
..


Patch Set 1:

Additionally, I'm just done comparing runs of YCSB load with the 1.0.1 client 
jar and master patched with this change. The perf was within the same ballpark 
(lots of variance), always a bit faster but I wouldn't say it's because of this 
change. I also inspected jstacks which all looked ok.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Decouple TabletClient from RemoteTablet

2016-10-19 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Decouple TabletClient from RemoteTablet
..


Patch Set 1:

(14 comments)

http://gerrit.cloudera.org:8080/#/c/4757/1/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:

PS1, Line 1287: if (!lookupExceptions.isEmpty() &&
  : lookupExceptions.size() == 
tabletPb.getReplicasCount()) {
  :   Status statusIOE = Status.IOError("Couldn't find any 
valid locations, exceptions: " +
  :   lookupExceptions);
  :   throw new NonRecoverableException(statusIOE);
  : }
> Shouldn't this be outside the inner loop?
I guess it'd be cleaner, but as far as I can tell it does the same thing.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java:

PS1, Line 77:   private final Lock readLock = lock.readLock();
:   private final Lock writeLock = lock.readLock();
> This is just for shorthand, right?
Yup!


Line 127:   uuid2client.put(uuid, client);
> So if we reconnect to a server we thought was "dead", we'll evict it from u
Yes, should I add a comment?


Line 187: ArrayList> deferreds = new ArrayList<>();
> Nit: could preallocate this list with uuid2client.size().
That'd require locking twice... didn't think it was a big deal since this 
happens only when shutting down the client.


PS1, Line 200: Modifying the list returned by this method won't affect this 
cache
> Maybe return a Guava ImmutableList (either directly, or hidden behind a Lis
Done


Line 261:   private final class TabletClientPipeline extends 
DefaultChannelPipeline {
> What was the effect of removing all the code here?
We used to have to lookup the hostnames, but it wasn't necessary since a while 
ago I added them in TabletClient.

Then it doesn't really matter if we remove all the TabletClients or not, as 
long as we shut them down, which is why I added a unit test that verifies that 
we do it.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java
File java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java:

Line 27:  *
> ?
Fill it with your imagination.

I added something at some point, then ctrl-z'd a bunch, forgot I had to add 
that back.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

Line 56:   private final ArrayList tabletServers = new ArrayList<>();
> Would it be simpler to make this a Set? Certainly add/remove will get simpl
Indeed, that's even better.


Line 70: synchronized (tabletServers) {
> Shouldn't be necessary in the constructor; no other thread could have a ref
Won't GuardedBy complain?


PS1, Line 71:   tabletServers.clear();
:   leaderIndex = NO_LEADER_INDEX;
> Also unnecessary; these are their initial values.
Forgot to remove them, thanks.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java:

Line 109: allDead = true;
> I'm confused by this; why does the fact that there was at least one tablet 
err allDead should be next to break below. We're failing if we don't have 
servers because we're expecting to have connections to disconnect.


http://gerrit.cloudera.org:8080/#/c/4757/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java:

Line 27: public class TestConnectionCache {
> Why not use BaseKuduTest or whatever for this test?
To be able to use the mini cluster directly.


PS1, Line 54: waitForConnectionToDie
> Somewhat odd that join() on shutdown() doesn't automatically take care of t
Yeah I spent some time trying to figure that one out... something something 
shenanigans.


PS1, Line 77: 5000
> Not DEFAULT_SLEEP?
Right without BaseKuduTest that's not reachable.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Decouple TabletClient from RemoteTablet

2016-10-19 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4757

Change subject: [java client] Decouple TabletClient from RemoteTablet
..

[java client] Decouple TabletClient from RemoteTablet

RemoteTablet was caching TabletClients which was making it hard to test it
in isolation, since it required having real connections to servers.

This patch makes it so that only UUIDs are passed around, the client now
queries a RemoteTablet to know which UUID to get from ConnectionCache. A
lot of new unit tests were written that weren't possible before without
a lot of mocking.

Doing this brings subtle behavior changes. ConnectionCache is now the only
component responsible for handling TabletClients. The whole concept of 
"reconnection"
could be brought into ConnectionCache, simplifying sendRpcToTablet. It also
means that using an object monitor likely creates a bottleneck in 
ConnectionCache,
so a RWL was deployed instead.

Since I was in that code, I also changed the tablet ID from Slice to String in
RemoteTablet. It was an old mistake I made years ago, we didn't need the Slice.

This still needs to be benchmarked against the 1.0.x client jar.

Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
---
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/ConnectionCache.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/Operation.java
A java/kudu-client/src/main/java/org/apache/kudu/client/PingRequest.java
A java/kudu-client/src/main/java/org/apache/kudu/client/PingResponse.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/Statistics.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
A java/kudu-client/src/test/java/org/apache/kudu/client/TestRemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestUtils.java
17 files changed, 612 insertions(+), 469 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/57/4757/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4757
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If3ad2190c7e2c7f51cb9ffe6ed3348b62488e675
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-19 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..


[java client] Extract RemoteTablet from AsyncKuduClient

RemoteTablet is responsible for handling the Java client's view of where 
replicas
are for its tablet, and who the leader is. Extracting this bit of functionality 
is
important if we want to be able to unit test it without bringing up a whole 
client
and possibly a cluster.

This patch makes a minor attempt at simplifying the interfaces, with more work 
to
come. Likewise for unit tests.

Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Reviewed-on: http://gerrit.cloudera.org:8080/4719
Tested-by: Kudu Jenkins
Reviewed-by: Dan Burkert 
---
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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
8 files changed, 345 insertions(+), 318 deletions(-)

Approvals:
  Dan Burkert: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [client.h] CountBufferedOperations marked as deprecated

2016-10-17 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [client.h] CountBufferedOperations marked as deprecated
..


[client.h] CountBufferedOperations marked as deprecated

KuduSession::CountBufferedOperations() is used only by tests now.
Also, the only flush mode to use this method consistently is
MANUAL_FLUSH mode, but in that mode it's easy to count for number of
buffered operations by a different means -- that's the count of Apply()
calls since last KuduSession::Flush() call (or invocation of
the callback passed into KuduSession::FlushAsync() method).

Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Reviewed-on: http://gerrit.cloudera.org:8080/4723
Tested-by: Kudu Jenkins
Reviewed-by: Jean-Daniel Cryans 
---
M src/kudu/client/client.h
1 file changed, 17 insertions(+), 5 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Todd Lipcon 


[kudu-CR] [client.h] CountBufferedOperations marked as deprecated

2016-10-17 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [client.h] CountBufferedOperations marked as deprecated
..


Patch Set 3: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] ITBLL: use a faster PRNG

2016-10-15 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: ITBLL: use a faster PRNG
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I2f51664af25b9fb4309dd78556e954bf483d22c0
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-14 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..


Patch Set 3:

(2 comments)

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

Line 55:  * Unlike the C++ client, we don't short-circuit the call to the 
master if it isn't available.
As we discussed, I'm also removing this.


Line 76:   private int leaderIndex = NO_LEADER_INDEX;
> Add @GuardedBy("tabletServers") to this.
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-14 Thread Jean-Daniel Cryans (Code Review)
Hello Adar Dembo, Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4719

to look at the new patch set (#4).

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..

[java client] Extract RemoteTablet from AsyncKuduClient

RemoteTablet is responsible for handling the Java client's view of where 
replicas
are for its tablet, and who the leader is. Extracting this bit of functionality 
is
important if we want to be able to unit test it without bringing up a whole 
client
and possibly a cluster.

This patch makes a minor attempt at simplifying the interfaces, with more work 
to
come. Likewise for unit tests.

Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
---
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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
8 files changed, 345 insertions(+), 318 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/4719/4
-- 
To view, visit http://gerrit.cloudera.org:8080/4719
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Extract ip2client out of AsyncKuduClient

2016-10-14 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Extract ip2client out of AsyncKuduClient
..


[java client] Extract ip2client out of AsyncKuduClient

As part of making the Java client more modular and easier to test, this patch 
is moving
almost all of the connections management into a separate class. The change was 
rather
painless.

Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Reviewed-on: http://gerrit.cloudera.org:8080/4717
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
3 files changed, 417 insertions(+), 355 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [client.h] updated comment for CountBufferedOperations

2016-10-14 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [client.h] updated comment for CountBufferedOperations
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4723/1/src/kudu/client/client.h
File src/kudu/client/client.h:

PS1, Line 1493: This is different than HasPendingOperations() above
> Yep -- so far I can see, this method is used only in tests.  However, MJ fo
Well that MJ was interested is... interesting since Impala will be using 
AUTO_FLUSH_BACKGROUND, which this method is _not_ useful for, right?

To handle the change, I'd duplicate and mark this one deprecated.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: Yes


[kudu-CR] [client.h] updated comment for CountBufferedOperations

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [client.h] updated comment for CountBufferedOperations
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4723/1/src/kudu/client/client.h
File src/kudu/client/client.h:

PS1, Line 1488:  
nit: extra blank space.


PS1, Line 1493: This is different than HasPendingOperations() above
It makes you wonder if we want this method at all. On the Java side there's no 
equivalent. Maybe a better name would be "CountOperationsToFlush"?


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

Gerrit-MessageType: comment
Gerrit-Change-Id: If6293c0a3058f7056d24e7cee0120d1852ded548
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Matthew Jacobs 
Gerrit-HasComments: Yes


[kudu-CR] [java client] Extract ip2client out of AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4717

to look at the new patch set (#3).

Change subject: [java client] Extract ip2client out of AsyncKuduClient
..

[java client] Extract ip2client out of AsyncKuduClient

As part of making the Java client more modular and easier to test, this patch 
is moving
almost all of the connections management into a separate class. The change was 
rather
painless.

Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
3 files changed, 417 insertions(+), 355 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/17/4717/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4717
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Extract ip2client out of AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4717

to look at the new patch set (#2).

Change subject: [java client] Extract ip2client out of AsyncKuduClient
..

[java client] Extract ip2client out of AsyncKuduClient

As part of making the Java client more modular and easier to test, this patch 
is moving
almost all of the connections management into a separate class. The change was 
rather
painless.

Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
3 files changed, 417 insertions(+), 355 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4719

to look at the new patch set (#2).

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..

[java client] Extract RemoteTablet from AsyncKuduClient

RemoteTablet is responsible for handling the Java client's view of where 
replicas
are for its tablet, and who the leader is. Extracting this bit of functionality 
is
important if we want to be able to unit test it without bringing up a whole 
client
and possibly a cluster.

This patch makes a minor attempt at simplifying the interfaces, with more work 
to
come. Likewise for unit tests.

Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
---
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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
8 files changed, 348 insertions(+), 318 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..


Patch Set 1:

(4 comments)

> (4 comments)
 > 
 > As with the other patch, has anything actually changed (besides
 > method visibility) in the moved code?

As you saw I moved the getting of a TabletClient directly into RemoteTablet, 
and that's about it.

http://gerrit.cloudera.org:8080/#/c/4719/1/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:

PS1, Line 589: tablet == null
> I presume that in the transition from clientFor() to tablet.getLeaderConnec
Yes.

So the tablet can be set to null to "invalidate" the scan, but looking through 
it I don't think it's possible to get here with a null tablet? I'll put an 
assert.


PS1, Line 689: getConnectionToLeader()
> This method doesn't exist.
Oops that got lost in the refactorings.


Line 1304:   rt.init(tabletPb);
> Can we do this as part of createTabletFromPb()? In fact, maybe createTablet
Can't do it in the ctor, it throws an exception.
I like the static RemoteTablet idea.


http://gerrit.cloudera.org:8080/#/c/4719/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

Line 74:   private final ConnectionCache connectionCache;
> Based on our discussion, sounds like this will go away because RemoteTablet
Right, this could go away at some point.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Extract ip2client out of AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Extract ip2client out of AsyncKuduClient
..


Patch Set 1:

(3 comments)

> (3 comments)
 > 
 > I looked at the ConnectionCache API and members, but only skimmed
 > the method implementations because I assumed that was just code
 > motion. Was there any implementation change worth looking at?

No.

http://gerrit.cloudera.org:8080/#/c/4717/1/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
File java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java:

Line 91: this.kuduClient = client;
> Isn't this a reference cycle between the AsyncKuduClient and ConnectionCach
Java is more advanced than you think ;)

Also the client itself is needed in TabletClientPipeline.


PS1, Line 167: AsyncKuduClient
> Odd to reference this class here, no?
Done


Line 279:   static String getIP(final String host) {
> Since this is static, I think it could remain in AsyncKuduClient, to keep t
It's used in both classes, so I'd rather keep the connection-related stuff in 
this class. AsyncKuduClient is already big enough.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..


[java client] Cleanup AsyncKuduClient's unused caches

Originally, asynchbase came with a few caches such as server-connection->region 
and
region->server-connection. Via dozens of patches, we've reduced their 
usefulness to 0.
This patch simple finishes the job and removes them.

FWIW client2tablets was always a source of pain, and the caching logic is now a 
lot
easier to manage, and potentially refactor!

Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Reviewed-on: http://gerrit.cloudera.org:8080/4705
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
2 files changed, 22 insertions(+), 80 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Extract RemoteTablet from AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4719

Change subject: [java client] Extract RemoteTablet from AsyncKuduClient
..

[java client] Extract RemoteTablet from AsyncKuduClient

RemoteTablet is responsible for handling the Java client's view of where 
replicas
are for its tablet, and who the leader is. Extracting this bit of functionality 
is
important if we want to be able to unit test it without bringing up a whole 
client
and possibly a cluster.

This patch makes a minor attempt at simplifying the interfaces, with more work 
to
come. Likewise for unit tests.

Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
---
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/KuduRpc.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
A java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
M java/kudu-client/src/main/java/org/apache/kudu/client/TabletClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
8 files changed, 337 insertions(+), 309 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/4719/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4719
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3d06a573e4307c76a7aebab05cd5238fb0d9a2c6
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..


Patch Set 4:

> So no regression test for that race?

Sorry, where in this gerrit did you mention a regression test? :P

TBH right now it'd be a pain. Right now I'm doing even more refactoring, I 
think testing will soon become a lot easier.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Extract ip2client out of AsyncKuduClient

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4717

Change subject: [java client] Extract ip2client out of AsyncKuduClient
..

[java client] Extract ip2client out of AsyncKuduClient

As part of making the Java client more modular and easier to test, this patch 
is moving
almost all of the connections management into a separate class. The change was 
rather
painless.

Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
3 files changed, 417 insertions(+), 355 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/17/4717/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4717
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48b0f3f262abd5ee26869202f661b3c25158f39c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..


Patch Set 3:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/4705/2/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:

PS2, Line 144:   /**
 :* This map contains data cached from calls to the master's
 :* GetTableLocations RPC. This map is keyed by table ID.
 :*/
 :   private final ConcurrentHashMap 
tableLocations =
 :  
> Nit: just combine the two paragraphs, like "This map contains data cached f
Done


Line 178: 
> Could you add a "GuardedBy" annotation to this?
Done


Line 1360:   Slice tabletId = rt.tabletId;
> This comment is probably unnecessary now.
Done


Line 2008:   String ip = getIP(host);
> If this has to be called with tabletServers synchronized, then it should be
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1682. Lock contention on table locations cache in Java client

2016-10-13 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: KUDU-1682. Lock contention on table locations cache in Java 
client
..


KUDU-1682. Lock contention on table locations cache in Java client

Change-Id: I0f6ba8f4fced6f043f7132fd11078044b004ea21
Reviewed-on: http://gerrit.cloudera.org:8080/4706
Reviewed-by: Adar Dembo 
Reviewed-by: Dan Burkert 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
1 file changed, 23 insertions(+), 6 deletions(-)

Approvals:
  Dan Burkert: Looks good to me, but someone else must approve
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I0f6ba8f4fced6f043f7132fd11078044b004ea21
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-12 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4705

to look at the new patch set (#3).

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..

[java client] Cleanup AsyncKuduClient's unused caches

Originally, asynchbase came with a few caches such as server-connection->region 
and
region->server-connection. Via dozens of patches, we've reduced their 
usefulness to 0.
This patch simple finishes the job and removes them.

FWIW client2tablets was always a source of pain, and the caching logic is now a 
lot
easier to manage, and potentially refactor!

Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
2 files changed, 22 insertions(+), 80 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/4705/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4705
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1682. Lock contention on table locations cache in Java client

2016-10-12 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4706

Change subject: KUDU-1682. Lock contention on table locations cache in Java 
client
..

KUDU-1682. Lock contention on table locations cache in Java client

Change-Id: I0f6ba8f4fced6f043f7132fd11078044b004ea21
---
M java/kudu-client/src/main/java/org/apache/kudu/client/TableLocationsCache.java
1 file changed, 23 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/06/4706/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4706
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0f6ba8f4fced6f043f7132fd11078044b004ea21
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-12 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new patch set (#2).

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..

[java client] Cleanup AsyncKuduClient's unused caches

Originally, asynchbase came with a few caches such as server-connection->region 
and
region->server-connection. Via dozens of patches, we've reduced their 
usefulness to 0.
This patch simple finishes the job and removes them.

FWIW client2tablets was always a source of pain, and the caching logic is now a 
lot
easier to manage, and potentially refactor!

Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
2 files changed, 18 insertions(+), 74 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Cleanup AsyncKuduClient's unused caches

2016-10-12 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4705

Change subject: [java client] Cleanup AsyncKuduClient's unused caches
..

[java client] Cleanup AsyncKuduClient's unused caches

Originally, asynchbase came with a few caches such as server-connection->region 
and
region->server-connection. Via dozens of patches, we've reduced their 
usefulness to 0.
This patch simple finishes the job and removes them.

FWIW client2tablets was always a source of pain, and the caching logic is now a 
lot
easier to manage, and potentially refactor!

Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
2 files changed, 10 insertions(+), 61 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/05/4705/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4705
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I62802c34c618c83a4ff69d79825387cbe4ab51a8
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] add 1.0.1 release notes to prior release notes.adoc

2016-10-12 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: add 1.0.1 release notes to prior_release_notes.adoc
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ieff57fd7120e98e2e1a7c0812e6c04eca704c6ad
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] [java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] AsyncKuduClient#delayedSendRpcToTablet should 
return a Deferred
..


Patch Set 1:

(3 comments)

http://gerrit.cloudera.org:8080/#/c/4654/1//COMMIT_MSG
Commit Message:

PS1, Line 12: paths that simply handle background retries (don't
: need a Deferred since we rely on KuduRpc#callback).
> Can we eliminate these? That is, can we rewrite that code to leverage the u
Mmmm possibly yes.


http://gerrit.cloudera.org:8080/#/c/4654/1/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:

PS1, Line 1060: request.errback(e);
  : LOG.debug("Cannot continue with this RPC: {} because of: 
{}", request, message, e);
  : return Deferred.fromError(e);
> What's the point of both returning a Deferred and invoking request.errback(
Right, related to your comment on the commit message, if we just relied on the 
RPC's own Deferred, we wouldn't need to return one here and that'd be it.


Line 1261:   private  Deferred delayedSendRpcToTablet(final KuduRpc 
rpc, KuduException ex) {
> Even though it's private, you should document it to explain the semantic me
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: Yes


[kudu-CR] [java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new patch set (#2).

Change subject: [java client] AsyncKuduClient#delayedSendRpcToTablet should 
return a Deferred
..

[java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

There's some confusion in the Java client code regarding where Deferred objects
are returned and also sent via an RPC's callback. Such a place is 
delayedSendRpcToTablet,
since it's called from both the context of paths that come from the user
application (need a Deferred) and paths that simply handle background retries 
(don't
need a Deferred since we rely on KuduRpc#callback).

This problem manifested itself in a unit test:
02:15:40.300 [DEBUG - main] (AsyncKuduClient.java:1065) Cannot continue with 
this RPC: Batch{operations=1, tablet="4114911c600b4bc3bbca228f1880568c" 
[, ), ignoreAllDuplicateRows=false} because of: RPC can not 
complete before timeout:
org.apache.kudu.client.NonRecoverableException: RPC can not complete before 
timeout: Batch{operations=1, tablet="4114911c600b4bc3bbca228f1880568c" 
[, ), ignoreAllDuplicateRows=false}
at 
org.apache.kudu.client.AsyncKuduClient.tooManyAttemptsOrTimeout(AsyncKuduClient.java:1063)
at 
org.apache.kudu.client.AsyncKuduClient.delayedSendRpcToTablet(AsyncKuduClient.java:1275)
at 
org.apache.kudu.client.AsyncKuduClient.sendRpcToTablet(AsyncKuduClient.java:756)
at 
org.apache.kudu.client.AsyncKuduSession$TabletLookupCB.call(AsyncKuduSession.java:371)
at 
org.apache.kudu.client.AsyncKuduSession$TabletLookupCB.call(AsyncKuduSession.java:302)
at com.stumbleupon.async.Deferred.doCall(Deferred.java:1280)
at com.stumbleupon.async.Deferred.addCallbacks(Deferred.java:685)
at com.stumbleupon.async.Deferred.addBoth(Deferred.java:769)
at org.apache.kudu.util.AsyncUtil.addBoth(AsyncUtil.java:59)
at 
org.apache.kudu.client.AsyncKuduSession.doFlush(AsyncKuduSession.java:436)
at 
org.apache.kudu.client.AsyncKuduSession.flush(AsyncKuduSession.java:405)
at 
org.apache.kudu.client.TestAsyncKuduSession.testInsertIntoUnavailableTablet(TestAsyncKuduSession.java:164)

Here the Deferred.fromError that got created in tooManyAttemptsOrTimeout was 
ignored by delayedSendRpcToTablet, then
in sendRpcToTablet we sent back the RPC's Deferred which at that point was 
voided since tooManyAttemptsOrTimeout
_also_ called that RPC's callback.

I tried writing a test, but even with looping on my machine I can't repro the 
issue.

Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
1 file changed, 18 insertions(+), 10 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR](gh-pages) Update docs from branch-1.0.x

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Update docs from branch-1.0.x
..


Patch Set 7: Code-Review+2

Let's release this!

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I58c2d44b2e753db76485f33c496a06a919b2e0c5
Gerrit-PatchSet: 7
Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR](gh-pages) Update docs from branch-1.0.x

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Update docs from branch-1.0.x
..


Patch Set 6:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4681/6/releases/1.0.1/index.md
File releases/1.0.1/index.md:

PS6, Line 2: 1.0.0
nit


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I58c2d44b2e753db76485f33c496a06a919b2e0c5
Gerrit-PatchSet: 6
Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR] [doc] added link to online Kudu C++ client API

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [doc] added link to online Kudu C++ client API
..


Patch Set 3:

(8 comments)

http://gerrit.cloudera.org:8080/#/c/4684/3/docs/installation.adoc
File docs/installation.adoc:

Line 236: [[build_from_source]]
not needed


PS3, Line 637:   
nit: extra blank space


PS3, Line 637: build_from_source
use _build_from_source


PS3, Line 639:  
nit: by* opening


PS3, Line 639:  
nit: the* locally


PS3, Line 643: installated
nit: installed*


PS3, Line 643:   
nit: extra blank space


PS3, Line 645: the
nit: remove


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie4d77b9b154b635c4aedaced9b050942529cf65f
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Alexey Serbin 
Gerrit-Reviewer: Alexey Serbin 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Dinesh Bhat 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: Yes


[kudu-CR](gh-pages) Update docs from branch-1.0.x

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Update docs from branch-1.0.x
..


Patch Set 2:

What about the releases page? 
https://github.com/apache/kudu/tree/gh-pages/releases

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I58c2d44b2e753db76485f33c496a06a919b2e0c5
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR](gh-pages) Add weekly post for 10/11

2016-10-11 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Add weekly post for 10/11
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ic843922a5c77a9493a15c6d8e4c8040fed7a2e83
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: gh-pages
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] [java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

2016-10-06 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] AsyncKuduClient#delayedSendRpcToTablet should 
return a Deferred
..


Patch Set 1: Verified+1

python test leakage

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR] [java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

2016-10-06 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4654

Change subject: [java client] AsyncKuduClient#delayedSendRpcToTablet should 
return a Deferred
..

[java client] AsyncKuduClient#delayedSendRpcToTablet should return a Deferred

There's some confusion in the Java client code regarding where Deferred objects
are returned and also sent via an RPC's callback. Such a place is 
delayedSendRpcToTablet,
since it's called from both the context of paths that come from the user
application (need a Deferred) and paths that simply handle background retries 
(don't
need a Deferred since we rely on KuduRpc#callback).

This problem manifested itself in a unit test:
02:15:40.300 [DEBUG - main] (AsyncKuduClient.java:1065) Cannot continue with 
this RPC: Batch{operations=1, tablet="4114911c600b4bc3bbca228f1880568c" 
[, ), ignoreAllDuplicateRows=false} because of: RPC can not 
complete before timeout:
org.apache.kudu.client.NonRecoverableException: RPC can not complete before 
timeout: Batch{operations=1, tablet="4114911c600b4bc3bbca228f1880568c" 
[, ), ignoreAllDuplicateRows=false}
at 
org.apache.kudu.client.AsyncKuduClient.tooManyAttemptsOrTimeout(AsyncKuduClient.java:1063)
at 
org.apache.kudu.client.AsyncKuduClient.delayedSendRpcToTablet(AsyncKuduClient.java:1275)
at 
org.apache.kudu.client.AsyncKuduClient.sendRpcToTablet(AsyncKuduClient.java:756)
at 
org.apache.kudu.client.AsyncKuduSession$TabletLookupCB.call(AsyncKuduSession.java:371)
at 
org.apache.kudu.client.AsyncKuduSession$TabletLookupCB.call(AsyncKuduSession.java:302)
at com.stumbleupon.async.Deferred.doCall(Deferred.java:1280)
at com.stumbleupon.async.Deferred.addCallbacks(Deferred.java:685)
at com.stumbleupon.async.Deferred.addBoth(Deferred.java:769)
at org.apache.kudu.util.AsyncUtil.addBoth(AsyncUtil.java:59)
at 
org.apache.kudu.client.AsyncKuduSession.doFlush(AsyncKuduSession.java:436)
at 
org.apache.kudu.client.AsyncKuduSession.flush(AsyncKuduSession.java:405)
at 
org.apache.kudu.client.TestAsyncKuduSession.testInsertIntoUnavailableTablet(TestAsyncKuduSession.java:164)

Here the Deferred.fromError that got created in tooManyAttemptsOrTimeout was 
ignored by delayedSendRpcToTablet, then
in sendRpcToTablet we sent back the RPC's Deferred which at that point was 
voided since tooManyAttemptsOrTimeout
_also_ called that RPC's callback.

I tried writing a test, but even with looping on my machine I can't repro the 
issue.

Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
1 file changed, 8 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/54/4654/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4654
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c5e87b7dc3366ed9d72121a2421c5cd2304608b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..


KUDU-1669. Java client tests leak orphan processes (part 2)

In some cases we weren't waiting for the processes to actually finish.

Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Reviewed-on: http://gerrit.cloudera.org:8080/4636
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
1 file changed, 27 insertions(+), 9 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java ITClient test can orphan processes

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: KUDU-1669. Java ITClient test can orphan processes
..


KUDU-1669. Java ITClient test can orphan processes

This removes the interruption of threads, which is the reason why we were 
orphaning
processes (in the ChaosThread).

Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
Reviewed-on: http://gerrit.cloudera.org:8080/4598
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 2 insertions(+), 3 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Retry regressing counts in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Retry regressing counts in ITClient
..


[java client] Retry regressing counts in ITClient

There's currently no sure way to read your writes, even with snapshot scans, so 
we
can either retry counting rows or ignore it. This patch is doing the former, 
unless
we hit some artificial timeout.

Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Reviewed-on: http://gerrit.cloudera.org:8080/4597
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 26 insertions(+), 12 deletions(-)

Approvals:
  Adar Dembo: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4636/1/java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
File java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java:

Line 363:   }
> Cool, so this worked out? Might want to add a comment explaining what's goi
Done.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4636

to look at the new patch set (#3).

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..

KUDU-1669. Java client tests leak orphan processes (part 2)

In some cases we weren't waiting for the processes to actually finish.

Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
1 file changed, 27 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/36/4636/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4636
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java ITClient test can orphan processes

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4598

to look at the new patch set (#3).

Change subject: KUDU-1669. Java ITClient test can orphan processes
..

KUDU-1669. Java ITClient test can orphan processes

This removes the interruption of threads, which is the reason why we were 
orphaning
processes (in the ChaosThread).

Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 2 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/98/4598/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4598
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4636

to look at the new patch set (#2).

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..

KUDU-1669. Java client tests leak orphan processes (part 2)

In some cases we weren't waiting for the processes to actually finish.

Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
1 file changed, 23 insertions(+), 9 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Retry regressing counts in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello David Ribeiro Alves, Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4597

to look at the new patch set (#4).

Change subject: [java client] Retry regressing counts in ITClient
..

[java client] Retry regressing counts in ITClient

There's currently no sure way to read your writes, even with snapshot scans, so 
we
can either retry counting rows or ignore it. This patch is doing the former, 
unless
we hit some artificial timeout.

Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 26 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/97/4597/4
-- 
To view, visit http://gerrit.cloudera.org:8080/4597
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..


Patch Set 1:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4636/1/java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
File java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java:

PS1, Line 359: catch (InterruptedException ex) {
 :   // We still need to finish cleaning up.
 : }
> This isn't quite correct; if we are interrupted (not that we should be, but
I guess if we really really want to be clean then yeah we'll have to wrap those 
individually. As you can see, I didn't want to go there.


Line 363:   thread.interrupt();
> It would be nice to avoid using thread interruption here too. I wonder: if 
Checking...


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Retry regressing counts in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Retry regressing counts in ITClient
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4597/3/java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
File java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java:

Line 386:   do {
> Retaining the printout doesn't change the flow in a substantial way:
Yup I wrote exactly that in the change I'm about to push. Like I said 
originally, this whole thing is messier and the gain from retrying is ~0.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Rename NoLeaderMasterFoundException and reuse

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Rename NoLeaderMasterFoundException and reuse
..


[java client] Rename NoLeaderMasterFoundException and reuse

I pushed d87486c too fast, Dan convinced me to reuse the exception.

Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
Reviewed-on: http://gerrit.cloudera.org:8080/4624
Reviewed-by: Dan Burkert 
Tested-by: Kudu Jenkins
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetMasterRegistrationReceived.java
R 
java/kudu-client/src/main/java/org/apache/kudu/client/NoLeaderFoundException.java
D 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestGetMasterRegistrationReceived.java
6 files changed, 14 insertions(+), 46 deletions(-)

Approvals:
  Dan Burkert: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Retry regressing counts in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Retry regressing counts in ITClient
..


Patch Set 3:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4597/3/java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
File java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java:

Line 386:   do {
> Nit: the loop structure is unusual in that the normal control flow takes us
I see you don't like my taste :) Sure I can give it a try. I did like having 
the printout for new row count though, really helps when debugging, and putting 
it back makes your solution slightly less pretty.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Retry regressing counts in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello David Ribeiro Alves, Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4597

to look at the new patch set (#3).

Change subject: [java client] Retry regressing counts in ITClient
..

[java client] Retry regressing counts in ITClient

There's currently no sure way to read your writes, even with snapshot scans, so 
we
can either retry counting rows or ignore it. This patch is doing the former, 
unless
we hit some artificial timeout.

Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 26 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/97/4597/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4597
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java ITClient test can orphan processes

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4598

to look at the new patch set (#2).

Change subject: KUDU-1669. Java ITClient test can orphan processes
..

KUDU-1669. Java ITClient test can orphan processes

This removes the interruption of threads, which is the reason why we were 
orphaning
processes (in the ChaosThread).

Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 2 insertions(+), 2 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] KUDU-1669. Java client tests leak orphan processes (part 2)

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4636

Change subject: KUDU-1669. Java client tests leak orphan processes (part 2)
..

KUDU-1669. Java client tests leak orphan processes (part 2)

In some cases we weren't waiting for the processes to actually finish.

Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
1 file changed, 19 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/36/4636/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4636
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I61d33ca2339048a51acfbb35f5b71e827d3a47f7
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] maintenance manager-test: fix flaky test

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: maintenance_manager-test: fix flaky test
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I003e72339f69228195130c89572a20be3009f22c
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Temporarily ignore row count regressions in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Temporarily ignore row count regressions in 
ITClient
..


Patch Set 2:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4597/2/java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
File java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java:

Line 383:   int rowCount;
Adar, I did the looping thing.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java client] Temporarily ignore row count regressions in ITClient

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello David Ribeiro Alves, Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4597

to look at the new patch set (#2).

Change subject: [java client] Temporarily ignore row count regressions in 
ITClient
..

[java client] Temporarily ignore row count regressions in ITClient

There's currently no sure way to read your writes, even with snapshot scans, so 
we
can either retry counting rows or ignore it. This patch is doing the former, 
unless
we hit some artificial timeout.

Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 26 insertions(+), 14 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Rename NoLeaderMasterFoundException and reuse

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Rename NoLeaderMasterFoundException and reuse
..


Patch Set 1:

> I'm assuming you want to keep around NoSuitableReplicaException for
 > future use?

Argh no, forgot to delete.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Rename NoLeaderMasterFoundException and reuse

2016-10-05 Thread Jean-Daniel Cryans (Code Review)
Hello Dan Burkert, Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4624

to look at the new patch set (#2).

Change subject: [java client] Rename NoLeaderMasterFoundException and reuse
..

[java client] Rename NoLeaderMasterFoundException and reuse

I pushed d87486c too fast, Dan convinced me to reuse the exception.

Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetMasterRegistrationReceived.java
R 
java/kudu-client/src/main/java/org/apache/kudu/client/NoLeaderFoundException.java
D 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestGetMasterRegistrationReceived.java
6 files changed, 14 insertions(+), 46 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Rename NoLeaderMasterFoundException and reuse

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4624

Change subject: [java client] Rename NoLeaderMasterFoundException and reuse
..

[java client] Rename NoLeaderMasterFoundException and reuse

I pushed d87486c too fast, Dan convinced me to reuse the exception

Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/GetMasterRegistrationReceived.java
R 
java/kudu-client/src/main/java/org/apache/kudu/client/NoLeaderFoundException.java
M 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestGetMasterRegistrationReceived.java
6 files changed, 19 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/24/4624/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4624
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I51ad20943fe8b4b808123dc8b7795215f3b12308
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..


Patch Set 3: Verified+1

Dan messed up my build, but I did run all the Java tests locally before pushing 
the latest patchset.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..


[java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

There's currently the possibility of a situation like this:
1. sendRpcToTablet finds the tablet that the RPC is going to doesn't have a 
leader
2. a master lookup is sent
3. discoverTablet is called back and still doesn't find a leader
4. RetryRpcCallback is invoked right away, going back to step 1

This quickly gets us with this exception:

Too many attempts: KuduRpc(method=Write, tablet=redacted, attempt=101, 
DeadlineTracker(timeout=3, elapsed=4747)

Notice how it retried 101 times in less than 5 seconds.

This patch changes step 3 so that an exception is thrown so that RetryRpcErrback
is invoked instead, which will add delay before retrying the RPC.

This bug was found by ITClient. It's not _just_ a flaky test!

Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Reviewed-on: http://gerrit.cloudera.org:8080/4570
Reviewed-by: Adar Dembo 
Tested-by: Jean-Daniel Cryans 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
3 files changed, 100 insertions(+), 19 deletions(-)

Approvals:
  Jean-Daniel Cryans: Verified
  Adar Dembo: Looks good to me, approved



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 4
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

http://gerrit.cloudera.org:8080/4570

to look at the new patch set (#3).

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..

[java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

There's currently the possibility of a situation like this:
1. sendRpcToTablet finds the tablet that the RPC is going to doesn't have a 
leader
2. a master lookup is sent
3. discoverTablet is called back and still doesn't find a leader
4. RetryRpcCallback is invoked right away, going back to step 1

This quickly gets us with this exception:

Too many attempts: KuduRpc(method=Write, tablet=redacted, attempt=101, 
DeadlineTracker(timeout=3, elapsed=4747)

Notice how it retried 101 times in less than 5 seconds.

This patch changes step 3 so that an exception is thrown so that RetryRpcErrback
is invoked instead, which will add delay before retrying the RPC.

This bug was found by ITClient. It's not _just_ a flaky test!

Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
3 files changed, 100 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/70/4570/3
-- 
To view, visit http://gerrit.cloudera.org:8080/4570
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..


Patch Set 2:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4570/2/java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
File 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java:

Line 23: final class NoSuitableReplicaException extends RecoverableException {
> How about renaming NoLeaderMasterFoundException to NoLeaderFoundException a
It's not really the same thing, I think. There could be other reasons why we 
can't find a suitable replica, although at the moment we only have the missing 
leader situation.


http://gerrit.cloudera.org:8080/#/c/4570/2/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java:

PS2, Line 196: insert.partitionKey()
> this could just be the empty array, no need to create an insert.
Done


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1652 (part 2): Filter IS NOT NULL predicates from scan on client

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: KUDU-1652 (part 2): Filter IS NOT NULL predicates from scan on 
client
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I542a735ca337ec9ed4eb3c989f8e6fa4ee0cc1da
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..


Patch Set 2:

(2 comments)

http://gerrit.cloudera.org:8080/#/c/4570/1//COMMIT_MSG
Commit Message:

PS1, Line 19: 101
> It's useful for development, yes, but not useful (and I would argue potenti
Not having this limit would be hurtful in production, it means runaway 
operations can start hammering master and tablet servers as long as their 
timeout allows it. If the bug this jira is fixing happened in prod, you'd hit 
the master with GetTabletLocations as often as you can for 30 seconds.


http://gerrit.cloudera.org:8080/#/c/4570/1/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 1498: // TODO: Handle the situation when multiple in-flight RPCs are 
queued waiting
> Hmm, maybe we should acquire a "master lookup permit" here then? Not releva
Yup.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] [java] KUDU-1563. Add support for INSERT IGNORE

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java] KUDU-1563. Add support for INSERT IGNORE
..


Patch Set 8: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib0cc4a533dfb01a883d347c9795c165aa8efa3fd
Gerrit-PatchSet: 8
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Brock Noland 
Gerrit-Reviewer: Brock Noland 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] Separate tablet MM ops into separate .cc file

2016-10-04 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: Separate tablet MM ops into separate .cc file
..


Patch Set 6: Code-Review+2

I didn't run a line-by-line comparison of your copy paste so I assume it's fine 
:)

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie40475fdb9f5da6a7300661d5149509da990939d
Gerrit-PatchSet: 6
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Mike Percy 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon 
Gerrit-HasComments: No


[kudu-CR] java: fix kudu-client builds with TSAN-only thirdparty

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: java: fix kudu-client builds with TSAN-only thirdparty
..


java: fix kudu-client builds with TSAN-only thirdparty

This turned out to be somewhat messy as only newer versions of maven[1]
allow profile activation when multiple conditions are true.

I tested this via repeated calls to "mvn help:active-profiles" and
"mvn clean compile" while hiding various combinations of my tsan,
uninstrumented, and system protoc executables.

1. https://issues.apache.org/jira/browse/MNG-4565

Change-Id: I580d69507abf0e486fc8f3f364177d0a60b6382b
Reviewed-on: http://gerrit.cloudera.org:8080/4577
Tested-by: Adar Dembo 
Reviewed-by: Jean-Daniel Cryans 
---
M java/kudu-client/pom.xml
1 file changed, 67 insertions(+), 15 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved
  Adar Dembo: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I580d69507abf0e486fc8f3f364177d0a60b6382b
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR] java: fix kudu-client builds with TSAN-only thirdparty

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: java: fix kudu-client builds with TSAN-only thirdparty
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I580d69507abf0e486fc8f3f364177d0a60b6382b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR](branch-1.0.x) [java client] make DateFormat safe to use

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] make DateFormat safe to use
..


[java client] make DateFormat safe to use

Todd's error-prone patch discovered this problem in RowResult where
we use a static DateFormat from multiple threads. The recommended way
to do this is to use thread locals.

Change-Id: I6d18ba34db0a0782fd0b7401e9aea7ae59c6b6f6
Reviewed-on: http://gerrit.cloudera.org:8080/4429
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
(cherry picked from commit b0b273e8271752b6eb04ba163981aad1c792e413)
Reviewed-on: http://gerrit.cloudera.org:8080/4603
Reviewed-by: Jean-Daniel Cryans 
Tested-by: Jean-Daniel Cryans 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/RowResult.java
1 file changed, 12 insertions(+), 5 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved; Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6d18ba34db0a0782fd0b7401e9aea7ae59c6b6f6
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: branch-1.0.x
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 


[kudu-CR](branch-1.0.x) [java client] make DateFormat safe to use

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] make DateFormat safe to use
..


Patch Set 1: Code-Review+2 Verified+1

Unrelated C++ test failure.

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

Gerrit-MessageType: comment
Gerrit-Change-Id: I6d18ba34db0a0782fd0b7401e9aea7ae59c6b6f6
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: branch-1.0.x
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-HasComments: No


[kudu-CR](branch-1.0.x) [java client] Fix an NPE in KuduException

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has submitted this change and it was merged.

Change subject: [java client] Fix an NPE in KuduException
..


[java client] Fix an NPE in KuduException

Saw this in a Jenkins run and also running ITClient on my machine.

Change-Id: Iceddc6931e8d3a8cb807657fc5c0804f7052e48f
Reviewed-on: http://gerrit.cloudera.org:8080/4488
Reviewed-by: Adar Dembo 
Tested-by: Kudu Jenkins
(cherry picked from commit 8fc75a5c654e100871316e61878b141df4707d0e)
Reviewed-on: http://gerrit.cloudera.org:8080/4605
Reviewed-by: Jean-Daniel Cryans 
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduException.java
1 file changed, 6 insertions(+), 3 deletions(-)

Approvals:
  Jean-Daniel Cryans: Looks good to me, approved
  Kudu Jenkins: Verified



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

Gerrit-MessageType: merged
Gerrit-Change-Id: Iceddc6931e8d3a8cb807657fc5c0804f7052e48f
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: branch-1.0.x
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins


[kudu-CR](branch-1.0.x) [java client] Fix an NPE in KuduException

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Fix an NPE in KuduException
..


Patch Set 1: Code-Review+2

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

Gerrit-MessageType: comment
Gerrit-Change-Id: Iceddc6931e8d3a8cb807657fc5c0804f7052e48f
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: branch-1.0.x
Gerrit-Owner: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: No


[kudu-CR] [java client] Temporarily ignore row count regressions in ITClient

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has posted comments on this change.

Change subject: [java client] Temporarily ignore row count regressions in 
ITClient
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/4597/1/java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
File java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java:

Line 389:   LOG.warn("Row count regressed: " + rowCount + " < " + 
lastRowCount);
> maybe I'm missing some context, but is there a way to loop instead of ignor
Like I'm saying in the commit message, looping until we get a correct count 
would be kind of messy. Not sure if it actually helps with anything TBH.


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: David Ribeiro Alves 
Gerrit-Reviewer: Jean-Daniel Cryans 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes


[kudu-CR] KUDU-1669. Java ITClient test can orphan processes

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4598

Change subject: KUDU-1669. Java ITClient test can orphan processes
..

KUDU-1669. Java ITClient test can orphan processes

ITClient#configureAndStartProcess now catches the InterruptedException and 
cleans up the newly
created process.

Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
---
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
1 file changed, 16 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/98/4598/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4598
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0085323ba9ea544488c6ce896d8627f24ea69f4b
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Temporarily ignore row count regressions in ITClient

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new change for review.

  http://gerrit.cloudera.org:8080/4597

Change subject: [java client] Temporarily ignore row count regressions in 
ITClient
..

[java client] Temporarily ignore row count regressions in ITClient

There's currently no sure way to read your writes, even with snapshot scans, so 
we
can either retry counting rows or ignore it. This patch is doing the latter 
since it's
less messy and hopefully this situation will be resolved soon.

Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
---
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
1 file changed, 3 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/97/4597/1
-- 
To view, visit http://gerrit.cloudera.org:8080/4597
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1e79a6c7aaf069294a6ca40e487947d14d9f2aa7
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 


[kudu-CR] [java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

2016-10-03 Thread Jean-Daniel Cryans (Code Review)
Jean-Daniel Cryans has uploaded a new patch set (#2).

Change subject: [java client] Tight-ish loop in master lookups if a tablet 
doesn't have a leader
..

[java client] Tight-ish loop in master lookups if a tablet doesn't have a leader

There's currently the possibility of a situation like this:
1. sendRpcToTablet finds the tablet that the RPC is going to doesn't have a 
leader
2. a master lookup is sent
3. discoverTablet is called back and still doesn't find a leader
4. RetryRpcCallback is invoked right away, going back to step 1

This quickly gets us with this exception:

Too many attempts: KuduRpc(method=Write, tablet=redacted, attempt=101, 
DeadlineTracker(timeout=3, elapsed=4747)

Notice how it retried 101 times in less than 5 seconds.

This patch changes step 3 so that an exception is thrown so that RetryRpcErrback
is invoked instead, which will add delay before retrying the RPC.

This bug was found by ITClient. It's not _just_ a flaky test!

Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
---
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
A 
java/kudu-client/src/main/java/org/apache/kudu/client/NoSuitableReplicaException.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
3 files changed, 104 insertions(+), 19 deletions(-)


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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ibf2bd53b03551642e4d036d322e1e592b7c2cfec
Gerrit-PatchSet: 2
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Jean-Daniel Cryans 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Dan Burkert 
Gerrit-Reviewer: Jean-Daniel Cryans 


<    3   4   5   6   7   8   9   10   >