Skip to content

feat(bench): add Arrow IPC benchmark baselines - #9624

Open
lwwmanning wants to merge 8 commits into
developfrom
wm/arrow-benchmarks
Open

feat(bench): add Arrow IPC benchmark baselines#9624
lwwmanning wants to merge 8 commits into
developfrom
wm/arrow-benchmarks

Conversation

@lwwmanning

@lwwmanning lwwmanning commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Add arrow-ipc as an on-disk format in the compression-size, compression-throughput, and random-access benchmark suites.

Compression benchmark runs emit Arrow IPC file sizes, serialization and deserialization timings, and decoded in-memory Arrow bytes as uncompressed_bytes. Random-access runs read row-addressable Arrow IPC files.

The decoded Arrow byte count supplies logical throughput and compression-ratio estimates. The Arrow IPC rows remain file-format results. The develop workflow emits these records across the existing dataset matrix.

Signed-off-by: Will Manning <will@willmanning.io>
@lwwmanning lwwmanning added the changelog/skip Do not list PR in the changelog label Aug 25, 2026
@lwwmanning
lwwmanning marked this pull request as ready for review August 25, 2026 19:14
@lwwmanning
lwwmanning enabled auto-merge (squash) August 25, 2026 19:17

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 02ec38b6e9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread benchmarks/compress-bench/src/arrow.rs
Comment thread benchmarks/compress-bench/src/main.rs Outdated
Comment thread benchmarks/random-access-bench/src/lib.rs Outdated
@codspeed-hq

codspeed-hq Bot commented Aug 25, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 29%

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

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

⚡ 3 improved benchmarks
✅ 2109 untouched benchmarks
⏩ 106 skipped benchmarks1
🗄️ 4 archived benchmarks run2

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime arrow_checked_add_u32_neon[16384] 20.4 µs 13.6 µs +50.57%
WallTime arrow_checked_add_u32_avx512[16384] 21.3 µs 17.7 µs +20.43%
Simulation take[duplicates/repeated/primitive/nonnull/chunks=16/indices=1000] 245 µs 207 µs +18.39%

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing wm/arrow-benchmarks (6a5a606) with develop (ee1ac25)

Open in CodSpeed

Footnotes

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

  2. 4 benchmarks were run, but are now archived. If they were deleted in another branch, consider rebasing to remove them from the report. Instead if they were added back, click here to restore them.

@lwwmanning
lwwmanning disabled auto-merge August 25, 2026 19:28
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
@lwwmanning lwwmanning changed the title feat: add Arrow benchmark baselines feat: add Arrow IPC benchmark baselines Aug 25, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e32bd29438

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread benchmarks/compress-bench/src/main.rs
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
Signed-off-by: Will Manning <will@willmanning.io>
@lwwmanning lwwmanning changed the title feat: add Arrow IPC benchmark baselines feat(bench): add Arrow IPC benchmark baselines Aug 25, 2026
@lwwmanning
lwwmanning enabled auto-merge (squash) August 25, 2026 21:13
@connortsui20 connortsui20 added the action/bench-compress Run only the compression benchmark on this PR label Aug 25, 2026
@github-actions github-actions Bot removed the action/bench-compress Run only the compression benchmark on this PR label Aug 25, 2026
VORTEX_EXPERIMENTAL_PATCHED_ARRAY: "1"
FLAT_LAYOUT_INLINE_ARRAY_NODE: "1"
run: |
python3 scripts/random-access-split.py --emit-ingest-records

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

am realizing we probably should specify all the formats here too, wont block

@connortsui20 connortsui20 added action/bench-random-access Run only the random-access benchmark on this PR action/bench-random-access-s3 labels Aug 25, 2026
@github-actions github-actions Bot removed the action/bench-random-access Run only the random-access benchmark on this PR label Aug 25, 2026
@connortsui20 connortsui20 added changelog/ci and removed changelog/skip Do not list PR in the changelog labels Aug 25, 2026
@connortsui20
connortsui20 disabled auto-merge August 25, 2026 21:31
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 6a5a606 compress-bench 1 Explore Profiling Data
Previous Runs (2)
Status Commit Job Attempt Link
🟢 Done fb52b57 random-access-bench 1 Explore Profiling Data
🟢 Done fb52b57 compress-bench 1 Explore Profiling Data

Powered by Polar Signals Cloud

@connortsui20 connortsui20 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Compression 📖

Commits: PR 6a5a6063 vs base ee1ac252


