Skip to content

Commit e0a2bdf

Browse files
connortsui20claude
andauthored
Benchmarks Website Version 3 (#7643)
## Summary Rewrites the benchmarks website. Replaces the static `data.json.gz` model with a single Rust server binary that owns a DuckDB database and accepts `POST /api/ingest` from CI. ## Design - Single binary: axum + maud (SSR HTML) + DuckDB + Chart.js. All static assets `include_bytes!`'d. - 5 fact tables (compression time, query measurement, vector search, RAG, random access). Backup is a file copy. - Ingest: versioned JSON envelopes, bearer-token gated. - Migrator ports v2 history forward via a classifier that routes each record to a fact table or skips it with a typed reason. - Charts/groups slug-addressed, URL round-trip with no DB lookup. - Routes: `/`, `/chart/{slug}`, `/group/{slug}`, `GET /api/chart/{slug}`. - Deploy: one binary, one DuckDB file, one `INGEST_BEARER_TOKEN`. UI/UX is still TBD — the relational backend opens up options we didn't have before. Signed-off-by: Claude <noreply@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent d3ff1f1 commit e0a2bdf

85 files changed

Lines changed: 16483 additions & 270 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,8 @@ jobs:
358358
if: matrix.os == 'windows-x64'
359359
run: |
360360
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast `
361-
--exclude vortex-bench --exclude vortex-python --exclude vortex-duckdb `
361+
--exclude vortex-bench --exclude vortex-bench-server `
362+
--exclude vortex-python --exclude vortex-duckdb `
362363
--exclude vortex-fuzz --exclude vortex-cuda --exclude vortex-nvcomp `
363364
--exclude vortex-cub --exclude vortex-test-e2e-cuda --exclude duckdb-bench `
364365
--exclude lance-bench --exclude datafusion-bench --exclude random-access-bench `
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Publish Bench Server
2+
3+
on:
4+
push:
5+
branches: [develop]
6+
paths:
7+
- "benchmarks-website/server/**"
8+
- "vortex-bench/**"
9+
- "Cargo.lock"
10+
- ".github/workflows/publish-bench-server.yml"
11+
workflow_dispatch: { }
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 30
17+
permissions:
18+
contents: read
19+
packages: write
20+
id-token: write
21+
steps:
22+
- uses: actions/checkout@v6
23+
24+
- name: Log in to GHCR
25+
uses: docker/login-action@v4
26+
with:
27+
registry: ghcr.io
28+
username: ${{ github.actor }}
29+
password: ${{ secrets.GITHUB_TOKEN }}
30+
31+
- name: Set up QEMU
32+
uses: docker/setup-qemu-action@v4
33+
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v4
36+
37+
- name: Build and push
38+
uses: docker/build-push-action@v7
39+
with:
40+
context: .
41+
file: ./benchmarks-website/server/Dockerfile
42+
platforms: linux/arm64
43+
push: true
44+
tags: |
45+
ghcr.io/${{ github.repository }}/vortex-bench-server:latest
46+
ghcr.io/${{ github.repository }}/vortex-bench-server:${{ github.sha }}

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,6 @@ trace*.pb
242242

243243
# pytest-benchmark output
244244
vortex-python/.benchmarks/
245+
# For local benchmarks website server and things like the WAL
246+
**.duckdb*
247+
.bench-env

0 commit comments

Comments
 (0)