Re: Disallow cancellation of waiting for synchronous replication

Поиск
Список
Период
Сортировка
От Maksim Milyutin
Тема Re: Disallow cancellation of waiting for synchronous replication
Дата
Msg-id 658c420e-9899-5c24-87b0-d34ba81e17a7@gmail.com
обсуждение исходный текст
Ответ на Re: Disallow cancellation of waiting for synchronous replication  (Marco Slot <marco@citusdata.com>)
Ответы Re: Disallow cancellation of waiting for synchronous replication  (Andrey Borodin <x4mmm@yandex-team.ru>)
Re: Disallow cancellation of waiting for synchronous replication  (Marco Slot <marco@citusdata.com>)
Список pgsql-hackers
On 21.12.2019 13:34, Marco Slot wrote:

> I do agree with the general sentiment that terminating the connection
> is preferable over sending a response to the client (except when
> synchronous replication was already disabled).


But in this case locally committed data becomes visible to new incoming 
transactions that is bad side-effect of this issue. Under failover those 
changes potentially undo.


> Synchronous replication
> does not guarantee that a committed write is actually on any replica,
> but it does in general guarantee that a commit has been replicated
> before sending a response to the client. That's arguably more
> important because the rest of what the application might depend on the
> transaction completing and replicating successfully. I don't know of
> cases other than cancellation in which a response is sent to the
> client without replication when synchronous replication is enabled.


Yes, at query canceling (e.g. by timeout from client driver) client 
receives response about completed transaction (though with warning which 
not all client drivers can handle properly) and the guarantee about 
successfully replicated transaction *violates*.


-- 
Best regards,
Maksim Milyutin




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

Предыдущее
От: Maksim Milyutin
Дата:
Сообщение: Re: Disallow cancellation of waiting for synchronous replication
Следующее
От: Andrey Borodin
Дата:
Сообщение: Re: Disallow cancellation of waiting for synchronous replication