Re: Pass heaprel to GlobalVisTestFor() in vacuumRedirectAndPlaceholder()
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Andres Freund <andres@anarazel.de>
Cc: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-04-02T22:52:14Z
Lists: pgsql-hackers
On Sun, Apr 2, 2023 at 3:30 PM Andres Freund <andres@anarazel.de> wrote: > > Actually, I suppose that isn't quite true, since you'd still need to > > find a way to pass the heap relation down to nbtree VACUUM. Say by > > adding it to IndexVacuumInfo. > > It has been added to that already, so it should really be as trivial as you > suggested earlier... Oh yeah, I missed it because you put it at the end of the struct, rather than at the start, next to the existing Relation. This page deletion issue matters a lot more after the Postgres 14 optimization added by commit e5d8a99903, which came after your GlobalVisCheckRemovableFullXid() snapshot scalability work (well, a few months after, at least). I really don't like the idea of something like that being much less effective due to logical decoding. Granted, the optimization in commit e5d8a99903 was itself kind of a hack, which should be replaced by a scheme that explicitly makes recycle safety the responsibility of the FSM itself, not the responsibility of VACUUM. -- Peter Geoghegan
Commits
-
Make SP-GiST redirect cleanup more aggressive.
- 05a304a85510 16.0 landed
-
Recycle deleted nbtree pages more aggressively.
- e48c817395e1 16.0 landed
-
Move heaprel struct field next to index rel field.
- a349b86603e1 16.0 landed
-
Pass down table relation into more index relation functions
- 61b313e47eb9 16.0 cited
-
Use full 64-bit XIDs in deleted nbtree pages.
- e5d8a9990304 14.0 cited