Re: Avoiding unnecessary clog lookups while freezing
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-12-29T06:36:53Z
Lists: pgsql-hackers
On Wed, Dec 28, 2022 at 4:43 PM Andres Freund <andres@anarazel.de> wrote: > > > Hm. I dimply recall that we had repeated cases where the hint bits were set > > > wrongly due to some of the multixact related bugs. I think I was trying to be > > > paranoid about not freezing stuff in those situations, since it can lead to > > > reviving dead tuples, which obviously is bad. > > > > I think that it's a reasonable check, and I'm totally in favor of > > keeping it (or something very close, at least). > > I don't quite follow - one paragraph up you say we should fix something, and > then here you seem to say we should continue not to rely on the hint bits? I didn't mean that we should continue to not rely on the hint bits. Is that really all that the test is for? I think of it as a general sanity check. The important call to avoid with page-level freezing is the xmin call to TransactionIdDidCommit(), not the xmax call. The xmax call only occurs when VACUUM prepares to freeze a tuple that was updated by an updater (not a locker) that aborted. While the xmin calls will now take place with most unfrozen tuples. -- Peter Geoghegan
Commits
-
Delay commit status checks until freezing executes.
- 79d4bf4eff14 16.0 landed
-
Add page-level freezing to VACUUM.
- 1de58df4fec7 16.0 cited
-
Perform a lot more sanity checks when freezing tuples.
- 699bf7d05c68 11.0 cited