Skip to content

Port PiecewiseSequence run-take consumers#8802

Draft
danking wants to merge 4 commits into
codex/piecewise-sequential-takefrom
codex/piecewise-sequential-run-take-consumers
Draft

Port PiecewiseSequence run-take consumers#8802
danking wants to merge 4 commits into
codex/piecewise-sequential-takefrom
codex/piecewise-sequential-run-take-consumers

Conversation

@danking

@danking danking commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add Extension TakeReduce so take can push through extension storage during reduce
  • fast-path List.take(PiecewiseSequence) by rebuilding list offsets and taking contiguous child element ranges when multipliers is a constant unsigned 1
  • restore the large-list ListView rebuild path using PiecewiseSequence child indices with multiplier 1 instead of list-by-list rebuild

Validation

  • cargo fmt -p vortex-array
  • cargo test -p vortex-array piecewise_sequence
  • cargo test -p vortex-array piecewise_sequence_take
  • cargo test -p vortex-array test_rebuild_flatten_large_lists_with_piecewise_indices
  • cargo check -p vortex-array
  • cargo check -p vortex-array --benches
  • git diff --check

@codspeed-hq

codspeed-hq Bot commented Jul 16, 2026

Copy link
Copy Markdown

Merging this PR will regress 1 benchmark

⚡ 21 improved benchmarks
❌ 1 regressed benchmark
✅ 1648 untouched benchmarks
🆕 128 new benchmarks
⏩ 52 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation varbinview_large 390.6 µs 445.5 µs -12.33%
Simulation struct_large 432.7 µs 38.2 µs ×11
Simulation fsl_large 617 µs 98.8 µs ×6.2
Simulation take_fsl_random[1024, 1000] 15.2 ms 6 ms ×2.5
Simulation take_fsl_nullable_random[1024, 1000] 14.8 ms 6 ms ×2.5
Simulation take_fsl_random[256, 1000] 3.5 ms 1.5 ms ×2.2
Simulation take_fsl_nullable_random[256, 1000] 3.4 ms 1.6 ms ×2.2
Simulation take_fsl_random[1024, 100] 1,570.1 µs 795.7 µs +97.31%
Simulation take_fsl_nullable_random[1024, 100] 1,535.5 µs 808.4 µs +89.95%
Simulation take_fsl_random[64, 1000] 818.3 µs 457 µs +79.08%
Simulation take_fsl_random[256, 100] 420.3 µs 235.6 µs +78.36%
Simulation take_fsl_nullable_random[64, 1000] 814.9 µs 472.6 µs +72.45%
Simulation take_fsl_nullable_random[256, 100] 415.4 µs 248.6 µs +67.11%
Simulation list_i32_large 172 µs 106.2 µs +61.91%
Simulation take_fsl_random[16, 1000] 235 µs 171.5 µs +37.06%
Simulation take_fsl_random[64, 100] 125 µs 95.5 µs +30.93%
Simulation take_fsl_nullable_random[16, 1000] 254.2 µs 195.1 µs +30.32%
Simulation take_fsl_random[4096, 1000] 67.3 ms 54.2 ms +24.2%
Simulation take_fsl_nullable_random[4096, 1000] 65.6 ms 54.2 ms +20.92%
Simulation take_fsl_nullable_random[64, 100] 131 µs 108.6 µs +20.67%
... ... ... ... ... ...

ℹ️ 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 codex/piecewise-sequential-run-take-consumers (d1ac8ad) with develop (3975895)2

Open in CodSpeed

Footnotes

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

  2. No successful run was found on codex/piecewise-sequential-take (d694338) during the generation of this report, so develop (3975895) was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@danking
danking force-pushed the codex/piecewise-sequential-take branch from 01e95cb to eb83451 Compare July 16, 2026 19:19
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch from 4272937 to 02adf44 Compare July 16, 2026 19:23
@danking danking changed the title Port PiecewiseSequential run-take consumers Port PiecewiseSequence run-take consumers Jul 16, 2026
@danking
danking force-pushed the codex/piecewise-sequential-take branch from eb83451 to e79ec4b Compare July 16, 2026 20:29
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch 2 times, most recently from 4ff991e to de4a71f Compare July 16, 2026 20:36
@danking
danking force-pushed the codex/piecewise-sequential-take branch from b615895 to 6dcc52a Compare July 16, 2026 23:41
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch from 12a04f6 to 6280163 Compare July 16, 2026 23:52
@danking danking added the changelog/performance A performance improvement label Jul 16, 2026
@danking
danking force-pushed the codex/piecewise-sequential-take branch from 6dcc52a to a2cbdf0 Compare July 17, 2026 00:15
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch from 6280163 to 71c3d0e Compare July 17, 2026 00:16
@danking
danking force-pushed the codex/piecewise-sequential-take branch from a2cbdf0 to d694338 Compare July 17, 2026 00:17
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch 2 times, most recently from d1ac8ad to 6c9c892 Compare July 17, 2026 15:31
danking added 4 commits July 17, 2026 11:35
Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
@danking
danking force-pushed the codex/piecewise-sequential-run-take-consumers branch from 6c9c892 to cbc17d9 Compare July 17, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/performance A performance improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant