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]
