errose28 opened a new pull request, #3465:
URL: https://github.com/apache/ozone/pull/3465

   ## What changes were proposed in this pull request?
   
   **Please read the design document attached to HDDS-5141 for context when 
reviewing**
   
   Add the foundation for finalizing an SCM HA cluster. Non-HA SCM finalization 
will also use this code from now on. Other remaining items under the parent 
Jira HDDS-5141 which are out of scope for this task are:
   - HDDS-6762
       - Async finalization from client perspective (return to the client after 
the finalizing mark has been written to the DB).
       - Ability for the client to query the status of ongoing SCM finalization.
   - HDDS-6761
       - Resume finalization on the new SCM leader on leader change, and cease 
the finalization thread on the old leader.
       - Allow followers to finalize from a snapshot.
           - This is the purpose of storing the layout version in the DB as 
well as the version file.
   
   Portions of the common upgrade framework were refactored under this PR as 
well to make it more flexible for supporting SCM HA finalization. For example, 
finalization in the `BasicUpgradeFinalizer` was split from one method 
finalizing all layout features to one method invoked to finalize each layout 
feature.
   
   Some more invasive changes are marked as TODO to reduce the size of this PR:
       - Refactor the old `SCMNodeManager` constructor which has been left due 
to its high usage in tests.
       - Refactor `TestSCMNodeManager` to use junit jupiter for test specific 
parameterization.
    
   ## What is the link to the Apache JIRA
   
   HDDS-6760
   
   ## How was this patch tested?
   
   - Existing unit tests modified.
   - New unit tests added.
   - `TestHDDSUpgrade#testFinalizationFromInitialVersionToLatestVersion` was 
run with 3 SCMs and passed consistently, although this test is excluded from 
the regular CI workflow.
   - Existing upgrade acceptance tests passed. These tests currently do not use 
SCM HA but are still running the code in this PR.
   
   ## Outstanding Issues
   
   - This PR is being left as a draft until the following issues are resolved:
       - Failure in `TestDatanodeUpgradeToScmHA`.
       - Failure in `TestScmFinalization#testResumeFinalizationFromCheckpoint`
           - See the `TODO` comment in `BasicUpgradeFinalizer#finalize` for 
what needs to be done to fix this test.
       - `ScmUpgradeFinalizer` is not receiving injected 
`UpgradeFinalizationExecutor`s after refactoring.
           - This is an easy fix that will be corrected soon.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to