You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by Qian Ye <ye...@gmail.com> on 2010/08/16 18:04:21 UTC

A question about Watcher

Hi all:

Will the watchers of a client be losed when the client disconnects from a
Zookeeper server? It is said at
http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkWatchesthat
"
*When a client reconnects, any previously registered watches will be
reregistered and triggered if needed. In general this all occurs
transparently.*" It means that we need not to do any extra things about
watchers if a client disconnected from Zookeeper server A, and reconnect to
Zookeeper server B, doesn't it? Or I should reregistered all the watchers if
this kind of reconnection happened?

thx~
-- 
With Regards!

Ye, Qian

Re: A question about Watcher

Posted by Mahadev Konar <ma...@yahoo-inc.com>.
Hi Qian,
 The watcher information is saved at the client, and the client will
reattach the watches to the new server it connects to.
  Hope that helps.

Thanks
mahadev


On 8/16/10 9:28 AM, "Qian Ye" <ye...@gmail.com> wrote:

> thx for explaination. Since the watcher can be preserved when the client
> switch the zookeeper server it connects to, does that means all the watchers
> information will be saved on all the zookeeper servers? I didn't find any
> source of the client can hold the watchers information.
> 
> 
> On Tue, Aug 17, 2010 at 12:21 AM, Ted Dunning <te...@gmail.com> wrote:
> 
>> I should correct this.  The watchers will deliver a session expiration
>> event, but since the connection is closed at that point no further
>> events will be delivered and the cluster will remove them.  This is as good
>> as the watchers disappearing.
>> 
>> On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning <te...@gmail.com>
>> wrote:
>> 
>>> The other is session expiration.  Watchers do not survive this.  This
>>> happens when a client does not provide timely
>>> evidence that it is alive and is marked as having disappeared by the
>>> cluster.
>>> 
>> 
> 
> 
> 
> --
> With Regards!
> 
> Ye, Qian
> 


Re: A question about Watcher

Posted by Ted Dunning <te...@gmail.com>.
Almost never.  There was a bug a while back that could have conceivably
caused that under rare circumstances, but I don't know of any current
mechanism for this lossage that you are asking about.

On Mon, Aug 16, 2010 at 6:34 PM, Qian Ye <ye...@gmail.com> wrote:

> My question is, if the master failed, does that means some session
> information will definitely be lost?
>

Re: A question about Watcher

Posted by Patrick Hunt <ph...@apache.org>.
All servers keep a copy - so you can shutdown the zk service entirely 
(all servers) and restart it and the sessions are maintained.

Patrick

On 08/16/2010 06:34 PM, Qian Ye wrote:
> Thx Mahadev and Benjamin, it seems that I've got some misunderstanding about
> the client. I will check it out.
>
> Another relevant question. I noticed that the master zookeeper server keep a
> track of all the client session which connects to every zookeeper server in
> the same cluster. So when a slave zookeeper server failed, the clients it
> served, can switch to another zookeeper server and keep their old session
> (the new zookeeper server can get the session information from the master).
> My question is, if the master failed, does that means some session
> information will definitely be lost?
>
> thx~
>
> On Tue, Aug 17, 2010 at 12:40 AM, Benjamin Reed<br...@yahoo-inc.com>  wrote:
>
>> the client does keep track of the watches that it has outstanding. when it
>> reconnects to a new server it tells the server what it is watching for and
>> the last view of the system that it had.
>>
>> ben
>>
>>
>> On 08/16/2010 09:28 AM, Qian Ye wrote:
>>
>>> thx for explaination. Since the watcher can be preserved when the client
>>> switch the zookeeper server it connects to, does that means all the
>>> watchers
>>> information will be saved on all the zookeeper servers? I didn't find any
>>> source of the client can hold the watchers information.
>>>
>>>
>>> On Tue, Aug 17, 2010 at 12:21 AM, Ted Dunning<te...@gmail.com>
>>>   wrote:
>>>
>>>
>>>
>>>> I should correct this.  The watchers will deliver a session expiration
>>>> event, but since the connection is closed at that point no further
>>>> events will be delivered and the cluster will remove them.  This is as
>>>> good
>>>> as the watchers disappearing.
>>>>
>>>> On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning<te...@gmail.com>
>>>> wrote:
>>>>
>>>>
>>>>
>>>>> The other is session expiration.  Watchers do not survive this.  This
>>>>> happens when a client does not provide timely
>>>>> evidence that it is alive and is marked as having disappeared by the
>>>>> cluster.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>
>

