Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 38 commits ahead of tudang:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The code in this repository aims at reproducing the experiments related to the following paper:

Higher SLA Satisfaction in Datacenters. Huynh Tu Dang, Fabien Hermenier. Proceedings of "Workshop on Hot Topics in Dependable Systems 2013"

For any questions about the paper, the experiments, or basically anything related to BtrPlace. see the BtrPlace website.

Binary distribution


Building from sources


  • JDK 7+
  • maven 3+

The source of the released versions are directly available in the Tag section. You can also download them using github features. Once downloaded, move to the source directory then execute the following command to make the distribution:

$ mvn clean assembly:assembly -DskipTests

The resulting standalone distribution will be in target/hotdep-2013-1.0-dist.tar.gz

Reproducing the results

To run the experiments, you must have a running Java 7 environment.

#Download and extract the [workload](
#from [BtrPlace Website](

#Run the evaluator. Here using dist_evaluators
#to process the workload 'hotdep-2013-workload' on the 8 nodes
# listed in the 'nodes' file
$ ./bin/ nodes hotdep-2013-workload results

#Follow the progress
$ wc -l results/*/results.txt
     100 results/bs_continuous/results.txt
     100 results/bs_discrete/results.txt
     100 results/he_continuous/results.txt
     100 results/he_discrete/results.txt
     100 results/sf_continuous/results.txt
     100 results/sf_discrete/results.txt
     100 results/ve_continuous/results.txt
     100 results/ve_discrete/results.txt
     800 total
#Yeah! 100 results per file. The evaluation is finished

#Produce the datafile
$ ./bin/ results/*/results.txt > results/allResults.txt

#Analyse the data using R
$ ./bin/discrete_reports.R results/allResults.txt results/distribution.pdf
$ ./bin/overhead.R results/allResults.txt results/

Additional evaluator*.sh scripts are available in the bin directory. They allow to process the workload at a finer grain.

The raw results used in the paper is also available online, from the BtrPlace Website.

Generating a custom workload

This can be done using the bin/ and the bin/ scripts:

$ ./bin/
Missing required option: o
usage: InstanceMaker
 -a <arg>   number of applications
 -o <arg>   output JSON file
 -p <arg>   number of nodes per rack
 -r <arg>   number of racks

##Datafile format ## The file is a CSV file with tabulations used as a separator.

  1. Instance file name
  2. Scenario type: 0=ve, 1=he, 2=sf, 3=bs
  3. Discrete (0) or Continuous (1) restriction
  4. Solving status: -1= Unable to state about the feasibility, 0= No solution (proved), 1= At least 1 solution
  5. Number of violated spread constraints
  6. Number of violated among constraints
  7. Number of violated splitAmong constraints
  8. Number of violated singleResourceCapacity constraints
  9. Number of violated MaxOnline constraints
  10. Number of affected SLAs
  11. Current CPU load
  12. Current Memory load
  13. CPU load once the plan is applied
  14. Memory load once the plan is applied
  15. core-RP building duration (ms.)
  16. RP-specialisation duration (ms.)
  17. solving duration (ms.)
  18. Estimated plan duration (sec.)
  19. Number of actions
  20. Number of BootVM actions
  21. Number of MigrateVM actions
  22. Number of Allocate actions
  23. Number of BootNode actions
  24. Number of ShutdownNode actions


Evaluation continuous restriction of placement constraints







No packages published


  • Java 87.9%
  • R 8.8%
  • Shell 3.3%