[ 
https://issues.apache.org/jira/browse/HDFS-15790?focusedWorklogId=565129&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-565129
 ]

ASF GitHub Bot logged work on HDFS-15790:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 12/Mar/21 06:48
            Start Date: 12/Mar/21 06:48
    Worklog Time Spent: 10m 
      Work Description: vinayakumarb opened a new pull request #2767:
URL: https://github.com/apache/hadoop/pull/2767


   ## Existing ClientSide available Protobuf RPC Engines.
   * ProtobufRpcEngine: Supports existing implementations based in protobuf 
2.5.0 in both client side and server side. No code changes required in 
downstreams use this.
   * ProtobufRpcEngine2: Uses shaded protobuf of 3.7.1 version and supports 
client side and server side implementations based on shaded protobuf 3.7.1
   
   # Whats Changed?
   
   ## Server side Protobuf RPC Engines
   `ProtobufRpcEngine2` itself will handle both versions (2.5.0 and 3.7.1) of 
requests for RpcKind.PROTOCOL_BUFFERS. 
   `ProtobufRpcEngine2` will handover the processing to Legacy 
`ProtobufRpcEngine` if server side protocol implemenation found to be using 
older version of protobuf (2.5.0).
   
   ## How conflict arised?
   Both `ProtobufRpcEngine` and `ProtobufRpcEngine2` tried to register their 
corresponding RPC `Server` implementations to handle requests of kind 
`RpcKind.PROTOCOL_BUFFERS`, although this registering is of no-use in 
client-JVM. Only Server side this registration is required.
   
   Now, since `ProtobufRpcEngine2` itself can handle both versions of protobuf 
requests at server side, registering only `ProtobufRpcEngine2` will be 
sufficient.
   So no conflict is raised for co-existence.
   
   ## How old clients (before 3.3.0) are affected.?
   Since client JVM side registering of `ProtobufRpcEngine` will not affect 
server-JVM (running with latest version) and server can efficiently handle both 
type of implementations, there will not be any issues.


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

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 565129)
    Time Spent: 1h  (was: 50m)

> Make ProtobufRpcEngineProtos and ProtobufRpcEngineProtos2 Co-Exist
> ------------------------------------------------------------------
>
>                 Key: HDFS-15790
>                 URL: https://issues.apache.org/jira/browse/HDFS-15790
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Changing from Protobuf 2 to Protobuf 3 broke some stuff in Apache Hive 
> project.  This was not an awesome thing to do between minor versions in 
> regards to backwards compatibility for downstream projects.
> Additionally, these two frameworks are not drop-in replacements, they have 
> some differences.  Also, Protobuf 2 is not deprecated or anything so let us 
> have both protocols available at the same time.  In Hadoop 4.x Protobuf 2 
> support can be dropped.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to