Skip to content

HDDS-14826. Prepare OM to switch from LayoutVersionManager to ComponentVersionManager#10098

Open
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
errose28:om-version-manager-no-prod
Open

HDDS-14826. Prepare OM to switch from LayoutVersionManager to ComponentVersionManager#10098
errose28 wants to merge 7 commits intoapache:HDDS-14496-zdufrom
errose28:om-version-manager-no-prod

Conversation

@errose28
Copy link
Copy Markdown
Contributor

@errose28 errose28 commented Apr 20, 2026

What changes were proposed in this pull request?

This PR adds functionality and renames to prepare OM to be switched to the new versioning framework. This PR is intended to have no impact to production code and does not do any functional migration. It:

  • Renames old layout version terminology to the new apparent version terminology
  • Adds functionality to the previously introduced OMVersionManager to load upgrade actions that correspond to different versions.
    • By separating upgrade action loading from the version manager itself, we can do things like inject different upgrade actions for testing, and later bind different upgrade actions for SCM and Datanodes even though they use the same HDDSVersionManager.
  • Adds testing that OMVersionManager can handle unknown or invalid apparent versions on startup and fixes an issue in this area.
  • Moves all upgrade finalization logic for the new framework within the version manager.
    • For OM (and later SCM), this includes the ability to finalize from a snapshot.
    • Upgrade finalizer and executor classes will not be required and can be removed when all components are switched to the new framework.

OM version framework migration is completed in #10099. Reference that PR to see how the changes here are used.

What is the link to the Apache JIRA

HDDS-14826

How was this patch tested?

All tests pass on my fork.

New unit tests were added for new version manager functionality like detecting invalid versions at startup and executing upgrade actions. Existing tests are expected to pass since the new version manager is not yet used in prod code.

…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 requested review from dombizita and sodonnel April 20, 2026 22:01
@errose28 errose28 added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label Apr 20, 2026
@errose28 errose28 marked this pull request as ready for review April 21, 2026 13:47
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.

I think this looks OK. +1 to commit and we can rebase the next one on top.

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