Re: speed up a logical replica setup

Euler Taveira <euler@eulerto.com>

From: "Euler Taveira" <euler@eulerto.com>
To: "Amit Kapila" <amit.kapila16@gmail.com>
Cc: "Michael Paquier" <michael@paquier.xyz>, "Peter Eisentraut" <peter@eisentraut.org>, pgsql-hackers@lists.postgresql.org, "Andres Freund" <andres@anarazel.de>, "Ashutosh Bapat" <ashutosh.bapat.oss@gmail.com>
Date: 2024-01-04T15:48:03Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_createsubscriber: Remove obsolete comment

  2. pg_createsubscriber: Fix an unpredictable recovery wait time.

  3. Fix unstable test in 040_pg_createsubscriber.

  4. Fix the testcase introduced in commit 81d20fbf7a.

  5. Further weaken new pg_createsubscriber test on Windows.

  6. Temporarily(?) weaken new pg_createsubscriber test on Windows.

  7. Make pg_createsubscriber warn if publisher has two-phase commit enabled.

  8. Make pg_createsubscriber more wary about quoting connection parameters.

  9. pg_createsubscriber: Remove failover replication slots on subscriber

  10. pg_createsubscriber: Remove replication slot check on primary

  11. pg_createsubscriber: Only --recovery-timeout controls the end of recovery process

  12. pg_createsubscriber: creates a new logical replica from a standby server

  13. Add some const decorations

  14. Add option force_initdb to PostgreSQL::Test::Cluster:init()

  15. Remove MSVC scripts

On Thu, Jan 4, 2024, at 2:41 AM, Amit Kapila wrote:
> So, you also seem to be saying that it is not required once
> pg_subscriber has promoted it. So, why it should be optional to remove
> physical_replication_slot? I think we must remove it from the primary
> unless there is some other reason.

My point is to *always* remove the primary_slot_name on primary.

> My point is to not have an additional slot and keep a comment
> indicating that we need an extra slot once we add pg_basebackup
> support.

Got it.

> > 3. How about sync slots on the physical standby if present? Do we want
> > to retain those as it is or do we need to remove those? We are
> > actively working on the patch [1] for the same.
> >
> >
> > I didn't read the current version of the referred patch but if the proposal is
> > to synchronize logical replication slots iif you are using a physical
> > replication, as soon as pg_subscriber finishes the execution, there won't be
> > synchronization on these logical replication slots because there isn't a
> > physical replication anymore. If the goal is a promotion, the current behavior
> > is correct because the logical replica will retain WAL since it was converted.
> >
> 
> I don't understand what you mean by promotion in this context. If
> users want to simply promote the standby then there is no need to do
> additional things that this tool is doing.

ENOCOFFEE. s/promotion/switchover/

> > However, if you are creating a logical replica, this WAL retention is not good
> > and the customer should eventually remove these logical replication slots on
> > the logical replica.
> >
> 
> I think asking users to manually remove such slots won't be a good
> idea. We might want to either remove them by default or provide an
> option to the user.

Am I correct that the majority of the use cases these replication slots will be
useless? If so, let's remove them by default and add an option to control this
behavior (replication slot removal).


--
Euler Taveira
EDB   https://www.enterprisedb.com/