From: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
---|---|
To: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, jd(at)commandprompt(dot)com, Gregory Stark <stark(at)enterprisedb(dot)com>, Mark Kirkwood <markir(at)paradise(dot)net(dot)nz>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Hot Standby (v9d) |
Date: | 2009-01-28 20:47:25 |
Message-ID: | 4980C45D.3070009@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Simon Riggs wrote:
> The essential choice is "What would you like the max failover time to
> be?". Some users want one server with max 5 mins behind, some want two
> servers, one with 0 seconds behind, one with 12 hours behind
It's not quite that simple. Setting max_standby_delay=5mins means that
you're willing to wait 5 minutes for each query to die. Which means that
in worst case you have to stop for 5 minutes at every single vacuum
record, and fall behind much more than 5 minutes.
You could make it more like that by tracking the timestamps in commit
records, and/or having some sort of a moving average logic in the
timeout, where you allow more waiting if you haven't waited for a long
time, and kill queries more aggressively if you've had to wait a lot
recently.
It should also be noted that the control functions allow you to connect
to the database and manually pause/resume the replay. So you can for
example set max_standby_delay=0 during the day, but pause the replay
manually before starting a nightly report.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Davis | 2009-01-28 20:55:54 | Re: Hot Standby (v9d) |
Previous Message | Simon Riggs | 2009-01-28 20:39:22 | Re: Hot Standby (v9d) |