Minimize default sql benchmarks suite#8465
Conversation
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
| outputs: | ||
| benchmark_matrix: ${{ steps.matrix.outputs.benchmark_matrix }} | ||
| steps: | ||
| - name: Resolve benchmark matrix | ||
| id: matrix | ||
| shell: bash | ||
| run: | | ||
| cat > matrix.json <<'__BENCHMARK_MATRIX__' | ||
| ${{ inputs.benchmark_matrix }} | ||
| __BENCHMARK_MATRIX__ | ||
|
|
||
| case "${{ inputs.benchmark_profile }}" in | ||
| full) | ||
| jq -c "." matrix.json > resolved-matrix.json | ||
| ;; | ||
| base) | ||
| jq -c ' | ||
| map( | ||
| select(.id != "tpch-s3-10" and .subcommand != "appian") | ||
| | .data_formats |= map(select(. != "vortex-compact" and . != "duckdb")) | ||
| | .pr_targets |= map(select(.format != "vortex-compact" and (.engine != "duckdb" or .format != "duckdb"))) | ||
| | .develop_targets |= map(select(.format != "vortex-compact" and (.engine != "duckdb" or .format != "duckdb"))) | ||
| ) | ||
| ' matrix.json > resolved-matrix.json | ||
| ;; | ||
| *) | ||
| echo "::error::Unknown benchmark_profile '${{ inputs.benchmark_profile }}'. Expected 'full' or 'base'." | ||
| exit 1 | ||
| ;; | ||
| esac | ||
|
|
||
| { | ||
| echo "benchmark_matrix<<__BENCHMARK_MATRIX__" | ||
| cat resolved-matrix.json | ||
| echo "__BENCHMARK_MATRIX__" | ||
| } >> "$GITHUB_OUTPUT" |
There was a problem hiding this comment.
is this overly complex? should be have a way to write a list of strings and have those be converted into bench run commands?
There was a problem hiding this comment.
we have a JSON format, this is a transformation on top of it, I can also use that.
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Merging this PR will not alter performance
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | chunked_bool_canonical_into[(1000, 10)] |
20.3 µs | 34.9 µs | -41.86% |
| ⚡ | Simulation | take_10k_random |
255.8 µs | 197.9 µs | +29.25% |
| ⚡ | Simulation | take_10k_contiguous |
276.3 µs | 218.4 µs | +26.49% |
| ⚡ | Simulation | patched_take_10k_contiguous_patches |
291 µs | 232.3 µs | +25.27% |
| ⚡ | Simulation | patched_take_10k_random |
303 µs | 244.2 µs | +24.08% |
| ⚡ | WallTime | cuda/bitpacked_u8/unpack/3bw[100M] |
353.5 µs | 302.3 µs | +16.93% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing adamg/minimize-benchmarks (b93e467) with develop (69ce1ed)
Footnotes
-
1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports. ↩
|
This PR is cursed CI just keeps getting queued |
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling (base)Vortex (geomean): 0.967x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (0.967x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: FineWeb NVMe (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.974x ➖, 1↑ 0↓)
datafusion / parquet (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.987x ➖, 1↑ 0↓)
duckdb / parquet (1.004x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -46.3% overall, 0↑ 3↓)
Totals:
|
Benchmarks: TPC-H SF=1 on NVME (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.002x ➖, 0↑ 0↓)
datafusion / parquet (0.874x ✅, 9↑ 0↓)
datafusion / arrow (0.947x ➖, 3↑ 1↓)
duckdb / vortex-file-compressed (1.009x ➖, 0↑ 0↓)
duckdb / parquet (1.026x ➖, 0↑ 2↓)
File Size Changes (17 files changed, -44.4% overall, 3↑ 14↓)
Totals:
|
Benchmarks: TPC-DS SF=1 on NVME (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.085x ➖, 0↑ 29↓)
datafusion / parquet (1.090x ➖, 1↑ 32↓)
duckdb / vortex-file-compressed (1.105x ❌, 1↑ 44↓)
duckdb / parquet (1.096x ➖, 0↑ 43↓)
File Size Changes (31 files changed, -43.5% overall, 3↑ 28↓)
Totals:
|
Benchmarks: Statistical and Population Genetics (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (1.001x ➖, 0↑ 0↓)
duckdb / parquet (1.014x ➖, 0↑ 0↓)
File Size Changes (3 files changed, -32.3% overall, 1↑ 2↓)
Totals:
|
Benchmarks: FineWeb S3 (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.034x ➖, 0↑ 0↓)
datafusion / parquet (1.408x ❌, 0↑ 7↓)
duckdb / vortex-file-compressed (1.126x ➖, 0↑ 1↓)
duckdb / parquet (1.104x ➖, 0↑ 0↓)
|
Benchmarks: Clickbench on NVME (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.997x ➖, 1↑ 3↓)
datafusion / parquet (0.997x ➖, 1↑ 1↓)
duckdb / vortex-file-compressed (1.010x ➖, 0↑ 4↓)
duckdb / parquet (0.997x ➖, 1↑ 0↓)
File Size Changes (201 files changed, -39.1% overall, 45↑ 156↓)
Totals:
|
Benchmarks: TPC-H SF=10 on NVME (base)Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.012x ➖, 0↑ 0↓)
datafusion / parquet (1.000x ➖, 0↑ 0↓)
datafusion / arrow (1.095x ➖, 0↑ 10↓)
duckdb / vortex-file-compressed (1.017x ➖, 0↑ 0↓)
duckdb / parquet (1.018x ➖, 0↑ 0↓)
File Size Changes (47 files changed, -44.5% overall, 11↑ 36↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 (base)Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.470x ❌, 0↑ 13↓)
datafusion / parquet (1.493x ❌, 0↑ 20↓)
duckdb / vortex-file-compressed (1.055x ➖, 0↑ 1↓)
duckdb / parquet (1.128x ➖, 0↑ 2↓)
|
Summary
This PR changes the default benchmark suite that runs when adding
action/benchmark-sqlby removing the following benchmarks from the baseline:duckdb:duckdbandvortex-compactrunsThe full run is unchanged, and will still run post-merge or when using the
action/benchmark-sql-fulllabel.Happy to remove more things, but I think these are the least contentious targets we can start with.