Yao Xu has posted comments on this change. ( http://gerrit.cloudera.org:8080/12323 )
Change subject: KUDU-2670: Part 1: Build ScanToken by KeyRange ...................................................................... Patch Set 10: (22 comments) Hi, guys. I refactored part of the code for this patch (unittest and Client API) and supplement this part of the code document. http://gerrit.cloudera.org:8080/#/c/12323/6/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: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@1204 PS6, Line 1204: if (tablet == null) { > Nit: Line too long. Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@1209 PS6, Line 1209: final ServerInfo info = tablet.getReplicaSelectedServerInfo(keepAliveRequest.getReplicaSelection(), > The wording here suggests that this value is advisory (i.e. the server migh Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@1211 PS6, Line 1211: if (info == null) { > Nit: "a {@code Deferred} object which yields the list of key ranges." Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java@1213 PS6, Line 1213: } > Is there any use case for applications to call this API directly? If so, sh Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KeyRange.java File java/kudu-client/src/main/java/org/apache/kudu/client/KeyRange.java: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KeyRange.java@23 PS6, Line 23: * Class used to represent primary key range in tablet. > Should document that startPrimaryKey and endPrimaryKey represent encoded pr Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java File java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@304 PS6, Line 304: return this; > Again, careful when referencing "split tablet"; it makes it sound as if the Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@305 PS6, Line 305: } > If unset or <= 0 is more accurate I suppose. Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@408 PS6, Line 408: if (keyRanges.isEmpty()) { > Nit: wrap Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@428 PS6, Line 428: } > private Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.java@437 PS6, Line 437: } catch (Exception e) { > I think we need to use a DedlineTracker to be sure the timeout represents t Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java File java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java@33 PS6, Line 33: * RPC to split a tablet's primary key range into smaller ranges suitable for concurrent scanning. > One of the confusing aspects of this feature is that tablets aren't actuall Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java@36 PS6, Line 36: class SplitKeyRangeRequest extends KuduRpc<SplitKeyRangeResponse> { > I don't think this needs to be final since it's internal preventing extensi Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java@38 PS6, Line 38: private final byte[] startPrimaryKey; : private final byte[] endPrimaryKey; : private final byte[] partitionKey; : private final long splitSizeBytes; > Document the meaning of these fields. Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/main/java/org/apache/kudu/client/SplitKeyRangeRequest.java@43 PS6, Line 43: /** > Nit: unnecessary empty line here. Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/client/TestSplitKeyRangeRequest.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestSplitKeyRangeRequest.java: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/client/TestSplitKeyRangeRequest.java@19 PS6, Line 19: > I don't mind a test of the request/response. More coverage is a great thing Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/client/TestSplitKeyRangeRequest.java@34 PS6, Line 34: > Why do these flags need to be set? Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/util/SplitTestUtil.java File java/kudu-client/src/test/java/org/apache/kudu/util/SplitTestUtil.java: PS6: > License header. Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/util/SplitTestUtil.java@16 PS6, Line 16: > Could this be moved into the ClientTestUtil class for things that are gener Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-client/src/test/java/org/apache/kudu/util/SplitTestUtil.java@104 PS6, Line 104: > for (int i = 1; i < numbers.size() - 1; i += 2) { Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/DefaultSource.scala File java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/DefaultSource.scala: PS6: > Could you write a spark test that uses this new feature? Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduReadOptions.scala File java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduReadOptions.scala: http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduReadOptions.scala@37 PS6, Line 37: * @param splitSizeBytes Sets the target number of bytes per spark task. If set, tablet's > Agreed with Grant, though we need to be careful when we talk about "splitti Done http://gerrit.cloudera.org:8080/#/c/12323/6/java/kudu-spark/src/main/scala/org/apache/kudu/spark/kudu/KuduReadOptions.scala@37 PS6, Line 37: * @param splitSizeBytes Sets the target number of bytes per spark task. If set, tablet's > Perhaps make these docs a bit more spark centric. Something along the lines Done -- To view, visit http://gerrit.cloudera.org:8080/12323 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0502f5d64569e8b1d45e88de3cb36aa2e01234d0 Gerrit-Change-Number: 12323 Gerrit-PatchSet: 10 Gerrit-Owner: yangz <zhe...@gmail.com> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Grant Henke <granthe...@apache.org> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Yao Xu <oclarms....@gmail.com> Gerrit-Reviewer: yangz <zhe...@gmail.com> Gerrit-Comment-Date: Sat, 23 Mar 2019 10:37:47 +0000 Gerrit-HasComments: Yes