Re: [PATCH] Runtime control of CLOBBER_CACHE_ALWAYS

Craig Ringer <craig.ringer@enterprisedb.com>

From: Craig Ringer <craig.ringer@enterprisedb.com>
To: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, Craig Ringer <craig@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2020-12-01T08:50:55Z
Lists: pgsql-hackers
On Mon, 30 Nov 2020, 20:38 Anastasia Lubennikova, <
a.lubennikova@postgrespro.ru> wrote:

> On 27.10.2020 11:34, Peter Eisentraut wrote:
> > On 2020-09-25 09:40, Craig Ringer wrote:
> >> While working on extensions I've often wanted to enable cache
> >> clobbering for a targeted piece of code, without paying the price of
> >> running it for all backends during postgres startup and any initial
> >> setup tasks that are required.
> >>
> >> So here's a patch that, when CLOBBER_CACHE_ALWAYS or
> >> CLOBBER_CACHE_RECURSIVE are defined, adds a GUC named
> >> clobber_cache_depth . It defaults to 1 for CLOBBER_CACHE_ALWAYS or 3
> >> for CLOBBER_CACHE_RECURSIVE to match the existing compiled-in
> >> behaviour. But with this change it's now possible to run Pg with
> >> clobber_cache_depth=0 then set it to 1 only for targeted tests.
> >>
> >> clobber_cache_depth is treated as an unknown GUC if Pg was not built
> >> with CLOBBER_CACHE_ALWAYS or CLOBBER_CACHE_RECURSIVE defined.
> >
> > I think it would be great if the cache clobber code is always compiled
> > in (but turned off) when building with assertions.  The would reduce
> > the number of hoops to jump through to actually use this locally and
> > reduce the number of surprises from the build farm.
> >
> > For backward compatibility, you can arrange it so that the built-in
> > default of clobber_cache_depth is 1 or 3 if CLOBBER_CACHE_ALWAYS or
> > CLOBBER_CACHE_RECURSIVE are defined.
> >
>
> Status update for a commitfest entry.
>
> This thread was inactive during the commitfest, so I am going to mark it
> as "Returned with Feedback".
> Craig, are you planning to continue working on it? The proposed idea is
> great and it looks like the patch needs only a minor improvement.
>

Thanks.

I'll update it soon.

Commits

  1. Replace CLOBBER_CACHE_ALWAYS with run-time GUC

  2. doc: Document how to run regression tests with custom server settings