This repository provides an extended version of CCBench, which supports additional workloads and protocols.
First, clone the repository and install the required packages. Note that the following steps are for Ubuntu. For other Linux distributions, install the equivalent packages.
$ git clone --recurse-submodules this_repository
$ cd ccbench
$ sudo apt update -y && sudo apt-get install -y $(cat build_tools/ubuntu.deps)Then, build a dependent library.
$ cd ccbench
$ ./build_tools/bootstrap.sh
$ ./build_tools/bootstrap_mimalloc.shFinally, build benchmark binaries with all supported protocols.
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ makeYou can run three benchmark workloads with various protocols: YCSB, TPC-C, and BoMB. BoMB (Bill of Materials Benchmark) is a new OLTP benchmark reproducing a workload for manufacturing companies, including long-running update transactions and various short transactions.
For example, if you want to run BoMB with Silo, run the following command.
$ cd build
$ ./silo/bomb_silo.exe --thread-num 8 --bomb-mixed-mode --bomb-mixed-short-rate 1000Workloads and protocols can be switched like the following.
$ ./tictoc/bomb_tictoc.exe --thread-num 8 --bomb-mixed-mode --bomb-mixed-short-rate 1000
$ ./cicada/tpcc_cicada.exe --thread-num 8 --tpcc-num-wh 8
$ ./cicada/ycsb_cicada.exe --thread-num 8 --ycsb-rratio 50See usage with the --help option for details of the workload-specific options.