Skip to content
Simulator for the brownout replica controller
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.

Brownout Replica Controller Simulator

The aim of this simulator is allow quick testing of new brownout replica controller. More information about brownout can be found in the following article:

Cristian Klein, Martina Maggio, Karl-Erik Årzén, Francisco Hernández-Rodriguez, "Brownout: Building More Robust Cloud Applications", ICSE, 2014

A pre-print can be downloaded here.


Self-adaptation is a first class concern for cloud applications, which should be able to withstand diverse runtime changes. Variations are simultaneously happening both at the cloud infrastructure level - for example hardware failures - and at the user workload level - flash crowds. However, robustly withstanding extreme variability, requires costly hardware over-provisioning.

In this paper, we introduce a self-adaptation programming paradigm called brownout. Using this paradigm, applications can be designed to robustly withstand unpredictable runtime variations, without over-provisioning. The paradigm is based on optional code that can be dynamically deactivated through decisions based on control theory.

We modified two popular web application prototypes - RUBiS and RUBBoS - with less than 170 lines of code, to make them brownout-compliant. Experiments show that brownout self-adaptation dramatically improves the ability to withstand flash-crowds and hardware failures.


To conduct the experiments, we used Ubuntu 12.04.2 LTS. Other software has been installed from the official repositories, specifically:

  • Python
  • Numpy

Installing this software on top of Ubuntu can be achieved using the following commands:

sudo apt-get install python python-numpy

For questions or comments, please contact Cristian Klein

You can’t perform that action at this time.