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

stack commented on HBASE-7188:
------------------------------

Elliott, now client-side, when Invoker does getProtocolVersion, it is reading 
the local version of the protocol (HBaseClientRPC.getProtocolVersion).  Is that 
right?  When does client ever learn the server version?  When I set up the 
protocol, should I not be going to the server to ask its version of the 
protocol?  At least for the server version of this protocol?  Or how do you see 
this versioning and proxying working on protocol Interfaces now?  Previous, 
after getting proxy, we used to do a getProtocolVersion and throw exception if 
the client and server versions didn't match.  We don't do that anymore it 
seems.  Here is old code from 0.94:

{code}
 17   /** Construct a client-side proxy object that implements the named 
protocol,
 16    * talking to a server at the named address. */
 15   public VersionedProtocol getProxy(
 14       Class<? extends VersionedProtocol> protocol, long clientVersion,
 13       InetSocketAddress addr, User ticket,
 12       Configuration conf, SocketFactory factory, int rpcTimeout)
 11     throws IOException {
 10 
  9       VersionedProtocol proxy =
  8           (VersionedProtocol) Proxy.newProxyInstance(
  7               protocol.getClassLoader(), new Class[] { protocol },
  6               new Invoker(protocol, addr, ticket, conf, factory, 
rpcTimeout));
  5     if (proxy instanceof VersionedProtocol) {
  4       long serverVersion = ((VersionedProtocol)proxy)
  3         .getProtocolVersion(protocol.getName(), clientVersion);
  2       if (serverVersion != clientVersion) {
  1         throw new HBaseRPC.VersionMismatch(protocol.getName(), 
clientVersion,
  0                                       serverVersion);                       
                                                                                
                                            
  1       }
  2     }
  3     return proxy;
  4   }
{code}
                
> Move classes into hbase-client
> ------------------------------
>
>                 Key: HBASE-7188
>                 URL: https://issues.apache.org/jira/browse/HBASE-7188
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client, IPC/RPC
>    Affects Versions: 0.96.0
>            Reporter: Elliott Clark
>            Assignee: Elliott Clark
>             Fix For: 0.96.0
>
>         Attachments: HBASE-7188-0.patch, HBASE-7188-1.patch
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to