From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Noah Misch <noah(at)leadboat(dot)com>, David Rowley <dgrowleyml(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Intermittent buildfarm failures on wrasse |
Date: | 2022-04-15 18:12:34 |
Message-ID: | CAH2-Wz=KQJ3GDcB2RrrWvALgw56_QO0XONq2rUn6Wr1KJam5cw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Apr 15, 2022 at 10:43 AM Andres Freund <andres(at)anarazel(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-04-15 18:14:47 | Re: Intermittent buildfarm failures on wrasse |
Previous Message | Andres Freund | 2022-04-15 17:43:22 | Re: Intermittent buildfarm failures on wrasse |