Skip to content

Add split-collection benchmark for scan planning - #9270

Closed
AdamGS wants to merge 3 commits into
developfrom
adamg/split-bench
Closed

Add split-collection benchmark for scan planning#9270
AdamGS wants to merge 3 commits into
developfrom
adamg/split-bench

Conversation

@AdamGS

@AdamGS AdamGS commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Rationale for this change

Benchmarks SplitBy::Layout over written files (struct -> chunked -> flat per column) across column and chunk counts:

  • cold: fresh reader tree per iteration, as the first scan over a file
  • warm: reused reader tree
  • cold_single_column: narrow field mask over a wide schema
  • {cold,warm}_misaligned: per-column chunk granularities so no two columns share interior chunk boundaries

@AdamGS AdamGS added the changelog/chore A trivial change label Aug 7, 2026
@codspeed-hq

codspeed-hq Bot commented Aug 7, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 12.39%

⚠️ 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
✅ 1975 untouched benchmarks
🆕 13 new benchmarks
⏩ 8 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decompress[u64, (1000, 16)] 72.5 µs 64.5 µs +12.44%
Simulation search_index_in_range_chunked 6.1 ms 5.4 ms +12.34%
🆕 Simulation cold_misaligned[(64, 256)] N/A 36 ms N/A
🆕 Simulation cold_misaligned[(8, 256)] N/A 4.2 ms N/A
🆕 Simulation cold_single_column[(1, 1024)] N/A 4.9 ms N/A
🆕 Simulation cold_single_column[(64, 256)] N/A 1.7 ms N/A
🆕 Simulation cold_single_column[(8, 256)] N/A 1.6 ms N/A
🆕 Simulation cold[(1, 1024)] N/A 2.2 ms N/A
🆕 Simulation cold[(64, 256)] N/A 32.8 ms N/A
🆕 Simulation cold[(8, 256)] N/A 4.1 ms N/A
🆕 Simulation warm_misaligned[(64, 256)] N/A 75.8 ms N/A
🆕 Simulation warm_misaligned[(8, 256)] N/A 8.7 ms N/A
🆕 Simulation warm[(1, 1024)] N/A 1.5 ms N/A
🆕 Simulation warm[(64, 256)] N/A 71.3 ms N/A
🆕 Simulation warm[(8, 256)] N/A 8.3 ms N/A

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 adamg/split-bench (7274546) with develop (d443eab)

Open in CodSpeed

Footnotes

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

@AdamGS
AdamGS force-pushed the adamg/split-bench branch from acf6eef to e09ea5d Compare August 7, 2026 11:35
AdamGS and others added 3 commits August 7, 2026 13:56
Benchmarks SplitBy::Layout over written files (struct -> chunked -> flat
per column) across column and chunk counts:

- cold: fresh reader tree per iteration, as the first scan over a file
- warm: reused reader tree
- cold_single_column: narrow field mask over a wide schema
- {cold,warm}_misaligned: per-column chunk granularities so no two
  columns share interior chunk boundaries

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
@AdamGS
AdamGS force-pushed the adamg/split-bench branch from e09ea5d to 7274546 Compare August 7, 2026 12:56
@AdamGS AdamGS closed this Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/chore A trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant