[
https://issues.apache.org/jira/browse/HDDS-15129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18103463#comment-18103463
]
Ethan Rose commented on HDDS-15129:
-----------------------------------
Thanks for bringing this up. It is not unique to SCM, OM has the same concern.
Previously with non-rolling upgrade the following were not considered
incompatible changes:
* Addition of new Ratis requests
* Removal of existing Ratis requests if it didn't break the external client API
** Renaming a request is a combination of these first two items
* Changes within applyTransaction that affect what is persisted
After ZDU these are all considered incompatible changes because there may be
mixed cluster membership in the group. The changes will need to be behind a
version flag that only gets enabled after the cluster is finalized, similar to
how the existing framework functions. For example, to add a new Ratis request,
it would need a corresponding version entry, and the leader would block the
request until that version is finalized. Note from the design doc that
finalization requires all nodes to be running the latest software.
There will be a developer guide added in HDDS-14776 before the branch is merged
which will cover cases like this. Just like with the current framework, the
burden of flagging incompatible changes will fall on devs and reviewers, ZDU
only provides the framework to handle them after they are flagged. Leader
execution will eventually reduce the surface area for incompatible changes
around Ratis though. I'm also considering developing some sort of AI skill to
inspect releases and catch issues that were missed before they are shipped.
> Switch SCM to the new versioning framework
> ------------------------------------------
>
> Key: HDDS-15129
> URL: https://issues.apache.org/jira/browse/HDDS-15129
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: Ethan Rose
> Assignee: Ethan Rose
> Priority: Major
>
> Same as HDDS-15063, but for SCM.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]