Re: Keepalive for max_standby_delay

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Robert Haas <robertmhaas@gmail.com>, Simon Riggs <simon@2ndquadrant.com>, Josh Berkus <josh@agliodbs.com>, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, pgsql-hackers@postgresql.org
Date: 2010-07-03T11:59:10Z
Lists: pgsql-hackers
On 02/07/10 23:36, Tom Lane wrote:
> Robert Haas<robertmhaas@gmail.com>  writes:
>> I haven't been able to wrap my head around why the delay should be
>> LESS in the archive case than in the streaming case.  Can you attempt
>> to hit me with the clue-by-four?
>
> In the archive case, you're presumably trying to catch up, and so it
> makes sense to kill queries faster so you can catch up.  The existing
> code essentially forces instant kill when reading from archive, for any
> reasonable value of max_standby_delay (because the archived timestamps
> will probably be older than that).  That's overenthusiastic in my view,
> but you can get that behavior if you want it with this patch by setting
> max_standby_archive_delay to zero.  If you don't want it, you can use
> something larger.  If you don't think that max_standby_archive_delay
> should be less than max_standby_streaming_delay, you can set them the
> same, too.

It would seem logical to use the same logic for archive recovery as we 
do for streaming replication, and only set XLogReceiptTime when you have 
to wait for a WAL segment to arrive into the archive, ie. when 
restore_command fails.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com