This project is a fork of the YCSB. It adapts the benchmark to run all operations within transactions and introduces a new workload that allows the benchmarking of transactions with any number of read, update, insert, and scan operations.
The project understand itself as a continuation of the YCSB+T from 2014. While YCSB+T focuses on the benchmarking of transactional overhead and the detection of consistency anomalies, this fork enables the benchmarking of transactions with increasing length.
To read more about the YCSB+T see this paper:
A. Dey, A. Fekete, R. Nambiar and U. Röhm, "YCSB+T: Benchmarking web-scale transactional databases," 2014 IEEE 30th International Conference on Data Engineering Workshops, Chicago, IL, USA, 2014, pp. 223-230, doi: 10.1109/ICDEW.2014.6818330. keywords: {Benchmark testing;Distributed databases;Throughput;Google;Scalability;Protocols},
Not all bindings from the original YCSB are or can be updated to use transactions. Only the following bindings are currently updated and fully supported by this project:
- foundationdb-binding
- mongodb-binding
- orientdb-binding
The code of the other bindings that were part of YCSB at the time of forking are available in the folder ./binding-archive
.
YCSB requires the use of Maven 3.
To build the full distribution, with all database bindings:
mvn clean package
To build a single database binding:
mvn -pl site.ycsb:mongodb-binding -am clean package