-
Notifications
You must be signed in to change notification settings - Fork 15
Setup guide
Warning: This repo is deprecated and this document only serves to help you run an old version of the code to generate the results in our paper. Last time I check this runs okay on a Ubuntu 16.10 desktop. When I developed this I used Ubuntu 14.04.
git clone --recursive https://github.com/mpaxos/rococo.gitRococo requires the following software packages which can be installed via apt-get or pip.
- g++ >=4.8, or clang++ >=3.6 (w/ libc++)
- pkg-config
- boost
- apache portable runtime
- python-dev
- google-perftools
- yaml-cpp
- (python) tabulate
On my desktop with Ubuntu 15.04, executing the following commands will add all above packages:
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install -y clang
sudo apt-get install -y libapr1-dev libaprutil1-dev
sudo apt-get install -y libboost-all-dev
sudo apt-get install -y libgoogle-perftools-dev
sudo apt-get install -y libprotobuf-dev
sudo apt-get install -y protobuf-compiler
sudo apt-get install -y libzmq3-dev
sudo apt-get install -y libyaml-cpp-dev
sudo apt-get install -y python-dev
sudo apt-get install -y python-pip
pip install --user tabulateRococo uses the good waf as building system. (Notice: there is a CMakeLists.txt file which I only use to drive a CMake-based IDE such Clion, thus it is not sufficient to build the system.)
To compile, first step is to check for library dependency and other stuff.
cd rococo
# checkout to a version that runs
git checkout 1def09d4761c0d4961e786e31467d016d048572b
./waf configure -tInstall any software dependencies that is suggested missing.
Then, it is time to build.
./wafOn a successful build, you should read something like this:
'build' finished successfully (0.015s)The run.py script is the entrance to launch a Rococo trial. Simply try:
./run.pyThis will launch a trial of two servers both located at localhost. It is equivalent to:
./run.py -f config/tpccd-sample.xmlThe tpccd-sample.xml contains most of the configurations in the trial, including number of servers, number of coordinators(clients), the kind of benchmark to run, etc. The contents of the file are more or less self-explanatory.
If the trial runs successfully, you should see information such as these scrolling on the screen:
Progress: 17%
TOTAL: elapsed time: 10.07
RATIO NAME start finish attempts commits TPS
------- ------------ ------- -------- ---------- --------- -----
4.01% DELIVERY 1049 1049 1049 1049 104
44.69% NEW ORDER 11678 11676 11676 11676 1160
43.2% PAYMENT 11291 11287 11287 11287 1121
4.11% STOCK LEVEL 1076 1074 1074 1074 107
3.99% ORDER STATUS 1043 1043 1043 1043 104
---- Total 26137 26129 26129 26129 2595
INTERVAL: elapsed time: 5.06
RATIO NAME start finish attempts commits TPS min lt max lt 50.0% LATENCY 90.0% LATENCY 99.0% LATENCY 99.9% LATENCY 50.0% ATT_LT 90.0% ATT_LT
------- ------------ ------- -------- ---------- --------- ----- -------- -------- --------------- --------------- --------------- --------------- -------------- --------------
3.99% DELIVERY 512 512 512 512 101 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9
44.76% NEW ORDER 5740 5739 5739 5739 1134 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9
43.07% PAYMENT 5523 5523 5523 5523 1091 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9
4.11% STOCK LEVEL 527 527 527 527 104 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9
4.07% ORDER STATUS 521 522 522 522 103 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9 99999.9
---- Total 12823 12823 12823 12823 2533 0 0 0 0 0 0 0 0
Total asking finish: 279507747493120
----------------------------------------------------------------------Now congratulations! You have passed the Rococo primary school. Good luck!