-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
mon,osd,osdc: refactor snap trimming (phase 1) #18276
Merged
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit
Hold shift + click to select a range
c536d4c
osd/osd_types: note about removed_snaps hack
liewegas c8bfe3f
osd/PG: share_pg_info shares past_itnervals, not PastIntervals()
liewegas 81d63f2
osd/OSDMap: improve osdmap flag dumping in json
liewegas df7523b
qa/suites/rados/singleton/all/thrash-eio: more whitelist
liewegas ea308ad
include/interval_set: add get_end() to iterator
liewegas 3119cf5
include/mempool: add flat_set alias
liewegas 1b1eec2
include/types: flat_set operator<<
liewegas b9c5a24
osd/osd_types: SnapSet: remove get_first_snap_after()
liewegas e89649d
mds/SnapServer: fix reset()
liewegas 1f133a2
mon/OSDMonitor: reset OSDMap state before decode
liewegas 37c4aff
mon/OSDMonitor: clear pending_metadata* in create_pending
liewegas 553048f
osd/OSDMap: track newly removed and purged snaps in each epoch
liewegas 9d606c5
mon/OSDMonitor: record removed_snaps by epoch outside of the osdmap
liewegas 49833c3
mon/OSDMonitor: share snaps removed during a map gap
liewegas 38e96ec
mon/MgrStatMonitor: dump PGMapDigest at debug level 20
liewegas 32d7538
osdc/Objecter: prune new_removed_snaps from active op snapc's
liewegas b1b8fc6
osdc/Objecter: rename _scan_requests force_resend -> skipped_map
liewegas 192a8dc
osdc/Objecter: apply removed_snaps from gap to in-flight requests
liewegas a53ba73
osd,mon: add 'nosnaptrim' osd flag
liewegas 345d3b6
osd/osd_types: add purged_snaps to pg_stat_t
liewegas 6df912b
osd/PG: share purged_snaps with mgr at mimic
liewegas 86f0b81
mon/PGMap: add purged_snaps map to PGMapDigest
liewegas e5f62fb
osd/PG: move debug_verify_cached_snaps check into PGPool::update
liewegas 33c9907
osd/PG: some whitespace
liewegas f04729c
osd/PG: break out of Active AdvMap handler if interval change
liewegas 231ec67
osd/PG: simplify replica purged_snaps update
liewegas 6e1b7c4
osd/PG: use new mimic osdmap structures for removed, pruned snaps
liewegas 16c5bcc
osd/osd_types: pg_pool_t: add FLAG_{SELFMANAGED,POOL}_SNAPS flags
liewegas fd6a59e
mon/OSDMonitor: convert removed_snaps on first mimic map
liewegas 9607a2d
mon/OSDMonitor: prune purged snaps
liewegas f2d602a
mon/OSDMonitor: propagate new_removed_snaps to other tiers
liewegas 8c44dab
osd/PG: ignore purged_snaps inconsistencies for now
liewegas File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
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.
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.
Why isn’t this caught somewhere else? We haven’t changed the peering algorithms here...
I presume it’s because of the map processing change, but I’m not quite seeing how.
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.
This was one of those cases where I was surprised we hadn't hit it before. Until now, the deeply-nested states' AdvMap handler didn't do anything important, so the fact that the outer-state handler that detects the interval change runs after didn't matter. Now, I've added processing to that handler that gets royally confused when it isn't (yet) aware of the interval change. I forget now which crash I saw, but I think it was that purged_snaps (in pg_info_t) was being updated differently. I suspect the option 1 tolerates that better now, but the rest of this function is still all work that shouldn't be run at all if the interval just changed.
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.
Sounds good.