Code Monkey home page Code Monkey logo

bamboo's Introduction

Bamboo

Publicized Experiments

In build directory, execute:

$ ../script/low_contention.sh
$ ../script/high_contentionA.sh
$ ../script/high_contentionB.sh

Please switch between Bamboo, TID, FairTID, and RandID each time.

How to use

  • Build masstree (optional)
$ cd ../
$ ./bootstrap.sh

This makes ../third_party/masstree/libkohler_masstree_json.a used by building bamboo.

  • Build mimalloc
$ cd ../
$ ./bootstrap_mimalloc.sh

This makes ../third_party/mimalloc/out/release/libmimalloc.a used by building bamboo.

  • Build
$ mkdir build
$ cd build
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
$ ninja
  • Confirm usage
$ ./bamboo.exe -help
  • Execution example
$ numactl --interleave=all ./ss2pl.exe -clocks_per_us=2100 -extime=3 -max_ope=10 -rmw=0 -rratio=100 -thread_num=224 -tuple_num=1000000 -ycsb=1 -zipf_skew=0

How to customize options in CMakeLists.txt

  • ADD_ANALYSIS : If this is 1, it is deeper analysis than setting 0.
    default : 0
  • BACK_OFF : If this is 1, it use Cicada's backoff.
    default : 0
  • KEY_SORT : If this is 1, its transaction accesses records in ascending key order.
    default : 0
  • MASSTREE_USE : If this is 1, it use masstree as data structure. If not, it use simple array Îąs data structure. default : 1
  • VAL_SIZE : Value of key-value size. In other words, payload size.
    default : 4
  • NONTS : If this is 1, transactions use their thread IDs as timestamps. default : 0
    • suboption FAIR : If both this and NONTS are 1, threads increment their IDs to take turn committing transactions. default : 0
  • RANDOM : If this is 1, transactions randomly generate timestamps. default : 0

Optimizations

  • Backoff.
  • Define NONTS for TID, NONTS and FAIR for FairTID
  • Define RANDOM for RandID

Implementation

  • Lock : reader/writer lock

bamboo's People

Contributors

tatzhiro avatar

Watchers

 avatar

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.