Re: An attempt to avoid locally-committed-but-not-replicated-to-standby-transactions in synchronous replication

Поиск
Список
Период
Сортировка
От Bharath Rupireddy
Тема Re: An attempt to avoid locally-committed-but-not-replicated-to-standby-transactions in synchronous replication
Дата
Msg-id CALj2ACVuj=Fo55NdWJy=fwweC-+pi7eQPRN3Kij3PQQcWFtYxQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: An attempt to avoid locally-committed-but-not-replicated-to-standby-transactions in synchronous replication  (Dilip Kumar <dilipbalaut@gmail.com>)
Ответы Re: An attempt to avoid locally-committed-but-not-replicated-to-standby-transactions in synchronous replication  (Andrey Borodin <x4mmm@yandex-team.ru>)
Список pgsql-hackers
On Tue, May 10, 2022 at 1:18 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Mon, May 9, 2022 at 4:39 PM Andrey Borodin <x4mmm@yandex-team.ru> wrote:
>
> > > On 9 May 2022, at 14:44, Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > >
> > > IMHO, making it wait for some amount of time, based on GUC is not a
> > > complete solution.  It is just a hack to avoid the problem in some
> > > cases.
> >
> > Disallowing cancelation of locally committed transactions is not a hack. It's removing of a hack that was
erroneouslyinstalled to make backend responsible to Ctrl+C (or client side statement timeout).
 
>
> I might be missing something but based on my understanding the
> approach is not disallowing the query cancellation but it is just
> adding the configuration for how much to delay before canceling the
> query.  That's the reason I mentioned that this is not a guarenteed
> solution.  I mean with this configuration value also you can not avoid
> problems in all the cases, right?

Yes Dilip, the proposed GUC in v1 patch doesn't allow waiting forever
for sync repl ack, in other words, doesn't allow blocking the pending
query cancels or proc die interrupts forever. The backends may linger
in case repl ack isn't received or sync replicas aren't reachable?
Users may have to set the GUC to a 'reasonable value'.

If okay, I can make the GUC behave this way - value 0 existing
behaviour i.e. no wait for sync repl ack, just process query cancels
and proc die interrupts immediately; value -1 wait unboundedly for the
ack; value > 0 wait for specified milliseconds for the ack.

Regards,
Bharath Rupireddy.



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

Предыдущее
От: Dilip Kumar
Дата:
Сообщение: Re: An attempt to avoid locally-committed-but-not-replicated-to-standby-transactions in synchronous replication
Следующее
От: Antonin Houska
Дата:
Сообщение: Re: Privileges on PUBLICATION