Re: collect_corrupt_items_vacuum.patch

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: Dmitry Koval <d(dot)koval(at)postgrespro(dot)ru>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: collect_corrupt_items_vacuum.patch
Date: 2024-07-02 21:31:48
Message-ID: CAPpHfdvVAgQO_J7FJ4Q3O1okxjD1f7Z5sg=bCTo=Xxg=tR5GZQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jul 1, 2024 at 2:18 AM Noah Misch <noah(at)leadboat(dot)com> wrote:
> On Tue, Mar 12, 2024 at 02:10:59PM +0200, Alexander Korotkov wrote:
> > I'm going to push this if no objections.
>
> Commit e85662d wrote:
> > --- a/src/backend/storage/ipc/procarray.c
> > +++ b/src/backend/storage/ipc/procarray.c
>
> > @@ -2740,6 +2741,8 @@ GetRunningTransactionData(void)
> > */
> > for (index = 0; index < arrayP->numProcs; index++)
> > {
> > + int pgprocno = arrayP->pgprocnos[index];
> > + PGPROC *proc = &allProcs[pgprocno];
> > TransactionId xid;
> >
> > /* Fetch xid just once - see GetNewTransactionId */
> > @@ -2760,6 +2763,13 @@ GetRunningTransactionData(void)
> > if (TransactionIdPrecedes(xid, oldestRunningXid))
> > oldestRunningXid = xid;
> >
> > + /*
> > + * Also, update the oldest running xid within the current database.
> > + */
> > + if (proc->databaseId == MyDatabaseId &&
> > + TransactionIdPrecedes(xid, oldestRunningXid))
> > + oldestDatabaseRunningXid = xid;
>
> Shouldn't that be s/oldestRunningXid/oldestDatabaseRunningXid/?

Thank you for catching this.

> While this isn't a hot path, I likely would test TransactionIdPrecedes()
> before fetching pgprocno and PGPROC, to reduce wasted cache misses.

And thanks for suggestion.

The patchset is attached. 0001 implements
s/oldestRunningXid/oldestDatabaseRunningXid/. 0002 implements cache
misses optimization.

If no objection, I'll backpatch 0001 and apply 0002 to the head.

------
Regards,
Alexander Korotkov
Supabase

Attachment Content-Type Size
v1-0002-Optimize-memory-access-in-GetRunningTransactionDa.patch application/octet-stream 2.0 KB
v1-0001-Fix-typo-in-GetRunningTransactionData.patch application/octet-stream 1.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2024-07-02 21:39:06 Re: CI, macports, darwin version problems
Previous Message Tom Lane 2024-07-02 20:43:41 Re: On disable_cost