Re: Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.
Date: 2017-09-16 18:38:49
Message-ID: 20170916183849.kgqlyi3q2oy4qjkx@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On 2017-09-16 14:30:21 -0400, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > Looking into it.
>
> I wonder whether we shouldn't just revert this patch altogether.
> Certainly, extra reads of pg_control are not a noticeable performance
> problem.

The problem is that the patch that makes the segment size configurable
also adds a bunch more ordering constraints due to the fact that the
contents of the control file influence how much shared buffers are
needed (via wal_buffers = -1, which requires the segment size, which is
read from the control file). Reading things in the wrong order leads to
bad results too.

> I'm now quite worried about whether we aren't introducing
> hazards of using stale values from the file; if a system crash isn't
> enough to get it to flush its cache, then what is?

I don't think the problem here is stale values, it's "just" a stale
pointer pointing into shared memory that gets reiniitalized?

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2017-09-16 19:32:10 pgsql: Doc: add example of transition table use in a trigger.
Previous Message Tom Lane 2017-09-16 18:30:21 Re: Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2017-09-16 19:42:55 Re: valgrind vs. shared typmod registry
Previous Message Tom Lane 2017-09-16 18:30:21 Re: Re: [COMMITTERS] pgsql: Perform only one ReadControlFile() during startup.