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
lars hofhansl 2012-09-01, 03:21
I see. Makes sense. I made a trivial 0.94 patch for HBASE-6268.
Can you file a jira for the other changes you describe below?

-- Lars

________________________________
 From: Gregory Chanan <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]; lars hofhansl <[EMAIL PROTECTED]>
Sent: Friday, August 31, 2012 7:42 PM
Subject: Re: 0.92/0.94 compatibility and HBASE-5206
 
@Lars: agreed on your point of leaving the name for the 92 znode the same.

On upgrading a 0.94.0 or 0.94.1 cluster out of sync, I think it would work.
The 0.94.2 client should work against all 0.94.2, 0.94.1, and 0.94.0
versions (and all 0.92.x versions as well).  We just need to apply
HBASE-6268 to 0.94.2.  So you would first upgrade the client, then the
server(s).  The reason this works is because the client, with HBASE-6268
applied, can handle the znode being in either the 0.92 or 0.94 format, it
doesn't need to know which is which.  I'll of course test all this :).

Greg

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

> 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