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

Bryan Beaudreault edited comment on HBASE-26537 at 12/9/21, 8:03 PM:
---------------------------------------------------------------------

[~apurtell] Sorry I missed your comment at first.

I think upgrading from 1.2.0 to 1.2.2 would have been (and still is) a breaking 
change. You can't follow the usual path of upgrading server first, then client, 
because the 0 values sent by the 1.2.0 client would be mis-interpreted by the 
1.2.2 server. Similar is true if you tried upgrading client first, the 1.2.0 
server would not know what to do with the new '2' values sent by 1.2.2 client.

I think if we had caught this post-merge back in 2016 I'm guessing we would 
have pushed a 1.2.3 or 1.2.2.1 and tried to dissuade upgrading to 1.2.2


was (Author: bbeaudreault):
[~apurtell] Sorry I missed your comment at first.

I think upgrading from 1.2.0 to 1.2.2 would have been breaking change. You 
can't follow the usual path of upgrading server first, then client, because the 
0 values sent by the 1.2.0 client would be mis-interpreted by the 1.2.2 server. 
Similar is true if you tried upgrading client first, the 1.2.0 server would not 
know what to do with the new '2' values sent by 1.2.2 client.

I think if we had caught this post-merge back in 2016 I'm guessing we would 
have pushed a 1.2.3 or 1.2.2.1 and tried to dissuade upgrading to 1.2.2

> FuzzyRowFilter backwards compatibility
> --------------------------------------
>
>                 Key: HBASE-26537
>                 URL: https://issues.apache.org/jira/browse/HBASE-26537
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.1.13, 1.2.12, 1.3.6
>            Reporter: Bryan Beaudreault
>            Priority: Major
>
> HBASE-15676 introduced a backwards incompatible change which makes it 
> impossible to upgrade in our designated upgraded order (server first, then 
> client) without potential bad results. Worse, the failure mode is silent – a 
> pre-HBASE-15676 client would incorrectly receive 0 results from a 
> post-HBASE-15676 server.
> I solved this internally as part of our upgrade from 1.2.0 to 2.4.6 by adding 
> a new proto field to switch between the two implementations. I'm submitting 
> this Jira to capture and potentially backport that fix for anyone else who 
> encounters it. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to