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

Doug Cutting commented on HADOOP-7557:
--------------------------------------

Sanjay> [RpcEngine] can help us provide 20 compatibility

I'm confused.  If you switch the RPC headers to protobuf how can you provide 20 
compatibility?  If the protobuf headers are confined to ProtobufRpcEngine then 
I have no issues.  I thought the proposal here is to change RPC format so that 
all RpcEngine implementations use protobuf headers.  That would break 0.20 
compatibility, no?

Sanjay> Another project can use Hadoop RPC but a different serialization then 
it can. (Say avro or thrift).

If we don't have multiple implementations of an extension API that are 
regularly used then the chances that that it's actually possible to create 
other implementations that work is small.  The reason we removed Avro was that 
implementing RpcEngine alone was no longer sufficient: there were assumptions 
that Protobuf was used in other places in the code.  RpcEngine is currently a 
broken abstraction, providing a false claim of plugability.

Sanjay> Doug can add his k-v pair as a parallel structure if he wishes.

I have no desire to add a k-v parallel structure.  I'm just trying to help keep 
the RPC architecture simple and sane.

Suresh> it seems to me that all are optional except EOH

The protobuf documentation says, "Some engineers at Google have come to the 
conclusion that using required does more harm than good; they prefer to use 
only optional and repeated. However, this view is not universal."  So 
(arguably) all or most fields should be optional.

Suresh> Documenting header - Hadoop documentation has been poor and incomplete.

Indeed.  If Hadoop RPC is to be interoperable then it needs a 
language-independent specification and multiple implementations.  That 
specification might specify its headers either as some protobuf messages or as 
some RFC-like text.  Either would work fine.  The default value for optional 
header fields could be specified in either.  But what's also required is a 
description of how to handle the various values for these header fields, 
including the default.  Until then, the implementation is the specification.

                
> Make  IPC  header be extensible
> -------------------------------
>
>                 Key: HADOOP-7557
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7557
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Sanjay Radia
>            Assignee: Sanjay Radia
>         Attachments: HADOOP-7557.patch, IpcHeader.proto, ipcHeader1.patch, 
> ipcHeader2.patch
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to