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

[email protected] commented on HBASE-5451:
------------------------------------------------------



bq.  On 2012-03-24 07:38:03, Benoit Sigoure wrote:
bq.  > 
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java,
 line 102
bq.  > <https://reviews.apache.org/r/4096/diff/2/?file=86903#file86903line102>
bq.  >
bq.  >     Argh, no, don't change this!  I got other HBase devs to promise to 
not change this as it makes backwards compatible clients impossibly complicated.
bq.  
bq.  Devaraj Das wrote:
bq.      I see. This was the basis of the "graceful" failure for current 
clients that are not aware of PB (clients would bail out if the versions of RPC 
don't match, right). The response to your comment below "I don't see how this 
is graceful." is actually this change in the version.
bq.  
bq.  Michael Stack wrote:
bq.      Benoit's point is that this mechanism doesn't work so his point is 
lets not bother changing the version.  Previous, if you volunteered a hrpc 
version other than what is expected, the connection was closed by the server 
w/o saying what was wrong.  We fixed hbase so it at least throws an exception 
but it doesn't say what version its expecting.
bq.  
bq.  Devaraj Das wrote:
bq.      Stack, if we don't change the server version number then even the 
exception you're referring to won't be thrown. The exception/error will happen 
later on in the processing of the RPC... Are we sure we want this as the 
behavior? Please let me know.
bq.  
bq.  Michael Stack wrote:
bq.      On ..."The exception/error will happen later on in the processing of 
the RPC... Are we sure we want this as the behavior? Please let me know.", its 
useless as is.   Can we make this rationale?  Like if version is bumped, it 
tells client what version server is?

Hi Stack, not sure what you meant in your last comment. The VersionMismatch 
exception that is sent to the client has an accompanying message that says 
something like - "Server IPC version <current-version> cannot communicate .. ". 
By parsing the exception the client can know what's wrong (hacky but works). 

Once we have PB in the RPC we can actually remove this version check since 
clients/servers talk PB and PB will handle compatibility in the RPC messages. 
But I want to change things with more thought and as such want to keep the 
version number around for at least this jira.

Given the above, I am not sure what to do: to me version change seems 
sufficient to catch non-compliant clients early (and since the RPC is changing 
in a major by switching to PB, makes sense to me to change the version number). 
If on the other hand, we let the client pass this initial step by not changing 
the version number, we'll let old clients pass this initial step. It'll fail 
later on. 

Thoughts?


- Devaraj


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4096/#review6302
-----------------------------------------------------------


On 2012-03-01 03:40:14, Devaraj Das wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/4096/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-03-01 03:40:14)
bq.  
bq.  
bq.  Review request for .
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Switch RPC call envelope/headers to PBs
bq.  
bq.  
bq.  This addresses bug HBASE-5451.
bq.      https://issues.apache.org/jira/browse/HBASE-5451
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/hbase/trunk/pom.xml 1294899 
bq.    
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/io/DataOutputOutputStream.java
 1294899 
bq.    
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java
 1294899 
bq.    
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
 1294899 
bq.    
http://svn.apache.org/repos/asf/hbase/trunk/src/main/java/org/apache/hadoop/hbase/security/User.java
 1294899 
bq.    
http://svn.apache.org/repos/asf/hbase/trunk/src/main/proto/RPCMessageProto.proto
 PRE-CREATION 
bq.  
bq.  Diff: https://reviews.apache.org/r/4096/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Devaraj
bq.  
bq.


                
> Switch RPC call envelope/headers to PBs
> ---------------------------------------
>
>                 Key: HBASE-5451
>                 URL: https://issues.apache.org/jira/browse/HBASE-5451
>             Project: HBase
>          Issue Type: Sub-task
>          Components: ipc, master, migration, regionserver
>    Affects Versions: 0.94.0
>            Reporter: Todd Lipcon
>            Assignee: Devaraj Das
>             Fix For: 0.96.0
>
>         Attachments: rpc-proto.2.txt, rpc-proto.3.txt, rpc-proto.patch.1_2
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to