HDDS-15063. Switch OM to the new Versioning Framework#10099
Draft
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
Draft
HDDS-15063. Switch OM to the new Versioning Framework#10099errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
Conversation
…d small cleanups - Add ComponentVersionManager / HDDSVersionManager / OMVersionManager and related upgrade framework pieces (no OM production wiring). - Move @DisallowedUntilLayoutVersion onto preExecute for snapshot move requests; minor DN/doc/repair/freon cleanups. - Include HDDS-side renames and SCM wiring updates that accompany the version-manager refactor (no functional change on the HDDS side). - Keep LayoutVersionManager + AbstractLayoutVersionManager implementing it until OM wiring PR (HDDS matches feature except those two files). - Include OM wire-compatibility/doc/deprecation proto tweaks, OMStorage apparent-version init alignment, finalize-upgrade response naming, and a comment clarification in OzoneManagerRequestHandler (no OM prod wiring).
…ntVersion() for PR1 compile Made-with: Cursor
…Version() for PR1 compile Made-with: Cursor
…age#getLayoutVersion Made-with: Cursor
…g PR Made-with: Cursor
…ng PR Made-with: Cursor
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.
Draft since this contains and builds off of #10098
What changes were proposed in this pull request?
This completely migrates OM to the new versioning framework. This includes:
OMVersionManagerinstead ofOMLayoutVersionManagerin all places.OMLayoutFeatureAspect, it exposed a bug where some existing snapshot requests had not applied the annotation topreExecuteand were checking against a default (always finalized)OMLayoutVersionManager. This buggy fallback path has been removed and the annotations moved to their correct spot.OzoneManagerVersioninstead ofOMLayoutFeaturefor all new versionsOMVersionManagerinstead ofBasicUpgradeFinalizer/OMUpgradeFinalizerandDefaultUpgradeFinalizationExecutorZDUUnused classes that were specific to OM are removed, but some classes like
BasicUpgradeFinalizerare still used by HDDS Components which have not been migrated yet.Note that upgrade actions can still only be bound to
LayoutFeatures. Because an annotation's field cannot be an interface likeComponentVersion, we cannot use the same annotation to bind upgrade actions to layout features and component versions. This does not cause any immediate problems since only existing versions tracked asLayoutFeatures have upgrade actions, but will need to be addressed in a follow-up so we can continue to add new upgrade actions.What is the link to the Apache JIRA
HDDS-15063
How was this patch tested?
New functionality within the version framework was unit tested in #10098. In this PR all existing upgrade tests are expected to pass without regression.