Skip to content

RLEExporter for duckdb#8539

Draft
myrrc wants to merge 2 commits into
developfrom
myrrc/rle-duckdb
Draft

RLEExporter for duckdb#8539
myrrc wants to merge 2 commits into
developfrom
myrrc/rle-duckdb

Conversation

@myrrc

@myrrc myrrc commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

TODO
Depends on #8538
Resolves: #8247

myrrc added 2 commits June 22, 2026 14:09
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc myrrc added action/benchmark Trigger full benchmarks to run on this PR changelog/performance A performance improvement ext/duckdb Relates to the DuckDB integration labels Jun 22, 2026
@github-actions github-actions Bot removed the action/benchmark Trigger full benchmarks to run on this PR label Jun 22, 2026
@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done f1a627e 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: PolarSignals Profiling

Vortex (geomean): 1.009x ➖

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 ➖, 1↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
polarsignals_q00/datafusion:vortex-file-compressed 126603463 117143272 1.08
polarsignals_q01/datafusion:vortex-file-compressed 263205562 268836105 0.98
polarsignals_q02/datafusion:vortex-file-compressed 🚀 25587106 30163526 0.85
polarsignals_q03/datafusion:vortex-file-compressed 288171355 280596777 1.03
polarsignals_q04/datafusion:vortex-file-compressed 10276079 10013325 1.03
polarsignals_q05/datafusion:vortex-file-compressed 13751970 13573934 1.01
polarsignals_q06/datafusion:vortex-file-compressed 21789099 20862885 1.04
polarsignals_q07/datafusion:vortex-file-compressed 12207358 11427005 1.07
polarsignals_q08/datafusion:vortex-file-compressed 406571470 385321330 1.06
polarsignals_q09/datafusion:vortex-file-compressed 12023492 12406173 0.97

No file size changes detected.

@github-actions

Copy link
Copy Markdown
Contributor

🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨

