Thanks. And yes, your chart is really ugly! :)

These are the states of... what? The session? The ZooKeeper object? It
would be nice to include the corresponding API references.

.. Adam

On Fri, Jan 9, 2009 at 5:09 AM, Benjamin Reed <br...@yahoo-inc.com> wrote:
> I'm really bad a creating figures, but i've put up something that should be 
> informative. (i'm also really bad at apache wiki.) hopefully someone can make 
> it more beautiful. i've added the state diagram to the FAQ: 
> http://wiki.apache.org/hadoop/ZooKeeper/FAQ
>
> ben
>
> -----Original Message-----
> From: adam.ros...@gmail.com [mailto:adam.ros...@gmail.com] On Behalf Of Adam 
> Rosien
> Sent: Thursday, January 08, 2009 8:06 PM
> To: zookeeper-user@hadoop.apache.org
> Subject: Re: Updated NodeWatcher...
>
> It feels like we need a flowchart, state-chart, or something, so we
> can all talk about the same thing. Then people could suggest
> abstractions that would essentially put a box around sections of the
> diagram. However I feel woefully inadequate at the former :(.
>
> .. Adam
>
> On Thu, Jan 8, 2009 at 4:20 PM, Benjamin Reed <br...@yahoo-inc.com> wrote:
>> For your first issue if an ensemble goes offline and comes back, everything 
>> should be fine. it will look to the client just like a server went down. if 
>> a session expires, you are correct that the client will not reconnect. this 
>> again is on purpose. for the node watcher the session is unimportant, but if 
>> the ZooKeeper object is also being used for leader election, for example, 
>> you do not want the object to grab a new session automatically.
>>
>> For 2) i think pat responded to that one. an async request will always 
>> return. if the server goes down after the request is issued, you will get a 
>> connection loss error in your callback.
>>
>> Your third issued is described with the first.
>>
>> ben
>>
>> -----Original Message-----
>> From: burtona...@gmail.com [mailto:burtona...@gmail.com] On Behalf Of Kevin 
>> Burton
>> Sent: Thursday, January 08, 2009 4:02 PM
>> To: zookeeper-user@hadoop.apache.org
>> Subject: Re: Updated NodeWatcher...
>>
>>>
>>>
>>> i just found that part of this thread went to my junk folder. can you send
>>> the URL for the NodeListener?
>>>
>>
>> Sure... here you go:
>>
>> http://pastebin.com/f1e9d3706
>>
>>
>>>
>>> this NodeWatcher is a useful thing. i have a couple of suggestions to
>>> simplify it:
>>>
>>> 1) Construct the NodeWatcher with a ZooKeeper object rather than
>>> constructing one. Not only does it simplify NodeWatcher, but it also makes
>>> it so that the ZooKeeper object can be used for other things as well.
>>
>>
>> I hear you.... I was thinking that this might not be a good idea because
>> NodeWatcher can reconnect you to the ensemble if it goes offline.
>>
>> I'm not sure if it's a bug or not but once my session expired on the client
>> it wouldn't reconnect so I just implemented my own reconnect and session
>> expiry.
>>
>>
>>>
>>> 2) Use the async API in watchNodeData and watchNodeExists. it simplifies
>>> the code and the error handling.
>>
>>
>> The problem was that according to feedback here an async request might never
>> return if the server dies shortly after the request and before it has a
>> change to respond.
>>
>> I wanted NodeWatcher to hide as much rope as possible.
>>
>>
>>> 3) You don't need to do a connect() in handleDisconnected(). ZooKeeper
>>> object will do it automatically for you.
>>>
>>>
>> I can try again if you'd like by this isn't my experience.  Once the session
>> expired and the whole ensemble was offline it wouldn't connect again.
>>
>> If it was a transient disconnect I'd see on disconnect event and then a
>> quick reconnect.  If it was a long disconnect (with nothing to attach to)
>> then ZK won't ever reconnect me.
>>
>> I'd like this to be the behavior though...
>>
>>
>>> There is an old example on sourceforge
>>> http://zookeeper.wiki.sourceforge.net/ZooKeeperJavaExample that may give
>>> you some more ideas on how to simplify your code.
>>>
>>
>> That would be nice.... simple is good!
>>
>> Kevin
>>
>>
>> --
>> Founder/CEO Spinn3r.com
>> Location: San Francisco, CA
>> AIM/YIM: sfburtonator
>> Skype: burtonator
>> Work: http://spinn3r.com
>>
>

Reply via email to