Skip to content

Eagerly build single-conjunct filter evaluations - #9279

Draft
joseph-isaacs wants to merge 2 commits into
developfrom
claude/layoutreader-v1-scan-perf-efkqk3
Draft

Eagerly build single-conjunct filter evaluations#9279
joseph-isaacs wants to merge 2 commits into
developfrom
claude/layoutreader-v1-scan-perf-efkqk3

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Rationale for this change

Draft — the I/O win is real but I could not turn it into a wall-clock win locally, and some shapes regress. Opening this so the repo's benchmark infrastructure can adjudicate on real hardware.

split_exec already builds the projection evaluation outside the returned future, so projection segment reads for every split are registered before any split task is polled and the IO system can coalesce them. The filter evaluation gets no such treatment — it is built inside the MaskFuture, so a filter over a column that is not projected trickles its reads in one split at a time.

Measured on TPC-H lineitem at sf=10, filtering l_linenumber > 5 while projecting only l_extendedprice, that costs 302 pread64 calls versus 109 for the same filter when the filter column is projected. Splitting those reads by size: 150 of the 302 are under 1MB (p25 = 394KB) against a uniform ~2.26MB for the coalesced case. That population of small reads is the uncoalesced filter column.

What changes are included in this PR?

One file, vortex-layout/src/scan/tasks.rs.

The filter evaluation cannot be hoisted in general: the conjunct order and the mask fed to each conjunct are chosen at runtime from selectivity statistics (FilterExpr::next_conjunct, report_selectivity). But when the filter has a single conjunct there is no ordering to choose, so the whole pruning-then-filter chain can be built at task-construction time. That case is handled by a new single_conjunct_mask helper; the multi-conjunct path is unchanged.

Two behaviours are preserved deliberately:

  • The pruned mask is awaited before the filter evaluation, so a split that pruning eliminates entirely still drops — and therefore cancels — its filter reads. MaskFuture is Shared, so cloning it to do this is free.
  • The dynamic-expression re-pruning check (filter.dynamic_updates(0) version comparison) still runs at poll time, since it depends on runtime state.

Results

pread64 counts, TPC-H lineitem, warm page cache. Row counts identical before/after on every shape at both scale factors.

Query sf=1 sf=10
lineitem_filter_only (filter unprojected) 30 → 20 302 → 177
lineitem 14 → 14 109 → 109
lineitem_and (2 conjuncts, unchanged path) 13 → 13 14 → 14
lineitem_prune 8 → 8 9 → 9
lineitem_wide 117 → 119 1162 → 1086

Execution time, median of 7 interleaved rounds (5 for lineitem_wide), each round itself the median of 15 executions (5 at sf=10, 3 for lineitem_wide):

Query sf=1 sf=10
lineitem_filter_only +24.1% +4.3%
lineitem −4.4% +26.1%
lineitem_and +2.0% −0.4%
lineitem_prune +5.3% +45.9%
lineitem_wide −4.1% −0.9%

So: fewer, larger reads, but slower on this machine. Two effects explain it, and both argue that a local warm-cache benchmark is the wrong oracle for this change:

  1. A saved pread is nearly free here. The files are on local disk in page cache, so collapsing 302 reads into 177 saves syscalls but almost no latency. On object storage the request count is the dominant term.
  2. Eager construction moves work onto the serial path. RepeatedScan::execute builds every split task in a loop before spawning any of them, so anything hoisted into split_exec leaves the worker threads and runs single-threaded ahead of execution. lineitem_prune at sf=10 (+45.9%, before 13–15ms vs 17–20ms, cleanly separated) is the clearest case: that query prunes away most of the file, so constructing a filter evaluation per split is work discarded on splits that pruning then eliminates. The early exit cancels the reads but not the construction.

I'd like the SQL benchmark suite to run before this is considered further; if it agrees with the local numbers, the honest conclusion is that this trade only pays off against remote storage and should be gated or dropped.

For the record, I first implemented the variant that hoists only the per-conjunct pruning evaluations. It changed pread counts by 0–1% and regressed lineitem_filter_only by ~20% at sf=1 (n=15, barely-overlapping distributions), because zone maps and pruning results are already memoized per-reader — OnceLock<SharedZoneMap> and DashMap<BoundExpression, Option<SharedPruningResult>> in layouts/zoned/pruning.rs — so registration order for those reads is irrelevant. That variant is not in this PR.

What APIs are changed? Are there any user-facing changes?

None. No public API changes; single_conjunct_mask is a private helper. Behaviour is intended to be identical — same result arrays, same masks.

Checks run

  • cargo nextest run -p vortex-layout -p vortex-file — 326 passed
  • cargo clippy -p vortex-layout --all-targets --all-features — clean
  • cargo +nightly fmt --all — clean

Not run: the full workspace test suite, Python bindings, and docs checks — this change touches one Rust file with no API or documentation surface.


Generated by Claude Code

`split_exec` already builds the projection evaluation outside the returned
future, so projection segment reads for every split are registered before any
split task is polled and the IO system can coalesce them. The filter evaluation
had no such treatment: it was built inside the `MaskFuture`, so a filter over a
column that is not projected trickled its reads in one split at a time.

The filter evaluation cannot be hoisted in general, because the conjunct order
and the mask fed to each conjunct are chosen at runtime from selectivity
statistics. When the filter has a single conjunct there is no ordering to
choose, so the whole pruning-then-filter chain can be built at task-construction
time instead.

The pruned mask is awaited before the filter evaluation so that a split which
pruning has eliminated entirely still drops (and therefore cancels) its filter
reads, and the dynamic-expression re-pruning check is preserved.

Measured on TPC-H lineitem with a filter on `l_linenumber` projecting only
`l_extendedprice`, pread64 counts drop from 302 to 177 at sf=10 and from 30 to
20 at sf=1. Row counts are unchanged on every query shape measured.

Signed-off-by: Claude <noreply@anthropic.com>

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D6qV3R62EBNgkd2Leq5YqZ
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Aug 7, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Aug 7, 2026
@codspeed-hq

codspeed-hq Bot commented Aug 7, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 6.34%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 1 improved benchmark
❌ 1 regressed benchmark
✅ 1938 untouched benchmarks
⏩ 89 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decode_varbin[(1000, 2)] 62.2 µs 78.7 µs -20.86%
Simulation compress_fsst[(1000, 64, 8)] 1.2 ms 1 ms +10.83%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing claude/layoutreader-v1-scan-perf-efkqk3 (8cef37d) with develop (a99dd87)2

Open in CodSpeed

Footnotes

  1. 89 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on develop (75a3590) during the generation of this report, so a99dd87 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 8cef37d statpopgen 1 Explore Profiling Data
