diff --git a/kudu/README.md b/kudu/README.md
index e1f2b286..704ca8c2 100644
--- a/kudu/README.md
+++ b/kudu/README.md
@@ -1,56 +1,61 @@
# Kudu bindings for YCSB
-[Kudu](http://getkudu.io) is a storage engine that enables fast analytics on fast data.
+[Apache Kudu](https://kudu.apache.org) is a storage engine that enables fast
+analytics on fast data.
## Benchmarking Kudu
-Use the following command line to load the initial data into an existing Kudu cluster with default
-configurations.
+Use the following command line to load the initial data into an existing Kudu
+cluster with default configurations.
```
bin/ycsb load kudu -P workloads/workloada
```
Additional configurations:
-* `kudu_master_addresses`: The master's address. The default configuration expects a master on localhost.
-* `kudu_pre_split_num_tablets`: The number of tablets (or partitions) to create for the table. The default
-uses 4 tablets. A good rule of thumb is to use 5 per tablet server.
-* `kudu_table_num_replicas`: The number of replicas that each tablet will have. The default is 3. Should
-only be configured to use 1 instead, for single node tests.
-* `kudu_sync_ops`: If the client should wait after every write operation. The default is true.
-* `kudu_block_size`: The data block size used to configure columns. The default is 4096 bytes.
+* `kudu_master_addresses`: The master's address. The default configuration
+ expects a master on localhost.
+* `kudu_pre_split_num_tablets`: The number of tablets (or partitions) to create
+ for the table. The default uses 4 tablets. A good rule of thumb is to use 5
+ per tablet server.
+* `kudu_table_num_replicas`: The number of replicas that each tablet will have.
+ The default is 3. Should only be configured to use 1 instead, for single node tests.
+* `kudu_sync_ops`: If the client should wait after every write operation. The
+ default is true.
+* `kudu_block_size`: The data block size used to configure columns. The default
+ is 4096 bytes.
Then, you can run the workload:
```
bin/ycsb run kudu -P workloads/workloada
```
## Using a previous client version
-If you wish to use a different Kudu client version than the one shipped with YCSB, you can specify on the
-command line with `-Dkudu.version=x`. For example:
+If you wish to use a different Kudu client version than the one shipped with
+YCSB, you can specify on the command line with `-Dkudu.version=x`. For example:
```
-mvn -pl com.yahoo.ycsb:kudu-binding -am package -DskipTests -Dkudu.version=0.7.1
+mvn -pl com.yahoo.ycsb:kudu-binding -am package -DskipTests -Dkudu.version=1.0.1
```
-Note that prior to 1.0, Kudu doesn't guarantee wire or API compability between versions and only the latest
-one is officially supported.
+Note that only versions since 1.0 are supported, since Kudu did not guarantee
+wire or API compatibility prior to 1.0.
diff --git a/kudu/pom.xml b/kudu/pom.xml
index 4d703244..f1c7b00d 100644
--- a/kudu/pom.xml
+++ b/kudu/pom.xml
@@ -1,58 +1,55 @@
4.0.0com.yahoo.ycsbbinding-parent0.13.0-SNAPSHOT../binding-parentkudu-bindingKudu DB Bindingjar
- org.kududb
+ org.apache.kudukudu-client${kudu.version}com.yahoo.ycsbcore${project.version}provided
+
+ org.slf4j
+ slf4j-api
+ 1.7.21
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.7.21
+
-
-
-
- true
-
-
- false
-
- cloudera-repo
- Cloudera Releases
- https://repository.cloudera.com/artifactory/cloudera-repos
-
-
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 4a771a7f..2d68a178 100644
--- a/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
+++ b/kudu/src/main/java/com/yahoo/ycsb/db/KuduYCSBClient.java
@@ -1,352 +1,319 @@
/**
- * Copyright (c) 2015 YCSB contributors. All rights reserved.
+ * Copyright (c) 2015-2016 YCSB contributors. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* LICENSE file.
*/
package com.yahoo.ycsb.db;
import com.stumbleupon.async.TimeoutException;
import com.yahoo.ycsb.ByteIterator;
import com.yahoo.ycsb.DBException;
import com.yahoo.ycsb.Status;
import com.yahoo.ycsb.StringByteIterator;
import com.yahoo.ycsb.workloads.CoreWorkload;
-import org.kududb.ColumnSchema;
-import org.kududb.Schema;
-import org.kududb.client.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.kudu.ColumnSchema;
+import org.apache.kudu.Schema;
+import org.apache.kudu.client.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import java.util.Vector;
-import static org.kududb.Type.STRING;
+import static org.apache.kudu.Type.STRING;
+import static org.apache.kudu.client.KuduPredicate.ComparisonOp.EQUAL;
+import static org.apache.kudu.client.KuduPredicate.ComparisonOp.GREATER_EQUAL;
/**
* Kudu client for YCSB framework. Example to load: