Skip to content

docs(spatial): address review of R-tree page enumeration (follow-up to #205) - #218

Merged
mrdevrobot merged 1 commit into
EntglDb:mainfrom
CaffeinatedCoder:docs/205-review-followups
Oct 15, 2026
Merged

mrdevrobot merged 1 commit into
EntglDb:mainfrom
CaffeinatedCoder:docs/205-review-followups

Conversation

@CaffeinatedCoder

Copy link
Copy Markdown
Collaborator

Follow-up to the #205 review (#189).

  • VacuumOptions.RebuildIndexes: replaced "Spatial indexes are not rebuilt." with "Spatial (R-tree) indexes are rebuilt the same way."
  • RTreeIndex.CollectAllPages: the doc now says the walk doesn't take the index lock, and which lock each caller holds:
    • the vacuum rebuild holds the collection write lock;
    • DropIndex holds the index manager's _lock, which index insert/update/delete also take;
    • a dropped collection is disposed first.
  • A page reached twice (a cycle or a shared child) now hits Debug.Fail. The seen set still keeps release builds finite, and the page is counted once.

No behaviour change in release builds. Spatial/Vacuum/RTree/Geo tests: 105 passed. Spatial_DeleteHalf_OfASplitTree_ReturnsExactlyTheSurvivors timed out once under parallel load and passed 3/3 on its own. No Debug.Fail fired in Debug runs, including the half-deleted trees.

🤖 Generated with Claude Code

- VacuumOptions.RebuildIndexes: drop the stale "Spatial indexes are not
  rebuilt" sentence; spatial indexes are now rebuilt like the others.
- RTreeIndex.CollectAllPages: document that the walk does not take the
  index lock and which lock each caller holds.
- RTreeIndex.CollectAllPages: Debug.Fail when a page is reached twice
  (cycle or shared child); the seen set still keeps release builds finite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@mrdevrobot mrdevrobot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. The doc now matches what vacuum does, and the locking contract on CollectAllPages is spelled out. The Debug.Fail on a page reached twice is a good tripwire. Verified merged with #219 and #215 on top of main: full suite green (2538 passed).

@mrdevrobot
mrdevrobot merged commit 69e1e40 into EntglDb:main Oct 15, 2026
2 checks passed

This branch was successfully deployed

1 active deployment
Production — d08bffd5 Deployed Oct 13, 2026 by CaffeinatedCoder via build_and_publish #687
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.

2 participants