Skip to content

Optimize run-end decode kernel with chunked splat stores#8915

Draft
joseph-isaacs wants to merge 13 commits into
developfrom
claude/runend-decompression-perf-5yrfqs
Draft

Optimize run-end decode kernel with chunked splat stores#8915
joseph-isaacs wants to merge 13 commits into
developfrom
claude/runend-decompression-perf-5yrfqs

Conversation

@joseph-isaacs

Copy link
Copy Markdown
Contributor

Rationale for this change

The run-end decode kernel is a hot path for decompressing run-end encoded arrays. This change replaces the element-by-element push_n_unchecked approach with chunked splat stores that write full cache lines at a time, improving throughput especially for short runs and byte-sized elements.

Key improvements:

  • Chunked splat stores: Write 32-byte chunks unconditionally for short runs, amortizing the per-run overhead
  • Byte-element optimization: For byte-sized elements, use word-sized stores with an opaque multiply to prevent LLVM's loop-idiom pass from converting each run into a separate memset call
  • Long-run dispatch: Runs longer than 256 bytes dispatch to an out-of-line fill_run function to preserve vector codegen in the main decode loop
  • Validity optimization: For nullable arrays, prefill the validity bitmap with the majority run validity, then only rewrite minority runs via fill_range_unchecked
  • Offset/length support: Properly handle offset and length parameters by trimming run ends inline rather than via a separate iterator

What changes are included in this PR?

Core decode kernel (encodings/runend/src/compress.rs):

  • Removed dependency on trimmed_ends_iter iterator chain
  • Added trim_end() helper to adjust run ends by offset and clamp to length
  • Added splat_run() function with specialized paths for byte vs. wider elements
  • Added fill_run() out-of-line helper for long runs
  • Rewrote runend_decode_slice() to use slice iteration and chunked stores instead of push_n_unchecked
  • Updated runend_decode_typed_primitive() signature to accept run_ends: &[E] and offset parameters
  • Added comprehensive property-based tests covering offset handling, nullable arrays, long runs, and random inputs

Benchmarks:

  • Added run_end_decode_ablation.rs benchmark isolating each optimization step (v0 original → v1 slice loop → v2 chunk stores → v3 shipped)
  • Extended run_end_decode.rs with primitive array benchmarks across varying run lengths and nullable/non-nullable cases
  • Switched to mimalloc for consistent allocation performance across benchmark runs

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

The public API runend_decode_typed_primitive() signature changed:

  • Before: runend_decode_typed_primitive(run_ends: impl Iterator<Item = usize>, ...)
  • After: runend_decode_typed_primitive(run_ends: &[E], offset: usize, ...)

This is an internal API used only by the run-end encoding module, so there are no user-facing changes. The public runend_decode_primitive() function signature remains unchanged.

https://claude.ai/code/session_013SG5c8pTHVHCSqvDZy6KFv

claude added 8 commits July 23, 2026 11:02
The decode benchmark previously only covered the bool kernel. Add
coverage for runend_decode_primitive across element widths and run
lengths so the general-case decode loop can be measured.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
The shared primitive/varbinview decode loop paid a large per-run cost:
the trimmed-ends iterator next() compiled to an outlined call per run,
BufferMut::push_n_unchecked round-tripped the buffer length through
memory on every run, and runs shorter than a vector register fell into
a scalar one-element-at-a-time fill loop. The nullable arm additionally
made an outlined BitBufferMut::append_n call per run and a memset call
per null run.

Rewrite runend_decode_slice to iterate the ends slice directly and
expand each run with unconditional 32-byte splat stores through a raw
cursor into a buffer over-allocated by one chunk, so short runs (the
common case) complete in a single store with no tail loop. The nullable
arm now prefills element validity with the majority run validity and
only rewrites minority ranges, mirroring the bool decode strategy.

runend_decode_typed_primitive now takes the raw ends slice plus offset
instead of a pre-trimmed iterator.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
LLVM loop-idiom rewrote the byte-sized splat store loop into a memset
call per run, so u8 decode saw almost no gain from the chunked-store
rewrite. Replicate the element bytes into a u128 word with a runtime
multiply and store two unaligned 16-byte words per chunk instead; the
computed word is opaque to loop-idiom, and 8-byte elements also get
full-width stores.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
The u128 word stores fixed byte-sized runs but compiled to GPR pair
stores, halving fill bandwidth for long runs of every element width.
Keep the unrolled element stores (which compile to full-width vector
stores) for elements of two bytes and up, and use the opaque word
splat only for single-byte elements, escaping to an explicit memset
for byte runs of 256 bytes or more where memset wins.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
Align run_end_decode with the conventions used by the other run-end
benches: route allocation through vendored mimalloc (decode allocates its
output inside the timed region, same rationale as run_end_compress) and
generate run lengths, values, and validity from a seeded StdRng so
branch-heavy decode strategies are measured against unpredictable inputs
rather than a fixed pattern.

Add a randomized differential test that checks runend_decode_primitive
against a naive element-by-element reference expansion across u8/u16/u32/
u64/f32, covering offsets, zero-length runs, both sides of the byte-run
memset threshold, run clamping, and non-nullable/mixed/all-invalid
validity.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
The release-profile ablation benchmark showed the inline chunked splat
loop losing its wide vector stores when monomorphized inside the
register-heavy nullable decode arm: nullable u64 decode at 1024-element
runs cost ~24us vs ~17us for the old push_n path, while the identical
loop in the non-null arm showed no regression. Runs of at least 256
bytes now dispatch to a #[inline(never)] fill whose codegen cannot be
polluted by the surrounding loop: write_bytes (memset) for single-byte
elements, a dedicated vector fill loop otherwise. This also subsumes the
previous byte-only memset threshold.

Also add the temporary ablation benchmark used to attribute each decode
change (iterator removal, chunked stores, byte word path, prefill
validity) so the per-change numbers are reproducible.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
The release-profile ablation showed the per-run long-run threshold check
taxing short runs (the general case) by ~1ns/run on wide element types.
Restructure splat_run so the first chunk store is unconditional: runs no
longer than one chunk finish on a single branch exactly like the plain
chunked loop, and only multi-chunk runs pay the long-run check before
dispatching to the out-of-line fill. With this, the same-binary ablation
shows every type/run-length cell at parity or better against the
original kernel, including nullable u64 long runs.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
@codspeed-hq

codspeed-hq Bot commented Jul 23, 2026

Copy link
Copy Markdown

Merging this PR will regress 3 benchmarks

⚠️ 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

⚡ 32 improved benchmarks
❌ 3 regressed benchmarks
✅ 1814 untouched benchmarks
🆕 468 new benchmarks
⏩ 46 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decompress_utf8[(100000, 4096)] 947.1 µs 1,772.1 µs -46.56%
Simulation decompress[u64, (100000, 4096)] 401 µs 728.4 µs -44.95%
Simulation decompress[u8, (1000, 16)] 17.8 µs 24.3 µs -26.71%
Simulation decompress[u16, (100000, 4)] 950.7 µs 443.9 µs ×2.1
Simulation runend_decompress_u32 3 ms 1.4 ms ×2.1
Simulation decompress[u32, (100000, 4)] 1,053.9 µs 567.8 µs +85.63%
Simulation decompress[u16, (10000, 4)] 109.9 µs 59.3 µs +85.33%
Simulation decompress[u8, (100000, 4)] 836.5 µs 461.3 µs +81.35%
Simulation decompress[u16, (100000, 16)] 320.9 µs 190.9 µs +68.15%
Simulation decompress[u32, (10000, 4)] 128.7 µs 80 µs +60.94%
Simulation take_indices[(100000, 4)] 1,327.9 µs 841.3 µs +57.84%
Simulation decompress[u8, (1000, 4)] 31.2 µs 20 µs +55.76%
Simulation decompress[u8, (100000, 16)] 243.2 µs 156.4 µs +55.49%
Simulation decompress[u64, (100000, 4)] 1,278.3 µs 832 µs +53.65%
Simulation decompress[u8, (10000, 4)] 111.6 µs 73.8 µs +51.08%
Simulation decompress[u64, (1000, 16)] 31.2 µs 20.8 µs +49.97%
Simulation decompress[u32, (100000, 16)] 435.1 µs 306.8 µs +41.83%
Simulation take_indices[(10000, 4)] 171.8 µs 121.9 µs +40.96%
Simulation decompress[u64, (10000, 4)] 148.6 µs 106.1 µs +40.02%
Simulation decompress[u16, (10000, 16)] 46 µs 33.2 µs +38.77%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

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


Comparing claude/runend-decompression-perf-5yrfqs (57175be) with develop (d9619b8)

Open in CodSpeed

Footnotes

  1. 46 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.

use vortex_buffer::BufferMut;
use vortex_mask::Mask;
use vortex_runend::compress::runend_decode_typed_primitive;
use vortex_runend::trimmed_ends_iter;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove this method now trimmed_ends_iter

