Skip to content

HDDS-15195. Switch Datanode to the new versioning framework#10215

Merged
errose28 merged 21 commits into
apache:HDDS-14496-zdufrom
errose28:dn-version-migration2
May 15, 2026
Merged

HDDS-15195. Switch Datanode to the new versioning framework#10215
errose28 merged 21 commits into
apache:HDDS-14496-zdufrom
errose28:dn-version-migration2

Conversation

@errose28

@errose28 errose28 commented May 8, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Switch Datanodes the new unified versioning framework. The change is modeled after what was already done on the OM in #10099. This change gives Datanodes software version ZDU, which is higher than what SCM currently has since SCM has not been switched yet. A temporary workaround was added to SCM to account for this, and one test in TestSCMNodeManager needed to be bypassed until SCM's version handling is completed in HDDS-15129.

A lot of the files touched were just to rename DatanodeLayoutStorage to DatanodeStorage to be consistent with other components and remove the old layout version terminology.

What is the link to the Apache JIRA

HDDS-15195

How was this patch tested?

Unit tests for new DatanodeVersionManager and loading DatanodeUpgradeActions were added. All existing upgrade related tests should pass.

Checks passing on my fork.

@errose28
errose28 requested review from dombizita and sodonnel May 8, 2026 15:02
@errose28 errose28 added the zdu Pull requests for Zero Downtime Upgrade (ZDU) https://issues.apache.org/jira/browse/HDDS-14496 label May 8, 2026
@errose28
errose28 marked this pull request as ready for review May 11, 2026 22:51

@sodonnel sodonnel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM if we can get green CI.

@errose28
errose28 merged commit e1e15cb into apache:HDDS-14496-zdu May 15, 2026
105 of 106 checks passed
errose28 added a commit to errose28/ozone that referenced this pull request Jul 13, 2026
* HDDS-14496-zdu: (363 commits)
  HDDS-15639. Adjust Upgrade status command to call OM intead of SCM (apache#10579)
  HDDS-15622. New finalize command should check OM server version (apache#10548)
  HDDS-15609. Legacy SCM Finalize command should become a no-op (apache#10543)
  HDDS-15528. Adjust upgrade finalize command to call OM instread of SCM (apache#10493)
  HDDS-15488. Recon upgrade actions should be idempotent (apache#10442)
  HDDS-15482. Add fencing based on datanode versions to SCM and Recon (apache#10504)
  HDDS-15374. Switch Recon to the new versioning framework (apache#10443)
  HDDS-15484. Decouple ComponentVersionManager from Storage (apache#10437)
  HDDS-15386. Remove LayoutFeature interface (apache#10376)
  HDDS-15379. Remove unused classes from the old upgrade framework (apache#10370)
  HDDS-15377. Switch SCM to use new ScmVersionManager (apache#10368)
  HDDS-15483. More renames missed in HDDS-15375 (apache#10436)
  HDDS-15376. Implement new ScmVersionManager. (apache#10367)
  HDDS-15208. OM should learn to finalize from SCM after finalization command (apache#10236)
  HDDS-15375. Renames to prepare to switch SCM to the new versioning framework. (apache#10366)
  HDDS-15195. Switch Datanode to the new versioning framework (apache#10215)
  HDDS-15263. Downgrade should happen in reverse order (apache#10269)
  HDDS-14821. Version specific data validation in rolling-upgrade suite (apache#10033)
  HDDS-15196. Split HDDS upgrade actions into specific SCM and Datanode actions. (apache#10206)
  HDDS-14670. SCM queryFinalizeStatus shouldFinalize should only be true when out of safemode (apache#10193)
  ...

Conflicts:
hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java
hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerStateMachine.java
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/upgrade/OMCancelPrepareRequest.java
hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerStateMachine.java
hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/protocolPB/TestOzoneManagerRequestHandler.java
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