Re: Why copy_relation_data only use wal whenWALarchivingis enabled - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: Why copy_relation_data only use wal whenWALarchivingis enabled
Date
Msg-id 47163A20.6060108@enterprisedb.com
Whole thread Raw
In response to Re: Why copy_relation_data only use wal whenWALarchiving is enabled  (Simon Riggs <simon@2ndquadrant.com>)
Responses Re: Why copy_relation_data only use wal whenWALarchivingis enabled
Re: Why copy_relation_data only use wal whenWALarchivingis enabled
List pgsql-hackers
Simon Riggs wrote:
> On Wed, 2007-10-17 at 15:02 +0100, Heikki Linnakangas wrote:
>> Simon Riggs wrote:
>>> If you've got a better problem statement it would be good to get that
>>> right first before we discuss solutions.
>> Reusing a relfilenode of a deleted relation, before next checkpoint
>> following the commit of the deleting transaction, for an operation that
>> doesn't WAL log the contents of the new relation, leads to data loss on
>> recovery.
> 
> OK, thanks. 
> 
> I wasn't aware we reused refilenode ids. The code in GetNewOid() doesn't
> look deterministic to me, or at least isn't meant to be.
> GetNewObjectId() should be cycling around, so although the oid index
> scan using SnapshotDirty won't see committed deleted rows that shouldn't
> matter for 2^32 oids. So what gives?

I don't think you still quite understand what's happening. GetNewOid()
is not interesting here, look at GetNewRelFileNode() instead. And
neither are snapshots or MVCC visibility rules.

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


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Why copy_relation_data only use wal whenWALarchiving is enabled
Next
From: Magnus Hagander
Date:
Subject: Re: rolcanlogin vs. the flat password file