From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org, Robert Haas <robertmhaas(at)gmail(dot)com> |
Subject: | Re: catalog access with reset GUCs during parallel worker startup |
Date: | 2023-12-07 06:33:13 |
Message-ID: | CAApHDvrcWM9ize8oLujumwaEmTTcmQWXtHe4C-TiD1Dx2jAtFA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, 10 Feb 2022 at 13:33, Andres Freund <andres(at)anarazel(dot)de> wrote:
> Postmaster's GUC state will already be loaded via read_nondefault_variables(),
> much earlier in startup. Well before bgworkers get control and before
> transaction environment is up.
>
> Setting a watchpoint on enableFsync, in a parallel worker where postmaster
> runs with enableFsync=off, shows the following:
The following comment in RestoreGUCState() starting with "since the
leader's" seems to indicate this step is required.
> * but already have their default values. Thus, this ends up being the
> * same test that SerializeGUCState uses, even though the sets of
> * variables involved may well be different since the leader's set of
> * variables-not-at-default-values can differ from the set that are
> * not-default in this freshly started worker.
I'm just not quite clear on which cases this could be. Looking at
InitializeOneGUCOption(), the newval comes from conf->boot_val, which,
for built-in GUCs just comes from the ConfigureNames* table in
guc_tables.c. Perhaps there could be variances in values that are
passed during the call to DefineCustom*Variable between the leader and
the worker in some extension's code.
David
From | Date | Subject | |
---|---|---|---|
Next Message | Li, Yong | 2023-12-07 07:06:50 | Proposal to add page headers to SLRU pages |
Previous Message | Paul Jungwirth | 2023-12-07 06:32:07 | Re: Improve rowcount estimate for UNNEST(column) |