Delay commit status checks until freezing executes.
authorPeter Geoghegan <pg@bowt.ie>
Tue, 3 Jan 2023 19:22:36 +0000 (11:22 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Tue, 3 Jan 2023 19:22:36 +0000 (11:22 -0800)
commit79d4bf4eff14d8967b10ad4c60039c1b9b0cf66e
treeb4487781454b36f54d66d4bd76ba3f970c5e54fb
parentb37a0832396414e8469d4ee4daea33396bde39b0
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
src/backend/access/heap/heapam.c
src/include/access/heapam.h