
> >> Ideally the archiving
> >> process would also discard records from aborted transactions, but I'm
> >> not sure how hard that'd be to do.
> 
> > Unless we have UNDO we also need to roll forward the physical changes of 
> > aborted transactions, or later redo records will "sit on a 
> wrong physical image".
> 
> Wouldn't it be the same as the case where we *do* have UNDO?  How is a
> removed tuple different from a tuple that was never there?

HiHi, the problem is a subtile one. What if a previously aborted txn 
produced a btree page split, that would otherwise not have happened ?
Another issue is "physical log" if first modification after checkpoint
was from an aborted txn. Now because you need to write that physical log
page you will also need to write the abort to pg_log ...

I guess you can however discard heap tuple *column values* from aborted 
txns, but I am not sure that is worth it.

Andreas

Fri, 6 Jul 2001 16:00:34 +0200 
Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at>
AW: AW: Re: Backup and Recovery 
Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at> writes:
>> Wouldn't it be the same as the case where we *do* have UNDO?  How is a
>> removed tuple different from a tuple that was never there?

> HiHi, the problem is a subtile one. What if a previously aborted txn 
> produced a btree page split, that would otherwise not have happened ?

Good point.  We'd have to recognize btree splits (and possibly some
other operations) as things that must be done anyway, even if their
originating transaction is aborted.

There already is a mechanism for doing that: xlog entries can be written
without any transaction identifier (see XLOG_NO_TRAN).  Seems to me that
btree split XLOG records should be getting written that way now --- Vadim,
don't you agree?

			regards, tom lane

Fri, 06 Jul 2001 10:20:48 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: AW: AW: Re: Backup and Recovery 