YCSB/kudu
Zhang Yifan c4082f4554
[kudu] Support range partitioning (#1331)
2020-11-29 19:39:59 -06:00
..
src/main [kudu] Support range partitioning (#1331) 2020-11-29 19:39:59 -06:00
README.md [kudu] Support range partitioning (#1331) 2020-11-29 19:39:59 -06:00
pom.xml [version] update master branch to 0.18.0-SNAPSHOT 2019-09-21 01:24:50 -05:00

README.md

Kudu bindings for YCSB

Apache Kudu 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.

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_partition_schema: The partition schema used to create table. It could be 'hashPartition' or 'rangePartition', the default is 'hashPartition'.

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:

mvn -pl site.ycsb:kudu-binding -am package -DskipTests -Dkudu.version=1.0.1

Note that only versions since 1.0 are supported, since Kudu did not guarantee wire or API compatibility prior to 1.0.