vortex / vortex-file-compressed / ns (0.978x ➖, 2↑ 0↓)
name ns (PR / base / %diff)
compress time/Arade 1172965344 / 1310069391 / -10.5% 🟢
compress time/Bimbo 4959903489 / 5218795629 / -5.0%
compress time/CMSprovider 3938242661 / 4115522944 / -4.3%
compress time/Euro2016 493290137 / 506156633 / -2.5%
compress time/Food 426669659 / 436489123 / -2.2%
compress time/HashTags 918383256 / 928850192 / -1.1%
compress time/TPC-H l_comment canonical 1157253573 / 1184424726 / -2.3%
compress time/TPC-H l_comment chunked 1166491997 / 1152866648 / +1.2%
compress time/taxi 587412311 / 563730399 / +4.2%
compress time/wide table cols=100 chunks=1 rows=1000 8166370 / 8271276 / -1.3%
compress time/wide table cols=100 chunks=50 rows=1000 8213630 / 8265251 / -0.6%
compress time/wide table cols=1000 chunks=1 rows=1000 84277906 / 84958882 / -0.8%
compress time/wide table cols=1000 chunks=50 rows=1000 83371476 / 84792330 / -1.7%
compress time/wide table cols=10000 chunks=1 rows=1000 978894889 / 985678465 / -0.7%
compress time/wide table cols=10000 chunks=50 rows=1000 973123589 / 1009715927 / -3.6%
decompress time/Arade 26931805 / 25813122 / +4.3%
decompress time/Bimbo 94630346 / 96035586 / -1.5%
decompress time/CMSprovider 78625539 / 81343091 / -3.3%
decompress time/Euro2016 15324011 / 15751215 / -2.7%
decompress time/Food 7170193 / 7148071 / +0.3%
decompress time/HashTags 104470137 / 111059490 / -5.9%
decompress time/TPC-H l_comment canonical 34371896 / 35046873 / -1.9%
decompress time/TPC-H l_comment chunked 34369468 / 34362030 / +0.0%
decompress time/taxi 14288571 / 14935118 / -4.3%
decompress time/wide table cols=100 chunks=1 rows=1000 2263783 / 2280024 / -0.7%
decompress time/wide table cols=100 chunks=50 rows=1000 2273217 / 2309242 / -1.6%
decompress time/wide table cols=1000 chunks=1 rows=1000 22740393 / 22475529 / +1.2%
decompress time/wide table cols=1000 chunks=50 rows=1000 22308997 / 22967453 / -2.9%
decompress time/wide table cols=10000 chunks=1 rows=1000 261523482 / 302607947 / -13.6% 🟢
decompress time/wide table cols=10000 chunks=50 rows=1000 260590563 / 264488735 / -1.5%
vortex / vortex-file-compressed / bytes (1.000x ➖, 0↑ 0↓)
name bytes (PR / base / %diff)
vortex-file-compressed size/Arade 144460892 / 144460892 / +0.0%
vortex-file-compressed size/Bimbo 461842820 / 461842820 / +0.0%
vortex-file-compressed size/CMSprovider 415192372 / 415192372 / +0.0%
vortex-file-compressed size/Euro2016 157674316 / 157458612 / +0.1%
vortex-file-compressed size/Food 41581536 / 41581536 / +0.0%
vortex-file-compressed size/HashTags 177840236 / 177840236 / +0.0%
vortex-file-compressed size/TPC-H l_comment canonical 163453296 / 163453296 / +0.0%
vortex-file-compressed size/TPC-H l_comment chunked 163453296 / 163453296 / +0.0%
vortex-file-compressed size/taxi 51475100 / 51475100 / +0.0%
vortex-file-compressed size/wide table cols=100 chunks=1 rows=1000 932656 / 932656 / +0.0%
vortex-file-compressed size/wide table cols=100 chunks=50 rows=1000 932656 / 932656 / +0.0%
vortex-file-compressed size/wide table cols=1000 chunks=1 rows=1000 9309856 / 9309856 / +0.0%
vortex-file-compressed size/wide table cols=1000 chunks=50 rows=1000 9309856 / 9309856 / +0.0%
vortex-file-compressed size/wide table cols=10000 chunks=1 rows=1000 93117856 / 93117856 / +0.0%
vortex-file-compressed size/wide table cols=10000 chunks=50 rows=1000 93117856 / 93117856 / +0.0%
vortex / vortex-file-compressed / ratio (0.988x ➖, 2↑ 0↓)
name ratio (PR / base / %diff)
vortex:parquet-zstd ratio compress time/Arade 0.395735626 / 0.441875312 / -10.4% 🟢
vortex:parquet-zstd ratio compress time/Bimbo 0.349317015 / 0.364300904 / -4.1%
vortex:parquet-zstd ratio compress time/CMSprovider 0.50043592 / 0.529123619 / -5.4%
vortex:parquet-zstd ratio compress time/Euro2016 0.325854334 / 0.336391642 / -3.1%
vortex:parquet-zstd ratio compress time/Food 0.469635246 / 0.477136263 / -1.6%
vortex:parquet-zstd ratio compress time/HashTags 0.376470557 / 0.38027593 / -1.0%
vortex:parquet-zstd ratio compress time/TPC-H l_comment canonical 0.316738456 / 0.324396114 / -2.4%
vortex:parquet-zstd ratio compress time/TPC-H l_comment chunked 0.317973842 / 0.313082641 / +1.6%
vortex:parquet-zstd ratio compress time/taxi 0.429715371 / 0.411287466 / +4.5%
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=1 rows=1000 1.30323725 / 1.3216148 / -1.4%
vortex:parquet-zstd ratio compress time/wide table cols=100 chunks=50 rows=1000 1.32246855 / 1.34449439 / -1.6%
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=1 rows=1000 1.12357742 / 1.1414605 / -1.6%
vortex:parquet-zstd ratio compress time/wide table cols=1000 chunks=50 rows=1000 1.10657112 / 1.10070522 / +0.5%
vortex:parquet-zstd ratio compress time/wide table cols=10000 chunks=1 rows=1000 1.24201933 / 1.26166745 / -1.6%
vortex:parquet-zstd ratio compress time/wide table cols=10000 chunks=50 rows=1000 1.23326466 / 1.26755508 / -2.7%
vortex:parquet-zstd ratio decompress time/Arade 0.0379474151 / 0.036159446 / +4.9%
vortex:parquet-zstd ratio decompress time/Bimbo 0.0490151776 / 0.0498646836 / -1.7%
vortex:parquet-zstd ratio decompress time/CMSprovider 0.0403469289 / 0.0416887273 / -3.2%
vortex:parquet-zstd ratio decompress time/Euro2016 0.0354456302 / 0.0363320512 / -2.4%
vortex:parquet-zstd ratio decompress time/Food 0.0321002899 / 0.0316959232 / +1.3%
vortex:parquet-zstd ratio decompress time/HashTags 0.14993658 / 0.155865511 / -3.8%
vortex:parquet-zstd ratio decompress time/TPC-H l_comment canonical 0.0508798604 / 0.0520103002 / -2.2%
vortex:parquet-zstd ratio decompress time/TPC-H l_comment chunked 0.0508872986 / 0.0507459476 / +0.3%
vortex:parquet-zstd ratio decompress time/taxi 0.0507622694 / 0.0521498342 / -2.7%
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=1 rows=1000 0.961681149 / 0.950984363 / +1.1%
vortex:parquet-zstd ratio decompress time/wide table cols=100 chunks=50 rows=1000 0.971726028 / 0.982951056 / -1.1%
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=1 rows=1000 0.852159385 / 0.842067866 / +1.2%
vortex:parquet-zstd ratio decompress time/wide table cols=1000 chunks=50 rows=1000 0.815341395 / 0.806343421 / +1.1%
vortex:parquet-zstd ratio decompress time/wide table cols=10000 chunks=1 rows=1000 0.875274933 / 1.01276771 / -13.6% 🟢
vortex:parquet-zstd ratio decompress time/wide table cols=10000 chunks=50 rows=1000 0.857560717 / 0.860667169 / -0.4%
vortex:parquet-zstd size/Arade 0.559894944 / 0.559894944 / -0.0%
vortex:parquet-zstd size/Bimbo 1.20109766 / 1.20109766 / -0.0%
vortex:parquet-zstd size/CMSprovider 1.10164048 / 1.10164048 / -0.0%
vortex:parquet-zstd size/Euro2016 1.28216041 / 1.28040637 / +0.1%
vortex:parquet-zstd size/Food 1.16476522 / 1.16476522 / -0.0%
vortex:parquet-zstd size/HashTags 1.33202741 / 1.33202741 / +0.0%
vortex:parquet-zstd size/TPC-H l_comment canonical 1.03217425 / 1.03217425 / +0.0%
vortex:parquet-zstd size/TPC-H l_comment chunked 1.03217425 / 1.03217425 / +0.0%
vortex:parquet-zstd size/taxi 0.931109179 / 0.931109179 / +0.0%
vortex:parquet-zstd size/wide table cols=100 chunks=1 rows=1000 1.00027027 / 1.00027027 / -0.0%
vortex:parquet-zstd size/wide table cols=100 chunks=50 rows=1000 1.00027027 / 1.00027027 / -0.0%
vortex:parquet-zstd size/wide table cols=1000 chunks=1 rows=1000 0.998482626 / 0.998482626 / -0.0%
vortex:parquet-zstd size/wide table cols=1000 chunks=50 rows=1000 0.998482626 / 0.998482626 / -0.0%
vortex:parquet-zstd size/wide table cols=10000 chunks=1 rows=1000 0.998689961 / 0.998689961 / +0.0%
vortex:parquet-zstd size/wide table cols=10000 chunks=50 rows=1000 0.998689961 / 0.998689961 / +0.0%
vortex / parquet / ns (0.995x ➖, 0↑ 0↓)
name ns (PR / base / %diff)
parquet_rs-zstd compress time/Arade 2964012505 / 2964794263 / -0.0%
parquet_rs-zstd compress time/Bimbo 14198860290 / 14325508319 / -0.9%
parquet_rs-zstd compress time/CMSprovider 7869624269 / 7777998937 / +1.2%
parquet_rs-zstd compress time/Euro2016 1513836354 / 1504664712 / +0.6%
parquet_rs-zstd compress time/Food 908512856 / 914810205 / -0.7%
parquet_rs-zstd compress time/HashTags 2439455729 / 2442568982 / -0.1%
parquet_rs-zstd compress time/TPC-H l_comment canonical 3653656671 / 3651168047 / +0.1%
parquet_rs-zstd compress time/TPC-H l_comment chunked 3668515592 / 3682307787 / -0.4%
parquet_rs-zstd compress time/taxi 1366979984 / 1370648136 / -0.3%
parquet_rs-zstd compress time/wide table cols=100 chunks=1 rows=1000 6266219 / 6258462 / +0.1%
parquet_rs-zstd compress time/wide table cols=100 chunks=50 rows=1000 6210832 / 6147479 / +1.0%
parquet_rs-zstd compress time/wide table cols=1000 chunks=1 rows=1000 75008544 / 74429980 / +0.8%
parquet_rs-zstd compress time/wide table cols=1000 chunks=50 rows=1000 75342176 / 77034549 / -2.2%
parquet_rs-zstd compress time/wide table cols=10000 chunks=1 rows=1000 788147869 / 781250612 / +0.9%
parquet_rs-zstd compress time/wide table cols=10000 chunks=50 rows=1000 789063065 / 796585443 / -0.9%
parquet_rs-zstd decompress time/Arade 709713821 / 713869400 / -0.6%
parquet_rs-zstd decompress time/Bimbo 1930633542 / 1925923903 / +0.2%
parquet_rs-zstd decompress time/CMSprovider 1948736648 / 1951201109 / -0.1%
parquet_rs-zstd decompress time/Euro2016 432324406 / 433534978 / -0.3%
parquet_rs-zstd decompress time/Food 223368481 / 225520202 / -1.0%
parquet_rs-zstd decompress time/HashTags 696762170 / 712534090 / -2.2%
parquet_rs-zstd decompress time/TPC-H l_comment canonical 675550124 / 673844851 / +0.3%
parquet_rs-zstd decompress time/TPC-H l_comment chunked 675403665 / 677138405 / -0.3%
parquet_rs-zstd decompress time/taxi 281480146 / 286388600 / -1.7%
parquet_rs-zstd decompress time/wide table cols=100 chunks=1 rows=1000 2353985 / 2397541 / -1.8%
parquet_rs-zstd decompress time/wide table cols=100 chunks=50 rows=1000 2339360 / 2349295 / -0.4%
parquet_rs-zstd decompress time/wide table cols=1000 chunks=1 rows=1000 26685610 / 26690876 / -0.0%
parquet_rs-zstd decompress time/wide table cols=1000 chunks=50 rows=1000 27361541 / 28483463 / -3.9%
parquet_rs-zstd decompress time/wide table cols=10000 chunks=1 rows=1000 298790097 / 298793043 / -0.0%
parquet_rs-zstd decompress time/wide table cols=10000 chunks=50 rows=1000 303874184 / 307306639 / -1.1%
vortex / parquet / bytes (1.000x ➖, 0↑ 0↓)
name bytes (PR / base / %diff)
parquet size/Arade 258014282 / 258014282 / +0.0%
parquet size/Bimbo 384517292 / 384517292 / +0.0%
parquet size/CMSprovider 376885545 / 376885545 / +0.0%
parquet size/Euro2016 122975499 / 122975499 / +0.0%
parquet size/Food 35699500 / 35699500 / +0.0%
parquet size/HashTags 133510943 / 133510943 / +0.0%
parquet size/TPC-H l_comment canonical 158358238 / 158358238 / +0.0%
parquet size/TPC-H l_comment chunked 158358238 / 158358238 / +0.0%
parquet size/taxi 55283635 / 55283635 / +0.0%
parquet size/wide table cols=100 chunks=1 rows=1000 932404 / 932404 / +0.0%
parquet size/wide table cols=100 chunks=50 rows=1000 932404 / 932404 / +0.0%
parquet size/wide table cols=1000 chunks=1 rows=1000 9324004 / 9324004 / +0.0%
parquet size/wide table cols=1000 chunks=50 rows=1000 9324004 / 9324004 / +0.0%
parquet size/wide table cols=10000 chunks=1 rows=1000 93240004 / 93240004 / +0.0%
parquet size/wide table cols=10000 chunks=50 rows=1000 93240004 / 93240004 / +0.0%
vortex / arrow-ipc / ns (no group data, 0↑ 0↓)
name ns (PR / base / %diff)
arrow-ipc compress time/Arade 520724194 / — / no baseline
arrow-ipc compress time/Bimbo 2565320654 / — / no baseline
arrow-ipc compress time/CMSprovider 1879779401 / — / no baseline
arrow-ipc compress time/Euro2016 136907848 / — / no baseline
arrow-ipc compress time/Food 107916882 / — / no baseline
arrow-ipc compress time/HashTags 425618397 / — / no baseline
arrow-ipc compress time/TPC-H l_comment canonical 2955586847 / — / no baseline
arrow-ipc compress time/TPC-H l_comment chunked 2989102538 / — / no baseline
arrow-ipc compress time/taxi 197638718 / — / no baseline
arrow-ipc compress time/wide table cols=100 chunks=1 rows=1000 519868 / — / no baseline
arrow-ipc compress time/wide table cols=100 chunks=50 rows=1000 495259 / — / no baseline
arrow-ipc compress time/wide table cols=1000 chunks=1 rows=1000 6266579 / — / no baseline
arrow-ipc compress time/wide table cols=1000 chunks=50 rows=1000 6212068 / — / no baseline
arrow-ipc compress time/wide table cols=10000 chunks=1 rows=1000 67063385 / — / no baseline
arrow-ipc compress time/wide table cols=10000 chunks=50 rows=1000 67030539 / — / no baseline
arrow-ipc decompress time/Arade 180285382 / — / no baseline
arrow-ipc decompress time/Bimbo 583550320 / — / no baseline
arrow-ipc decompress time/CMSprovider 681827852 / — / no baseline
arrow-ipc decompress time/Euro2016 95577706 / — / no baseline
arrow-ipc decompress time/Food 63260341 / — / no baseline
arrow-ipc decompress time/HashTags 206843269 / — / no baseline
arrow-ipc decompress time/TPC-H l_comment canonical 1020655460 / — / no baseline
arrow-ipc decompress time/TPC-H l_comment chunked 1053869842 / — / no baseline
arrow-ipc decompress time/taxi 73534278 / — / no baseline
arrow-ipc decompress time/wide table cols=100 chunks=1 rows=1000 399457 / — / no baseline
arrow-ipc decompress time/wide table cols=100 chunks=50 rows=1000 386603 / — / no baseline
arrow-ipc decompress time/wide table cols=1000 chunks=1 rows=1000 4024318 / — / no baseline
arrow-ipc decompress time/wide table cols=1000 chunks=50 rows=1000 4127266 / — / no baseline
arrow-ipc decompress time/wide table cols=10000 chunks=1 rows=1000 50736988 / — / no baseline
arrow-ipc decompress time/wide table cols=10000 chunks=50 rows=1000 50375962 / — / no baseline
vortex / arrow-ipc / bytes (no group data, 0↑ 0↓)
name bytes (PR / base / %diff)
arrow-ipc size/Arade 691765162 / — / no baseline
arrow-ipc size/Bimbo 3279590114 / — / no baseline
arrow-ipc size/CMSprovider 2422259682 / — / no baseline
arrow-ipc size/Euro2016 360582666 / — / no baseline
arrow-ipc size/Food 255782338 / — / no baseline
arrow-ipc size/HashTags 704785810 / — / no baseline
arrow-ipc size/TPC-H l_comment canonical 4852929378 / — / no baseline
arrow-ipc size/TPC-H l_comment chunked 4852929378 / — / no baseline
arrow-ipc size/taxi 482329690 / — / no baseline
arrow-ipc size/wide table cols=100 chunks=1 rows=1000 1257290 / — / no baseline
arrow-ipc size/wide table cols=100 chunks=50 rows=1000 1257290 / — / no baseline
arrow-ipc size/wide table cols=1000 chunks=1 rows=1000 12568506 / — / no baseline
arrow-ipc size/wide table cols=1000 chunks=50 rows=1000 12568506 / — / no baseline
arrow-ipc size/wide table cols=10000 chunks=1 rows=1000 125752506 / — / no baseline
arrow-ipc size/wide table cols=10000 chunks=50 rows=1000 125752506 / — / no baseline

