Re: Auxiliary Processes and MyAuxProc

From: Mike Palmiotto <mike(dot)palmiotto(at)crunchydata(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Yuli Khodorkovskiy <yuli(dot)khodorkovskiy(at)crunchydata(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Auxiliary Processes and MyAuxProc
Date: 2020-03-17 18:50:19
Message-ID: CAMN686HgTVRJBAw6hqFE4Lj8bgPLQqfp1c-+WBGUtEmg6wPVhg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Mar 3, 2020 at 11:56 PM Mike Palmiotto
<mike(dot)palmiotto(at)crunchydata(dot)com> wrote:
>
> On Mon, Mar 2, 2020 at 9:53 AM Mike Palmiotto
> <mike(dot)palmiotto(at)crunchydata(dot)com> wrote:
> >
> > On Sat, Feb 29, 2020 at 9:51 PM Mike Palmiotto
> > <mike(dot)palmiotto(at)crunchydata(dot)com> wrote:
> > >
> <snip>
> > Okay, here is an updated and rebased patch that passes all regression
> > tests with and without EXEC_BACKEND. This also treats more of the
> > issues raised by Andres.
> >
> > I still need to do the following:
> > - split giant patch out into separate functional commits
> > - add translated process descriptions
> > - fix some variable names here and there (notably the PgSubprocess
> > struct ".progname" member -- that's a misnomer.
> > - address some valgrind findings
> >
> > I should be able to split this out into smaller commits sometime today
> > and will continue iterating to scratch the other items off the list.
>
> I've addressed all of the points above (except splitting the base
> patch up) and rebased on master. I didn't squash before generating the
> patches so it may be easier to read the progress here, or annoying
> that there are so many attachments.
>
> This patchset hits all of Andres' points with the exception of the
> reshuffling of functions like AuxiliaryProcessMain, but it does get
> rid of a lot of direct argv string comparison. I'll reorganize a bit
> when I re-write the patchset and will likely move
> AuxiliaryProcessMain, along with the Backend subprocess functions but
> just wanted to get this up here in the meantime.
>
> There is quite a lot to be gained from this patchset in the form of
> re-organization and removal of redundant code-paths/globals. I see
> this as a good first step and am willing to continue to push it
> forward with any new suggestions.

The patchset is now split out. I've just noticed that Peter Eisentraut
included some changes for a generic MyBackendType, which I should have
been aware of. I was unable to rebase due to these changes, but can
fold these patches into that framework if others think it's
worthwhile.

The resulting diffstat is as follows:

% git diff 24d85952a57b16090ca8ad9cf800fbdd9ddd104f --shortstat
29 files changed, 1029 insertions(+), 1201 deletions(-)

--
Mike Palmiotto
https://crunchydata.com

Attachment Content-Type Size
0001-Add-subprocess-infrastructure.patch text/x-patch 14.6 KB
0002-Use-centralized-StartSubprocess-for-aux-procs.patch text/x-patch 14.9 KB
0003-Add-AutoVacLauncherType-to-subprocess-struct.patch text/x-patch 7.6 KB
0004-Add-AutoVacuumWorkerType-to-subprocess-struct.patch text/x-patch 6.5 KB
0005-Add-PgstatCollectorType-to-subprocess-struct.patch text/x-patch 11.6 KB
0006-Add-PgArchiverType-to-subprocess-struct.patch text/x-patch 7.6 KB
0007-Add-SysLoggerType-to-subprocess-struct.patch text/x-patch 17.0 KB
0008-Add-BgWorkerType-to-subprocess-struct.patch text/x-patch 25.6 KB
0009-Add-Backends-to-subprocess-struct.patch text/x-patch 16.0 KB
0010-Add-WalSenderType-to-subprocess-struct.patch text/x-patch 1.4 KB
0011-Get-rid-of-st_beckendType-and-use-MySubprocess.patch text/x-patch 6.6 KB
0012-Move-away-from-argv-string-comparison.patch text/x-patch 1.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Mike Palmiotto 2020-03-17 19:03:22 Re: backend type in log_line_prefix?
Previous Message Andres Freund 2020-03-17 18:49:41 Re: Adding missing object access hook invocations