🟢 Done 8cef37d clickbench-sorted-nvme 1 Explore Profiling Data
🟢 Done 8cef37d fineweb 1 Explore Profiling Data
🟢 Done 8cef37d fineweb-s3 1 Explore Profiling Data
🟢 Done 8cef37d tpch-nvme-10 1 Explore Profiling Data
🟢 Done 8cef37d tpcds-nvme 1 Explore Profiling Data
🟢 Done 8cef37d clickbench-nvme 1 Explore Profiling Data
🟢 Done 8cef37d polarsignals 1 Explore Profiling Data
🟢 Done 8cef37d tpch-s3 1 Explore Profiling Data
🟢 Done 8cef37d tpch-nvme 1 Explore Profiling Data
Previous Runs (10)
Status Commit Job Attempt Link
🟢 Done 0cb8b3f statpopgen 1 Explore Profiling Data
🟢 Done 0cb8b3f tpch-nvme 1 Explore Profiling Data
🟢 Done 0cb8b3f tpch-nvme-10 1 Explore Profiling Data
🟢 Done 0cb8b3f clickbench-sorted-nvme 1 Explore Profiling Data
🟢 Done 0cb8b3f polarsignals 1 Explore Profiling Data
🟢 Done 0cb8b3f fineweb-s3 1 Explore Profiling Data
🟢 Done 0cb8b3f fineweb 1 Explore Profiling Data
🟢 Done 0cb8b3f tpch-s3 1 Explore Profiling Data
🟢 Done 0cb8b3f clickbench-nvme 1 Explore Profiling Data
🟢 Done 0cb8b3f tpcds-nvme 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.5%
Engines: DataFusion No clear signal (+2.0%, low confidence) · DuckDB No clear signal (-1.1%, low confidence)
Vortex (geomean): 1.016x ➖
Parquet (geomean): 1.011x ➖
Shifts: Parquet (control) +1.1% · Median polish +0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (1.031x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 8275154 7599041 1.09
fineweb_q01/datafusion:vortex-file-compressed 30980946 29066757 1.07
fineweb_q02/datafusion:vortex-file-compressed 33867487 32670543 1.04
fineweb_q03/datafusion:vortex-file-compressed 40801263 41704506 0.98
fineweb_q04/datafusion:vortex-file-compressed 207991413 206373685 1.01
fineweb_q05/datafusion:vortex-file-compressed 156956738 155807104 1.01
fineweb_q06/datafusion:vortex-file-compressed 37093907 37339549 0.99
fineweb_q07/datafusion:vortex-file-compressed 42365594 38975780 1.09
fineweb_q08/datafusion:vortex-file-compressed 15999938 15712600 1.02
datafusion / parquet / ns (1.010x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 9492274 8730085 1.09
fineweb_q01/datafusion:parquet 199099390 196443959 1.01
fineweb_q02/datafusion:parquet 198363466 198188595 1.00
fineweb_q03/datafusion:parquet 192733252 189836965 1.02
fineweb_q04/datafusion:parquet 208932534 209186611 1.00
fineweb_q05/datafusion:parquet 205609933 206655471 0.99
fineweb_q06/datafusion:parquet 199018613 200311233 0.99
fineweb_q07/datafusion:parquet 192718642 192651111 1.00
fineweb_q08/datafusion:parquet 188211440 189964150 0.99
duckdb / vortex-file-compressed / ns (1.001x ➖, 1↑ 2↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 🚨 6095103 4853321 1.26
fineweb_q01/duckdb:vortex-file-compressed 🚨 46892782 42396337 1.11
fineweb_q02/duckdb:vortex-file-compressed 52840540 48976751 1.08
fineweb_q03/duckdb:vortex-file-compressed 74630543 76146830 0.98
fineweb_q04/duckdb:vortex-file-compressed 286619428 290937236 0.99
fineweb_q05/duckdb:vortex-file-compressed 223174349 234703048 0.95
fineweb_q06/duckdb:vortex-file-compressed 🚀 75269559 88357090 0.85
fineweb_q07/duckdb:vortex-file-compressed 75069538 82649417 0.91
fineweb_q08/duckdb:vortex-file-compressed 32460032 34308746 0.95
duckdb / parquet / ns (1.011x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 36634913 36743967 1.00
fineweb_q01/duckdb:parquet 79126415 76091149 1.04
fineweb_q02/duckdb:parquet 77897056 75889994 1.03
fineweb_q03/duckdb:parquet 207105308 206143316 1.00
fineweb_q04/duckdb:parquet 232289447 230418600 1.01
fineweb_q05/duckdb:parquet 202239868 202068456 1.00
fineweb_q06/duckdb:parquet 143602902 140944338 1.02
fineweb_q07/duckdb:parquet 144459502 142967157 1.01
fineweb_q08/duckdb:parquet 38556186 38658930 1.00

File Size Changes (2 files changed, -46.3% overall, 0↑ 2↓)
File Scale Format Base HEAD Change %
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
sample.vortex 1.0 vortex-compact 1.23 GB 0 B 1.23 GB -100.0%

Totals:

  • vortex-compact: 1.23 GB → 0 B (-100.0%)
  • vortex-file-compressed: 1.43 GB → 1.43 GB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +2.2%
Engines: DataFusion No clear signal (-0.9%, environment too noisy confidence) · DuckDB No clear signal (+5.3%, low confidence)
Vortex (geomean): 1.026x ➖
Parquet (geomean): 1.005x ➖
Shifts: Parquet (control) +0.5% · Median polish +0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (1.000x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 43681111 43370770 1.01
tpch_q02/datafusion:vortex-file-compressed 22427420 22305800 1.01
tpch_q03/datafusion:vortex-file-compressed 30064848 29260127 1.03
tpch_q04/datafusion:vortex-file-compressed 15898954 15617519 1.02
tpch_q05/datafusion:vortex-file-compressed 50128223 50524938 0.99
tpch_q06/datafusion:vortex-file-compressed 7951823 7992015 0.99
tpch_q07/datafusion:vortex-file-compressed 56638223 56924716 0.99
tpch_q08/datafusion:vortex-file-compressed 45190293 45103329 1.00
tpch_q09/datafusion:vortex-file-compressed 56770994 57401572 0.99
tpch_q10/datafusion:vortex-file-compressed 28952470 28597048 1.01
tpch_q11/datafusion:vortex-file-compressed 17049103 17844492 0.96
tpch_q12/datafusion:vortex-file-compressed 25588265 27854081 0.92
tpch_q13/datafusion:vortex-file-compressed 24775509 24374656 1.02
tpch_q14/datafusion:vortex-file-compressed 14908774 14718597 1.01
tpch_q15/datafusion:vortex-file-compressed 21065918 20132650 1.05
tpch_q16/datafusion:vortex-file-compressed 24979023 25188090 0.99
tpch_q17/datafusion:vortex-file-compressed 55750497 55766486 1.00
tpch_q18/datafusion:vortex-file-compressed 68810954 67866856 1.01
tpch_q19/datafusion:vortex-file-compressed 17263575 18657156 0.93
tpch_q20/datafusion:vortex-file-compressed 31747212 31377410 1.01
tpch_q21/datafusion:vortex-file-compressed 61602835 60436411 1.02
tpch_q22/datafusion:vortex-file-compressed 12621477 11886256 1.06
datafusion / parquet / ns (1.010x ➖, 1↑ 2↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 🚀 127032825 142117419 0.89
tpch_q02/datafusion:parquet 70268748 72464768 0.97
tpch_q03/datafusion:parquet 98345947 105644140 0.93
tpch_q04/datafusion:parquet 48434814 49873602 0.97
tpch_q05/datafusion:parquet 132586042 123120464 1.08
tpch_q06/datafusion:parquet 🚨 46724507 39581734 1.18
tpch_q07/datafusion:parquet 128396723 125748920 1.02
tpch_q08/datafusion:parquet 122289694 126342473 0.97
tpch_q09/datafusion:parquet 156007481 153741793 1.01
tpch_q10/datafusion:parquet 117596734 121301108 0.97
tpch_q11/datafusion:parquet 50393242 49858436 1.01
tpch_q12/datafusion:parquet 96823317 100229594 0.97
tpch_q13/datafusion:parquet 226517374 225070576 1.01
tpch_q14/datafusion:parquet 54174567 51670341 1.05
tpch_q15/datafusion:parquet 72777992 67646794 1.08
tpch_q16/datafusion:parquet 49647960 50396398 0.99
tpch_q17/datafusion:parquet 160689070 153921160 1.04
tpch_q18/datafusion:parquet 179309891 181694548 0.99
tpch_q19/datafusion:parquet 🚨 82628994 70832071 1.17
tpch_q20/datafusion:parquet 95224212 93472723 1.02
tpch_q21/datafusion:parquet 166318262 174907412 0.95
tpch_q22/datafusion:parquet 57358136 57191544 1.00
duckdb / vortex-file-compressed / ns (1.053x ➖, 0↑ 3↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 24944690 23313059 1.07
tpch_q02/duckdb:vortex-file-compressed 37783793 36209686 1.04
tpch_q03/duckdb:vortex-file-compressed 40688235 38470717 1.06
tpch_q04/duckdb:vortex-file-compressed 34645539 32964181 1.05
tpch_q05/duckdb:vortex-file-compressed 46780792 45611891 1.03
tpch_q06/duckdb:vortex-file-compressed 🚨 15972008 12907582 1.24
tpch_q07/duckdb:vortex-file-compressed 45526762 44327082 1.03
tpch_q08/duckdb:vortex-file-compressed 55458044 56482010 0.98
tpch_q09/duckdb:vortex-file-compressed 62479148 61067909 1.02
tpch_q10/duckdb:vortex-file-compressed 55668740 54176286 1.03
tpch_q11/duckdb:vortex-file-compressed 19897915 19124977 1.04
tpch_q12/duckdb:vortex-file-compressed 30476480 29773083 1.02
tpch_q13/duckdb:vortex-file-compressed 🚨 50102205 45513018 1.10
tpch_q14/duckdb:vortex-file-compressed 25522357 23562018 1.08
tpch_q15/duckdb:vortex-file-compressed 20738717 21272444 0.97
tpch_q16/duckdb:vortex-file-compressed 35125459 32620456 1.08
tpch_q17/duckdb:vortex-file-compressed 37036675 34714894 1.07
tpch_q18/duckdb:vortex-file-compressed 54446687 52330372 1.04
tpch_q19/duckdb:vortex-file-compressed 🚨 42334907 37557821 1.13
tpch_q20/duckdb:vortex-file-compressed 40122840 38942764 1.03
tpch_q21/duckdb:vortex-file-compressed 131298086 123724428 1.06
tpch_q22/duckdb:vortex-file-compressed 22409620 21740834 1.03
duckdb / parquet / ns (1.000x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 81835184 81842524 1.00
tpch_q02/duckdb:parquet 45709945 46323512 0.99
tpch_q03/duckdb:parquet 80930306 80639753 1.00
tpch_q04/duckdb:parquet 57460013 57694723 1.00
tpch_q05/duckdb:parquet 79083081 79805279 0.99
tpch_q06/duckdb:parquet 24991173 24837041 1.01
tpch_q07/duckdb:parquet 79979387 81059518 0.99
tpch_q08/duckdb:parquet 96593205 96400928 1.00
tpch_q09/duckdb:parquet 148698117 148950111 1.00
tpch_q10/duckdb:parquet 142034237 141920204 1.00
tpch_q11/duckdb:parquet 25398251 25404971 1.00
tpch_q12/duckdb:parquet 53257362 53331172 1.00
tpch_q13/duckdb:parquet 288197453 286622742 1.01
tpch_q14/duckdb:parquet 55953439 55665352 1.01
tpch_q15/duckdb:parquet 30878256 30790165 1.00
tpch_q16/duckdb:parquet 67476488 66677230 1.01
tpch_q17/duckdb:parquet 58674637 58414386 1.00
tpch_q18/duckdb:parquet 129089816 128761687 1.00
tpch_q19/duckdb:parquet 77622922 77972009 1.00
tpch_q20/duckdb:parquet 77553642 77550760 1.00
tpch_q21/duckdb:parquet 188906219 190643769 0.99
tpch_q22/duckdb:parquet 64367373 63523291 1.01

File Size Changes (9 files changed, -43.9% overall, 0↑ 9↓)
File Scale Format Base HEAD Change %
customer.vortex 1.0 vortex-compact 7.40 MB 0 B 7.40 MB -100.0%
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
lineitem.vortex 1.0 vortex-compact 126.00 MB 0 B 126.00 MB -100.0%
nation.vortex 1.0 vortex-compact 8.04 KB 0 B 8.04 KB -100.0%
orders.vortex 1.0 vortex-compact 31.73 MB 0 B 31.73 MB -100.0%
part.vortex 1.0 vortex-compact 3.55 MB 0 B 3.55 MB -100.0%
partsupp.vortex 1.0 vortex-compact 20.29 MB 0 B 20.29 MB -100.0%
region.vortex 1.0 vortex-compact 6.09 KB 0 B 6.09 KB -100.0%
supplier.vortex 1.0 vortex-compact 496.71 KB 0 B 496.71 KB -100.0%

Totals:

  • vortex-compact: 189.73 MB → 0 B (-100.0%)
  • vortex-file-compressed: 242.85 MB → 242.85 MB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +4.5%
Engines: DataFusion No clear signal (+1.3%, low confidence) · DuckDB No clear signal (+7.9%, low confidence)
Vortex (geomean): 1.048x ➖
Parquet (geomean): 1.003x ➖
Shifts: Parquet (control) +0.3% · Median polish +1.9%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (1.016x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 353492743 329573983 1.07
tpch_q02/datafusion:vortex-file-compressed 100067247 99279910 1.01
tpch_q03/datafusion:vortex-file-compressed 165023872 155979372 1.06
tpch_q04/datafusion:vortex-file-compressed 69616557 68325156 1.02
tpch_q05/datafusion:vortex-file-compressed 272838634 273994260 1.00
tpch_q06/datafusion:vortex-file-compressed 26244033 26299885 1.00
tpch_q07/datafusion:vortex-file-compressed 365389317 363057329 1.01
tpch_q08/datafusion:vortex-file-compressed 298556324 283664137 1.05
tpch_q09/datafusion:vortex-file-compressed 476763139 475888614 1.00
tpch_q10/datafusion:vortex-file-compressed 178920567 185628181 0.96
tpch_q11/datafusion:vortex-file-compressed 78440758 74277577 1.06
tpch_q12/datafusion:vortex-file-compressed 81274604 83311791 0.98
tpch_q13/datafusion:vortex-file-compressed 121280256 121347995 1.00
tpch_q14/datafusion:vortex-file-compressed 41669541 40451880 1.03
tpch_q15/datafusion:vortex-file-compressed 74962427 72866751 1.03
tpch_q16/datafusion:vortex-file-compressed 70337441 68271185 1.03
tpch_q17/datafusion:vortex-file-compressed 427239989 431571111 0.99
tpch_q18/datafusion:vortex-file-compressed 622543403 621263933 1.00
tpch_q19/datafusion:vortex-file-compressed 60211917 61721707 0.98
tpch_q20/datafusion:vortex-file-compressed 146267746 138012867 1.06
tpch_q21/datafusion:vortex-file-compressed 482137429 456971600 1.06
tpch_q22/datafusion:vortex-file-compressed 41304105 42019890 0.98
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 321759463 322043527 1.00
tpch_q02/datafusion:parquet 219391802 226051205 0.97
tpch_q03/datafusion:parquet 236978055 229465224 1.03
tpch_q04/datafusion:parquet 98772977 100227231 0.99
tpch_q05/datafusion:parquet 364269495 361143033 1.01
tpch_q06/datafusion:parquet 76201148 72317109 1.05
tpch_q07/datafusion:parquet 512079070 526184679 0.97
tpch_q08/datafusion:parquet 413046006 410391761 1.01
tpch_q09/datafusion:parquet 674444135 662805668 1.02
tpch_q10/datafusion:parquet 548504415 561275704 0.98
tpch_q11/datafusion:parquet 158407242 154594770 1.02
tpch_q12/datafusion:parquet 148941969 153537999 0.97
tpch_q13/datafusion:parquet 356113993 353163757 1.01
tpch_q14/datafusion:parquet 119155658 122120925 0.98
tpch_q15/datafusion:parquet 185980841 187178590 0.99
tpch_q16/datafusion:parquet 145897399 134062543 1.09
tpch_q17/datafusion:parquet 515470692 512509487 1.01
tpch_q18/datafusion:parquet 707518964 703897267 1.01
tpch_q19/datafusion:parquet 204796479 200590344 1.02
tpch_q20/datafusion:parquet 305979086 305561743 1.00
tpch_q21/datafusion:parquet 550673460 542470821 1.02
tpch_q22/datafusion:parquet 255673709 271036244 0.94
duckdb / vortex-file-compressed / ns (1.081x ➖, 0↑ 7↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 93567171 89639191 1.04
tpch_q02/duckdb:vortex-file-compressed 73654436 70694180 1.04
tpch_q03/duckdb:vortex-file-compressed 141747602 133770164 1.06
tpch_q04/duckdb:vortex-file-compressed 174002164 167121518 1.04
tpch_q05/duckdb:vortex-file-compressed 156665148 149173487 1.05
tpch_q06/duckdb:vortex-file-compressed 🚨 52104266 38482507 1.35
tpch_q07/duckdb:vortex-file-compressed 🚨 147995436 132307962 1.12
tpch_q08/duckdb:vortex-file-compressed 184409719 177431907 1.04
tpch_q09/duckdb:vortex-file-compressed 315192171 288855482 1.09
tpch_q10/duckdb:vortex-file-compressed 226055881 222699313 1.02
tpch_q11/duckdb:vortex-file-compressed 40444779 41002811 0.99
tpch_q12/duckdb:vortex-file-compressed 118485834 116539137 1.02
tpch_q13/duckdb:vortex-file-compressed 🚨 207745668 170053161 1.22
tpch_q14/duckdb:vortex-file-compressed 🚨 67332274 58993575 1.14
tpch_q15/duckdb:vortex-file-compressed 🚨 97739383 83049536 1.18
tpch_q16/duckdb:vortex-file-compressed 83214145 84420229 0.99
tpch_q17/duckdb:vortex-file-compressed 113940146 106542688 1.07
tpch_q18/duckdb:vortex-file-compressed 266648070 263390050 1.01
tpch_q19/duckdb:vortex-file-compressed 🚨 94397894 81865930 1.15
tpch_q20/duckdb:vortex-file-compressed 🚨 162441804 145961782 1.11
tpch_q21/duckdb:vortex-file-compressed 517343588 479316689 1.08
tpch_q22/duckdb:vortex-file-compressed 79062293 76097900 1.04
duckdb / parquet / ns (1.002x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 153263378 154000251 1.00
tpch_q02/duckdb:parquet 100064699 100121506 1.00
tpch_q03/duckdb:parquet 164532690 167221654 0.98
tpch_q04/duckdb:parquet 117783167 115014552 1.02
tpch_q05/duckdb:parquet 187613705 188249169 1.00
tpch_q06/duckdb:parquet 59329788 57981754 1.02
tpch_q07/duckdb:parquet 154183170 145061315 1.06
tpch_q08/duckdb:parquet 213164554 218394490 0.98
tpch_q09/duckdb:parquet 349334045 347140101 1.01
tpch_q10/duckdb:parquet 652063915 654409279 1.00
tpch_q11/duckdb:parquet 41736028 41194260 1.01
tpch_q12/duckdb:parquet 119599104 119684824 1.00
tpch_q13/duckdb:parquet 399289165 395663227 1.01
tpch_q14/duckdb:parquet 152498267 152438859 1.00
tpch_q15/duckdb:parquet 77840956 78038080 1.00
tpch_q16/duckdb:parquet 156678334 154058202 1.02
tpch_q17/duckdb:parquet 119945196 121906991 0.98
tpch_q18/duckdb:parquet 282728555 289667405 0.98
tpch_q19/duckdb:parquet 233109818 232011735 1.00
tpch_q20/duckdb:parquet 196141731 197365482 0.99
tpch_q21/duckdb:parquet 427992706 431111250 0.99
tpch_q22/duckdb:parquet 336343218 337291276 1.00

File Size Changes (9 files changed, -44.0% overall, 0↑ 9↓)
File Scale Format Base HEAD Change %
customer.vortex 10.0 vortex-compact 74.00 MB 0 B 74.00 MB -100.0%
duckdb.db 10.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
lineitem.vortex 10.0 vortex-compact 1.28 GB 0 B 1.28 GB -100.0%
nation.vortex 10.0 vortex-compact 8.04 KB 0 B 8.04 KB -100.0%
orders.vortex 10.0 vortex-compact 344.31 MB 0 B 344.31 MB -100.0%
part.vortex 10.0 vortex-compact 35.89 MB 0 B 35.89 MB -100.0%
partsupp.vortex 10.0 vortex-compact 203.66 MB 0 B 203.66 MB -100.0%
region.vortex 10.0 vortex-compact 6.09 KB 0 B 6.09 KB -100.0%
supplier.vortex 10.0 vortex-compact 4.73 MB 0 B 4.73 MB -100.0%

Totals:

  • vortex-compact: 1.92 GB → 0 B (-100.0%)
  • vortex-file-compressed: 2.45 GB → 2.45 GB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.4%
Engines: DataFusion No clear signal (+1.4%, low confidence) · DuckDB No clear signal (-0.5%, low confidence)
Vortex (geomean): 1.005x ➖
Parquet (geomean): 1.001x ➖
Shifts: Parquet (control) +0.1% · Median polish +0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (1.019x ➖, 2↑ 5↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench_q00/datafusion:vortex-file-compressed 1969234 1953181 1.01
clickbench_q01/datafusion:vortex-file-compressed 11136984 11038922 1.01
clickbench_q02/datafusion:vortex-file-compressed 22757154 22148767 1.03
clickbench_q03/datafusion:vortex-file-compressed 25584984 25115915 1.02
clickbench_q04/datafusion:vortex-file-compressed 156399893 161936916 0.97
clickbench_q05/datafusion:vortex-file-compressed 215793377 218746429 0.99
clickbench_q06/datafusion:vortex-file-compressed 1981956 1956504 1.01
clickbench_q07/datafusion:vortex-file-compressed 14919308 15056317 0.99
clickbench_q08/datafusion:vortex-file-compressed 221496495 216433210 1.02
clickbench_q09/datafusion:vortex-file-compressed 354052882 353488452 1.00
clickbench_q10/datafusion:vortex-file-compressed 50826772 50619008 1.00
clickbench_q11/datafusion:vortex-file-compressed 59055835 58629891 1.01
clickbench_q12/datafusion:vortex-file-compressed 192310756 192473495 1.00
clickbench_q13/datafusion:vortex-file-compressed 342622286 334460605 1.02
clickbench_q14/datafusion:vortex-file-compressed 200490361 203806951 0.98
clickbench_q15/datafusion:vortex-file-compressed 193273116 199957185 0.97
clickbench_q16/datafusion:vortex-file-compressed 481590960 464824941 1.04
clickbench_q17/datafusion:vortex-file-compressed 482342985 476692807 1.01
clickbench_q18/datafusion:vortex-file-compressed 917460265 938315375 0.98
clickbench_q19/datafusion:vortex-file-compressed 🚨 28924620 18268035 1.58
clickbench_q20/datafusion:vortex-file-compressed 203000223 193888410 1.05
clickbench_q21/datafusion:vortex-file-compressed 243418387 261891906 0.93
clickbench_q22/datafusion:vortex-file-compressed 🚨 477224005 332992473 1.43
clickbench_q23/datafusion:vortex-file-compressed 453306552 424814286 1.07
clickbench_q24/datafusion:vortex-file-compressed 🚨 39970464 36071941 1.11
clickbench_q25/datafusion:vortex-file-compressed 🚨 53479831 47027824 1.14
clickbench_q26/datafusion:vortex-file-compressed 35221586 36112660 0.98
clickbench_q27/datafusion:vortex-file-compressed 284408864 285603119 1.00
clickbench_q28/datafusion:vortex-file-compressed 1444871367 1456619026 0.99
clickbench_q29/datafusion:vortex-file-compressed 🚀 41271090 50064679 0.82
clickbench_q30/datafusion:vortex-file-compressed 162155143 158189590 1.03
clickbench_q31/datafusion:vortex-file-compressed 198563926 186910606 1.06
clickbench_q32/datafusion:vortex-file-compressed 813478650 840694727 0.97
clickbench_q33/datafusion:vortex-file-compressed 999463805 1034458808 0.97
clickbench_q34/datafusion:vortex-file-compressed 992585522 1050899725 0.94
clickbench_q35/datafusion:vortex-file-compressed 165184640 156805889 1.05
clickbench_q36/datafusion:vortex-file-compressed 🚀 60465973 70963694 0.85
clickbench_q37/datafusion:vortex-file-compressed 28933801 28590499 1.01
clickbench_q38/datafusion:vortex-file-compressed 🚨 17490551 15597102 1.12
clickbench_q39/datafusion:vortex-file-compressed 127381367 135674500 0.94
clickbench_q40/datafusion:vortex-file-compressed 12961474 12711194 1.02
clickbench_q41/datafusion:vortex-file-compressed 12065934 12202078 0.99
clickbench_q42/datafusion:vortex-file-compressed 13507742 13573898 1.00
datafusion / parquet / ns (1.005x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench_q00/datafusion:parquet 1949229 2015625 0.97
clickbench_q01/datafusion:parquet 17282163 17333348 1.00
clickbench_q02/datafusion:parquet 30460023 30740517 0.99
clickbench_q03/datafusion:parquet 26248858 26645737 0.99
clickbench_q04/datafusion:parquet 172181904 173095400 0.99
clickbench_q05/datafusion:parquet 232127953 239831653 0.97
clickbench_q06/datafusion:parquet 1942409 1939253 1.00
clickbench_q07/datafusion:parquet 18565537 18480923 1.00
clickbench_q08/datafusion:parquet 232134798 227226780 1.02
clickbench_q09/datafusion:parquet 385136292 379927352 1.01
clickbench_q10/datafusion:parquet 72096696 73156964 0.99
clickbench_q11/datafusion:parquet 93608130 91315293 1.03
clickbench_q12/datafusion:parquet 247016509 236491693 1.04
clickbench_q13/datafusion:parquet 397955352 390220239 1.02
clickbench_q14/datafusion:parquet 254722395 250045284 1.02
clickbench_q15/datafusion:parquet 198159637 200915811 0.99
clickbench_q16/datafusion:parquet 483512914 477691338 1.01
clickbench_q17/datafusion:parquet 487841998 479760126 1.02
clickbench_q18/datafusion:parquet 932174147 945371043 0.99
clickbench_q19/datafusion:parquet 23669610 23321902 1.01
clickbench_q20/datafusion:parquet 461091082 457243894 1.01
clickbench_q21/datafusion:parquet 493446159 496384054 0.99
clickbench_q22/datafusion:parquet 663595403 653004032 1.02
clickbench_q23/datafusion:parquet 2847034806 2876580943 0.99
clickbench_q24/datafusion:parquet 49291424 49715330 0.99
clickbench_q25/datafusion:parquet 100911401 99041188 1.02
clickbench_q26/datafusion:parquet 49184781 53169301 0.93
clickbench_q27/datafusion:parquet 542378930 534689388 1.01
clickbench_q28/datafusion:parquet 1534275061 1539800693 1.00
clickbench_q29/datafusion:parquet 42097507 41342240 1.02
clickbench_q30/datafusion:parquet 244500374 241560007 1.01
clickbench_q31/datafusion:parquet 277633826 274414388 1.01
clickbench_q32/datafusion:parquet 875264269 865562041 1.01
clickbench_q33/datafusion:parquet 1109917495 1088350920 1.02
clickbench_q34/datafusion:parquet 1076592006 1067407732 1.01
clickbench_q35/datafusion:parquet 170894003 163285049 1.05
clickbench_q36/datafusion:parquet 118459636 111617529 1.06
clickbench_q37/datafusion:parquet 48067215 48650985 0.99
clickbench_q38/datafusion:parquet 67782428 70359441 0.96
clickbench_q39/datafusion:parquet 240067843 221584858 1.08
clickbench_q40/datafusion:parquet 26287390 25628826 1.03
clickbench_q41/datafusion:parquet 25088073 24742121 1.01
clickbench_q42/datafusion:parquet 26427128 27117032 0.97
duckdb / vortex-file-compressed / ns (0.991x ➖, 6↑ 4↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench_q00/duckdb:vortex-file-compressed 🚀 12499599 14319480 0.87
clickbench_q01/duckdb:vortex-file-compressed 18593925 19976910 0.93
clickbench_q02/duckdb:vortex-file-compressed 🚀 18854918 24461874 0.77
clickbench_q03/duckdb:vortex-file-compressed 33458336 31584145 1.06
clickbench_q04/duckdb:vortex-file-compressed 134816905 130108663 1.04
clickbench_q05/duckdb:vortex-file-compressed 162038884 176543200 0.92
clickbench_q06/duckdb:vortex-file-compressed 🚀 18339645 23045014 0.80
clickbench_q07/duckdb:vortex-file-compressed 23477669 24396547 0.96
clickbench_q08/duckdb:vortex-file-compressed 166876215 165853732 1.01
clickbench_q09/duckdb:vortex-file-compressed 207712899 206361469 1.01
clickbench_q10/duckdb:vortex-file-compressed 69069475 67887345 1.02
clickbench_q11/duckdb:vortex-file-compressed 69865626 70044621 1.00
clickbench_q12/duckdb:vortex-file-compressed 195722893 201695169 0.97
clickbench_q13/duckdb:vortex-file-compressed 341901774 345999861 0.99
clickbench_q14/duckdb:vortex-file-compressed 206275973 213296209 0.97
clickbench_q15/duckdb:vortex-file-compressed 181842345 191323758 0.95
clickbench_q16/duckdb:vortex-file-compressed 398665107 378940522 1.05
clickbench_q17/duckdb:vortex-file-compressed 373096642 376458517 0.99
clickbench_q18/duckdb:vortex-file-compressed 714683108 734564669 0.97
clickbench_q19/duckdb:vortex-file-compressed 24860771 25162003 0.99
clickbench_q20/duckdb:vortex-file-compressed 254921995 237987451 1.07
clickbench_q21/duckdb:vortex-file-compressed 303762506 336911388 0.90
clickbench_q22/duckdb:vortex-file-compressed 🚨 637339073 496419168 1.28
clickbench_q23/duckdb:vortex-file-compressed 🚨 344487869 192617424 1.79
clickbench_q24/duckdb:vortex-file-compressed 54628133 59211823 0.92
clickbench_q25/duckdb:vortex-file-compressed 78253416 75023036 1.04
clickbench_q26/duckdb:vortex-file-compressed 🚀 61307117 71429751 0.86
clickbench_q27/duckdb:vortex-file-compressed 🚨 187527654 167757071 1.12
clickbench_q28/duckdb:vortex-file-compressed 🚀 1459390962 1665468613 0.88
clickbench_q29/duckdb:vortex-file-compressed 🚨 31286884 27387285 1.14
clickbench_q30/duckdb:vortex-file-compressed 157847945 158117357 1.00
clickbench_q31/duckdb:vortex-file-compressed 284990514 308724039 0.92
clickbench_q32/duckdb:vortex-file-compressed 904887973 918722148 0.98
clickbench_q33/duckdb:vortex-file-compressed 1115583375 1092004207 1.02
clickbench_q34/duckdb:vortex-file-compressed 1158443191 1144352444 1.01
clickbench_q35/duckdb:vortex-file-compressed 209967874 211045310 0.99
clickbench_q36/duckdb:vortex-file-compressed 🚀 35951969 42372070 0.85
clickbench_q37/duckdb:vortex-file-compressed 28836730 28074564 1.03
clickbench_q38/duckdb:vortex-file-compressed 32318463 33725302 0.96
clickbench_q39/duckdb:vortex-file-compressed 52169325 53485650 0.98
clickbench_q40/duckdb:vortex-file-compressed 28634237 28676625 1.00
clickbench_q41/duckdb:vortex-file-compressed 26713282 28328503 0.94
clickbench_q42/duckdb:vortex-file-compressed 28144149 26759811 1.05
duckdb / parquet / ns (0.996x ➖, 1↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench_q00/duckdb:parquet 17055833 18331300 0.93
clickbench_q01/duckdb:parquet 16206050 16245109 1.00
clickbench_q02/duckdb:parquet 23569465 23205907 1.02
clickbench_q03/duckdb:parquet 25670062 25749629 1.00
clickbench_q04/duckdb:parquet 131008777 131052976 1.00
clickbench_q05/duckdb:parquet 184643240 183750915 1.00
clickbench_q06/duckdb:parquet 23489117 24371901 0.96
clickbench_q07/duckdb:parquet 18640394 18808183 0.99
clickbench_q08/duckdb:parquet 161915872 164128626 0.99
clickbench_q09/duckdb:parquet 229165389 227984155 1.01
clickbench_q10/duckdb:parquet 57192221 57013639 1.00
clickbench_q11/duckdb:parquet 66420527 66872275 0.99
clickbench_q12/duckdb:parquet 174247814 174225253 1.00
clickbench_q13/duckdb:parquet 308259674 307953344 1.00
clickbench_q14/duckdb:parquet 186726270 187805354 0.99
clickbench_q15/duckdb:parquet 183093058 184011986 1.00
clickbench_q16/duckdb:parquet 369695054 353462934 1.05
clickbench_q17/duckdb:parquet 368129392 360957086 1.02
clickbench_q18/duckdb:parquet 684974373 685888064 1.00
clickbench_q19/duckdb:parquet 21258017 21237757 1.00
clickbench_q20/duckdb:parquet 264817974 265536495 1.00
clickbench_q21/duckdb:parquet 315855213 327234029 0.97
clickbench_q22/duckdb:parquet 462193821 471017583 0.98
clickbench_q23/duckdb:parquet 247812159 234277872 1.06
clickbench_q24/duckdb:parquet 69143770 68194562 1.01
clickbench_q25/duckdb:parquet 75193976 72361930 1.04
clickbench_q26/duckdb:parquet 49747755 51584804 0.96
clickbench_q27/duckdb:parquet 268829560 276159338 0.97
clickbench_q28/duckdb:parquet 1748243655 1732042547 1.01
clickbench_q29/duckdb:parquet 27508861 26484589 1.04
clickbench_q30/duckdb:parquet 175415778 175769208 1.00
clickbench_q31/duckdb:parquet 🚀 292941368 329382829 0.89
clickbench_q32/duckdb:parquet 913202483 906918938 1.01
clickbench_q33/duckdb:parquet 778502097 784215843 0.99
clickbench_q34/duckdb:parquet 803984443 797874363 1.01
clickbench_q35/duckdb:parquet 208174412 207327096 1.00
clickbench_q36/duckdb:parquet 49907462 50002938 1.00
clickbench_q37/duckdb:parquet 35943120 37529443 0.96
clickbench_q38/duckdb:parquet 37911283 38595452 0.98
clickbench_q39/duckdb:parquet 85890757 88552363 0.97
clickbench_q40/duckdb:parquet 20772649 20696147 1.00
clickbench_q41/duckdb:parquet 19876570 19274672 1.03
clickbench_q42/duckdb:parquet 23367807 23016257 1.02

File Size Changes (101 files changed, -39.2% overall, 0↑ 101↓)
File Scale Format Base HEAD Change %
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
hits_0.vortex 1.0 vortex-compact 58.88 MB 0 B 58.88 MB -100.0%
hits_1.vortex 1.0 vortex-compact 90.67 MB 0 B 90.67 MB -100.0%
hits_10.vortex 1.0 vortex-compact 49.48 MB 0 B 49.48 MB -100.0%
hits_11.vortex 1.0 vortex-compact 56.11 MB 0 B 56.11 MB -100.0%
hits_12.vortex 1.0 vortex-compact 69.86 MB 0 B 69.86 MB -100.0%
hits_13.vortex 1.0 vortex-compact 69.24 MB 0 B 69.24 MB -100.0%
hits_14.vortex 1.0 vortex-compact 74.88 MB 0 B 74.88 MB -100.0%
hits_15.vortex 1.0 vortex-compact 48.41 MB 0 B 48.41 MB -100.0%
hits_16.vortex 1.0 vortex-compact 49.56 MB 0 B 49.56 MB -100.0%
hits_17.vortex 1.0 vortex-compact 58.79 MB 0 B 58.79 MB -100.0%
hits_18.vortex 1.0 vortex-compact 64.89 MB 0 B 64.89 MB -100.0%
hits_19.vortex 1.0 vortex-compact 49.73 MB 0 B 49.73 MB -100.0%
hits_2.vortex 1.0 vortex-compact 129.16 MB 0 B 129.16 MB -100.0%
hits_20.vortex 1.0 vortex-compact 38.36 MB 0 B 38.36 MB -100.0%
hits_21.vortex 1.0 vortex-compact 51.99 MB 0 B 51.99 MB -100.0%
hits_22.vortex 1.0 vortex-compact 46.22 MB 0 B 46.22 MB -100.0%
hits_23.vortex 1.0 vortex-compact 46.13 MB 0 B 46.13 MB -100.0%
hits_24.vortex 1.0 vortex-compact 45.11 MB 0 B 45.11 MB -100.0%
hits_25.vortex 1.0 vortex-compact 73.88 MB 0 B 73.88 MB -100.0%
hits_26.vortex 1.0 vortex-compact 71.99 MB 0 B 71.99 MB -100.0%
hits_27.vortex 1.0 vortex-compact 69.86 MB 0 B 69.86 MB -100.0%
hits_28.vortex 1.0 vortex-compact 70.92 MB 0 B 70.92 MB -100.0%
hits_29.vortex 1.0 vortex-compact 36.68 MB 0 B 36.68 MB -100.0%
hits_3.vortex 1.0 vortex-compact 95.12 MB 0 B 95.12 MB -100.0%
hits_30.vortex 1.0 vortex-compact 58.58 MB 0 B 58.58 MB -100.0%
hits_31.vortex 1.0 vortex-compact 55.77 MB 0 B 55.77 MB -100.0%
hits_32.vortex 1.0 vortex-compact 44.61 MB 0 B 44.61 MB -100.0%
hits_33.vortex 1.0 vortex-compact 35.92 MB 0 B 35.92 MB -100.0%
hits_34.vortex 1.0 vortex-compact 58.24 MB 0 B 58.24 MB -100.0%
hits_35.vortex 1.0 vortex-compact 75.53 MB 0 B 75.53 MB -100.0%
hits_36.vortex 1.0 vortex-compact 49.21 MB 0 B 49.21 MB -100.0%
hits_37.vortex 1.0 vortex-compact 54.76 MB 0 B 54.76 MB -100.0%
hits_38.vortex 1.0 vortex-compact 63.39 MB 0 B 63.39 MB -100.0%
hits_39.vortex 1.0 vortex-compact 50.10 MB 0 B 50.10 MB -100.0%
hits_4.vortex 1.0 vortex-compact 71.94 MB 0 B 71.94 MB -100.0%
hits_40.vortex 1.0 vortex-compact 77.42 MB 0 B 77.42 MB -100.0%
hits_41.vortex 1.0 vortex-compact 166.05 MB 0 B 166.05 MB -100.0%
hits_42.vortex 1.0 vortex-compact 164.53 MB 0 B 164.53 MB -100.0%
hits_43.vortex 1.0 vortex-compact 169.21 MB 0 B 169.21 MB -100.0%
hits_44.vortex 1.0 vortex-compact 133.26 MB 0 B 133.26 MB -100.0%
hits_45.vortex 1.0 vortex-compact 75.80 MB 0 B 75.80 MB -100.0%
hits_46.vortex 1.0 vortex-compact 42.27 MB 0 B 42.27 MB -100.0%
hits_47.vortex 1.0 vortex-compact 18.22 MB 0 B 18.22 MB -100.0%
hits_48.vortex 1.0 vortex-compact 17.85 MB 0 B 17.85 MB -100.0%
hits_49.vortex 1.0 vortex-compact 51.00 MB 0 B 51.00 MB -100.0%
hits_5.vortex 1.0 vortex-compact 63.33 MB 0 B 63.33 MB -100.0%
hits_50.vortex 1.0 vortex-compact 114.20 MB 0 B 114.20 MB -100.0%
hits_51.vortex 1.0 vortex-compact 168.34 MB 0 B 168.34 MB -100.0%
hits_52.vortex 1.0 vortex-compact 65.08 MB 0 B 65.08 MB -100.0%
hits_53.vortex 1.0 vortex-compact 60.05 MB 0 B 60.05 MB -100.0%
hits_54.vortex 1.0 vortex-compact 117.57 MB 0 B 117.57 MB -100.0%
hits_55.vortex 1.0 vortex-compact 92.56 MB 0 B 92.56 MB -100.0%
hits_56.vortex 1.0 vortex-compact 78.58 MB 0 B 78.58 MB -100.0%
hits_57.vortex 1.0 vortex-compact 83.73 MB 0 B 83.73 MB -100.0%
hits_58.vortex 1.0 vortex-compact 61.24 MB 0 B 61.24 MB -100.0%
hits_59.vortex 1.0 vortex-compact 66.68 MB 0 B 66.68 MB -100.0%
hits_6.vortex 1.0 vortex-compact 63.57 MB 0 B 63.57 MB -100.0%
hits_60.vortex 1.0 vortex-compact 64.92 MB 0 B 64.92 MB -100.0%
hits_61.vortex 1.0 vortex-compact 57.73 MB 0 B 57.73 MB -100.0%
hits_62.vortex 1.0 vortex-compact 75.45 MB 0 B 75.45 MB -100.0%
hits_63.vortex 1.0 vortex-compact 46.44 MB 0 B 46.44 MB -100.0%
hits_64.vortex 1.0 vortex-compact 54.09 MB 0 B 54.09 MB -100.0%
hits_65.vortex 1.0 vortex-compact 129.40 MB 0 B 129.40 MB -100.0%
hits_66.vortex 1.0 vortex-compact 53.52 MB 0 B 53.52 MB -100.0%
hits_67.vortex 1.0 vortex-compact 114.44 MB 0 B 114.44 MB -100.0%
hits_68.vortex 1.0 vortex-compact 76.67 MB 0 B 76.67 MB -100.0%
hits_69.vortex 1.0 vortex-compact 80.98 MB 0 B 80.98 MB -100.0%
hits_7.vortex 1.0 vortex-compact 64.19 MB 0 B 64.19 MB -100.0%
hits_70.vortex 1.0 vortex-compact 61.84 MB 0 B 61.84 MB -100.0%
hits_71.vortex 1.0 vortex-compact 69.96 MB 0 B 69.96 MB -100.0%
hits_72.vortex 1.0 vortex-compact 52.74 MB 0 B 52.74 MB -100.0%
hits_73.vortex 1.0 vortex-compact 71.07 MB 0 B 71.07 MB -100.0%
hits_74.vortex 1.0 vortex-compact 71.87 MB 0 B 71.87 MB -100.0%
hits_75.vortex 1.0 vortex-compact 45.12 MB 0 B 45.12 MB -100.0%
hits_76.vortex 1.0 vortex-compact 77.10 MB 0 B 77.10 MB -100.0%
hits_77.vortex 1.0 vortex-compact 118.50 MB 0 B 118.50 MB -100.0%
hits_78.vortex 1.0 vortex-compact 97.85 MB 0 B 97.85 MB -100.0%
hits_79.vortex 1.0 vortex-compact 86.17 MB 0 B 86.17 MB -100.0%
hits_8.vortex 1.0 vortex-compact 63.39 MB 0 B 63.39 MB -100.0%
hits_80.vortex 1.0 vortex-compact 68.67 MB 0 B 68.67 MB -100.0%
hits_81.vortex 1.0 vortex-compact 65.95 MB 0 B 65.95 MB -100.0%
hits_82.vortex 1.0 vortex-compact 67.43 MB 0 B 67.43 MB -100.0%
hits_83.vortex 1.0 vortex-compact 53.62 MB 0 B 53.62 MB -100.0%
hits_84.vortex 1.0 vortex-compact 74.35 MB 0 B 74.35 MB -100.0%
hits_85.vortex 1.0 vortex-compact 52.86 MB 0 B 52.86 MB -100.0%
hits_86.vortex 1.0 vortex-compact 49.12 MB 0 B 49.12 MB -100.0%
hits_87.vortex 1.0 vortex-compact 118.86 MB 0 B 118.86 MB -100.0%
hits_88.vortex 1.0 vortex-compact 73.59 MB 0 B 73.59 MB -100.0%
hits_89.vortex 1.0 vortex-compact 114.10 MB 0 B 114.10 MB -100.0%
hits_9.vortex 1.0 vortex-compact 66.32 MB 0 B 66.32 MB -100.0%
hits_90.vortex 1.0 vortex-compact 82.09 MB 0 B 82.09 MB -100.0%
hits_91.vortex 1.0 vortex-compact 61.24 MB 0 B 61.24 MB -100.0%
hits_92.vortex 1.0 vortex-compact 94.40 MB 0 B 94.40 MB -100.0%
hits_93.vortex 1.0 vortex-compact 59.92 MB 0 B 59.92 MB -100.0%
hits_94.vortex 1.0 vortex-compact 90.90 MB 0 B 90.90 MB -100.0%
hits_95.vortex 1.0 vortex-compact 58.20 MB 0 B 58.20 MB -100.0%
hits_96.vortex 1.0 vortex-compact 91.74 MB 0 B 91.74 MB -100.0%
hits_97.vortex 1.0 vortex-compact 69.58 MB 0 B 69.58 MB -100.0%
hits_98.vortex 1.0 vortex-compact 73.15 MB 0 B 73.15 MB -100.0%
hits_99.vortex 1.0 vortex-compact 77.65 MB 0 B 77.65 MB -100.0%

Totals:

  • vortex-compact: 7.11 GB → 0 B (-100.0%)
  • vortex-file-compressed: 11.04 GB → 11.04 GB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Statistical and Population Genetics 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +6.1%
Engines: DuckDB No clear signal (+6.1%, low confidence)
Vortex (geomean): 1.058x ➖
Parquet (geomean): 0.997x ➖
Shifts: Parquet (control) -0.3% · Median polish +1.0%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

duckdb / vortex-file-compressed / ns (1.058x ➖, 1↑ 3↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-file-compressed 13973996 13862675 1.01
statpopgen_q01/duckdb:vortex-file-compressed 🚀 13112539 14823089 0.88
statpopgen_q02/duckdb:vortex-file-compressed 632186437 631245906 1.00
statpopgen_q03/duckdb:vortex-file-compressed 1201028685 1205997507 1.00
statpopgen_q04/duckdb:vortex-file-compressed 1731913009 1679728532 1.03
statpopgen_q05/duckdb:vortex-file-compressed 🚨 665406575 584669527 1.14
statpopgen_q06/duckdb:vortex-file-compressed 1846046369 1752437257 1.05
statpopgen_q07/duckdb:vortex-file-compressed 265736343 259284407 1.02
statpopgen_q08/duckdb:vortex-file-compressed 🚨 293765699 261713732 1.12
statpopgen_q09/duckdb:vortex-file-compressed 963647660 951668792 1.01
statpopgen_q10/duckdb:vortex-file-compressed 🚨 4184675047 2890332467 1.45
duckdb / parquet / ns (0.997x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
statpopgen_q00/duckdb:parquet 376483898 375318650 1.00
statpopgen_q01/duckdb:parquet 466233929 467394975 1.00
statpopgen_q02/duckdb:parquet 769536856 769611475 1.00
statpopgen_q03/duckdb:parquet 1048226620 1048605749 1.00
statpopgen_q04/duckdb:parquet 1040229617 1051239622 0.99
statpopgen_q05/duckdb:parquet 765094185 761986302 1.00
statpopgen_q06/duckdb:parquet 1013074710 1017987719 1.00
statpopgen_q07/duckdb:parquet 945109576 948497984 1.00
statpopgen_q08/duckdb:parquet 970275526 977507966 0.99
statpopgen_q09/duckdb:parquet 990131668 988746389 1.00
statpopgen_q10/duckdb:parquet 1640400157 1660190633 0.99

File Size Changes (2 files changed, -32.3% overall, 0↑ 2↓)
File Scale Format Base HEAD Change %
duckdb.db 100000 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
gnomad.genomes.v3.1.2.hgdp_tgp.chr21.vortex 100000 vortex-compact 960.66 MB 0 B 960.66 MB -100.0%

Totals:

  • vortex-compact: 960.92 MB → 0 B (-100.0%)
  • vortex-file-compressed: 1.96 GB → 1.96 GB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-DS SF=1 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +1.4%
Engines: DataFusion No clear signal (-1.1%, low confidence) · DuckDB No clear signal (+4.1%, environment too noisy confidence)
Vortex (geomean): 1.010x ➖
Parquet (geomean): 0.996x ➖
Shifts: Parquet (control) -0.4% · Median polish -0.3%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (0.988x ➖, 2↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpcds_q01/datafusion:vortex-file-compressed 27277450 27856896 0.98
tpcds_q02/datafusion:vortex-file-compressed 52133663 51754738 1.01
tpcds_q03/datafusion:vortex-file-compressed 13656820 13843454 0.99
tpcds_q04/datafusion:vortex-file-compressed 214099438 214201790 1.00
tpcds_q05/datafusion:vortex-file-compressed 64858474 64197907 1.01
tpcds_q06/datafusion:vortex-file-compressed 26365712 26548581 0.99
tpcds_q07/datafusion:vortex-file-compressed 42213992 44490871 0.95
tpcds_q08/datafusion:vortex-file-compressed 33601268 33590209 1.00
tpcds_q09/datafusion:vortex-file-compressed 26601804 27852232 0.96
tpcds_q10/datafusion:vortex-file-compressed 36016970 36589482 0.98
tpcds_q11/datafusion:vortex-file-compressed 116194753 112968602 1.03
tpcds_q12/datafusion:vortex-file-compressed 20195920 20415945 0.99
tpcds_q13/datafusion:vortex-file-compressed 44577943 46850376 0.95
tpcds_q14/datafusion:vortex-file-compressed 207414359 217657512 0.95
tpcds_q15/datafusion:vortex-file-compressed 28952128 29215980 0.99
tpcds_q16/datafusion:vortex-file-compressed 24606480 25266687 0.97
tpcds_q17/datafusion:vortex-file-compressed 71891036 73284221 0.98
tpcds_q18/datafusion:vortex-file-compressed 91146444 93158022 0.98
tpcds_q19/datafusion:vortex-file-compressed 21304449 21960951 0.97
tpcds_q20/datafusion:vortex-file-compressed 22666262 22195523 1.02
tpcds_q21/datafusion:vortex-file-compressed 33928313 31009605 1.09
tpcds_q22/datafusion:vortex-file-compressed 🚀 107714385 140616871 0.77
tpcds_q23/datafusion:vortex-file-compressed 127698633 131891043 0.97
tpcds_q24/datafusion:vortex-file-compressed 95995084 97832489 0.98
tpcds_q25/datafusion:vortex-file-compressed 72390884 71172583 1.02
tpcds_q26/datafusion:vortex-file-compressed 36234243 36591515 0.99
tpcds_q27/datafusion:vortex-file-compressed 93122011 93656118 0.99
tpcds_q28/datafusion:vortex-file-compressed 26354539 27602223 0.95
tpcds_q29/datafusion:vortex-file-compressed 69080994 72779766 0.95
tpcds_q30/datafusion:vortex-file-compressed 28958772 29505904 0.98
tpcds_q31/datafusion:vortex-file-compressed 75808700 75925482 1.00
tpcds_q32/datafusion:vortex-file-compressed 18249111 17760918 1.03
tpcds_q33/datafusion:vortex-file-compressed 32570377 32559691 1.00
tpcds_q34/datafusion:vortex-file-compressed 25255113 25812521 0.98
tpcds_q35/datafusion:vortex-file-compressed 42564895 44595210 0.95
tpcds_q36/datafusion:vortex-file-compressed 61758000 62552181 0.99
tpcds_q37/datafusion:vortex-file-compressed 19176499 18492266 1.04
tpcds_q38/datafusion:vortex-file-compressed 39727089 42238333 0.94
tpcds_q39/datafusion:vortex-file-compressed 98804618 98199846 1.01
tpcds_q40/datafusion:vortex-file-compressed 32102478 32704249 0.98
tpcds_q41/datafusion:vortex-file-compressed 24055867 24273653 0.99
tpcds_q42/datafusion:vortex-file-compressed 13350615 13356132 1.00
tpcds_q43/datafusion:vortex-file-compressed 19110758 19088092 1.00
tpcds_q44/datafusion:vortex-file-compressed 33531557 34240288 0.98
tpcds_q45/datafusion:vortex-file-compressed 32402061 33470858 0.97
tpcds_q46/datafusion:vortex-file-compressed 33586859 35120458 0.96
tpcds_q47/datafusion:vortex-file-compressed 131396615 129223290 1.02
tpcds_q48/datafusion:vortex-file-compressed 37838883 39203915 0.97
tpcds_q49/datafusion:vortex-file-compressed 69996380 70996717 0.99
tpcds_q50/datafusion:vortex-file-compressed 45168142 47840548 0.94
tpcds_q51/datafusion:vortex-file-compressed 75198986 76222809 0.99
tpcds_q52/datafusion:vortex-file-compressed 13935756 14051745 0.99
tpcds_q53/datafusion:vortex-file-compressed 23965771 23793351 1.01
tpcds_q54/datafusion:vortex-file-compressed 37145945 37635866 0.99
tpcds_q55/datafusion:vortex-file-compressed 13099449 14019356 0.93
tpcds_q56/datafusion:vortex-file-compressed 32122153 33724394 0.95
tpcds_q57/datafusion:vortex-file-compressed 102900935 95902178 1.07
tpcds_q58/datafusion:vortex-file-compressed 60541501 62497547 0.97
tpcds_q59/datafusion:vortex-file-compressed 56050848 56605355 0.99
tpcds_q60/datafusion:vortex-file-compressed 31972753 32665968 0.98
tpcds_q61/datafusion:vortex-file-compressed 37560406 36388870 1.03
tpcds_q62/datafusion:vortex-file-compressed 24568128 24586422 1.00
tpcds_q63/datafusion:vortex-file-compressed 23780784 24957232 0.95
tpcds_q64/datafusion:vortex-file-compressed 464055825 482440514 0.96
tpcds_q65/datafusion:vortex-file-compressed 72626008 73098876 0.99
tpcds_q66/datafusion:vortex-file-compressed 79290983 77694122 1.02
tpcds_q67/datafusion:vortex-file-compressed 111643134 117428410 0.95
tpcds_q68/datafusion:vortex-file-compressed 32587933 32705739 1.00
tpcds_q69/datafusion:vortex-file-compressed 🚀 32800683 36555021 0.90
tpcds_q70/datafusion:vortex-file-compressed 111810733 112028983 1.00
tpcds_q71/datafusion:vortex-file-compressed 23170014 22915498 1.01
tpcds_q72/datafusion:vortex-file-compressed 1506501773 1489652656 1.01
tpcds_q73/datafusion:vortex-file-compressed 24041612 24248614 0.99
tpcds_q74/datafusion:vortex-file-compressed 74808168 74095352 1.01
tpcds_q75/datafusion:vortex-file-compressed 157125090 149245945 1.05
tpcds_q76/datafusion:vortex-file-compressed 42309469 43075731 0.98
tpcds_q77/datafusion:vortex-file-compressed 44912648 43935506 1.02
tpcds_q78/datafusion:vortex-file-compressed 113201634 108249688 1.05
tpcds_q79/datafusion:vortex-file-compressed 27986376 28088531 1.00
tpcds_q80/datafusion:vortex-file-compressed 105183282 100370122 1.05
tpcds_q81/datafusion:vortex-file-compressed 30266999 30530981 0.99
tpcds_q82/datafusion:vortex-file-compressed 20271356 19605822 1.03
tpcds_q83/datafusion:vortex-file-compressed 42113674 43625161 0.97
tpcds_q84/datafusion:vortex-file-compressed 13061185 13627052 0.96
tpcds_q85/datafusion:vortex-file-compressed 114604508 116122444 0.99
tpcds_q86/datafusion:vortex-file-compressed 18469078 19400050 0.95
tpcds_q87/datafusion:vortex-file-compressed 41605931 41005554 1.01
tpcds_q88/datafusion:vortex-file-compressed 53233355 53749855 0.99
tpcds_q89/datafusion:vortex-file-compressed 29568500 27276066 1.08
tpcds_q90/datafusion:vortex-file-compressed 13647129 14352858 0.95
tpcds_q91/datafusion:vortex-file-compressed 19834753 19693316 1.01
tpcds_q92/datafusion:vortex-file-compressed 17291168 16673955 1.04
tpcds_q93/datafusion:vortex-file-compressed 30601619 31090999 0.98
tpcds_q94/datafusion:vortex-file-compressed 22948408 22940031 1.00
tpcds_q95/datafusion:vortex-file-compressed 61584214 63287135 0.97
tpcds_q96/datafusion:vortex-file-compressed 10923225 11310178 0.97
tpcds_q97/datafusion:vortex-file-compressed 29499947 28368804 1.04
tpcds_q98/datafusion:vortex-file-compressed 24647649 25416653 0.97
tpcds_q99/datafusion:vortex-file-compressed 28136019 26593902 1.06
datafusion / parquet / ns (0.999x ➖, 2↑ 1↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpcds_q01/datafusion:parquet 🚨 32045764 29037481 1.10
tpcds_q02/datafusion:parquet 53598157 52989346 1.01
tpcds_q03/datafusion:parquet 17088375 16838563 1.01
tpcds_q04/datafusion:parquet 331520243 337701763 0.98
tpcds_q05/datafusion:parquet 80453598 79262234 1.02
tpcds_q06/datafusion:parquet 30792668 30434680 1.01
tpcds_q07/datafusion:parquet 98203759 99800677 0.98
tpcds_q08/datafusion:parquet 38154610 38685363 0.99
tpcds_q09/datafusion:parquet 36569278 36465246 1.00
tpcds_q10/datafusion:parquet 89088255 89098815 1.00
tpcds_q11/datafusion:parquet 169532558 167674606 1.01
tpcds_q12/datafusion:parquet 23649982 24342336 0.97
tpcds_q13/datafusion:parquet 98881562 96845564 1.02
tpcds_q14/datafusion:parquet 282855755 283536338 1.00
tpcds_q15/datafusion:parquet 36773759 36516043 1.01
tpcds_q16/datafusion:parquet 49330691 46473228 1.06
tpcds_q17/datafusion:parquet 113627174 108739052 1.04
tpcds_q18/datafusion:parquet 130815500 139621224 0.94
tpcds_q19/datafusion:parquet 29639612 28471300 1.04
tpcds_q20/datafusion:parquet 24210982 23488566 1.03
tpcds_q21/datafusion:parquet 23037408 22312051 1.03
tpcds_q22/datafusion:parquet 122641117 123567703 0.99
tpcds_q23/datafusion:parquet 171140778 179678371 0.95
tpcds_q24/datafusion:parquet 144115637 134938278 1.07
tpcds_q25/datafusion:parquet 109788934 108221160 1.01
tpcds_q26/datafusion:parquet 83442459 84401386 0.99
tpcds_q27/datafusion:parquet 157795033 163357994 0.97
tpcds_q28/datafusion:parquet 41003730 41582962 0.99
tpcds_q29/datafusion:parquet 110044671 105396193 1.04
tpcds_q30/datafusion:parquet 42296500 42759310 0.99
tpcds_q31/datafusion:parquet 92304825 94121595 0.98
tpcds_q32/datafusion:parquet 24579713 23885828 1.03
tpcds_q33/datafusion:parquet 37827259 38253417 0.99
tpcds_q34/datafusion:parquet 29967218 29459552 1.02
tpcds_q35/datafusion:parquet 89597665 94052890 0.95
tpcds_q36/datafusion:parquet 69364514 72805050 0.95
tpcds_q37/datafusion:parquet 23987888 24336356 0.99
tpcds_q38/datafusion:parquet 57217278 57787782 0.99
tpcds_q39/datafusion:parquet 82736232 82987419 1.00
tpcds_q40/datafusion:parquet 33758401 33730577 1.00
tpcds_q41/datafusion:parquet 19022777 19184172 0.99
tpcds_q42/datafusion:parquet 16261338 17005207 0.96
tpcds_q43/datafusion:parquet 22600768 22735101 0.99
tpcds_q44/datafusion:parquet 40937265 41346603 0.99
tpcds_q45/datafusion:parquet 44543802 44628430 1.00
tpcds_q46/datafusion:parquet 40497419 41625328 0.97
tpcds_q47/datafusion:parquet 153702786 148694820 1.03
tpcds_q48/datafusion:parquet 88416420 88186953 1.00
tpcds_q49/datafusion:parquet 77514456 75834504 1.02
tpcds_q50/datafusion:parquet 🚀 69988368 79161325 0.88
tpcds_q51/datafusion:parquet 84650508 82870453 1.02
tpcds_q52/datafusion:parquet 16526534 16596539 1.00
tpcds_q53/datafusion:parquet 24906273 25829492 0.96
tpcds_q54/datafusion:parquet 46681611 45418022 1.03
tpcds_q55/datafusion:parquet 15611553 16200034 0.96
tpcds_q56/datafusion:parquet 36308140 37412015 0.97
tpcds_q57/datafusion:parquet 120997534 130796697 0.93
tpcds_q58/datafusion:parquet 80503329 83258619 0.97
tpcds_q59/datafusion:parquet 78220550 76001697 1.03
tpcds_q60/datafusion:parquet 35991214 37665041 0.96
tpcds_q61/datafusion:parquet 45503507 46400333 0.98
tpcds_q62/datafusion:parquet 29186220 28677756 1.02
tpcds_q63/datafusion:parquet 25891652 24304239 1.07
tpcds_q64/datafusion:parquet 361646147 357213186 1.01
tpcds_q65/datafusion:parquet 48530002 48108746 1.01
tpcds_q66/datafusion:parquet 88599348 82876951 1.07
tpcds_q67/datafusion:parquet 144406275 145487328 0.99
tpcds_q68/datafusion:parquet 40154386 40420640 0.99
tpcds_q69/datafusion:parquet 83908978 85697277 0.98
tpcds_q70/datafusion:parquet 44598456 43379830 1.03
tpcds_q71/datafusion:parquet 26435784 27992022 0.94
tpcds_q72/datafusion:parquet 447525905 448688262 1.00
tpcds_q73/datafusion:parquet 27778398 28451865 0.98
tpcds_q74/datafusion:parquet 107461268 100451925 1.07
tpcds_q75/datafusion:parquet 175873542 178129620 0.99
tpcds_q76/datafusion:parquet 60218032 60925473 0.99
tpcds_q77/datafusion:parquet 57466067 55251600 1.04
tpcds_q78/datafusion:parquet 122998083 123065231 1.00
tpcds_q79/datafusion:parquet 34344707 33830952 1.02
tpcds_q80/datafusion:parquet 🚀 96480261 107535502 0.90
tpcds_q81/datafusion:parquet 39643663 39693327 1.00
tpcds_q82/datafusion:parquet 24211048 23443279 1.03
tpcds_q83/datafusion:parquet 56645717 55695799 1.02
tpcds_q84/datafusion:parquet 47874364 49851325 0.96
tpcds_q85/datafusion:parquet 199227812 196196600 1.02
tpcds_q86/datafusion:parquet 21479988 20784762 1.03
tpcds_q87/datafusion:parquet 61461563 60589210 1.01
tpcds_q88/datafusion:parquet 59550617 58046771 1.03
tpcds_q89/datafusion:parquet 30608476 30675831 1.00
tpcds_q90/datafusion:parquet 19414499 19305421 1.01
tpcds_q91/datafusion:parquet 67280944 64780119 1.04
tpcds_q92/datafusion:parquet 24781364 24392534 1.02
tpcds_q93/datafusion:parquet 37786236 36942566 1.02
tpcds_q94/datafusion:parquet 30343434 31013508 0.98
tpcds_q95/datafusion:parquet 88466760 86650726 1.02
tpcds_q96/datafusion:parquet 16035978 16975747 0.94
tpcds_q97/datafusion:parquet 41403194 40595458 1.02
tpcds_q98/datafusion:parquet 26378446 26726178 0.99
tpcds_q99/datafusion:parquet 34073196 34440377 0.99
duckdb / vortex-file-compressed / ns (1.032x ➖, 1↑ 22↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpcds_q01/duckdb:vortex-file-compressed 27445127 29538898 0.93
tpcds_q02/duckdb:vortex-file-compressed 30201969 28292735 1.07
tpcds_q03/duckdb:vortex-file-compressed 22841715 24962988 0.92
tpcds_q04/duckdb:vortex-file-compressed 90871178 91980983 0.99
tpcds_q05/duckdb:vortex-file-compressed 37927083 39285320 0.97
tpcds_q06/duckdb:vortex-file-compressed 53430157 54671761 0.98
tpcds_q07/duckdb:vortex-file-compressed 31669236 32660793 0.97
tpcds_q08/duckdb:vortex-file-compressed 33836444 33721058 1.00
tpcds_q09/duckdb:vortex-file-compressed 🚨 18901038 16590255 1.14
tpcds_q10/duckdb:vortex-file-compressed 55164517 54358948 1.01
tpcds_q11/duckdb:vortex-file-compressed 73125465 75410850 0.97
tpcds_q12/duckdb:vortex-file-compressed 18515559 18149354 1.02
tpcds_q13/duckdb:vortex-file-compressed 42649531 41489559 1.03
tpcds_q14/duckdb:vortex-file-compressed 113782021 113512670 1.00
tpcds_q15/duckdb:vortex-file-compressed 34561860 33448608 1.03
tpcds_q16/duckdb:vortex-file-compressed 37077475 35118425 1.06
tpcds_q17/duckdb:vortex-file-compressed 🚨 60466012 54742336 1.10
tpcds_q18/duckdb:vortex-file-compressed 53987521 50315255 1.07
tpcds_q19/duckdb:vortex-file-compressed 🚨 44590868 40446329 1.10
tpcds_q20/duckdb:vortex-file-compressed 19546927 17855627 1.09
tpcds_q21/duckdb:vortex-file-compressed 🚨 25745811 21322529 1.21
tpcds_q22/duckdb:vortex-file-compressed 69728346 65718785 1.06
tpcds_q23/duckdb:vortex-file-compressed 74499933 75980344 0.98
tpcds_q24/duckdb:vortex-file-compressed 54819832 51967789 1.05
tpcds_q25/duckdb:vortex-file-compressed 🚨 54311903 47685441 1.14
tpcds_q26/duckdb:vortex-file-compressed 23651204 25872656 0.91
tpcds_q27/duckdb:vortex-file-compressed 33085756 34344144 0.96
tpcds_q28/duckdb:vortex-file-compressed 🚨 16973128 14996023 1.13
tpcds_q29/duckdb:vortex-file-compressed 56696881 55672289 1.02
tpcds_q30/duckdb:vortex-file-compressed 34883696 37025800 0.94
tpcds_q31/duckdb:vortex-file-compressed 35280402 34140855 1.03
tpcds_q32/duckdb:vortex-file-compressed 🚨 24262174 21346463 1.14
tpcds_q33/duckdb:vortex-file-compressed 33077835 36051610 0.92
tpcds_q34/duckdb:vortex-file-compressed 31130166 31434968 0.99
tpcds_q35/duckdb:vortex-file-compressed 86611954 86245804 1.00
tpcds_q36/duckdb:vortex-file-compressed 29337337 32240862 0.91
tpcds_q37/duckdb:vortex-file-compressed 🚨 31879838 25759024 1.24
tpcds_q38/duckdb:vortex-file-compressed 42861769 43395158 0.99
tpcds_q39/duckdb:vortex-file-compressed 🚨 39951845 36264780 1.10
tpcds_q40/duckdb:vortex-file-compressed 25753158 23720529 1.09
tpcds_q41/duckdb:vortex-file-compressed 🚨 20052645 14176890 1.41
tpcds_q42/duckdb:vortex-file-compressed 🚨 19685026 17698719 1.11
tpcds_q43/duckdb:vortex-file-compressed 21727375 20989973 1.04
tpcds_q44/duckdb:vortex-file-compressed 25995924 27206568 0.96
tpcds_q45/duckdb:vortex-file-compressed 39850567 37122503 1.07
tpcds_q46/duckdb:vortex-file-compressed 39971598 36449938 1.10
tpcds_q47/duckdb:vortex-file-compressed 59474035 58284028 1.02
tpcds_q48/duckdb:vortex-file-compressed 🚨 39441283 35424246 1.11
tpcds_q49/duckdb:vortex-file-compressed 43707543 45194506 0.97
tpcds_q50/duckdb:vortex-file-compressed 🚨 37214690 33298766 1.12
tpcds_q51/duckdb:vortex-file-compressed 🚨 139121105 106080590 1.31
tpcds_q52/duckdb:vortex-file-compressed 🚀 17054319 19708216 0.87
tpcds_q53/duckdb:vortex-file-compressed 29110557 30218585 0.96
tpcds_q54/duckdb:vortex-file-compressed 44936694 44968514 1.00
tpcds_q55/duckdb:vortex-file-compressed 16113641 17280119 0.93
tpcds_q56/duckdb:vortex-file-compressed 35583050 33710625 1.06
tpcds_q57/duckdb:vortex-file-compressed 43075101 45303066 0.95
tpcds_q58/duckdb:vortex-file-compressed 41066218 43756795 0.94
tpcds_q59/duckdb:vortex-file-compressed 41314965 40228446 1.03
tpcds_q60/duckdb:vortex-file-compressed 34300030 37379493 0.92
tpcds_q61/duckdb:vortex-file-compressed 38765285 40092559 0.97
tpcds_q62/duckdb:vortex-file-compressed 21414610 21023168 1.02
tpcds_q63/duckdb:vortex-file-compressed 🚨 30255187 25890359 1.17
tpcds_q64/duckdb:vortex-file-compressed 117110238 115701908 1.01
tpcds_q65/duckdb:vortex-file-compressed 27062514 27074475 1.00
tpcds_q66/duckdb:vortex-file-compressed 38365902 39896347 0.96
tpcds_q67/duckdb:vortex-file-compressed 132070635 128957297 1.02
tpcds_q68/duckdb:vortex-file-compressed 35949984 35155595 1.02
tpcds_q69/duckdb:vortex-file-compressed 🚨 64805270 57738641 1.12
tpcds_q70/duckdb:vortex-file-compressed 41756770 45976613 0.91
tpcds_q71/duckdb:vortex-file-compressed 24272217 25679816 0.95
tpcds_q72/duckdb:vortex-file-compressed 150676492 151411279 1.00
tpcds_q73/duckdb:vortex-file-compressed 🚨 35172956 30061458 1.17
tpcds_q74/duckdb:vortex-file-compressed 53054254 52826987 1.00
tpcds_q75/duckdb:vortex-file-compressed 62867296 57245371 1.10
tpcds_q76/duckdb:vortex-file-compressed 24735099 23409083 1.06
tpcds_q77/duckdb:vortex-file-compressed 31496342 33296889 0.95
tpcds_q78/duckdb:vortex-file-compressed 76887443 79704143 0.96
tpcds_q79/duckdb:vortex-file-compressed 32865102 32593422 1.01
tpcds_q80/duckdb:vortex-file-compressed 57713780 56611936 1.02
tpcds_q81/duckdb:vortex-file-compressed 44283136 41820161 1.06
tpcds_q82/duckdb:vortex-file-compressed 🚨 60650440 52939093 1.15
tpcds_q83/duckdb:vortex-file-compressed 41104917 41405856 0.99
tpcds_q84/duckdb:vortex-file-compressed 29215659 27651739 1.06
tpcds_q85/duckdb:vortex-file-compressed 57573373 56693707 1.02
tpcds_q86/duckdb:vortex-file-compressed 🚨 21002295 18972708 1.11
tpcds_q87/duckdb:vortex-file-compressed 47511315 47755550 0.99
tpcds_q88/duckdb:vortex-file-compressed 63707224 63009302 1.01
tpcds_q89/duckdb:vortex-file-compressed 29153417 28975513 1.01
tpcds_q90/duckdb:vortex-file-compressed 🚨 21456387 16996438 1.26
tpcds_q91/duckdb:vortex-file-compressed 36197359 33782662 1.07
tpcds_q92/duckdb:vortex-file-compressed 24489328 26411038 0.93
tpcds_q93/duckdb:vortex-file-compressed 28414566 29092332 0.98
tpcds_q94/duckdb:vortex-file-compressed 🚨 38544181 31781155 1.21
tpcds_q95/duckdb:vortex-file-compressed 151455300 150022884 1.01
tpcds_q96/duckdb:vortex-file-compressed 19405073 18826066 1.03
tpcds_q97/duckdb:vortex-file-compressed 46877170 46632385 1.01
tpcds_q98/duckdb:vortex-file-compressed 24037263 24793287 0.97
tpcds_q99/duckdb:vortex-file-compressed 🚨 26713280 23507837 1.14
duckdb / parquet / ns (0.992x ➖, 6↑ 2↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpcds_q01/duckdb:parquet 33364698 33815489 0.99
tpcds_q02/duckdb:parquet 🚀 22397778 29063821 0.77
tpcds_q03/duckdb:parquet 14692416 14644693 1.00
tpcds_q04/duckdb:parquet 198921225 198186648 1.00
tpcds_q05/duckdb:parquet 34015198 33145191 1.03
tpcds_q06/duckdb:parquet 35007824 35500358 0.99
tpcds_q07/duckdb:parquet 22208881 21979345 1.01
tpcds_q08/duckdb:parquet 33770024 33506635 1.01
tpcds_q09/duckdb:parquet 30514388 29994679 1.02
tpcds_q10/duckdb:parquet 41507619 42095892 0.99
tpcds_q11/duckdb:parquet 108323172 102365558 1.06
tpcds_q12/duckdb:parquet 17574835 17655419 1.00
tpcds_q13/duckdb:parquet 🚀 33249490 40120709 0.83
tpcds_q14/duckdb:parquet 105168637 103202650 1.02
tpcds_q15/duckdb:parquet 34519895 35200126 0.98
tpcds_q16/duckdb:parquet 27509578 27535354 1.00
tpcds_q17/duckdb:parquet 44438140 45499091 0.98
tpcds_q18/duckdb:parquet 57643274 58146389 0.99
tpcds_q19/duckdb:parquet 33010083 35192735 0.94
tpcds_q20/duckdb:parquet 19224887 19342604 0.99
tpcds_q21/duckdb:parquet 14032248 14380508 0.98
tpcds_q22/duckdb:parquet 69375425 65345465 1.06
tpcds_q23/duckdb:parquet 68594757 69220933 0.99
tpcds_q24/duckdb:parquet 48287784 47772208 1.01
tpcds_q25/duckdb:parquet 41910743 41645242 1.01
tpcds_q26/duckdb:parquet 45199794 43903516 1.03
tpcds_q27/duckdb:parquet 54670794 55375339 0.99
tpcds_q28/duckdb:parquet 29164019 29619976 0.98
tpcds_q29/duckdb:parquet 43007788 42687438 1.01
tpcds_q30/duckdb:parquet 44534322 44149801 1.01
tpcds_q31/duckdb:parquet 28665553 29519141 0.97
tpcds_q32/duckdb:parquet 15424733 14831644 1.04
tpcds_q33/duckdb:parquet 🚨 26344355 23477373 1.12
tpcds_q34/duckdb:parquet 21393202 22491131 0.95
tpcds_q35/duckdb:parquet 67803746 68967716 0.98
tpcds_q36/duckdb:parquet 22165479 22127736 1.00
tpcds_q37/duckdb:parquet 🚀 17268482 19734764 0.88
tpcds_q38/duckdb:parquet 40460516 42190197 0.96
tpcds_q39/duckdb:parquet 37000890 37952139 0.97
tpcds_q40/duckdb:parquet 23020402 23107219 1.00
tpcds_q41/duckdb:parquet 10163513 10364226 0.98
tpcds_q42/duckdb:parquet 11759968 12913996 0.91
tpcds_q43/duckdb:parquet 🚀 14729173 19322382 0.76
tpcds_q44/duckdb:parquet 24544078 24408089 1.01
tpcds_q45/duckdb:parquet 32491013 33132261 0.98
tpcds_q46/duckdb:parquet 50228884 51002833 0.98
tpcds_q47/duckdb:parquet 48160378 50772074 0.95
tpcds_q48/duckdb:parquet 30281727 30487813 0.99
tpcds_q49/duckdb:parquet 30568888 30657794 1.00
tpcds_q50/duckdb:parquet 25355943 24994513 1.01
tpcds_q51/duckdb:parquet 99814559 97441364 1.02
tpcds_q52/duckdb:parquet 12335076 11754144 1.05
tpcds_q53/duckdb:parquet 15910714 16217300 0.98
tpcds_q54/duckdb:parquet 30058272 30282657 0.99
tpcds_q55/duckdb:parquet 11724693 12153519 0.96
tpcds_q56/duckdb:parquet 23554999 24776191 0.95
tpcds_q57/duckdb:parquet 41932332 42162228 0.99
tpcds_q58/duckdb:parquet 26570243 27066760 0.98
tpcds_q59/duckdb:parquet 29884989 29364999 1.02
tpcds_q60/duckdb:parquet 24785832 25711096 0.96
tpcds_q61/duckdb:parquet 31633544 33336001 0.95
tpcds_q62/duckdb:parquet 14818714 14390233 1.03
tpcds_q63/duckdb:parquet 🚀 15386730 17362657 0.89
tpcds_q64/duckdb:parquet 80055067 81573082 0.98
tpcds_q65/duckdb:parquet 23605384 23453847 1.01
tpcds_q66/duckdb:parquet 34756359 34688451 1.00
tpcds_q67/duckdb:parquet 123413943 123918204 1.00
tpcds_q68/duckdb:parquet 41613942 39516636 1.05
tpcds_q69/duckdb:parquet 42148527 42876353 0.98
tpcds_q70/duckdb:parquet 29220498 27836604 1.05
tpcds_q71/duckdb:parquet 21939621 22721581 0.97
tpcds_q72/duckdb:parquet 🚨 189374247 123310796 1.54
tpcds_q73/duckdb:parquet 18757177 18662489 1.01
tpcds_q74/duckdb:parquet 143764070 146197187 0.98
tpcds_q75/duckdb:parquet 60334485 60325122 1.00
tpcds_q76/duckdb:parquet 19197466 19631285 0.98
tpcds_q77/duckdb:parquet 25877707 25238282 1.03
tpcds_q78/duckdb:parquet 76767146 78224242 0.98
tpcds_q79/duckdb:parquet 33377792 33005069 1.01
tpcds_q80/duckdb:parquet 47583158 49444629 0.96
tpcds_q81/duckdb:parquet 40814907 40276510 1.01
tpcds_q82/duckdb:parquet 18916457 19023560 0.99
tpcds_q83/duckdb:parquet 22459814 22155291 1.01
tpcds_q84/duckdb:parquet 23532716 23627275 1.00
tpcds_q85/duckdb:parquet 47026905 47113821 1.00
tpcds_q86/duckdb:parquet 14696868 14929806 0.98
tpcds_q87/duckdb:parquet 43508457 44176517 0.98
tpcds_q88/duckdb:parquet 43121029 43971760 0.98
tpcds_q89/duckdb:parquet 18215746 18239375 1.00
tpcds_q90/duckdb:parquet 9778090 9749788 1.00
tpcds_q91/duckdb:parquet 26905085 27497880 0.98
tpcds_q92/duckdb:parquet 15368681 15392861 1.00
tpcds_q93/duckdb:parquet 🚀 30981929 34751996 0.89
tpcds_q94/duckdb:parquet 21847483 21843281 1.00
tpcds_q95/duckdb:parquet 136066939 137499901 0.99
tpcds_q96/duckdb:parquet 10157839 9799382 1.04
tpcds_q97/duckdb:parquet 40701263 38700432 1.05
tpcds_q98/duckdb:parquet 22014261 21368245 1.03
tpcds_q99/duckdb:parquet 25871351 23702384 1.09

File Size Changes (25 files changed, -43.5% overall, 0↑ 25↓)
File Scale Format Base HEAD Change %
call_center.vortex 1.0 vortex-compact 47.68 KB 0 B 47.68 KB -100.0%
catalog_page.vortex 1.0 vortex-compact 362.70 KB 0 B 362.70 KB -100.0%
catalog_returns.vortex 1.0 vortex-compact 6.04 MB 0 B 6.04 MB -100.0%
catalog_sales.vortex 1.0 vortex-compact 59.49 MB 0 B 59.49 MB -100.0%
customer.vortex 1.0 vortex-compact 3.29 MB 0 B 3.29 MB -100.0%
customer_address.vortex 1.0 vortex-compact 639.07 KB 0 B 639.07 KB -100.0%
customer_demographics.vortex 1.0 vortex-compact 424.41 KB 0 B 424.41 KB -100.0%
date_dim.vortex 1.0 vortex-compact 140.51 KB 0 B 140.51 KB -100.0%
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
household_demographics.vortex 1.0 vortex-compact 10.52 KB 0 B 10.52 KB -100.0%
income_band.vortex 1.0 vortex-compact 5.80 KB 0 B 5.80 KB -100.0%
inventory.vortex 1.0 vortex-compact 16.07 MB 0 B 16.07 MB -100.0%
item.vortex 1.0 vortex-compact 1000.57 KB 0 B 1000.57 KB -100.0%
promotion.vortex 1.0 vortex-compact 50.55 KB 0 B 50.55 KB -100.0%
reason.vortex 1.0 vortex-compact 6.20 KB 0 B 6.20 KB -100.0%
ship_mode.vortex 1.0 vortex-compact 10.96 KB 0 B 10.96 KB -100.0%
store.vortex 1.0 vortex-compact 43.47 KB 0 B 43.47 KB -100.0%
store_returns.vortex 1.0 vortex-compact 9.36 MB 0 B 9.36 MB -100.0%
store_sales.vortex 1.0 vortex-compact 78.12 MB 0 B 78.12 MB -100.0%
time_dim.vortex 1.0 vortex-compact 96.83 KB 0 B 96.83 KB -100.0%
warehouse.vortex 1.0 vortex-compact 22.38 KB 0 B 22.38 KB -100.0%
web_page.vortex 1.0 vortex-compact 25.24 KB 0 B 25.24 KB -100.0%
web_returns.vortex 1.0 vortex-compact 3.00 MB 0 B 3.00 MB -100.0%
web_sales.vortex 1.0 vortex-compact 29.45 MB 0 B 29.45 MB -100.0%
web_site.vortex 1.0 vortex-compact 42.43 KB 0 B 42.43 KB -100.0%

Totals:

  • vortex-compact: 207.95 MB → 0 B (-100.0%)
  • vortex-file-compressed: 269.98 MB → 269.98 MB (0.0%)

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb S3 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -6.7%
Engines: DataFusion No clear signal (-8.0%, environment too noisy confidence) · DuckDB No clear signal (-5.4%, environment too noisy confidence)
Vortex (geomean): 0.952x ➖
Parquet (geomean): 1.020x ➖
Shifts: Parquet (control) +2.0% · Median polish -3.9%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (0.919x ➖, 0↑ 1↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 🚨 65943651 50631371 1.30
fineweb_q01/datafusion:vortex-file-compressed 543316867 433371525 1.25
fineweb_q02/datafusion:vortex-file-compressed 372330619 429552020 0.87
fineweb_q03/datafusion:vortex-file-compressed 332780579 470287422 0.71
fineweb_q04/datafusion:vortex-file-compressed 400708918 418027941 0.96
fineweb_q05/datafusion:vortex-file-compressed 347232652 444960426 0.78
fineweb_q06/datafusion:vortex-file-compressed 600682506 676617056 0.89
fineweb_q07/datafusion:vortex-file-compressed 451320999 460816642 0.98
fineweb_q08/datafusion:vortex-file-compressed 173268611 242108622 0.72
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 505325167 513066176 0.98
fineweb_q01/datafusion:parquet 890734803 867192120 1.03
fineweb_q02/datafusion:parquet 867985076 907397968 0.96
fineweb_q03/datafusion:parquet 916721230 1001040458 0.92
fineweb_q04/datafusion:parquet 883706264 1008835210 0.88
fineweb_q05/datafusion:parquet 1039328660 812442308 1.28
fineweb_q06/datafusion:parquet 1018531769 892074240 1.14
fineweb_q07/datafusion:parquet 982663581 1039615668 0.95
fineweb_q08/datafusion:parquet 890283478 966734315 0.92
duckdb / vortex-file-compressed / ns (0.986x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 51041538 49584049 1.03
fineweb_q01/duckdb:vortex-file-compressed 534207801 602605914 0.89
fineweb_q02/duckdb:vortex-file-compressed 479074031 490960381 0.98
fineweb_q03/duckdb:vortex-file-compressed 1506577405 1456348191 1.03
fineweb_q04/duckdb:vortex-file-compressed 1823551176 1779245397 1.02
fineweb_q05/duckdb:vortex-file-compressed 1627301126 1640068199 0.99
fineweb_q06/duckdb:vortex-file-compressed 1670617318 1727116824 0.97
fineweb_q07/duckdb:vortex-file-compressed 1545586436 1654449423 0.93
fineweb_q08/duckdb:vortex-file-compressed 706592614 677465847 1.04
duckdb / parquet / ns (1.042x ➖, 1↑ 1↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 🚨 5238128489 665387009 7.87
fineweb_q01/duckdb:parquet 5346841879 5336800456 1.00
fineweb_q02/duckdb:parquet 5323500903 5312214881 1.00
fineweb_q03/duckdb:parquet 5368038708 5386833003 1.00
fineweb_q04/duckdb:parquet 5279853868 5312177317 0.99
fineweb_q05/duckdb:parquet 🚀 947617364 5308925133 0.18
fineweb_q06/duckdb:parquet 5449293784 5297613658 1.03
fineweb_q07/duckdb:parquet 5354019415 5325330963 1.01
fineweb_q08/duckdb:parquet 5292997468 5267605340 1.00

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on S3 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -14.3%
Engines: DataFusion No clear signal (-8.3%, environment too noisy confidence) · DuckDB No clear signal (-19.9%, low confidence)
Vortex (geomean): 0.876x ➖
Parquet (geomean): 1.022x ➖
Shifts: Parquet (control) +2.2% · Median polish -1.1%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (0.938x ➖, 1↑ 2↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 233855474 231458097 1.01
tpch_q02/datafusion:vortex-file-compressed 347745754 438243141 0.79
tpch_q03/datafusion:vortex-file-compressed 332251382 331696642 1.00
tpch_q04/datafusion:vortex-file-compressed 171746021 166650272 1.03
tpch_q05/datafusion:vortex-file-compressed 344667617 457642109 0.75
tpch_q06/datafusion:vortex-file-compressed 🚨 386491245 241406703 1.60
tpch_q07/datafusion:vortex-file-compressed 🚨 477425007 339067271 1.41
tpch_q08/datafusion:vortex-file-compressed 497292179 462192970 1.08
tpch_q09/datafusion:vortex-file-compressed 348169517 321102505 1.08
tpch_q10/datafusion:vortex-file-compressed 376759703 358919967 1.05
tpch_q11/datafusion:vortex-file-compressed 263825744 270814079 0.97
tpch_q12/datafusion:vortex-file-compressed 🚀 206350123 403477221 0.51
tpch_q13/datafusion:vortex-file-compressed 128018754 134916634 0.95
tpch_q14/datafusion:vortex-file-compressed 164194349 185396851 0.89
tpch_q15/datafusion:vortex-file-compressed 296709688 328393903 0.90
tpch_q16/datafusion:vortex-file-compressed 169906157 235080878 0.72
tpch_q17/datafusion:vortex-file-compressed 292103512 318344805 0.92
tpch_q18/datafusion:vortex-file-compressed 270835920 264785316 1.02
tpch_q19/datafusion:vortex-file-compressed 327412797 432088532 0.76
tpch_q20/datafusion:vortex-file-compressed 374546678 382436595 0.98
tpch_q21/datafusion:vortex-file-compressed 456471360 475550412 0.96
tpch_q22/datafusion:vortex-file-compressed 134532933 174655273 0.77
datafusion / parquet / ns (1.022x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 217948924 205624139 1.06
tpch_q02/datafusion:parquet 279021048 289159292 0.96
tpch_q03/datafusion:parquet 312786486 299696619 1.04
tpch_q04/datafusion:parquet 146520276 158398779 0.93
tpch_q05/datafusion:parquet 362974884 376788693 0.96
tpch_q06/datafusion:parquet 141493856 141912738 1.00
tpch_q07/datafusion:parquet 382456402 366640686 1.04
tpch_q08/datafusion:parquet 439518808 432308886 1.02
tpch_q09/datafusion:parquet 451657723 451932179 1.00
tpch_q10/datafusion:parquet 413435579 410469606 1.01
tpch_q11/datafusion:parquet 276930354 276133303 1.00
tpch_q12/datafusion:parquet 237904923 205117372 1.16
tpch_q13/datafusion:parquet 458278608 455076216 1.01
tpch_q14/datafusion:parquet 176161054 167623193 1.05
tpch_q15/datafusion:parquet 293896845 273564085 1.07
tpch_q16/datafusion:parquet 126425429 124760105 1.01
tpch_q17/datafusion:parquet 319599755 312905253 1.02
tpch_q18/datafusion:parquet 513339911 442070322 1.16
tpch_q19/datafusion:parquet 208174457 190878519 1.09
tpch_q20/datafusion:parquet 299801144 277127659 1.08
tpch_q21/datafusion:parquet 442967991 447491749 0.99
tpch_q22/datafusion:parquet 187005841 218069713 0.86
duckdb / vortex-file-compressed / ns (0.819x ➖, 2↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 251429373 258068215 0.97
tpch_q02/duckdb:vortex-file-compressed 544607056 644897343 0.84
tpch_q03/duckdb:vortex-file-compressed 512335214 458549579 1.12
tpch_q04/duckdb:vortex-file-compressed 233610713 297421899 0.79
tpch_q05/duckdb:vortex-file-compressed 404014480 569505722 0.71
tpch_q06/duckdb:vortex-file-compressed 227297525 285533633 0.80
tpch_q07/duckdb:vortex-file-compressed 456181554 642568972 0.71
tpch_q08/duckdb:vortex-file-compressed 619921431 748257308 0.83
tpch_q09/duckdb:vortex-file-compressed 494973565 579622023 0.85
tpch_q10/duckdb:vortex-file-compressed 442046981 502705739 0.88
tpch_q11/duckdb:vortex-file-compressed 196313408 270265210 0.73
tpch_q12/duckdb:vortex-file-compressed 🚀 266450849 438080771 0.61
tpch_q13/duckdb:vortex-file-compressed 266870806 317542627 0.84
tpch_q14/duckdb:vortex-file-compressed 236006031 254532719 0.93
tpch_q15/duckdb:vortex-file-compressed 164179364 185804935 0.88
tpch_q16/duckdb:vortex-file-compressed 195252327 244213879 0.80
tpch_q17/duckdb:vortex-file-compressed 357314693 455259166 0.78
tpch_q18/duckdb:vortex-file-compressed 319266123 357584865 0.89
tpch_q19/duckdb:vortex-file-compressed 331408595 377400102 0.88
tpch_q20/duckdb:vortex-file-compressed 🚀 400621787 573732617 0.70
tpch_q21/duckdb:vortex-file-compressed 615172544 824471062 0.75
tpch_q22/duckdb:vortex-file-compressed 130123331 148791981 0.87
duckdb / parquet / ns (1.022x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 321085620 316430995 1.01
tpch_q02/duckdb:parquet 663552076 682146524 0.97
tpch_q03/duckdb:parquet 807969080 792270726 1.02
tpch_q04/duckdb:parquet 485376139 493599923 0.98
tpch_q05/duckdb:parquet 963272522 1002469048 0.96
tpch_q06/duckdb:parquet 311436239 335657207 0.93
tpch_q07/duckdb:parquet 953347565 895665599 1.06
tpch_q08/duckdb:parquet 1177807643 1128131633 1.04
tpch_q09/duckdb:parquet 1125027823 1082158387 1.04
tpch_q10/duckdb:parquet 1049721810 1044387329 1.01
tpch_q11/duckdb:parquet 485286734 458079814 1.06
tpch_q12/duckdb:parquet 569566638 517292334 1.10
tpch_q13/duckdb:parquet 872561229 862524036 1.01
tpch_q14/duckdb:parquet 568679079 520560456 1.09
tpch_q15/duckdb:parquet 423539509 379974792 1.11
tpch_q16/duckdb:parquet 525863160 528072439 1.00
tpch_q17/duckdb:parquet 526770636 509528208 1.03
tpch_q18/duckdb:parquet 682065461 706197775 0.97
tpch_q19/duckdb:parquet 596513674 596296856 1.00
tpch_q20/duckdb:parquet 917722430 846684422 1.08
tpch_q21/duckdb:parquet 843600177 840591447 1.00
tpch_q22/duckdb:parquet 478428022 467299564 1.02

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling 📖

Vortex (geomean): 0.934x ➖


datafusion / vortex-file-compressed / ns (0.934x ➖, 2↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
polarsignals_q00/datafusion:vortex-file-compressed 123593314 131181679 0.94
polarsignals_q01/datafusion:vortex-file-compressed 162192157 167237241 0.97
polarsignals_q02/datafusion:vortex-file-compressed 20501146 20620759 0.99
polarsignals_q03/datafusion:vortex-file-compressed 164119697 165241974 0.99
polarsignals_q04/datafusion:vortex-file-compressed 🚀 9667764 11043417 0.88
polarsignals_q05/datafusion:vortex-file-compressed 12808660 13778735 0.93
polarsignals_q06/datafusion:vortex-file-compressed 🚀 21070706 25998883 0.81
polarsignals_q07/datafusion:vortex-file-compressed 11411997 11696422 0.98
polarsignals_q08/datafusion:vortex-file-compressed 275078900 287186434 0.96
polarsignals_q09/datafusion:vortex-file-compressed 10949380 12028616 0.91

File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
File Scale Format Base HEAD Change %
stacktraces.vortex 1000000 vortex-file-compressed 685.81 MB 685.83 MB +21.34 KB +0.0%

Totals:

  • vortex-file-compressed: 685.81 MB → 685.83 MB (+0.0%)

@joseph-isaacs joseph-isaacs added changelog/performance A performance improvement action/bench-sql Run SQL benchmarks without Vortex Compact on this PR labels Aug 7, 2026 — with Claude
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench Sorted on NVME 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: +1.1%
Engines: DataFusion No clear signal (+1.6%, environment too noisy confidence) · DuckDB No clear signal (+0.7%, low confidence)
Vortex (geomean): 1.000x ➖
Parquet (geomean): 0.989x ➖
Shifts: Parquet (control) -1.1% · Median polish -0.8%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed / ns (0.999x ➖, 1↑ 1↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench-sorted_q23/datafusion:vortex-file-compressed 457217093 456124209 1.00
clickbench-sorted_q24/datafusion:vortex-file-compressed 27865012 25335547 1.10
clickbench-sorted_q26/datafusion:vortex-file-compressed 🚨 22881934 20447233 1.12
clickbench-sorted_q36/datafusion:vortex-file-compressed 50043702 52694058 0.95
clickbench-sorted_q37/datafusion:vortex-file-compressed 34836055 34890208 1.00
clickbench-sorted_q38/datafusion:vortex-file-compressed 🚀 33630066 38742186 0.87
clickbench-sorted_q39/datafusion:vortex-file-compressed 92378380 87032247 1.06
clickbench-sorted_q40/datafusion:vortex-file-compressed 16932350 17332491 0.98
clickbench-sorted_q41/datafusion:vortex-file-compressed 16700528 17769838 0.94
clickbench-sorted_q42/datafusion:vortex-file-compressed 12960487 13011311 1.00
datafusion / parquet / ns (0.983x ➖, 1↑ 1↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench-sorted_q23/datafusion:parquet 2921534011 2967179929 0.98
clickbench-sorted_q24/datafusion:parquet 🚀 30105281 53798158 0.56
clickbench-sorted_q26/datafusion:parquet 🚨 45005785 31967396 1.41
clickbench-sorted_q36/datafusion:parquet 176941485 168047890 1.05
clickbench-sorted_q37/datafusion:parquet 101950070 106068085 0.96
clickbench-sorted_q38/datafusion:parquet 166803356 166165657 1.00
clickbench-sorted_q39/datafusion:parquet 295916020 299755018 0.99
clickbench-sorted_q40/datafusion:parquet 70270695 66540796 1.06
clickbench-sorted_q41/datafusion:parquet 59787485 62207967 0.96
clickbench-sorted_q42/datafusion:parquet 35255843 33039830 1.07
duckdb / vortex-file-compressed / ns (1.002x ➖, 1↑ 2↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench-sorted_q23/duckdb:vortex-file-compressed 🚨 285050579 236449067 1.21
clickbench-sorted_q24/duckdb:vortex-file-compressed 39072197 41357020 0.94
clickbench-sorted_q26/duckdb:vortex-file-compressed 70390385 72009724 0.98
clickbench-sorted_q36/duckdb:vortex-file-compressed 67539780 67976885 0.99
clickbench-sorted_q37/duckdb:vortex-file-compressed 🚨 61532263 53323251 1.15
clickbench-sorted_q38/duckdb:vortex-file-compressed 🚀 59257406 66240542 0.89
clickbench-sorted_q39/duckdb:vortex-file-compressed 116845805 110706300 1.06
clickbench-sorted_q40/duckdb:vortex-file-compressed 33461954 36618575 0.91
clickbench-sorted_q41/duckdb:vortex-file-compressed 35748802 35519574 1.01
clickbench-sorted_q42/duckdb:vortex-file-compressed 28957671 31466410 0.92
duckdb / parquet / ns (0.995x ➖, 0↑ 0↓)
name PR 8cef37d (ns) base 75a3590 (ns) ratio (PR/base)
clickbench-sorted_q23/duckdb:parquet 228770381 227950479 1.00
clickbench-sorted_q24/duckdb:parquet 31319351 30301057 1.03
clickbench-sorted_q26/duckdb:parquet 22383463 23205101 0.96
clickbench-sorted_q36/duckdb:parquet 68726382 67164024 1.02
clickbench-sorted_q37/duckdb:parquet 56541689 59982230 0.94
clickbench-sorted_q38/duckdb:parquet 61062003 61025614 1.00
clickbench-sorted_q39/duckdb:parquet 109807215 107950273 1.02
clickbench-sorted_q40/duckdb:parquet 29339196 29257791 1.00
clickbench-sorted_q41/duckdb:parquet 28359117 28305470 1.00
clickbench-sorted_q42/duckdb:parquet 19874235 20588854 0.97

File Size Changes (201 files changed, -42.8% overall, 48↑ 153↓)
File Scale Format Base HEAD Change %
hits_012.vortex 1.0 vortex-file-compressed 190.94 MB 193.39 MB +2.44 MB +1.3%
hits_053.vortex 1.0 vortex-file-compressed 189.97 MB 192.02 MB +2.05 MB +1.1%
hits_090.vortex 1.0 vortex-file-compressed 192.66 MB 194.70 MB +2.04 MB +1.1%
hits_034.vortex 1.0 vortex-file-compressed 182.21 MB 183.62 MB +1.41 MB +0.8%
hits_082.vortex 1.0 vortex-file-compressed 139.84 MB 140.50 MB +671.89 KB +0.5%
hits_074.vortex 1.0 vortex-file-compressed 198.53 MB 199.33 MB +817.98 KB +0.4%
hits_010.vortex 1.0 vortex-file-compressed 169.00 MB 169.65 MB +667.55 KB +0.4%
hits_045.vortex 1.0 vortex-file-compressed 140.12 MB 140.64 MB +535.16 KB +0.4%
hits_039.vortex 1.0 vortex-file-compressed 161.06 MB 161.64 MB +596.74 KB +0.4%
hits_092.vortex 1.0 vortex-file-compressed 199.03 MB 199.66 MB +648.53 KB +0.3%
hits_067.vortex 1.0 vortex-file-compressed 131.69 MB 132.09 MB +415.25 KB +0.3%
hits_031.vortex 1.0 vortex-file-compressed 159.83 MB 160.32 MB +496.70 KB +0.3%
hits_087.vortex 1.0 vortex-file-compressed 161.18 MB 161.60 MB +425.27 KB +0.3%
hits_068.vortex 1.0 vortex-file-compressed 160.81 MB 161.18 MB +377.48 KB +0.2%
hits_046.vortex 1.0 vortex-file-compressed 101.28 MB 101.51 MB +237.16 KB +0.2%
hits_040.vortex 1.0 vortex-file-compressed 143.30 MB 143.54 MB +250.18 KB +0.2%
hits_015.vortex 1.0 vortex-file-compressed 131.12 MB 131.33 MB +220.55 KB +0.2%
hits_044.vortex 1.0 vortex-file-compressed 199.87 MB 200.18 MB +322.22 KB +0.2%
hits_026.vortex 1.0 vortex-file-compressed 131.28 MB 131.47 MB +191.28 KB +0.1%
hits_037.vortex 1.0 vortex-file-compressed 177.21 MB 177.45 MB +249.30 KB +0.1%
hits_057.vortex 1.0 vortex-file-compressed 160.02 MB 160.21 MB +187.61 KB +0.1%
hits_058.vortex 1.0 vortex-file-compressed 155.06 MB 155.22 MB +165.33 KB +0.1%
hits_030.vortex 1.0 vortex-file-compressed 131.85 MB 131.97 MB +115.59 KB +0.1%
hits_033.vortex 1.0 vortex-file-compressed 200.03 MB 200.16 MB +138.00 KB +0.1%
hits_021.vortex 1.0 vortex-file-compressed 154.42 MB 154.52 MB +94.95 KB +0.1%
hits_084.vortex 1.0 vortex-file-compressed 154.53 MB 154.61 MB +91.77 KB +0.1%
hits_077.vortex 1.0 vortex-file-compressed 172.46 MB 172.56 MB +96.39 KB +0.1%
hits_042.vortex 1.0 vortex-file-compressed 201.46 MB 201.56 MB +105.28 KB +0.1%
hits_049.vortex 1.0 vortex-file-compressed 191.47 MB 191.55 MB +86.00 KB +0.0%
hits_079.vortex 1.0 vortex-file-compressed 181.63 MB 181.71 MB +81.29 KB +0.0%
hits_098.vortex 1.0 vortex-file-compressed 137.63 MB 137.68 MB +55.01 KB +0.0%
hits_018.vortex 1.0 vortex-file-compressed 199.57 MB 199.65 MB +79.02 KB +0.0%
hits_011.vortex 1.0 vortex-file-compressed 199.32 MB 199.39 MB +71.55 KB +0.0%
hits_062.vortex 1.0 vortex-file-compressed 170.91 MB 170.97 MB +56.32 KB +0.0%
hits_032.vortex 1.0 vortex-file-compressed 154.67 MB 154.72 MB +50.91 KB +0.0%
hits_038.vortex 1.0 vortex-file-compressed 190.14 MB 190.20 MB +60.83 KB +0.0%
hits_036.vortex 1.0 vortex-file-compressed 171.45 MB 171.51 MB +53.48 KB +0.0%
hits_081.vortex 1.0 vortex-file-compressed 199.85 MB 199.91 MB +54.18 KB +0.0%
hits_027.vortex 1.0 vortex-file-compressed 189.87 MB 189.91 MB +37.90 KB +0.0%
hits_094.vortex 1.0 vortex-file-compressed 158.86 MB 158.89 MB +31.21 KB +0.0%
hits_024.vortex 1.0 vortex-file-compressed 160.51 MB 160.54 MB +30.16 KB +0.0%
hits_088.vortex 1.0 vortex-file-compressed 172.11 MB 172.14 MB +28.23 KB +0.0%
hits_002.vortex 1.0 vortex-file-compressed 161.01 MB 161.03 MB +23.49 KB +0.0%
hits_059.vortex 1.0 vortex-file-compressed 199.07 MB 199.10 MB +27.59 KB +0.0%
hits_016.vortex 1.0 vortex-file-compressed 180.22 MB 180.24 MB +21.78 KB +0.0%
hits_006.vortex 1.0 vortex-file-compressed 126.39 MB 126.41 MB +13.86 KB +0.0%
hits_073.vortex 1.0 vortex-file-compressed 172.64 MB 172.65 MB +9.30 KB +0.0%
hits_000.vortex 1.0 vortex-file-compressed 131.63 MB 131.64 MB +6.29 KB +0.0%
hits_025.vortex 1.0 vortex-file-compressed 172.08 MB 172.08 MB 2.27 KB -0.0%
hits_014.vortex 1.0 vortex-file-compressed 172.09 MB 172.08 MB 4.57 KB -0.0%
hits_096.vortex 1.0 vortex-file-compressed 199.47 MB 199.47 MB 6.34 KB -0.0%
hits_076.vortex 1.0 vortex-file-compressed 161.06 MB 161.05 MB 8.23 KB -0.0%
hits_041.vortex 1.0 vortex-file-compressed 131.33 MB 131.32 MB 10.65 KB -0.0%
hits_022.vortex 1.0 vortex-file-compressed 199.19 MB 199.17 MB 21.21 KB -0.0%
hits_019.vortex 1.0 vortex-file-compressed 140.94 MB 140.92 MB 15.21 KB -0.0%
hits_003.vortex 1.0 vortex-file-compressed 136.54 MB 136.52 MB 16.83 KB -0.0%
hits_017.vortex 1.0 vortex-file-compressed 146.84 MB 146.82 MB 18.44 KB -0.0%
hits_051.vortex 1.0 vortex-file-compressed 172.56 MB 172.54 MB 21.70 KB -0.0%
hits_075.vortex 1.0 vortex-file-compressed 189.51 MB 189.48 MB 28.65 KB -0.0%
hits_013.vortex 1.0 vortex-file-compressed 161.34 MB 161.30 MB 35.06 KB -0.0%
hits_099.vortex 1.0 vortex-file-compressed 171.32 MB 171.28 MB 41.97 KB -0.0%
hits_009.vortex 1.0 vortex-file-compressed 101.23 MB 101.20 MB 25.30 KB -0.0%
hits_091.vortex 1.0 vortex-file-compressed 147.14 MB 147.09 MB 44.88 KB -0.0%
hits_069.vortex 1.0 vortex-file-compressed 142.27 MB 142.21 MB 59.40 KB -0.0%
hits_080.vortex 1.0 vortex-file-compressed 126.89 MB 126.84 MB 53.53 KB -0.0%
hits_023.vortex 1.0 vortex-file-compressed 195.38 MB 195.28 MB 98.65 KB -0.0%
hits_005.vortex 1.0 vortex-file-compressed 167.85 MB 167.76 MB 90.40 KB -0.1%
hits_043.vortex 1.0 vortex-file-compressed 126.60 MB 126.52 MB 81.45 KB -0.1%
hits_095.vortex 1.0 vortex-file-compressed 154.44 MB 154.33 MB 111.98 KB -0.1%
hits_089.vortex 1.0 vortex-file-compressed 131.58 MB 131.48 MB 95.40 KB -0.1%
hits_070.vortex 1.0 vortex-file-compressed 199.89 MB 199.74 MB 154.46 KB -0.1%
hits_047.vortex 1.0 vortex-file-compressed 154.61 MB 154.49 MB 123.59 KB -0.1%
hits_050.vortex 1.0 vortex-file-compressed 161.20 MB 161.06 MB 142.68 KB -0.1%
hits_065.vortex 1.0 vortex-file-compressed 161.36 MB 161.22 MB 149.48 KB -0.1%
hits_085.vortex 1.0 vortex-file-compressed 199.91 MB 199.68 MB 237.34 KB -0.1%
hits_083.vortex 1.0 vortex-file-compressed 157.21 MB 157.02 MB 197.70 KB -0.1%
hits_020.vortex 1.0 vortex-file-compressed 160.57 MB 160.34 MB 240.73 KB -0.1%
hits_052.vortex 1.0 vortex-file-compressed 131.27 MB 131.06 MB 217.84 KB -0.2%
hits_007.vortex 1.0 vortex-file-compressed 200.51 MB 200.19 MB 335.47 KB -0.2%
hits_063.vortex 1.0 vortex-file-compressed 131.97 MB 131.74 MB 238.13 KB -0.2%
hits_078.vortex 1.0 vortex-file-compressed 131.18 MB 130.94 MB 247.12 KB -0.2%
hits_072.vortex 1.0 vortex-file-compressed 102.58 MB 102.31 MB 274.33 KB -0.3%
hits_004.vortex 1.0 vortex-file-compressed 131.81 MB 131.45 MB 377.32 KB -0.3%
hits_093.vortex 1.0 vortex-file-compressed 132.01 MB 131.62 MB 404.16 KB -0.3%
hits_035.vortex 1.0 vortex-file-compressed 103.35 MB 103.04 MB 322.83 KB -0.3%
hits_066.vortex 1.0 vortex-file-compressed 164.34 MB 163.73 MB 626.39 KB -0.4%
hits_048.vortex 1.0 vortex-file-compressed 199.30 MB 198.56 MB 762.54 KB -0.4%
hits_029.vortex 1.0 vortex-file-compressed 200.50 MB 199.72 MB 792.20 KB -0.4%
hits_054.vortex 1.0 vortex-file-compressed 147.49 MB 146.92 MB 583.12 KB -0.4%
hits_061.vortex 1.0 vortex-file-compressed 161.42 MB 160.77 MB 664.12 KB -0.4%
hits_071.vortex 1.0 vortex-file-compressed 140.52 MB 139.95 MB 588.90 KB -0.4%
hits_056.vortex 1.0 vortex-file-compressed 136.28 MB 135.68 MB 613.40 KB -0.4%
hits_008.vortex 1.0 vortex-file-compressed 140.79 MB 140.13 MB 676.18 KB -0.5%
hits_028.vortex 1.0 vortex-file-compressed 152.53 MB 151.81 MB 736.76 KB -0.5%
hits_055.vortex 1.0 vortex-file-compressed 199.72 MB 198.74 MB 1006.16 KB -0.5%
hits_060.vortex 1.0 vortex-file-compressed 194.59 MB 193.22 MB 1.37 MB -0.7%
hits_086.vortex 1.0 vortex-file-compressed 193.56 MB 192.12 MB 1.43 MB -0.7%
hits_064.vortex 1.0 vortex-file-compressed 193.09 MB 191.34 MB 1.74 MB -0.9%
hits_097.vortex 1.0 vortex-file-compressed 195.41 MB 192.95 MB 2.46 MB -1.3%
hits_001.vortex 1.0 vortex-file-compressed 193.52 MB 189.19 MB 4.33 MB -2.2%
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%
hits_000.vortex 1.0 vortex-compact 97.90 MB 0 B 97.90 MB -100.0%
hits_001.vortex 1.0 vortex-compact 140.45 MB 0 B 140.45 MB -100.0%
hits_002.vortex 1.0 vortex-compact 124.37 MB 0 B 124.37 MB -100.0%
hits_003.vortex 1.0 vortex-compact 104.45 MB 0 B 104.45 MB -100.0%
hits_004.vortex 1.0 vortex-compact 97.96 MB 0 B 97.96 MB -100.0%
hits_005.vortex 1.0 vortex-compact 115.87 MB 0 B 115.87 MB -100.0%
hits_006.vortex 1.0 vortex-compact 96.22 MB 0 B 96.22 MB -100.0%
hits_007.vortex 1.0 vortex-compact 153.75 MB 0 B 153.75 MB -100.0%
hits_008.vortex 1.0 vortex-compact 106.12 MB 0 B 106.12 MB -100.0%
hits_009.vortex 1.0 vortex-compact 75.23 MB 0 B 75.23 MB -100.0%
hits_010.vortex 1.0 vortex-compact 123.37 MB 0 B 123.37 MB -100.0%
hits_011.vortex 1.0 vortex-compact 152.65 MB 0 B 152.65 MB -100.0%
hits_012.vortex 1.0 vortex-compact 138.74 MB 0 B 138.74 MB -100.0%
hits_013.vortex 1.0 vortex-compact 125.82 MB 0 B 125.82 MB -100.0%
hits_014.vortex 1.0 vortex-compact 133.92 MB 0 B 133.92 MB -100.0%
hits_015.vortex 1.0 vortex-compact 98.09 MB 0 B 98.09 MB -100.0%
hits_016.vortex 1.0 vortex-compact 127.56 MB 0 B 127.56 MB -100.0%
hits_017.vortex 1.0 vortex-compact 111.76 MB 0 B 111.76 MB -100.0%
hits_018.vortex 1.0 vortex-compact 152.93 MB 0 B 152.93 MB -100.0%
hits_019.vortex 1.0 vortex-compact 106.12 MB 0 B 106.12 MB -100.0%
hits_020.vortex 1.0 vortex-compact 111.67 MB 0 B 111.67 MB -100.0%
hits_021.vortex 1.0 vortex-compact 110.61 MB 0 B 110.61 MB -100.0%
hits_022.vortex 1.0 vortex-compact 152.97 MB 0 B 152.97 MB -100.0%
hits_023.vortex 1.0 vortex-compact 142.55 MB 0 B 142.55 MB -100.0%
hits_024.vortex 1.0 vortex-compact 125.18 MB 0 B 125.18 MB -100.0%
hits_025.vortex 1.0 vortex-compact 133.61 MB 0 B 133.61 MB -100.0%
hits_026.vortex 1.0 vortex-compact 99.06 MB 0 B 99.06 MB -100.0%
hits_027.vortex 1.0 vortex-compact 139.25 MB 0 B 139.25 MB -100.0%
hits_028.vortex 1.0 vortex-compact 115.74 MB 0 B 115.74 MB -100.0%
hits_029.vortex 1.0 vortex-compact 153.48 MB 0 B 153.48 MB -100.0%
hits_030.vortex 1.0 vortex-compact 98.35 MB 0 B 98.35 MB -100.0%
hits_031.vortex 1.0 vortex-compact 111.70 MB 0 B 111.70 MB -100.0%
hits_032.vortex 1.0 vortex-compact 110.65 MB 0 B 110.65 MB -100.0%
hits_033.vortex 1.0 vortex-compact 153.59 MB 0 B 153.59 MB -100.0%
hits_034.vortex 1.0 vortex-compact 133.29 MB 0 B 133.29 MB -100.0%
hits_035.vortex 1.0 vortex-compact 75.94 MB 0 B 75.94 MB -100.0%
hits_036.vortex 1.0 vortex-compact 133.38 MB 0 B 133.38 MB -100.0%
hits_037.vortex 1.0 vortex-compact 132.25 MB 0 B 132.25 MB -100.0%
hits_038.vortex 1.0 vortex-compact 139.56 MB 0 B 139.56 MB -100.0%
hits_039.vortex 1.0 vortex-compact 124.25 MB 0 B 124.25 MB -100.0%
hits_040.vortex 1.0 vortex-compact 110.62 MB 0 B 110.62 MB -100.0%
hits_041.vortex 1.0 vortex-compact 98.09 MB 0 B 98.09 MB -100.0%
hits_042.vortex 1.0 vortex-compact 136.22 MB 0 B 136.22 MB -100.0%
hits_043.vortex 1.0 vortex-compact 94.34 MB 0 B 94.34 MB -100.0%
hits_044.vortex 1.0 vortex-compact 153.69 MB 0 B 153.69 MB -100.0%
hits_045.vortex 1.0 vortex-compact 106.12 MB 0 B 106.12 MB -100.0%
hits_046.vortex 1.0 vortex-compact 74.94 MB 0 B 74.94 MB -100.0%
hits_047.vortex 1.0 vortex-compact 110.49 MB 0 B 110.49 MB -100.0%
hits_048.vortex 1.0 vortex-compact 153.20 MB 0 B 153.20 MB -100.0%
hits_049.vortex 1.0 vortex-compact 140.48 MB 0 B 140.48 MB -100.0%
hits_050.vortex 1.0 vortex-compact 125.57 MB 0 B 125.57 MB -100.0%
hits_051.vortex 1.0 vortex-compact 133.86 MB 0 B 133.86 MB -100.0%
hits_052.vortex 1.0 vortex-compact 99.03 MB 0 B 99.03 MB -100.0%
hits_053.vortex 1.0 vortex-compact 139.04 MB 0 B 139.04 MB -100.0%
hits_054.vortex 1.0 vortex-compact 112.08 MB 0 B 112.08 MB -100.0%
hits_055.vortex 1.0 vortex-compact 153.50 MB 0 B 153.50 MB -100.0%
hits_056.vortex 1.0 vortex-compact 101.31 MB 0 B 101.31 MB -100.0%
hits_057.vortex 1.0 vortex-compact 111.85 MB 0 B 111.85 MB -100.0%
hits_058.vortex 1.0 vortex-compact 111.14 MB 0 B 111.14 MB -100.0%
hits_059.vortex 1.0 vortex-compact 152.17 MB 0 B 152.17 MB -100.0%
hits_060.vortex 1.0 vortex-compact 141.23 MB 0 B 141.23 MB -100.0%
hits_061.vortex 1.0 vortex-compact 124.48 MB 0 B 124.48 MB -100.0%
hits_062.vortex 1.0 vortex-compact 132.54 MB 0 B 132.54 MB -100.0%
hits_063.vortex 1.0 vortex-compact 98.97 MB 0 B 98.97 MB -100.0%
hits_064.vortex 1.0 vortex-compact 140.15 MB 0 B 140.15 MB -100.0%
hits_065.vortex 1.0 vortex-compact 123.19 MB 0 B 123.19 MB -100.0%
hits_066.vortex 1.0 vortex-compact 117.81 MB 0 B 117.81 MB -100.0%
hits_067.vortex 1.0 vortex-compact 98.62 MB 0 B 98.62 MB -100.0%
hits_068.vortex 1.0 vortex-compact 112.38 MB 0 B 112.38 MB -100.0%
hits_069.vortex 1.0 vortex-compact 100.06 MB 0 B 100.06 MB -100.0%
hits_070.vortex 1.0 vortex-compact 153.68 MB 0 B 153.68 MB -100.0%
hits_071.vortex 1.0 vortex-compact 106.21 MB 0 B 106.21 MB -100.0%
hits_072.vortex 1.0 vortex-compact 75.64 MB 0 B 75.64 MB -100.0%
hits_073.vortex 1.0 vortex-compact 134.24 MB 0 B 134.24 MB -100.0%
hits_074.vortex 1.0 vortex-compact 152.93 MB 0 B 152.93 MB -100.0%
hits_075.vortex 1.0 vortex-compact 137.70 MB 0 B 137.70 MB -100.0%
hits_076.vortex 1.0 vortex-compact 126.00 MB 0 B 126.00 MB -100.0%
hits_077.vortex 1.0 vortex-compact 134.48 MB 0 B 134.48 MB -100.0%
hits_078.vortex 1.0 vortex-compact 98.36 MB 0 B 98.36 MB -100.0%
hits_079.vortex 1.0 vortex-compact 128.10 MB 0 B 128.10 MB -100.0%
hits_080.vortex 1.0 vortex-compact 94.70 MB 0 B 94.70 MB -100.0%
hits_081.vortex 1.0 vortex-compact 153.71 MB 0 B 153.71 MB -100.0%
hits_082.vortex 1.0 vortex-compact 106.22 MB 0 B 106.22 MB -100.0%
hits_083.vortex 1.0 vortex-compact 110.14 MB 0 B 110.14 MB -100.0%
hits_084.vortex 1.0 vortex-compact 110.71 MB 0 B 110.71 MB -100.0%
hits_085.vortex 1.0 vortex-compact 153.44 MB 0 B 153.44 MB -100.0%
hits_086.vortex 1.0 vortex-compact 139.69 MB 0 B 139.69 MB -100.0%
hits_087.vortex 1.0 vortex-compact 124.49 MB 0 B 124.49 MB -100.0%
hits_088.vortex 1.0 vortex-compact 134.13 MB 0 B 134.13 MB -100.0%
hits_089.vortex 1.0 vortex-compact 98.90 MB 0 B 98.90 MB -100.0%
hits_090.vortex 1.0 vortex-compact 141.27 MB 0 B 141.27 MB -100.0%
hits_091.vortex 1.0 vortex-compact 111.83 MB 0 B 111.83 MB -100.0%
hits_092.vortex 1.0 vortex-compact 153.26 MB 0 B 153.26 MB -100.0%
hits_093.vortex 1.0 vortex-compact 97.98 MB 0 B 97.98 MB -100.0%
hits_094.vortex 1.0 vortex-compact 110.73 MB 0 B 110.73 MB -100.0%
hits_095.vortex 1.0 vortex-compact 110.65 MB 0 B 110.65 MB -100.0%
hits_096.vortex 1.0 vortex-compact 153.28 MB 0 B 153.28 MB -100.0%
hits_097.vortex 1.0 vortex-compact 141.27 MB 0 B 141.27 MB -100.0%
hits_098.vortex 1.0 vortex-compact 104.39 MB 0 B 104.39 MB -100.0%
hits_099.vortex 1.0 vortex-compact 133.16 MB 0 B 133.16 MB -100.0%

Totals:

  • vortex-compact: 11.93 GB → 0 B (-100.0%)
  • vortex-file-compressed: 15.98 GB → 15.97 GB (-0.0%)

## Rationale for this change

Stacked on #9279 — that PR handles a single conjunct as a special case,
this one generalises it to any number and deletes the special case.

**Draft, and not mergeable as it stands: it is a large regression on
prunable queries** (`lineitem_prune` +354%, `lineitem_and` +193%).
Opening it because the mechanism works exactly as intended for the case
it targets, and the regression isolates a specific, fixable blocker.
Detail below.

`LayoutReader::filter_evaluation` registers its segment reads when it is
*called*, but only awaits its input mask when it is *polled*. The
existing loop builds one evaluation, awaits it fully, then builds the
next — so reads trickle out one conjunct at a time, per split, and
nothing can be coalesced. The trait documentation already describes the
intended alternative:

> It is recommended to defer awaiting the input mask for as long as
possible (ideally, after all I/O is complete). This allows other
conjuncts the opportunity to refine the mask as much as possible before
it is used.

That only makes sense if several conjuncts' evaluations are built and in
flight at once, which the caller never did.

## What changes are included in this PR?

`chained_filter_mask` replaces both the single-conjunct helper from
#9279 and the multi-conjunct loop. Net −31 lines.

Each conjunct's output `MaskFuture` is fed straight into the next at
construction time, so the reads for the whole chain are registered up
front while each conjunct still receives the mask its predecessor
refined — no extra compute, and the `EXPR_EVAL_THRESHOLD` low-density
path still applies.

The evaluation order is drained from `FilterExpr::next_conjunct` up
front rather than re-queried between conjuncts. That is safe:
`next_conjunct` (`scan/filter.rs:93-97`) reads a precomputed `ordering`
vector that is only recomputed inside `report_selectivity`, from
histograms accumulated *across* splits. Within a single split the order
was already fixed. Ordering still adapts across splits.

The `all_false` short circuit between filter evaluations is deliberately
**not** carried over — see below.

### Results

TPC-H `lineitem`, warm page cache, local NVMe. Row counts identical
across all three variants on every shape.

`pread64` counts:

| Query | sf=1 base | sf=1 #9279 | sf=1 chain | sf=10 base | sf=10 #9279
| sf=10 chain |
| --- | --- | --- | --- | --- | --- | --- |
| `lineitem_filter_only` | 30 | 20 | **20** | 302 | 177 | **177** |
| `lineitem` | 14 | 14 | 14 | 109 | 109 | 109 |
| `lineitem_and` (2 conjuncts) | 13 | 13 | 14 | 14 | 14 | **109** |
| `lineitem_prune` | 8 | 8 | 14 | 9 | 9 | **91** |
| `lineitem_wide` | 114 | 113 | 117 | 1165 | 1172 | 1163 |

Execution time at sf=10, median of 7 interleaved rounds, each round the
median of 5 executions:

| Query | base (ms) | chain (ms) | change |
| --- | --- | --- | --- |
| `lineitem_filter_only` | 140.3 | 151.8 | +8.2% |
| `lineitem` | 91.5 | 109.7 | +20.0% |
| `lineitem_and` | 27.7 | 81.1 | **+192.8%** |
| `lineitem_prune` | 12.2 | 55.4 | **+354.1%** |

Both regressions reproduce exactly across repeated runs (preads 14/14 vs
109/109 and 9/9 vs 91/91; timing distributions fully separated —
`lineitem_prune` 12–14ms vs 45–57ms). This is deterministic, not noise.

### Why it regresses, and what would fix it

The old loop checked `mask.all_false()` *before constructing* each
conjunct's `filter_evaluation`. On a heavily-pruned query most splits
never reached that line, so their filter reads were never registered at
all — which is why the baseline is 9 preads on `lineitem_prune`.
Chaining necessarily registers every conjunct's reads before pruning has
run, because getting the I/O in flight early is the entire point. On
prunable queries that is 10× wasted reads.

Eager registration and pruning-driven skipping are therefore in direct
tension, and the resolution has to live inside `filter_evaluation`
rather than at the call site. Currently `flat::filter_evaluation` does:

```rust
let mut array = array.clone().await?;   // decodes unconditionally
let mask = mask.await?;
```

It awaits the array *before* the mask, so an all-false input mask still
pays for the read and the decode. Polling both concurrently and
returning early when the mask resolves all-false would let cancellation
propagate back up the chain and make eager registration close to free.

That change is a genuine trade rather than a pure win — awaiting the
array first is also what lets a conjunct's decode overlap its
predecessor's compute, and short-circuiting gives that overlap up. Which
effect dominates depends on selectivity, so it wants measuring on its
own. These numbers say the waste dominates for prunable queries by a
wide margin, so it is worth measuring next.

## What APIs are changed? Are there any user-facing changes?

None. No public API changes; `chained_filter_mask` is a private helper.
Results are unchanged — same masks, same arrays, same row counts.

### Checks run

- `cargo nextest run -p vortex-layout -p vortex-file -p vortex-scan` —
350 passed
- `cargo clippy -p vortex-layout --all-targets --all-features` — clean
- `cargo +nightly fmt --all` — clean

Not run: full workspace tests, Python bindings, docs — this touches one
Rust file with no API or documentation surface.

Co-authored-by: Claude <noreply@anthropic.com>
@joseph-isaacs joseph-isaacs added the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Aug 10, 2026
@github-actions github-actions Bot removed the action/bench-sql Run SQL benchmarks without Vortex Compact on this PR label Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/performance A performance improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants