(Ideally deterministic) testing framework for distributed systems
- probably only on Linux x86_64
- Go to
experiments/event-processing-test/
. - Build orchestrator with
make
. - Deploy 1000 experiments in 200 separate orchestrators using the
visited
heuristic:
./deploy/deploy_orch.py --yaml ./deploy/tcp_mvp.yaml -t 1000 -p 200 -s 0 --mode visited
- If there are any bugs, replay the failed seed
{failed_seed}
while outputting stderr using
./deploy/deploy_orch.py --yaml ./deploy/tcp_mvp.yaml --mode replay --input-file /tmp/replay_orch_{failed_seed} --enable-stderr
- Logs for nodes should exist at
/tmp/filter_{addr}
and clients at/tmp/client_{idx}
. Logs for the orchestrator itself should exist at/tmp/trace_NONE
.
Note: You may need to rebuild the Raft implementation, which you can do by first installing Rust, cloning this repository and running
cargo build --example tcp_mvp