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]