Skip to content
Shuai edited this page Mar 29, 2017 · 2 revisions

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.

Retrieve sources

git clone --recursive https://github.com/mpaxos/rococo.git

Install Dependency

Rococo 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 tabulate

Compile

Rococo 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 -t

Install any software dependencies that is suggested missing.

Then, it is time to build.

./waf

On a successful build, you should read something like this:

'build' finished successfully (0.015s)

Run

The run.py script is the entrance to launch a Rococo trial. Simply try:

./run.py

This will launch a trial of two servers both located at localhost. It is equivalent to:

./run.py -f config/tpccd-sample.xml

The 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!

Clone this wiki locally