[ 
https://issues.apache.org/jira/browse/HDFS-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12853620#action_12853620
 ] 

Doug Cutting commented on HDFS-1077:
------------------------------------

> However, if a server implements multiple independent RPC protocols, then we 
> cannot require their method names to not conflict.

Currently Hadoop relies on Java interface semantics: if a service implements 
two interfaces with methods of the same signature (unqualified name + param 
types) then they're collapsed into a single method in the implementation.  Avro 
reflect's implementation is similar, except equality is not on signature but of 
method name, since Avro supports evolution of message parameters.

> Aren't the method name prefixed by the protocol name?

In Avro a service could determine which protocol each call belongs to.  But in 
Hadoop we've implemented servers that respond to all the methods of numerous 
protocols, distinguished by method name and parameter types, not by protocol.  
Avro reflect, for compatibility, has followed this convention.  We could 
instead, e.g., dispatch each service to a different server-side object based on 
the protocol, but that would require much more extensive changes to Hadoop.

> namenode RPC protocol method names are overloaded
> -------------------------------------------------
>
>                 Key: HDFS-1077
>                 URL: https://issues.apache.org/jira/browse/HDFS-1077
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: name-node
>            Reporter: Doug Cutting
>            Assignee: Doug Cutting
>
> Avro RPC does not permit two different messages with the same name.  Several 
> namenode RPC protocol method names are overloaded.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to