-
Notifications
You must be signed in to change notification settings - Fork 34
docs: use reclaim_memory() name and update docs accordingly #388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
|
|
|
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR improves the memory management API by renaming release_virtual_memory_buckets() to reclaim_memory() and changing its return value from bucket count to page count for better user experience. The changes include comprehensive documentation updates across README and docs to demonstrate memory reclamation scenarios and strengthen memory isolation warnings.
- Renamed API method for better semantics and user-friendly return values
- Added comprehensive memory reclamation documentation with migration examples
- Updated all test files and comments to use consistent "memory reclamation" terminology
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/memory_manager.rs | Core API change: renamed method and updated return type from bucket count to page count |
| src/memory_manager/memory_reclaim_*_tests.rs | Updated test files to use new method name and terminology throughout |
| src/btreemap.rs | Updated safety documentation to reference new method name |
| src/btreeset.rs | Updated safety documentation to reference new method name |
| docs/src/concepts/memory-manager.md | Added comprehensive memory reclamation section with migration scenarios |
| README.md | Enhanced with memory reclamation examples and improved formatting |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
This PR reverts adding `reclaim_memory` method. Reverts several recent commits in a single change: - `6e397bd` fix: use conservative bucket reuse that survives reload #394 - `00468e1` docs: update memory reclamation examples in the docs #392 - `b911479` docs: cleanup documentation #391 - `d1fde89` docs: use reclaim_memory() name and update docs accordingly #388 - `a18917b` docs: add safety documentation and tests for manual bucket release #387 - `73e96e8` feat: add manual bucket release to prevent memory waste #386 This PR restores the codebase to the state before these commits. Done with `git revert -n 6e397bd 00468e1 b911479 d1fde89 a18917b 73e96e8` The reason for reverting this approach was that it can reclaim unused memory in theory but provides little benefit in real-world migrations. All due to the requirement to keep buckets in ascending order in each VM. Example 1: Reuse works ``` A allocates: [0, 4, 5] B allocates: [1, 2, 3] A frees: [0, 4, 5] B grows: can reuse bucket 4 (since 4 > max(B) = 3) B after grow: [1, 2, 3, 4] ``` Example 2: Reuse fails ``` A allocates: [0, 1, 2] B allocates: [4, 5, 6] A frees: [0, 1, 2] B grows: cannot reuse any freed bucket (all < max(B) = 6), so allocates new bucket 7 B after grow: [4, 5, 6, 7] ``` In real life when migrating state A to state B, state B created after state A grown, so it's first bucket ID is already higher than any free bucket in state A virtual memory, therefore can not be reused.
This PR provides a better
reclaim_memoryname to the public API method.API Improvement:
release_virtual_memory_buckets()→reclaim_memory()for better semanticsu64) instead of bucket count (usize) for user-friendly valuesDocumentation:
map_a/map_b,u8values)