From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: straightening out backend process startup |
Date: | 2021-09-14 03:11:29 |
Message-ID: | 20210914031129.pli757jslqgni4lx@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2021-08-05 12:50:15 -0700, Andres Freund wrote:
> On 2021-08-03 16:50:24 +0900, Kyotaro Horiguchi wrote:
> > > - My first attempt at PostgresMainSingle() separated the single/multi user
> > > cases a bit more than the code right now, by having a PostgresMainCommon()
> > > which was called by PostgresMainSingle(), PostgresMain(). *Common only
> > > started with the MessageContext allocation, which did have the advantage of
> > > splitting out a few of the remaining conditional actions in PostgresMain()
> > > (PostmasterContext, welcome banner, Log_disconnections). But lead to a bit
> > > more duplication. I don't really have an opinion on what's better.
> >
> > I'm not sure how it looked like, but isn't it reasonable that quickdie
> > and log_disconnections(). handle IsUnderPostmaster instead? Or for
> > log_disconnections, Log_disconnections should be turned off at
> > standalone-initialization?
>
> I was wondering about log_disconnections too. The conditional addition of the
> callback is all that forces log_disconnections to be PGC_SU_BACKEND rather
> than PGC_SUSET too. So I agree that moving a check for Log_disconnections and
> IsUnderPostmaster into log_disconnections is a good idea.
I did that, and it didn't seem a clear improvement..
> > > - I had to move the PgStartTime computation to a bit earlier for single user
> > > mode. That seems to make sense to me anyway, given that postmaster does so
> > > fairly early too.
> > >
> > > Any reason that'd be a bad idea?
> > >
> > > Arguably it should even be a tad earlier to be symmetric.
> >
> > Why don't you move the code for multiuser as earlier as standalone does?
>
> I think it's the other way round - right now the standalone case is much later
> than the multiuser case. Postmaster determines PgStartTime after creating
> shared memory, just before starting checkpointer / startup process - whereas
> single user mode in HEAD does it just before accepting input for the first
> time.
Did that in the attached.
I've attached the three remaining patches, after some more polish. Unless
somebody argues against I plan to commit these soon-ish.
Greetings,
Andres Freund
Attachment | Content-Type | Size |
---|---|---|
v2-0001-process-startup-Initialize-PgStartTime-earlier-in.patch | text/x-diff | 1.5 KB |
v2-0002-process-startup-Do-InitProcess-at-the-same-time-r.patch | text/x-diff | 2.3 KB |
v2-0003-process-startup-Split-single-user-code-out-of-Pos.patch | text/x-diff | 7.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2021-09-14 03:18:21 | Re: resowner module README needs update? |
Previous Message | osumi.takamichi@fujitsu.com | 2021-09-14 03:11:02 | RE: Failed transaction statistics to measure the logical replication progress |