diff --git a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java index 05757b41f37b06dba7e8b604f3d062470b0c4556..4a771a7fa7a29193321bc1f9a514448fe9462a36 100644 --- a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java +++ b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java @@ -158,6 +158,9 @@ public class KuduYCSBClient extends com.yahoo.ycsb.DB { schema = new Schema(columns); CreateTableOptions builder = new CreateTableOptions(); + List<String> rangePartitionColumns = new ArrayList<>(1); + rangePartitionColumns.add(KEY); + builder.setRangePartitionColumns(rangePartitionColumns); builder.setNumReplicas(numReplicas); // create n-1 split keys, which will end up being n tablets master-side for (int i = 1; i < numTablets + 0; i++) { @@ -229,25 +232,23 @@ public class KuduYCSBClient extends com.yahoo.ycsb.DB { querySchema = COLUMN_NAMES; // No need to set the projected columns with the whole schema. } else { - querySchema = new ArrayList<String>(fields); + querySchema = new ArrayList<>(fields); scannerBuilder.setProjectedColumnNames(querySchema); } - KuduPredicate.ComparisonOp comparisonOp; + PartialRow lowerBound = schema.newPartialRow(); + lowerBound.addString(0, startkey); + scannerBuilder.lowerBound(lowerBound); + if (recordcount == 1) { - comparisonOp = KuduPredicate.ComparisonOp.EQUAL; - } else { - comparisonOp = KuduPredicate.ComparisonOp.GREATER_EQUAL; + PartialRow upperBound = schema.newPartialRow(); + upperBound.addString(0, startkey + '\0'); + scannerBuilder.exclusiveUpperBound(upperBound); } - KuduPredicate keyPredicate = KuduPredicate.newComparisonPredicate( - schema.getColumnByIndex(0), - comparisonOp, - startkey); - - KuduScanner scanner = scannerBuilder - .addPredicate(keyPredicate) - .limit(recordcount) // currently noop - .build(); + + scannerBuilder.limit(recordcount); // currently noop + + KuduScanner scanner = scannerBuilder.build(); while (scanner.hasMoreRows()) { RowResultIterator data = scanner.nextRows(); diff --git a/pom.xml b/pom.xml index 4b39681fcc8982ab84469aae9edaee1f437ed347..8109f5f0d7995faa7c7290a9a69c8f49a534ba6e 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ LICENSE file. <geode.version>1.0.0-incubating.M2</geode.version> <googlebigtable.version>0.2.3</googlebigtable.version> <infinispan.version>7.2.2.Final</infinispan.version> - <kudu.version>0.8.0</kudu.version> + <kudu.version>0.9.0</kudu.version> <openjpa.jdbc.version>2.1.1</openjpa.jdbc.version> <!--<mapkeeper.version>1.0</mapkeeper.version>--> <mongodb.version>3.0.3</mongodb.version>