Skip to content

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

Merged
errose28 merged 14 commits into
apache:HDDS-14496-zdufrom
errose28:zdu-version-manager-om-review
Apr 29, 2026
Merged

HDDS-15063. Switch OM to the new Versioning Framework#10099
errose28 merged 14 commits into
apache:HDDS-14496-zdufrom
errose28:zdu-version-manager-om-review

Conversation

@errose28
Copy link
Copy Markdown
Contributor

@errose28 errose28 commented Apr 20, 2026

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 passing on my fork.

…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
* HDDS-14496-zdu:
  HDDS-14940. Create skeleton for ozone admin upgrade status command (apache#10011)
* HDDS-14496-zdu:
  HDDS-14826. Prepare OM to switch from LayoutVersionManager to ComponentVersionManager (apache#10098)
  HDDS-14896. Use separate container for clients in rolling-upgrade suite (apache#10032)
  HDDS-15034. Query SCM status for ozone admin upgrade status command (apache#10084)
  HDDS-14897. Add multiple S3 gateways to the rolling-upgrade suite (apache#10028)

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMStorage.java
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMStorage.java
hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/TestOMUpgradeFinalizer.java
@errose28 errose28 requested review from dombizita and sodonnel April 27, 2026 21:43
* HDDS-14496-zdu:
  HDDS-15126. Remove unused TestHDDSUpgrade (apache#10148)
@errose28 errose28 marked this pull request as ready for review April 28, 2026 16:11
Copy link
Copy Markdown
Contributor

@sodonnel sodonnel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@errose28 errose28 merged commit 70cbe94 into apache:HDDS-14496-zdu Apr 29, 2026
54 of 56 checks passed
@errose28
Copy link
Copy Markdown
Contributor Author

Thanks @sodonnel for the review. Merging this into the feature branch so we can continue switching the other components over.

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.

2 participants