Skip to content

thawk105/ccbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a4d4633 · Apr 27, 2022
Apr 27, 2022
Sep 23, 2020
Jun 19, 2020
Feb 28, 2021
Aug 3, 2020
Feb 28, 2021
Aug 3, 2020
Feb 28, 2021
Jun 12, 2020
Aug 3, 2020
Jun 18, 2020
Aug 3, 2020
Aug 5, 2020
Apr 27, 2022
Jan 17, 2022
Aug 3, 2020
Aug 25, 2020
Apr 27, 2022
Aug 3, 2020
Jan 17, 2022
Dec 30, 2019
Nov 29, 2021

Repository files navigation

CCBench : Redesign and Implement Many Concurrency Control

cicada_build ermia_build mocc_build si_build silo_build ss2pl_build tictoc_build tpcc_silo_build_and_ctest

This platform is undergoing rewrite in the repository below.
https://github.com/thawk105/ccbench_v2
Analysis paper using CCBench is below.
http://www.vldb.org/pvldb/vol13/p3531-tanabe.pdf

Installing a binary distribution package

On Debian/Ubuntu Linux, execute below statement or bootstrap_apt.sh.

$ git clone --recurse-submodules this_repository
$ cd ccbench
$ sudo apt update -y && sudo apt-get install -y $(cat build_tools/ubuntu.deps)

Prepare using

note : Make install should be done by specifying a user-local path at the time of configure.

$ cd ccbench
$ "run some build_tools/(bootstrap*.sh) files"
  • Processing of bootstrap.sh :
    Build third_party/masstree.
  • Processing of bootstrap_mimalloc.sh :
    Build third_party/mimalloc.
  • Processing of bootstrap_tbb.sh :
    Build third_party/tbb

Export LD_LIBRARY_PATH to appropriate paths.
Each protocols has own Makefile(or CMakeLists.txt), so you should build each.


Data Structure

Masstree

This is a submodule.
usage:
git submodule init
git submodule update
tanabe's wrapper is include/masstree_wrapper.hpp


Experimental data

https://github.com/thawk105/ccdata


Runtime arguments

This system uses third_party/gflags and third_party/glog.
So you can use without runtime arguments, then it executes with default args.
You can also use runtime arguments like below.
Note that args you don't set is used default args.

$ ./cicada.exe -tuple_num=1000000 -thread_num=224

Details for improving performance

  • It uses xoroshiro128plus which is high performance random generator.
  • It is friendly to Linux vertual memory system.
  • It uses high performance memory allocator mimalloc/tbd appropriately.
  • It reduces memory management cost by our original technique.
  • It refrain from creating temporary objects to improve performance as much as possible.
  • It fixed bug of original cicada.
  • It modifies almost protocols appropriately to improve performance.

Welcome

Welcome pull request about

  • Improvement of performance in any workloads.
  • Bug fix.
  • Improvement about comments (doxygen style is recommended).
  • Improvement of versatile.
  • Extending CCBench
    • Reference materials : #7
  • Extend tests.

Acknowledgments

Takayuki.T dedicates special thanks to ...

  • Cybozu Labs Youth 8th term supported this activity. (2018/4/10 - 2019/4/10)
  • Takashi Hoshino who is very kind advisor from Cybozu Labs Youth.
  • Hideyuki Kawashima/Osamu Tatebe who is very kind supervisor.

About

Concurrency Control Benchmark

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published