Skip to content

bool array slice to support device buffers - #8875

Merged
joseph-isaacs merged 3 commits into
developfrom
os/bitbuffer-slice
Jul 21, 2026
Merged

bool array slice to support device buffers#8875
joseph-isaacs merged 3 commits into
developfrom
os/bitbuffer-slice

Conversation

@onursatici

Copy link
Copy Markdown
Contributor

Rationale for this change

bool slicing on device buffers currently panic, because we assert host buffers when using slice on BitBuffer

What changes are included in this PR?

extract the slicing bounds check logic from BitBuffer, use it for both the host and the device buffer backed bool arrays

@onursatici onursatici changed the title Os/bitbuffer slice bool array slice to support device buffers Jul 21, 2026
Signed-off-by: Onur Satici <onur@spiraldb.com>
Signed-off-by: Onur Satici <onur@spiraldb.com>
Signed-off-by: Onur Satici <onur@spiraldb.com>
@onursatici
onursatici force-pushed the os/bitbuffer-slice branch from e4c78c6 to 1320562 Compare July 21, 2026 12:51
@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

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

Powered by Polar Signals Cloud

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Vortex queries 📖

Verdict: No clear signal (medium confidence)
Attributed Vortex impact: -8.5%
Engines: DataFusion No clear signal (+0.0%, low confidence) · DuckDB Likely improvement (-16.2%, environment too noisy confidence)
Vortex (geomean): 0.756x ✅
Parquet (geomean): 0.790x ✅
Shifts: Parquet (control) -21.0% · Median polish -27.5%

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.725x ✅, 2↑ 0↓)
name PR 1320562 (ns) base 6a79bcf (ns) ratio (PR/base)
vortex_q00/datafusion:vortex-file-compressed 🚀 9730574 12687167 0.77
vortex_q01/datafusion:vortex-file-compressed 🚀 6360492 9277786 0.69
datafusion / parquet (0.725x ✅, 2↑ 0↓)
name PR 1320562 (ns) base 6a79bcf (ns) ratio (PR/base)
vortex_q00/datafusion:parquet 🚀 19666698 26417776 0.74
vortex_q01/datafusion:parquet 🚀 4503936 6382585 0.71
duckdb / vortex-file-compressed (0.722x ✅, 2↑ 0↓)
name PR 1320562 (ns) base 6a79bcf (ns) ratio (PR/base)
vortex_q00/duckdb:vortex-file-compressed 🚀 9864991 13436387 0.73
vortex_q01/duckdb:vortex-file-compressed 🚀 5864933 8263765 0.71
duckdb / parquet (0.862x ✅, 2↑ 0↓)
name PR 1320562 (ns) base 6a79bcf (ns) ratio (PR/base)
vortex_q00/duckdb:parquet 🚀 23294058 28024281 0.83
vortex_q01/duckdb:parquet 🚀 9400903 10522304 0.89

No file size changes detected.

@joseph-isaacs joseph-isaacs added the changelog/fix A bug fix label Jul 21, 2026
@codspeed-hq

codspeed-hq Bot commented Jul 21, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 25.72%

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

⚡ 2 improved benchmarks
✅ 1837 untouched benchmarks
⏩ 3 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation copy_nullable[65536] 1.4 ms 1 ms +31.9%
Simulation copy_non_nullable[65536] 1,094.3 µs 913.2 µs +19.83%

Tip

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


Comparing os/bitbuffer-slice (1320562) with develop (6a79bcf)

Open in CodSpeed

Footnotes

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

@joseph-isaacs
joseph-isaacs merged commit 4c3f787 into develop Jul 21, 2026
84 of 85 checks passed
@joseph-isaacs
joseph-isaacs deleted the os/bitbuffer-slice branch July 21, 2026 13:18
@blaginin blaginin mentioned this pull request Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants