Skip to content

benchmarks: add S3/LocalStack baselines and trim S3 workloads #10

benchmarks: add S3/LocalStack baselines and trim S3 workloads

benchmarks: add S3/LocalStack baselines and trim S3 workloads #10

Workflow file for this run

name: benchmarks
on:
workflow_dispatch:
pull_request:
jobs:
scenarios:
name: scenario benchmarks (gated)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}-${{ runner.arch }}-bench-${{ hashFiles('**/Cargo.toml') }}
cache-on-failure: false
- name: Run disk benchmark
run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-write-only.yaml
- name: Run mixed benchmark (disk)
run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-mixed.yaml
- name: Run compaction benchmark (disk)
run: cargo run -p tonbo-bench-runner -- --mode scenario --config benches/harness/configs/ci-compaction.yaml
- name: Compare against baseline
run: |
cargo run -p tonbo-bench-runner -- compare \
--current target/bench-results \
--baseline benchmarks/baselines/scenarios \
--thresholds benches/harness/configs/regression-thresholds.yaml \
--missing-baseline warn \
--report target/bench-results/regression-report.json
- name: Generate performance report
run: |
cargo run -p tonbo-bench-runner -- report \
--results-dir target/bench-results \
--limit 10 \
--output-md target/bench-reports/perf-report.md \
--output-json target/bench-reports/perf-report.json
- name: Upload benchmark artifacts
uses: actions/upload-artifact@v4
with:
name: tonbo-benchmarks
path: |
target/bench-results/**/*.json
target/bench-results/regression-report.json
target/bench-reports/perf-report.md
target/bench-reports/perf-report.json
if-no-files-found: ignore