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,
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.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message