Add an optional hybrid RW mode for LSMT writable layers. - #443
Open
ZarrianShi wants to merge 2 commits into
Open
Add an optional hybrid RW mode for LSMT writable layers.#443ZarrianShi wants to merge 2 commits into
ZarrianShi wants to merge 2 commits into
Conversation
Add an optional hybrid writable-layer type and persist it in the layer header. Keep append RW as the default. Signed-off-by: Zehuan Shi <xocoder@gmail.com>
Reuse existing non-zero mappings in the current writable layer while continuing to append uncovered, zeroed, and lower-layer ranges. Signed-off-by: Zehuan Shi <xocoder@gmail.com>
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.
What this PR does / why we need it:
This PR adds an optional hybrid RW mode for LSMT writable layers.
When enabled, writes reuse existing non-zero mappings in the current writable layer by overwriting their data payload in place. Ranges not covered by the writable layer—including holes, zeroed mappings, and mappings only present in lower layers—continue to append data and new index records.
This reduces RW layer growth for overwrite-heavy workloads while preserving the existing append-only behavior as the default. It does not introduce online compaction.
The change includes:
--hybridoption for creating a hybrid RW upper layer.Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close the issue(s) when PR gets merged):Fixes #442
Please check the following list: