Re: Synchronizing slots from primary to standby - Mailing list pgsql-hackers

From Drouvot, Bertrand
Subject Re: Synchronizing slots from primary to standby
Date
Msg-id b099ebc2-68fd-4c08-87ce-65fc4cb24121@gmail.com
Whole thread Raw
In response to Re: Synchronizing slots from primary to standby  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-hackers
Hi,

On 10/25/23 6:57 AM, Amit Kapila wrote:
> On Tue, Oct 24, 2023 at 3:35 PM Drouvot, Bertrand
> <bertranddrouvot.pg@gmail.com> wrote:
>>
>> On 10/24/23 7:44 AM, Ajin Cherian wrote:
>>> On Mon, Oct 23, 2023 at 11:22 PM Drouvot, Bertrand
>>> <bertranddrouvot.pg@gmail.com> wrote:
>>
>> 2) When we create a subscription, another slot is created during the subscription synchronization, namely
>> like "pg_16397_sync_16388_7293447291374081805" (coming from ReplicationSlotNameForTablesync()).
>>
>> This extra slot appears to have failover also set to true.
>>
>> So, If the standby refresh the list of slot to sync when the subscription is still synchronizing we'd see things
like
>> on the standby:
>>
>> LOG:  waiting for remote slot "mysub" LSN (0/C0034808) and catalog xmin (756) to pass local slot LSN (0/C0034840)
andand catalog xmin (756)
 
>> LOG:  wait over for remote slot "mysub" as its LSN (0/C00368B0) and catalog xmin (756) has now passed local slot LSN
(0/C0034840)and catalog xmin (756)
 
>> LOG:  waiting for remote slot "pg_16397_sync_16388_7293447291374081805" LSN (0/C0034808) and catalog xmin (756) to
passlocal slot LSN (0/C00368E8) and and catalog xmin (756)
 
>> WARNING:  slot "pg_16397_sync_16388_7293447291374081805" disappeared from the primary, aborting slot creation
>>
>> I'm not sure this "pg_16397_sync_16388_7293447291374081805" should have failover set to true. If there is a
failover
>> during the subscription creation, better to re-launch the subscription instead?
>>
> 
> But note that the subscription doesn't wait for the completion of
> tablesync. 

Right.

> So, how will we deal with that? Also, this situation is the
> same for non-tablesync slots as well. I have given another option in
> the email [1] which is to enable failover even for the main slot after
> all tables are in ready state, something similar to what we do for
> two_phase.

Oh right that looks like a better option (enable failover even for the main slot after
all tables are in ready state).

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: Use virtual tuple slot for Unique node
Next
From: Jelte Fennema
Date:
Subject: Re: Add new for_each macros for iterating over a List that do not require ListCell pointer