-
Notifications
You must be signed in to change notification settings - Fork 458
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
fix(pageserver): consider partial compaction layer map in layer check #10044
Conversation
7095 tests run: 6798 passed, 0 failed, 297 skipped (full report)Flaky tests (1)Postgres 16
Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
90c5649 at 2024-12-18T22:21:37.718Z :recycle: |
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.
Can we run this check also at Step 3, while we hold the layer map lock, after updating layer map in finish_gc_compaction
?
(And ideally roll back the change, or panic the tenant?)
3a29119
to
a16a91f
Compare
a16a91f adds a final check for the layer map before updating the compaction result back to the layer map. |
Signed-off-by: Alex Chi Z <[email protected]>
Signed-off-by: Alex Chi Z <[email protected]>
Co-authored-by: Arpad Müller <[email protected]> Signed-off-by: Alex Chi Z <[email protected]>
Signed-off-by: Alex Chi Z <[email protected]>
a16a91f
to
90c5649
Compare
Problem
In #9897 we temporarily disabled the layer valid check because the current one only considers the end result of all compaction algorithms, but partial gc-compaction would temporarily produce an "invalid" layer map.
part of #9114
Summary of changes
Allow LSN splits to overlap in the slow path check. Currently, the valid check is only used in storage scrubber (background job) and during gc-compaction (without taking layer lock). Therefore, it's fine for such checks to be a little bit inefficient but more accurate.