Skip to content

Latest commit

 

History

History
40 lines (24 loc) · 1.78 KB

README.md

File metadata and controls

40 lines (24 loc) · 1.78 KB

akka failure detector benchmark

This project runs a benchmark for failure detectors (FD) against an akka cluster. Get more of the background in this article.

Configuration

Configure the benchmark by creating the file conf/application-prod.conf (it is included in the main conf/application.conf).

You'll need to configure Mailgun credentials and a benchmark plan, like so:

reporting.email.to = "<reporting email>"
reporting.mailgun.domain = "<mailgun domain>"
reporting.mailgun.key = "<mailgun key>"

benchmark.plan = [
  { fd: "akka.remote.AdaptiveAccrualFailureDetector", threshold: 0.2 },
  { fd: "akka.remote.AdaptiveAccrualFailureDetector", threshold: 0.25 },
  { fd: "akka.remote.AdaptiveAccrualFailureDetector", threshold: 0.3 },
  { fd: "akka.remote.PhiAccrualFailureDetector", threshold: 8 },
  { fd: "akka.remote.PhiAccrualFailureDetector", threshold: 9 },
  { fd: "akka.remote.PhiAccrualFailureDetector", threshold: 10 }
]

Deployment

First, build the benchmark JAR:

sbt assembly

Next, checkout the Terraform project at https://github.com/manuelbernhardt/akka-cluster-provision.

You will need to manually copy the resulting JAR file from the previous step into the terraform project folder, it is expected to be named akka-fd-benchmark.jar.

Follow the installation instructions of the terraform project (you will need to create a consul cluster) and then run the terraform job, which will also result in running the benchmark.

Do not forget to remove the infrastructure after the benchmark has run using terraform destroy.