Skip to content

Move RunEnd into vortex-array - #10703

Open
mhk197 wants to merge 2 commits into
developfrom
mk/runend-into-vortex-array
Open

mhk197 wants to merge 2 commits into
developfrom
mk/runend-into-vortex-array

Conversation

@mhk197

@mhk197 mhk197 commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Moves the vortex-runend crate into vortex-array as vortex_array::arrays::runend, the same way vortex-dict moved in #5289. Once RunEnd is built in, vortex-array code can build run-end arrays itself. One example is spreading a captured outer value across each list's elements in list_transform (#10702).

Changes

  • RunEnd is now a built-in, like Dict. It is registered in ArraySession::default, in the default kernel session, and in AggregateFnSession::default (min_max, is_constant, is_sorted, sum).
  • The vortex-runend crate is removed. vortex::encodings::runend still re-exports the module.
  • The benches move to vortex-array/benches/run_end_*. CodSpeed picks them up in the array builders shard.

Signed-off-by: Matt Katz <mhkatz97@gmail.com>
Signed-off-by: Matt Katz <mhkatz97@gmail.com>
@codspeed

codspeed Bot commented Oct 22, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 18.82%

4 warnings, 1 note

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ Unable to measure the execution of 1 benchmark

This benchmark measured no execution time, so its result is not comparable and counts as unchanged. This usually happens when the compiler removes the code under test.

Prevent compiler optimizations

See affected benchmarks

⚠️ 22 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

⚠️ Base and head ran on different runner types

Some benchmarks with significant performance changes were compared across different runner types, so the changes might not come from the code. Run base and head on the same runner type, or use CodSpeed Macro Runners for more stable results.

Learn more about Macro Runners

Open the report in CodSpeed to investigate

ℹ️ 40 benchmarks have no flamegraph

The flamegraph wasn't generated: the symbols of the profiling trace could not be resolved, because no information about the language frames was collected.

See affected benchmarks

⚡ 2 improved benchmarks
❌ 16 regressed benchmarks
✅ 2236 untouched benchmarks
🆕 154 new benchmarks
⏩ 166 skipped benchmarks1
🗄️ 43 archived benchmarks run2

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Walltime threshold_neon[8] 1.3 µs 2.6 µs -47.55%
❌ Walltime filter_neon[64] 1.7 µs 2.9 µs -39.87%
❌ CPU Simulation decode_primitives[i64, (1000, 8)] 24.6 µs 37.8 µs -34.86%
❌ Walltime filter_neon[8] 893 ns 1,321 ns -32.4%
❌ Walltime filter_neon[80] 2.5 µs 3.4 µs -27.2%
❌ Walltime threshold_neon[64] 2.6 µs 3.5 µs -25%
❌ Walltime scalar_subtract_neon 11.2 µs 14.6 µs -23.13%
❌ Walltime lt_i64_nullable_neon 3.3 µs 4.3 µs -23.08%
❌ Walltime threshold_neon[80] 3.7 µs 4.8 µs -21.59%
❌ Walltime compare_int_neon 4.5 µs 5.6 µs -19.18%
❌ Walltime compare_int_nullable_neon 4.9 µs 5.7 µs -14.49%
❌ Walltime threshold_avx2[80] 2.6 µs 2.9 µs -12.18%
❌ Walltime bitpack_blocked_compress_avx2 6.7 µs 7.6 µs -11.94%
❌ Walltime compare_float_neon 6.5 µs 7.4 µs -11.85%
❌ CPU Simulation test_repeated_scan_scalar_at[int_float] 373 µs 422.8 µs -11.78%
❌ Walltime compare_u8_neon 1.8 µs 2 µs -10.6%
⚡ CPU Simulation random_i128[0.01] 5.3 µs 3.5 µs +52.73%
⚡ CPU Simulation fsl_i32[16, 0.01] 26.1 µs 22.3 µs +17.48%
🆕 CPU Simulation compress[(1000, 16)] N/A 97.2 µs N/A
🆕 CPU Simulation compress[(1000, 256)] N/A 92.5 µs N/A
... ... ... ... ... ...

ℹ️ 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 mk/runend-into-vortex-array (099b7a5) with develop (d270200)

Open in CodSpeed

Footnotes

  1. 166 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. 43 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. ↩

@mhk197
mhk197 marked this pull request as ready for review October 23, 2026 14:10

@joseph-isaacs joseph-isaacs left a comment

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.

🔢

This branch was successfully deployed

1 active deployment
docs-preview/pr-10703 — 099b7a5a Deployed Oct 22, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/break A breaking API change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants