You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pulsar.apache.org by Matteo Merli <mm...@apache.org> on 2021/12/21 23:21:27 UTC

[VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

https://github.com/apache/pulsar/issues/13304

Following the discussion, I have updated the proposal to also include
the deprecation and renaming of the config setting name to
`metadataSessionExpiredPolicy`.



-------
## Motivation

After all the work done for PIP-45 that was already included in 2.8 and 2.9
releases, it enabled the concept of re-acquirable resource locks and leader
election.

Another important change was to avoid doing any deferrable metadata operation
when we know that we are not currently connected to the metadata service.

Finally, that enabled to stabilize in 2.9 the configuration setting that allows
brokers to continue operating in a safe mode when the session with ZooKeeper
expires.

The way it works is that, when we lose a ZooKeeper session, the data plane will
continue to work undisturbed, relying on the BookKeeper fencing to avoid any
inconsistencies.

New topics are not able to get started, but existing topics will see no
impact.

The original intention for shutting down the brokers was to ensure that we
would automatically go back to a consistent state, with respect to which
resources are "owned" in ZooKeeper by a given broker.

With the re-acquirable resource locks, that problem was solved and thoroughly
tested to be robust.

## Proposed changes

In 2.10 release, for the setting:

```properties
# There are two policies to apply when broker metadata session
expires: session expired happens, "shutdown" or "reconnect".
# With "shutdown", the broker will be restarted.
# With "reconnect", the broker will keep serving the topics, while
attempting to recreate a new session.
zookeeperSessionExpiredPolicy=shutdown
```

Deprecate the old setting and rename it to
`metadataSessionExpiredPolicy`, with default value set to `reconnect`.

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by Matteo Merli <ma...@gmail.com>.
I forgot to close this one.

Closing now with 5 +1s votes;
 * Matteo
 * PengHui
 * Hang
 * Enrico
 * Sijie


--
Matteo Merli
<ma...@gmail.com>

On Mon, Jan 24, 2022 at 11:47 PM Enrico Olivelli <eo...@gmail.com> wrote:
>
> What's the status of this PIP ?
>
> We have a pending PR,
> we can commit it as soon as the VOTE thread is officially closed
> https://github.com/apache/pulsar/pull/13341
>
>
> Il giorno gio 23 dic 2021 alle ore 01:17 Sijie Guo
> <gu...@gmail.com> ha scritto:
> >
> > +1
> >
> > On Tue, Dec 21, 2021 at 3:22 PM Matteo Merli <mm...@apache.org> wrote:
> >
> > > https://github.com/apache/pulsar/issues/13304
> > >
> > > Following the discussion, I have updated the proposal to also include
> > > the deprecation and renaming of the config setting name to
> > > `metadataSessionExpiredPolicy`.
> > >
> > >
> > >
> > > -------
> > > ## Motivation
> > >
> > > After all the work done for PIP-45 that was already included in 2.8 and 2.9
> > > releases, it enabled the concept of re-acquirable resource locks and leader
> > > election.
> > >
> > > Another important change was to avoid doing any deferrable metadata
> > > operation
> > > when we know that we are not currently connected to the metadata service.
> > >
> > > Finally, that enabled to stabilize in 2.9 the configuration setting that
> > > allows
> > > brokers to continue operating in a safe mode when the session with
> > > ZooKeeper
> > > expires.
> > >
> > > The way it works is that, when we lose a ZooKeeper session, the data plane
> > > will
> > > continue to work undisturbed, relying on the BookKeeper fencing to avoid
> > > any
> > > inconsistencies.
> > >
> > > New topics are not able to get started, but existing topics will see no
> > > impact.
> > >
> > > The original intention for shutting down the brokers was to ensure that we
> > > would automatically go back to a consistent state, with respect to which
> > > resources are "owned" in ZooKeeper by a given broker.
> > >
> > > With the re-acquirable resource locks, that problem was solved and
> > > thoroughly
> > > tested to be robust.
> > >
> > > ## Proposed changes
> > >
> > > In 2.10 release, for the setting:
> > >
> > > ```properties
> > > # There are two policies to apply when broker metadata session
> > > expires: session expired happens, "shutdown" or "reconnect".
> > > # With "shutdown", the broker will be restarted.
> > > # With "reconnect", the broker will keep serving the topics, while
> > > attempting to recreate a new session.
> > > zookeeperSessionExpiredPolicy=shutdown
> > > ```
> > >
> > > Deprecate the old setting and rename it to
> > > `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
> > >

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by Enrico Olivelli <eo...@gmail.com>.
What's the status of this PIP ?

We have a pending PR,
we can commit it as soon as the VOTE thread is officially closed
https://github.com/apache/pulsar/pull/13341


Il giorno gio 23 dic 2021 alle ore 01:17 Sijie Guo
<gu...@gmail.com> ha scritto:
>
> +1
>
> On Tue, Dec 21, 2021 at 3:22 PM Matteo Merli <mm...@apache.org> wrote:
>
> > https://github.com/apache/pulsar/issues/13304
> >
> > Following the discussion, I have updated the proposal to also include
> > the deprecation and renaming of the config setting name to
> > `metadataSessionExpiredPolicy`.
> >
> >
> >
> > -------
> > ## Motivation
> >
> > After all the work done for PIP-45 that was already included in 2.8 and 2.9
> > releases, it enabled the concept of re-acquirable resource locks and leader
> > election.
> >
> > Another important change was to avoid doing any deferrable metadata
> > operation
> > when we know that we are not currently connected to the metadata service.
> >
> > Finally, that enabled to stabilize in 2.9 the configuration setting that
> > allows
> > brokers to continue operating in a safe mode when the session with
> > ZooKeeper
> > expires.
> >
> > The way it works is that, when we lose a ZooKeeper session, the data plane
> > will
> > continue to work undisturbed, relying on the BookKeeper fencing to avoid
> > any
> > inconsistencies.
> >
> > New topics are not able to get started, but existing topics will see no
> > impact.
> >
> > The original intention for shutting down the brokers was to ensure that we
> > would automatically go back to a consistent state, with respect to which
> > resources are "owned" in ZooKeeper by a given broker.
> >
> > With the re-acquirable resource locks, that problem was solved and
> > thoroughly
> > tested to be robust.
> >
> > ## Proposed changes
> >
> > In 2.10 release, for the setting:
> >
> > ```properties
> > # There are two policies to apply when broker metadata session
> > expires: session expired happens, "shutdown" or "reconnect".
> > # With "shutdown", the broker will be restarted.
> > # With "reconnect", the broker will keep serving the topics, while
> > attempting to recreate a new session.
> > zookeeperSessionExpiredPolicy=shutdown
> > ```
> >
> > Deprecate the old setting and rename it to
> > `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
> >

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by Sijie Guo <gu...@gmail.com>.
+1

On Tue, Dec 21, 2021 at 3:22 PM Matteo Merli <mm...@apache.org> wrote:

> https://github.com/apache/pulsar/issues/13304
>
> Following the discussion, I have updated the proposal to also include
> the deprecation and renaming of the config setting name to
> `metadataSessionExpiredPolicy`.
>
>
>
> -------
> ## Motivation
>
> After all the work done for PIP-45 that was already included in 2.8 and 2.9
> releases, it enabled the concept of re-acquirable resource locks and leader
> election.
>
> Another important change was to avoid doing any deferrable metadata
> operation
> when we know that we are not currently connected to the metadata service.
>
> Finally, that enabled to stabilize in 2.9 the configuration setting that
> allows
> brokers to continue operating in a safe mode when the session with
> ZooKeeper
> expires.
>
> The way it works is that, when we lose a ZooKeeper session, the data plane
> will
> continue to work undisturbed, relying on the BookKeeper fencing to avoid
> any
> inconsistencies.
>
> New topics are not able to get started, but existing topics will see no
> impact.
>
> The original intention for shutting down the brokers was to ensure that we
> would automatically go back to a consistent state, with respect to which
> resources are "owned" in ZooKeeper by a given broker.
>
> With the re-acquirable resource locks, that problem was solved and
> thoroughly
> tested to be robust.
>
> ## Proposed changes
>
> In 2.10 release, for the setting:
>
> ```properties
> # There are two policies to apply when broker metadata session
> expires: session expired happens, "shutdown" or "reconnect".
> # With "shutdown", the broker will be restarted.
> # With "reconnect", the broker will keep serving the topics, while
> attempting to recreate a new session.
> zookeeperSessionExpiredPolicy=shutdown
> ```
>
> Deprecate the old setting and rename it to
> `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
>

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by Enrico Olivelli <eo...@gmail.com>.
+1 (binding)

Enrico

Il Mer 22 Dic 2021, 13:09 Hang Chen <ch...@apache.org> ha scritto:

> +1
>
> Thanks,
> Hang
>
> PengHui Li <pe...@apache.org> 于2021年12月22日周三 19:34写道:
> >
> > +1
> >
> > Penghui
> >
> > On Wed, Dec 22, 2021 at 7:22 AM Matteo Merli <mm...@apache.org> wrote:
> >
> > > https://github.com/apache/pulsar/issues/13304
> > >
> > > Following the discussion, I have updated the proposal to also include
> > > the deprecation and renaming of the config setting name to
> > > `metadataSessionExpiredPolicy`.
> > >
> > >
> > >
> > > -------
> > > ## Motivation
> > >
> > > After all the work done for PIP-45 that was already included in 2.8
> and 2.9
> > > releases, it enabled the concept of re-acquirable resource locks and
> leader
> > > election.
> > >
> > > Another important change was to avoid doing any deferrable metadata
> > > operation
> > > when we know that we are not currently connected to the metadata
> service.
> > >
> > > Finally, that enabled to stabilize in 2.9 the configuration setting
> that
> > > allows
> > > brokers to continue operating in a safe mode when the session with
> > > ZooKeeper
> > > expires.
> > >
> > > The way it works is that, when we lose a ZooKeeper session, the data
> plane
> > > will
> > > continue to work undisturbed, relying on the BookKeeper fencing to
> avoid
> > > any
> > > inconsistencies.
> > >
> > > New topics are not able to get started, but existing topics will see no
> > > impact.
> > >
> > > The original intention for shutting down the brokers was to ensure
> that we
> > > would automatically go back to a consistent state, with respect to
> which
> > > resources are "owned" in ZooKeeper by a given broker.
> > >
> > > With the re-acquirable resource locks, that problem was solved and
> > > thoroughly
> > > tested to be robust.
> > >
> > > ## Proposed changes
> > >
> > > In 2.10 release, for the setting:
> > >
> > > ```properties
> > > # There are two policies to apply when broker metadata session
> > > expires: session expired happens, "shutdown" or "reconnect".
> > > # With "shutdown", the broker will be restarted.
> > > # With "reconnect", the broker will keep serving the topics, while
> > > attempting to recreate a new session.
> > > zookeeperSessionExpiredPolicy=shutdown
> > > ```
> > >
> > > Deprecate the old setting and rename it to
> > > `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
> > >
>

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by Hang Chen <ch...@apache.org>.
+1

Thanks,
Hang

PengHui Li <pe...@apache.org> 于2021年12月22日周三 19:34写道:
>
> +1
>
> Penghui
>
> On Wed, Dec 22, 2021 at 7:22 AM Matteo Merli <mm...@apache.org> wrote:
>
> > https://github.com/apache/pulsar/issues/13304
> >
> > Following the discussion, I have updated the proposal to also include
> > the deprecation and renaming of the config setting name to
> > `metadataSessionExpiredPolicy`.
> >
> >
> >
> > -------
> > ## Motivation
> >
> > After all the work done for PIP-45 that was already included in 2.8 and 2.9
> > releases, it enabled the concept of re-acquirable resource locks and leader
> > election.
> >
> > Another important change was to avoid doing any deferrable metadata
> > operation
> > when we know that we are not currently connected to the metadata service.
> >
> > Finally, that enabled to stabilize in 2.9 the configuration setting that
> > allows
> > brokers to continue operating in a safe mode when the session with
> > ZooKeeper
> > expires.
> >
> > The way it works is that, when we lose a ZooKeeper session, the data plane
> > will
> > continue to work undisturbed, relying on the BookKeeper fencing to avoid
> > any
> > inconsistencies.
> >
> > New topics are not able to get started, but existing topics will see no
> > impact.
> >
> > The original intention for shutting down the brokers was to ensure that we
> > would automatically go back to a consistent state, with respect to which
> > resources are "owned" in ZooKeeper by a given broker.
> >
> > With the re-acquirable resource locks, that problem was solved and
> > thoroughly
> > tested to be robust.
> >
> > ## Proposed changes
> >
> > In 2.10 release, for the setting:
> >
> > ```properties
> > # There are two policies to apply when broker metadata session
> > expires: session expired happens, "shutdown" or "reconnect".
> > # With "shutdown", the broker will be restarted.
> > # With "reconnect", the broker will keep serving the topics, while
> > attempting to recreate a new session.
> > zookeeperSessionExpiredPolicy=shutdown
> > ```
> >
> > Deprecate the old setting and rename it to
> > `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
> >

Re: [VOTE] PIP-118: Do not restart brokers when ZooKeeper session expires

Posted by PengHui Li <pe...@apache.org>.
+1

Penghui

On Wed, Dec 22, 2021 at 7:22 AM Matteo Merli <mm...@apache.org> wrote:

> https://github.com/apache/pulsar/issues/13304
>
> Following the discussion, I have updated the proposal to also include
> the deprecation and renaming of the config setting name to
> `metadataSessionExpiredPolicy`.
>
>
>
> -------
> ## Motivation
>
> After all the work done for PIP-45 that was already included in 2.8 and 2.9
> releases, it enabled the concept of re-acquirable resource locks and leader
> election.
>
> Another important change was to avoid doing any deferrable metadata
> operation
> when we know that we are not currently connected to the metadata service.
>
> Finally, that enabled to stabilize in 2.9 the configuration setting that
> allows
> brokers to continue operating in a safe mode when the session with
> ZooKeeper
> expires.
>
> The way it works is that, when we lose a ZooKeeper session, the data plane
> will
> continue to work undisturbed, relying on the BookKeeper fencing to avoid
> any
> inconsistencies.
>
> New topics are not able to get started, but existing topics will see no
> impact.
>
> The original intention for shutting down the brokers was to ensure that we
> would automatically go back to a consistent state, with respect to which
> resources are "owned" in ZooKeeper by a given broker.
>
> With the re-acquirable resource locks, that problem was solved and
> thoroughly
> tested to be robust.
>
> ## Proposed changes
>
> In 2.10 release, for the setting:
>
> ```properties
> # There are two policies to apply when broker metadata session
> expires: session expired happens, "shutdown" or "reconnect".
> # With "shutdown", the broker will be restarted.
> # With "reconnect", the broker will keep serving the topics, while
> attempting to recreate a new session.
> zookeeperSessionExpiredPolicy=shutdown
> ```
>
> Deprecate the old setting and rename it to
> `metadataSessionExpiredPolicy`, with default value set to `reconnect`.
>