Re: Deadlock between logrep apply worker and tablesync worker

Поиск
Список
Период
Сортировка
От vignesh C
Тема Re: Deadlock between logrep apply worker and tablesync worker
Дата
Msg-id CALDaNm0m6HDp1hAiwpmT2buw8aHdjnMqGRJzHE=eGPe_YdrJ2A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Deadlock between logrep apply worker and tablesync worker  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: Deadlock between logrep apply worker and tablesync worker  (Amit Kapila <amit.kapila16@gmail.com>)
Список 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

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: shveta malik
Дата:
Сообщение: Re: [PATCH] Reuse Workers and Replication Slots during Logical Replication
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: meson oddities