Re: Add last commit LSN to pg_last_committed_xact()

Поиск
Список
Период
Сортировка
От James Coleman
Тема Re: Add last commit LSN to pg_last_committed_xact()
Дата
Msg-id CAAaqYe_iKDVB3fvsvsz+Vk0yGDf99-OGVRoJdckA23Fw0B6vqg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Add last commit LSN to pg_last_committed_xact()  (Andres Freund <andres@anarazel.de>)
Ответы Re: Add last commit LSN to pg_last_committed_xact()  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On Tue, Jan 18, 2022 at 4:32 PM Andres Freund <andres@anarazel.de> wrote:
>
> I wonder if a very different approach could make sense here. Presumably this
> wouldn't need to be queried at a very high frequency, right? If so, what about
> storing the latest commit LSN for each backend in PGPROC? That could be
> maintained without a lock/atomics, and should be just about free.
> pg_last_committed_xact() then would have to iterate over all PGPROCs to
> complete the LSN, but that's not too bad for an operation like that. We'd also
> need to maintain a value for all disconnected backends, but that's also not a hot
> path.

Is something roughly like the attached what you'd envisioned? I
wouldn't expect the final implementation to be in commit_ts.c, but I
left it there for expediency's sake in demonstrating the idea since
pg_last_committed_xact() currently finds its home there.

I think we need a shared ProcArrayLock to read the array, correct? We
also need to do the global updating under lock, but given it's when a
proc is removed, that shouldn't be a performance issue if I'm
following what you are saying.

Thanks,
James Coleman

Вложения

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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: pgsql: Modify pg_basebackup to use a new COPY subprotocol for base back
Следующее
От: "houzj.fnst@fujitsu.com"
Дата:
Сообщение: RE: row filtering for logical replication