Skip to content

WIP: New Benchmark: Cassandra + YCSB

John Zhang requested to merge new-bench-cassandra into master

Description

Addresses Issue 147 on GitHub, adding Apache Cassandra with YCSB as workload.

Progress

Able to build and run the the test size inside one JVM.

TODO

  • Benchmark calibration: default YCSB workloads can be quite small; according this swiki you can adjust the workload by redefining the properties like this:
./bin/ycsb load cassandra-10 -p hosts="192.168.122.89" -threads 128 -p fieldcount=20 -p operationcount=900000 -p recordcount=15000000 -p requestdistribution=zipfian -P workloads/workloada -s > workloada_load_res.txt
  • Validation: there is a huge output in stdout and stderr, how do we validate the run?
  • Java version dependency: currently the benchmark harness uses classes from Cassandra to start a daemon and initialise a keyspace. This portion of code hacks the system classloader to work. And this requires the ClassLoader.getSystemClassLoader() to be an instance of URLClassLoader. This is not true anymore in Java 9+. A solution to this is to call those functions through the reflection API. The reason this is not yet done is because I found using the reflection API a bit tedious and difficult to read & debug.
Edited by John Zhang

Merge request reports