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

Suresh Srinivas commented on HADOOP-7557:
-----------------------------------------

bq. I provided a patch that's equivalent in functionality to Sanjay's protobuf 
patch yet is about half the size, disregarding the protobuf generated code in 
his patch. 
I feel the intent of your patch was to show how this can be done in key values 
and hence patch may not be in final shape. I believe the patch is missing 
several things. 
# The header, keys and values are not clearly documented. 
# No tests are added. 
# The fact that you are creating ugi in for loop, might not be correct. It may 
have to be outside the for loop.
# Other than Key.EOH every thing is optional (rightfully so in some cases). 
However, not sure if Key.PROTOCOL could be optional. So checks are needed to 
ensure mandatory key PROTOCOL is sent.

BTW to me more than the size, it is maintainability that matters.

bq. I don't think adding some code to make some items optional would not make 
it much bigger or complicated.
As I said earlier, in your patch, it seems to me that all are optional except 
EOH. See the following comment:

bq. Do you have real examples of RPC headers that would make this unmanageable 
using the approach I presented in that patch?
Right now there are 3 key value pairs. Writing the code to ensure mandatory and 
optional for just this three would expand the code further. Some requirements I 
have that are satisfied nicely by protobuf is:
# Documenting header - Hadoop documentation has been poor and incomplete. The 
fact that any one who wants to connect over RPC needs to consult the document, 
look at the implementation is painful. Using things such as ordinal to capture 
key value, having to look at javacode for protocol string (such 
AuthMethod.DIGEST etc.) also makes it hard.
# protobuf gives other capabilities that are also of interest, such as default 
values for optional field, having capability not just sent only String in value 
but an object etc.

                
> 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