Skip to content

perf: build a path row from the scanned allocation and free big row sets off thread - #1501

Merged
thekevinbot merged 5 commits into
mainfrom
bot/speed-walk-rowpath-1011
Oct 13, 2026
Merged

thekevinbot merged 5 commits into
mainfrom
bot/speed-walk-rowpath-1011

Conversation

@thekevinbot

@thekevinbot thekevinbot commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #1474, #1477, #1482, #1461.

A matched file's path is built from the scanned allocation instead of copied, query_each reuses its cell buffers, and a large evicted row set is freed off the evicting thread.

Red: c883de0 (run 38187965400) failed on the three new unit tests (a_row_without_a_prefix_keeps_the_scanned_path_allocation, a_large_evicted_row_set_is_freed_off_the_evicting_thread, filling_a_text_cell_with_text_reuses_its_buffer).

case (hyperfine -N, 20 runs, load 5-6) before after
./**/*.md recursive 82.8 ms 69.2 ms
./**/*.md depth 233.4 ms 212.1 ms
./* one level 175.9 ms 156.6 ms

No case crosses the 1.1x tolerance, so no bar flips.

Changelog

packages/rust/changelog.d/2026-10-11-faster-path-rows.md

Migrations

packages/rust/migrations.d/2026-10-11-faster-path-rows.md (none needed)

E2E Verification

  • Ran e2e suites locally for every affected SDK
  • Python SDK e2e: pass
  • TypeScript SDK e2e: pass
  • Rust core e2e: N/A (covered by the receipts)
  • Python and TypeScript receipts written
  • Command(s) run: testing-conventions e2e attest over the glob_speed_*, stat_speed, query_contract python tests (26 passed); testing-conventions e2e attest 'pnpm test:e2e' in packages/ts (18 passed)
  • Result summary: all pass

@thekevinbot
thekevinbot marked this pull request as ready for review October 12, 2026 01:25
@thekevinbot
thekevinbot merged commit 0ade1ae into main Oct 13, 2026
89 checks passed
@thekevinbot
thekevinbot deleted the bot/speed-walk-rowpath-1011 branch October 13, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant