Re: XACT_EVENT for 'commit prepared'

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: XACT_EVENT for 'commit prepared'
Дата
Msg-id 20240607165241.ihv5ht4y3r4fkbac@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: XACT_EVENT for 'commit prepared'  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi,

On 2024-06-07 11:19:40 -0400, Tom Lane wrote:
> Xiaoran Wang <fanfuxiaoran@gmail.com> writes:
> > I found that in enum XactEvent, there is  'XACT_EVENT_PREPARE'  for
> > 'prepare transaction', but there is no event for 'commit prepared' or
> > 'rollback prepared'.
> 
> On the whole, it seems like a good idea to me that those commands
> don't invoke event triggers.  It is a core principle of 2PC that
> if 'prepare' succeeded, 'commit prepared' must not fail.  Invoking a
> trigger during the second step would add failure cases and I'm not
> sure what value it has.

Event triggers? Isn't this about RegisterXactCallback?

XACT_EVENT_COMMIT is called after the commit record has been flushed and the
procarray has been modified. Thus a failure in the hook has somewhat limited
consequences. I'd assume XACT_EVENT_COMMIT_PREPARED would do something
similar.

I suspect the reason we don't callback for 2pc commit/rollback prepared is
simpl: The code for doing a 2pc commit prepared lives in twophase.c, not
xact.c...

Greetings,

Andres Freund



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

Предыдущее
От: Srirama Kucherlapati
Дата:
Сообщение: RE: AIX support
Следующее
От: Andres Freund
Дата:
Сообщение: Re: Postgresql OOM