@connortsui20 connortsui20 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Compression benchmark has an issue:

Details
+ bash /home/runner/_work/vortex/vortex/scripts/bench-taskset.sh target/release_debug/compress-bench --datasets ^taxi$ --formats arrow-ipc,parquet,vortex -d gh-json -o parts/0.gh.json
2026-08-25T21:32:22.987238Z  INFO compress_bench: benchmarks/compress-bench/src/main.rs:427: Running taxi benchmark

thread 'main' (6044) panicked at vortex-bench/src/measurements.rs:357:18:
Other error: CompressionTimingMeasurement only supports vortex, lance, and parquet formats
Backtrace:
   0: <vortex_bench::measurements::CompressionTimingMeasurement as vortex_bench::measurements::ToJson>::to_json
             at ./vortex-bench/src/measurements.rs:357:18
   1: vortex_bench::display::print_measurements_json::<vortex_bench::measurements::CompressionTimingMeasurement>
             at ./vortex-bench/src/display.rs:121:36
   2: compress_bench::run_compress::{closure#0}
             at ./benchmarks/compress-bench/src/main.rs:382:13
   3: compress_bench::main::{closure#0}
             at ./benchmarks/compress-bench/src/main.rs:162:6
   4: <tokio::runtime::park::CachedParkThread>::block_on::<compress_bench::main::{closure#0}>::{closure#0}
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/park.rs:284:71
   5: tokio::task::coop::with_budget::<core::task::poll::Poll<core::result::Result<(), anyhow::Error>>, <tokio::runtime::park::CachedParkThread>::block_on<compress_bench::main::{closure#0}>::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/task/coop/mod.rs:167:5
   6: tokio::task::coop::budget::<core::task::poll::Poll<core::result::Result<(), anyhow::Error>>, <tokio::runtime::park::CachedParkThread>::block_on<compress_bench::main::{closure#0}>::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/task/coop/mod.rs:133:5
   7: <tokio::runtime::park::CachedParkThread>::block_on::<compress_bench::main::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/park.rs:284:31
   8: <tokio::runtime::context::blocking::BlockingRegionGuard>::block_on::<compress_bench::main::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/context/blocking.rs:66:14
   9: <tokio::runtime::scheduler::multi_thread::MultiThread>::block_on::<compress_bench::main::{closure#0}>::{closure#0}
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/scheduler/multi_thread/mod.rs:92:22
  10: tokio::runtime::context::runtime::enter_runtime::<<tokio::runtime::scheduler::multi_thread::MultiThread>::block_on<compress_bench::main::{closure#0}>::{closure#0}, core::result::Result<(), anyhow::Error>>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/context/runtime.rs:65:16
  11: <tokio::runtime::scheduler::multi_thread::MultiThread>::block_on::<compress_bench::main::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/scheduler/multi_thread/mod.rs:91:9
  12: <tokio::runtime::runtime::Runtime>::block_on_inner::<compress_bench::main::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/runtime.rs:376:50
  13: <tokio::runtime::runtime::Runtime>::block_on::<compress_bench::main::{closure#0}>
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.53.1/src/runtime/runtime.rs:343:18
  14: compress_bench::main
             at ./benchmarks/compress-bench/src/main.rs:162:6
  15: <fn() -> core::result::Result<(), anyhow::Error> as core::ops::function::FnOnce<()>>::call_once

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Random Access 📖

Commits: PR fb52b57c vs base ee1ac252
Verdict: No clear signal (low confidence)
Attributed Vortex impact: +9.7%
Engines: random-access No clear signal (+9.7%, low confidence)
Vortex (geomean): hot 1.096x ➖
Parquet (geomean): hot 0.999x ➖
Shifts: Parquet (control) -0.1% · Median polish -0.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.
  • Hot vs cold: Every measurement is run several times. The first run is reported as the cold run, and the median of the runs after it is reported as the hot run. The verdict and significance use hot runs; each target's geomean reports hot and cold beside each other where the individual runs were recorded and hot alone where they were not, the cold column shows first-run cost per row, and hot/cold is how much of each run the warm path saves. Rows whose results predate per-run reporting show only one value, taken from the value the runner reported.
  • Table cells: Each cell reads PR / base / %diff. The hot and cold columns mark a change as 🔴 slower or 🟢 faster once it clears this suite's threshold; anything smaller is noise here and is left unmarked, as is hot/cold, because a shift in the warm-up ratio is not a win or a loss by itself.

vortex / arrow-ipc / ns (no group data, 0↑ 0↓)
name ns (PR / base / %diff)
random-access/arrow-tokio-local-disk 67715 / — / no baseline
random-access/arrow-tokio-local-disk-footer 80207 / — / no baseline
random-access/feature-vectors/correlated/arrow-tokio-local-disk 5953946 / — / no baseline
random-access/feature-vectors/correlated/arrow-tokio-local-disk-footer 2972415 / — / no baseline
random-access/feature-vectors/uniform/arrow-tokio-local-disk 72301590 / — / no baseline
random-access/feature-vectors/uniform/arrow-tokio-local-disk-footer 70156038 / — / no baseline
random-access/nested-lists/correlated/arrow-tokio-local-disk 67836 / — / no baseline
random-access/nested-lists/correlated/arrow-tokio-local-disk-footer 75006 / — / no baseline
random-access/nested-lists/uniform/arrow-tokio-local-disk 1273307 / — / no baseline
random-access/nested-lists/uniform/arrow-tokio-local-disk-footer 1275144 / — / no baseline
random-access/nested-structs/correlated/arrow-tokio-local-disk 54139 / — / no baseline
random-access/nested-structs/correlated/arrow-tokio-local-disk-footer 55933 / — / no baseline
random-access/nested-structs/uniform/arrow-tokio-local-disk 998529 / — / no baseline
random-access/nested-structs/uniform/arrow-tokio-local-disk-footer 966841 / — / no baseline
random-access/taxi/correlated/arrow-tokio-local-disk 120071 / — / no baseline
random-access/taxi/correlated/arrow-tokio-local-disk-footer 141170 / — / no baseline
random-access/taxi/uniform/arrow-tokio-local-disk 2703230 / — / no baseline
random-access/taxi/uniform/arrow-tokio-local-disk-footer 2802017 / — / no baseline
random-access / vortex-file-compressed / ns (1.096x ➖, 0↑ 1↓)
name ns (PR / base / %diff)
random-access/feature-vectors/correlated/vortex-tokio-local-disk 2026072 / 370356 / +447.1% 🔴
random-access/feature-vectors/correlated/vortex-tokio-local-disk-footer 615617 / 607467 / +1.3%
random-access/feature-vectors/uniform/vortex-tokio-local-disk 2606154 / 2639181 / -1.3%
random-access/feature-vectors/uniform/vortex-tokio-local-disk-footer 3068481 / 3065319 / +0.1%
random-access/nested-lists/correlated/vortex-tokio-local-disk 284716 / 289739 / -1.7%
random-access/nested-lists/correlated/vortex-tokio-local-disk-footer 353866 / 367132 / -3.6%
random-access/nested-lists/uniform/vortex-tokio-local-disk 1652894 / 1662395 / -0.6%
random-access/nested-lists/uniform/vortex-tokio-local-disk-footer 1764806 / 1751013 / +0.8%
random-access/nested-structs/correlated/vortex-tokio-local-disk 319976 / 327042 / -2.2%
random-access/nested-structs/correlated/vortex-tokio-local-disk-footer 462725 / 464998 / -0.5%
random-access/nested-structs/uniform/vortex-tokio-local-disk 1035074 / 1013230 / +2.2%
random-access/nested-structs/uniform/vortex-tokio-local-disk-footer 1210774 / 1198702 / +1.0%
random-access/taxi/correlated/vortex-tokio-local-disk 930490 / 903817 / +3.0%
random-access/taxi/correlated/vortex-tokio-local-disk-footer 1394566 / 1420918 / -1.9%
random-access/taxi/uniform/vortex-tokio-local-disk 4046821 / 4105773 / -1.4%
random-access/taxi/uniform/vortex-tokio-local-disk-footer 4829816 / 4838072 / -0.2%
random-access/vortex-tokio-local-disk 594941 / 596405 / -0.2%
random-access/vortex-tokio-local-disk-footer 999347 / 1000368 / -0.1%
random-access / parquet / ns (0.999x ➖, 0↑ 0↓)
name ns (PR / base / %diff)
random-access/feature-vectors/correlated/parquet-tokio-local-disk 9037009023 / 8987163898 / +0.6%
random-access/feature-vectors/correlated/parquet-tokio-local-disk-footer 9134083133 / 9053539482 / +0.9%
random-access/feature-vectors/uniform/parquet-tokio-local-disk 9088170772 / 9071046804 / +0.2%
random-access/feature-vectors/uniform/parquet-tokio-local-disk-footer 9131286845 / 8939656424 / +2.1%
random-access/nested-lists/correlated/parquet-tokio-local-disk 136714259 / 136621663 / +0.1%
random-access/nested-lists/correlated/parquet-tokio-local-disk-footer 134936141 / 135072389 / -0.1%
random-access/nested-lists/uniform/parquet-tokio-local-disk 133955441 / 134854836 / -0.7%
random-access/nested-lists/uniform/parquet-tokio-local-disk-footer 135619440 / 135023641 / +0.4%
random-access/nested-structs/correlated/parquet-tokio-local-disk 18847260 / 20172969 / -6.6%
random-access/nested-structs/correlated/parquet-tokio-local-disk-footer 19159910 / 19053294 / +0.6%
random-access/nested-structs/uniform/parquet-tokio-local-disk 18864362 / 18952771 / -0.5%
random-access/nested-structs/uniform/parquet-tokio-local-disk-footer 19313033 / 18865365 / +2.4%
random-access/parquet-tokio-local-disk 181260495 / 180877773 / +0.2%
random-access/parquet-tokio-local-disk-footer 179732773 / 181143674 / -0.8%
random-access/taxi/correlated/parquet-tokio-local-disk 271737236 / 271655515 / +0.0%
random-access/taxi/correlated/parquet-tokio-local-disk-footer 269385784 / 271655437 / -0.8%
random-access/taxi/uniform/parquet-tokio-local-disk 287666683 / 286593764 / +0.4%
random-access/taxi/uniform/parquet-tokio-local-disk-footer 289366906 / 288970163 / +0.1%
random-access / lance / ns (0.999x ➖, 0↑ 0↓)
name ns (PR / base / %diff)
random-access/feature-vectors/correlated/lance-tokio-local-disk 346281 / 348020 / -0.5%
random-access/feature-vectors/correlated/lance-tokio-local-disk-footer 1073403 / 1105640 / -2.9%
random-access/feature-vectors/uniform/lance-tokio-local-disk 1080991 / 1089784 / -0.8%
random-access/feature-vectors/uniform/lance-tokio-local-disk-footer 1847413 / 1835935 / +0.6%
random-access/lance-tokio-local-disk 619315 / 658389 / -5.9%
random-access/lance-tokio-local-disk-footer 1369514 / 1333601 / +2.7%
random-access/nested-lists/correlated/lance-tokio-local-disk 189292 / 186637 / +1.4%
random-access/nested-lists/correlated/lance-tokio-local-disk-footer 574303 / 575880 / -0.3%
random-access/nested-lists/uniform/lance-tokio-local-disk 903830 / 915547 / -1.3%
random-access/nested-lists/uniform/lance-tokio-local-disk-footer 1311433 / 1304329 / +0.5%
random-access/nested-structs/correlated/lance-tokio-local-disk 313049 / 316394 / -1.1%
random-access/nested-structs/correlated/lance-tokio-local-disk-footer 454647 / 454993 / -0.1%
random-access/nested-structs/uniform/lance-tokio-local-disk 2452055 / 2420329 / +1.3%
random-access/nested-structs/uniform/lance-tokio-local-disk-footer 2563676 / 2536278 / +1.1%
random-access/taxi/correlated/lance-tokio-local-disk 958937 / 939482 / +2.1%
random-access/taxi/correlated/lance-tokio-local-disk-footer 1883490 / 1846971 / +2.0%
random-access/taxi/uniform/lance-tokio-local-disk 9994659 / 9957337 / +0.4%
random-access/taxi/uniform/lance-tokio-local-disk-footer 10623555 / 10663486 / -0.4%

Signed-off-by: Will Manning <will@willmanning.io>
@lwwmanning lwwmanning added the action/bench-compress Run only the compression benchmark on this PR label Aug 25, 2026
@github-actions github-actions Bot removed the action/bench-compress Run only the compression benchmark on this PR label Aug 25, 2026

@connortsui20 connortsui20 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

latest commit should fix the issue

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants