Re: Deadlock between logrep apply worker and tablesync worker - Mailing list pgsql-hackers

From vignesh C
Subject Re: Deadlock between logrep apply worker and tablesync worker
Date
Msg-id CALDaNm0m6HDp1hAiwpmT2buw8aHdjnMqGRJzHE=eGPe_YdrJ2A@mail.gmail.com
Whole thread Raw
In response to Re: Deadlock between logrep apply worker and tablesync worker  (Amit Kapila <amit.kapila16@gmail.com>)
Responses Re: Deadlock between logrep apply worker and tablesync worker
List pgsql-hackers
On Mon, 23 Jan 2023 at 10:52, Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> IIRC, this is done to prevent concurrent drops of origin drop say by
> exposed API pg_replication_origin_drop(). See the discussion in [1]
> related to it. If we want we can optimize it so that we can acquire
> the lock on the specific origin as mentioned in comments
> replorigin_drop_by_name() but it was not clear that this operation
> would be frequent enough.

Here is an attached patch to lock the replication origin record using
LockSharedObject instead of locking pg_replication_origin relation in
ExclusiveLock mode. Now tablesync worker will wait only if the
tablesync worker is trying to drop the same replication origin which
has already been dropped by the apply worker, the other tablesync
workers will be able to successfully drop the replication origin
without any wait.

Regards,
Vignesh

Attachment

pgsql-hackers by date:

Previous
From: shveta malik
Date:
Subject: Re: [PATCH] Reuse Workers and Replication Slots during Logical Replication
Next
From: Peter Eisentraut
Date:
Subject: Re: meson oddities