@joseph-isaacs joseph-isaacs added the action/benchmark-sql-full Run SQL benchmarks with vortex-compact and SF=10 label Jul 23, 2026
@github-actions github-actions Bot removed the action/benchmark-sql-full Run SQL benchmarks with vortex-compact and SF=10 label Jul 23, 2026
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 161c079 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Vortex queries 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: +1.4%
Engines: DataFusion No clear signal (-12.9%, environment too noisy confidence) · DuckDB No clear signal (+18.1%, environment too noisy confidence)
Vortex (geomean): 0.142x ✅
Parquet (geomean): 0.141x ✅
Shifts: Parquet (control) -85.9% · Median polish -85.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 (0.124x ✅, 2↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
vortex_q00/datafusion:vortex-file-compressed 🚀 8439223 47874387 0.18
vortex_q01/datafusion:vortex-file-compressed 🚀 5194124 59451328 0.09
datafusion / parquet (0.142x ✅, 2↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
vortex_q00/datafusion:parquet 🚀 19760573 168843228 0.12
vortex_q01/datafusion:parquet 🚀 4538836 26178978 0.17
duckdb / vortex-file-compressed (0.164x ✅, 2↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
vortex_q00/duckdb:vortex-file-compressed 🚀 10002491 58761872 0.17
vortex_q01/duckdb:vortex-file-compressed 🚀 5969854 37656445 0.16
duckdb / parquet (0.139x ✅, 2↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
vortex_q00/duckdb:parquet 🚀 23331037 180914894 0.13
vortex_q01/duckdb:parquet 🚀 9497930 63293744 0.15

File Size Changes (1 files changed, -90.0% overall, 0↑ 1↓)
File Scale Format Base HEAD Change %
test.vortex 1.0 vortex-file-compressed 805.74 MB 80.59 MB 725.15 MB -90.0%

Totals:

  • vortex-file-compressed: 806.00 MB → 80.85 MB (-90.0%)

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling 📖

Vortex (geomean): 1.140x ❌

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 (1.140x ❌, 1↑ 8↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
polarsignals_q00/datafusion:vortex-file-compressed 🚀 104533224 118250352 0.88
polarsignals_q01/datafusion:vortex-file-compressed 285882888 262458544 1.09
polarsignals_q02/datafusion:vortex-file-compressed 🚨 24960669 21806749 1.14
polarsignals_q03/datafusion:vortex-file-compressed 🚨 320803270 263505651 1.22
polarsignals_q04/datafusion:vortex-file-compressed 🚨 11714852 9363695 1.25
polarsignals_q05/datafusion:vortex-file-compressed 🚨 17819256 13890711 1.28
polarsignals_q06/datafusion:vortex-file-compressed 🚨 22077599 19237793 1.15
polarsignals_q07/datafusion:vortex-file-compressed 🚨 15513442 13140672 1.18
polarsignals_q08/datafusion:vortex-file-compressed 🚨 457896750 395222845 1.16
polarsignals_q09/datafusion:vortex-file-compressed 🚨 10657418 9686641 1.10

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +1.1%
Engines: DataFusion No clear signal (+2.6%, environment too noisy confidence) · DuckDB No clear signal (-0.4%, low confidence)
Vortex (geomean): 1.007x ➖
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.

datafusion / vortex-file-compressed (1.009x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 54134537 53161787 1.02
tpch_q02/datafusion:vortex-file-compressed 22161910 21792419 1.02
tpch_q03/datafusion:vortex-file-compressed 30913962 31181884 0.99
tpch_q04/datafusion:vortex-file-compressed 19592690 18990401 1.03
tpch_q05/datafusion:vortex-file-compressed 45903666 45200530 1.02
tpch_q06/datafusion:vortex-file-compressed 9476870 9361834 1.01
tpch_q07/datafusion:vortex-file-compressed 52576789 51271047 1.03
tpch_q08/datafusion:vortex-file-compressed 37975626 37981262 1.00
tpch_q09/datafusion:vortex-file-compressed 50350665 49084797 1.03
tpch_q10/datafusion:vortex-file-compressed 33486088 32477954 1.03
tpch_q11/datafusion:vortex-file-compressed 16044082 15783258 1.02
tpch_q12/datafusion:vortex-file-compressed 23834420 23150142 1.03
tpch_q13/datafusion:vortex-file-compressed 24756902 24946631 0.99
tpch_q14/datafusion:vortex-file-compressed 14699426 14850268 0.99
tpch_q15/datafusion:vortex-file-compressed 22640896 23359175 0.97
tpch_q16/datafusion:vortex-file-compressed 18841487 18500968 1.02
tpch_q17/datafusion:vortex-file-compressed 62701650 64876231 0.97
tpch_q18/datafusion:vortex-file-compressed 73965628 72598385 1.02
tpch_q19/datafusion:vortex-file-compressed 19378506 19661516 0.99
tpch_q20/datafusion:vortex-file-compressed 29247771 29638927 0.99
tpch_q21/datafusion:vortex-file-compressed 67606697 66715129 1.01
tpch_q22/datafusion:vortex-file-compressed 11991885 11518293 1.04
datafusion / vortex-compact (1.007x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 60908798 60438787 1.01
tpch_q02/datafusion:vortex-compact 25534138 24828723 1.03
tpch_q03/datafusion:vortex-compact 33444611 33266474 1.01
tpch_q04/datafusion:vortex-compact 22282072 22667342 0.98
tpch_q05/datafusion:vortex-compact 47484964 47322943 1.00
tpch_q06/datafusion:vortex-compact 12860497 12081831 1.06
tpch_q07/datafusion:vortex-compact 55145666 56267317 0.98
tpch_q08/datafusion:vortex-compact 42075197 42136633 1.00
tpch_q09/datafusion:vortex-compact 55672804 54536712 1.02
tpch_q10/datafusion:vortex-compact 38036999 37937106 1.00
tpch_q11/datafusion:vortex-compact 16768220 17151905 0.98
tpch_q12/datafusion:vortex-compact 31300182 30573559 1.02
tpch_q13/datafusion:vortex-compact 30453572 30489068 1.00
tpch_q14/datafusion:vortex-compact 18066401 18052536 1.00
tpch_q15/datafusion:vortex-compact 29416302 29658453 0.99
tpch_q16/datafusion:vortex-compact 23344182 22531310 1.04
tpch_q17/datafusion:vortex-compact 68112430 65483247 1.04
tpch_q18/datafusion:vortex-compact 78464095 79104810 0.99
tpch_q19/datafusion:vortex-compact 39542094 38724458 1.02
tpch_q20/datafusion:vortex-compact 34243791 35205139 0.97
tpch_q21/datafusion:vortex-compact 77974998 77031990 1.01
tpch_q22/datafusion:vortex-compact 13212502 13307170 0.99
datafusion / parquet (0.983x ➖, 2↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 🚀 129318347 143817127 0.90
tpch_q02/datafusion:parquet 62873967 60130880 1.05
tpch_q03/datafusion:parquet 79120896 77949362 1.02
tpch_q04/datafusion:parquet 47315994 45200592 1.05
tpch_q05/datafusion:parquet 94564091 93721208 1.01
tpch_q06/datafusion:parquet 41681021 42740315 0.98
tpch_q07/datafusion:parquet 98978504 101013288 0.98
tpch_q08/datafusion:parquet 90603033 95985918 0.94
tpch_q09/datafusion:parquet 127512978 127652690 1.00
tpch_q10/datafusion:parquet 120356439 116629076 1.03
tpch_q11/datafusion:parquet 40494147 39482367 1.03
tpch_q12/datafusion:parquet 76488777 83798666 0.91
tpch_q13/datafusion:parquet 191124526 195515127 0.98
tpch_q14/datafusion:parquet 43322575 45027409 0.96
tpch_q15/datafusion:parquet 58918434 59624069 0.99
tpch_q16/datafusion:parquet 42211532 42458094 0.99
tpch_q17/datafusion:parquet 134775652 141128192 0.95
tpch_q18/datafusion:parquet 153005075 146232835 1.05
tpch_q19/datafusion:parquet 🚀 64756803 77636924 0.83
tpch_q20/datafusion:parquet 73322666 72649966 1.01
tpch_q21/datafusion:parquet 143603758 143419707 1.00
tpch_q22/datafusion:parquet 43013746 42505636 1.01
datafusion / arrow (1.010x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:arrow 61797688 64825854 0.95
tpch_q02/datafusion:arrow 17058434 17516326 0.97
tpch_q03/datafusion:arrow 31995061 31742044 1.01
tpch_q04/datafusion:arrow 27424908 26088228 1.05
tpch_q05/datafusion:arrow 58841853 53898454 1.09
tpch_q06/datafusion:arrow 23042861 21330449 1.08
tpch_q07/datafusion:arrow 107874899 105284623 1.02
tpch_q08/datafusion:arrow 42774250 43845030 0.98
tpch_q09/datafusion:arrow 64323857 65563975 0.98
tpch_q10/datafusion:arrow 47876618 52593472 0.91
tpch_q11/datafusion:arrow 9035365 9270965 0.97
tpch_q12/datafusion:arrow 48585227 49291579 0.99
tpch_q13/datafusion:arrow 47567756 44984914 1.06
tpch_q14/datafusion:arrow 23192834 23152848 1.00
tpch_q15/datafusion:arrow 44531219 44450373 1.00
tpch_q16/datafusion:arrow 16497358 16240779 1.02
tpch_q17/datafusion:arrow 66745083 65704666 1.02
tpch_q18/datafusion:arrow 107589116 108098963 1.00
tpch_q19/datafusion:arrow 37592432 36094457 1.04
tpch_q20/datafusion:arrow 36652116 35253653 1.04
tpch_q21/datafusion:arrow 161702575 151850108 1.06
tpch_q22/datafusion:arrow 12223601 12177190 1.00
duckdb / vortex-file-compressed (1.008x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 27705138 28024255 0.99
tpch_q02/duckdb:vortex-file-compressed 25253415 24597351 1.03
tpch_q03/duckdb:vortex-file-compressed 31508019 31626228 1.00
tpch_q04/duckdb:vortex-file-compressed 27260940 26863635 1.01
tpch_q05/duckdb:vortex-file-compressed 35833573 34766355 1.03
tpch_q06/duckdb:vortex-file-compressed 8358388 8119687 1.03
tpch_q07/duckdb:vortex-file-compressed 33585518 33256971 1.01
tpch_q08/duckdb:vortex-file-compressed 39117149 37981988 1.03
tpch_q09/duckdb:vortex-file-compressed 55427221 53804102 1.03
tpch_q10/duckdb:vortex-file-compressed 40053441 40396110 0.99
tpch_q11/duckdb:vortex-file-compressed 13513936 13499885 1.00
tpch_q12/duckdb:vortex-file-compressed 22814924 23051165 0.99
tpch_q13/duckdb:vortex-file-compressed 39175624 39541322 0.99
tpch_q14/duckdb:vortex-file-compressed 19332870 19529887 0.99
tpch_q15/duckdb:vortex-file-compressed 15774990 16328922 0.97
tpch_q16/duckdb:vortex-file-compressed 27207697 27082259 1.00
tpch_q17/duckdb:vortex-file-compressed 23196428 23189636 1.00
tpch_q18/duckdb:vortex-file-compressed 50577733 50052608 1.01
tpch_q19/duckdb:vortex-file-compressed 26837344 25260530 1.06
tpch_q20/duckdb:vortex-file-compressed 30758049 30442796 1.01
tpch_q21/duckdb:vortex-file-compressed 98133311 97272466 1.01
tpch_q22/duckdb:vortex-file-compressed 15974816 16124287 0.99
duckdb / vortex-compact (1.004x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 37298508 39373197 0.95
tpch_q02/duckdb:vortex-compact 31633503 30946363 1.02
tpch_q03/duckdb:vortex-compact 34333002 34311070 1.00
tpch_q04/duckdb:vortex-compact 33013345 33124432 1.00
tpch_q05/duckdb:vortex-compact 39261408 38680367 1.02
tpch_q06/duckdb:vortex-compact 10610344 10612457 1.00
tpch_q07/duckdb:vortex-compact 41974408 42133258 1.00
tpch_q08/duckdb:vortex-compact 45577499 46291510 0.98
tpch_q09/duckdb:vortex-compact 64552302 66228216 0.97
tpch_q10/duckdb:vortex-compact 46882222 46605623 1.01
tpch_q11/duckdb:vortex-compact 15799668 15530099 1.02
tpch_q12/duckdb:vortex-compact 31577607 30820951 1.02
tpch_q13/duckdb:vortex-compact 45940309 46133655 1.00
tpch_q14/duckdb:vortex-compact 23510427 23032211 1.02
tpch_q15/duckdb:vortex-compact 19621198 18698141 1.05
tpch_q16/duckdb:vortex-compact 28918081 28770818 1.01
tpch_q17/duckdb:vortex-compact 28034077 27709611 1.01
tpch_q18/duckdb:vortex-compact 57909793 57327961 1.01
tpch_q19/duckdb:vortex-compact 28580188 28229362 1.01
tpch_q20/duckdb:vortex-compact 37400615 36668666 1.02
tpch_q21/duckdb:vortex-compact 110704937 111361777 0.99
tpch_q22/duckdb:vortex-compact 17747011 17984360 0.99
duckdb / parquet (1.011x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 77951865 77637521 1.00
tpch_q02/duckdb:parquet 39952842 39561446 1.01
tpch_q03/duckdb:parquet 72219507 71745035 1.01
tpch_q04/duckdb:parquet 50909769 50301134 1.01
tpch_q05/duckdb:parquet 70212332 69410805 1.01
tpch_q06/duckdb:parquet 22642502 23254712 0.97
tpch_q07/duckdb:parquet 74472544 78137270 0.95
tpch_q08/duckdb:parquet 84468740 84130876 1.00
tpch_q09/duckdb:parquet 🚨 154478488 135226902 1.14
tpch_q10/duckdb:parquet 141870480 129195199 1.10
tpch_q11/duckdb:parquet 22906557 22917347 1.00
tpch_q12/duckdb:parquet 55931382 51332345 1.09
tpch_q13/duckdb:parquet 254507645 250596633 1.02
tpch_q14/duckdb:parquet 51431749 51639460 1.00
tpch_q15/duckdb:parquet 26474789 26417608 1.00
tpch_q16/duckdb:parquet 58794562 58570669 1.00
tpch_q17/duckdb:parquet 58767689 59520502 0.99
tpch_q18/duckdb:parquet 123657828 120978110 1.02
tpch_q19/duckdb:parquet 70170094 77129172 0.91
tpch_q20/duckdb:parquet 66293231 65757649 1.01
tpch_q21/duckdb:parquet 187002218 184208851 1.02
tpch_q22/duckdb:parquet 55064052 55212446 1.00
duckdb / duckdb (1.010x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:duckdb 17876511 17682934 1.01
tpch_q02/duckdb:duckdb 14681981 14995929 0.98
tpch_q03/duckdb:duckdb 21978506 22121254 0.99
tpch_q04/duckdb:duckdb 22893719 22177552 1.03
tpch_q05/duckdb:duckdb 23685160 23074237 1.03
tpch_q06/duckdb:duckdb 7109058 7010212 1.01
tpch_q07/duckdb:duckdb 26019562 25183855 1.03
tpch_q08/duckdb:duckdb 24423911 24217045 1.01
tpch_q09/duckdb:duckdb 56869396 57358369 0.99
tpch_q10/duckdb:duckdb 52381789 51401332 1.02
tpch_q11/duckdb:duckdb 7210773 7119528 1.01
tpch_q12/duckdb:duckdb 18473502 17787259 1.04
tpch_q13/duckdb:duckdb 39599469 39413751 1.00
tpch_q14/duckdb:duckdb 21054801 21315780 0.99
tpch_q15/duckdb:duckdb 13705525 13737254 1.00
tpch_q16/duckdb:duckdb 26254997 25893012 1.01
tpch_q17/duckdb:duckdb 16365892 16320141 1.00
tpch_q18/duckdb:duckdb 40695081 40765944 1.00
tpch_q19/duckdb:duckdb 31485159 31138445 1.01
tpch_q20/duckdb:duckdb 25351964 25002542 1.01
tpch_q21/duckdb:duckdb 61540591 61452159 1.00
tpch_q22/duckdb:duckdb 26483346 25853086 1.02

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.4%
Engines: DataFusion No clear signal (+0.4%, low confidence) · DuckDB No clear signal (+0.5%, low confidence)
Vortex (geomean): 1.027x ➖
Parquet (geomean): 1.023x ➖
Shifts: Parquet (control) +2.3% · Median polish +1.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 (1.042x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 5009628 4826761 1.04
fineweb_q01/datafusion:vortex-file-compressed 32354285 30548383 1.06
fineweb_q02/datafusion:vortex-file-compressed 37275489 35783246 1.04
fineweb_q03/datafusion:vortex-file-compressed 55776345 53580940 1.04
fineweb_q04/datafusion:vortex-file-compressed 246134184 244632598 1.01
fineweb_q05/datafusion:vortex-file-compressed 191088813 186803103 1.02
fineweb_q06/datafusion:vortex-file-compressed 52292048 49327803 1.06
fineweb_q07/datafusion:vortex-file-compressed 55683091 52573614 1.06
fineweb_q08/datafusion:vortex-file-compressed 21773052 20761990 1.05
datafusion / vortex-compact (1.007x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 5432660 5460546 0.99
fineweb_q01/datafusion:vortex-compact 93745679 92323493 1.02
fineweb_q02/datafusion:vortex-compact 109295843 104033022 1.05
fineweb_q03/datafusion:vortex-compact 865120604 842392011 1.03
fineweb_q04/datafusion:vortex-compact 916330645 920827287 1.00
fineweb_q05/datafusion:vortex-compact 822970540 818316054 1.01
fineweb_q06/datafusion:vortex-compact 464032219 457806969 1.01
fineweb_q07/datafusion:vortex-compact 481081468 486581655 0.99
fineweb_q08/datafusion:vortex-compact 19257357 19835251 0.97
datafusion / parquet (1.020x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 🚨 7599765 6735390 1.13
fineweb_q01/datafusion:parquet 294238951 292523223 1.01
fineweb_q02/datafusion:parquet 305667092 301887725 1.01
fineweb_q03/datafusion:parquet 292665931 279126922 1.05
fineweb_q04/datafusion:parquet 306660543 315902174 0.97
fineweb_q05/datafusion:parquet 310288395 308089909 1.01
fineweb_q06/datafusion:parquet 298665329 298862647 1.00
fineweb_q07/datafusion:parquet 285962352 283827351 1.01
fineweb_q08/datafusion:parquet 282788762 281251380 1.01
duckdb / vortex-file-compressed (1.036x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 3301739 3590046 0.92
fineweb_q01/duckdb:vortex-file-compressed 33421887 31704851 1.05
fineweb_q02/duckdb:vortex-file-compressed 39272211 37039028 1.06
fineweb_q03/duckdb:vortex-file-compressed 102964306 99074069 1.04
fineweb_q04/duckdb:vortex-file-compressed 247816855 244314821 1.01
fineweb_q05/duckdb:vortex-file-compressed 190290162 181835958 1.05
fineweb_q06/duckdb:vortex-file-compressed 54289597 52242975 1.04
fineweb_q07/duckdb:vortex-file-compressed 56365155 55222800 1.02
fineweb_q08/duckdb:vortex-file-compressed 🚨 24157452 21086411 1.15
duckdb / vortex-compact (1.025x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 🚨 3483124 2848353 1.22
fineweb_q01/duckdb:vortex-compact 102439440 107866445 0.95
fineweb_q02/duckdb:vortex-compact 119477125 115425522 1.04
fineweb_q03/duckdb:vortex-compact 852990494 846677171 1.01
fineweb_q04/duckdb:vortex-compact 912831832 904235873 1.01
fineweb_q05/duckdb:vortex-compact 813195732 804826345 1.01
fineweb_q06/duckdb:vortex-compact 466563360 464650074 1.00
fineweb_q07/duckdb:vortex-compact 489437964 484345611 1.01
fineweb_q08/duckdb:vortex-compact 21219858 21294845 1.00
duckdb / parquet (1.026x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 🚨 34706521 31033379 1.12
fineweb_q01/duckdb:parquet 92681191 90734519 1.02
fineweb_q02/duckdb:parquet 92394840 89846645 1.03
fineweb_q03/duckdb:parquet 322070404 321088266 1.00
fineweb_q04/duckdb:parquet 451628314 447604459 1.01
fineweb_q05/duckdb:parquet 421995003 419876998 1.01
fineweb_q06/duckdb:parquet 210437479 208017048 1.01
fineweb_q07/duckdb:parquet 220064795 218881242 1.01
fineweb_q08/duckdb:parquet 38397954 37046118 1.04

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-DS SF=1 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.0%
Engines: DataFusion No clear signal (-1.2%, low confidence) · DuckDB No clear signal (+1.1%, low confidence)
Vortex (geomean): 1.039x ➖
Parquet (geomean): 1.041x ➖
Shifts: Parquet (control) +4.1% · Median polish +4.2%

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 (1.056x ➖, 0↑ 9↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/datafusion:vortex-file-compressed 🚨 26155400 22521927 1.16
tpcds_q02/datafusion:vortex-file-compressed 44739477 41852666 1.07
tpcds_q03/datafusion:vortex-file-compressed 15124811 15371429 0.98
tpcds_q04/datafusion:vortex-file-compressed 232432528 234247449 0.99
tpcds_q05/datafusion:vortex-file-compressed 46494246 44545260 1.04
tpcds_q06/datafusion:vortex-file-compressed 🚨 25982800 23031289 1.13
tpcds_q07/datafusion:vortex-file-compressed 43957544 40012655 1.10
tpcds_q08/datafusion:vortex-file-compressed 31372379 29411193 1.07
tpcds_q09/datafusion:vortex-file-compressed 33362102 32362695 1.03
tpcds_q10/datafusion:vortex-file-compressed 39632545 38428179 1.03
tpcds_q11/datafusion:vortex-file-compressed 131306344 125993356 1.04
tpcds_q12/datafusion:vortex-file-compressed 18514232 17434604 1.06
tpcds_q13/datafusion:vortex-file-compressed 46196158 45513098 1.02
tpcds_q14/datafusion:vortex-file-compressed 169173465 156959972 1.08
tpcds_q15/datafusion:vortex-file-compressed 26468981 25107386 1.05
tpcds_q16/datafusion:vortex-file-compressed 24681578 24192284 1.02
tpcds_q17/datafusion:vortex-file-compressed 59706329 58475182 1.02
tpcds_q18/datafusion:vortex-file-compressed 60357444 57757053 1.05
tpcds_q19/datafusion:vortex-file-compressed 22431893 21581108 1.04
tpcds_q20/datafusion:vortex-file-compressed 20029050 19507411 1.03
tpcds_q21/datafusion:vortex-file-compressed 37382705 36163238 1.03
tpcds_q22/datafusion:vortex-file-compressed 🚨 130322190 117395532 1.11
tpcds_q23/datafusion:vortex-file-compressed 161204411 151606087 1.06
tpcds_q24/datafusion:vortex-file-compressed 87011577 84735432 1.03
tpcds_q25/datafusion:vortex-file-compressed 65752084 61448877 1.07
tpcds_q26/datafusion:vortex-file-compressed 31263376 29737345 1.05
tpcds_q27/datafusion:vortex-file-compressed 99430282 94704576 1.05
tpcds_q28/datafusion:vortex-file-compressed 33590198 32741582 1.03
tpcds_q29/datafusion:vortex-file-compressed 62838833 57687054 1.09
tpcds_q30/datafusion:vortex-file-compressed 24792224 23327142 1.06
tpcds_q31/datafusion:vortex-file-compressed 74860568 68576951 1.09
tpcds_q32/datafusion:vortex-file-compressed 🚨 19880943 17940115 1.11
tpcds_q33/datafusion:vortex-file-compressed 30107052 28966049 1.04
tpcds_q34/datafusion:vortex-file-compressed 26581974 24816464 1.07
tpcds_q35/datafusion:vortex-file-compressed 46037362 43146671 1.07
tpcds_q36/datafusion:vortex-file-compressed 61544863 58127728 1.06
tpcds_q37/datafusion:vortex-file-compressed 18753652 19318102 0.97
tpcds_q38/datafusion:vortex-file-compressed 39822663 38696751 1.03
tpcds_q39/datafusion:vortex-file-compressed 111510809 104656897 1.07
tpcds_q40/datafusion:vortex-file-compressed 30760045 29273929 1.05
tpcds_q41/datafusion:vortex-file-compressed 🚨 21621096 19315155 1.12
tpcds_q42/datafusion:vortex-file-compressed 14309934 13181679 1.09
tpcds_q43/datafusion:vortex-file-compressed 18914030 18277133 1.03
tpcds_q44/datafusion:vortex-file-compressed 32074669 29425817 1.09
tpcds_q45/datafusion:vortex-file-compressed 26096345 25345445 1.03
tpcds_q46/datafusion:vortex-file-compressed 37769557 35546594 1.06
tpcds_q47/datafusion:vortex-file-compressed 142994577 134110806 1.07
tpcds_q48/datafusion:vortex-file-compressed 38072019 36683548 1.04
tpcds_q49/datafusion:vortex-file-compressed 61258778 56927170 1.08
tpcds_q50/datafusion:vortex-file-compressed 41809033 39075538 1.07
tpcds_q51/datafusion:vortex-file-compressed 91501649 87942583 1.04
tpcds_q52/datafusion:vortex-file-compressed 14642881 13674131 1.07
tpcds_q53/datafusion:vortex-file-compressed 🚨 23415275 21141468 1.11
tpcds_q54/datafusion:vortex-file-compressed 34514529 31919891 1.08
tpcds_q55/datafusion:vortex-file-compressed 14439069 13483243 1.07
tpcds_q56/datafusion:vortex-file-compressed 31788408 30076920 1.06
tpcds_q57/datafusion:vortex-file-compressed 94681963 89984319 1.05
tpcds_q58/datafusion:vortex-file-compressed 55930578 51669341 1.08
tpcds_q59/datafusion:vortex-file-compressed 59938287 57826853 1.04
tpcds_q60/datafusion:vortex-file-compressed 30223908 30251662 1.00
tpcds_q61/datafusion:vortex-file-compressed 40762898 39466747 1.03
tpcds_q62/datafusion:vortex-file-compressed 21316379 21002900 1.01
tpcds_q63/datafusion:vortex-file-compressed 23187726 21294381 1.09
tpcds_q64/datafusion:vortex-file-compressed 409067469 387181362 1.06
tpcds_q65/datafusion:vortex-file-compressed 52469210 50781913 1.03
tpcds_q66/datafusion:vortex-file-compressed 70536490 69083033 1.02
tpcds_q67/datafusion:vortex-file-compressed 155185290 153299354 1.01
tpcds_q68/datafusion:vortex-file-compressed 35237695 32824734 1.07
tpcds_q69/datafusion:vortex-file-compressed 35349023 33460920 1.06
tpcds_q70/datafusion:vortex-file-compressed 99336751 97945732 1.01
tpcds_q71/datafusion:vortex-file-compressed 22841235 22179304 1.03
tpcds_q72/datafusion:vortex-file-compressed 2180224527 2115511502 1.03
tpcds_q73/datafusion:vortex-file-compressed 🚨 25380637 22902171 1.11
tpcds_q74/datafusion:vortex-file-compressed 80921759 77015242 1.05
tpcds_q75/datafusion:vortex-file-compressed 109167128 106254798 1.03
tpcds_q76/datafusion:vortex-file-compressed 29814214 28739795 1.04
tpcds_q77/datafusion:vortex-file-compressed 🚨 43237331 36122065 1.20
tpcds_q78/datafusion:vortex-file-compressed 114080015 108793690 1.05
tpcds_q79/datafusion:vortex-file-compressed 29888580 27737039 1.08
tpcds_q80/datafusion:vortex-file-compressed 94482826 88287135 1.07
tpcds_q81/datafusion:vortex-file-compressed 26288025 24045190 1.09
tpcds_q82/datafusion:vortex-file-compressed 20996109 21966108 0.96
tpcds_q83/datafusion:vortex-file-compressed 36560846 34484914 1.06
tpcds_q84/datafusion:vortex-file-compressed 🚨 13391517 11914037 1.12
tpcds_q85/datafusion:vortex-file-compressed 91221040 87001472 1.05
tpcds_q86/datafusion:vortex-file-compressed 15394343 14786971 1.04
tpcds_q87/datafusion:vortex-file-compressed 40263132 38386575 1.05
tpcds_q88/datafusion:vortex-file-compressed 55479870 53183761 1.04
tpcds_q89/datafusion:vortex-file-compressed 26689997 24749625 1.08
tpcds_q90/datafusion:vortex-file-compressed 14328265 13366286 1.07
tpcds_q91/datafusion:vortex-file-compressed 19791734 19046116 1.04
tpcds_q92/datafusion:vortex-file-compressed 16454899 15834920 1.04
tpcds_q93/datafusion:vortex-file-compressed 34767742 32453616 1.07
tpcds_q94/datafusion:vortex-file-compressed 21823338 20053411 1.09
tpcds_q95/datafusion:vortex-file-compressed 57711147 55217769 1.05
tpcds_q96/datafusion:vortex-file-compressed 13312739 12705969 1.05
tpcds_q97/datafusion:vortex-file-compressed 30176938 27764609 1.09
tpcds_q98/datafusion:vortex-file-compressed 24072463 23056587 1.04
tpcds_q99/datafusion:vortex-file-compressed 25748335 24959504 1.03
datafusion / vortex-compact (1.021x ➖, 0↑ 4↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/datafusion:vortex-compact 24409323 24053658 1.01
tpcds_q02/datafusion:vortex-compact 51301014 49740639 1.03
tpcds_q03/datafusion:vortex-compact 20507711 19586572 1.05
tpcds_q04/datafusion:vortex-compact 277985986 262282887 1.06
tpcds_q05/datafusion:vortex-compact 48426152 47592069 1.02
tpcds_q06/datafusion:vortex-compact 29554609 29804515 0.99
tpcds_q07/datafusion:vortex-compact 62275266 57990475 1.07
tpcds_q08/datafusion:vortex-compact 40156947 40437663 0.99
tpcds_q09/datafusion:vortex-compact 55756283 54567609 1.02
tpcds_q10/datafusion:vortex-compact 53328073 53237739 1.00
tpcds_q11/datafusion:vortex-compact 155112734 157347624 0.99
tpcds_q12/datafusion:vortex-compact 22700298 20998597 1.08
tpcds_q13/datafusion:vortex-compact 129657507 132055728 0.98
tpcds_q14/datafusion:vortex-compact 186664164 183972131 1.01
tpcds_q15/datafusion:vortex-compact 30275778 29988825 1.01
tpcds_q16/datafusion:vortex-compact 29279024 29351740 1.00
tpcds_q17/datafusion:vortex-compact 100354155 98579348 1.02
tpcds_q18/datafusion:vortex-compact 73815573 68800487 1.07
tpcds_q19/datafusion:vortex-compact 34679437 34364955 1.01
tpcds_q20/datafusion:vortex-compact 24997054 23952689 1.04
tpcds_q21/datafusion:vortex-compact 41855965 40404490 1.04
tpcds_q22/datafusion:vortex-compact 🚨 162630562 127665586 1.27
tpcds_q23/datafusion:vortex-compact 179683041 180736206 0.99
tpcds_q24/datafusion:vortex-compact 🚨 115112146 102695246 1.12
tpcds_q25/datafusion:vortex-compact 81165492 77631372 1.05
tpcds_q26/datafusion:vortex-compact 45037765 42417928 1.06
tpcds_q27/datafusion:vortex-compact 134371601 134357909 1.00
tpcds_q28/datafusion:vortex-compact 88343594 85206134 1.04
tpcds_q29/datafusion:vortex-compact 78502304 77256825 1.02
tpcds_q30/datafusion:vortex-compact 29542858 28409536 1.04
tpcds_q31/datafusion:vortex-compact 103889186 101503678 1.02
tpcds_q32/datafusion:vortex-compact 22441119 21950148 1.02
tpcds_q33/datafusion:vortex-compact 39519934 38356504 1.03
tpcds_q34/datafusion:vortex-compact 41000240 42940235 0.95
tpcds_q35/datafusion:vortex-compact 60706481 57904729 1.05
tpcds_q36/datafusion:vortex-compact 76691705 78255210 0.98
tpcds_q37/datafusion:vortex-compact 27021940 25517238 1.06
tpcds_q38/datafusion:vortex-compact 51118010 51243764 1.00
tpcds_q39/datafusion:vortex-compact 125676425 114856707 1.09
tpcds_q40/datafusion:vortex-compact 34451180 32170952 1.07
tpcds_q41/datafusion:vortex-compact 23091516 22133702 1.04
tpcds_q42/datafusion:vortex-compact 18758679 19527994 0.96
tpcds_q43/datafusion:vortex-compact 25923522 25698956 1.01
tpcds_q44/datafusion:vortex-compact 50064863 48660495 1.03
tpcds_q45/datafusion:vortex-compact 31371269 29885857 1.05
tpcds_q46/datafusion:vortex-compact 52632488 54262379 0.97
tpcds_q47/datafusion:vortex-compact 159810718 153379295 1.04
tpcds_q48/datafusion:vortex-compact 97113836 100145978 0.97
tpcds_q49/datafusion:vortex-compact 79194125 77077735 1.03
tpcds_q50/datafusion:vortex-compact 51272775 51203868 1.00
tpcds_q51/datafusion:vortex-compact 100157463 97428187 1.03
tpcds_q52/datafusion:vortex-compact 19167676 19236749 1.00
tpcds_q53/datafusion:vortex-compact 30140510 29966020 1.01
tpcds_q54/datafusion:vortex-compact 43693180 44820282 0.97
tpcds_q55/datafusion:vortex-compact 18348331 18825501 0.97
tpcds_q56/datafusion:vortex-compact 40019341 41292573 0.97
tpcds_q57/datafusion:vortex-compact 🚨 108928694 98473464 1.11
tpcds_q58/datafusion:vortex-compact 60170301 59367024 1.01
tpcds_q59/datafusion:vortex-compact 73499546 71870421 1.02
tpcds_q60/datafusion:vortex-compact 40099612 39290617 1.02
tpcds_q61/datafusion:vortex-compact 55760144 56912610 0.98
tpcds_q62/datafusion:vortex-compact 23172782 23407180 0.99
tpcds_q63/datafusion:vortex-compact 30013074 31484588 0.95
tpcds_q64/datafusion:vortex-compact 450497910 456312081 0.99
tpcds_q65/datafusion:vortex-compact 67059839 66675349 1.01
tpcds_q66/datafusion:vortex-compact 74292094 74759611 0.99
tpcds_q67/datafusion:vortex-compact 161349293 155310333 1.04
tpcds_q68/datafusion:vortex-compact 53027062 54133023 0.98
tpcds_q69/datafusion:vortex-compact 52246237 50299102 1.04
tpcds_q70/datafusion:vortex-compact 109952125 106622230 1.03
tpcds_q71/datafusion:vortex-compact 32530839 33731211 0.96
tpcds_q72/datafusion:vortex-compact 2200790287 2074845445 1.06
tpcds_q73/datafusion:vortex-compact 39231374 38461342 1.02
tpcds_q74/datafusion:vortex-compact 96579901 95015558 1.02
tpcds_q75/datafusion:vortex-compact 138081241 140558386 0.98
tpcds_q76/datafusion:vortex-compact 39061894 38009266 1.03
tpcds_q77/datafusion:vortex-compact 47475203 46081245 1.03
tpcds_q78/datafusion:vortex-compact 131595984 127258490 1.03
tpcds_q79/datafusion:vortex-compact 47912555 47293193 1.01
tpcds_q80/datafusion:vortex-compact 104510108 97885755 1.07
tpcds_q81/datafusion:vortex-compact 27735822 27863139 1.00
tpcds_q82/datafusion:vortex-compact 27606527 27253341 1.01
tpcds_q83/datafusion:vortex-compact 39219567 35805377 1.10
tpcds_q84/datafusion:vortex-compact 🚨 15112772 13691515 1.10
tpcds_q85/datafusion:vortex-compact 137069796 132267831 1.04
tpcds_q86/datafusion:vortex-compact 17227524 17019521 1.01
tpcds_q87/datafusion:vortex-compact 52315536 50437616 1.04
tpcds_q88/datafusion:vortex-compact 102977234 110709508 0.93
tpcds_q89/datafusion:vortex-compact 32231880 33152221 0.97
tpcds_q90/datafusion:vortex-compact 16216042 15177254 1.07
tpcds_q91/datafusion:vortex-compact 37816221 36957258 1.02
tpcds_q92/datafusion:vortex-compact 20351267 19530600 1.04
tpcds_q93/datafusion:vortex-compact 41255900 39898524 1.03
tpcds_q94/datafusion:vortex-compact 26550010 24949538 1.06
tpcds_q95/datafusion:vortex-compact 63531000 64568797 0.98
tpcds_q96/datafusion:vortex-compact 21880097 22849019 0.96
tpcds_q97/datafusion:vortex-compact 37235454 37372751 1.00
tpcds_q98/datafusion:vortex-compact 31902583 30695334 1.04
tpcds_q99/datafusion:vortex-compact 28432073 29024143 0.98
datafusion / parquet (1.051x ➖, 1↑ 11↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/datafusion:parquet 23502793 23384470 1.01
tpcds_q02/datafusion:parquet 41874927 41723770 1.00
tpcds_q03/datafusion:parquet 13345080 13543115 0.99
tpcds_q04/datafusion:parquet 304131715 317367886 0.96
tpcds_q05/datafusion:parquet 47386824 46040569 1.03
tpcds_q06/datafusion:parquet 23334543 22690362 1.03
tpcds_q07/datafusion:parquet 78247887 76112820 1.03
tpcds_q08/datafusion:parquet 🚨 31222965 28307275 1.10
tpcds_q09/datafusion:parquet 39596465 39122796 1.01
tpcds_q10/datafusion:parquet 73759470 71427479 1.03
tpcds_q11/datafusion:parquet 161772119 152341312 1.06
tpcds_q12/datafusion:parquet 🚨 19726199 16233216 1.22
tpcds_q13/datafusion:parquet 77465697 74232109 1.04
tpcds_q14/datafusion:parquet 162025953 158796588 1.02
tpcds_q15/datafusion:parquet 22294465 22423244 0.99
tpcds_q16/datafusion:parquet 29744904 28982270 1.03
tpcds_q17/datafusion:parquet 🚀 62170755 69325091 0.90
tpcds_q18/datafusion:parquet 109900508 107231463 1.02
tpcds_q19/datafusion:parquet 23383438 22730258 1.03
tpcds_q20/datafusion:parquet 18315840 16885520 1.08
tpcds_q21/datafusion:parquet 🚨 20276892 18116426 1.12
tpcds_q22/datafusion:parquet 163882897 155402274 1.05
tpcds_q23/datafusion:parquet 160811608 148163595 1.09
tpcds_q24/datafusion:parquet 93715193 89964217 1.04
tpcds_q25/datafusion:parquet 64771619 62651880 1.03
tpcds_q26/datafusion:parquet 67195081 68783766 0.98
tpcds_q27/datafusion:parquet 141772979 137462053 1.03
tpcds_q28/datafusion:parquet 46627878 44002517 1.06
tpcds_q29/datafusion:parquet 68587264 62969676 1.09
tpcds_q30/datafusion:parquet 34522706 32949742 1.05
tpcds_q31/datafusion:parquet 70785948 66128005 1.07
tpcds_q32/datafusion:parquet 17652317 16616593 1.06
tpcds_q33/datafusion:parquet 28488318 26987693 1.06
tpcds_q34/datafusion:parquet 23300946 21448254 1.09
tpcds_q35/datafusion:parquet 🚨 79302124 69037446 1.15
tpcds_q36/datafusion:parquet 60649597 58397286 1.04
tpcds_q37/datafusion:parquet 20575534 18709464 1.10
tpcds_q38/datafusion:parquet 43923995 42113279 1.04
tpcds_q39/datafusion:parquet 80297127 73151005 1.10
tpcds_q40/datafusion:parquet 24000798 25418032 0.94
tpcds_q41/datafusion:parquet 🚨 16368558 13975197 1.17
tpcds_q42/datafusion:parquet 🚨 13524555 11780231 1.15
tpcds_q43/datafusion:parquet 17060049 16748217 1.02
tpcds_q44/datafusion:parquet 34324866 32342084 1.06
tpcds_q45/datafusion:parquet 29605953 27625705 1.07
tpcds_q46/datafusion:parquet 34835274 32558693 1.07
tpcds_q47/datafusion:parquet 🚨 139403944 125565221 1.11
tpcds_q48/datafusion:parquet 72479991 69685929 1.04
tpcds_q49/datafusion:parquet 57359465 55474732 1.03
tpcds_q50/datafusion:parquet 43763404 42415694 1.03
tpcds_q51/datafusion:parquet 90379216 87810517 1.03
tpcds_q52/datafusion:parquet 12359480 12027910 1.03
tpcds_q53/datafusion:parquet 18496145 18079793 1.02
tpcds_q54/datafusion:parquet 33087318 33316748 0.99
tpcds_q55/datafusion:parquet 12587538 11481931 1.10
tpcds_q56/datafusion:parquet 28940334 27738606 1.04
tpcds_q57/datafusion:parquet 102170184 100418170 1.02
tpcds_q58/datafusion:parquet 57821114 55120247 1.05
tpcds_q59/datafusion:parquet 65666988 62319376 1.05
tpcds_q60/datafusion:parquet 29048234 27519283 1.06
tpcds_q61/datafusion:parquet 44933064 43756250 1.03
tpcds_q62/datafusion:parquet 🚨 24530395 19788147 1.24
tpcds_q63/datafusion:parquet 18421037 17979306 1.02
tpcds_q64/datafusion:parquet 312793088 299605587 1.04
tpcds_q65/datafusion:parquet 39369328 37410389 1.05
tpcds_q66/datafusion:parquet 74269257 69341327 1.07
tpcds_q67/datafusion:parquet 149596933 147589985 1.01
tpcds_q68/datafusion:parquet 34133861 31558541 1.08
tpcds_q69/datafusion:parquet 68460076 64369370 1.06
tpcds_q70/datafusion:parquet 34545851 33331082 1.04
tpcds_q71/datafusion:parquet 23409248 22887569 1.02
tpcds_q72/datafusion:parquet 608862969 583141104 1.04
tpcds_q73/datafusion:parquet 23379606 21331535 1.10
tpcds_q74/datafusion:parquet 86977697 83305080 1.04
tpcds_q75/datafusion:parquet 108467219 107242294 1.01
tpcds_q76/datafusion:parquet 32968932 30519248 1.08
tpcds_q77/datafusion:parquet 39395030 39101164 1.01
tpcds_q78/datafusion:parquet 116308126 109530407 1.06
tpcds_q79/datafusion:parquet 🚨 29002406 26332626 1.10
tpcds_q80/datafusion:parquet 🚨 85134032 75442644 1.13
tpcds_q81/datafusion:parquet 31504532 29189336 1.08
tpcds_q82/datafusion:parquet 20265281 19724426 1.03
tpcds_q83/datafusion:parquet 43971466 40986110 1.07
tpcds_q84/datafusion:parquet 41959208 40559889 1.03
tpcds_q85/datafusion:parquet 154068474 148678522 1.04
tpcds_q86/datafusion:parquet 17196156 15980732 1.08
tpcds_q87/datafusion:parquet 45393179 43336948 1.05
tpcds_q88/datafusion:parquet 61163180 59897793 1.02
tpcds_q89/datafusion:parquet 22959282 21766908 1.05
tpcds_q90/datafusion:parquet 15441211 14335612 1.08
tpcds_q91/datafusion:parquet 59895552 59078895 1.01
tpcds_q92/datafusion:parquet 19130232 17572084 1.09
tpcds_q93/datafusion:parquet 31242314 30453940 1.03
tpcds_q94/datafusion:parquet 22747683 21236341 1.07
tpcds_q95/datafusion:parquet 62868427 59529124 1.06
tpcds_q96/datafusion:parquet 🚨 13264459 11838823 1.12
tpcds_q97/datafusion:parquet 29628095 30448423 0.97
tpcds_q98/datafusion:parquet 22565700 21580003 1.05
tpcds_q99/datafusion:parquet 27425731 25478914 1.08
duckdb / vortex-file-compressed (1.055x ➖, 1↑ 19↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/duckdb:vortex-file-compressed 24718093 22516811 1.10
tpcds_q02/duckdb:vortex-file-compressed 23037078 21923706 1.05
tpcds_q03/duckdb:vortex-file-compressed 19619182 19397714 1.01
tpcds_q04/duckdb:vortex-file-compressed 🚨 104085532 88322823 1.18
tpcds_q05/duckdb:vortex-file-compressed 36188327 33931567 1.07
tpcds_q06/duckdb:vortex-file-compressed 35735170 33977207 1.05
tpcds_q07/duckdb:vortex-file-compressed 29643851 28282720 1.05
tpcds_q08/duckdb:vortex-file-compressed 29114080 27126752 1.07
tpcds_q09/duckdb:vortex-file-compressed 🚨 17024350 15348311 1.11
tpcds_q10/duckdb:vortex-file-compressed 41116441 39393646 1.04
tpcds_q11/duckdb:vortex-file-compressed 🚨 74090224 65971344 1.12
tpcds_q12/duckdb:vortex-file-compressed 🚨 15504516 13818650 1.12
tpcds_q13/duckdb:vortex-file-compressed 36266295 34624044 1.05
tpcds_q14/duckdb:vortex-file-compressed 106463418 102624361 1.04
tpcds_q15/duckdb:vortex-file-compressed 28492077 27381888 1.04
tpcds_q16/duckdb:vortex-file-compressed 23812151 24335529 0.98
tpcds_q17/duckdb:vortex-file-compressed 49182665 46881560 1.05
tpcds_q18/duckdb:vortex-file-compressed 42186225 39681541 1.06
tpcds_q19/duckdb:vortex-file-compressed 36246706 36028478 1.01
tpcds_q20/duckdb:vortex-file-compressed 🚨 15818825 14123094 1.12
tpcds_q21/duckdb:vortex-file-compressed 16738719 15954251 1.05
tpcds_q22/duckdb:vortex-file-compressed 74186667 69258897 1.07
tpcds_q23/duckdb:vortex-file-compressed 90533817 90036298 1.01
tpcds_q24/duckdb:vortex-file-compressed 48263900 44203548 1.09
tpcds_q25/duckdb:vortex-file-compressed 39197201 37935769 1.03
tpcds_q26/duckdb:vortex-file-compressed 19408504 18706451 1.04
tpcds_q27/duckdb:vortex-file-compressed 30731810 29506908 1.04
tpcds_q28/duckdb:vortex-file-compressed 🚨 13473693 11729365 1.15
tpcds_q29/duckdb:vortex-file-compressed 49169228 45975392 1.07
tpcds_q30/duckdb:vortex-file-compressed 27792598 26195819 1.06
tpcds_q31/duckdb:vortex-file-compressed 31017669 31980103 0.97
tpcds_q32/duckdb:vortex-file-compressed 🚨 14860181 12720893 1.17
tpcds_q33/duckdb:vortex-file-compressed 🚨 28185480 25045487 1.13
tpcds_q34/duckdb:vortex-file-compressed 28608849 26633088 1.07
tpcds_q35/duckdb:vortex-file-compressed 69124344 67683080 1.02
tpcds_q36/duckdb:vortex-file-compressed 🚨 27725062 24381871 1.14
tpcds_q37/duckdb:vortex-file-compressed 21234992 19395861 1.09
tpcds_q38/duckdb:vortex-file-compressed 40550609 40585957 1.00
tpcds_q39/duckdb:vortex-file-compressed 30232862 31637463 0.96
tpcds_q40/duckdb:vortex-file-compressed 🚨 20036220 18125279 1.11
tpcds_q41/duckdb:vortex-file-compressed 12847837 11910910 1.08
tpcds_q42/duckdb:vortex-file-compressed 16438857 15240356 1.08
tpcds_q43/duckdb:vortex-file-compressed 🚨 19726371 17869851 1.10
tpcds_q44/duckdb:vortex-file-compressed 22484860 22058571 1.02
tpcds_q45/duckdb:vortex-file-compressed 🚨 34215031 30506970 1.12
tpcds_q46/duckdb:vortex-file-compressed 🚨 39549135 32083549 1.23
tpcds_q47/duckdb:vortex-file-compressed 54858965 53210823 1.03
tpcds_q48/duckdb:vortex-file-compressed 32173176 32244066 1.00
tpcds_q49/duckdb:vortex-file-compressed 🚨 42091736 35527972 1.18
tpcds_q50/duckdb:vortex-file-compressed 27744466 27979222 0.99
tpcds_q51/duckdb:vortex-file-compressed 110509905 104570830 1.06
tpcds_q52/duckdb:vortex-file-compressed 15987494 15344425 1.04
tpcds_q53/duckdb:vortex-file-compressed 24373821 25061602 0.97
tpcds_q54/duckdb:vortex-file-compressed 31360446 29687211 1.06
tpcds_q55/duckdb:vortex-file-compressed 15399362 14231521 1.08
tpcds_q56/duckdb:vortex-file-compressed 29214053 27817679 1.05
tpcds_q57/duckdb:vortex-file-compressed 37061249 36579365 1.01
tpcds_q58/duckdb:vortex-file-compressed 31766363 29912202 1.06
tpcds_q59/duckdb:vortex-file-compressed 39647865 38609637 1.03
tpcds_q60/duckdb:vortex-file-compressed 30130208 28928018 1.04
tpcds_q61/duckdb:vortex-file-compressed 32859276 32624122 1.01
tpcds_q62/duckdb:vortex-file-compressed 14681116 14850877 0.99
tpcds_q63/duckdb:vortex-file-compressed 22821718 21634064 1.05
tpcds_q64/duckdb:vortex-file-compressed 102679257 98777590 1.04
tpcds_q65/duckdb:vortex-file-compressed 24452286 23579358 1.04
tpcds_q66/duckdb:vortex-file-compressed 31549452 29357928 1.07
tpcds_q67/duckdb:vortex-file-compressed 146903624 138930247 1.06
tpcds_q68/duckdb:vortex-file-compressed 34149236 33309037 1.03
tpcds_q69/duckdb:vortex-file-compressed 45988397 43607839 1.05
tpcds_q70/duckdb:vortex-file-compressed 33919550 32671881 1.04
tpcds_q71/duckdb:vortex-file-compressed 23392158 22654281 1.03
tpcds_q72/duckdb:vortex-file-compressed 157848172 161285987 0.98
tpcds_q73/duckdb:vortex-file-compressed 🚨 30944839 27920049 1.11
tpcds_q74/duckdb:vortex-file-compressed 47414927 45981513 1.03
tpcds_q75/duckdb:vortex-file-compressed 52054473 51462754 1.01
tpcds_q76/duckdb:vortex-file-compressed 🚨 24922407 21136939 1.18
tpcds_q77/duckdb:vortex-file-compressed 26077944 24611856 1.06
tpcds_q78/duckdb:vortex-file-compressed 70154518 67364508 1.04
tpcds_q79/duckdb:vortex-file-compressed 28125047 27429186 1.03
tpcds_q80/duckdb:vortex-file-compressed 51818702 48231300 1.07
tpcds_q81/duckdb:vortex-file-compressed 31076338 30373220 1.02
tpcds_q82/duckdb:vortex-file-compressed 48324710 46726558 1.03
tpcds_q83/duckdb:vortex-file-compressed 30352530 28273812 1.07
tpcds_q84/duckdb:vortex-file-compressed 17753243 17291182 1.03
tpcds_q85/duckdb:vortex-file-compressed 45882266 44314376 1.04
tpcds_q86/duckdb:vortex-file-compressed 17945540 16400601 1.09
tpcds_q87/duckdb:vortex-file-compressed 44865597 43787351 1.02
tpcds_q88/duckdb:vortex-file-compressed 58927084 58931256 1.00
tpcds_q89/duckdb:vortex-file-compressed 23337535 23145727 1.01
tpcds_q90/duckdb:vortex-file-compressed 🚨 12338216 10747531 1.15
tpcds_q91/duckdb:vortex-file-compressed 🚨 25007128 21966854 1.14
tpcds_q92/duckdb:vortex-file-compressed 🚨 19568736 17162218 1.14
tpcds_q93/duckdb:vortex-file-compressed 30113497 27971487 1.08
tpcds_q94/duckdb:vortex-file-compressed 23830656 23668833 1.01
tpcds_q95/duckdb:vortex-file-compressed 127592606 122479765 1.04
tpcds_q96/duckdb:vortex-file-compressed 13990585 12736801 1.10
tpcds_q97/duckdb:vortex-file-compressed 36243473 36956534 0.98
tpcds_q98/duckdb:vortex-file-compressed 20715334 19488557 1.06
tpcds_q99/duckdb:vortex-file-compressed 🚀 19035610 21921320 0.87
duckdb / vortex-compact (1.026x ➖, 0↑ 2↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/duckdb:vortex-compact 24815519 23970023 1.04
tpcds_q02/duckdb:vortex-compact 26367339 25886635 1.02
tpcds_q03/duckdb:vortex-compact 48097986 44785347 1.07
tpcds_q04/duckdb:vortex-compact 113692934 117718150 0.97
tpcds_q05/duckdb:vortex-compact 55321994 52142818 1.06
tpcds_q06/duckdb:vortex-compact 51122994 48263189 1.06
tpcds_q07/duckdb:vortex-compact 61548272 61256828 1.00
tpcds_q08/duckdb:vortex-compact 107647711 106630798 1.01
tpcds_q09/duckdb:vortex-compact 25064869 24768549 1.01
tpcds_q10/duckdb:vortex-compact 83232477 76957541 1.08
tpcds_q11/duckdb:vortex-compact 92671557 89499404 1.04
tpcds_q12/duckdb:vortex-compact 20133885 19121525 1.05
tpcds_q13/duckdb:vortex-compact 86328659 85790331 1.01
tpcds_q14/duckdb:vortex-compact 142488759 140643377 1.01
tpcds_q15/duckdb:vortex-compact 35218697 32403943 1.09
tpcds_q16/duckdb:vortex-compact 31302161 29059055 1.08
tpcds_q17/duckdb:vortex-compact 89438293 87004357 1.03
tpcds_q18/duckdb:vortex-compact 62399357 56882603 1.10
tpcds_q19/duckdb:vortex-compact 67530887 68037763 0.99
tpcds_q20/duckdb:vortex-compact 19751342 18256581 1.08
tpcds_q21/duckdb:vortex-compact 18148596 17595091 1.03
tpcds_q22/duckdb:vortex-compact 77443324 73011461 1.06
tpcds_q23/duckdb:vortex-compact 133424072 130417916 1.02
tpcds_q24/duckdb:vortex-compact 76659136 75761770 1.01
tpcds_q25/duckdb:vortex-compact 62557544 63285426 0.99
tpcds_q26/duckdb:vortex-compact 37416436 35427589 1.06
tpcds_q27/duckdb:vortex-compact 66666189 68217196 0.98
tpcds_q28/duckdb:vortex-compact 23749223 22099279 1.07
tpcds_q29/duckdb:vortex-compact 84727631 88600329 0.96
tpcds_q30/duckdb:vortex-compact 32298131 30184827 1.07
tpcds_q31/duckdb:vortex-compact 51658335 49991979 1.03
tpcds_q32/duckdb:vortex-compact 19644231 19644151 1.00
tpcds_q33/duckdb:vortex-compact 48396765 46771271 1.03
tpcds_q34/duckdb:vortex-compact 56312362 53917919 1.04
tpcds_q35/duckdb:vortex-compact 102071557 101648910 1.00
tpcds_q36/duckdb:vortex-compact 47269170 46915752 1.01
tpcds_q37/duckdb:vortex-compact 23753142 22290364 1.07
tpcds_q38/duckdb:vortex-compact 57400707 54906073 1.05
tpcds_q39/duckdb:vortex-compact 30958248 30327748 1.02
tpcds_q40/duckdb:vortex-compact 🚨 23359243 21220135 1.10
tpcds_q41/duckdb:vortex-compact 14735775 13922608 1.06
tpcds_q42/duckdb:vortex-compact 26017707 24201014 1.08
tpcds_q43/duckdb:vortex-compact 38188331 38275152 1.00
tpcds_q44/duckdb:vortex-compact 36752357 36100342 1.02
tpcds_q45/duckdb:vortex-compact 42319401 39171683 1.08
tpcds_q46/duckdb:vortex-compact 72157047 74462726 0.97
tpcds_q47/duckdb:vortex-compact 75486615 72612115 1.04
tpcds_q48/duckdb:vortex-compact 73403338 76006372 0.97
tpcds_q49/duckdb:vortex-compact 62070204 61229091 1.01
tpcds_q50/duckdb:vortex-compact 57097156 61093475 0.93
tpcds_q51/duckdb:vortex-compact 117518082 114523380 1.03
tpcds_q52/duckdb:vortex-compact 25027255 24530282 1.02
tpcds_q53/duckdb:vortex-compact 46084304 45629163 1.01
tpcds_q54/duckdb:vortex-compact 49864169 48187553 1.03
tpcds_q55/duckdb:vortex-compact 24345503 24486051 0.99
tpcds_q56/duckdb:vortex-compact 47316327 46527954 1.02
tpcds_q57/duckdb:vortex-compact 41727008 40986430 1.02
tpcds_q58/duckdb:vortex-compact 42734934 41683173 1.03
tpcds_q59/duckdb:vortex-compact 57947487 57648092 1.01
tpcds_q60/duckdb:vortex-compact 51151155 49909258 1.02
tpcds_q61/duckdb:vortex-compact 90742934 91562243 0.99
tpcds_q62/duckdb:vortex-compact 🚨 20641057 18266146 1.13
tpcds_q63/duckdb:vortex-compact 45333305 44084362 1.03
tpcds_q64/duckdb:vortex-compact 169820253 166604980 1.02
tpcds_q65/duckdb:vortex-compact 40391452 39979176 1.01
tpcds_q66/duckdb:vortex-compact 37920327 39229453 0.97
tpcds_q67/duckdb:vortex-compact 170727929 166315175 1.03
tpcds_q68/duckdb:vortex-compact 74488307 74880015 0.99
tpcds_q69/duckdb:vortex-compact 81662598 79703242 1.02
tpcds_q70/duckdb:vortex-compact 76244652 72091694 1.06
tpcds_q71/duckdb:vortex-compact 44484616 42393911 1.05
tpcds_q72/duckdb:vortex-compact 179464459 171969846 1.04
tpcds_q73/duckdb:vortex-compact 52542172 54023510 0.97
tpcds_q74/duckdb:vortex-compact 62805698 61200407 1.03
tpcds_q75/duckdb:vortex-compact 71433459 66382807 1.08
tpcds_q76/duckdb:vortex-compact 37171275 35984347 1.03
tpcds_q77/duckdb:vortex-compact 48341867 47087328 1.03
tpcds_q78/duckdb:vortex-compact 88757474 84823450 1.05
tpcds_q79/duckdb:vortex-compact 85334273 89402913 0.95
tpcds_q80/duckdb:vortex-compact 79701498 81111580 0.98
tpcds_q81/duckdb:vortex-compact 33409443 32352039 1.03
tpcds_q82/duckdb:vortex-compact 51082967 49036759 1.04
tpcds_q83/duckdb:vortex-compact 37205932 36778619 1.01
tpcds_q84/duckdb:vortex-compact 21444067 22092633 0.97
tpcds_q85/duckdb:vortex-compact 66052175 63552716 1.04
tpcds_q86/duckdb:vortex-compact 19438865 18979479 1.02
tpcds_q87/duckdb:vortex-compact 58641435 59067104 0.99
tpcds_q88/duckdb:vortex-compact 235567949 233899526 1.01
tpcds_q89/duckdb:vortex-compact 44138104 42562738 1.04
tpcds_q90/duckdb:vortex-compact 17800296 18497060 0.96
tpcds_q91/duckdb:vortex-compact 55590604 56569035 0.98
tpcds_q92/duckdb:vortex-compact 34851959 32809395 1.06
tpcds_q93/duckdb:vortex-compact 37933180 35824304 1.06
tpcds_q94/duckdb:vortex-compact 32421686 32784166 0.99
tpcds_q95/duckdb:vortex-compact 138559838 133495267 1.04
tpcds_q96/duckdb:vortex-compact 39914758 37648250 1.06
tpcds_q97/duckdb:vortex-compact 53003342 49998094 1.06
tpcds_q98/duckdb:vortex-compact 33543471 31712252 1.06
tpcds_q99/duckdb:vortex-compact 24404686 24095696 1.01
duckdb / parquet (1.032x ➖, 0↑ 3↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/duckdb:parquet 30687036 30140945 1.02
tpcds_q02/duckdb:parquet 24408723 24855931 0.98
tpcds_q03/duckdb:parquet 13401677 13455633 1.00
tpcds_q04/duckdb:parquet 173331000 168090395 1.03
tpcds_q05/duckdb:parquet 33707845 31547113 1.07
tpcds_q06/duckdb:parquet 34603133 33774270 1.02
tpcds_q07/duckdb:parquet 24960022 24656546 1.01
tpcds_q08/duckdb:parquet 30343006 29505784 1.03
tpcds_q09/duckdb:parquet 45370966 45052744 1.01
tpcds_q10/duckdb:parquet 38722611 39282403 0.99
tpcds_q11/duckdb:parquet 97038158 89978717 1.08
tpcds_q12/duckdb:parquet 16728933 16241506 1.03
tpcds_q13/duckdb:parquet 36445814 35357745 1.03
tpcds_q14/duckdb:parquet 105136920 106979732 0.98
tpcds_q15/duckdb:parquet 32452442 31055701 1.04
tpcds_q16/duckdb:parquet 24311357 23107174 1.05
tpcds_q17/duckdb:parquet 40958116 38892021 1.05
tpcds_q18/duckdb:parquet 50718488 49140626 1.03
tpcds_q19/duckdb:parquet 33027591 32207038 1.03
tpcds_q20/duckdb:parquet 18067073 17390047 1.04
tpcds_q21/duckdb:parquet 12362937 12289748 1.01
tpcds_q22/duckdb:parquet 72508964 68795246 1.05
tpcds_q23/duckdb:parquet 83856038 82918087 1.01
tpcds_q24/duckdb:parquet 49234630 47454984 1.04
tpcds_q25/duckdb:parquet 37857424 36722101 1.03
tpcds_q26/duckdb:parquet 40951686 39780339 1.03
tpcds_q27/duckdb:parquet 55127784 53760968 1.03
tpcds_q28/duckdb:parquet 44343649 43786916 1.01
tpcds_q29/duckdb:parquet 37764087 37240938 1.01
tpcds_q30/duckdb:parquet 39486689 38190178 1.03
tpcds_q31/duckdb:parquet 28991445 28721217 1.01
tpcds_q32/duckdb:parquet 13561863 13014124 1.04
tpcds_q33/duckdb:parquet 25220525 24576428 1.03
tpcds_q34/duckdb:parquet 24373508 22874855 1.07
tpcds_q35/duckdb:parquet 65010995 62165610 1.05
tpcds_q36/duckdb:parquet 23067284 22313527 1.03
tpcds_q37/duckdb:parquet 15620909 14396128 1.09
tpcds_q38/duckdb:parquet 39131617 36844634 1.06
tpcds_q39/duckdb:parquet 🚨 39596807 33124290 1.20
tpcds_q40/duckdb:parquet 21062896 19748370 1.07
tpcds_q41/duckdb:parquet 9278959 8819872 1.05
tpcds_q42/duckdb:parquet 13424270 13117150 1.02
tpcds_q43/duckdb:parquet 20162281 20325714 0.99
tpcds_q44/duckdb:parquet 27586495 26961999 1.02
tpcds_q45/duckdb:parquet 30189828 28483176 1.06
tpcds_q46/duckdb:parquet 50339021 48803838 1.03
tpcds_q47/duckdb:parquet 52940592 50558397 1.05
tpcds_q48/duckdb:parquet 33781183 32722501 1.03
tpcds_q49/duckdb:parquet 30567661 29001413 1.05
tpcds_q50/duckdb:parquet 27709286 26447399 1.05
tpcds_q51/duckdb:parquet 107075474 106437030 1.01
tpcds_q52/duckdb:parquet 13502167 14592798 0.93
tpcds_q53/duckdb:parquet 17319020 17671328 0.98
tpcds_q54/duckdb:parquet 29694192 29932961 0.99
tpcds_q55/duckdb:parquet 12622435 13299851 0.95
tpcds_q56/duckdb:parquet 25084972 24211123 1.04
tpcds_q57/duckdb:parquet 39513299 38490086 1.03
tpcds_q58/duckdb:parquet 26250179 26070051 1.01
tpcds_q59/duckdb:parquet 37488531 36637376 1.02
tpcds_q60/duckdb:parquet 26241276 25227926 1.04
tpcds_q61/duckdb:parquet 🚨 35749561 32444136 1.10
tpcds_q62/duckdb:parquet 13538347 12753314 1.06
tpcds_q63/duckdb:parquet 16199964 15627849 1.04
tpcds_q64/duckdb:parquet 77060761 79058718 0.97
tpcds_q65/duckdb:parquet 23968134 23652227 1.01
tpcds_q66/duckdb:parquet 30126265 30436951 0.99
tpcds_q67/duckdb:parquet 144083111 138657165 1.04
tpcds_q68/duckdb:parquet 39927520 39743396 1.00
tpcds_q69/duckdb:parquet 40378348 39383203 1.03
tpcds_q70/duckdb:parquet 23462786 22587640 1.04
tpcds_q71/duckdb:parquet 24313422 23612067 1.03
tpcds_q72/duckdb:parquet 167988271 168703318 1.00
tpcds_q73/duckdb:parquet 20575431 20430132 1.01
tpcds_q74/duckdb:parquet 130924694 129066156 1.01
tpcds_q75/duckdb:parquet 60453411 58179388 1.04
tpcds_q76/duckdb:parquet 22638329 22879148 0.99
tpcds_q77/duckdb:parquet 26648390 25495378 1.05
tpcds_q78/duckdb:parquet 80011291 77688906 1.03
tpcds_q79/duckdb:parquet 🚨 34157023 29974632 1.14
tpcds_q80/duckdb:parquet 45826598 44045796 1.04
tpcds_q81/duckdb:parquet 36608386 35503818 1.03
tpcds_q82/duckdb:parquet 18213218 17145816 1.06
tpcds_q83/duckdb:parquet 19663361 18505821 1.06
tpcds_q84/duckdb:parquet 21495762 20594214 1.04
tpcds_q85/duckdb:parquet 43924431 42424530 1.04
tpcds_q86/duckdb:parquet 14542254 13631614 1.07
tpcds_q87/duckdb:parquet 41472164 40271024 1.03
tpcds_q88/duckdb:parquet 54975794 53674832 1.02
tpcds_q89/duckdb:parquet 19154153 19455974 0.98
tpcds_q90/duckdb:parquet 8916623 8662395 1.03
tpcds_q91/duckdb:parquet 27023440 25518349 1.06
tpcds_q92/duckdb:parquet 13816822 13281253 1.04
tpcds_q93/duckdb:parquet 33855201 32173019 1.05
tpcds_q94/duckdb:parquet 18888045 18153038 1.04
tpcds_q95/duckdb:parquet 150483956 137277690 1.10
tpcds_q96/duckdb:parquet 11755875 11133725 1.06
tpcds_q97/duckdb:parquet 39852185 39598022 1.01
tpcds_q98/duckdb:parquet 22662042 21762383 1.04
tpcds_q99/duckdb:parquet 21360872 20379856 1.05
duckdb / duckdb (1.048x ➖, 0↑ 5↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpcds_q01/duckdb:duckdb 23421422 21444818 1.09
tpcds_q02/duckdb:duckdb 20487947 20459815 1.00
tpcds_q03/duckdb:duckdb 11003904 10298594 1.07
tpcds_q04/duckdb:duckdb 189651388 179545891 1.06
tpcds_q05/duckdb:duckdb 21818491 23669637 0.92
tpcds_q06/duckdb:duckdb 29952269 27778440 1.08
tpcds_q07/duckdb:duckdb 42440282 40252860 1.05
tpcds_q08/duckdb:duckdb 122142297 119715699 1.02
tpcds_q09/duckdb:duckdb 21933303 20568959 1.07
tpcds_q10/duckdb:duckdb 29337797 28164005 1.04
tpcds_q11/duckdb:duckdb 98296843 91361576 1.08
tpcds_q12/duckdb:duckdb 13476815 12630726 1.07
tpcds_q13/duckdb:duckdb 27112609 26882866 1.01
tpcds_q14/duckdb:duckdb 97430165 96993098 1.00
tpcds_q15/duckdb:duckdb 26457470 25324525 1.04
tpcds_q16/duckdb:duckdb 20350099 20194933 1.01
tpcds_q17/duckdb:duckdb 26490636 25468192 1.04
tpcds_q18/duckdb:duckdb 50157348 48197808 1.04
tpcds_q19/duckdb:duckdb 20611519 19819545 1.04
tpcds_q20/duckdb:duckdb 14066805 13513714 1.04
tpcds_q21/duckdb:duckdb 8103927 7830848 1.03
tpcds_q22/duckdb:duckdb 63982569 63038896 1.01
tpcds_q23/duckdb:duckdb 80463590 75802424 1.06
tpcds_q24/duckdb:duckdb 26781904 25493502 1.05
tpcds_q25/duckdb:duckdb 19730806 18554767 1.06
tpcds_q26/duckdb:duckdb 30516245 28290624 1.08
tpcds_q27/duckdb:duckdb 43840585 40424751 1.08
tpcds_q28/duckdb:duckdb 26593317 24936956 1.07
tpcds_q29/duckdb:duckdb 🚨 25275527 22808942 1.11
tpcds_q30/duckdb:duckdb 32136438 31156861 1.03
tpcds_q31/duckdb:duckdb 56246685 51184973 1.10
tpcds_q32/duckdb:duckdb 8971365 8284576 1.08
tpcds_q33/duckdb:duckdb 🚨 17212923 15460718 1.11
tpcds_q34/duckdb:duckdb 19990054 18763920 1.07
tpcds_q35/duckdb:duckdb 37879709 37122593 1.02
tpcds_q36/duckdb:duckdb 76811274 70801858 1.08
tpcds_q37/duckdb:duckdb 9672633 8938743 1.08
tpcds_q38/duckdb:duckdb 34719145 32972810 1.05
tpcds_q39/duckdb:duckdb 28661066 27651449 1.04
tpcds_q40/duckdb:duckdb 16040807 14608822 1.10
tpcds_q41/duckdb:duckdb 10870311 10034571 1.08
tpcds_q42/duckdb:duckdb 9695043 10080011 0.96
tpcds_q43/duckdb:duckdb 14490883 13427533 1.08
tpcds_q44/duckdb:duckdb 16280234 15196413 1.07
tpcds_q45/duckdb:duckdb 20221162 19180310 1.05
tpcds_q46/duckdb:duckdb 40887850 38676589 1.06
tpcds_q47/duckdb:duckdb 48916913 46605646 1.05
tpcds_q48/duckdb:duckdb 25916574 25766597 1.01
tpcds_q49/duckdb:duckdb 21655645 20826459 1.04
tpcds_q50/duckdb:duckdb 17080941 16411421 1.04
tpcds_q51/duckdb:duckdb 104637087 101283648 1.03
tpcds_q52/duckdb:duckdb 9623233 10485374 0.92
tpcds_q53/duckdb:duckdb 16661607 15199708 1.10
tpcds_q54/duckdb:duckdb 20069663 18939503 1.06
tpcds_q55/duckdb:duckdb 9709375 10310447 0.94
tpcds_q56/duckdb:duckdb 17331468 16024176 1.08
tpcds_q57/duckdb:duckdb 38057657 36181749 1.05
tpcds_q58/duckdb:duckdb 17628659 16537393 1.07
tpcds_q59/duckdb:duckdb 37805695 36859551 1.03
tpcds_q60/duckdb:duckdb 19240524 18021583 1.07
tpcds_q61/duckdb:duckdb 17400038 15983559 1.09
tpcds_q62/duckdb:duckdb 10631673 9912013 1.07
tpcds_q63/duckdb:duckdb 15270692 14405518 1.06
tpcds_q64/duckdb:duckdb 61116724 58724474 1.04
tpcds_q65/duckdb:duckdb 38867574 36320147 1.07
tpcds_q66/duckdb:duckdb 28853330 26541361 1.09
tpcds_q67/duckdb:duckdb 138683407 133129817 1.04
tpcds_q68/duckdb:duckdb 28185083 26959215 1.05
tpcds_q69/duckdb:duckdb 29470406 28319442 1.04
tpcds_q70/duckdb:duckdb 17498945 16846790 1.04
tpcds_q71/duckdb:duckdb 16661317 16463857 1.01
tpcds_q72/duckdb:duckdb 48045100 45784824 1.05
tpcds_q73/duckdb:duckdb 🚨 14774610 13134176 1.12
tpcds_q74/duckdb:duckdb 149448614 144870148 1.03
tpcds_q75/duckdb:duckdb 48904334 46538190 1.05
tpcds_q76/duckdb:duckdb 15196938 14662259 1.04
tpcds_q77/duckdb:duckdb 🚨 16526806 14956634 1.10
tpcds_q78/duckdb:duckdb 68050204 65602459 1.04
tpcds_q79/duckdb:duckdb 20867471 19771919 1.06
tpcds_q80/duckdb:duckdb 33875370 33359322 1.02
tpcds_q81/duckdb:duckdb 42132460 40382956 1.04
tpcds_q82/duckdb:duckdb 10412352 10058619 1.04
tpcds_q83/duckdb:duckdb 11687544 10847832 1.08
tpcds_q84/duckdb:duckdb 15328001 14808411 1.04
tpcds_q85/duckdb:duckdb 27198660 25688778 1.06
tpcds_q86/duckdb:duckdb 12712109 11939435 1.06
tpcds_q87/duckdb:duckdb 36846577 35445382 1.04
tpcds_q88/duckdb:duckdb 30984292 28669185 1.08
tpcds_q89/duckdb:duckdb 17515343 17218462 1.02
tpcds_q90/duckdb:duckdb 🚨 6849563 6211855 1.10
tpcds_q91/duckdb:duckdb 15520370 14874093 1.04
tpcds_q92/duckdb:duckdb 10247884 9499596 1.08
tpcds_q93/duckdb:duckdb 24317564 23682475 1.03
tpcds_q94/duckdb:duckdb 15219091 14478392 1.05
tpcds_q95/duckdb:duckdb 132810803 129723746 1.02
tpcds_q96/duckdb:duckdb 6203071 6046916 1.03
tpcds_q97/duckdb:duckdb 33526985 31786099 1.05
tpcds_q98/duckdb:duckdb 17900061 18382906 0.97
tpcds_q99/duckdb:duckdb 17499517 16897929 1.04

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb S3 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -1.2%
Engines: DataFusion No clear signal (+1.9%, environment too noisy confidence) · DuckDB No clear signal (-4.3%, low confidence)
Vortex (geomean): 0.971x ➖
Parquet (geomean): 0.984x ➖
Shifts: Parquet (control) -1.6% · Median polish -1.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 (1.068x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 🚨 53221046 33979716 1.57
fineweb_q01/datafusion:vortex-file-compressed 554436247 594573228 0.93
fineweb_q02/datafusion:vortex-file-compressed 555693283 564008441 0.99
fineweb_q03/datafusion:vortex-file-compressed 1160467935 1130426882 1.03
fineweb_q04/datafusion:vortex-file-compressed 1130246990 1156283644 0.98
fineweb_q05/datafusion:vortex-file-compressed 1122035791 1077076119 1.04
fineweb_q06/datafusion:vortex-file-compressed 1347722944 1278116505 1.05
fineweb_q07/datafusion:vortex-file-compressed 1156710898 1077074833 1.07
fineweb_q08/datafusion:vortex-file-compressed 497994207 470088387 1.06
datafusion / vortex-compact (0.939x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 32584626 39237432 0.83
fineweb_q01/datafusion:vortex-compact 438830482 589040971 0.74
fineweb_q02/datafusion:vortex-compact 637628869 671492980 0.95
fineweb_q03/datafusion:vortex-compact 1352027919 1379080409 0.98
fineweb_q04/datafusion:vortex-compact 1625254731 1627903159 1.00
fineweb_q05/datafusion:vortex-compact 1348112041 1476449145 0.91
fineweb_q06/datafusion:vortex-compact 1275624460 1258455070 1.01
fineweb_q07/datafusion:vortex-compact 1175397944 1185644823 0.99
fineweb_q08/datafusion:vortex-compact 420981435 389861745 1.08
datafusion / parquet (0.983x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 972162285 1213420001 0.80
fineweb_q01/datafusion:parquet 1970554634 1722932676 1.14
fineweb_q02/datafusion:parquet 1716081092 1723382600 1.00
fineweb_q03/datafusion:parquet 1815851326 1827385281 0.99
fineweb_q04/datafusion:parquet 1749732716 1724954594 1.01
fineweb_q05/datafusion:parquet 1927075807 1814877181 1.06
fineweb_q06/datafusion:parquet 1709186592 1812535380 0.94
fineweb_q07/datafusion:parquet 1635657781 1808653507 0.90
fineweb_q08/datafusion:parquet 1767665575 1721517826 1.03
duckdb / vortex-file-compressed (0.984x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 75325281 70050497 1.08
fineweb_q01/duckdb:vortex-file-compressed 534237252 519699317 1.03
fineweb_q02/duckdb:vortex-file-compressed 515985722 488716974 1.06
fineweb_q03/duckdb:vortex-file-compressed 1192289686 1218313253 0.98
fineweb_q04/duckdb:vortex-file-compressed 1263358677 1397854615 0.90
fineweb_q05/duckdb:vortex-file-compressed 1226524907 1454108506 0.84
fineweb_q06/duckdb:vortex-file-compressed 1434119135 1376839522 1.04
fineweb_q07/duckdb:vortex-file-compressed 1257722296 1258088735 1.00
fineweb_q08/duckdb:vortex-file-compressed 519814494 544755749 0.95
duckdb / vortex-compact (0.902x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 🚀 53721711 93463487 0.57
fineweb_q01/duckdb:vortex-compact 530046181 544769545 0.97
fineweb_q02/duckdb:vortex-compact 586449050 582293944 1.01
fineweb_q03/duckdb:vortex-compact 1702325482 1816299685 0.94
fineweb_q04/duckdb:vortex-compact 1800804781 1993903335 0.90
fineweb_q05/duckdb:vortex-compact 1508298730 1591771782 0.95
fineweb_q06/duckdb:vortex-compact 1408214870 1574229017 0.89
fineweb_q07/duckdb:vortex-compact 1346550369 1427939914 0.94
fineweb_q08/duckdb:vortex-compact 478367920 459364031 1.04
duckdb / parquet (0.984x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 1067855719 1072316972 1.00
fineweb_q01/duckdb:parquet 1260383962 1304912558 0.97
fineweb_q02/duckdb:parquet 1274836095 1303659376 0.98
fineweb_q03/duckdb:parquet 3548371597 3633285757 0.98
fineweb_q04/duckdb:parquet 1869484769 1822419068 1.03
fineweb_q05/duckdb:parquet 2047112782 2114030408 0.97
fineweb_q06/duckdb:parquet 4077992399 4215084048 0.97
fineweb_q07/duckdb:parquet 2551996861 2583839432 0.99
fineweb_q08/duckdb:parquet 1038801835 1043739846 1.00

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Statistical and Population Genetics 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -5.4%
Engines: DuckDB No clear signal (-5.4%, low confidence)
Vortex (geomean): 0.934x ➖
Parquet (geomean): 0.987x ➖
Shifts: Parquet (control) -1.3% · Median polish -0.7%

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 (0.979x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-file-compressed 11854409 12051907 0.98
statpopgen_q01/duckdb:vortex-file-compressed 🚀 22698108 26910656 0.84
statpopgen_q02/duckdb:vortex-file-compressed 532212309 528678999 1.01
statpopgen_q03/duckdb:vortex-file-compressed 1044821952 1026715028 1.02
statpopgen_q04/duckdb:vortex-file-compressed 1029324966 1034198223 1.00
statpopgen_q05/duckdb:vortex-file-compressed 475421683 443805280 1.07
statpopgen_q06/duckdb:vortex-file-compressed 1493088962 1518111006 0.98
statpopgen_q07/duckdb:vortex-file-compressed 187073534 199456729 0.94
statpopgen_q08/duckdb:vortex-file-compressed 219185235 218672672 1.00
statpopgen_q09/duckdb:vortex-file-compressed 809309894 857609195 0.94
statpopgen_q10/duckdb:vortex-file-compressed 2523774075 2531323065 1.00
duckdb / vortex-compact (0.891x ✅, 4↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-compact 11586672 11621064 1.00
statpopgen_q01/duckdb:vortex-compact 🚀 127684903 213543674 0.60
statpopgen_q02/duckdb:vortex-compact 🚀 482087989 563829898 0.86
statpopgen_q03/duckdb:vortex-compact 1044817191 1135300401 0.92
statpopgen_q04/duckdb:vortex-compact 1051295883 1141727000 0.92
statpopgen_q05/duckdb:vortex-compact 🚀 478121829 594484113 0.80
statpopgen_q06/duckdb:vortex-compact 1467862042 1487544327 0.99
statpopgen_q07/duckdb:vortex-compact 864711143 876567385 0.99
statpopgen_q08/duckdb:vortex-compact 891560773 900424359 0.99
statpopgen_q09/duckdb:vortex-compact 🚀 816941315 939221114 0.87
statpopgen_q10/duckdb:vortex-compact 2525914082 2605034596 0.97
duckdb / parquet (0.987x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
statpopgen_q00/duckdb:parquet 329539753 339209992 0.97
statpopgen_q01/duckdb:parquet 416223341 418073430 1.00
statpopgen_q02/duckdb:parquet 791505977 802926411 0.99
statpopgen_q03/duckdb:parquet 1206465452 1209051211 1.00
statpopgen_q04/duckdb:parquet 1206641246 1214720700 0.99
statpopgen_q05/duckdb:parquet 844392798 844019519 1.00
statpopgen_q06/duckdb:parquet 1452294468 1456435399 1.00
statpopgen_q07/duckdb:parquet 881246692 916402228 0.96
statpopgen_q08/duckdb:parquet 891119052 912022508 0.98
statpopgen_q09/duckdb:parquet 1041644197 1052267763 0.99
statpopgen_q10/duckdb:parquet 2233728211 2263262923 0.99

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench Sorted on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -2.3%
Engines: DataFusion No clear signal (-1.0%, low confidence) · DuckDB No clear signal (-2.8%, low confidence)
Vortex (geomean): 0.986x ➖
Parquet (geomean): 1.002x ➖
Shifts: Parquet (control) +0.2% · Median polish -1.6%

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 (0.993x ➖, 1↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench-sorted_q23/datafusion:vortex-file-compressed 414630711 393368244 1.05
clickbench-sorted_q24/datafusion:vortex-file-compressed 🚨 24845222 20102043 1.24
clickbench-sorted_q26/datafusion:vortex-file-compressed 22484285 23541282 0.96
clickbench-sorted_q36/datafusion:vortex-file-compressed 🚀 60002132 73805692 0.81
clickbench-sorted_q37/datafusion:vortex-file-compressed 44154658 45527077 0.97
clickbench-sorted_q38/datafusion:vortex-file-compressed 42162618 42449512 0.99
clickbench-sorted_q39/datafusion:vortex-file-compressed 111942825 113554113 0.99
clickbench-sorted_q40/datafusion:vortex-file-compressed 21011445 20987674 1.00
clickbench-sorted_q41/datafusion:vortex-file-compressed 19583109 19545141 1.00
clickbench-sorted_q42/datafusion:vortex-file-compressed 14225680 14670712 0.97
datafusion / parquet (1.003x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench-sorted_q23/datafusion:parquet 4742495704 4770244686 0.99
clickbench-sorted_q24/datafusion:parquet 28857388 29563885 0.98
clickbench-sorted_q26/datafusion:parquet 28643224 27643848 1.04
clickbench-sorted_q36/datafusion:parquet 175763732 173416867 1.01
clickbench-sorted_q37/datafusion:parquet 111222431 115883115 0.96
clickbench-sorted_q38/datafusion:parquet 165694763 156341748 1.06
clickbench-sorted_q39/datafusion:parquet 290792322 300026230 0.97
clickbench-sorted_q40/datafusion:parquet 67279791 62909438 1.07
clickbench-sorted_q41/datafusion:parquet 59806124 59229938 1.01
clickbench-sorted_q42/datafusion:parquet 30754655 32311707 0.95
duckdb / vortex-file-compressed (0.978x ➖, 2↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench-sorted_q23/duckdb:vortex-file-compressed 163379458 169279020 0.97
clickbench-sorted_q24/duckdb:vortex-file-compressed 🚀 25960739 29040304 0.89
clickbench-sorted_q26/duckdb:vortex-file-compressed 🚀 37633356 42398383 0.89
clickbench-sorted_q36/duckdb:vortex-file-compressed 59045370 57585381 1.03
clickbench-sorted_q37/duckdb:vortex-file-compressed 🚨 47939177 43379134 1.11
clickbench-sorted_q38/duckdb:vortex-file-compressed 49537550 50687226 0.98
clickbench-sorted_q39/duckdb:vortex-file-compressed 108122909 106655864 1.01
clickbench-sorted_q40/duckdb:vortex-file-compressed 28581661 29272874 0.98
clickbench-sorted_q41/duckdb:vortex-file-compressed 27684655 27505655 1.01
clickbench-sorted_q42/duckdb:vortex-file-compressed 24240163 25530553 0.95
duckdb / parquet (1.001x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench-sorted_q23/duckdb:parquet 206798852 208893164 0.99
clickbench-sorted_q24/duckdb:parquet 29933044 29745651 1.01
clickbench-sorted_q26/duckdb:parquet 25871299 23540880 1.10
clickbench-sorted_q36/duckdb:parquet 109114902 111932188 0.97
clickbench-sorted_q37/duckdb:parquet 93905104 94004367 1.00
clickbench-sorted_q38/duckdb:parquet 94774392 97988873 0.97
clickbench-sorted_q39/duckdb:parquet 177920292 182421530 0.98
clickbench-sorted_q40/duckdb:parquet 42925963 42537307 1.01
clickbench-sorted_q41/duckdb:parquet 41615155 42501744 0.98
clickbench-sorted_q42/duckdb:parquet 30139394 29677208 1.02
duckdb / duckdb (0.967x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench-sorted_q23/duckdb:duckdb 274960519 295293597 0.93
clickbench-sorted_q24/duckdb:duckdb 44925519 46246908 0.97
clickbench-sorted_q26/duckdb:duckdb 41920141 43288408 0.97
clickbench-sorted_q36/duckdb:duckdb 94896892 93956644 1.01
clickbench-sorted_q37/duckdb:duckdb 80112587 86213982 0.93
clickbench-sorted_q38/duckdb:duckdb 63502260 67578155 0.94
clickbench-sorted_q39/duckdb:duckdb 119732571 124454519 0.96
clickbench-sorted_q40/duckdb:duckdb 45085283 45766059 0.99
clickbench-sorted_q41/duckdb:duckdb 42478013 43019904 0.99
clickbench-sorted_q42/duckdb:duckdb 35383361 35673119 0.99

File Size Changes (201 files changed, -0.0% overall, 99↑ 102↓)
File Scale Format Base HEAD Change %
hits_067.vortex 1.0 vortex-compact 97.56 MB 100.18 MB +2.61 MB +2.7%
hits_097.vortex 1.0 vortex-file-compressed 193.00 MB 196.75 MB +3.75 MB +1.9%
hits_006.vortex 1.0 vortex-compact 94.04 MB 95.78 MB +1.75 MB +1.9%
hits_013.vortex 1.0 vortex-compact 123.96 MB 125.83 MB +1.87 MB +1.5%
hits_086.vortex 1.0 vortex-file-compressed 192.21 MB 194.74 MB +2.53 MB +1.3%
hits_001.vortex 1.0 vortex-compact 139.02 MB 140.50 MB +1.48 MB +1.1%
hits_075.vortex 1.0 vortex-compact 137.83 MB 139.16 MB +1.32 MB +1.0%
hits_039.vortex 1.0 vortex-compact 124.25 MB 125.41 MB +1.16 MB +0.9%
hits_049.vortex 1.0 vortex-compact 139.30 MB 140.55 MB +1.24 MB +0.9%
hits_001.vortex 1.0 vortex-file-compressed 191.82 MB 193.50 MB +1.68 MB +0.9%
hits_061.vortex 1.0 vortex-file-compressed 159.43 MB 160.80 MB +1.37 MB +0.9%
hits_002.vortex 1.0 vortex-compact 124.52 MB 125.57 MB +1.05 MB +0.8%
hits_097.vortex 1.0 vortex-compact 140.17 MB 141.31 MB +1.14 MB +0.8%
hits_074.vortex 1.0 vortex-file-compressed 197.90 MB 199.30 MB +1.40 MB +0.7%
hits_055.vortex 1.0 vortex-file-compressed 198.33 MB 199.57 MB +1.25 MB +0.6%
hits_004.vortex 1.0 vortex-compact 98.48 MB 99.05 MB +581.05 KB +0.6%
hits_055.vortex 1.0 vortex-compact 152.69 MB 153.52 MB +848.88 KB +0.5%
hits_082.vortex 1.0 vortex-compact 105.81 MB 106.33 MB +531.37 KB +0.5%
hits_029.vortex 1.0 vortex-compact 152.79 MB 153.52 MB +749.10 KB +0.5%
hits_019.vortex 1.0 vortex-compact 106.18 MB 106.68 MB +517.83 KB +0.5%
hits_040.vortex 1.0 vortex-file-compressed 143.78 MB 144.39 MB +633.74 KB +0.4%
hits_017.vortex 1.0 vortex-compact 111.77 MB 112.24 MB +485.55 KB +0.4%
hits_033.vortex 1.0 vortex-file-compressed 199.21 MB 200.04 MB +850.82 KB +0.4%
hits_054.vortex 1.0 vortex-compact 111.78 MB 112.19 MB +425.95 KB +0.4%
hits_050.vortex 1.0 vortex-compact 125.19 MB 125.64 MB +460.42 KB +0.4%
hits_077.vortex 1.0 vortex-file-compressed 172.49 MB 173.03 MB +556.64 KB +0.3%
hits_079.vortex 1.0 vortex-compact 128.08 MB 128.48 MB +406.74 KB +0.3%
hits_082.vortex 1.0 vortex-file-compressed 139.98 MB 140.41 MB +436.57 KB +0.3%
hits_014.vortex 1.0 vortex-file-compressed 172.12 MB 172.63 MB +525.98 KB +0.3%
hits_005.vortex 1.0 vortex-file-compressed 167.47 MB 167.91 MB +458.36 KB +0.3%
hits_069.vortex 1.0 vortex-file-compressed 142.27 MB 142.64 MB +379.28 KB +0.3%
hits_020.vortex 1.0 vortex-file-compressed 160.15 MB 160.56 MB +415.50 KB +0.3%
hits_011.vortex 1.0 vortex-compact 152.75 MB 153.08 MB +341.99 KB +0.2%
hits_098.vortex 1.0 vortex-file-compressed 137.48 MB 137.77 MB +299.05 KB +0.2%
hits_076.vortex 1.0 vortex-compact 125.48 MB 125.71 MB +238.44 KB +0.2%
hits_003.vortex 1.0 vortex-file-compressed 136.49 MB 136.75 MB +257.09 KB +0.2%
hits_088.vortex 1.0 vortex-compact 134.15 MB 134.38 MB +235.73 KB +0.2%
hits_091.vortex 1.0 vortex-file-compressed 147.52 MB 147.75 MB +234.67 KB +0.2%
hits_092.vortex 1.0 vortex-compact 153.23 MB 153.47 MB +237.41 KB +0.2%
hits_096.vortex 1.0 vortex-file-compressed 199.49 MB 199.78 MB +302.41 KB +0.1%
hits_038.vortex 1.0 vortex-file-compressed 189.97 MB 190.24 MB +270.08 KB +0.1%
hits_045.vortex 1.0 vortex-file-compressed 140.96 MB 141.14 MB +185.45 KB +0.1%
hits_018.vortex 1.0 vortex-file-compressed 199.52 MB 199.77 MB +251.45 KB +0.1%
hits_071.vortex 1.0 vortex-compact 105.60 MB 105.73 MB +131.27 KB +0.1%
hits_049.vortex 1.0 vortex-file-compressed 191.53 MB 191.76 MB +235.24 KB +0.1%
hits_033.vortex 1.0 vortex-compact 153.44 MB 153.62 MB +184.01 KB +0.1%
hits_067.vortex 1.0 vortex-file-compressed 131.68 MB 131.83 MB +153.72 KB +0.1%
hits_031.vortex 1.0 vortex-file-compressed 159.77 MB 159.94 MB +178.66 KB +0.1%
hits_065.vortex 1.0 vortex-compact 125.91 MB 126.05 MB +138.26 KB +0.1%
hits_066.vortex 1.0 vortex-compact 117.40 MB 117.52 MB +127.97 KB +0.1%
hits_046.vortex 1.0 vortex-compact 74.86 MB 74.93 MB +81.16 KB +0.1%
hits_064.vortex 1.0 vortex-file-compressed 190.94 MB 191.13 MB +187.54 KB +0.1%
hits_039.vortex 1.0 vortex-file-compressed 161.03 MB 161.18 MB +156.24 KB +0.1%
hits_095.vortex 1.0 vortex-file-compressed 154.34 MB 154.47 MB +129.06 KB +0.1%
hits_007.vortex 1.0 vortex-file-compressed 200.18 MB 200.34 MB +161.99 KB +0.1%
hits_063.vortex 1.0 vortex-file-compressed 131.79 MB 131.89 MB +103.70 KB +0.1%
hits_029.vortex 1.0 vortex-file-compressed 200.02 MB 200.17 MB +149.78 KB +0.1%
hits_023.vortex 1.0 vortex-file-compressed 195.28 MB 195.42 MB +142.56 KB +0.1%
hits_007.vortex 1.0 vortex-compact 153.60 MB 153.71 MB +111.33 KB +0.1%
hits_025.vortex 1.0 vortex-file-compressed 171.93 MB 172.04 MB +116.07 KB +0.1%
hits_065.vortex 1.0 vortex-file-compressed 161.29 MB 161.39 MB +104.43 KB +0.1%
hits_057.vortex 1.0 vortex-file-compressed 160.03 MB 160.13 MB +102.87 KB +0.1%
hits_042.vortex 1.0 vortex-compact 136.23 MB 136.32 MB +84.09 KB +0.1%
hits_015.vortex 1.0 vortex-file-compressed 131.02 MB 131.10 MB +80.05 KB +0.1%
hits_085.vortex 1.0 vortex-file-compressed 199.65 MB 199.77 MB +120.32 KB +0.1%
hits_036.vortex 1.0 vortex-compact 133.31 MB 133.39 MB +80.25 KB +0.1%
hits_009.vortex 1.0 vortex-file-compressed 101.26 MB 101.32 MB +60.62 KB +0.1%
hits_036.vortex 1.0 vortex-file-compressed 171.33 MB 171.43 MB +98.78 KB +0.1%
hits_030.vortex 1.0 vortex-compact 98.06 MB 98.11 MB +50.00 KB +0.0%
hits_072.vortex 1.0 vortex-compact 75.60 MB 75.63 MB +35.62 KB +0.0%
hits_010.vortex 1.0 vortex-compact 123.44 MB 123.50 MB +57.43 KB +0.0%
hits_083.vortex 1.0 vortex-compact 110.05 MB 110.09 MB +46.13 KB +0.0%
hits_022.vortex 1.0 vortex-compact 153.01 MB 153.08 MB +63.35 KB +0.0%
hits_074.vortex 1.0 vortex-compact 152.97 MB 153.02 MB +56.89 KB +0.0%
hits_023.vortex 1.0 vortex-compact 142.64 MB 142.69 MB +48.88 KB +0.0%
hits_027.vortex 1.0 vortex-compact 139.20 MB 139.24 MB +42.55 KB +0.0%
hits_078.vortex 1.0 vortex-file-compressed 130.96 MB 131.00 MB +37.97 KB +0.0%
hits_056.vortex 1.0 vortex-compact 101.39 MB 101.41 MB +28.84 KB +0.0%
hits_081.vortex 1.0 vortex-file-compressed 199.92 MB 199.97 MB +51.07 KB +0.0%
hits_087.vortex 1.0 vortex-file-compressed 161.06 MB 161.10 MB +31.74 KB +0.0%
hits_035.vortex 1.0 vortex-file-compressed 102.93 MB 102.95 MB +20.06 KB +0.0%
hits_048.vortex 1.0 vortex-file-compressed 199.59 MB 199.63 MB +36.41 KB +0.0%
hits_099.vortex 1.0 vortex-file-compressed 171.36 MB 171.39 MB +30.96 KB +0.0%
hits_099.vortex 1.0 vortex-compact 133.18 MB 133.20 MB +22.39 KB +0.0%
hits_017.vortex 1.0 vortex-file-compressed 146.86 MB 146.88 MB +22.40 KB +0.0%
hits_009.vortex 1.0 vortex-compact 75.22 MB 75.23 MB +9.29 KB +0.0%
hits_021.vortex 1.0 vortex-compact 110.63 MB 110.64 MB +12.77 KB +0.0%
hits_094.vortex 1.0 vortex-compact 110.86 MB 110.87 MB +12.25 KB +0.0%
hits_003.vortex 1.0 vortex-compact 104.60 MB 104.61 MB +10.62 KB +0.0%
hits_070.vortex 1.0 vortex-file-compressed 200.07 MB 200.08 MB +19.76 KB +0.0%
hits_043.vortex 1.0 vortex-file-compressed 126.45 MB 126.46 MB +11.59 KB +0.0%
hits_075.vortex 1.0 vortex-file-compressed 189.51 MB 189.53 MB +16.24 KB +0.0%
hits_051.vortex 1.0 vortex-file-compressed 172.48 MB 172.49 MB +12.69 KB +0.0%
hits_080.vortex 1.0 vortex-file-compressed 126.88 MB 126.89 MB +8.73 KB +0.0%
hits_012.vortex 1.0 vortex-compact 140.07 MB 140.08 MB +9.09 KB +0.0%
hits_095.vortex 1.0 vortex-compact 110.62 MB 110.63 MB +4.70 KB +0.0%
hits_012.vortex 1.0 vortex-file-compressed 190.91 MB 190.91 MB +5.20 KB +0.0%
hits_084.vortex 1.0 vortex-compact 110.68 MB 110.68 MB +1.38 KB +0.0%
hits_035.vortex 1.0 vortex-compact 75.93 MB 75.93 MB +256 B +0.0%
hits_032.vortex 1.0 vortex-compact 110.62 MB 110.62 MB 776 B -0.0%
hits_030.vortex 1.0 vortex-file-compressed 131.92 MB 131.92 MB 1.42 KB -0.0%
hits_096.vortex 1.0 vortex-compact 153.38 MB 153.38 MB 1.97 KB -0.0%
hits_063.vortex 1.0 vortex-compact 98.48 MB 98.48 MB 1.98 KB -0.0%
hits_057.vortex 1.0 vortex-compact 111.84 MB 111.83 MB 3.80 KB -0.0%
hits_087.vortex 1.0 vortex-compact 125.72 MB 125.71 MB 11.66 KB -0.0%
hits_068.vortex 1.0 vortex-file-compressed 161.04 MB 161.03 MB 15.23 KB -0.0%
hits_045.vortex 1.0 vortex-compact 106.08 MB 106.07 MB 11.86 KB -0.0%
hits_076.vortex 1.0 vortex-file-compressed 160.98 MB 160.96 MB 18.34 KB -0.0%
hits_038.vortex 1.0 vortex-compact 138.30 MB 138.28 MB 17.60 KB -0.0%
hits_011.vortex 1.0 vortex-file-compressed 199.23 MB 199.20 MB 35.09 KB -0.0%
hits_068.vortex 1.0 vortex-compact 112.54 MB 112.52 MB 25.42 KB -0.0%
hits_050.vortex 1.0 vortex-file-compressed 161.12 MB 161.09 MB 36.69 KB -0.0%
hits_090.vortex 1.0 vortex-compact 141.27 MB 141.24 MB 33.08 KB -0.0%
hits_022.vortex 1.0 vortex-file-compressed 199.15 MB 199.10 MB 49.73 KB -0.0%
hits_006.vortex 1.0 vortex-file-compressed 126.41 MB 126.38 MB 34.30 KB -0.0%
hits_052.vortex 1.0 vortex-file-compressed 131.01 MB 130.98 MB 36.45 KB -0.0%
hits_069.vortex 1.0 vortex-compact 99.88 MB 99.85 MB 30.63 KB -0.0%
hits_059.vortex 1.0 vortex-compact 152.85 MB 152.79 MB 53.62 KB -0.0%
hits_024.vortex 1.0 vortex-file-compressed 160.65 MB 160.59 MB 65.27 KB -0.0%
hits_019.vortex 1.0 vortex-file-compressed 140.98 MB 140.92 MB 60.12 KB -0.0%
hits_089.vortex 1.0 vortex-compact 99.21 MB 99.17 MB 43.91 KB -0.0%
hits_014.vortex 1.0 vortex-compact 133.93 MB 133.86 MB 69.93 KB -0.1%
hits_028.vortex 1.0 vortex-file-compressed 151.99 MB 151.91 MB 81.89 KB -0.1%
hits_010.vortex 1.0 vortex-file-compressed 169.14 MB 169.05 MB 93.00 KB -0.1%
hits_083.vortex 1.0 vortex-file-compressed 157.24 MB 157.15 MB 86.80 KB -0.1%
hits_058.vortex 1.0 vortex-file-compressed 155.22 MB 155.13 MB 87.95 KB -0.1%
hits_016.vortex 1.0 vortex-file-compressed 180.35 MB 180.24 MB 107.20 KB -0.1%
hits_058.vortex 1.0 vortex-compact 111.08 MB 111.01 MB 67.11 KB -0.1%
hits_026.vortex 1.0 vortex-file-compressed 131.37 MB 131.28 MB 88.70 KB -0.1%
hits_073.vortex 1.0 vortex-file-compressed 172.73 MB 172.61 MB 127.34 KB -0.1%
hits_054.vortex 1.0 vortex-file-compressed 147.17 MB 147.06 MB 110.10 KB -0.1%
hits_013.vortex 1.0 vortex-file-compressed 161.38 MB 161.26 MB 120.84 KB -0.1%
hits_032.vortex 1.0 vortex-file-compressed 154.74 MB 154.62 MB 118.23 KB -0.1%
hits_046.vortex 1.0 vortex-file-compressed 101.33 MB 101.25 MB 82.17 KB -0.1%
hits_079.vortex 1.0 vortex-file-compressed 181.10 MB 180.96 MB 151.46 KB -0.1%
hits_072.vortex 1.0 vortex-file-compressed 102.39 MB 102.31 MB 87.78 KB -0.1%
hits_062.vortex 1.0 vortex-file-compressed 170.96 MB 170.80 MB 159.66 KB -0.1%
hits_051.vortex 1.0 vortex-compact 134.00 MB 133.88 MB 126.34 KB -0.1%
hits_034.vortex 1.0 vortex-file-compressed 182.05 MB 181.88 MB 173.17 KB -0.1%
hits_053.vortex 1.0 vortex-compact 138.56 MB 138.43 MB 133.45 KB -0.1%
hits_008.vortex 1.0 vortex-compact 106.24 MB 106.14 MB 102.84 KB -0.1%
hits_041.vortex 1.0 vortex-file-compressed 131.29 MB 131.16 MB 128.02 KB -0.1%
hits_085.vortex 1.0 vortex-compact 153.59 MB 153.44 MB 154.69 KB -0.1%
hits_044.vortex 1.0 vortex-compact 153.82 MB 153.66 MB 160.54 KB -0.1%
hits_037.vortex 1.0 vortex-file-compressed 177.20 MB 177.01 MB 187.81 KB -0.1%
hits_073.vortex 1.0 vortex-compact 134.36 MB 134.21 MB 161.51 KB -0.1%
hits_093.vortex 1.0 vortex-file-compressed 131.89 MB 131.73 MB 159.45 KB -0.1%
hits_025.vortex 1.0 vortex-compact 133.48 MB 133.32 MB 161.84 KB -0.1%
hits_042.vortex 1.0 vortex-file-compressed 202.35 MB 202.09 MB 267.52 KB -0.1%
hits_078.vortex 1.0 vortex-compact 97.18 MB 97.05 MB 133.69 KB -0.1%
hits_034.vortex 1.0 vortex-compact 133.50 MB 133.32 MB 191.35 KB -0.1%
hits_037.vortex 1.0 vortex-compact 132.73 MB 132.52 MB 216.10 KB -0.2%
hits_028.vortex 1.0 vortex-compact 115.89 MB 115.71 MB 188.71 KB -0.2%
hits_004.vortex 1.0 vortex-file-compressed 131.61 MB 131.38 MB 233.90 KB -0.2%
hits_070.vortex 1.0 vortex-compact 153.71 MB 153.44 MB 274.50 KB -0.2%
hits_016.vortex 1.0 vortex-compact 127.63 MB 127.40 MB 230.23 KB -0.2%
hits_088.vortex 1.0 vortex-file-compressed 172.59 MB 172.29 MB 311.35 KB -0.2%
hits_084.vortex 1.0 vortex-file-compressed 154.84 MB 154.56 MB 286.95 KB -0.2%
hits_092.vortex 1.0 vortex-file-compressed 199.60 MB 199.24 MB 371.44 KB -0.2%
hits_021.vortex 1.0 vortex-file-compressed 154.59 MB 154.28 MB 322.70 KB -0.2%
hits_089.vortex 1.0 vortex-file-compressed 131.72 MB 131.42 MB 311.16 KB -0.2%
hits_062.vortex 1.0 vortex-compact 132.85 MB 132.55 MB 314.86 KB -0.2%
hits_053.vortex 1.0 vortex-file-compressed 190.38 MB 189.91 MB 484.56 KB -0.2%
hits_080.vortex 1.0 vortex-compact 94.80 MB 94.55 MB 260.28 KB -0.3%
hits_047.vortex 1.0 vortex-file-compressed 155.01 MB 154.52 MB 500.10 KB -0.3%
hits_047.vortex 1.0 vortex-compact 110.85 MB 110.49 MB 365.28 KB -0.3%
hits_077.vortex 1.0 vortex-compact 134.63 MB 134.20 MB 446.88 KB -0.3%
hits_026.vortex 1.0 vortex-compact 99.57 MB 99.22 MB 361.55 KB -0.4%
hits_000.vortex 1.0 vortex-file-compressed 132.08 MB 131.60 MB 486.37 KB -0.4%
hits_056.vortex 1.0 vortex-file-compressed 136.31 MB 135.81 MB 515.41 KB -0.4%
hits_031.vortex 1.0 vortex-compact 111.62 MB 111.20 MB 434.35 KB -0.4%
hits_052.vortex 1.0 vortex-compact 98.09 MB 97.68 MB 421.74 KB -0.4%
hits_040.vortex 1.0 vortex-compact 110.48 MB 110.01 MB 481.34 KB -0.4%
hits_008.vortex 1.0 vortex-file-compressed 140.68 MB 140.07 MB 622.47 KB -0.4%
hits_094.vortex 1.0 vortex-file-compressed 159.14 MB 158.41 MB 748.80 KB -0.5%
hits_060.vortex 1.0 vortex-compact 141.83 MB 141.16 MB 680.63 KB -0.5%
hits_005.vortex 1.0 vortex-compact 116.43 MB 115.87 MB 572.29 KB -0.5%
hits_015.vortex 1.0 vortex-compact 98.46 MB 97.96 MB 510.55 KB -0.5%
hits_018.vortex 1.0 vortex-compact 153.63 MB 152.74 MB 907.27 KB -0.6%
hits_020.vortex 1.0 vortex-compact 112.31 MB 111.66 MB 670.85 KB -0.6%
hits_048.vortex 1.0 vortex-compact 153.37 MB 152.47 MB 916.91 KB -0.6%
hits_090.vortex 1.0 vortex-file-compressed 193.79 MB 192.64 MB 1.15 MB -0.6%
hits_071.vortex 1.0 vortex-file-compressed 140.94 MB 140.01 MB 945.51 KB -0.7%
hits_044.vortex 1.0 vortex-file-compressed 200.23 MB 198.86 MB 1.37 MB -0.7%
hits_059.vortex 1.0 vortex-file-compressed 199.27 MB 197.88 MB 1.39 MB -0.7%
hits_081.vortex 1.0 vortex-compact 153.89 MB 152.82 MB 1.07 MB -0.7%
hits_091.vortex 1.0 vortex-compact 112.41 MB 111.61 MB 819.52 KB -0.7%
hits_027.vortex 1.0 vortex-file-compressed 191.63 MB 190.20 MB 1.44 MB -0.8%
hits_002.vortex 1.0 vortex-file-compressed 161.23 MB 159.96 MB 1.27 MB -0.8%
hits_093.vortex 1.0 vortex-compact 99.08 MB 98.27 MB 833.56 KB -0.8%
hits_086.vortex 1.0 vortex-compact 140.86 MB 139.67 MB 1.19 MB -0.8%
hits_024.vortex 1.0 vortex-compact 125.05 MB 123.81 MB 1.24 MB -1.0%
hits_064.vortex 1.0 vortex-compact 140.21 MB 138.80 MB 1.41 MB -1.0%
hits_060.vortex 1.0 vortex-file-compressed 195.40 MB 193.40 MB 2.00 MB -1.0%
hits_061.vortex 1.0 vortex-compact 125.38 MB 123.94 MB 1.44 MB -1.2%
hits_066.vortex 1.0 vortex-file-compressed 165.00 MB 163.04 MB 1.96 MB -1.2%
hits_098.vortex 1.0 vortex-compact 104.15 MB 102.89 MB 1.26 MB -1.2%
hits_041.vortex 1.0 vortex-compact 98.40 MB 97.14 MB 1.26 MB -1.3%
hits_043.vortex 1.0 vortex-compact 96.41 MB 94.30 MB 2.12 MB -2.2%
hits_000.vortex 1.0 vortex-compact 100.02 MB 97.75 MB 2.27 MB -2.3%
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%

Totals:

  • vortex-compact: 11.94 GB → 11.93 GB (-0.0%)
  • vortex-file-compressed: 15.97 GB → 15.97 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +3.5%
Engines: DataFusion No clear signal (+5.8%, low confidence) · DuckDB No clear signal (+1.3%, low confidence)
Vortex (geomean): 1.028x ➖
Parquet (geomean): 0.984x ➖
Shifts: Parquet (control) -1.6% · Median polish +2.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 (1.042x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 455308965 453320028 1.00
tpch_q02/datafusion:vortex-file-compressed 109182757 102894619 1.06
tpch_q03/datafusion:vortex-file-compressed 203813496 196923280 1.03
tpch_q04/datafusion:vortex-file-compressed 98413056 96901527 1.02
tpch_q05/datafusion:vortex-file-compressed 349285926 332468559 1.05
tpch_q06/datafusion:vortex-file-compressed 40030065 39013505 1.03
tpch_q07/datafusion:vortex-file-compressed 472392154 449702661 1.05
tpch_q08/datafusion:vortex-file-compressed 357329917 339222254 1.05
tpch_q09/datafusion:vortex-file-compressed 620679617 587791614 1.06
tpch_q10/datafusion:vortex-file-compressed 228875056 225244186 1.02
tpch_q11/datafusion:vortex-file-compressed 80740751 76644796 1.05
tpch_q12/datafusion:vortex-file-compressed 114510062 112859451 1.01
tpch_q13/datafusion:vortex-file-compressed 202600254 195654658 1.04
tpch_q14/datafusion:vortex-file-compressed 52358774 51484964 1.02
tpch_q15/datafusion:vortex-file-compressed 104578404 99219011 1.05
tpch_q16/datafusion:vortex-file-compressed 78625930 75520323 1.04
tpch_q17/datafusion:vortex-file-compressed 613721245 586888768 1.05
tpch_q18/datafusion:vortex-file-compressed 882106865 829716530 1.06
tpch_q19/datafusion:vortex-file-compressed 🚨 82043851 73945800 1.11
tpch_q20/datafusion:vortex-file-compressed 165009830 157935051 1.04
tpch_q21/datafusion:vortex-file-compressed 621666160 592282598 1.05
tpch_q22/datafusion:vortex-file-compressed 55741502 53945721 1.03
datafusion / vortex-compact (1.028x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 522960463 504689263 1.04
tpch_q02/datafusion:vortex-compact 111721728 104970523 1.06
tpch_q03/datafusion:vortex-compact 220133599 215684289 1.02
tpch_q04/datafusion:vortex-compact 129176329 130159029 0.99
tpch_q05/datafusion:vortex-compact 371863790 363736987 1.02
tpch_q06/datafusion:vortex-compact 63422376 63310194 1.00
tpch_q07/datafusion:vortex-compact 503881917 489731832 1.03
tpch_q08/datafusion:vortex-compact 369713469 365971500 1.01
tpch_q09/datafusion:vortex-compact 626449553 614817944 1.02
tpch_q10/datafusion:vortex-compact 287214294 277570998 1.03
tpch_q11/datafusion:vortex-compact 82374390 79283467 1.04
tpch_q12/datafusion:vortex-compact 178189231 176863234 1.01
tpch_q13/datafusion:vortex-compact 250775192 244908523 1.02
tpch_q14/datafusion:vortex-compact 70536496 69112470 1.02
tpch_q15/datafusion:vortex-compact 158390837 154552724 1.02
tpch_q16/datafusion:vortex-compact 84643667 80674181 1.05
tpch_q17/datafusion:vortex-compact 608128337 580808210 1.05
tpch_q18/datafusion:vortex-compact 893544999 877665106 1.02
tpch_q19/datafusion:vortex-compact 212166595 206474571 1.03
tpch_q20/datafusion:vortex-compact 187604816 181165827 1.04
tpch_q21/datafusion:vortex-compact 696586292 682084003 1.02
tpch_q22/datafusion:vortex-compact 62965023 58387235 1.08
datafusion / parquet (0.963x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 503787318 551648260 0.91
tpch_q02/datafusion:parquet 185600695 185469319 1.00
tpch_q03/datafusion:parquet 273533636 296162830 0.92
tpch_q04/datafusion:parquet 126899237 130385589 0.97
tpch_q05/datafusion:parquet 416237747 448224199 0.93
tpch_q06/datafusion:parquet 138771824 144673934 0.96
tpch_q07/datafusion:parquet 586996157 628911934 0.93
tpch_q08/datafusion:parquet 473747563 497650708 0.95
tpch_q09/datafusion:parquet 767290910 794222980 0.97
tpch_q10/datafusion:parquet 609324800 624096034 0.98
tpch_q11/datafusion:parquet 127087672 135779051 0.94
tpch_q12/datafusion:parquet 215587407 226165278 0.95
tpch_q13/datafusion:parquet 357566564 367829771 0.97
tpch_q14/datafusion:parquet 156793517 163843293 0.96
tpch_q15/datafusion:parquet 273655402 292059581 0.94
tpch_q16/datafusion:parquet 124240024 134843647 0.92
tpch_q17/datafusion:parquet 695144662 744450937 0.93
tpch_q18/datafusion:parquet 912226279 919217098 0.99
tpch_q19/datafusion:parquet 292243808 287322841 1.02
tpch_q20/datafusion:parquet 307044790 302833342 1.01
tpch_q21/datafusion:parquet 688982306 670862532 1.03
tpch_q22/datafusion:parquet 207051233 205906518 1.01
datafusion / arrow (0.986x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:arrow 729923752 775703462 0.94
tpch_q02/datafusion:arrow 120190306 127908229 0.94
tpch_q03/datafusion:arrow 543508598 574905551 0.95
tpch_q04/datafusion:arrow 394122970 419395980 0.94
tpch_q05/datafusion:arrow 792136532 828607835 0.96
tpch_q06/datafusion:arrow 351566655 368255002 0.95
tpch_q07/datafusion:arrow 1244234478 1320071636 0.94
tpch_q08/datafusion:arrow 1002771332 1032064586 0.97
tpch_q09/datafusion:arrow 1151529074 1152886438 1.00
tpch_q10/datafusion:arrow 698852037 696557973 1.00
tpch_q11/datafusion:arrow 98263232 94375614 1.04
tpch_q12/datafusion:arrow 1374788011 1401005723 0.98
tpch_q13/datafusion:arrow 490824990 494079750 0.99
tpch_q14/datafusion:arrow 401163629 371246987 1.08
tpch_q15/datafusion:arrow 803277262 769751512 1.04
tpch_q16/datafusion:arrow 83779437 82974111 1.01
tpch_q17/datafusion:arrow 1042712115 1007799450 1.03
tpch_q18/datafusion:arrow 2005617296 1899301961 1.06
tpch_q19/datafusion:arrow 590755861 575493279 1.03
tpch_q20/datafusion:arrow 548784725 543798418 1.01
tpch_q21/datafusion:arrow 3262988286 3386539245 0.96
tpch_q22/datafusion:arrow 🚀 85133367 97258317 0.88
duckdb / vortex-file-compressed (1.027x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 171231401 169768178 1.01
tpch_q02/duckdb:vortex-file-compressed 53581280 53511703 1.00
tpch_q03/duckdb:vortex-file-compressed 124406105 119802609 1.04
tpch_q04/duckdb:vortex-file-compressed 158543935 153905594 1.03
tpch_q05/duckdb:vortex-file-compressed 141555925 135693198 1.04
tpch_q06/duckdb:vortex-file-compressed 34916090 34674930 1.01
tpch_q07/duckdb:vortex-file-compressed 133102922 130857913 1.02
tpch_q08/duckdb:vortex-file-compressed 178229335 168688961 1.06
tpch_q09/duckdb:vortex-file-compressed 402130294 391668901 1.03
tpch_q10/duckdb:vortex-file-compressed 197370420 190793103 1.03
tpch_q11/duckdb:vortex-file-compressed 31942100 30570554 1.04
tpch_q12/duckdb:vortex-file-compressed 108504879 106709674 1.02
tpch_q13/duckdb:vortex-file-compressed 275704674 268111975 1.03
tpch_q14/duckdb:vortex-file-compressed 54894959 53763638 1.02
tpch_q15/duckdb:vortex-file-compressed 89726920 89091988 1.01
tpch_q16/duckdb:vortex-file-compressed 78881904 76685464 1.03
tpch_q17/duckdb:vortex-file-compressed 89508278 88750109 1.01
tpch_q18/duckdb:vortex-file-compressed 294529749 287915214 1.02
tpch_q19/duckdb:vortex-file-compressed 76754014 73849271 1.04
tpch_q20/duckdb:vortex-file-compressed 142930184 139069117 1.03
tpch_q21/duckdb:vortex-file-compressed 500208732 476220474 1.05
tpch_q22/duckdb:vortex-file-compressed 64838071 63033465 1.03
duckdb / vortex-compact (1.017x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 272281305 272127910 1.00
tpch_q02/duckdb:vortex-compact 61958082 61741581 1.00
tpch_q03/duckdb:vortex-compact 159646100 156383121 1.02
tpch_q04/duckdb:vortex-compact 215249727 213033076 1.01
tpch_q05/duckdb:vortex-compact 183694021 180148814 1.02
tpch_q06/duckdb:vortex-compact 58946300 58299127 1.01
tpch_q07/duckdb:vortex-compact 214722933 213438772 1.01
tpch_q08/duckdb:vortex-compact 222564011 219468207 1.01
tpch_q09/duckdb:vortex-compact 469978107 464141308 1.01
tpch_q10/duckdb:vortex-compact 261553356 257724283 1.01
tpch_q11/duckdb:vortex-compact 39202796 38115848 1.03
tpch_q12/duckdb:vortex-compact 197431405 192901894 1.02
tpch_q13/duckdb:vortex-compact 329361025 322607323 1.02
tpch_q14/duckdb:vortex-compact 74907131 73812370 1.01
tpch_q15/duckdb:vortex-compact 121628424 118129161 1.03
tpch_q16/duckdb:vortex-compact 81272441 78864319 1.03
tpch_q17/duckdb:vortex-compact 106609827 105268859 1.01
tpch_q18/duckdb:vortex-compact 351446018 348847097 1.01
tpch_q19/duckdb:vortex-compact 92928853 92267158 1.01
tpch_q20/duckdb:vortex-compact 186066959 178935884 1.04
tpch_q21/duckdb:vortex-compact 629143253 623079081 1.01
tpch_q22/duckdb:vortex-compact 73592667 71579643 1.03
duckdb / parquet (1.006x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 264293226 270174568 0.98
tpch_q02/duckdb:parquet 104866491 105319839 1.00
tpch_q03/duckdb:parquet 216229887 211820837 1.02
tpch_q04/duckdb:parquet 142230222 141355741 1.01
tpch_q05/duckdb:parquet 231968005 229092589 1.01
tpch_q06/duckdb:parquet 74909977 74951403 1.00
tpch_q07/duckdb:parquet 192732196 189548168 1.02
tpch_q08/duckdb:parquet 275005219 269913406 1.02
tpch_q09/duckdb:parquet 520103523 509354698 1.02
tpch_q10/duckdb:parquet 642635739 633244146 1.01
tpch_q11/duckdb:parquet 67045519 65524100 1.02
tpch_q12/duckdb:parquet 136833611 135810446 1.01
tpch_q13/duckdb:parquet 457237475 473071606 0.97
tpch_q14/duckdb:parquet 183061317 181303952 1.01
tpch_q15/duckdb:parquet 106012545 106498401 1.00
tpch_q16/duckdb:parquet 169265164 166914272 1.01
tpch_q17/duckdb:parquet 189894293 185538635 1.02
tpch_q18/duckdb:parquet 367408251 370611734 0.99
tpch_q19/duckdb:parquet 288400463 296260640 0.97
tpch_q20/duckdb:parquet 237441321 235125146 1.01
tpch_q21/duckdb:parquet 585549587 574745793 1.02
tpch_q22/duckdb:parquet 310046055 304835300 1.02
duckdb / duckdb (1.015x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:duckdb 121015702 120455762 1.00
tpch_q02/duckdb:duckdb 53546643 52937290 1.01
tpch_q03/duckdb:duckdb 106220354 103105615 1.03
tpch_q04/duckdb:duckdb 143205206 138668198 1.03
tpch_q05/duckdb:duckdb 122395596 118785557 1.03
tpch_q06/duckdb:duckdb 45036098 44759895 1.01
tpch_q07/duckdb:duckdb 92837264 90569612 1.03
tpch_q08/duckdb:duckdb 121586833 118446499 1.03
tpch_q09/duckdb:duckdb 287861690 294521015 0.98
tpch_q10/duckdb:duckdb 219173920 217593682 1.01
tpch_q11/duckdb:duckdb 19467998 19077890 1.02
tpch_q12/duckdb:duckdb 91316925 90183867 1.01
tpch_q13/duckdb:duckdb 235132632 229913563 1.02
tpch_q14/duckdb:duckdb 78894420 77694053 1.02
tpch_q15/duckdb:duckdb 83836024 81920791 1.02
tpch_q16/duckdb:duckdb 78780835 77036923 1.02
tpch_q17/duckdb:duckdb 88785584 87895833 1.01
tpch_q18/duckdb:duckdb 241051180 234948713 1.03
tpch_q19/duckdb:duckdb 126693396 124583950 1.02
tpch_q20/duckdb:duckdb 118648748 118185313 1.00
tpch_q21/duckdb:duckdb 311724233 299175753 1.04
tpch_q22/duckdb:duckdb 68036886 70392602 0.97

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=1 on S3 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -5.7%
Engines: DataFusion No clear signal (-8.6%, environment too noisy confidence) · DuckDB No clear signal (-2.8%, environment too noisy confidence)
Vortex (geomean): 0.944x ➖
Parquet (geomean): 1.001x ➖
Shifts: Parquet (control) +0.1% · Median polish -2.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 (0.922x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 254705318 266892232 0.95
tpch_q02/datafusion:vortex-file-compressed 409424454 406692316 1.01
tpch_q03/datafusion:vortex-file-compressed 404094291 401088681 1.01
tpch_q04/datafusion:vortex-file-compressed 205979349 213038568 0.97
tpch_q05/datafusion:vortex-file-compressed 341322714 356724437 0.96
tpch_q06/datafusion:vortex-file-compressed 280750796 308088238 0.91
tpch_q07/datafusion:vortex-file-compressed 384277738 451374386 0.85
tpch_q08/datafusion:vortex-file-compressed 454748658 492232650 0.92
tpch_q09/datafusion:vortex-file-compressed 308965140 313452758 0.99
tpch_q10/datafusion:vortex-file-compressed 405870836 440767277 0.92
tpch_q11/datafusion:vortex-file-compressed 309363885 283042669 1.09
tpch_q12/datafusion:vortex-file-compressed 383492050 423111014 0.91
tpch_q13/datafusion:vortex-file-compressed 🚀 146230078 214531485 0.68
tpch_q14/datafusion:vortex-file-compressed 236592796 252498024 0.94
tpch_q15/datafusion:vortex-file-compressed 430119414 522497802 0.82
tpch_q16/datafusion:vortex-file-compressed 192412024 213230329 0.90
tpch_q17/datafusion:vortex-file-compressed 303412274 337685543 0.90
tpch_q18/datafusion:vortex-file-compressed 237048087 275152030 0.86
tpch_q19/datafusion:vortex-file-compressed 424706807 466803658 0.91
tpch_q20/datafusion:vortex-file-compressed 378022234 425069486 0.89
tpch_q21/datafusion:vortex-file-compressed 521706617 515427344 1.01
tpch_q22/datafusion:vortex-file-compressed 143581014 147665377 0.97
datafusion / vortex-compact (0.927x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 269175139 299270750 0.90
tpch_q02/datafusion:vortex-compact 🚀 414505796 646331818 0.64
tpch_q03/datafusion:vortex-compact 390198481 388343818 1.00
tpch_q04/datafusion:vortex-compact 196550797 210818665 0.93
tpch_q05/datafusion:vortex-compact 325101059 364932725 0.89
tpch_q06/datafusion:vortex-compact 284626901 306612633 0.93
tpch_q07/datafusion:vortex-compact 381194563 470477343 0.81
tpch_q08/datafusion:vortex-compact 463962706 496143543 0.94
tpch_q09/datafusion:vortex-compact 349449862 404409176 0.86
tpch_q10/datafusion:vortex-compact 395918004 444135458 0.89
tpch_q11/datafusion:vortex-compact 261249588 322260443 0.81
tpch_q12/datafusion:vortex-compact 359267744 353083787 1.02
tpch_q13/datafusion:vortex-compact 214585642 205591250 1.04
tpch_q14/datafusion:vortex-compact 230107789 221098768 1.04
tpch_q15/datafusion:vortex-compact 433039504 405267646 1.07
tpch_q16/datafusion:vortex-compact 189089180 178634416 1.06
tpch_q17/datafusion:vortex-compact 321864215 422607256 0.76
tpch_q18/datafusion:vortex-compact 247383802 256659948 0.96
tpch_q19/datafusion:vortex-compact 525612539 526958336 1.00
tpch_q20/datafusion:vortex-compact 429056404 456686558 0.94
tpch_q21/datafusion:vortex-compact 501428777 495803238 1.01
tpch_q22/datafusion:vortex-compact 140196840 136115699 1.03
datafusion / parquet (1.011x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 235697542 231256406 1.02
tpch_q02/datafusion:parquet 432097775 403298382 1.07
tpch_q03/datafusion:parquet 310073104 299552592 1.04
tpch_q04/datafusion:parquet 156570580 155624370 1.01
tpch_q05/datafusion:parquet 416634750 418322580 1.00
tpch_q06/datafusion:parquet 132653636 136263075 0.97
tpch_q07/datafusion:parquet 426699873 449493791 0.95
tpch_q08/datafusion:parquet 535123334 537763012 1.00
tpch_q09/datafusion:parquet 469158945 451658511 1.04
tpch_q10/datafusion:parquet 459369467 464002915 0.99
tpch_q11/datafusion:parquet 375339015 361079167 1.04
tpch_q12/datafusion:parquet 212295218 223051004 0.95
tpch_q13/datafusion:parquet 424386079 425236270 1.00
tpch_q14/datafusion:parquet 169126493 169179897 1.00
tpch_q15/datafusion:parquet 280938922 282755866 0.99
tpch_q16/datafusion:parquet 170784545 171847033 0.99
tpch_q17/datafusion:parquet 369903592 349305169 1.06
tpch_q18/datafusion:parquet 447324144 430646388 1.04
tpch_q19/datafusion:parquet 404765262 330464179 1.22
tpch_q20/datafusion:parquet 296507264 383856178 0.77
tpch_q21/datafusion:parquet 557657343 573267886 0.97
tpch_q22/datafusion:parquet 199632854 164888672 1.21
duckdb / vortex-file-compressed (0.986x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 242921205 268866434 0.90
tpch_q02/duckdb:vortex-file-compressed 869364917 882786695 0.98
tpch_q03/duckdb:vortex-file-compressed 588087949 626097357 0.94
tpch_q04/duckdb:vortex-file-compressed 363457735 389415669 0.93
tpch_q05/duckdb:vortex-file-compressed 741696880 724730681 1.02
tpch_q06/duckdb:vortex-file-compressed 297822234 336561462 0.88
tpch_q07/duckdb:vortex-file-compressed 776126447 838272907 0.93
tpch_q08/duckdb:vortex-file-compressed 957460916 995454059 0.96
tpch_q09/duckdb:vortex-file-compressed 872454007 872138089 1.00
tpch_q10/duckdb:vortex-file-compressed 660271749 671957655 0.98
tpch_q11/duckdb:vortex-file-compressed 466469945 463180231 1.01
tpch_q12/duckdb:vortex-file-compressed 595077485 550523092 1.08
tpch_q13/duckdb:vortex-file-compressed 394542149 331213128 1.19
tpch_q14/duckdb:vortex-file-compressed 327312006 346245263 0.95
tpch_q15/duckdb:vortex-file-compressed 260834829 256334911 1.02
tpch_q16/duckdb:vortex-file-compressed 316464116 312858129 1.01
tpch_q17/duckdb:vortex-file-compressed 667606425 639353815 1.04
tpch_q18/duckdb:vortex-file-compressed 496504440 499930764 0.99
tpch_q19/duckdb:vortex-file-compressed 415059337 411110392 1.01
tpch_q20/duckdb:vortex-file-compressed 694471807 770726589 0.90
tpch_q21/duckdb:vortex-file-compressed 917932584 971214486 0.95
tpch_q22/duckdb:vortex-file-compressed 267099732 252465328 1.06
duckdb / vortex-compact (0.941x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 289307530 298375987 0.97
tpch_q02/duckdb:vortex-compact 833586661 983051101 0.85
tpch_q03/duckdb:vortex-compact 553217669 596350215 0.93
tpch_q04/duckdb:vortex-compact 351767142 355371602 0.99
tpch_q05/duckdb:vortex-compact 666909300 752621679 0.89
tpch_q06/duckdb:vortex-compact 316898349 364292727 0.87
tpch_q07/duckdb:vortex-compact 777809486 851679391 0.91
tpch_q08/duckdb:vortex-compact 955779441 1095076054 0.87
tpch_q09/duckdb:vortex-compact 867348378 971318508 0.89
tpch_q10/duckdb:vortex-compact 611725348 674015847 0.91
tpch_q11/duckdb:vortex-compact 441703571 479846080 0.92
tpch_q12/duckdb:vortex-compact 547209887 549472772 1.00
tpch_q13/duckdb:vortex-compact 329202044 289989849 1.14
tpch_q14/duckdb:vortex-compact 319079138 385375720 0.83
tpch_q15/duckdb:vortex-compact 277083815 294330343 0.94
tpch_q16/duckdb:vortex-compact 328934545 331473044 0.99
tpch_q17/duckdb:vortex-compact 629564593 610172908 1.03
tpch_q18/duckdb:vortex-compact 511213477 527565120 0.97
tpch_q19/duckdb:vortex-compact 421644043 442733749 0.95
tpch_q20/duckdb:vortex-compact 687508775 737242196 0.93
tpch_q21/duckdb:vortex-compact 902526727 945972220 0.95
tpch_q22/duckdb:vortex-compact 263488340 258258977 1.02
duckdb / parquet (0.991x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 394691601 488300224 0.81
tpch_q02/duckdb:parquet 1022179833 914139650 1.12
tpch_q03/duckdb:parquet 856733711 878018267 0.98
tpch_q04/duckdb:parquet 587536210 553819773 1.06
tpch_q05/duckdb:parquet 1047198462 1061109049 0.99
tpch_q06/duckdb:parquet 363618796 354025215 1.03
tpch_q07/duckdb:parquet 1046305617 1045195208 1.00
tpch_q08/duckdb:parquet 1255942632 1365873800 0.92
tpch_q09/duckdb:parquet 1223430000 1217650983 1.00
tpch_q10/duckdb:parquet 1127819356 1152497655 0.98
tpch_q11/duckdb:parquet 620906240 628447380 0.99
tpch_q12/duckdb:parquet 603374596 633677517 0.95
tpch_q13/duckdb:parquet 838100792 835190015 1.00
tpch_q14/duckdb:parquet 625264222 626555988 1.00
tpch_q15/duckdb:parquet 467833697 473316829 0.99
tpch_q16/duckdb:parquet 592141043 590996651 1.00
tpch_q17/duckdb:parquet 685329206 659006383 1.04
tpch_q18/duckdb:parquet 802719760 778127965 1.03
tpch_q19/duckdb:parquet 694360385 690414860 1.01
tpch_q20/duckdb:parquet 970346072 966494502 1.00
tpch_q21/duckdb:parquet 920620785 956130738 0.96
tpch_q22/duckdb:parquet 495963445 506933975 0.98

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Clickbench on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -1.8%
Engines: DataFusion No clear signal (-3.0%, low confidence) · DuckDB No clear signal (-2.0%, low confidence)
Vortex (geomean): 0.905x ➖
Parquet (geomean): 0.938x ➖
Shifts: Parquet (control) -6.2% · Median polish -6.5%

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 (0.895x ✅, 21↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench_q00/datafusion:vortex-file-compressed 🚀 1601776 1987108 0.81
clickbench_q01/datafusion:vortex-file-compressed 🚀 18384234 22884503 0.80
clickbench_q02/datafusion:vortex-file-compressed 🚀 33730178 39038873 0.86
clickbench_q03/datafusion:vortex-file-compressed 🚀 38913575 43585425 0.89
clickbench_q04/datafusion:vortex-file-compressed 238158287 247828508 0.96
clickbench_q05/datafusion:vortex-file-compressed 308038416 321149198 0.96
clickbench_q06/datafusion:vortex-file-compressed 🚀 1548456 1818422 0.85
clickbench_q07/datafusion:vortex-file-compressed 🚀 22263226 29933953 0.74
clickbench_q08/datafusion:vortex-file-compressed 331938763 352186822 0.94
clickbench_q09/datafusion:vortex-file-compressed 454278612 496787045 0.91
clickbench_q10/datafusion:vortex-file-compressed 74436490 79553294 0.94
clickbench_q11/datafusion:vortex-file-compressed 🚀 83886876 97844476 0.86
clickbench_q12/datafusion:vortex-file-compressed 🚀 257227661 291433246 0.88
clickbench_q13/datafusion:vortex-file-compressed 🚀 421377606 481512309 0.88
clickbench_q14/datafusion:vortex-file-compressed 261237763 282884852 0.92
clickbench_q15/datafusion:vortex-file-compressed 278213050 297902909 0.93
clickbench_q16/datafusion:vortex-file-compressed 652071794 723360712 0.90
clickbench_q17/datafusion:vortex-file-compressed 🚀 639292420 749019214 0.85
clickbench_q18/datafusion:vortex-file-compressed 1336911649 1478298546 0.90
clickbench_q19/datafusion:vortex-file-compressed 37814782 38415316 0.98
clickbench_q20/datafusion:vortex-file-compressed 263139098 289921328 0.91
clickbench_q21/datafusion:vortex-file-compressed 352162473 368716770 0.96
clickbench_q22/datafusion:vortex-file-compressed 441792458 477427295 0.93
clickbench_q23/datafusion:vortex-file-compressed 570299312 621352568 0.92
clickbench_q24/datafusion:vortex-file-compressed 46286178 50725208 0.91
clickbench_q25/datafusion:vortex-file-compressed 🚀 74097525 85306248 0.87
clickbench_q26/datafusion:vortex-file-compressed 🚀 42676170 48129685 0.89
clickbench_q27/datafusion:vortex-file-compressed 386650766 417843791 0.93
clickbench_q28/datafusion:vortex-file-compressed 2355310299 2429074302 0.97
clickbench_q29/datafusion:vortex-file-compressed 🚀 50797166 57254216 0.89
clickbench_q30/datafusion:vortex-file-compressed 230568404 243211702 0.95
clickbench_q31/datafusion:vortex-file-compressed 🚀 242484847 271372772 0.89
clickbench_q32/datafusion:vortex-file-compressed 🚀 1055330837 1184710213 0.89
clickbench_q33/datafusion:vortex-file-compressed 🚀 1357702926 1575590478 0.86
clickbench_q34/datafusion:vortex-file-compressed 1385914379 1539893058 0.90
clickbench_q35/datafusion:vortex-file-compressed 🚀 242517841 285198513 0.85
clickbench_q36/datafusion:vortex-file-compressed 🚀 57304327 65244945 0.88
clickbench_q37/datafusion:vortex-file-compressed 25347138 27823685 0.91
clickbench_q38/datafusion:vortex-file-compressed 16451018 17202596 0.96
clickbench_q39/datafusion:vortex-file-compressed 120740036 133910434 0.90
clickbench_q40/datafusion:vortex-file-compressed 🚀 12249802 13671781 0.90
clickbench_q41/datafusion:vortex-file-compressed 🚀 11929060 13874291 0.86
clickbench_q42/datafusion:vortex-file-compressed 🚀 11358008 13301756 0.85
datafusion / parquet (0.923x ➖, 13↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench_q00/datafusion:parquet 1544646 1635943 0.94
clickbench_q01/datafusion:parquet 19091800 19658821 0.97
clickbench_q02/datafusion:parquet 43525831 45023075 0.97
clickbench_q03/datafusion:parquet 35555175 36782321 0.97
clickbench_q04/datafusion:parquet 🚀 261869676 297518169 0.88
clickbench_q05/datafusion:parquet 328742917 353567988 0.93
clickbench_q06/datafusion:parquet 🚀 1540498 1933775 0.80
clickbench_q07/datafusion:parquet 20909519 22898116 0.91
clickbench_q08/datafusion:parquet 🚀 328124205 367178634 0.89
clickbench_q09/datafusion:parquet 463441966 495233139 0.94
clickbench_q10/datafusion:parquet 90828358 96897232 0.94
clickbench_q11/datafusion:parquet 113799931 120798335 0.94
clickbench_q12/datafusion:parquet 301916506 324619891 0.93
clickbench_q13/datafusion:parquet 🚀 461562001 528324036 0.87
clickbench_q14/datafusion:parquet 🚀 316467713 356993913 0.89
clickbench_q15/datafusion:parquet 285193718 302499528 0.94
clickbench_q16/datafusion:parquet 660009944 696715260 0.95
clickbench_q17/datafusion:parquet 🚀 659962906 745926257 0.88
clickbench_q18/datafusion:parquet 1379867151 1472921843 0.94
clickbench_q19/datafusion:parquet 🚀 26081836 29896110 0.87
clickbench_q20/datafusion:parquet 564334060 623045389 0.91
clickbench_q21/datafusion:parquet 614014359 661088908 0.93
clickbench_q22/datafusion:parquet 913197052 976206811 0.94
clickbench_q23/datafusion:parquet 🚀 4028652948 4502257366 0.89
clickbench_q24/datafusion:parquet 53016246 54534057 0.97
clickbench_q25/datafusion:parquet 🚀 126788121 141611870 0.90
clickbench_q26/datafusion:parquet 51470514 53126877 0.97
clickbench_q27/datafusion:parquet 635079832 679482982 0.93
clickbench_q28/datafusion:parquet 2434732558 2533199385 0.96
clickbench_q29/datafusion:parquet 47868536 46164142 1.04
clickbench_q30/datafusion:parquet 🚀 315815740 355824443 0.89
clickbench_q31/datafusion:parquet 337583689 365979842 0.92
clickbench_q32/datafusion:parquet 1066781734 1141659958 0.93
clickbench_q33/datafusion:parquet 1479499410 1585674479 0.93
clickbench_q34/datafusion:parquet 🚀 1501045321 1700064490 0.88
clickbench_q35/datafusion:parquet 243238086 260598132 0.93
clickbench_q36/datafusion:parquet 103198129 114077113 0.90
clickbench_q37/datafusion:parquet 41808143 46299495 0.90
clickbench_q38/datafusion:parquet 60172512 65094814 0.92
clickbench_q39/datafusion:parquet 🚀 199091015 227129329 0.88
clickbench_q40/datafusion:parquet 🚀 23992051 26867029 0.89
clickbench_q41/datafusion:parquet 24446096 23904911 1.02
clickbench_q42/datafusion:parquet 21779616 23905425 0.91
duckdb / vortex-file-compressed (0.914x ➖, 17↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench_q00/duckdb:vortex-file-compressed 9593243 9664322 0.99
clickbench_q01/duckdb:vortex-file-compressed 15932113 16341344 0.97
clickbench_q02/duckdb:vortex-file-compressed 🚀 18971513 22447099 0.85
clickbench_q03/duckdb:vortex-file-compressed 25579692 28161737 0.91
clickbench_q04/duckdb:vortex-file-compressed 199858410 209826831 0.95
clickbench_q05/duckdb:vortex-file-compressed 185681934 195973397 0.95
clickbench_q06/duckdb:vortex-file-compressed 18643361 18912016 0.99
clickbench_q07/duckdb:vortex-file-compressed 20153311 20725369 0.97
clickbench_q08/duckdb:vortex-file-compressed 270820436 282245335 0.96
clickbench_q09/duckdb:vortex-file-compressed 🚀 347825430 387486549 0.90
clickbench_q10/duckdb:vortex-file-compressed 72639226 77358227 0.94
clickbench_q11/duckdb:vortex-file-compressed 🚀 83376094 98090374 0.85
clickbench_q12/duckdb:vortex-file-compressed 🚀 207832136 243933042 0.85
clickbench_q13/duckdb:vortex-file-compressed 407623094 440736726 0.92
clickbench_q14/duckdb:vortex-file-compressed 238499654 254318451 0.94
clickbench_q15/duckdb:vortex-file-compressed 263558537 263057386 1.00
clickbench_q16/duckdb:vortex-file-compressed 🚀 538411767 606922566 0.89
clickbench_q17/duckdb:vortex-file-compressed 431811444 473237336 0.91
clickbench_q18/duckdb:vortex-file-compressed 940403840 989699515 0.95
clickbench_q19/duckdb:vortex-file-compressed 🚀 20687539 24064562 0.86
clickbench_q20/duckdb:vortex-file-compressed 🚀 249762152 286930776 0.87
clickbench_q21/duckdb:vortex-file-compressed 🚀 334676543 385803685 0.87
clickbench_q22/duckdb:vortex-file-compressed 476659089 500467468 0.95
clickbench_q23/duckdb:vortex-file-compressed 🚀 116756916 184309713 0.63
clickbench_q24/duckdb:vortex-file-compressed 🚨 42213634 35479162 1.19
clickbench_q25/duckdb:vortex-file-compressed 78694014 86357885 0.91
clickbench_q26/duckdb:vortex-file-compressed 🚀 43117307 48137709 0.90
clickbench_q27/duckdb:vortex-file-compressed 215552414 237638122 0.91
clickbench_q28/duckdb:vortex-file-compressed 3030969034 3238545089 0.94
clickbench_q29/duckdb:vortex-file-compressed 🚀 24599336 27638396 0.89
clickbench_q30/duckdb:vortex-file-compressed 202055135 224202803 0.90
clickbench_q31/duckdb:vortex-file-compressed 🚀 297567997 339970697 0.88
clickbench_q32/duckdb:vortex-file-compressed 🚀 1124534102 1276298536 0.88
clickbench_q33/duckdb:vortex-file-compressed 🚀 1065128430 1261370711 0.84
clickbench_q34/duckdb:vortex-file-compressed 🚀 1178432391 1331703274 0.88
clickbench_q35/duckdb:vortex-file-compressed 371887519 380589974 0.98
clickbench_q36/duckdb:vortex-file-compressed 31897889 32817653 0.97
clickbench_q37/duckdb:vortex-file-compressed 🚀 22491662 25128496 0.90
clickbench_q38/duckdb:vortex-file-compressed 25594428 27682249 0.92
clickbench_q39/duckdb:vortex-file-compressed 45106215 48995430 0.92
clickbench_q40/duckdb:vortex-file-compressed 24186735 25189506 0.96
clickbench_q41/duckdb:vortex-file-compressed 22194372 23682439 0.94
clickbench_q42/duckdb:vortex-file-compressed 🚀 20999243 24590731 0.85
duckdb / parquet (0.954x ➖, 1↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench_q00/duckdb:parquet 23602687 23748316 0.99
clickbench_q01/duckdb:parquet 30678643 30219403 1.02
clickbench_q02/duckdb:parquet 51711218 50935132 1.02
clickbench_q03/duckdb:parquet 40286240 42771847 0.94
clickbench_q04/duckdb:parquet 205651391 212061080 0.97
clickbench_q05/duckdb:parquet 260201472 275155810 0.95
clickbench_q06/duckdb:parquet 47925643 48996352 0.98
clickbench_q07/duckdb:parquet 32643083 33103959 0.99
clickbench_q08/duckdb:parquet 273857407 283483992 0.97
clickbench_q09/duckdb:parquet 398760960 431544261 0.92
clickbench_q10/duckdb:parquet 86791710 89423573 0.97
clickbench_q11/duckdb:parquet 101786052 106188317 0.96
clickbench_q12/duckdb:parquet 283920027 292288159 0.97
clickbench_q13/duckdb:parquet 475495000 489738448 0.97
clickbench_q14/duckdb:parquet 316388826 337635022 0.94
clickbench_q15/duckdb:parquet 255181965 278981112 0.91
clickbench_q16/duckdb:parquet 598418540 625673609 0.96
clickbench_q17/duckdb:parquet 503551299 514810150 0.98
clickbench_q18/duckdb:parquet 1036219080 1115902854 0.93
clickbench_q19/duckdb:parquet 28806953 30067470 0.96
clickbench_q20/duckdb:parquet 416390595 427228129 0.97
clickbench_q21/duckdb:parquet 536422625 594091865 0.90
clickbench_q22/duckdb:parquet 918764367 965773516 0.95
clickbench_q23/duckdb:parquet 263400134 278495369 0.95
clickbench_q24/duckdb:parquet 71701893 75237423 0.95
clickbench_q25/duckdb:parquet 164902324 171345831 0.96
clickbench_q26/duckdb:parquet 56013073 61728090 0.91
clickbench_q27/duckdb:parquet 467719586 504210386 0.93
clickbench_q28/duckdb:parquet 4784774628 4923079399 0.97
clickbench_q29/duckdb:parquet 42487145 45331095 0.94
clickbench_q30/duckdb:parquet 315651923 331692495 0.95
clickbench_q31/duckdb:parquet 377075763 395758061 0.95
clickbench_q32/duckdb:parquet 1111555881 1186109815 0.94
clickbench_q33/duckdb:parquet 1111003332 1181743619 0.94
clickbench_q34/duckdb:parquet 1152575557 1275272747 0.90
clickbench_q35/duckdb:parquet 🚀 369883915 411627898 0.90
clickbench_q36/duckdb:parquet 53031960 51720058 1.03
clickbench_q37/duckdb:parquet 36132773 36661622 0.99
clickbench_q38/duckdb:parquet 37642681 38561661 0.98
clickbench_q39/duckdb:parquet 79439084 83489230 0.95
clickbench_q40/duckdb:parquet 21295727 22880896 0.93
clickbench_q41/duckdb:parquet 21513739 22495895 0.96
clickbench_q42/duckdb:parquet 24435795 26745285 0.91
duckdb / duckdb (0.957x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
clickbench_q00/duckdb:duckdb 17691656 18733752 0.94
clickbench_q01/duckdb:duckdb 35558228 36317283 0.98
clickbench_q02/duckdb:duckdb 51917969 53333146 0.97
clickbench_q03/duckdb:duckdb 57656649 59785309 0.96
clickbench_q04/duckdb:duckdb 213406296 224101433 0.95
clickbench_q05/duckdb:duckdb 281973520 304456218 0.93
clickbench_q06/duckdb:duckdb 35433058 37274861 0.95
clickbench_q07/duckdb:duckdb 36137267 37693886 0.96
clickbench_q08/duckdb:duckdb 276575169 298503547 0.93
clickbench_q09/duckdb:duckdb 392915185 424613043 0.93
clickbench_q10/duckdb:duckdb 116899238 119282708 0.98
clickbench_q11/duckdb:duckdb 127750416 132623102 0.96
clickbench_q12/duckdb:duckdb 257655811 267370919 0.96
clickbench_q13/duckdb:duckdb 442616761 463466253 0.96
clickbench_q14/duckdb:duckdb 284620003 305240925 0.93
clickbench_q15/duckdb:duckdb 241476521 262392855 0.92
clickbench_q16/duckdb:duckdb 562904287 586655294 0.96
clickbench_q17/duckdb:duckdb 472610011 501055641 0.94
clickbench_q18/duckdb:duckdb 1019500157 1091861738 0.93
clickbench_q19/duckdb:duckdb 36374069 35887042 1.01
clickbench_q20/duckdb:duckdb 459618554 501455183 0.92
clickbench_q21/duckdb:duckdb 470508548 513667870 0.92
clickbench_q22/duckdb:duckdb 541746706 550482972 0.98
clickbench_q23/duckdb:duckdb 253477989 270602087 0.94
clickbench_q24/duckdb:duckdb 63774847 66244150 0.96
clickbench_q25/duckdb:duckdb 149852431 153320956 0.98
clickbench_q26/duckdb:duckdb 63492479 64681319 0.98
clickbench_q27/duckdb:duckdb 411190473 448256091 0.92
clickbench_q28/duckdb:duckdb 4394551300 4644724685 0.95
clickbench_q29/duckdb:duckdb 51933056 54925125 0.95
clickbench_q30/duckdb:duckdb 277100035 291330589 0.95
clickbench_q31/duckdb:duckdb 367596404 383361753 0.96
clickbench_q32/duckdb:duckdb 1110672954 1152556434 0.96
clickbench_q33/duckdb:duckdb 1125729761 1192962525 0.94
clickbench_q34/duckdb:duckdb 1212477339 1275408864 0.95
clickbench_q35/duckdb:duckdb 303721864 329189626 0.92
clickbench_q36/duckdb:duckdb 55245618 51884812 1.06
clickbench_q37/duckdb:duckdb 29731187 29994040 0.99
clickbench_q38/duckdb:duckdb 35653738 34915197 1.02
clickbench_q39/duckdb:duckdb 89062703 94465979 0.94
clickbench_q40/duckdb:duckdb 28922247 29483125 0.98
clickbench_q41/duckdb:duckdb 27962578 28847823 0.97
clickbench_q42/duckdb:duckdb 31092667 32814159 0.95

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

Totals:

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

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Appian on NVME 📖

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +0.3%
Engines: DataFusion No clear signal (+0.7%, low confidence) · DuckDB No clear signal (-0.2%, low confidence)
Vortex (geomean): 0.993x ➖
Parquet (geomean): 0.991x ➖
Shifts: Parquet (control) -0.9% · Median polish -0.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 (0.990x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
appian_q01/datafusion:vortex-file-compressed 122900109 130934951 0.94
appian_q02/datafusion:vortex-file-compressed 580124240 589411922 0.98
appian_q03/datafusion:vortex-file-compressed 331434053 329562799 1.01
appian_q04/datafusion:vortex-file-compressed 45117645708 44939825757 1.00
appian_q05/datafusion:vortex-file-compressed 245187293 245510017 1.00
appian_q06/datafusion:vortex-file-compressed 339014833 336980209 1.01
appian_q07/datafusion:vortex-file-compressed 404742387 409830207 0.99
appian_q08/datafusion:vortex-file-compressed 1926149220 1935701547 1.00
datafusion / parquet (0.983x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
appian_q01/datafusion:parquet 126373111 133383764 0.95
appian_q02/datafusion:parquet 608989693 607706219 1.00
appian_q03/datafusion:parquet 330707236 338436826 0.98
appian_q04/datafusion:parquet 44981908271 44972968568 1.00
appian_q05/datafusion:parquet 277434702 283552412 0.98
appian_q06/datafusion:parquet 355353052 355097043 1.00
appian_q07/datafusion:parquet 448070310 453707191 0.99
appian_q08/datafusion:parquet 1930092804 1984666622 0.97
duckdb / vortex-file-compressed (0.997x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
appian_q01/duckdb:vortex-file-compressed 184788459 187550654 0.99
appian_q02/duckdb:vortex-file-compressed 603501226 600558472 1.00
appian_q03/duckdb:vortex-file-compressed 259713496 260626135 1.00
appian_q04/duckdb:vortex-file-compressed 1320578561 1325904411 1.00
appian_q05/duckdb:vortex-file-compressed 286406932 286449356 1.00
appian_q06/duckdb:vortex-file-compressed 806428654 809919414 1.00
appian_q07/duckdb:vortex-file-compressed 353419272 352895347 1.00
appian_q08/duckdb:vortex-file-compressed 1284048584 1287389984 1.00
duckdb / parquet (1.000x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
appian_q01/duckdb:parquet 201518862 205612356 0.98
appian_q02/duckdb:parquet 605886423 609578195 0.99
appian_q03/duckdb:parquet 293247694 292489720 1.00
appian_q04/duckdb:parquet 1332776219 1328286632 1.00
appian_q05/duckdb:parquet 312342761 306366561 1.02
appian_q06/duckdb:parquet 799904165 797255866 1.00
appian_q07/duckdb:parquet 364860589 365318496 1.00
appian_q08/duckdb:parquet 1275957881 1280092561 1.00
duckdb / duckdb (0.998x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
appian_q01/duckdb:duckdb 172211892 172938441 1.00
appian_q02/duckdb:duckdb 548561677 551505005 0.99
appian_q03/duckdb:duckdb 390526649 390503353 1.00
appian_q04/duckdb:duckdb 1307030459 1305836287 1.00
appian_q05/duckdb:duckdb 281313968 285857440 0.98
appian_q06/duckdb:duckdb 792575597 792107948 1.00
appian_q07/duckdb:duckdb 328697957 325821792 1.01
appian_q08/duckdb:duckdb 1222835815 1228359205 1.00

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

Totals:

  • vortex-compact: 271.91 MB → 271.65 MB (-0.1%)
  • vortex-file-compressed: 479.69 MB → 479.69 MB (0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on S3 📖

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: +5.3%
Engines: DataFusion No clear signal (+6.0%, environment too noisy confidence) · DuckDB No clear signal (+4.7%, environment too noisy confidence)
Vortex (geomean): 1.053x ➖
Parquet (geomean): 0.999x ➖
Shifts: Parquet (control) -0.1% · Median polish +4.7%

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 (1.049x ➖, 0↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 734711985 698880309 1.05
tpch_q02/datafusion:vortex-file-compressed 718575194 720903386 1.00
tpch_q03/datafusion:vortex-file-compressed 774783706 702544312 1.10
tpch_q04/datafusion:vortex-file-compressed 🚨 602352613 433113785 1.39
tpch_q05/datafusion:vortex-file-compressed 955221919 810613189 1.18
tpch_q06/datafusion:vortex-file-compressed 549358269 531187856 1.03
tpch_q07/datafusion:vortex-file-compressed 881682036 817714204 1.08
tpch_q08/datafusion:vortex-file-compressed 1135515175 1114361417 1.02
tpch_q09/datafusion:vortex-file-compressed 1158514458 1079208140 1.07
tpch_q10/datafusion:vortex-file-compressed 857778416 832511422 1.03
tpch_q11/datafusion:vortex-file-compressed 450671342 446378558 1.01
tpch_q12/datafusion:vortex-file-compressed 698358833 753969951 0.93
tpch_q13/datafusion:vortex-file-compressed 429190197 524121255 0.82
tpch_q14/datafusion:vortex-file-compressed 492689598 509957676 0.97
tpch_q15/datafusion:vortex-file-compressed 826976915 854595781 0.97
tpch_q16/datafusion:vortex-file-compressed 410488459 381016582 1.08
tpch_q17/datafusion:vortex-file-compressed 1202474969 1054330570 1.14
tpch_q18/datafusion:vortex-file-compressed 1227440438 1090994857 1.13
tpch_q19/datafusion:vortex-file-compressed 796711527 834364630 0.95
tpch_q20/datafusion:vortex-file-compressed 736751155 739734983 1.00
tpch_q21/datafusion:vortex-file-compressed 1375160763 1313775685 1.05
tpch_q22/datafusion:vortex-file-compressed 386043835 319279746 1.21
datafusion / vortex-compact (1.006x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 753045281 723324878 1.04
tpch_q02/datafusion:vortex-compact 649755271 618587943 1.05
tpch_q03/datafusion:vortex-compact 695176021 695963867 1.00
tpch_q04/datafusion:vortex-compact 418181449 482612085 0.87
tpch_q05/datafusion:vortex-compact 845759322 837004797 1.01
tpch_q06/datafusion:vortex-compact 518254493 517153179 1.00
tpch_q07/datafusion:vortex-compact 959011042 841740442 1.14
tpch_q08/datafusion:vortex-compact 1148740741 1090039663 1.05
tpch_q09/datafusion:vortex-compact 1145033466 1090185718 1.05
tpch_q10/datafusion:vortex-compact 848582135 841376167 1.01
tpch_q11/datafusion:vortex-compact 393517284 390839226 1.01
tpch_q12/datafusion:vortex-compact 720345780 808069869 0.89
tpch_q13/datafusion:vortex-compact 439454183 403728313 1.09
tpch_q14/datafusion:vortex-compact 466571948 511996214 0.91
tpch_q15/datafusion:vortex-compact 825801135 905160859 0.91
tpch_q16/datafusion:vortex-compact 400811881 403247099 0.99
tpch_q17/datafusion:vortex-compact 1133020133 1188147131 0.95
tpch_q18/datafusion:vortex-compact 1127560335 1067767443 1.06
tpch_q19/datafusion:vortex-compact 912504297 891666450 1.02
tpch_q20/datafusion:vortex-compact 785383414 805742467 0.97
tpch_q21/datafusion:vortex-compact 1322414982 1273329884 1.04
tpch_q22/datafusion:vortex-compact 395421995 356943878 1.11
datafusion / parquet (0.969x ➖, 1↑ 1↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 853656514 831544928 1.03
tpch_q02/datafusion:parquet 807668831 743713131 1.09
tpch_q03/datafusion:parquet 1010376269 893810872 1.13
tpch_q04/datafusion:parquet 🚨 627881765 429892947 1.46
tpch_q05/datafusion:parquet 1353006808 1084641708 1.25
tpch_q06/datafusion:parquet 532342779 523493087 1.02
tpch_q07/datafusion:parquet 1195761368 1199534792 1.00
tpch_q08/datafusion:parquet 1458397490 1497031205 0.97
tpch_q09/datafusion:parquet 1692073180 1653325271 1.02
tpch_q10/datafusion:parquet 2034809941 2545304670 0.80
tpch_q11/datafusion:parquet 540165325 500599761 1.08
tpch_q12/datafusion:parquet 677003165 719464745 0.94
tpch_q13/datafusion:parquet 736366161 727888647 1.01
tpch_q14/datafusion:parquet 773463557 860619334 0.90
tpch_q15/datafusion:parquet 1199280407 1368458097 0.88
tpch_q16/datafusion:parquet 🚀 327591099 724107689 0.45
tpch_q17/datafusion:parquet 1324610678 1287633694 1.03
tpch_q18/datafusion:parquet 1484369787 1433789545 1.04
tpch_q19/datafusion:parquet 966337418 940700017 1.03
tpch_q20/datafusion:parquet 1070058911 1132384133 0.94
tpch_q21/datafusion:parquet 1714611807 1719223457 1.00
tpch_q22/datafusion:parquet 638352257 893070616 0.71
duckdb / vortex-file-compressed (1.087x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 622616387 601177085 1.04
tpch_q02/duckdb:vortex-file-compressed 1135910459 1120035593 1.01
tpch_q03/duckdb:vortex-file-compressed 852715186 786895065 1.08
tpch_q04/duckdb:vortex-file-compressed 659086037 617191277 1.07
tpch_q05/duckdb:vortex-file-compressed 1101713048 1065751118 1.03
tpch_q06/duckdb:vortex-file-compressed 663527625 566115153 1.17
tpch_q07/duckdb:vortex-file-compressed 1225670069 1132795034 1.08
tpch_q08/duckdb:vortex-file-compressed 1446004591 1389256114 1.04
tpch_q09/duckdb:vortex-file-compressed 1674548403 1553007832 1.08
tpch_q10/duckdb:vortex-file-compressed 1352701189 1196174191 1.13
tpch_q11/duckdb:vortex-file-compressed 625071712 550621881 1.14
tpch_q12/duckdb:vortex-file-compressed 1324485225 1177826475 1.12
tpch_q13/duckdb:vortex-file-compressed 828367996 769956715 1.08
tpch_q14/duckdb:vortex-file-compressed 685524534 644321111 1.06
tpch_q15/duckdb:vortex-file-compressed 571974520 533798490 1.07
tpch_q16/duckdb:vortex-file-compressed 519856986 472149460 1.10
tpch_q17/duckdb:vortex-file-compressed 1044371596 897779938 1.16
tpch_q18/duckdb:vortex-file-compressed 1051713671 859016803 1.22
tpch_q19/duckdb:vortex-file-compressed 848062732 796709014 1.06
tpch_q20/duckdb:vortex-file-compressed 1235374408 1193752719 1.03
tpch_q21/duckdb:vortex-file-compressed 1960742704 1786728132 1.10
tpch_q22/duckdb:vortex-file-compressed 428224422 408490290 1.05
duckdb / vortex-compact (1.071x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 695420631 628330697 1.11
tpch_q02/duckdb:vortex-compact 1219784192 1111289975 1.10
tpch_q03/duckdb:vortex-compact 919018702 807692482 1.14
tpch_q04/duckdb:vortex-compact 633605132 691625175 0.92
tpch_q05/duckdb:vortex-compact 1187516054 1040166042 1.14
tpch_q06/duckdb:vortex-compact 575910180 554037886 1.04
tpch_q07/duckdb:vortex-compact 1100371948 1173728803 0.94
tpch_q08/duckdb:vortex-compact 1516873627 1367162887 1.11
tpch_q09/duckdb:vortex-compact 1679531127 1504711156 1.12
tpch_q10/duckdb:vortex-compact 1351683103 1236805534 1.09
tpch_q11/duckdb:vortex-compact 710522913 634620659 1.12
tpch_q12/duckdb:vortex-compact 1149822639 1054900983 1.09
tpch_q13/duckdb:vortex-compact 765586703 716343947 1.07
tpch_q14/duckdb:vortex-compact 690498131 604294999 1.14
tpch_q15/duckdb:vortex-compact 574653931 538798333 1.07
tpch_q16/duckdb:vortex-compact 416628269 428528414 0.97
tpch_q17/duckdb:vortex-compact 911833869 828484048 1.10
tpch_q18/duckdb:vortex-compact 865210222 791791927 1.09
tpch_q19/duckdb:vortex-compact 763940822 716247725 1.07
tpch_q20/duckdb:vortex-compact 1112762559 1083666353 1.03
tpch_q21/duckdb:vortex-compact 1846055900 1738808027 1.06
tpch_q22/duckdb:vortex-compact 441578625 400085367 1.10
duckdb / parquet (1.031x ➖, 0↑ 0↓)
name PR 161c079 (ns) base 3048533 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 744655151 834211687 0.89
tpch_q02/duckdb:parquet 1218653806 1183717688 1.03
tpch_q03/duckdb:parquet 1549363816 1624078659 0.95
tpch_q04/duckdb:parquet 850398552 1021280244 0.83
tpch_q05/duckdb:parquet 1783075834 1761099779 1.01
tpch_q06/duckdb:parquet 690886487 649781695 1.06
tpch_q07/duckdb:parquet 1681687084 1627581852 1.03
tpch_q08/duckdb:parquet 2223319479 2045618634 1.09
tpch_q09/duckdb:parquet 2313048345 2253924189 1.03
tpch_q10/duckdb:parquet 2891494184 2789738831 1.04
tpch_q11/duckdb:parquet 899858163 796390885 1.13
tpch_q12/duckdb:parquet 1088846805 1050060993 1.04
tpch_q13/duckdb:parquet 1220387116 1113623096 1.10
tpch_q14/duckdb:parquet 1219080845 1158054738 1.05
tpch_q15/duckdb:parquet 833500041 819882716 1.02
tpch_q16/duckdb:parquet 783330130 821405582 0.95
tpch_q17/duckdb:parquet 1222554571 1163211843 1.05
tpch_q18/duckdb:parquet 1424634481 1205345580 1.18
tpch_q19/duckdb:parquet 1390969351 1307328331 1.06
tpch_q20/duckdb:parquet 1860612965 1691505329 1.10
tpch_q21/duckdb:parquet 1660249895 1634798624 1.02
tpch_q22/duckdb:parquet 1067145077 996293420 1.07

// vendored mimalloc to keep glibc malloc (which varies across runner images) out of the
// measured trace.
#[global_allocator]
static GLOBAL: MiMalloc = MiMalloc;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wat 🙂

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
/// # Safety
///
/// `dst` must be valid for writes of `len` elements.
#[inline(never)]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

straight to jail

///
/// The allocation behind `base` must have room for at least
/// `max(pos, end) + decode_chunk_len::<T>()` elements.
#[inline(always)]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 lifetimes

claude added 4 commits July 24, 2026 13:53
Share the intermediate decode kernels (v0-v2, n2) in benches/shared/
decode_variants.rs so the existing ablation and a new distribution-sweep
ablation measure byte-identical code. The new benchmark sweeps run length
and element width (non-nullable and nullable) plus a validity-density
sweep, reporting decoded-elements/sec throughput so each change can be
attributed to the data distribution it is sensitive to:

- v1/v0 (drop iterator chain + per-run buffer bookkeeping): a per-run
  fixed cost, so it only helps at short runs.
- v2/v1 (chunked splat stores vs push_n_unchecked scalar fill): the large
  win for wide elements at short runs (up to ~5-7x on u32/u64 at run 2),
  fading to parity by run 64+.
- v3/v2 (byte word-splat + memset threshold): the u8 short-run win.
- n2/n0 and n3/n2 (majority-prefill validity): the density sweep shows the
  prefill advantage is smallest at 50/50 validity and grows as validity
  skews either way, symmetric about 50%.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
An earlier revision gave byte elements a dedicated splat path: store a
replicated 0x0101.. word (whose runtime multiply is opaque to LLVM's
loop-idiom pass) so short u8 runs would not collapse into a memset call
per run.

The later unconditional-first-chunk restructuring already prevents that
collapse: a run no longer than one 32-byte chunk completes in the inline,
fixed-length vector stores and never reaches the idiom-collapsible loop.
That makes the word splat redundant, and a same-binary A/B shows it is
also measurably *slower* than just letting bytes use the generic element
path -- the wrapping_mul plus unaligned u64 stores lose to the 16-byte
vector stores LLVM emits for the fixed-length element loop. For u8 the
generic path is 3-26% faster across every run length (e.g. run 16: 6.9 ->
5.9us, run 64: 3.4 -> 2.7us); widths > 1 are unchanged.

Remove the ~35 lines of byte-specific unsafe so all widths share one
splat path. The rejected kernel is preserved as `nonnull_v3_byte_splat`
in run_end_decode_distribution so the comparison stays reproducible.

Verified: decode_matches_reference differential test still passes; u8
decode asm shows inline movdqu stores for short runs with memset only
behind the long-run threshold.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
The long-run fill was an element loop, which the compiler emits at the
baseline target width (16-byte SSE2 stores, movdqu x2 per iteration --
confirmed in the release asm). memcpy, by contrast, is resolved by the
libc at runtime to the widest implementation the host supports (AVX2, or
rep movsb on ERMS parts), so it reaches a store width the compiled loop
cannot.

Seed one cache line by hand, then repeatedly copy the filled prefix onto
the tail. Each memcpy costs a call, so this only pays once the run is long
enough to amortize it: an interleaved fill-level probe puts the crossover
at ~2 KiB for u16/u32/u64 alike (below it doubling is up to 2x slower, at
and above it is 1.1-1.4x faster), so the doubling path is gated on
DOUBLING_FILL_BYTES. Byte elements keep plain memset, which the libc
already dispatches well at every length.

At decode level this is the first win at long runs, where every earlier
change in this branch was at parity with the original kernel:
u32 run 1024 1.38x, u32 run 4096 1.56x, u64 run 256 1.15x,
u64 run 1024 1.22x, u64 run 4096 1.49x. Sub-threshold cells are unchanged
(same code path).

The previous element-loop fill is preserved as nonnull_v3_elem_fill in
run_end_decode_distribution so the comparison stays reproducible, and the
sweep now runs to 4096-element runs so every width crosses the threshold.
The differential test gains a 3000-element run-length case so the doubling
path is covered for every element width.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
A value whose bytes are all equal -- 0, or all-ones (-1 for signed
integers), both common in real columns -- can be filled with a single
memset. memset writes without reading anything back, so it beats the
doubling fill, which re-reads the prefix it just wrote.

Recognise such values with arithmetic on a same-sized integer rather than
a walk over the value bytes, so nothing ever reads padding. This also
subsumes the previous size_of::<T>() == 1 special case: a byte element is
trivially byte-uniform, so it reaches the same memset it did before.

Measured with a within-function data contrast (the same benchmark over
zero-valued versus arbitrary-valued runs), which cancels the codegen-unit
difference described below: +2% to +15% on byte-uniform runs past the fill
threshold, median about +7%, and unchanged for arbitrary values. An
isolated fill-level probe puts the effect higher (1.17-1.32x); the decode
level number is the honest one to quote.

Also document a measurement hazard found while validating this: nonnull_v3
and zeros_v3 call the real kernel across a crate boundary while every
other variant is a bench-local copy that inlines further. That is worth up
to ~40% at short runs on identical algorithms and always favours the
bench-local copy, so shipped-versus-local comparisons are lower bounds.
The header of run_end_decode_distribution now says so.

The differential test now gives a quarter of runs the value zero so the
memset path is covered for every element width.

Signed-off-by: "Joe Isaacs" <joe.isaacs@live.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants