All Projects → pingcap → Chaos

pingcap / Chaos

Licence: other
A test framework for linearizability check with Go

Programming Languages

go
31211 projects - #10 most used programming language

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, sends the command through ssh to control the service, like starting/stoping the service, or using a nemesis to disturb the whole cluster.

           +-------------+
  +------- | controller  | -------+
  |        +-------------+        |
  |          |    |    |          |
  |     +----+    |    |          |
  v     v         |    |          v
+----+----+----+  |    |  +----+----+
| n1 | n2 | n3 | <+    +> | n4 | n5 |
+----+----+----+          +----+----+

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

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

Scaffold

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].