On Sun, May 14, 2023 at 1:59 PM Peter Geoghegan <p...@bowt.ie> wrote: > Have you read the documentation in question recently? The first two > paragraphs, in particular: > > https://www.postgresql.org/docs/devel/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND > > As I keep pointing out, we literally introduce the whole topic of > freezing/wraparound by telling users that VACUUM needs to avoid > wraparound to stop your database from becoming corrupt. Which is when > "the past becomes the future"
I went through the history of maintenance.sgml. "Routine Vacuuming" dates back to 2001. Sure enough, our current "25.1.5. Preventing Transaction ID Wraparound Failures" introductory paragraphs (the ones that I find so misleading and alarmist) appear in the original version, too. But in 2001, they weren't alarmist -- they were proportionate to the risk that existed at the time. This becomes totally clear once you see the original. In particular, once you see the current introductory paragraphs next to another paragraph in the original 2001 version: https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/maintenance.sgml;h=7629c5bd541e25b88241e030ca86a243e964e4b7;hb=c5b7f67fcc8c4a01c82660eb0996a3c697fac283#l245 The later paragraph follows up by saying: "In practice this [somewhat regular vacuuming] isn't an onerous requirement, but since the consequences of failing to meet it can be ___complete data loss___ (not just wasted disk space or slow performance), some special provisions...". This means that my particular interpretation of the 25.1.5. introductory paragraphs are absolutely consistent with the original intent from the time they were written. I'm now more confident than ever that all of the stuff about "catastrophic data loss" should have been removed in 2005 or 2006 at the latest. It *almost* was removed around that time, but for whatever reason it wasn't removed in full. And for whatever reason it didn't quite register with anybody in a position to do much about it. -- Peter Geoghegan