https://github.com/databendlabs/jepsen.meta
databend metasrv jepsen test unit
https://github.com/databendlabs/jepsen.meta
Last synced: 9 months ago
JSON representation
databend metasrv jepsen test unit
- Host: GitHub
- URL: https://github.com/databendlabs/jepsen.meta
- Owner: databendlabs
- License: other
- Created: 2022-10-20T11:06:35.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-04T06:56:53.000Z (about 3 years ago)
- Last Synced: 2025-04-24T01:09:41.497Z (9 months ago)
- Language: Shell
- Size: 171 KB
- Stars: 6
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# jepsen.metasrv
databend metasrv jepsen test unit.
## Usage
### step 1: build metasrv java client
Go to `metasrv-java-client` directory run `gradle build` to build metasrv java client jar, copy `metasrv-java-client/build/libs/metasrv-java-client-1.0.jar` into `resources`.
### step 2: download databend package
Assume that you want to test Version `v0.8.77` of databend metasrv, first need to download the databend release package and copy it to `docker/packages`:
```
wget https://github.com/datafuselabs/databend/releases/download/v0.8.77-nightly/databend-v0.8.77-nightly-x86_64-unknown-linux-musl.tar.gz -P docker/packages
```
Replace `v0.8.77` to any version you want to test.
**Note: Now can use `prepare` script to do step 1 and step 2, like `./prepare --version v0.8.79`**
### step 3: start docker test containers
run `cd docker; ./bin/up`, it will start two types of container:
* node container: which will run the meta service, by default there will be 3 node container, if need to change the node count, modify the `bin/up` script.node container will be named by prefix `jepsen_n`, like `jepsen_n1`.
* console container: which will run the jepsen test script, console container will be named by `jepsen_control`.
After start the containers, run `docker ps` will see 4 containers:
```
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1754a0157421 jepsen_control "/bin/sh -c /init.sh" 41 seconds ago Up 40 seconds 0.0.0.0:49157->22/tcp, :::49157->22/tcp, 0.0.0.0:49156->8080/tcp, :::49156->8080/tcp jepsen-control
7eb1ad9c5630 jepsen_n2 "/usr/local/bin/boot…" 9 hours ago Up 40 seconds 0.0.0.0:49154->22/tcp, :::49154->22/tcp jepsen-n2
72090d630981 jepsen_n1 "/usr/local/bin/boot…" 9 hours ago Up 40 seconds 0.0.0.0:49153->22/tcp, :::49153->22/tcp jepsen-n1
940141d56e42 jepsen_n3 "/usr/local/bin/boot…" 9 hours ago Up 40 seconds 0.0.0.0:49155->22/tcp, :::49155->22/tcp jepsen-n3
```
### step 4: run jepsen test in control container
Run `./bin/console` in `docker` directory, it will enter the control container, and use the cmd like below to test metasrv:
```
./scripts/start-test --node-count 1 --version v0.8.79
```
* --node-count: Test Node count(Default 3), note that node count CAN NOT bigger the node container count.
* --time-limt: Test time limit(Default 5), in Seconds.
* --concurrency: Concurrency test client count(Default 5).
* --version: the package version download in `step 2`.
Note that the more `nodes`,`time-limit` and `concurrency`, the more test result, it will make the checker hard to analyse. In now time, the default arguments is enough.