Re: Intermittent buildfarm failures on wrasse
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Noah Misch <noah@leadboat.com>, David Rowley <dgrowleyml@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-04-15T18:12:34Z
Lists: pgsql-hackers
On Fri, Apr 15, 2022 at 10:43 AM Andres Freund <andres@anarazel.de> wrote: > I think it'd be interesting - particularly for large relations or when > looking to adjust autovac cost limits. > Something like: > removable cutoff: %u, age at start: %u, age at end: %u... Part of the problem here is that we determine VACUUM's FreezeLimit by calculating `OldestXmin - vacuum_freeze_min_age` (more or less [1]). Why should we do less freezing due to the presence of an old snapshot? Sure, that has to happen with those XIDs that are fundamentally ineligible for freezing due to the presence of the old snapshot -- but what about those XIDs that *are* eligible, and still don't get frozen at first? We should determine FreezeLimit by calculating `NextXID - vacuum_freeze_min_age ` instead (and then clamp, to make sure that it's always <= OldestXmin). That approach would make our final FreezeLimit "strictly age-based". [1] We do something a bit like this when OldestXmin is already very old -- then FreezeLimit is the same value as OldestXmin (see WARNING from vacuum_set_xid_limits() function). That's better than nothing, but doesn't change the fact that our general approach to calculating FreezeLimit makes little sense. -- Peter Geoghegan
Commits
-
Repurpose PROC_COPYABLE_FLAGS as PROC_XMIN_FLAGS
- 8d9d1286acf9 14.4 landed
- 8d061acd12af 15.0 landed
- 5fd0cccc116b 13.8 landed
-
Tighten ComputeXidHorizons' handling of walsenders.
- 6fea65508a1a 15.0 landed
-
Adjust VACUUM's removable cutoff log message.
- 357c8455e649 15.0 landed
-
Temporarily add some probes of tenk1's relallvisible in create_index.sql.
- 5bb2b6abc8d6 15.0 landed
-
Set synchronous_commit=on in test_setup.sql.
- 02fea8fdda65 15.0 cited
-
Rearrange core regression tests to reduce cross-script dependencies.
- cc50080a828d 15.0 cited
-
snapshot scalability: Don't compute global horizons while building snapshots.
- dc7420c2c927 14.0 cited