From: | James Coleman <jtc331(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Add last commit LSN to pg_last_committed_xact() |
Date: | 2022-01-19 01:58:01 |
Message-ID: | CAAaqYe_iKDVB3fvsvsz+Vk0yGDf99-OGVRoJdckA23Fw0B6vqg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jan 18, 2022 at 4:32 PM Andres Freund <andres(at)anarazel(dot)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
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Expose-LSN-of-last-commit-via-pg_last_committed_x.patch | text/x-patch | 9.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | houzj.fnst@fujitsu.com | 2022-01-19 02:14:57 | RE: row filtering for logical replication |
Previous Message | Robert Haas | 2022-01-19 01:55:05 | Re: pgsql: Modify pg_basebackup to use a new COPY subprotocol for base back |