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

   ## What changes were proposed in this pull request?
   
   All upgrade actions should be idempotent since the framework only guarantees 
they are run at least once. Recon currently works around this by:
   - Only using upgrade actions that do SQL modifications.
     - This is not guaranteed to always be the case since future upgrade 
actions could affect Recon's RocksDB or directory structure.
   - Implementing its own upgrade action runner that commits the result of the 
actions and the version increase in a single SQL commit.
     - This requires Recon to maintain custom upgrade code instead of using the 
common method used by every other component.
   
   This change will make Recon's existing upgrade actions idempotent so there 
is no dependency on Recon's custom upgrade flow, and future upgrade actions 
will be able to modify any part of Recon's disk state as long as they are 
idempotent. It also reduces code duplication in existing upgrade actions and 
propagates exceptions that indicate the upgrade actions failed and the upgrade 
should not proceed.
   
   After this change we can switch Recon to use the new versioning framework in 
HDDS-15374.
   
   This change was largely generated by Cursor and reviewed by me.
   
   ## What is the link to the Apache JIRA
   
   HDDS-15488
   
   ## How was this patch tested?
   
   Unit tests added and updated for all Recon upgrade actions, including adding 
tests that they are idempotent.
   


-- 
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