Skip to content

take() on VarBin returns VarBinView - #9229

Merged
myrrc merged 5 commits into
developfrom
myrrc/varbin-take-zero-copy
Aug 7, 2026
Merged

take() on VarBin returns VarBinView#9229
myrrc merged 5 commits into
developfrom
myrrc/varbin-take-zero-copy

Conversation

@myrrc

@myrrc myrrc commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

take() on VarBin returned a VarBin which was slow because referenced bytes were
copied. However, FSST version requires this. Make take() return VarBinView but
keep the old version for FSST.

Add a take benchmark for VarBin

Resolves: #4964

@myrrc myrrc added the changelog/feature A new feature label Aug 6, 2026
@myrrc
myrrc requested a review from robert3005 August 6, 2026 12:20
@codspeed-hq

codspeed-hq Bot commented Aug 6, 2026

Copy link
Copy Markdown

Merging this PR will regress 2 benchmarks

⚡ 4 improved benchmarks
❌ 2 regressed benchmarks
✅ 1923 untouched benchmarks
🆕 1 new benchmark
⏩ 51 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation fsl_large 200.6 µs 254.3 µs -21.14%
Simulation compress_fsst[(10000, 64, 8)] 9.6 ms 10.8 ms -11.3%
Simulation compact_sliced[(4096, 90)] 1.8 µs 1.6 µs +12.16%
Simulation decompress[u64, (1000, 16)] 73.1 µs 65.1 µs +12.16%
Simulation chunked_varbin_opt_to_varbinview_builder[(10, 100)] 870.4 µs 779.8 µs +11.62%
Simulation compact_sliced[(16384, 90)] 2 µs 1.8 µs +11.2%
🆕 Simulation take_varbin N/A 1.1 ms N/A

Tip

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


Comparing myrrc/varbin-take-zero-copy (d8d798a) with develop (c1ae775)

Open in CodSpeed

Footnotes

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

@myrrc
myrrc marked this pull request as draft August 6, 2026 12:33
@myrrc
myrrc force-pushed the myrrc/varbin-take-zero-copy branch from 535b0d4 to d5f7320 Compare August 6, 2026 13:56
@myrrc
myrrc marked this pull request as ready for review August 6, 2026 13:56
@myrrc myrrc changed the title Make take() on VarBin return VarBinView take() on VarBin returns VarBinView Aug 6, 2026
Comment thread encodings/fsst/src/compute/mod.rs Outdated
@myrrc
myrrc enabled auto-merge (squash) August 6, 2026 14:03
Comment thread vortex-array/src/arrays/varbin/compute/take.rs
Comment thread vortex-array/src/arrays/varbin/compute/take.rs Outdated
@myrrc
myrrc requested a review from robert3005 August 6, 2026 14:33
@myrrc
myrrc force-pushed the myrrc/varbin-take-zero-copy branch from d5f7320 to b135bde Compare August 6, 2026 16:12
myrrc added 3 commits August 7, 2026 10:13
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc
myrrc force-pushed the myrrc/varbin-take-zero-copy branch from b135bde to f5956d6 Compare August 7, 2026 09:13
myrrc added 2 commits August 7, 2026 10:23
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
Signed-off-by: Mikhail Kot <mikhail@spiraldb.com>
@myrrc
myrrc merged commit 1d3e6b4 into develop Aug 7, 2026
90 of 93 checks passed
@myrrc
myrrc deleted the myrrc/varbin-take-zero-copy branch August 7, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

consider changing take for varbin

2 participants