Thread: pgsql: Delay commit status checks until freezing executes.

pgsql: Delay commit status checks until freezing executes.

From
Peter Geoghegan
Date:
Delay commit status checks until freezing executes.

pg_xact lookups are relatively expensive.  Move the xmin/xmax commit
status checks from the point that freeze plans are prepared to the point
that they're actually executed.  Otherwise we'll repeat many commit
status checks whenever multiple successive VACUUM operations scan the
same pages and decide against freezing each time, which is a waste of
cycles.

Oversight in commit 1de58df4, which added page-level freezing.

Author: Peter Geoghegan <pg@bowt.ie>
Discussion: https://postgr.es/m/CAH2-WzkZpe4K6qMfEt8H4qYJCKc2R7TPvKsBva7jc9w7iGXQSw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/79d4bf4eff14d8967b10ad4c60039c1b9b0cf66e

Modified Files
--------------
src/backend/access/heap/heapam.c | 89 ++++++++++++++++++++++++++++------------
src/include/access/heapam.h      |  9 ++++
2 files changed, 71 insertions(+), 27 deletions(-)