Skip site navigation (1) Skip section navigation (2)

Re: Streaming replication and pg_xlogfile_name()

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: Erik Rijkers <er(at)xs4all(dot)nl>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Streaming replication and pg_xlogfile_name()
Date: 2010-03-02 13:52:16
Message-ID: (view raw or whole thread)
Lists: pgsql-hackers
On Tue, Mar 2, 2010 at 8:54 PM, Heikki Linnakangas
<heikki(dot)linnakangas(at)enterprisedb(dot)com> wrote:
> This still suffers from ambiguity around a shutdown checkpoint that
> changes the TLI. On the page the shutdown checkpoint is on, what is the
> TLI in the page header? The TLI before the checkpoint record, I presume.
> Now consider a record on the same page after the checkpoint record. It's
> on the new timeline, but pg_last_xlog_replay_location() will return the
> old TLI, because that's on the page header.

Oh, I see. You are right.

> It's not clear what it should return, a TLI corresponding the filename
> of the WAL segment the record was replayed from, so that you can use
> pg_xlogfile_name() to find out the filename of the WAL segment being
> replayed, or the accurate TLI of the record being replayed. I'm leaning
> towards the latter, it feels more correct and accurate, but you could
> argue for the former too. In any case, it needs to be well-defined.

I agree with you that the latter is more correct and accurate. The simple
fix is updating the lastPageTLI with the CheckPoint->ThisTimeLineID when
replaying the shutdown checkpoint record. Though we might need to use new
variable to keep the last applied timeline instead of the lastPageTLI.


Fujii Masao
NTT Open Source Software Center

In response to


pgsql-hackers by date

Next:From: Theo SchlossnagleDate: 2010-03-02 14:37:12
Subject: Re: double and numeric conversion
Previous:From: Greg SmithDate: 2010-03-02 13:36:56
Subject: Re: building postgres-A4.tex-pdf crushed

Privacy Policy | About PostgreSQL
Copyright © 1996-2015 The PostgreSQL Global Development Group