zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Solomon <ms...@dropbox.com>
Subject Re: ephemeral nodes. atomic invalidation on session expiration?
Date Thu, 08 Dec 2016 22:20:27 GMT
I think you cannot make any assumptions across two nodes unless you
are explicitly ordering events in your application or using a
transaction.

I suspect that the order of ephemeral node removals is not guaranteed,
but that all ephemerals will be removed before a session is considered
expired. The best way to confirm this is to write some example client
code and the dump the transaction log. I suspect each node removal is
a separate transaction, but the log will easily confirm that.




On Thu, Dec 8, 2016 at 6:04 AM, Vazhenin, Maksim
<Maksim.Vazhenin@dell.com> wrote:
> Does anyone have insight into this one?
>
> Thanks,
> Maksim
>
> -----Original Message-----
> From: Vazhenin, Maksim [mailto:Maksim.Vazhenin@dell.com]
> Sent: Friday, December 02, 2016 3:00 PM
> To: user@zookeeper.apache.org
> Subject: ephemeral nodes. atomic invalidation on session expiration?
>
> Hi,
>
> Could you please clarify expected behavior in the following case:
> 1. Client connects to zk and creates ephemeral nodes /n1 and /n2 (using session1).
> 2. Client dies.
> 3. Client connects with new session to zk before  session1 expired.
> 4. Client checks if /n1 exists and waits till it dies.
> 5. Is it guaranteed that /n2 will also be dead at this point? Or /n2 could still be alive
(waiting till zk server)?
>
> In other words does zk invalidates ephemeral nodes for a session atomically or not? (If
it is not atomic then during some short time client could see part of ephemeral nodes removed
and part of them still present for expired session?)
>
> It is not clear from the documentation:
> "ZooKeeper also has the notion of ephemeral nodes. These znodes exists as long as the
session that created the znode is active. When the session ends the znode is deleted. Because
of this behavior ephemeral znodes are not allowed to have children."
>
> If this happens not atomically, what is the correct timeout client need to wait to ensure
that all ephemeral nodes from its previous session are removed? (sessionTimeout which client
sent in request when creating session? )
>
> Thanks in advance,
> -Maksim

Mime
View raw message