From: Andres Freund <andres@2ndquadrant.com>
To: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: pgsql-hackers@postgresql.org, Robert Haas <robertmhaas@gmail.com>
Subject: Re: WAL format changes
Date: Mon, 18 Jun 2012 20:45:53 +0200
Message-ID: <201206182045.53962.andres@2ndquadrant.com> (raw)
In-Reply-To: <4FDF7456.9010709@enterprisedb.com>
References: <4FDA5136.6080206@enterprisedb.com>
<201206182013.12868.andres@2ndquadrant.com>
<4FDF7456.9010709@enterprisedb.com>
On Monday, June 18, 2012 08:32:54 PM Heikki Linnakangas wrote:
> On 18.06.2012 21:13, Andres Freund wrote:
> > On Monday, June 18, 2012 08:08:14 PM Heikki Linnakangas wrote:
> >> The page header contains an XLogRecPtr (LSN), so if we change it we'll
> >> have to deal with pg_upgrade. I guess we could still keep XLogRecPtr
> >> around as the on-disk representation, and convert between the 64-bit
> >> integer and XLogRecPtr in PageGetLSN/PageSetLSN. I can try that out -
> >> many xlog calculations would admittedly be simpler if it was an uint64.
> >
> > I am out of my depth here, not having read any of the relevant code, but
> > couldn't we simply replace the lsn from disk with InvalidXLogRecPtr
> > without marking the page dirty?
> >
> > There is the valid argument that you would loose some information when
> > pages with hint bits are written out again, but on the other hand you
> > would also gain the information that it was a hint-bit write...
>
> Sorry, I don't understand that. Where would you "replace the LSN from
> disk with InvalidXLogRecPtr" ? (and no, it probably won't work ;-) )
In ReadBuffer_common or such, after reading a page from disk and verifying
that the page has a valid header it seems to be possible to replace pd_lsn *in
memory* by InvalidXLogRecPtr without marking the page dirty.
If the page isn't modified the lsn on disk won't be changed so you don't loose
debugging information in that case. If will be zero if it has been written by
a hint-bit write and thats arguable a win.
Andres
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: andres@2ndquadrant.com, heikki.linnakangas@enterprisedb.com, robertmhaas@gmail.com
Subject: Re: WAL format changes
In-Reply-To: <201206182045.53962.andres@2ndquadrant.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox