Re: understanding minimum recovery ending location

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Robert Treat <rob(at)xzilla(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: understanding minimum recovery ending location
Date: 2010-12-29 22:52:39
Message-ID: 4D1BBBB7.9080107@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 30.12.2010 00:19, Robert Treat wrote:
> Howdy,
>
> I am hoping someone can help me better understand what the "minimum recovery
> ending location" of pg_controldata represents with regards to 9.0 hot
> standbys. When I look at any of our 8.4 (or lower) installs this number is
> almost always somewhere in the past of the xlog timeline (presuming the
> server has been up for any length of time), which makes sense because we've
> done enough replay that we're covered for consistent slave recovery
> purposes. However, on the hot standby machines the number seems to normally
> be at some point in the future. Below is the relevant bits of pg_controldata
> output from a hot standby I was looking at earlier today:
>
> Database cluster state: in archive recovery
> pg_control last modified: Wed 29 Dec 2010 04:54:34 PM GMT
> Latest checkpoint location: 56/21020CA8
> Prior checkpoint location: 56/1E36D780
> Latest checkpoint's REDO location: 56/1F599068
> Time of latest checkpoint: Wed 29 Dec 2010 04:46:09 PM GMT
> Minimum recovery ending location: 56/24B88500
> Backup start location: 0/0
> Current wal_level setting: hot_standby
>
> As you can see, the minimum recovery ending location is clearly ahead of the
> most recent checkpoint activity.

Minimum recovery ending location means: how far does the (standby)
server need to replay WAL before it's safe to start it up. It is
continuously updated as the recovery progresses, as data pages are
flushed to disk. The reason is that if you kill the server during
recovery, you have to recover up to the same point again, or the
database wouldn't be consistent. Specifically, the WAL records for any
data page changes that were already flushed to disk from the buffer
cache before killing recovery must be re-replayed.

So in practice the minimum recovery ending location follows somewhat
behind the last replayed WAL record.

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Treat 2010-12-29 23:45:49 Re: Anyone for SSDs?
Previous Message Robert Treat 2010-12-29 22:19:18 understanding minimum recovery ending location