gCCTB is a testbed designed to evaluate various concurrency control schemes in GPU environments comprehensively. gCCTB allows for easy and efficient testing of different CC schemes on GPUs using a variety of benchmarks under different configurations.
Scheme | Name | GPU Oriented | Latch Version |
---|---|---|---|
2PL no-wait | tpl_nw | N | slow_tpl_nw |
2PL wait-die | tpl_wd | N | slow_tpl_wd |
TO | to | N | slow_to |
MVCC | mvcc | N | slow_mvcc |
Silo | silo | N | slow_silo |
TicToc | tictoc | N | slow_tictoc |
GaccO | gacco | Y | |
GPUTx | gputx | Y |
Metrics | Unit | Measured On |
---|---|---|
Throughput | Tx/s | CPU |
Total Number of Rollbacks | CPU | |
Average Total Duration | s | CPU |
Average Precompute Duration | s | CPU |
Average GPU Duration | s | CPU |
Average GPU Duration | ms | GPU |
Average Timestamp Allocation Duration | ms | GPU |
Average Waiting Duration | ms | GPU |
Average Aborting Duration | ms | GPU |
Average Manager Duration | ms | GPU |
Average Index Duration | ms | GPU |
- NVIDIA GPU with compute capability 8.9
- CUDA 12.0
- Python3
python3 compile.py
# format
./out/gen_ycsb {ycsb_rownum} {ycsb_txcnt} {theta} {r_ratio} {path_to_dataset}
# example
./out/gen_ycsb 10485760 1048576 0.1 0.9 ./dataset/ycsb.txs
where
# format
./out/test_ycsb {path_to_dataset} {ycsb_rownum} {ycsb_txcnt} {cc_scheme} {warp_density} {block_size} {batch_size} {debug_flag}
# example
./out/test_ycsb ./dataset/ycsb.txs 10485760 1048576 tpl_nw 5 32 65536 0
where
{cc_scheme} {warp_density} {block_size} {batch_size} {throughput} {tot_abort_cnt} {avr_abort_cnt} {avr_ts_d} {avr_wait_d} {avr_abort_d} {avr_mng_d} {avr_tot_d} {avr_idx_d} {avr_pre} {avr_proc} {avr_tot}
where avr_tot_d
corresponds to the Average GPU Duration
measured on GPU, avr_proc
corresponds to the Average GPU Duration
measured on CPU, avr_tot
corresponds to the Average Total Duration
.
Experiment data is listed in out_data
directory.
- TPC-C Support
- More Indexes
Xiangyao Yu, George Bezerra, Andrew Pavlo, Srinivas Devadas, and Michael Stonebraker. 2014. Staring into the abyss: an evaluation of concurrency control with one thousand cores. Proc. VLDB Endow. 8, 3 (November 2014), 209–220. https://doi.org/10.14778/2735508.2735511
Takayuki Tanabe, Takashi Hoshino, Hideyuki Kawashima, and Osamu Tatebe. 2020. An analysis of concurrency control protocols for in-memory databases with CCBench. Proc. VLDB Endow. 13, 13 (September 2020), 3531–3544. https://doi.org/10.14778/3424573.3424575