[
https://issues.apache.org/jira/browse/HDDS-13461?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Priyesh K updated HDDS-13461:
-----------------------------
https://github.com/apache/ozone/pull/8822
> Refactor BlockGroup for Upgrade Compatibility
> ---------------------------------------------
>
> Key: HDDS-13461
> URL: https://issues.apache.org/jira/browse/HDDS-13461
> Project: Apache Ozone
> Issue Type: Sub-task
> Reporter: Priyesh K
> Assignee: Priyesh K
> Priority: Major
> Labels: pull-request-available
>
> This JIRA addresses a compatibility issue between OM and SCM during upgrade
> scenarios by refactoring how proto messages are created and handled.
> Previously, the {{BlockGroup}} class contained a list of {{{}BlockID{}}}s
> directly, which made it difficult to support new proto structures—such as
> including block size and replicated size—without breaking compatibility
> between different versions of OM and SCM. To solve this, the proto conversion
> logic has been moved out of {{BlockGroup}} and into the translator classes:
> {{ScmBlockLocationProtocolClientSideTranslatorPB}} and
> {{{}ScmBlockLocationProtocolServerSideTranslatorPB{}}}. These classes now
> handle creating and interpreting proto messages based on the SCM layout
> version. This ensures that when OM or SCM is upgraded independently, they can
> still communicate using the appropriate proto format. For example, if an old
> OM talks to a new SCM, the SCM detects the old proto format and decodes it
> using fallback logic. If a new OM talks to an old SCM, it checks the layout
> version using {{getScmInfo()}} and falls back to the old format if needed.
> When both components are upgraded, the system uses the new proto format with
> size-aware metadata.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]