You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by Ishaaq Chandy <is...@gmail.com> on 2011/09/28 01:51:14 UTC

ephemerals on ZK failure

Hi,
What is the expected behaviour of ephemerals on disconnects?

Suppose a client creates an ephemeral and then, some time later, we have a
network failure, or ZK shuts down/crashes.

During this downtime, the client JVM is still up and running. What happens
when the ZK connection is re-established, does the ephemeral
get automatically recreated or does the client have to make an explicit call
to recreate it?

Thanks,
Ishaaq

Re: ephemerals on ZK failure

Posted by Ted Dunning <te...@gmail.com>.
Camille's response is much more important.  She figured out how your problem
can happen.

On Wed, Sep 28, 2011 at 12:49 AM, Ishaaq Chandy <is...@gmail.com> wrote:

> Good to know. Thanks for the awesomely quick response Ted!
>
> Ishaaq
>
> On 28 September 2011 10:36, Ted Dunning <te...@gmail.com> wrote:
>
> > If the reconnection is done before the session expires, the ephemeral is
> > never deleted.
> >
> > If the session expires either due to time when disconnected or because
> the
> > ZK servers are all taken down, then the ephemeral is deleted when the
> > server
> > decides the session has expired and the client is notified of the session
> > expiration as soon as possible.  Ephemerals are never brought back after
> > the
> > session expires.
> >
> > Note that taking down one ZK server of many will just cause a very short
> > disconnect.  If even one ZK server stays up, the session and the
> ephemeral
> > can survive although a quorum will have to be re-established soon to
> > preserve the session.
> >
> > On Tue, Sep 27, 2011 at 11:51 PM, Ishaaq Chandy <is...@gmail.com>
> wrote:
> >
> > > Hi,
> > > What is the expected behaviour of ephemerals on disconnects?
> > >
> > > Suppose a client creates an ephemeral and then, some time later, we
> have
> > a
> > > network failure, or ZK shuts down/crashes.
> > >
> > > During this downtime, the client JVM is still up and running. What
> > happens
> > > when the ZK connection is re-established, does the ephemeral
> > > get automatically recreated or does the client have to make an explicit
> > > call
> > > to recreate it?
> > >
> > > Thanks,
> > > Ishaaq
> > >
> >
>

Re: ephemerals on ZK failure

Posted by Ishaaq Chandy <is...@gmail.com>.
Good to know. Thanks for the awesomely quick response Ted!

Ishaaq

On 28 September 2011 10:36, Ted Dunning <te...@gmail.com> wrote:

> If the reconnection is done before the session expires, the ephemeral is
> never deleted.
>
> If the session expires either due to time when disconnected or because the
> ZK servers are all taken down, then the ephemeral is deleted when the
> server
> decides the session has expired and the client is notified of the session
> expiration as soon as possible.  Ephemerals are never brought back after
> the
> session expires.
>
> Note that taking down one ZK server of many will just cause a very short
> disconnect.  If even one ZK server stays up, the session and the ephemeral
> can survive although a quorum will have to be re-established soon to
> preserve the session.
>
> On Tue, Sep 27, 2011 at 11:51 PM, Ishaaq Chandy <is...@gmail.com> wrote:
>
> > Hi,
> > What is the expected behaviour of ephemerals on disconnects?
> >
> > Suppose a client creates an ephemeral and then, some time later, we have
> a
> > network failure, or ZK shuts down/crashes.
> >
> > During this downtime, the client JVM is still up and running. What
> happens
> > when the ZK connection is re-established, does the ephemeral
> > get automatically recreated or does the client have to make an explicit
> > call
> > to recreate it?
> >
> > Thanks,
> > Ishaaq
> >
>

Re: ephemerals on ZK failure

Posted by Ted Dunning <te...@gmail.com>.
If the reconnection is done before the session expires, the ephemeral is
never deleted.

If the session expires either due to time when disconnected or because the
ZK servers are all taken down, then the ephemeral is deleted when the server
decides the session has expired and the client is notified of the session
expiration as soon as possible.  Ephemerals are never brought back after the
session expires.

Note that taking down one ZK server of many will just cause a very short
disconnect.  If even one ZK server stays up, the session and the ephemeral
can survive although a quorum will have to be re-established soon to
preserve the session.

On Tue, Sep 27, 2011 at 11:51 PM, Ishaaq Chandy <is...@gmail.com> wrote:

> Hi,
> What is the expected behaviour of ephemerals on disconnects?
>
> Suppose a client creates an ephemeral and then, some time later, we have a
> network failure, or ZK shuts down/crashes.
>
> During this downtime, the client JVM is still up and running. What happens
> when the ZK connection is re-established, does the ephemeral
> get automatically recreated or does the client have to make an explicit
> call
> to recreate it?
>
> Thanks,
> Ishaaq
>