hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hairong Kuang (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-1329) A baby step towards inter-version communications between dfs client and NameNode
Date Tue, 03 Aug 2010 16:31:18 GMT

    [ https://issues.apache.org/jira/browse/HDFS-1329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12894923#action_12894923

Hairong Kuang commented on HDFS-1329:

Yes, it is going to be a hard coded compatibility list. The goal of this jira is not to do
anything intelligent for automatic compatibility detection. Instead it provides a starting
point for our developers to make across-version changes to ClientProtocol. In many company's
setups, it is very hard to upgrade both the client & server at the same time. It's nice
if HDFS could support rolling upgrade.

The more I think about it, it is not only the client but also the server should participate
in the version compatibility checking.Suppose the client is old but the server is new. The
client does not know the new server but the new server should be able to tell if the client
is allowed to talk to the new server or not. Whoever is newer should be the one that does
the compatibility check. So VersionProtocol#getProtocolVersion should do a compatibility check
if the server is newer than the client.

> A baby step towards inter-version communications between dfs client and NameNode
> --------------------------------------------------------------------------------
>                 Key: HDFS-1329
>                 URL: https://issues.apache.org/jira/browse/HDFS-1329
>             Project: Hadoop HDFS
>          Issue Type: New Feature
>          Components: hdfs client
>    Affects Versions: 0.22.0
>            Reporter: Hairong Kuang
>            Assignee: Hairong Kuang
>             Fix For: 0.22.0
> 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
> 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.
You can reply to this email to add a comment to the issue online.

View raw message