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

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.


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
  2. Run experiments

     cd brownout-rubis
  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

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


For questions or comments, please contact Cristian Klein

You can’t perform that action at this time.