-
Notifications
You must be signed in to change notification settings - Fork 394
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
feat(pageserver): initial code sketch & test case for combined gc+compaction at gc_horizon #7948
Conversation
3198 tests run: 3056 passed, 0 failed, 142 skipped (full report)Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
90edb45 at 2024-06-11T14:23:48.082Z :recycle: |
6e46d50
to
3455d52
Compare
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.
// TODO: we should test a real delta record here, which requires us to add a variant of NeonWalRecord for testing purpose.
At the Istanbul offsite, Vlad proposed to add such a record type (guarded by #[cfg(test)]
.).
I think your next PR should be that.
Extend test_simple_bottom_most_compaction
so we exercise the redo code path.
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.
More appropriate PR title (I don't think we should talk about levels, really):
initial code sketch & test case for combined gc+compaction at gc_horizon
6685a09
to
fa601a9
Compare
Signed-off-by: Alex Chi Z <chi@neon.tech>
Signed-off-by: Alex Chi Z <chi@neon.tech>
Signed-off-by: Alex Chi Z <chi@neon.tech>
Signed-off-by: Alex Chi Z <chi@neon.tech>
fa601a9
to
90edb45
Compare
Problem
A demo for a building block for compaction. The GC-compaction operation iterates all layers below/intersect with the GC horizon, and do a full layer rewrite of all of them. The end result will be image layer covering the full keyspace at GC-horizon, and a bunch of delta layers above the GC-horizon. This helps us collect the garbages of the test_gc_feedback test case to reduce space amplification.
This operation can be manually triggered using an HTTP API or be triggered based on some metrics. Actual method TBD.
The test is very basic and it's very likely that most part of the algorithm will be rewritten. I would like to get this merged so that I can have a basic skeleton for the algorithm and then make incremental changes.
Summary of changes
Checklist before requesting a review
Checklist before merging