[oblib] Add ordinary purge for free blocks#953
Open
hnwyllmm wants to merge 1 commit into
Open
Conversation
Member
Author
|
The mapping Dima issue is about the [seekdb memory purge feature]. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task Description
The seekdb allocator could keep free blocks resident after chunks became partially unused. This made idle RSS less likely to drop after startup or allocation bursts.
Solution Description
Add ordinary purge of free blocks in the normal allocation/free path without adding a background timer. The purge path scans the existing BlockSet free lists, applies a time interval trigger, and limits each round by both bytes and the maximum number of free spans processed so CPU cost is bounded.
The change also preserves chunk-release cleanup for dirty/purged list references, exposes purged accounting through AChunkMgr, and adds BlockSet unit coverage for delayed ordinary purge behavior.
Passed Regressions
Upgrade Compatibility
No upgrade compatibility impact. No new user-facing parameter is introduced.
Other Information
This MR intentionally does not include the local design document docs/memory_allocator_purge_design.md or local seekdb runtime directories.
Release Note