Skip to content
RUBiS implementation that piggybacks some brownout-related information
Shell Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
rubis-control-tier @ 9048c3d
rubis-db-tier @ 8274155
rubis-web-tier @ 29be074
.gitmodules
README.md
start-experiment.sh
to-csv.py

README.md

Brownout RUBiS

Brownout is a software engineering paradigm to make cloud services more robust to capacity shortages. It requires the developer to mark a part of the response as optional and only serve it with a probability given by a dynamic parameter, called the dimmer. A controller monitors the response time of the service and adjusts the dimmer, so as to keep the application responsive. Details can be found in this article.

This repository contains the source code of the brownout version of RUBiS, an e-commerce website prototype, mimicking eBay. RUBiS is a popular benchmark choice in cloud computing research.

Usage

Each branch contains a tier (rubis-web-tier, rubis-db-tier, rubis-control-tier). Ensure you have Docker installed on your system.

  1. Checkout the repository with submodule:

     git clone --depth=1 --recursive git@github.com:cloud-control/brownout-rubis.git
    
  2. Run experiments

     cd brownout-rubis
     ./start-experiment.sh
    
  3. Test if everything works: Open this link; if you see the RUBiS logo and some items, then everything works fine.

  4. Shutdown: The code is meant to be stateless, so kill with fire!

     for tier in control web db; do
         docker rm -f rubis-$tier-tier-0
     done
    

Advanced Usage

You may use the DOCKER_HOST environment variable to deploy the whole experiment on a different machine.

For efficiency, the database tier's data is stored in a host folder, i.e., in /srv/brownout-rubis/data. If something went wrong during installation or you want to fully remove Brownout RUBiS, type:

sudo rm -f /srv/brownout-rubis/data

Contact

For questions or comments, please contact Cristian Klein cklein@cs.umu.se.

You can’t perform that action at this time.