Jean-Daniel Cryans has posted comments on this change. Change subject: KUDU-579 [java_client] Scanner fault tolerance ......................................................................
Patch Set 2: (18 comments) http://gerrit.cloudera.org:8080/#/c/6566/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: Line 78: * Return scan results in primary key sorted order. This javadoc needs to be re-written. Line 89: @InterfaceAudience.Private Remove all the Interface stuff, we don't want this to be private anymore. Line 91: S setFaultTolerant() { Make it public. http://gerrit.cloudera.org:8080/#/c/6566/2/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 505: if (e instanceof ScannerExpiredException) { Shouldn't you only do this for fault tolerant scanners? Also it seems there's a type mismatch now that we're returning a Deferred. This change is a bit suspicious. http://gerrit.cloudera.org:8080/#/c/6566/2/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanner.java: Line 113: @VisibleForTesting We put this above the method signature, below the javadoc. PS2, Line 115: tabletSlice RemoteTablet? http://gerrit.cloudera.org:8080/#/c/6566/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: Line 179: // if uuid is empty, it means the leader has been removed from I'm not following this. If the leader isn't known then we need to go ask the master. Using a different replication selection policy would probably violate what the user is asking for. http://gerrit.cloudera.org:8080/#/c/6566/2/java/kudu-client/src/main/java/org/apache/kudu/client/ScannerExpiredException.java File java/kudu-client/src/main/java/org/apache/kudu/client/ScannerExpiredException.java: Line 2: * Copyright (C) 2010-2012 The Async HBase Authors. All rights reserved. Use a difference license, like KuduSession has, since this file AFAIK isn't copied from asynchbase. PS2, Line 38: KuduException This should be a RecoverableException. PS2, Line 42: . Remove trailing periods from all @param lines PS2, Line 51: T Always start with a lower case. http://gerrit.cloudera.org:8080/#/c/6566/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 515: TABLET_NOT_RUNNING I'm surprised that we've been missing this for so long, but it seems like it was indeed a problem. http://gerrit.cloudera.org:8080/#/c/6566/2/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: PS2, Line 377: . nit Line 393: private static LocatedTablet.Replica getLeaderRpcPort(RemoteTablet curTablet) Part of this is copied from killTabletLeader(KuduTable), can you do the required refactoring instead? PS2, Line 477: . nit Line 483: miniCluster.killTabletServerOnPort(port); Another refactoring opportunity. http://gerrit.cloudera.org:8080/#/c/6566/2/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: Line 53: builder.addHashPartitions(Lists.newArrayList(schema.getColumnByIndex(0).getName()), TABLET_COUNT); nit: now the line is too long. Line 152: public void testFaultTolerantScannerRestartTS() throws Exception { This should be refactor into one helper method and two tests that simple call the method to tell it to either kill or restart. -- 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: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Hao Hao <hao....@cloudera.com> Gerrit-Reviewer: Dan Burkert <danburk...@apache.org> Gerrit-Reviewer: Jean-Daniel Cryans <jdcry...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-HasComments: Yes