Yahoo! Cloud Serving Benchmark in C++, a C++ version of YCSB (https://github.com/brianfrankcooper/YCSB/wiki)
git clone https://github.com/basicthinker/YCSB-C.git
Please note which branch should be in use. The "svm" and "undo" branches correspond to branches in the sitevm project.
To compile YCSB-C, we need the following two environment variables:
Variable name | Note | Example |
---|---|---|
SITEVM_HOME | Top directory of the sitevm project. | SITEVM_HOME=$HOME/Projects/sitevm_dune |
LIBITM_HOME | Output path of the libitm project. This directory should inlucde libitm.a. | LIBITM_HOME=$HOME/Projects/gcc/x86_64-unknown-linux-gnu/libitm |
PLIB_HOME(optional) | If the sitevm project is using persistence, this variable has to be set to the plib directory of vm-persistence (https://github.com/basicthinker/vm-persistence) | PLIB_HOME=$HOME/Projects/vm-persistence/plib |
Target databases or their dependencies should be installed properly before compiling or running YCSB-C.
Please refer to https://www.threadingbuildingblocks.org/.
On Ubuntu/Debian, you may only need to run the following command.
$ sudo apt-get install libtbb-dev
You have to install both Aerospike server and client dev packages.
For server installation, please refer to http://www.aerospike.com/docs/operations/install/.
For client installation, please refer to http://www.aerospike.com/docs/client/c/install/.
Don't forget to start the Aerospike service afterwards.
cd YCSB-C
make
After successful compilation, there is an executable ycsbc in the top project directory.
You might want to see the help info by running ycsbc without any option.
./ycsbc
A typical command line can be:
./ycsbc -db itm_slib -threads 8 -P workloads/workloada.spec
Available DB names can be found in db/db_factory.cc.
If it is used with GCC libitm, the environment variable ITM_DEFAULT_METHOD can be set to choose among different transaction systems.
export ITM_DEFAULT_METHOD=svm