Re: repeated decoding of prepared transactions

Поиск
Список
Период
Сортировка
От Markus Wanner
Тема Re: repeated decoding of prepared transactions
Дата
Msg-id 19c8c14e-0028-1bfa-acda-f890d3b8f154@enterprisedb.com
обсуждение исходный текст
Ответ на Re: repeated decoding of prepared transactions  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: repeated decoding of prepared transactions  (Amit Kapila <amit.kapila16@gmail.com>)
Список pgsql-hackers
On 10.02.21 07:32, Amit Kapila wrote:
> On Wed, Feb 10, 2021 at 11:45 AM Ajin Cherian <itsajin@gmail.com> wrote:
>> But the other side of the problem is that ,without this, if the
>> prepared transaction is prior to a consistent snapshot when decoding
>> starts/restarts, then only the "commit prepared" is sent to downstream
>> (as seen in the test scenario I shared above), and downstream has to
>> error away the commit prepared because it does not have the
>> corresponding prepared transaction.
> 
> I think it is not only simple error handling, it is required for
> data-consistency. We need to send the transactions whose commits are
> encountered after a consistent snapshot is reached.

I'm with Ashutosh here.  If a replica is properly in sync, it knows 
about prepared transactions and all the gids of those.  Sending the 
transactional changes and the prepare again is inconsistent.

The point of a two-phase transaction is to have two phases.  An output 
plugin must have the chance of treating them as independent events. 
Once a PREPARE is confirmed, it must not be sent again.  Even if the 
transaction is still in-progress and its changes are not yet visible on 
the origin node.

Regards

Markus



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

Предыдущее
От: Michael Banck
Дата:
Сообщение: Offline activation of checksums via standby switchover (was: Online checksums patch - once again)
Следующее
От: Amit Langote
Дата:
Сообщение: Re: Parallel INSERT (INTO ... SELECT ...)