Re: Removing more vacuumlazy.c special cases, relfrozenxid optimizations
Robert Haas <robertmhaas@gmail.com>
On Tue, Jan 18, 2022 at 12:14 AM Peter Geoghegan <pg@bowt.ie> wrote: > I quite clearly said that you'll only get an anti-wraparound VACUUM > with the patch applied when the only factor that *ever* causes *any* > autovacuum worker to VACUUM the table (assuming the workload is > stable) is the anti-wraparound/autovacuum_freeze_max_age cutoff. With > a table like this, even increasing autovacuum_freeze_max_age to its > absolute maximum of 2 billion would not make it any more likely that > we'd get a non-aggressive VACUUM -- it would merely make the > anti-wraparound VACUUMs less frequent. No big change should be > expected with a table like that. Sure, I don't disagree with any of that. I don't see how I could. But I don't see how it detracts from the points I was trying to make either. > Also, since the patch is not magic, and doesn't even change the basic > invariants for relfrozenxid, it's still true that any scenario in > which it's fundamentally impossible for VACUUM to keep up will also > have anti-wraparound VACUUMs. But that's the least of the user's > trouble -- in the long run we're going to have the system refuse to > allocate new XIDs with such a workload. Also true. But again, it's just about making sure that the patch doesn't make other decisions that make things worse for people in that situation. That's what I was expressing uncertainty about. > The claim that I have made is 100% testable. Even if it was flat out > incorrect, not getting anti-wraparound VACUUMs per se is not the > important part. The important part is that the work is managed > intelligently, and the burden is spread out over time. I am > particularly concerned about the "freezing cliff" we get when many > pages are all-visible but not also all-frozen. Consistently avoiding > an anti-wraparound VACUUM (except with very particular workload > characteristics) is really just a side effect -- it's something that > makes the overall benefit relatively obvious, and relatively easy to > measure. I thought that you'd appreciate that. I do. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
Have VACUUM warn on relfrozenxid "in the future".
- e83ebfe6d767 15.0 landed
-
vacuumlazy.c: Further consolidate resource allocation.
- c42a6fc41dc2 15.0 landed
-
Generalize how VACUUM skips all-frozen pages.
- f3c15cbe5065 15.0 landed
-
Set relfrozenxid to oldest extant XID seen by VACUUM.
- 0b018fabaaba 15.0 landed
-
Doc: Add relfrozenxid Tip to XID wraparound section.
- 05023a237c05 15.0 landed
-
vacuumlazy.c: document vistest and OldestXmin.
- 73f6ec3d3c8d 15.0 cited
-
Increase hash_mem_multiplier default to 2.0.
- 8f388f6f554b 15.0 cited
-
Consolidate VACUUM xid cutoff logic.
- efa4a9462a07 15.0 landed
-
Add VACUUM instrumentation for scanned pages, relfrozenxid.
- 872770fd6ccf 15.0 landed
-
Simplify lazy_scan_heap's handling of scanned pages.
- 44fa84881fff 15.0 landed
-
Try to stabilize reloptions test, again.
- b700f96cffd9 15.0 cited
-
Unify VACUUM VERBOSE and autovacuum logging.
- 49c9d9fcfa9a 15.0 cited
-
Fix possible HOT corruption when RECENTLY_DEAD changes to DEAD while pruning.
- 18b87b201f73 15.0 cited
-
pg_resetxlog: add option to set oldest xid & use by pg_upgrade
- 74cf7d46a91d 15.0 cited
-
Teach VACUUM to bypass unnecessary index vacuuming.
- 5100010ee4d5 14.0 cited
-
Centralize horizon determination for temp tables, fixing bug due to skew.
- 94bc27b57680 14.0 cited
-
pg_surgery: Try to stabilize regression tests.
- 0811f766fd74 14.0 cited
-
Add "split after new tuple" nbtree optimization.
- f21668f328c8 12.0 cited
-
Fix bugs in vacuum of shared rels, by keeping their relcache entries current.
- a54e1f158779 11.0 cited
-
Avoid useless truncation attempts during VACUUM.
- e842908233bb 9.6.0 cited
-
Only skip pages marked as clean in the visibility map, if the last 32
- bf136cf6e376 8.4.0 cited
-
Fix recently-understood problems with handling of XID freezing, particularly
- 48188e1621bb 8.2.0 cited