Skip to content

HDDS-15063. Switch OM to the new Versioning Framework#10099

Draft
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
errose28:zdu-version-manager-om-review
Draft

HDDS-15063. Switch OM to the new Versioning Framework#10099
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
errose28:zdu-version-manager-om-review

Conversation

@errose28
Copy link
Copy Markdown
Contributor

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:

  • Using OMVersionManager instead of OMLayoutVersionManager in all places.
    • When this was applied to OMLayoutFeatureAspect, it exposed a bug where some existing snapshot requests had not applied the annotation to preExecute and were checking against a default (always finalized) OMLayoutVersionManager. This buggy fallback path has been removed and the annotations moved to their correct spot.
  • OzoneManagerVersion instead of OMLayoutFeature for all new versions
  • Finalization flow and upgrade actions controlled by OMVersionManager instead of BasicUpgradeFinalizer/OMUpgradeFinalizer and DefaultUpgradeFinalizationExecutor
  • Make OM's software version ZDU

Unused classes that were specific to OM are removed, but some classes like BasicUpgradeFinalizer are 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 like ComponentVersion, 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 as LayoutFeatures 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.

…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
@errose28 errose28 added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant