Re: pgsql: snapshot scalability: cache snapshots using a xact completion co - Mailing list pgsql-committers

From Michael Paquier
Subject Re: pgsql: snapshot scalability: cache snapshots using a xact completion co
Date
Msg-id 20200818045246.GC3813@paquier.xyz
Whole thread Raw
In response to pgsql: snapshot scalability: cache snapshots using a xact completion co  (Andres Freund <andres@anarazel.de>)
Responses Re: pgsql: snapshot scalability: cache snapshots using a xact completion co  (Andres Freund <andres@anarazel.de>)
List pgsql-committers
On Tue, Aug 18, 2020 at 04:30:21AM +0000, Andres Freund wrote:
> snapshot scalability: cache snapshots using a xact completion counter.
>
> Previous commits made it faster/more scalable to compute snapshots. But not
> building a snapshot is still faster. Now that GetSnapshotData() does not
> maintain RecentGlobal* anymore, that is actually not too hard:
>
> This commit introduces xactCompletionCount, which tracks the number of
> top-level transactions with xids (i.e. which may have modified the database)
> that completed in some form since the start of the server.
>
> We can avoid rebuilding the snapshot's contents whenever the current
> xactCompletionCount is the same as it was when the snapshot was
> originally built.  Currently this check happens while holding
> ProcArrayLock. While it's likely possible to perform the check without
> acquiring ProcArrayLock, it seems better to do that separately /
> later, some careful analysis is required. Even with the lock this is a
> significant win on its own.
>
> On a smaller two socket machine this gains another ~1.03x, on a larger
> machine the effect is roughly double (earlier patch version tested
> though).  If we were able to safely avoid the lock there'd be another
> significant gain on top of that.

spurfowl and more animals are telling us that this commit has broken
2PC:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=spurfowl&dt=2020-08-18%2004%3A31%3A11
--
Michael

Attachment

pgsql-committers by date:

Previous
From: Andres Freund
Date:
Subject: pgsql: snapshot scalability: cache snapshots using a xact completion co
Next
From: Tom Lane
Date:
Subject: Re: pgsql: snapshot scalability: cache snapshots using a xact completion co