Skip to content

Commit

Permalink
DOC-1300: add performance test
Browse files Browse the repository at this point in the history
  • Loading branch information
BohuTANG committed Aug 5, 2021
1 parent bff4021 commit f15e6ab
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 17 deletions.
28 changes: 14 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 13 additions & 3 deletions website/datafuse/docs/rfcs/query/0004-performance-test.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Design of test infra for performance test

Currently we have already supports to run performance tests locally in tests/perfs directory, and here we need to support performance testing in CI
Currently, we have already supports to run performance tests locally in tests/perfs directory, and here we need to support performance testing in CI

Decoupling compute and storage allow datafuse to integrate into kubernetes easily.
With the support of kubernetes platform, datafuse benchmarking could achieve the following advantages:
Expand All @@ -9,22 +9,27 @@ With the support of kubernetes platform, datafuse benchmarking could achieve the
3. For following tests, we need to test on TPC benchmark and integrate fuse-store storage layer to test infrastructure, thus far kubernetes can help instance scaling easily

## Goals

1. Fast CI speed is desired, By design one performance testing should not exceed two hours(including docker build time and performance testing running time)
2. Expandable: supports to deploy performance tests on scale, and also supports to deploy on a single machine for affordable CI
3. Cloud Native environment supports: Should be able to deploy whole platform on different cloud providers like GKE, EKS
4. High Availability: both webhook and runner should support to self-healing and do not have single point failure
5. Observability: whole process should be observable, should collect logs for performance running instances and collect compare report results

## Non Goals:
## Non Goals

1. Hybrid Cloud not supported for alpha version
2. Networking optimization for github action part(typically CI fail is caused by networking problem
3. Dashboard(Currently, prototype implemented, but priority here is low)

## Performance Test API:
## Performance Test API

Support three semantics

```bash
/run-perf <branch-name>
```

Compare performance difference between current pull requests’ latest SHA build and given branch name

Branch-name supports:
Expand All @@ -35,24 +40,29 @@ Branch-name supports:
```bash
/rerun-perf <branch-name>
```

Similar to run-perf part, the ONLY difference is that it would bypass docker build part and assume performance docker build images are ready for test

Examples:
```bash
/run-perf master
```

It will compare performance between current PR’s latest commit and master branch
```bash
/run-perf v1.1.1-nightly
```

It will compare performance between current PR’s latest commit and release tag v1.1.1-nightly
```bash
/run-perf latest
```

It will compare performance between current PR’s latest commit and the latest release tag
```bash
/rerun-perf master
```

Do the same thing as `/run-perf master` did, but will skip docker image building steps

For more information please checkout [test-infra](https://github.com/datafuselabs/test-infra)
1 change: 1 addition & 0 deletions website/datafuse/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ nav:
- FuseQuery Expression: rfcs/query/0002-plan-expression.md
- FuseQuery Shuffle: rfcs/query/0003-data-shuffle.md
- FuseStore Design: rfcs/store/0001-store-design.md
- Performance Test: rfcs/query/0004-performance-test.md
- Performance: overview/performance.md

# Google Analytics
Expand Down

0 comments on commit f15e6ab

Please sign in to comment.