hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sanjay Radia (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-6904) A baby step towards inter-version communications between dfs client and NameNode
Date Wed, 08 Dec 2010 02:41:04 GMT

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

Sanjay Radia commented on HADOOP-6904:

The client side does not know what is *newly* added or deleted. All it has is client and server
side list of methods. The client also knows that the
major number has not changed (ie getProxy succeeded)-- ie the calls that work should be called.

* For the optimized methods, an upper layer (say Hdfs or DfsClient) will check to see if optimal
method is available and if not it will call the non-optimized method;
for this one has to consult the list of server methods. This matches the case  with the previous
M-m# approach where  one compared the minor number to see if it supports the optimized method
(see my list example above).
* For the rest of the methods , simply make the call; consulting the list of server methods
is an optimization for the failure case. Recall that for the previous M-m# approach
we did NOT compare the m# but simply make the call.

(Dhruba, did you buy the use of the Major number along with method names?)

> A baby step towards inter-version communications between dfs client and NameNode
> --------------------------------------------------------------------------------
>                 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.22.0
>         Attachments: majorMinorVersion.patch, majorMinorVersion1.patch, rpcVersion.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
> 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