foxmailed / chaos

A test framework for linearizability check with Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chaos

Chaos is used to check the distributed system linearizability.

Chaos is inspired by jepsen and uses porcupine as its linearizability checker.

Architecture

Chaos runs your registered database on 5 nodes, and starts an agent in every node too. The agent will receive the command sent from the controller to control the service, like starting/stoping the service, or using a nemesis to disturb the whole cluster.

Architecture

Usage

In one shell, we start the 5 nodes and the controller.

cd docker
./up.sh

In another shell, use docker exec -it chaos-control bash to enter the controller, then:

# build the node and your own chaos test
make

# deploy and start node agent
./scripts/deploy_agent.sh
./scripts/start_agent.sh

# run you own chaos like
./bin/chaos-tidb

Scaffold

It is very easy to write your own chaos test. TODO...

About

A test framework for linearizability check with Go

License:Apache License 2.0


Languages

Language:Go 93.4%Language:Shell 6.0%Language:Makefile 0.6%