Re: Excessive number of replication slots for 12->14 logical replication

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Ajin Cherian <itsajin@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, Peter Smith <smithpb2250@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, Hubert Lubaczewski <depesz@depesz.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-08-23T14:26:41Z
Lists: pgsql-bugs
On Thu, Aug 18, 2022 at 11:28 AM Ajin Cherian <itsajin@gmail.com> wrote:
>
> On Thu, Aug 18, 2022 at 3:46 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> > Looks good.
> >
> > I have one minor comment:
> >
> > -                    * SUBREL_STATE_FINISHEDCOPY. The apply worker can also
> > -                    * concurrently try to drop the origin and by this time
> > -                    * the origin might be already removed. For these reasons,
> > -                    * passing missing_ok = true.
> > +                    * SUBREL_STATE_FINISHEDCOPY. So passing missing_ok = true.
> >
> > I think we should change "the apply worker" to "the tablesync worker"
> > but should not remove this sentence. The fact that another process
> > could concurrently try to drop the origin is still true.
> >
> > The rest looks good to me.
> >
>
> Updated as described.
>

The patch looks good to me though I would like to test it a bit more
before pushing. Do we want to back-patch this? It is a clear
improvement as compared to the current implementation but OTOH, users
can use the workaround of increasing max_replication_slots, so, one
can say that it is okay to just make this change in HEAD. What do you
think?

-- 
With Regards,
Amit Kapila.



Commits

  1. Make the tablesync worker's replication origin drop logic robust.

  2. Drop replication origin slots before tablesync worker exits.

  3. Allow multiple xacts during table sync in logical replication.