This repo contains code for the enforcement of certain schedules in the execution of Cassandra distributed system.
- Jenv with Java 7 (for compiling Cassandra 2.0.0) and Java 8 (for compiling the server code) installations
- Ant 1.9.14 (for compiling Cassandra 2.0.0)
test-server:
Keeps the test server code which communicates the Cassandra nodes to intercept and enforce the processing of certain messagescassandra:
Keeps the configuration, data and query files to be used by Cassandra system
Go to the server directory and build the explorer jar file:
cd test-server
./mvnw clean install
Clone the source code of Cassandra-2.0.0 which is instrumented to communicate to the test server:
git clone https://gitlab.mpi-sws.org/burcu/cas-6023.git
Place the folder into explorer-server
and compile the systems:
cd explorer-server/cassandra-6023
ant
You can run tests with arbitrary link failures or node failures by configuring the following parameters in explorer-server/test-server/explorer.conf
file:
- (Necessary) The paths of directories and binaries
- (Algorithm parameters) Arbitrary link failures or node failures, number of failures, link reestablishment period, etc.
- (Optional) Timeouts, output files, etc.
The default algorithm parameters in the file reproduce the cass-6023 bug by sampling from uniform synchronous executoins (i.e., by introducing node failures).
To run the test, execute the following command:
java -jar target/test-server-jar-with-dependencies.jar