Make archiver check for SIGHUP more often?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Make archiver check for SIGHUP more often?
Date: 2010-05-11 01:13:18
Message-ID: 21967.1273540398@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message bricklen 2010-05-11 01:44:09 Re: Archiver not picking up changes to archive_command
Previous Message Greg Smith 2010-05-11 01:12:00 Re: Archiver not picking up changes to archive_command