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

dhruba borthakur commented on HADOOP-6904:
------------------------------------------

> The real difference is the following: if you check during getProx() and a 
> method is missing then how does one assert that it is still okay to connect 
> because the missing method is actually a new method and the call can return a 
> non-implemented exception;

I like the idea of not checking anything during getProxy. Like you said, maybe 
a method is missing from the server, but it is also likely that the client is 
not even interested in making that call. Instead, we should check at every call 
(as you explained via the code piece in list()).

Hairong seems to say that she will make the server send method names over and 
above M-m numbers, I am ok with that idea.

> 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.

Reply via email to