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
Also, if understand this correctly this would not help if somebody had deployed an 0.94.0 or 0.94.1 cluster and want to upgrade the client and server out of sync.
In one configuration the client would work against 0.94.0 and 0.94.1 but not against 0.94.2. In the other configuration the client would work against 0.94.2 but not against 0.94.0 or 0.94.1.
There is however and clean upgrade path to 0.92.2 and from there to 0.94.2 if we just fix this in 0.92.2.
-- Lars

________________________________
 From: lars hofhansl <[EMAIL PROTECTED]>
To: Gregory Chanan <[EMAIL PROTECTED]>; "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
Sent: Friday, August 31, 2012 6:34 PM
Subject: Re: 0.92/0.94 compatibility and HBASE-5206
 
Sounds complicated. But since you are the folks with customers that'll upgrade to from 0.92 to 0.94, let's do this.

The only input I'd have is that format we'll use going forward will not have a version attached to it.

So maybe the 92 version would still be called "zookeeper.znode.tableEnableDisable" and the new node could have a different name "zookeeper.znode.tableEnableDisableNew" (or something).

-- Lars

________________________________
From: Gregory Chanan <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]; lars hofhansl <[EMAIL PROTECTED]>
Sent: Friday, August 31, 2012 5:54 PM
Subject: Re: 0.92/0.94 compatibility and HBASE-5206
Actually, I think we can make 0.94.2 compatible with both {0.94.0,0.94.1} and {0.92.0,0.92.1}, although one of those sets will require configuration changes.

The basic problem is that there is a znode for each table "zookeeper.znode.tableEnableDisable" that is handled differently.

On 0.92.0 and 0.92.1 the states for this table are:
[ disabled, disabling, enabling ] or deleted if the table is enabled

On 0.94.1 and 0.94.2 the states for this table are:
[ disabled, disabling, enabling, enabled ]

What saves us is that the location of this znode is configurable.  So the basic idea is to have the 0.94.2 master write two different znodes, "zookeeper.znode.tableEnableDisabled92" and "zookeeper.znode.tableEnableDisabled94" where the 92 node is in 92 format, the 94 node is in 94 format.  And internally, the master would only use the 94 format in order to solve the original bug HBASE-5155 solves.
We can of course make one of these the same default as exists now, so we don't need to make config changes for one of 0.92 or 0.94 clients.  I argue that 0.92 clients shouldn't have to make config changes for the same reason I argued above.  But that is debatable.

Then, I think the only question left is Stack's question of how to bring along the {0.94.0, 0.94.1} crew.  A {0.94.0, 0.94.1} client would work against a 0.94.2 cluster by just configuring "zookeeper.znode.tableEnableDisable" in the client to be whatever "zookeeper.znode.tableEnableDisabled94" is in the cluster.  A 0.94.2 client would work against both a {0.94.0, 0.94.1} and {0.92.0, 0.92.1} cluster if it had HBASE-6268 applied.  About rolling upgrade from {0.94.0, 0.94.1} to 0.94.2 -- I'd have to think about that.  Do the regionservers ever read the tableEnableDisabled znode?

Greg

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

I guess you voiced your opinion in your initial email already (you prefer to break compatibility between 0.94.0/0.94.1 with 0.94.2).
>If that is indeed the consensus, please file a jira against 0.94.2.
>
>-- Lars
>
>
>
>
>----- Original Message -----
>From: lars hofhansl <[EMAIL PROTECTED]>
>To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
>Cc:
>Sent: Friday, August 31, 2012 4:24 PM
>Subject: Re: 0.92/0.94 compatibility and HBASE-5206
>
>What do you think we should do?
>
>1. Breaking compatibility between minor versions is bad. (i.e. we should fix this in 0.92.2 as currently proposed)
>2. At the same time 0.92 might be in wider distribution and that the upgrade path 0.94 might be more important (and include the fix that you propose).
>
>I'm +1 on #1 and +0 on #2.
>
>