Discussion:
UNDO
(too old to reply)
Carlos Benkendorf
2004-06-21 16:09:24 UTC
Permalink
Hi,

In 7.4 manual is written than UNDO is not implemented.

What it really means?

When should PostgreSQL do an UNDO? Are not all data
only written to disk when it is committed? Why should
Postgresql do an undo?

Thanks in advance!


______________________________________________________________________

Yahoo! Mail - agora com 100MB de espaço, anti-spam e antivírus grátis!
http://br.info.mail.yahoo.com/

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ***@postgresql.org)
Tom Lane
2004-06-22 01:05:29 UTC
Permalink
Post by Carlos Benkendorf
In 7.4 manual is written than UNDO is not implemented.
What it really means?
Not much. It's unlikely that we ever will implement UNDO in the sense
that passage is talking about --- which is to say, reversing out the
effects of a failed transaction by scanning the WAL log backwards.
Pretty much all the current pghackers agree that MVCC is a better
approach.

MVCC means that you have to do periodic VACUUMs to get rid of cruft
from failed transactions, so it's not like it's a zero-cost substitute
for UNDO. But the nice thing about it is that the overhead
is paid in a background maintenance task, rather than being something
that has to happen in a foreground server task whenever a transaction
fails. Cleaning up via UNDO means that live clients are waiting for
you to do the cleanup.

There used to be a contingent that thought we should switch to using
UNDO because Oracle does it that way and Oracle must be right. But
we've gained more self-confidence since, I think.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Loading...