Thread: Make archiver check for SIGHUP more often?

Make archiver check for SIGHUP more often?

From
Tom Lane
Date:
There's a complaint over here
http://archives.postgresql.org/pgsql-general/2010-05/msg00365.php
about the archiver process not being very swift to adopt a new
value of archive_command.  This is because it only reacts to SIGHUP
once per outer loop, ie, only after completing an archiving cycle.
This is unhelpful in the example case, since the point of changing
the command is to get it to finish archiving faster.

How do people feel about adding
    /* Check for config update */    if (got_SIGHUP)    {        got_SIGHUP = false;
ProcessConfigFile(PGC_SIGHUP);   }
 

to the inner loop in pgarch_ArchiverCopyLoop?  This would allow
a new archive_command value to be adopted immediately for the next
copy attempt.  (Hm, I guess we'd need to recheck XLogArchiveCommandSet
as well...)

The only objection I can see to this is that someone might have an
archive command that depends on the identical command being issued
for all files copied in a given archiving cycle.  However, it's tough
to see how such a dependency could arise, considering that the archive
command isn't told about the start or finish of an archiving cycle.
        regards, tom lane


Re: Make archiver check for SIGHUP more often?

From
Fujii Masao
Date:
On Tue, May 11, 2010 at 10:13 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> There's a complaint over here
> http://archives.postgresql.org/pgsql-general/2010-05/msg00365.php
> about the archiver process not being very swift to adopt a new
> value of archive_command.  This is because it only reacts to SIGHUP
> once per outer loop, ie, only after completing an archiving cycle.
> This is unhelpful in the example case, since the point of changing
> the command is to get it to finish archiving faster.
>
> How do people feel about adding
>
>                /* Check for config update */
>                if (got_SIGHUP)
>                {
>                        got_SIGHUP = false;
>                        ProcessConfigFile(PGC_SIGHUP);
>                }
>
> to the inner loop in pgarch_ArchiverCopyLoop?  This would allow
> a new archive_command value to be adopted immediately for the next
> copy attempt.  (Hm, I guess we'd need to recheck XLogArchiveCommandSet
> as well...)

Yeah, go for it.

Regards,

--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center