Dan Burkert has posted comments on this change.

Change subject: KUDU-579 [java_client] Scanner fault tolerance
......................................................................


Patch Set 3:

(10 comments)

I think overall the error handling needs some work; it looks like right now 
it's only handling scanner expired and not necessarily anything else (if I 
understand correctly).  Also the change to the master location that JD brought 
up, not sure what's going on there, but I agree that the change doesn't seem 
correct.

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

PS3, Line 11: scan
batch


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

Line 78:    * Ensures the scanner to be fault tolerant, and returns scan 
results in primary
I think the C++ version reads a little bit better, could you adapt it?  The 
note about hash partitioning can be removed.  
https://github.com/apache/kudu/blob/master/src/kudu/client/client.h#L1969-L1981


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

Line 245:       checkArgument(readMode == ReadMode.READ_AT_SNAPSHOT, "Returning 
rows in primary key order " +
Update this message to be about fault tolerance instead of ordering.


Line 474:   private final Callback<Deferred<RowResultIterator>, Response> 
gotNextRow =
Why is this necessary?  Looks like it's never returning a delayed result.


Line 506:         if (isFaultTolerant && e instanceof ScannerExpiredException) {
I think we can recover from more than just ScannerExpired; see 
https://github.com/apache/kudu/blob/master/src/kudu/client/scanner-internal.cc#L66


Line 511:           return Deferred.fromError(e); // Let the error propagates.
'propagate' was more correct.


Line 835:           Status statusIncomplete = Status.Incomplete("Cannot 
continue scanning, " +
Is this case being handled?


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

Line 377:   private static Integer findLeaderTabletServerPort(LocatedTablet 
tablet)
Could this return int instead of Integer?


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

PS3, Line 103: kill
killing


PS3, Line 112: restart
restarting


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I89d3634c4255b69e28f2de5412e6a5a9d34e931b
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Hao Hao <hao....@cloudera.com>
Gerrit-Reviewer: Dan Burkert <danburk...@apache.org>
Gerrit-Reviewer: Hao Hao <hao....@cloudera.com>
Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-HasComments: Yes

Reply via email to