Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
VORTEX_EXPERIMENTAL_PATCHED_ARRAY: "1"
FLAT_LAYOUT_INLINE_ARRAY_NODE: "1"
run: |
bash scripts/bench-taskset.sh target/release_debug/${{ matrix.benchmark.id }} --formats ${{ matrix.benchmark.formats }} -d gh-json -o results.json
bash scripts/bench-taskset.sh target/release_debug/${{ matrix.benchmark.id }} --formats ${{ matrix.benchmark.formats }} -d gh-json -o results.json --gh-json-v3 results.v3.jsonl

- name: Setup AWS CLI
uses: aws-actions/configure-aws-credentials@v6
Expand All @@ -105,6 +105,19 @@ jobs:
run: |
bash scripts/cat-s3.sh vortex-ci-benchmark-results data.json.gz results.json

- name: Ingest results to v3 server
if: vars.V3_INGEST_URL != ''
continue-on-error: true
shell: bash
env:
INGEST_BEARER_TOKEN: ${{ secrets.INGEST_BEARER_TOKEN }}
run: |
python3 scripts/post-ingest.py results.v3.jsonl \
--server "${{ vars.V3_INGEST_URL }}" \
--commit-sha "${{ github.sha }}" \
--benchmark-id "${{ matrix.benchmark.id }}" \
--repo-url "${{ github.server_url }}/${{ github.repository }}"

- name: Alert incident.io
if: failure()
uses: ./.github/actions/alert-incident-io
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,8 @@ jobs:
if: matrix.os == 'windows-x64'
run: |
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast `
--exclude vortex-bench --exclude vortex-python --exclude vortex-duckdb `
--exclude vortex-bench --exclude vortex-bench-server `
--exclude vortex-python --exclude vortex-duckdb `
--exclude vortex-fuzz --exclude vortex-cuda --exclude vortex-nvcomp `
--exclude vortex-cub --exclude vortex-test-e2e-cuda --exclude duckdb-bench `
--exclude lance-bench --exclude datafusion-bench --exclude random-access-bench `
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/publish-bench-server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Publish Bench Server

on:
push:
branches: [develop]
paths:
- "benchmarks-website/server/**"
- "vortex-bench/**"
- "Cargo.lock"
- ".github/workflows/publish-bench-server.yml"
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
packages: write
id-token: write
steps:
- uses: actions/checkout@v6

- name: Log in to GHCR
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Build and push
uses: docker/build-push-action@v7
with:
context: .
file: ./benchmarks-website/server/Dockerfile
platforms: linux/arm64
push: true
tags: |
ghcr.io/${{ github.repository }}/vortex-bench-server:latest
ghcr.io/${{ github.repository }}/vortex-bench-server:${{ github.sha }}
15 changes: 15 additions & 0 deletions .github/workflows/sql-benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,7 @@ jobs:
bash scripts/bench-taskset.sh uv run --project bench-orchestrator vx-bench run "${{ matrix.subcommand }}" \
--targets-json '${{ steps.targets.outputs.targets_json }}' \
--output results.json \
--gh-json-v3 results.v3.jsonl \
--no-build \
--runner "ec2_${{ inputs.machine_type }}" \
${{ matrix.iterations && format('--iterations {0}', matrix.iterations) || '' }} \
Expand All @@ -395,6 +396,7 @@ jobs:
bash scripts/bench-taskset.sh uv run --project bench-orchestrator vx-bench run "${{ matrix.subcommand }}" \
--targets-json '${{ steps.targets.outputs.targets_json }}' \
--output results.json \
--gh-json-v3 results.v3.jsonl \
--no-build \
--runner "ec2_${{ inputs.machine_type }}" \
${{ matrix.iterations && format('--iterations {0}', matrix.iterations) || '' }} \
Expand Down Expand Up @@ -499,6 +501,19 @@ jobs:
run: |
bash scripts/cat-s3.sh vortex-ci-benchmark-results data.json.gz results.json

- name: Ingest results to v3 server
if: inputs.mode == 'develop' && vars.V3_INGEST_URL != ''
continue-on-error: true
shell: bash
env:
INGEST_BEARER_TOKEN: ${{ secrets.INGEST_BEARER_TOKEN }}
run: |
python3 scripts/post-ingest.py results.v3.jsonl \
--server "${{ vars.V3_INGEST_URL }}" \
--commit-sha "${{ github.sha }}" \
--benchmark-id "${{ matrix.id }}" \
--repo-url "${{ github.server_url }}/${{ github.repository }}"

- name: Upload File Sizes
if: inputs.mode == 'develop' && matrix.remote_storage == null
shell: bash
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/v3-commit-metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Posts a v3 ingest envelope with no records on every push to develop, so the
# `commits` dim stays populated even when no benchmark ran.

name: v3 commit metadata

on:
push:
branches: [develop]
workflow_dispatch:

permissions:
contents: read

jobs:
commit-metadata:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 2

- name: Ingest commit metadata to v3 server
if: vars.V3_INGEST_URL != ''
continue-on-error: true
shell: bash
env:
INGEST_BEARER_TOKEN: ${{ secrets.INGEST_BEARER_TOKEN }}
run: |
echo -n > empty.jsonl
python3 scripts/post-ingest.py empty.jsonl \
--server "${{ vars.V3_INGEST_URL }}" \
--commit-sha "${{ github.sha }}" \
--benchmark-id "commit-metadata" \
--repo-url "${{ github.server_url }}/${{ github.repository }}"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -242,3 +242,6 @@ trace*.pb

# pytest-benchmark output
vortex-python/.benchmarks/
# For local benchmarks website server and things like the WAL
**.duckdb*

Loading
Loading