Verify Vortex benchmark output - #9063
Conversation
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
| // in ClickBench. | ||
| ctx.execute_query_result("create macro if not exists octet_length(a) as strlen(a)")?; | ||
|
|
||
| if matches!(args.benchmark, BenchmarkArg::VortexQueries) { |
There was a problem hiding this comment.
I would really like to figure out a way to not having to check per benchmark + only doing this for one engine.
There was a problem hiding this comment.
Let's merge this as for now so that my work on zone maps could verify the bench results, and then I'll work on a proper solution, WDYT?
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
Benchmarks: PolarSignals Profiling 📖Vortex (geomean): 0.994x ➖ How to read Verdict and Engines
datafusion / vortex-file-compressed (0.994x ➖, 0↑ 1↓)
No file size changes detected. |
Benchmarks: TPC-H SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.085x ➖, 0↑ 10↓)
datafusion / vortex-compact (1.070x ➖, 0↑ 6↓)
datafusion / parquet (1.057x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed (1.064x ➖, 0↑ 4↓)
duckdb / vortex-compact (1.055x ➖, 0↑ 3↓)
duckdb / parquet (1.081x ➖, 0↑ 5↓)
duckdb / duckdb (1.042x ➖, 0↑ 1↓)
File Size Changes (34 files changed, +0.0% overall, 18↑ 16↓)
Totals:
|
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.995x ➖, 0↑ 0↓)
datafusion / parquet (1.018x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.004x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.022x ➖, 0↑ 1↓)
duckdb / parquet (1.000x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: FineWeb NVMe 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.006x ➖, 0↑ 0↓)
datafusion / vortex-compact (1.025x ➖, 0↑ 0↓)
datafusion / parquet (1.014x ➖, 0↑ 1↓)
duckdb / vortex-file-compressed (1.034x ➖, 0↑ 1↓)
duckdb / vortex-compact (0.995x ➖, 1↑ 0↓)
duckdb / parquet (1.003x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: TPC-DS SF=1 on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.987x ➖, 1↑ 0↓)
datafusion / vortex-compact (0.989x ➖, 0↑ 0↓)
datafusion / parquet (0.992x ➖, 2↑ 2↓)
duckdb / vortex-file-compressed (0.989x ➖, 3↑ 1↓)
duckdb / vortex-compact (0.996x ➖, 0↑ 2↓)
duckdb / parquet (0.985x ➖, 2↑ 0↓)
duckdb / duckdb (1.001x ➖, 1↑ 1↓)
No file size changes detected. |
Benchmarks: Statistical and Population Genetics 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
duckdb / vortex-file-compressed (0.997x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.984x ➖, 0↑ 0↓)
duckdb / parquet (0.988x ➖, 0↑ 0↓)
No file size changes detected. |
Benchmarks: Clickbench Sorted on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.022x ➖, 0↑ 1↓)
datafusion / parquet (0.975x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (0.998x ➖, 0↑ 1↓)
duckdb / parquet (0.996x ➖, 0↑ 0↓)
duckdb / duckdb (1.000x ➖, 0↑ 0↓)
File Size Changes (201 files changed, -0.0% overall, 102↑ 99↓)
Totals:
|
Benchmarks: FineWeb S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.061x ➖, 0↑ 0↓)
datafusion / vortex-compact (0.997x ➖, 0↑ 1↓)
datafusion / parquet (0.947x ➖, 1↑ 0↓)
duckdb / vortex-file-compressed (1.004x ➖, 0↑ 0↓)
duckdb / vortex-compact (0.989x ➖, 0↑ 0↓)
duckdb / parquet (1.010x ➖, 0↑ 0↓)
|
Benchmarks: TPC-H SF=10 on NVME 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.896x ✅, 8↑ 0↓)
datafusion / vortex-compact (0.905x ➖, 8↑ 0↓)
datafusion / parquet (0.986x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (0.946x ➖, 3↑ 0↓)
duckdb / vortex-compact (0.973x ➖, 2↑ 1↓)
duckdb / parquet (1.036x ➖, 1↑ 5↓)
duckdb / duckdb (0.989x ➖, 0↑ 0↓)
File Size Changes (64 files changed, +0.1% overall, 48↑ 16↓)
Totals:
|
Benchmarks: TPC-H SF=1 on S3 📖Verdict: No clear signal (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.099x ➖, 1↑ 3↓)
datafusion / vortex-compact (1.072x ➖, 0↑ 1↓)
datafusion / parquet (1.146x ➖, 0↑ 4↓)
duckdb / vortex-file-compressed (1.066x ➖, 0↑ 0↓)
duckdb / vortex-compact (1.036x ➖, 0↑ 0↓)
duckdb / parquet (1.264x ➖, 0↑ 6↓)
|
Benchmarks: Random Access 📖Vortex (geomean): 0.870x ✅ How to read Verdict and Engines
unknown / unknown (0.881x ✅, 18↑ 0↓)
|
Benchmarks: Clickbench on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.118x ❌, 0↑ 26↓)
datafusion / parquet (1.105x ❌, 0↑ 24↓)
duckdb / vortex-file-compressed (1.099x ➖, 0↑ 18↓)
duckdb / parquet (1.044x ➖, 0↑ 3↓)
duckdb / duckdb (1.047x ➖, 0↑ 3↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: Appian on NVME 📖Verdict: No clear signal (low confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.913x ➖, 4↑ 0↓)
datafusion / parquet (1.018x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed (1.012x ➖, 0↑ 0↓)
duckdb / parquet (1.010x ➖, 0↑ 0↓)
duckdb / duckdb (1.004x ➖, 0↑ 0↓)
File Size Changes (1 files changed, -0.0% overall, 0↑ 1↓)
Totals:
|
Benchmarks: TPC-H SF=10 on S3 📖Verdict: Likely improvement (environment too noisy confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (0.921x ➖, 1↑ 0↓)
datafusion / vortex-compact (0.931x ➖, 2↑ 0↓)
datafusion / parquet (1.095x ➖, 0↑ 2↓)
duckdb / vortex-file-compressed (0.743x ➖, 9↑ 0↓)
duckdb / vortex-compact (0.730x ➖, 9↑ 0↓)
duckdb / parquet (1.310x ❌, 0↑ 12↓)
|
Benchmarks: Compression 📖Vortex (geomean): 0.989x ➖ How to read Verdict and Engines
unknown / unknown (0.992x ➖, 4↑ 0↓)
|
Benchmarks: Vortex queries 📖Verdict: Likely regression (medium confidence) How to read Verdict and Engines
datafusion / vortex-file-compressed (1.365x ❌, 0↑ 3↓)
datafusion / parquet (1.183x ❌, 0↑ 3↓)
duckdb / vortex-file-compressed (1.313x ❌, 0↑ 3↓)
duckdb / parquet (1.136x ❌, 0↑ 2↓)
No file size changes detected. |
## Rationale for this change This adds benchmarks for evaluating Vortex string encoders on representative datasets. It also fixes mixed-unit benchmark reporting. Previously, Compression results were grouped as `unknown / unknown`, byte values were labelled `ns`, and fractional ratios were truncated; for example, [this previous Compression report](#9063 (comment)). ## What changes are included in this PR? - Adds two string benchmark suites: - `codec`: Direct whole-column codec compression. - `vortex`: End-to-end in-memory Vortex write, open, scan, and canonicalization. - Runs string-bench on `develop` to establish its baseline. - Groups benchmark comparisons by target and unit, preserves fractional values, and marks metrics without baselines. ## What APIs are changed? Are there any user-facing changes? No production Vortex APIs are changed. This PR adds the `string-bench` CLI and improves benchmark PR reports. --------- Signed-off-by: Francesco Gargiulo <gargiulo.fr@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Add validation as we do now for TPC-H