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]



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

Reply via email to