Thanks Patrick for the detail (Support of the quality below puts us
hbasistas at ease about our deciscion to bet the farm on zk making our
next major release).
On Thu, Mar 25, 2010 at 3:57 PM, Patrick Hunt <ph...@apache.org> wrote:
> Some background on this: In order to add new features (sometimes to fix
> bugs) we need to change the client lib in a non-b/w compatible way, this is
> infrequent, but there's just no way around this in some cases. At the server
> level we always ensure (and even in extreme cases this might not be
> possible, but so far it has) that a new server can talk to an old (at least
> 1 version back) client. Additionally we also ensure that a new server can
> talk to an old server, this allows "rolling upgrade" of the ensemble. WRT
> this approach I'm probably not telling you anything you don't already know
> from your own/prior projects.
> In zk THIS IS CRITICAL to our primary project level goals of "high
> availability". It would be laughable if we bill ourselves as highly
> available but "sorry, you need to shut everything down then upgrade
> everything to a new version". That's just not acceptable.
> The roadmap has some detail on this, but it's out of date from our current
> practices. We also need to include this information in our release notes.
> Stack, in your specific case you are seeing that 3.3 client works fine with
> 3.2 server. In 3.3 we added a new API method to the client, which sends a
> new message type to the server. As long as you don't use this method
> (getchildren2) it will probably work fine. However, we don't officially
> support this configuration as we don't design for this case (the changes)
> and we don't test for this. It may be that there was some semantic change at
> the protocol (client->server protocol) level, that may not be exposed except
> in unusual cases. Perhaps if we had more resources we could verify this case
> (3.3C with 3.2S) but today we do not, so essentially it would be "use at
> your own risk".
> Hope this helps. If you have further insights, esp wrt HBase using ZK please
> feel free to comment.
> Stack wrote:
>> Patrick just let me know that newer client talking to older server is
>> not supported. I didn't know that. Thanks for pointing it out. Was
>> sort of surprised it worked at all so just noted this aspect of my zk
>> 3.3.0 RC0 eval.
>> Congrats on new release lads,
>> P.S. Below is backup of my assertion 3.3.0 client basically works
>> against 3.2.2 ensemble:
>> In client log I see this:
>> 2010-03-25 12:23:57,670 INFO org.apache.zookeeper.ZooKeeper: Client
>> environment:zookeeper.version=3.3.0-925362, built on 03/19/2010 18:38
>> Then this:
>> 2010-03-25 12:23:57,672 INFO org.apache.zookeeper.ZooKeeper:
>> Initiating client connection,
>> sessionTimeout=60000 watcher=Thread[Thread-0,5,main]
>> 2010-03-25 12:23:57,683 INFO org.apache.zookeeper.ClientCnxn: Opening
>> socket connection to server sv2borg166/10.20.20.166:2181
>> 2010-03-25 12:23:57,686 INFO org.apache.zookeeper.ClientCnxn: Socket
>> connection established to sv2borg166/10.20.20.166:2181, initiating
>> Over on 166 I see...
>> 2010-03-25 12:23:57,697 INFO
>> org.apache.zookeeper.server.NIOServerCnxn: Connected to
>> /10.20.20.185:46331 lastZxid 0
>> 2010-03-25 12:23:57,725 INFO
>> org.apache.zookeeper.server.NIOServerCnxn: Creating new session
>> 2010-03-25 12:23:57,726 INFO
>> org.apache.zookeeper.server.NIOServerCnxn: Finished init of
>> 0x3266d5140d70759 valid:true
>> 2010-03-25 12:25:07,305 INFO
>> org.apache.zookeeper.server.NIOServerCnxn: Processing stat command
>> from /10.20.20.185:60661
>> 2010-03-25 12:25:07,306 WARN
>> org.apache.zookeeper.server.NIOServerCnxn: Exception causing close of
>> session 0x0 due to java.io.IOException: Responded to info probe
>> 2010-03-25 12:25:07,306 INFO
>> org.apache.zookeeper.server.NIOServerCnxn: closing session:0x0
>> NIOServerCnxn: java.nio.channels.SocketChannel[connected
>> local=/10.20.20.166:2181 remote=/10.20.20.185:60661]
>> If I do stat over there I see Zookeeper version: 3.2.2-888565, built
>> on 12/08/2009 21:51 GMT...
>> On Thu, Mar 25, 2010 at 2:00 PM, Patrick Hunt <ph...@apache.org> wrote:
>>> Stack, you can't use a new client with an old server. We support b/w
>>> compatibility at the server level (new server works with old client) but
>>> the other way around. You would have to upgrade the server and client at
>>> same time, or upgrade the servers (rolling upgrade) then upgrade the
>>> Stack wrote:
>>>> All hbase tests pass with 3.3.0 in place. I ran small loading and
>>>> nothing odd looking. Looks like no issue having a zk 3.3.0 client
>>>> talk to a 3.2.2 ensemble.
>>>> Requires small mods to hbase other than dropping new zk jar into
>>>> hbase/lib in place of zk 3.2.2: HBASE-2380.
>>>> On Fri, Mar 19, 2010 at 12:43 PM, Patrick Hunt <ph...@apache.org> wrote:
>>>>> I have created a candidate build for ZooKeeper 3.3.0. Over 180 JIRAs
>>>>> addressed in this release.
>>>>> *** Please download, test and VOTE before the
>>>>> *** vote closes 1pm PT on Wednesday, March 24.***
>>>>> Should we release this?