hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luke Lu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-6904) A baby step towards inter-version RPC communications
Date Thu, 26 May 2011 22:28:48 GMT

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

Luke Lu commented on HADOOP-6904:
---------------------------------

bq. VersionedProtocol keeps the old API: getProtocolVersion for backwards compatibility purpose.

The patch added a new method getProtocolSignature to the VersionedProtocol interface, which
breaks (compile and runtime) all existing code that uses VersionedProtocol.

Looking at the code added to mapreduce protocols, it seems that the default getProtocolSignature
impl doesn't need the interface change i.e., the API breakage doesn't seem necessary in default
cases. For people who want to map a protocol to a different impl than the default. An additional
static ProtocolSignature.bind(String protocol, Type impl) method can be used to establish
the mapping at class init time.

> A baby step towards inter-version RPC communications
> ----------------------------------------------------
>
>                 Key: HADOOP-6904
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6904
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: ipc
>    Affects Versions: 0.22.0
>            Reporter: Hairong Kuang
>            Assignee: Hairong Kuang
>             Fix For: 0.23.0
>
>         Attachments: majorMinorVersion.patch, majorMinorVersion1.patch, rpcCompatible-trunk.patch,
rpcCompatible-trunk1.patch, rpcCompatible-trunk10.patch, rpcCompatible-trunk11.patch, rpcCompatible-trunk2.patch,
rpcCompatible-trunk4.patch, rpcCompatible-trunk5.patch, rpcCompatible-trunk6.patch, rpcCompatible-trunk7.patch,
rpcCompatible-trunk8.patch, rpcCompatible-trunk9.patch, rpcVersion.patch, rpcVersion1.patch
>
>
> Currently RPC communications in Hadoop is very strict. If a client has a different version
from that of the server, a VersionMismatched exception is thrown and the client can not connect
to the server. This force us to update both client and server all at once if a RPC protocol
is changed. But sometime different versions do not mean the client & server are not compatible.
It would be nice if we could relax this restriction and allows us to support inter-version
communications.
> My idea is that DfsClient catches VersionMismatched exception when it connects to NameNode.
It then checks if the client & the server is compatible. If yes, it sets the NameNode
version in the dfs client and allows the client to continue talking to NameNode. Otherwise,
rethrow the VersionMismatch exception.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message