Re: A question about Watcher

Posted by Qian Ye <ye...@gmail.com>.
Thx Mahadev and Benjamin, it seems that I've got some misunderstanding about
the client. I will check it out.

Another relevant question. I noticed that the master zookeeper server keep a
track of all the client session which connects to every zookeeper server in
the same cluster. So when a slave zookeeper server failed, the clients it
served, can switch to another zookeeper server and keep their old session
(the new zookeeper server can get the session information from the master).
My question is, if the master failed, does that means some session
information will definitely be lost?

thx~

On Tue, Aug 17, 2010 at 12:40 AM, Benjamin Reed <br...@yahoo-inc.com> wrote:

> the client does keep track of the watches that it has outstanding. when it
> reconnects to a new server it tells the server what it is watching for and
> the last view of the system that it had.
>
> ben
>
>
> On 08/16/2010 09:28 AM, Qian Ye wrote:
>
>> thx for explaination. Since the watcher can be preserved when the client
>> switch the zookeeper server it connects to, does that means all the
>> watchers
>> information will be saved on all the zookeeper servers? I didn't find any
>> source of the client can hold the watchers information.
>>
>>
>> On Tue, Aug 17, 2010 at 12:21 AM, Ted Dunning<te...@gmail.com>
>>  wrote:
>>
>>
>>
>>> I should correct this.  The watchers will deliver a session expiration
>>> event, but since the connection is closed at that point no further
>>> events will be delivered and the cluster will remove them.  This is as
>>> good
>>> as the watchers disappearing.
>>>
>>> On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning<te...@gmail.com>
>>> wrote:
>>>
>>>
>>>
>>>> The other is session expiration.  Watchers do not survive this.  This
>>>> happens when a client does not provide timely
>>>> evidence that it is alive and is marked as having disappeared by the
>>>> cluster.
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>>
>
>


-- 
With Regards!

Ye, Qian

Re: A question about Watcher

Posted by Benjamin Reed <br...@yahoo-inc.com>.
the client does keep track of the watches that it has outstanding. when 
it reconnects to a new server it tells the server what it is watching 
for and the last view of the system that it had.

ben

On 08/16/2010 09:28 AM, Qian Ye wrote:
> thx for explaination. Since the watcher can be preserved when the client
> switch the zookeeper server it connects to, does that means all the watchers
> information will be saved on all the zookeeper servers? I didn't find any
> source of the client can hold the watchers information.
>
>
> On Tue, Aug 17, 2010 at 12:21 AM, Ted Dunning<te...@gmail.com>  wrote:
>
>    
>> I should correct this.  The watchers will deliver a session expiration
>> event, but since the connection is closed at that point no further
>> events will be delivered and the cluster will remove them.  This is as good
>> as the watchers disappearing.
>>
>> On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning<te...@gmail.com>
>> wrote:
>>
>>      
>>> The other is session expiration.  Watchers do not survive this.  This
>>> happens when a client does not provide timely
>>> evidence that it is alive and is marked as having disappeared by the
>>> cluster.
>>>
>>>        
>>      
>
>
>    


Re: A question about Watcher

Posted by Qian Ye <ye...@gmail.com>.
thx for explaination. Since the watcher can be preserved when the client
switch the zookeeper server it connects to, does that means all the watchers
information will be saved on all the zookeeper servers? I didn't find any
source of the client can hold the watchers information.


On Tue, Aug 17, 2010 at 12:21 AM, Ted Dunning <te...@gmail.com> wrote:

