[ 
https://issues.apache.org/jira/browse/HDDS-14673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18060170#comment-18060170
 ] 

Tsz-wo Sze commented on HDDS-14673:
-----------------------------------

[~russole], thanks for trying it!

bq. Protobuf-generated enums (e.g. HddsProtos.PipelineState) still
implement ProtocolMessageEnum. ...

Do you know how many such enums?  We have different ways to fix the problems:

# If we could find out all the enums, we may add a codec for each enum.
# If we could not easily find out all the enums, we may add a codec at runtime 
-- when a new enum is discovered at runtime, we add it to the factory.  Then, 
the codec will be available for the same enum. 

> Check if ScmEnumCodec is needed.
> --------------------------------
>
>                 Key: HDDS-14673
>                 URL: https://issues.apache.org/jira/browse/HDDS-14673
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: SCM HA
>            Reporter: Tsz-wo Sze
>            Assignee: Chen-Jheng Sing
>            Priority: Major
>
> Since we don't need a similar codec for 
> org.apache.ratis.thirdparty.com.google.protobuf.ProtocolMessageEnum,
> I suspect that ScmEnumCodec is not used at all.  We should try removing it 
> from ScmCodecFactory.
> {code}
> +++ 
> b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodecFactory.java
> @@ -40,7 +40,6 @@ public final class ScmCodecFactory {
>    static {
>      codecs.put(com.google.protobuf.Message.class, new 
> ScmNonShadedGeneratedMessageCodec());
>      codecs.put(Message.class, new ScmGeneratedMessageCodec());
> -    codecs.put(ProtocolMessageEnum.class, new ScmEnumCodec());
>      codecs.put(List.class, new ScmListCodec());
> {code}
> If it is not used, just remove the entire ScmEnumCodec class.  Otherwise, we 
> may discuss how to avoid reflection.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to