Benchmark TPC-H SF=1 on NVME (full) failed! Check the workflow run for details.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb NVMe

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.3%
Engines: DataFusion No clear signal (-0.8%, low confidence) · DuckDB No clear signal (+0.2%, low confidence)
Vortex (geomean): 0.998x ➖
Parquet (geomean): 1.001x ➖
Shifts: Parquet (control) +0.1% · Median polish +0.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 (0.991x ➖, 1↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 4962312 4944485 1.00
fineweb_q01/datafusion:vortex-file-compressed 34873531 33043763 1.06
fineweb_q02/datafusion:vortex-file-compressed 38393228 37650273 1.02
fineweb_q03/datafusion:vortex-file-compressed 🚀 57107163 70082428 0.81
fineweb_q04/datafusion:vortex-file-compressed 280314597 273052890 1.03
fineweb_q05/datafusion:vortex-file-compressed 223635096 218726179 1.02
fineweb_q06/datafusion:vortex-file-compressed 50859278 50372025 1.01
fineweb_q07/datafusion:vortex-file-compressed 55690146 55784961 1.00
fineweb_q08/datafusion:vortex-file-compressed 22067161 22296707 0.99
datafusion / vortex-compact (1.000x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 5448484 5432514 1.00
fineweb_q01/datafusion:vortex-compact 101794173 97830584 1.04
fineweb_q02/datafusion:vortex-compact 101932322 107510264 0.95
fineweb_q03/datafusion:vortex-compact 871145007 875279144 1.00
fineweb_q04/datafusion:vortex-compact 911576053 913523045 1.00
fineweb_q05/datafusion:vortex-compact 820301707 819022162 1.00
fineweb_q06/datafusion:vortex-compact 465513605 474959438 0.98
fineweb_q07/datafusion:vortex-compact 486110374 479937045 1.01
fineweb_q08/datafusion:vortex-compact 21736073 21202835 1.03
datafusion / parquet (1.003x ➖, 0↑ 1↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 7165084 7039505 1.02
fineweb_q01/datafusion:parquet 283661993 289201348 0.98
fineweb_q02/datafusion:parquet 295220121 297230338 0.99
fineweb_q03/datafusion:parquet 🚨 310971873 279225918 1.11
fineweb_q04/datafusion:parquet 307555736 309082387 1.00
fineweb_q05/datafusion:parquet 295292978 308799080 0.96
fineweb_q06/datafusion:parquet 287567750 290076756 0.99
fineweb_q07/datafusion:parquet 281942797 280785664 1.00
fineweb_q08/datafusion:parquet 275361841 280080218 0.98
duckdb / vortex-file-compressed (1.009x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 3410441 3355148 1.02
fineweb_q01/duckdb:vortex-file-compressed 35657796 33666536 1.06
fineweb_q02/duckdb:vortex-file-compressed 41329442 38920426 1.06
fineweb_q03/duckdb:vortex-file-compressed 113053058 110303929 1.02
fineweb_q04/duckdb:vortex-file-compressed 279454223 272308717 1.03
fineweb_q05/duckdb:vortex-file-compressed 213815407 219800306 0.97
fineweb_q06/duckdb:vortex-file-compressed 50267104 51473487 0.98
fineweb_q07/duckdb:vortex-file-compressed 51371098 51590053 1.00
fineweb_q08/duckdb:vortex-file-compressed 20348321 21262482 0.96
duckdb / vortex-compact (0.992x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 4203455 4375075 0.96
fineweb_q01/duckdb:vortex-compact 104281284 102566443 1.02
fineweb_q02/duckdb:vortex-compact 115584664 111254275 1.04
fineweb_q03/duckdb:vortex-compact 851222244 854581064 1.00
fineweb_q04/duckdb:vortex-compact 899178523 900526774 1.00
fineweb_q05/duckdb:vortex-compact 801812645 798904451 1.00
fineweb_q06/duckdb:vortex-compact 461581410 461681596 1.00
fineweb_q07/duckdb:vortex-compact 474515081 476318026 1.00
fineweb_q08/duckdb:vortex-compact 19558123 21218614 0.92
duckdb / parquet (0.999x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 31002440 34183748 0.91
fineweb_q01/duckdb:parquet 84683928 84315022 1.00
fineweb_q02/duckdb:parquet 85778923 84610829 1.01
fineweb_q03/duckdb:parquet 317677065 316035283 1.01
fineweb_q04/duckdb:parquet 449173699 446495047 1.01
fineweb_q05/duckdb:parquet 416999989 414368783 1.01
fineweb_q06/duckdb:parquet 206487182 204435329 1.01
fineweb_q07/duckdb:parquet 215712099 215490285 1.00
fineweb_q08/duckdb:parquet 33948014 32663261 1.04

File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
File Scale Format Base HEAD Change %
sample.vortex 1.0 vortex-file-compressed 1.43 GB 1.43 GB +32.36 KB +0.0%

Totals:

  • vortex-compact: 1.23 GB → 1.23 GB (0.0%)
  • vortex-file-compressed: 1.43 GB → 1.43 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨

Benchmark TPC-DS SF=1 on NVME (full) failed! Check the workflow run for details.

@codspeed-hq

codspeed-hq Bot commented Jun 22, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 10.44%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚡ 6 improved benchmarks
❌ 11 regressed benchmarks
✅ 1564 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation chunked_bool_canonical_into[(1000, 10)] 20.2 µs 30.9 µs -34.65%
Simulation baseline_eq[4, 65536] 185.5 µs 243.2 µs -23.72%
Simulation take_10k_random 196.1 µs 253.9 µs -22.77%
Simulation baseline_lt[4, 65536] 200.9 µs 258.6 µs -22.34%
Simulation take_10k_contiguous 217.5 µs 275.3 µs -21%
Simulation patched_take_10k_contiguous_patches 230.2 µs 288.9 µs -20.33%
Simulation baseline_eq[16, 65536] 230.5 µs 288.2 µs -20.01%
Simulation patched_take_10k_random 242.8 µs 301.7 µs -19.5%
Simulation baseline_lt[16, 65536] 245.6 µs 303.3 µs -19.04%
Simulation chunked_varbinview_into_canonical[(1000, 10)] 169.5 µs 206.7 µs -18.01%
Simulation decompress_rd[f64, (100000, 0.0)] 843.2 µs 979.8 µs -13.94%
Simulation chunked_varbinview_opt_into_canonical[(1000, 10)] 221.4 µs 184.3 µs +20.1%
Simulation decompress_rd[f64, (100000, 0.01)] 978.3 µs 843.3 µs +16.01%
Simulation chunked_varbinview_canonical_into[(100, 100)] 258.7 µs 223.5 µs +15.73%
Simulation bitwise_not_vortex_buffer_mut[128] 273.6 ns 244.4 ns +11.93%
Simulation chunked_varbinview_opt_canonical_into[(100, 100)] 338.2 µs 304 µs +11.26%
Simulation chunked_varbinview_opt_into_canonical[(100, 100)] 390 µs 353.5 µs +10.34%

Tip

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


Comparing myrrc/rle-duckdb (f1a627e) with develop (e7a7ad9)

Open in CodSpeed

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: FineWeb S3

Verdict: No clear signal (environment too noisy confidence)
Attributed Vortex impact: -2.7%
Engines: DataFusion No clear signal (-4.2%, environment too noisy confidence) · DuckDB No clear signal (-1.2%, low confidence)
Vortex (geomean): 1.075x ➖
Parquet (geomean): 1.105x ➖
Shifts: Parquet (control) +10.5% · Median polish +5.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.269x ➖, 0↑ 3↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-file-compressed 🚨 63569891 34450599 1.85
fineweb_q01/datafusion:vortex-file-compressed 🚨 954209245 492637000 1.94
fineweb_q02/datafusion:vortex-file-compressed 🚨 1114401831 568845877 1.96
fineweb_q03/datafusion:vortex-file-compressed 1283596849 1162786462 1.10
fineweb_q04/datafusion:vortex-file-compressed 1166371807 1151951782 1.01
fineweb_q05/datafusion:vortex-file-compressed 1094419214 1114112033 0.98
fineweb_q06/datafusion:vortex-file-compressed 1318424690 1445888811 0.91
fineweb_q07/datafusion:vortex-file-compressed 1250436794 1136778235 1.10
fineweb_q08/datafusion:vortex-file-compressed 516527216 466751457 1.11
datafusion / vortex-compact (0.942x ➖, 1↑ 0↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/datafusion:vortex-compact 🚀 34502328 49923792 0.69
fineweb_q01/datafusion:vortex-compact 593660934 782879979 0.76
fineweb_q02/datafusion:vortex-compact 955495508 1245481571 0.77
fineweb_q03/datafusion:vortex-compact 1413526070 1444336559 0.98
fineweb_q04/datafusion:vortex-compact 1680513294 1643749463 1.02
fineweb_q05/datafusion:vortex-compact 1356372384 1351846215 1.00
fineweb_q06/datafusion:vortex-compact 1532283905 1330016669 1.15
fineweb_q07/datafusion:vortex-compact 1234312407 1166245784 1.06
fineweb_q08/datafusion:vortex-compact 479314450 403822142 1.19
datafusion / parquet (1.142x ➖, 0↑ 1↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/datafusion:parquet 🚨 1603218107 1185481134 1.35
fineweb_q01/datafusion:parquet 1862899512 1932707017 0.96
fineweb_q02/datafusion:parquet 2538375064 1991912923 1.27
fineweb_q03/datafusion:parquet 2101796808 1960906143 1.07
fineweb_q04/datafusion:parquet 2242134753 1887164012 1.19
fineweb_q05/datafusion:parquet 2422869309 1960185336 1.24
fineweb_q06/datafusion:parquet 2530252631 2228921258 1.14
fineweb_q07/datafusion:parquet 2261465887 2014960250 1.12
fineweb_q08/datafusion:parquet 2101418748 2126748923 0.99
duckdb / vortex-file-compressed (1.068x ➖, 0↑ 1↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-file-compressed 76898148 86322947 0.89
fineweb_q01/duckdb:vortex-file-compressed 🚨 722922304 534513251 1.35
fineweb_q02/duckdb:vortex-file-compressed 861279211 690208989 1.25
fineweb_q03/duckdb:vortex-file-compressed 1319168341 1374970886 0.96
fineweb_q04/duckdb:vortex-file-compressed 1393087233 1531864181 0.91
fineweb_q05/duckdb:vortex-file-compressed 1335958043 1292255215 1.03
fineweb_q06/duckdb:vortex-file-compressed 1825901609 1461481054 1.25
fineweb_q07/duckdb:vortex-file-compressed 1337633728 1290496738 1.04
fineweb_q08/duckdb:vortex-file-compressed 617036795 599902186 1.03
duckdb / vortex-compact (1.047x ➖, 0↑ 1↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/duckdb:vortex-compact 58714776 73713966 0.80
fineweb_q01/duckdb:vortex-compact 586978100 545350629 1.08
fineweb_q02/duckdb:vortex-compact 801455421 657039311 1.22
fineweb_q03/duckdb:vortex-compact 1620440134 1625237920 1.00
fineweb_q04/duckdb:vortex-compact 1785714361 1807549874 0.99
fineweb_q05/duckdb:vortex-compact 1577601121 1519422329 1.04
fineweb_q06/duckdb:vortex-compact 1620156124 1519388320 1.07
fineweb_q07/duckdb:vortex-compact 1360789848 1381763453 0.98
fineweb_q08/duckdb:vortex-compact 🚨 691478890 515232039 1.34
duckdb / parquet (1.071x ➖, 0↑ 0↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
fineweb_q00/duckdb:parquet 1183569013 1120052316 1.06
fineweb_q01/duckdb:parquet 1515663064 1458799476 1.04
fineweb_q02/duckdb:parquet 1446073286 1406942697 1.03
fineweb_q03/duckdb:parquet 4034110349 3723416803 1.08
fineweb_q04/duckdb:parquet 2139989435 1984679573 1.08
fineweb_q05/duckdb:parquet 2304554900 2183888563 1.06
fineweb_q06/duckdb:parquet 4923587123 4412354411 1.12
fineweb_q07/duckdb:parquet 2936702518 2744408323 1.07
fineweb_q08/duckdb:parquet 1231484187 1107322071 1.11

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Statistical and Population Genetics

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -3.2%
Engines: DuckDB No clear signal (-3.2%, low confidence)
Vortex (geomean): 0.848x ✅
Parquet (geomean): 0.876x ✅
Shifts: Parquet (control) -12.4% · Median polish -13.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.

duckdb / vortex-file-compressed (0.821x ✅, 10↑ 0↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-file-compressed 🚀 12511277 14518485 0.86
statpopgen_q01/duckdb:vortex-file-compressed 🚀 27461505 35137108 0.78
statpopgen_q02/duckdb:vortex-file-compressed 🚀 509911851 696421211 0.73
statpopgen_q03/duckdb:vortex-file-compressed 🚀 1061906350 1249846229 0.85
statpopgen_q04/duckdb:vortex-file-compressed 🚀 1056112724 1179715680 0.90
statpopgen_q05/duckdb:vortex-file-compressed 🚀 465937525 550031915 0.85
statpopgen_q06/duckdb:vortex-file-compressed 1529227192 1632143011 0.94
statpopgen_q07/duckdb:vortex-file-compressed 🚀 201585274 263312846 0.77
statpopgen_q08/duckdb:vortex-file-compressed 🚀 227255739 301459180 0.75
statpopgen_q09/duckdb:vortex-file-compressed 🚀 831683819 1024734786 0.81
statpopgen_q10/duckdb:vortex-file-compressed 🚀 2539954100 3103477420 0.82
duckdb / vortex-compact (0.876x ✅, 9↑ 0↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
statpopgen_q00/duckdb:vortex-compact 🚀 11893853 14340478 0.83
statpopgen_q01/duckdb:vortex-compact 🚀 217022650 254234175 0.85
statpopgen_q02/duckdb:vortex-compact 🚀 556389818 621643199 0.90
statpopgen_q03/duckdb:vortex-compact 🚀 1166827760 1307209614 0.89
statpopgen_q04/duckdb:vortex-compact 1156111380 1250587046 0.92
statpopgen_q05/duckdb:vortex-compact 590764919 614663507 0.96
statpopgen_q06/duckdb:vortex-compact 🚀 1506660619 1690753828 0.89
statpopgen_q07/duckdb:vortex-compact 🚀 899042702 1080974164 0.83
statpopgen_q08/duckdb:vortex-compact 🚀 926465376 1125182655 0.82
statpopgen_q09/duckdb:vortex-compact 🚀 944063944 1111899511 0.85
statpopgen_q10/duckdb:vortex-compact 🚀 2607287104 2928660251 0.89
duckdb / parquet (0.876x ✅, 9↑ 0↓)
name PR f1a627e (ns) base 2fb17f1 (ns) ratio (PR/base)
statpopgen_q00/duckdb:parquet 🚀 300414428 341923649 0.88
statpopgen_q01/duckdb:parquet 🚀 386780127 431562337 0.90
statpopgen_q02/duckdb:parquet 🚀 758334176 878000086 0.86
statpopgen_q03/duckdb:parquet 🚀 1185328612 1360435564 0.87
statpopgen_q04/duckdb:parquet 🚀 1190144500 1432558002 0.83
statpopgen_q05/duckdb:parquet 🚀 806472282 945324691 0.85
statpopgen_q06/duckdb:parquet 🚀 1422088791 1654939588 0.86
statpopgen_q07/duckdb:parquet 🚀 852837483 952884351 0.90
statpopgen_q08/duckdb:parquet 864518963 926245940 0.93
statpopgen_q09/duckdb:parquet 1020777151 1110972393 0.92
statpopgen_q10/duckdb:parquet 🚀 2229198286 2656872814 0.84

File Size Changes (1 files changed, +0.0% overall, 1↑ 0↓)
File Scale Format Base HEAD Change %
gnomad.genomes.v3.1.2.hgdp_tgp.chr21.vortex 100000 vortex-file-compressed 1.96 GB 1.96 GB +195.95 KB +0.0%

Totals:

  • vortex-compact: 959.59 MB → 959.59 MB (0.0%)
  • vortex-file-compressed: 1.96 GB → 1.96 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨

Benchmark TPC-H SF=1 on S3 (full) failed! Check the workflow run for details.

@github-actions

Copy link
Copy Markdown
Contributor

🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨

Benchmark Clickbench on NVME (full) failed! Check the workflow run for details.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: TPC-H SF=10 on NVME

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.9%
Engines: DataFusion No clear signal (-2.1%, low confidence) · DuckDB No clear signal (+0.3%, low confidence)
Vortex (geomean): 1.013x ➖
Parquet (geomean): 1.026x ➖
Shifts: Parquet (control) +2.6% · Median polish +1.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.020x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-file-compressed 459146163 445522275 1.03
tpch_q02/datafusion:vortex-file-compressed 107377291 102848287 1.04
tpch_q03/datafusion:vortex-file-compressed 200815028 194367211 1.03
tpch_q04/datafusion:vortex-file-compressed 100463554 97664056 1.03
tpch_q05/datafusion:vortex-file-compressed 347595327 334442974 1.04
tpch_q06/datafusion:vortex-file-compressed 34773769 35712051 0.97
tpch_q07/datafusion:vortex-file-compressed 469797345 451809657 1.04
tpch_q08/datafusion:vortex-file-compressed 342457421 339883886 1.01
tpch_q09/datafusion:vortex-file-compressed 594722326 585787031 1.02
tpch_q10/datafusion:vortex-file-compressed 232687922 228181524 1.02
tpch_q11/datafusion:vortex-file-compressed 80596074 77368109 1.04
tpch_q12/datafusion:vortex-file-compressed 110329074 109381510 1.01
tpch_q13/datafusion:vortex-file-compressed 199979428 197427106 1.01
tpch_q14/datafusion:vortex-file-compressed 49520254 46617651 1.06
tpch_q15/datafusion:vortex-file-compressed 95463152 95315468 1.00
tpch_q16/datafusion:vortex-file-compressed 75044471 75636953 0.99
tpch_q17/datafusion:vortex-file-compressed 580597578 573870097 1.01
tpch_q18/datafusion:vortex-file-compressed 835526709 817138961 1.02
tpch_q19/datafusion:vortex-file-compressed 222730034 223092436 1.00
tpch_q20/datafusion:vortex-file-compressed 157973051 155918982 1.01
tpch_q21/datafusion:vortex-file-compressed 609199240 595560600 1.02
tpch_q22/datafusion:vortex-file-compressed 55593317 54710195 1.02
datafusion / vortex-compact (1.007x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/datafusion:vortex-compact 498174769 500764576 0.99
tpch_q02/datafusion:vortex-compact 108473500 106501660 1.02
tpch_q03/datafusion:vortex-compact 196844428 196585263 1.00
tpch_q04/datafusion:vortex-compact 109729212 110007847 1.00
tpch_q05/datafusion:vortex-compact 340590070 341187820 1.00
tpch_q06/datafusion:vortex-compact 58343231 58231221 1.00
tpch_q07/datafusion:vortex-compact 466947350 462330199 1.01
tpch_q08/datafusion:vortex-compact 351918989 341275993 1.03
tpch_q09/datafusion:vortex-compact 594493535 588255618 1.01
tpch_q10/datafusion:vortex-compact 241168670 240782628 1.00
tpch_q11/datafusion:vortex-compact 78554949 79614119 0.99
tpch_q12/datafusion:vortex-compact 150798394 152056468 0.99
tpch_q13/datafusion:vortex-compact 242130374 244659523 0.99
tpch_q14/datafusion:vortex-compact 65648794 66533044 0.99
tpch_q15/datafusion:vortex-compact 149617222 149640528 1.00
tpch_q16/datafusion:vortex-compact 81356230 80691821 1.01
tpch_q17/datafusion:vortex-compact 578463851 577024492 1.00
tpch_q18/datafusion:vortex-compact 858473093 820987351 1.05
tpch_q19/datafusion:vortex-compact 341251109 324177858 1.05
tpch_q20/datafusion:vortex-compact 181782989 177479791 1.02
tpch_q21/datafusion:vortex-compact 629880334 622443709 1.01
tpch_q22/datafusion:vortex-compact 63632390 63594147 1.00
datafusion / parquet (1.047x ➖, 0↑ 1↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/datafusion:parquet 483436576 483921168 1.00
tpch_q02/datafusion:parquet 182838752 179413722 1.02
tpch_q03/datafusion:parquet 266114922 259062300 1.03
tpch_q04/datafusion:parquet 123236462 119364318 1.03
tpch_q05/datafusion:parquet 415533823 398209526 1.04
tpch_q06/datafusion:parquet 136624722 129396443 1.06
tpch_q07/datafusion:parquet 587607035 554612638 1.06
tpch_q08/datafusion:parquet 468740004 447601977 1.05
tpch_q09/datafusion:parquet 726066081 717368692 1.01
tpch_q10/datafusion:parquet 622904962 575988396 1.08
tpch_q11/datafusion:parquet 🚨 136498645 120619175 1.13
tpch_q12/datafusion:parquet 222282180 218826214 1.02
tpch_q13/datafusion:parquet 359748391 344945195 1.04
tpch_q14/datafusion:parquet 159158952 152108899 1.05
tpch_q15/datafusion:parquet 278258329 256274254 1.09
tpch_q16/datafusion:parquet 126457502 123243903 1.03
tpch_q17/datafusion:parquet 720679808 660774964 1.09
tpch_q18/datafusion:parquet 901800830 861469310 1.05
tpch_q19/datafusion:parquet 293651184 279931419 1.05
tpch_q20/datafusion:parquet 308125053 292124800 1.05
tpch_q21/datafusion:parquet 672147736 649084250 1.04
tpch_q22/datafusion:parquet 213094354 206640054 1.03
datafusion / arrow (1.046x ➖, 0↑ 4↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/datafusion:arrow 692553448 677727601 1.02
tpch_q02/datafusion:arrow 111157325 111764613 0.99
tpch_q03/datafusion:arrow 507950558 490638673 1.04
tpch_q04/datafusion:arrow 365743026 353710982 1.03
tpch_q05/datafusion:arrow 758007406 734623176 1.03
tpch_q06/datafusion:arrow 324664410 316770694 1.02
tpch_q07/datafusion:arrow 🚨 1214490459 1094849021 1.11
tpch_q08/datafusion:arrow 962669219 925884993 1.04
tpch_q09/datafusion:arrow 1076343109 1069746437 1.01
tpch_q10/datafusion:arrow 653167984 605323054 1.08
tpch_q11/datafusion:arrow 92408081 92721541 1.00
tpch_q12/datafusion:arrow 1335835694 1361429659 0.98
tpch_q13/datafusion:arrow 476304777 480144706 0.99
tpch_q14/datafusion:arrow 🚨 390150000 351877059 1.11
tpch_q15/datafusion:arrow 🚨 827297696 718058346 1.15
tpch_q16/datafusion:arrow 🚨 95569563 82495793 1.16
tpch_q17/datafusion:arrow 1004718801 944031161 1.06
tpch_q18/datafusion:arrow 1837926097 1793138809 1.02
tpch_q19/datafusion:arrow 562407205 538223243 1.04
tpch_q20/datafusion:arrow 543644820 496475927 1.10
tpch_q21/datafusion:arrow 3157157795 3089512754 1.02
tpch_q22/datafusion:arrow 81564602 80477682 1.01
duckdb / vortex-file-compressed (1.015x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-file-compressed 169565986 169237864 1.00
tpch_q02/duckdb:vortex-file-compressed 55055703 54911684 1.00
tpch_q03/duckdb:vortex-file-compressed 125311957 122448094 1.02
tpch_q04/duckdb:vortex-file-compressed 167112361 159212467 1.05
tpch_q05/duckdb:vortex-file-compressed 139289561 137370047 1.01
tpch_q06/duckdb:vortex-file-compressed 32039895 31063206 1.03
tpch_q07/duckdb:vortex-file-compressed 136706181 135712175 1.01
tpch_q08/duckdb:vortex-file-compressed 178710105 173025597 1.03
tpch_q09/duckdb:vortex-file-compressed 399726257 396263999 1.01
tpch_q10/duckdb:vortex-file-compressed 195387963 193360055 1.01
tpch_q11/duckdb:vortex-file-compressed 33035326 32322805 1.02
tpch_q12/duckdb:vortex-file-compressed 105650397 105426646 1.00
tpch_q13/duckdb:vortex-file-compressed 271742019 273944729 0.99
tpch_q14/duckdb:vortex-file-compressed 53459423 53305492 1.00
tpch_q15/duckdb:vortex-file-compressed 87820777 86950028 1.01
tpch_q16/duckdb:vortex-file-compressed 79130543 77691018 1.02
tpch_q17/duckdb:vortex-file-compressed 93847418 92331977 1.02
tpch_q18/duckdb:vortex-file-compressed 295017437 293989447 1.00
tpch_q19/duckdb:vortex-file-compressed 80726082 78419482 1.03
tpch_q20/duckdb:vortex-file-compressed 144243071 141718803 1.02
tpch_q21/duckdb:vortex-file-compressed 501784458 488833975 1.03
tpch_q22/duckdb:vortex-file-compressed 63393982 63277583 1.00
duckdb / vortex-compact (1.011x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/duckdb:vortex-compact 229997542 229671597 1.00
tpch_q02/duckdb:vortex-compact 61404953 60667339 1.01
tpch_q03/duckdb:vortex-compact 136895131 134946451 1.01
tpch_q04/duckdb:vortex-compact 173817019 168899943 1.03
tpch_q05/duckdb:vortex-compact 165113445 162817245 1.01
tpch_q06/duckdb:vortex-compact 55715725 54882570 1.02
tpch_q07/duckdb:vortex-compact 174045939 172991467 1.01
tpch_q08/duckdb:vortex-compact 198917531 194814656 1.02
tpch_q09/duckdb:vortex-compact 426876785 424961811 1.00
tpch_q10/duckdb:vortex-compact 224816823 221484230 1.02
tpch_q11/duckdb:vortex-compact 39816401 38621288 1.03
tpch_q12/duckdb:vortex-compact 164722369 163834547 1.01
tpch_q13/duckdb:vortex-compact 323110875 322903307 1.00
tpch_q14/duckdb:vortex-compact 72133238 71214292 1.01
tpch_q15/duckdb:vortex-compact 114648692 112687021 1.02
tpch_q16/duckdb:vortex-compact 80500531 81519058 0.99
tpch_q17/duckdb:vortex-compact 106129738 107759641 0.98
tpch_q18/duckdb:vortex-compact 307615839 291803721 1.05
tpch_q19/duckdb:vortex-compact 96007719 95413080 1.01
tpch_q20/duckdb:vortex-compact 176000835 175421132 1.00
tpch_q21/duckdb:vortex-compact 526942856 526315335 1.00
tpch_q22/duckdb:vortex-compact 70894063 70917365 1.00
duckdb / parquet (1.006x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/duckdb:parquet 263824985 264230091 1.00
tpch_q02/duckdb:parquet 97361821 103663305 0.94
tpch_q03/duckdb:parquet 214223552 208800079 1.03
tpch_q04/duckdb:parquet 135292572 131389133 1.03
tpch_q05/duckdb:parquet 223429731 225863339 0.99
tpch_q06/duckdb:parquet 75293914 75012897 1.00
tpch_q07/duckdb:parquet 186354509 187851473 0.99
tpch_q08/duckdb:parquet 264599883 260086955 1.02
tpch_q09/duckdb:parquet 473347495 462993858 1.02
tpch_q10/duckdb:parquet 622676806 620702347 1.00
tpch_q11/duckdb:parquet 67401874 62298227 1.08
tpch_q12/duckdb:parquet 131491682 130532398 1.01
tpch_q13/duckdb:parquet 441719411 446106867 0.99
tpch_q14/duckdb:parquet 183584892 179655262 1.02
tpch_q15/duckdb:parquet 106179753 103693390 1.02
tpch_q16/duckdb:parquet 164589548 163863263 1.00
tpch_q17/duckdb:parquet 181605315 180345295 1.01
tpch_q18/duckdb:parquet 363379483 361997967 1.00
tpch_q19/duckdb:parquet 282170745 279965885 1.01
tpch_q20/duckdb:parquet 224304686 232191201 0.97
tpch_q21/duckdb:parquet 558370529 554579830 1.01
tpch_q22/duckdb:parquet 294579857 292343020 1.01
duckdb / duckdb (1.004x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
tpch_q01/duckdb:duckdb 120092563 120200854 1.00
tpch_q02/duckdb:duckdb 51423613 49355169 1.04
tpch_q03/duckdb:duckdb 103916475 103560572 1.00
tpch_q04/duckdb:duckdb 137827306 138346854 1.00
tpch_q05/duckdb:duckdb 118816450 117980987 1.01
tpch_q06/duckdb:duckdb 44501323 44444588 1.00
tpch_q07/duckdb:duckdb 91909791 91453331 1.00
tpch_q08/duckdb:duckdb 118547010 118619934 1.00
tpch_q09/duckdb:duckdb 279949229 277595495 1.01
tpch_q10/duckdb:duckdb 214552803 213801983 1.00
tpch_q11/duckdb:duckdb 19315541 19035142 1.01
tpch_q12/duckdb:duckdb 90077296 90193934 1.00
tpch_q13/duckdb:duckdb 228891782 230317077 0.99
tpch_q14/duckdb:duckdb 77978271 77464375 1.01
tpch_q15/duckdb:duckdb 82144985 82146853 1.00
tpch_q16/duckdb:duckdb 76315035 75071000 1.02
tpch_q17/duckdb:duckdb 87992545 88255360 1.00
tpch_q18/duckdb:duckdb 232796615 234411724 0.99
tpch_q19/duckdb:duckdb 124431480 123279661 1.01
tpch_q20/duckdb:duckdb 117390796 117335080 1.00
tpch_q21/duckdb:duckdb 300269489 298512589 1.01
tpch_q22/duckdb:duckdb 67786701 68574021 0.99

File Size Changes (27 files changed, +0.0% overall, 15↑ 12↓)
File Scale Format Base HEAD Change %
part_0.vortex 10.0 vortex-compact 16.86 MB 16.95 MB +95.41 KB +0.6%
partsupp_1.vortex 10.0 vortex-compact 105.14 MB 105.47 MB +342.76 KB +0.3%
supplier_0.vortex 10.0 vortex-file-compressed 5.77 MB 5.79 MB +14.90 KB +0.3%
orders_2.vortex 10.0 vortex-file-compressed 134.48 MB 134.82 MB +344.59 KB +0.3%
orders_0.vortex 10.0 vortex-file-compressed 133.07 MB 133.27 MB +212.77 KB +0.2%
lineitem_8.vortex 10.0 vortex-file-compressed 129.18 MB 129.35 MB +178.49 KB +0.1%
lineitem_7.vortex 10.0 vortex-file-compressed 129.29 MB 129.43 MB +147.77 KB +0.1%
lineitem_2.vortex 10.0 vortex-file-compressed 129.32 MB 129.46 MB +144.51 KB +0.1%
lineitem_3.vortex 10.0 vortex-file-compressed 129.41 MB 129.53 MB +124.97 KB +0.1%
lineitem_5.vortex 10.0 vortex-file-compressed 129.61 MB 129.73 MB +117.48 KB +0.1%
orders_1.vortex 10.0 vortex-file-compressed 134.19 MB 134.31 MB +120.01 KB +0.1%
lineitem_0.vortex 10.0 vortex-file-compressed 129.45 MB 129.52 MB +71.69 KB +0.1%
customer_0.vortex 10.0 vortex-compact 74.09 MB 74.12 MB +26.44 KB +0.0%
partsupp_0.vortex 10.0 vortex-file-compressed 119.72 MB 119.76 MB +40.48 KB +0.0%
partsupp_1.vortex 10.0 vortex-file-compressed 119.77 MB 119.78 MB +13.34 KB +0.0%
lineitem_11.vortex 10.0 vortex-file-compressed 129.21 MB 129.16 MB 50.35 KB -0.0%
lineitem_6.vortex 10.0 vortex-file-compressed 129.54 MB 129.47 MB 69.23 KB -0.1%
lineitem_1.vortex 10.0 vortex-file-compressed 129.30 MB 129.22 MB 83.42 KB -0.1%
lineitem_9.vortex 10.0 vortex-file-compressed 129.28 MB 129.19 MB 93.95 KB -0.1%
lineitem_12.vortex 10.0 vortex-file-compressed 129.53 MB 129.43 MB 94.71 KB -0.1%
lineitem_4.vortex 10.0 vortex-file-compressed 129.45 MB 129.35 MB 105.47 KB -0.1%
part_1.vortex 10.0 vortex-file-compressed 24.86 MB 24.84 MB 21.12 KB -0.1%
customer_0.vortex 10.0 vortex-file-compressed 88.53 MB 88.45 MB 77.52 KB -0.1%
lineitem_10.vortex 10.0 vortex-file-compressed 129.68 MB 129.55 MB 126.39 KB -0.1%
part_0.vortex 10.0 vortex-file-compressed 24.90 MB 24.85 MB 51.78 KB -0.2%
partsupp_0.vortex 10.0 vortex-compact 105.26 MB 104.95 MB 315.56 KB -0.3%
part_1.vortex 10.0 vortex-compact 17.04 MB 16.93 MB 116.60 KB -0.7%

Totals:

  • vortex-compact: 1.93 GB → 1.93 GB (+0.0%)
  • vortex-file-compressed: 2.41 GB → 2.41 GB (+0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Random Access

Vortex (geomean): 1.009x ➖
Parquet (geomean): 1.008x ➖

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.

unknown / unknown (1.001x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
random-access/feature-vectors/correlated/lance-tokio-local-disk 356867 357947 1.00
random-access/feature-vectors/correlated/lance-tokio-local-disk-footer 994187 1029171 0.97
random-access/feature-vectors/correlated/parquet-tokio-local-disk 8430878888 8356562407 1.01
random-access/feature-vectors/correlated/parquet-tokio-local-disk-footer 8360130855 8216403181 1.02
random-access/feature-vectors/correlated/vortex-tokio-local-disk 3267199 3077105 1.06
random-access/feature-vectors/correlated/vortex-tokio-local-disk-footer 2449019 2441791 1.00
random-access/feature-vectors/uniform/lance-tokio-local-disk 1153418 1156378 1.00
random-access/feature-vectors/uniform/lance-tokio-local-disk-footer 1811487 1828281 0.99
random-access/feature-vectors/uniform/parquet-tokio-local-disk 8271086517 8166455973 1.01
random-access/feature-vectors/uniform/parquet-tokio-local-disk-footer 8173012965 8273820156 0.99
random-access/feature-vectors/uniform/vortex-tokio-local-disk 3391042 3324152 1.02
random-access/feature-vectors/uniform/vortex-tokio-local-disk-footer 5548751 5505589 1.01
random-access/lance-tokio-local-disk 617325 631912 0.98
random-access/lance-tokio-local-disk-footer 1275050 1280544 1.00
random-access/nested-lists/correlated/lance-tokio-local-disk 218030 216984 1.00
random-access/nested-lists/correlated/lance-tokio-local-disk-footer 551047 550853 1.00
random-access/nested-lists/correlated/parquet-tokio-local-disk 128315874 127362401 1.01
random-access/nested-lists/correlated/parquet-tokio-local-disk-footer 128328825 126867593 1.01
random-access/nested-lists/correlated/vortex-tokio-local-disk 328386 333206 0.99
random-access/nested-lists/correlated/vortex-tokio-local-disk-footer 436402 419497 1.04
random-access/nested-lists/uniform/lance-tokio-local-disk 979204 1018042 0.96
random-access/nested-lists/uniform/lance-tokio-local-disk-footer 1301311 1344903 0.97
random-access/nested-lists/uniform/parquet-tokio-local-disk 128975101 127301714 1.01
random-access/nested-lists/uniform/parquet-tokio-local-disk-footer 128523469 126847737 1.01
random-access/nested-lists/uniform/vortex-tokio-local-disk 1822990 1824192 1.00
random-access/nested-lists/uniform/vortex-tokio-local-disk-footer 1942607 1980142 0.98
random-access/nested-structs/correlated/lance-tokio-local-disk 349406 347073 1.01
random-access/nested-structs/correlated/lance-tokio-local-disk-footer 525345 518275 1.01
random-access/nested-structs/correlated/parquet-tokio-local-disk 20195465 19803280 1.02
random-access/nested-structs/correlated/parquet-tokio-local-disk-footer 20793975 20126618 1.03
random-access/nested-structs/correlated/vortex-tokio-local-disk 398607 393806 1.01
random-access/nested-structs/correlated/vortex-tokio-local-disk-footer 558266 556152 1.00
random-access/nested-structs/uniform/lance-tokio-local-disk 2404446 2407249 1.00
random-access/nested-structs/uniform/lance-tokio-local-disk-footer 2570178 2671537 0.96
random-access/nested-structs/uniform/parquet-tokio-local-disk 20496416 20397173 1.00
random-access/nested-structs/uniform/parquet-tokio-local-disk-footer 20239493 20111344 1.01
random-access/nested-structs/uniform/vortex-tokio-local-disk 1027590 996301 1.03
random-access/nested-structs/uniform/vortex-tokio-local-disk-footer 1251437 1237084 1.01
random-access/parquet-tokio-local-disk 166747268 166256407 1.00
random-access/parquet-tokio-local-disk-footer 165316810 165060463 1.00
random-access/taxi/correlated/lance-tokio-local-disk 919835 937517 0.98
random-access/taxi/correlated/lance-tokio-local-disk-footer 1756736 1792106 0.98
random-access/taxi/correlated/parquet-tokio-local-disk 250305617 250385722 1.00
random-access/taxi/correlated/parquet-tokio-local-disk-footer 249856718 248567649 1.01
random-access/taxi/correlated/vortex-tokio-local-disk 1051153 1087063 0.97
random-access/taxi/correlated/vortex-tokio-local-disk-footer 1672360 1673046 1.00
random-access/taxi/uniform/lance-tokio-local-disk 9024871 9388230 0.96
random-access/taxi/uniform/lance-tokio-local-disk-footer 9990401 9891663 1.01
random-access/taxi/uniform/parquet-tokio-local-disk 264110449 262337369 1.01
random-access/taxi/uniform/parquet-tokio-local-disk-footer 262909900 266434835 0.99
random-access/taxi/uniform/vortex-tokio-local-disk 3588041 3535606 1.01
random-access/taxi/uniform/vortex-tokio-local-disk-footer 4141389 4118306 1.01
random-access/vortex-tokio-local-disk 691684 684888 1.01
random-access/vortex-tokio-local-disk-footer 1134718 1128707 1.01

@github-actions

Copy link
Copy Markdown
Contributor

🚨🚨🚨❌❌❌ SQL BENCHMARK FAILED ❌❌❌🚨🚨🚨

Benchmark TPC-H SF=10 on S3 (full) failed! Check the workflow run for details.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Appian on NVME

Verdict: No clear signal (low confidence)
Attributed Vortex impact: -0.4%
Engines: DataFusion No clear signal (+0.3%, low confidence) · DuckDB No clear signal (-1.0%, low confidence)
Vortex (geomean): 0.978x ➖
Parquet (geomean): 0.979x ➖
Shifts: Parquet (control) -2.1% · Median polish -3.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.976x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
appian_q01/datafusion:vortex-file-compressed 129039095 128102840 1.01
appian_q02/datafusion:vortex-file-compressed 594274154 609405514 0.98
appian_q03/datafusion:vortex-file-compressed 344948253 353853713 0.97
appian_q04/datafusion:vortex-file-compressed 44423964378 45483999314 0.98
appian_q05/datafusion:vortex-file-compressed 246650574 261345096 0.94
appian_q06/datafusion:vortex-file-compressed 339327375 347824804 0.98
appian_q07/datafusion:vortex-file-compressed 417290107 425986893 0.98
appian_q08/datafusion:vortex-file-compressed 1937985587 1992765340 0.97
datafusion / parquet (0.973x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
appian_q01/datafusion:parquet 127653890 133468155 0.96
appian_q02/datafusion:parquet 602515012 624357954 0.97
appian_q03/datafusion:parquet 324083485 337161334 0.96
appian_q04/datafusion:parquet 44402288801 45324529488 0.98
appian_q05/datafusion:parquet 275670687 286299934 0.96
appian_q06/datafusion:parquet 352862166 362223823 0.97
appian_q07/datafusion:parquet 453046673 446593327 1.01
appian_q08/datafusion:parquet 1924257174 1983653867 0.97
duckdb / vortex-file-compressed (0.981x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
appian_q01/duckdb:vortex-file-compressed 193661937 198562985 0.98
appian_q02/duckdb:vortex-file-compressed 621556715 637786652 0.97
appian_q03/duckdb:vortex-file-compressed 260674493 273928799 0.95
appian_q04/duckdb:vortex-file-compressed 1319033925 1342197744 0.98
appian_q05/duckdb:vortex-file-compressed 294237862 301774087 0.98
appian_q06/duckdb:vortex-file-compressed 803538956 798181412 1.01
appian_q07/duckdb:vortex-file-compressed 345354891 348243722 0.99
appian_q08/duckdb:vortex-file-compressed 1295266139 1309012660 0.99
duckdb / parquet (0.985x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
appian_q01/duckdb:parquet 201300550 207331016 0.97
appian_q02/duckdb:parquet 605383275 621540411 0.97
appian_q03/duckdb:parquet 290773915 292562365 0.99
appian_q04/duckdb:parquet 1322794645 1335696267 0.99
appian_q05/duckdb:parquet 315280268 320002596 0.99
appian_q06/duckdb:parquet 798589681 795993926 1.00
appian_q07/duckdb:parquet 360666029 371807879 0.97
appian_q08/duckdb:parquet 1271573603 1281512667 0.99
duckdb / duckdb (0.970x ➖, 0↑ 0↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
appian_q01/duckdb:duckdb 172126985 178943418 0.96
appian_q02/duckdb:duckdb 545325970 568242094 0.96
appian_q03/duckdb:duckdb 391063717 414690105 0.94
appian_q04/duckdb:duckdb 1308484806 1314585833 1.00
appian_q05/duckdb:duckdb 279775943 289891630 0.97
appian_q06/duckdb:duckdb 789641987 790184643 1.00
appian_q07/duckdb:duckdb 325069059 338800335 0.96
appian_q08/duckdb:duckdb 1221820006 1254524615 0.97

File Size Changes (4 files changed, -0.0% overall, 1↑ 3↓)
File Scale Format Base HEAD Change %
creditcardview.vortex 1.0 vortex-file-compressed 58.29 MB 58.32 MB +31.70 KB +0.1%
addressview.vortex 1.0 vortex-file-compressed 34.61 MB 34.61 MB 16 B -0.0%
orderview.vortex 1.0 vortex-file-compressed 76.16 MB 76.11 MB 47.34 KB -0.1%
duckdb.db 1.0 vortex-compact 268.00 KB 0 B 268.00 KB -100.0%

Totals:

  • vortex-compact: 271.94 MB → 271.68 MB (-0.1%)
  • vortex-file-compressed: 476.47 MB → 476.46 MB (-0.0%)

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Compression

Vortex (geomean): 1.003x ➖
Parquet (geomean): 1.007x ➖

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.

unknown / unknown (1.009x ➖, 3↑ 5↓)
name PR f1a627e (ns) base e7a7ad9 (ns) ratio (PR/base)
compress time/Arade 1699628170 1669061138 1.02
compress time/Bimbo 6587038310 6347878001 1.04
compress time/CMSprovider 4889944955 4865896516 1.00
compress time/Euro2016 749839829 711741648 1.05
compress time/Food 685115483 625196663 1.10
compress time/HashTags 1291576031 1287801427 1.00
compress time/TPC-H l_comment canonical 2862359079 2771203939 1.03
compress time/TPC-H l_comment chunked 2871394058 2773585439 1.04
compress time/taxi 872739370 852406970 1.02
compress time/wide table cols=100 chunks=1 rows=1000 12017971 13207494 0.91
compress time/wide table cols=100 chunks=50 rows=1000 12952291 12158436 1.07
compress time/wide table cols=1000 chunks=1 rows=1000 138429726 149025134 0.93
compress time/wide table cols=1000 chunks=50 rows=1000 138483367 130851988 1.06
compress time/wide table cols=10000 chunks=1 rows=1000 1565744121 1541788168 1.02
compress time/wide table cols=10000 chunks=50 rows=1000 1542006696 1520131688 1.01
decompress time/Arade 🚨 30020135 26684883 1.12
decompress time/Bimbo 84175756 80991668 1.04
decompress time/CMSprovider 83361476 78901421 1.06
decompress time/Euro2016 19999122 19260261 1.04
decompress time/Food 8879428 8444060 1.05
decompress time/HashTags 98810450 97788396 1.01
decompress time/TPC-H l_comment canonical 42847336 44289198 0.97
decompress time/TPC-H l_comment chunked 43749743 42139070 1.04
decompress time/taxi 15398888 15364193 1.00
decompress time/wide table cols=100 chunks=1 rows=1000 2674709 2818912 0.95
decompress time/wide table cols=100 chunks=50 rows=1000 2592083 2646948 0.98
decompress time/wide table cols=1000 chunks=1 rows=1000 🚀 22940665 25701090 0.89
decompress time/wide table cols=1000 chunks=50 rows=1000 23293426 22204675 1.05
decompress time/wide table cols=10000 chunks=1 rows=1000 266468774 247782244 1.08
decompress time/wide table cols=10000 chunks=50 rows=1000 🚨 271908601 245583742 1.11
parquet size/Arade 258014282 258014282 1.00
parquet size/Bimbo 384517292 384517292 1.00
parquet size/CMSprovider 376885545 376885545 1.00
parquet size/Euro2016 122975499 122975499 1.00
parquet size/Food 35699500 35699500 1.00
parquet size/HashTags 133510943 133510943 1.00
parquet size/TPC-H l_comment canonical 158358238 158358238 1.00
parquet size/TPC-H l_comment chunked 158358238 158358238 1.00
parquet size/taxi 55283635 55283635 1.00
parquet size/wide table cols=100 chunks=1 rows=1000 932404 932404 1.00
parquet size/wide table cols=100 chunks=50 rows=1000 932404 932404 1.00
parquet size/wide table cols=1000 chunks=1 rows=1000 9324004 9324004 1.00
parquet size/wide table cols=1000 chunks=50 rows=1000 9324004 9324004 1.00
parquet size/wide table cols=10000 chunks=1 rows=1000 93240004 93240004 1.00
parquet size/wide table cols=10000 chunks=50 rows=1000 93240004 93240004 1.00
parquet_rs-zstd compress time/Arade 2635131377 2594160836 1.02
parquet_rs-zstd compress time/Bimbo 12633647102 12714503032 0.99
parquet_rs-zstd compress time/CMSprovider 7130500575 6725117018 1.06
parquet_rs-zstd compress time/Euro2016 1353634979 1293218682 1.05
parquet_rs-zstd compress time/Food 809566735 792998524 1.02
parquet_rs-zstd compress time/HashTags 2287492085 2165336679 1.06
parquet_rs-zstd compress time/TPC-H l_comment canonical 3230384811 3213282242 1.01
parquet_rs-zstd compress time/TPC-H l_comment chunked 3236383442 3199199890 1.01
parquet_rs-zstd compress time/taxi 1207355628 1190202594 1.01
parquet_rs-zstd compress time/wide table cols=100 chunks=1 rows=1000 6544352 6210985 1.05
parquet_rs-zstd compress time/wide table cols=100 chunks=50 rows=1000 6405120 6120240 1.05
parquet_rs-zstd compress time/wide table cols=1000 chunks=1 rows=1000 76656822 82568940 0.93
parquet_rs-zstd compress time/wide table cols=1000 chunks=50 rows=1000 77665001 77380649 1.00
parquet_rs-zstd compress time/wide table cols=10000 chunks=1 rows=1000 786587335 854877910 0.92
parquet_rs-zstd compress time/wide table cols=10000 chunks=50 rows=1000 776302509 804838838 0.96
parquet_rs-zstd decompress time/Arade 626203982 621509764 1.01
parquet_rs-zstd decompress time/Bimbo 1712899814 1678546420 1.02
parquet_rs-zstd decompress time/CMSprovider 1755178627 1714683888 1.02
parquet_rs-zstd decompress time/Euro2016 386387738 375394881 1.03
parquet_rs-zstd decompress time/Food 201131975 197386806 1.02
parquet_rs-zstd decompress time/HashTags 🚨 706039771 627986722 1.12
parquet_rs-zstd decompress time/TPC-H l_comment canonical 609919390 595442327 1.02
parquet_rs-zstd decompress time/TPC-H l_comment chunked 609853011 587572662 1.04
parquet_rs-zstd decompress time/taxi 251121614 244568506 1.03
parquet_rs-zstd decompress time/wide table cols=100 chunks=1 rows=1000 2874886 2904352 0.99
parquet_rs-zstd decompress time/wide table cols=100 chunks=50 rows=1000 2864492 2761873 1.04
parquet_rs-zstd decompress time/wide table cols=1000 chunks=1 rows=1000 33784553 36434472 0.93
parquet_rs-zstd decompress time/wide table cols=1000 chunks=50 rows=1000 34774154 33850740 1.03
parquet_rs-zstd decompress time/wide table cols=10000 chunks=1 rows=1000 349981091 349128455 1.00
parquet_rs-zstd decompress time/wide table cols=10000 chunks=50 rows=1000 355799470 347983041 1.02
vortex-file-compressed size/Arade 145358060 145358060 1.00
vortex-file-compressed size/Bimbo 467257556 467257556 1.00
vortex-file-compressed size/CMSprovider 417828028 417827868 1.00
vortex-file-compressed size/Euro2016 157446284 157963148 1.00
vortex-file-compressed size/Food 41976800 41976800 1.00
vortex-file-compressed size/HashTags 185342396 185097300 1.00
vortex-file-compressed size/TPC-H l_comment canonical 171990720 172211560 1.00
vortex-file-compressed size/TPC-H l_comment chunked 172014632 171966112 1.00
vortex-file-compressed size/taxi 52296276 52296276 1.00
vortex-file-compressed size/wide table cols=100 chunks=1 rows=1000 932512 932512 1.00
vortex-file-compressed size/wide table cols=100 chunks=50 rows=1000 932512 932512 1.00
vortex-file-compressed size/wide table cols=1000 chunks=1 rows=1000 9309712 9309712 1.00
vortex-file-compressed size/wide table cols=1000 chunks=50 rows=1000 9309712 9309712 1.00
vortex-file-compressed size/wide table cols=10000 chunks=1 rows=1000 93117712 93117712 1.00
vortex-file-compressed size/wide table cols=10000 chunks=50 rows=1000 93117712 93117712 1.00
vortex:parquet-zstd ratio compress time/Arade 0 0 1.00
vortex:parquet-zstd ratio compress time/Bimbo 0 0 1.04
vortex:parquet-zstd ratio compress time/CMSprovider 0 0 0.95
vortex:parquet-zstd ratio compress time/Euro2016 0 0 1.01
vortex:parquet-zstd ratio compress time/Food 0 0 1.07
vortex:parquet-zstd ratio compress time/HashTags 0 0 0.95
vortex:parquet-zstd ratio compress time/TPC-H l_comment canonical 0 0 1.03
vortex:parquet-zstd ratio compress time/TPC-H l_comment chunked 0 0 1.02
vortex:parquet-zstd ratio compress time/taxi 0 0 1.01
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=1 rows=1000 🚀 1 2 0.86
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=50 rows=1000 2 1 1.02
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=1 rows=1000 1 1 1.00
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=50 rows=1000 1 1 1.05
vortex:parquet-zstd ratio compress time/wide table cols=10000 chunks=1 rows=1000 🚨 1 1 1.10
vortex:parquet-zstd ratio compress time/wide table cols=10000 chunks=50 rows=1000 1 1 1.05
vortex:parquet-zstd ratio decompress time/Arade 🚨 0 0 1.12
vortex:parquet-zstd ratio decompress time/Bimbo 0 0 1.02
vortex:parquet-zstd ratio decompress time/CMSprovider 0 0 1.03
vortex:parquet-zstd ratio decompress time/Euro2016 0 0 1.01
vortex:parquet-zstd ratio decompress time/Food 0 0 1.03
vortex:parquet-zstd ratio decompress time/HashTags 🚀 0 0 0.90
vortex:parquet-zstd ratio decompress time/TPC-H l_comment canonical 0 0 0.94
vortex:parquet-zstd ratio decompress time/TPC-H l_comment chunked 0 0 1.00
vortex:parquet-zstd ratio decompress time/taxi 0 0 0.98
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=1 rows=1000 0 0 0.96
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=50 rows=1000 0 0 0.94
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=1 rows=1000 0 0 0.96
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=50 rows=1000 0 0 1.02
vortex:parquet-zstd ratio decompress time/wide table cols=10000 chunks=1 rows=1000 0 0 1.07
vortex:parquet-zstd ratio decompress time/wide table cols=10000 chunks=50 rows=1000 0 0 1.08
vortex:parquet-zstd size/Arade 0 0 1.00
vortex:parquet-zstd size/Bimbo 1 1 1.00
vortex:parquet-zstd size/CMSprovider 1 1 1.00
vortex:parquet-zstd size/Euro2016 1 1 1.00
vortex:parquet-zstd size/Food 1 1 1.00
vortex:parquet-zstd size/HashTags 1 1 1.00
vortex:parquet-zstd size/TPC-H l_comment canonical 1 1 1.00
vortex:parquet-zstd size/TPC-H l_comment chunked 1 1 1.00
vortex:parquet-zstd size/taxi 0 0 1.00
vortex:parquet-zstd size/wide table cols=100 chunks=1 rows=1000 1 1 1.00
vortex:parquet-zstd size/wide table cols=100 chunks=50 rows=1000 1 1 1.00
vortex:parquet-zstd size/wide table cols=1000 chunks=1 rows=1000 0 0 1.00
vortex:parquet-zstd size/wide table cols=1000 chunks=50 rows=1000 0 0 1.00
vortex:parquet-zstd size/wide table cols=10000 chunks=1 rows=1000 0 0 1.00
vortex:parquet-zstd size/wide table cols=10000 chunks=50 rows=1000 0 0 1.00

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/performance A performance improvement ext/duckdb Relates to the DuckDB integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a RLE array exporter to duckdb

1 participant