> I should correct this.  The watchers will deliver a session expiration
> event, but since the connection is closed at that point no further
> events will be delivered and the cluster will remove them.  This is as good
> as the watchers disappearing.
>
> On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning <te...@gmail.com>
> wrote:
>
> > The other is session expiration.  Watchers do not survive this.  This
> > happens when a client does not provide timely
> > evidence that it is alive and is marked as having disappeared by the
> > cluster.
> >
>



-- 
With Regards!

Ye, Qian

Re: A question about Watcher

Posted by Ted Dunning <te...@gmail.com>.
I should correct this.  The watchers will deliver a session expiration
event, but since the connection is closed at that point no further
events will be delivered and the cluster will remove them.  This is as good
as the watchers disappearing.

On Mon, Aug 16, 2010 at 9:20 AM, Ted Dunning <te...@gmail.com> wrote:

> The other is session expiration.  Watchers do not survive this.  This
> happens when a client does not provide timely
> evidence that it is alive and is marked as having disappeared by the
> cluster.
>

Re: A question about Watcher

Posted by Benjamin Reed <br...@yahoo-inc.com>.
good point ted! i should have waited a bit longer before responding :)

ben

On 08/16/2010 09:20 AM, Ted Dunning wrote:
> There are two different concepts.  One is connection loss.  Watchers survive
> this and the client automatically connects
> to another member of the ZK cluster.
>
> The other is session expiration.  Watchers do not survive this.  This
> happens when a client does not provide timely
> evidence that it is alive and is marked as having disappeared by the
> cluster.
>
> On Mon, Aug 16, 2010 at 9:04 AM, Qian Ye<ye...@gmail.com>  wrote:
>
>    
>> Hi all:
>>
>> Will the watchers of a client be losed when the client disconnects from a
>> Zookeeper server? It is said at
>>
>> http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkWatchesthat
>> "
>> *When a client reconnects, any previously registered watches will be
>> reregistered and triggered if needed. In general this all occurs
>> transparently.*" It means that we need not to do any extra things about
>> watchers if a client disconnected from Zookeeper server A, and reconnect to
>> Zookeeper server B, doesn't it? Or I should reregistered all the watchers
>> if
>> this kind of reconnection happened?
>>
>> thx~
>> --
>> With Regards!
>>
>> Ye, Qian
>>
>>      


Re: A question about Watcher

Posted by Ted Dunning <te...@gmail.com>.
There are two different concepts.  One is connection loss.  Watchers survive
this and the client automatically connects
to another member of the ZK cluster.

The other is session expiration.  Watchers do not survive this.  This
happens when a client does not provide timely
evidence that it is alive and is marked as having disappeared by the
cluster.

On Mon, Aug 16, 2010 at 9:04 AM, Qian Ye <ye...@gmail.com> wrote:

> Hi all:
>
> Will the watchers of a client be losed when the client disconnects from a
> Zookeeper server? It is said at
>
> http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkWatchesthat
> "
> *When a client reconnects, any previously registered watches will be
> reregistered and triggered if needed. In general this all occurs
> transparently.*" It means that we need not to do any extra things about
> watchers if a client disconnected from Zookeeper server A, and reconnect to
> Zookeeper server B, doesn't it? Or I should reregistered all the watchers
> if
> this kind of reconnection happened?
>
> thx~
> --
> With Regards!
>
> Ye, Qian
>

Re: A question about Watcher

Posted by Benjamin Reed <br...@yahoo-inc.com>.
zookeeper takes care of reregistering all watchers on reconnect. you 
don't need to do anything.

ben

On 08/16/2010 09:04 AM, Qian Ye wrote:
> Hi all:
>
> Will the watchers of a client be losed when the client disconnects from a
> Zookeeper server? It is said at
> http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkWatchesthat
> "
> *When a client reconnects, any previously registered watches will be
> reregistered and triggered if needed. In general this all occurs
> transparently.*" It means that we need not to do any extra things about
> watchers if a client disconnected from Zookeeper server A, and reconnect to
> Zookeeper server B, doesn't it? Or I should reregistered all the watchers if
> this kind of reconnection happened?
>
> thx~
>