Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/4299 to look at the new patch set (#2). Change subject: KUDU-1065: [java client] Flexible Partition Pruning ...................................................................... KUDU-1065: [java client] Flexible Partition Pruning This commit introduces an internal utility ByteVec class which is a mashup of the C++ std::string / Rust Vec<u8> types. KeyEncoder has been transitioned to use this type instead of ByteArrayOutputStream. The partition pruning algorithm incrementally builds up partition keys from predicates, and requires cloning the keys as they are being built in order to multiply over hash partition buckets. ByteArrayOutputStream doesn't have a clone method. ByteArrayOutputStream is also synchronized internally, which is dumb. Thus begat ByteVec. This version of partition pruning only looks at predicates when determining which partitions to prune. Constraints in the primary key bounds are not considered, unless the table is range partitioned over the primary key columns and not hash partitioned (simple partitioning). This limits the pruned partitions in some pretty rare cases, but the workaround of explicitly setting the predicate is not too onerous. Finally, this commit changes the default test flags to remove mini cluster verbose logging, since it is extremely noisy. Change-Id: Ib27b54841d87cf854175ab8cdfa8798b337d71f9 --- 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/KeyEncoder.java M java/kudu-client/src/main/java/org/apache/kudu/client/KuduPredicate.java M java/kudu-client/src/main/java/org/apache/kudu/client/KuduScanToken.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/KuduTable.java M java/kudu-client/src/main/java/org/apache/kudu/client/PartialRow.java A java/kudu-client/src/main/java/org/apache/kudu/client/PartitionPruner.java M java/kudu-client/src/main/java/org/apache/kudu/client/PartitionSchema.java A java/kudu-client/src/main/java/org/apache/kudu/util/ByteVec.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java A java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java A java/kudu-client/src/test/java/org/apache/kudu/util/TestByteVec.java M java/kudu-client/src/test/resources/flags M src/kudu/common/partition_pruner-test.cc 17 files changed, 1,722 insertions(+), 197 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/99/4299/2 -- To view, visit http://gerrit.cloudera.org:8080/4299 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib27b54841d87cf854175ab8cdfa8798b337d71f9 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan Burkert <d...@cloudera.com> Gerrit-Reviewer: Adar Dembo <a...@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon <t...@apache.org>