feat: compactor rewriter LRU cache #3165
Merged
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.
The PR changes the way symbolic data is managed at compaction. Instead of loading all partitions simultaneously, only the last two partitions will be retained. In the vast majority of cases, a partition will be accessed only once, as it is utilized by a continuous range of profiles.
Experiments indicate that this approach reduces memory usage by at least 20%:
Increased CPU consumption does not cause major issues:
LRU cache with a fixed size of 2 is used to limit the number of partitions loaded simultaneously. Subsequently, if deemed necessary, we can make this parameter configurable.
Partially mitigates #3127