Giter Club home page Giter Club logo

ccbench's Introduction

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
  • 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.