Fork from YCSB-C
- separate load and run throughput
- add latency testing(use leveldb/util histogram)
To build YCSB-C on Ubuntu, for example:
$ sudo apt-get install libtbb-dev librocksdb-dev
$ mkdir build
$ cd build
$ cmake ..
$ make
Run Workload A with a Rocksdb-based implementation of the database, for example:
./ycsb -db rocksdb -threads 8 -P ../workloads/workloada.spec
Output Like this:
rocksdb workloads/workloada.spec 8
# Loading records: 100000
# Load throughput (KOPS): 526.776
Count: 100000 Average: 14.9459 StdDev: 4.70
Percentiles(us): P50: 14.46 P90: 18.19 P99: 33.00 P99.9: 53.22 P99.99: 113.33
------------------------------------------------------
[ 3, 4 ) 5 0.005% 0.005%
[ 4, 5 ) 1 0.001% 0.006%
[ 5, 6 ) 2 0.002% 0.008%
[ 7, 8 ) 4 0.004% 0.012%
[ 8, 9 ) 52 0.052% 0.064%
[ 9, 10 ) 194 0.194% 0.258%
[ 10, 12 ) 26534 26.534% 26.792% #####
[ 12, 14 ) 16188 16.188% 42.980% ###
[ 14, 16 ) 30257 30.257% 73.237% ######
[ 16, 18 ) 16345 16.345% 89.582% ###
[ 18, 20 ) 4386 4.386% 93.968% #
[ 20, 25 ) 3193 3.193% 97.161% #
[ 25, 30 ) 1304 1.304% 98.465%
[ 30, 35 ) 892 0.892% 99.357%
[ 35, 40 ) 258 0.258% 99.615%
[ 40, 45 ) 124 0.124% 99.739%
[ 45, 50 ) 133 0.133% 99.872%
[ 50, 60 ) 87 0.087% 99.959%
[ 60, 70 ) 16 0.016% 99.975%
[ 70, 80 ) 10 0.010% 99.985%
[ 80, 90 ) 3 0.003% 99.988%
[ 100, 120 ) 3 0.003% 99.991%
[ 120, 140 ) 1 0.001% 99.992%
[ 140, 160 ) 2 0.002% 99.994%
[ 200, 250 ) 5 0.005% 99.999%
[ 250, 300 ) 1 0.001% 100.000%
# Run operations: 100000
# Run throughput (KOPS): 709.273
Count: 100000 Average: 10.8478 StdDev: 8.22
Percentiles(us): P50: 10.14 P90: 19.89 P99: 36.65 P99.9: 63.17 P99.99: 122.86
------------------------------------------------------
[ 1, 2 ) 3353 3.353% 3.353% #
[ 2, 3 ) 16524 16.524% 19.877% ###
[ 3, 4 ) 10355 10.355% 30.232% ##
[ 4, 5 ) 5323 5.323% 35.555% #
[ 5, 6 ) 2903 2.903% 38.458% #
[ 6, 7 ) 3362 3.362% 41.820% #
[ 7, 8 ) 2634 2.634% 44.454% #
[ 8, 9 ) 2828 2.828% 47.282% #
[ 9, 10 ) 2336 2.336% 49.618%
[ 10, 12 ) 5500 5.500% 55.118% #
[ 12, 14 ) 8096 8.096% 63.214% ##
[ 14, 16 ) 11631 11.631% 74.845% ##
[ 16, 18 ) 10846 10.846% 85.691% ##
[ 18, 20 ) 4557 4.557% 90.248% #
[ 20, 25 ) 6106 6.106% 96.354% #
[ 25, 30 ) 1632 1.632% 97.986%
[ 30, 35 ) 834 0.834% 98.820%
[ 35, 40 ) 545 0.545% 99.365%
[ 40, 45 ) 229 0.229% 99.594%
[ 45, 50 ) 121 0.121% 99.715%
[ 50, 60 ) 172 0.172% 99.887%
[ 60, 70 ) 41 0.041% 99.928%
[ 70, 80 ) 27 0.027% 99.955%
[ 80, 90 ) 12 0.012% 99.967%
[ 90, 100 ) 11 0.011% 99.978%
[ 100, 120 ) 11 0.011% 99.989%
[ 120, 140 ) 7 0.007% 99.996%
[ 140, 160 ) 2 0.002% 99.998%
[ 160, 180 ) 2 0.002% 100.000%
Run Workload A with a Faster-based implementation of the database, for example:
./ycsb -db faster -threads 8 -P ../workloads/workloada.spec