Architecture

cstar_perf is both a featureful web-based testing service, as well as a collection of command line and software libraries that can individually be used to incorporate distributed cassandra testing in other projects.

Here’s a list of the major pieces that make up cstar_perf:

fab_cassandra.py

This is a fabric script that handles the details of setting up a Cassandra cluster on a cluster of machines. It can check out Cassandra source from git, build it, configure it, start it, run testing workloads, and monitor the cluster.

benchmark.py

A higher abstraction above fab_cassandra.py that handles common cluster and benchmarking tasks.

bootstrap.py

Command line tool to configure and start a Cassandra cluster. Uses the benchmark.py API.

stress_compare.py

Command line tool to setup one or more test scenarios and compare performance. Uses the benchmark.py API.

cstar_perf_frontend

cstar_perf_frontend uses the above tools to setup a web frontend to easily create test jobs and archive the results.

cstar_perf_server

A web server that provides the user interface and backend API for talking to a test clusters.

cstar_perf_client

The daemon to run on the test cluster that accepts jobs from cstar_perf_server. Wraps stress_compare.py.