[
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