Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # dev - 0.92/0.94 compatibility and HBASE-5206


Copy link to this message
-
Re: 0.92/0.94 compatibility and HBASE-5206
Ted Yu 2012-08-31, 23:03
I should also apologize for HBASE-5206 where I didn't maintain
compatibility in the first place.

We just need to find the solution which minimizes impact of this issue.

Cheers

On Fri, Aug 31, 2012 at 3:55 PM, lars hofhansl <[EMAIL PROTECTED]> wrote:

> Won't we then break compatibility between 0.94.0 and 0.94.1 with 0.94.2?
> I do not have a strong opinion about this.
>
> It was my fault that HBASE-5206 slipped into 0.94.0, I apologize for that.
>
> I was going to spin the first 0.94.2 today. Is the general consensus that
> I should wait?
>
>
> -- Lars
>
>
>
> ________________________________
>  From: Gregory Chanan <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Sent: Friday, August 31, 2012 3:13 PM
> Subject: 0.92/0.94 compatibility and HBASE-5206
>
> There has been some discussion on the JIRA lately about what to do about a
> 0.92/0.94 compatibility issue.  I wanted to bring this up to a larger
> audience in order to solicit additional opinions.
>
> HBASE-5206 (https://issues.apache.org/jira/browse/HBASE-5206), which is in
> 0.94.0 and 0.94.1, breaks compatibility with 0.92.0 and 0.92.1.  The issue
> is described in the release notes for HBASE-5155 (of which HBASE-5206 is a
> forward port).  Excerpted here:
>
>   This issue is an incompatible change.
>   If an HBase client with the changes for HBASE-5155 and a server (master)
> without the changes for HBASE-5155 is used, then the is_enabled (from HBase
> Shell) or isTableEnabled() (from HBaseAdmin) will return false though the
> table is already enabled as per the master.
>
>   If the HBase client does have the changes for HBASE-5155 and the server
> does not have the changes for HBASE-5155, then if we try to Enable a table
> then the client will hang.
>
>   The reason is because,
>   Prior to HBASE-5155 once the table is enabled the znode in the zookeeper
> created for the table is deleted.
>   After HBASE-5155 once the table is enabled the znode in the zookeeper
> created for the table is not deleted, whereas the same node is updated with
> the status ENABLED.
>
>   The client also expects the status of the znode in the zookeeper to be in
> the ENABLED state if the table has been enabled successfully.
>   The above changes makes the client behaviour incompatible if the client
> does not have this fix whereas the server has this fix.
>   If both the client and the server does not have this fix, then the
> behaviour is as expected.
>
> So we have a situation where 0.92.0 and 0.92.1 clients are not compatible
> with 0.94.0 and 0.94.1 servers and visa-versa.
>
> The issue is, what should we do about the 0.94.2 server?  As far as I can
> tell, we cannot make both {0.92.0,0.92.1} and {0.94.0,0.94.1} clients
> happy.  I propose we make the 0.94.2 server compatible with the {0.92.0,
> 0.92.1} client set.  My thinking is that we should optimize for the most
> common use case.  Given that both CDH4 and HDP 1.0 ship 0.92.1, and that
> 0.94 is relatively new, it seems more likely that users will upgrade
> servers from 0.92.1 to 0.94.2+ than from an earlier 0.94 version.  I think
> we can do this while actually fixing the issue that HBASE-5206 purports to
> fix by moving the ENABLED state to a different znode.  I'll even volunteer
> to do that :).  I don't think there is an obvious or easy answer here, so
> wanted to get other's opinions.
>
> As for the client, HBASE-6268 (
> https://issues.apache.org/jira/browse/HBASE-6268) was introduced in 0.92.2
> to handle both cases of servers ({0.92.0,0.92.1} and {0.94.0,0.94.1}) by
> accepting both possibilities for the table znode.  I think that approach
> works whether we leave the server as is or go with what I've proposed --
> but we should test.
>
> Greg