Roberts, Jon, 22.04.2008 14:56:
As far as I can tell (from the PDF and your quote) Postgres uses a
very
similar concept as Oracle. .
Each transaction has a uniqe number and each tuple contains the
information for which transaction number it is visible.

Oracle moves the old row(s) to the rollback segment instead of putting a
new row in the table as PostgreSQL does.  The new value goes right in
place of the old row and it adds a pointer to the rollback segment.

A commit removes the pointer and a rollback forces the db to move the
old row from the rollback segment back in place of the row updated.
Oracle's rollback segment can be tuned so that retains data up to a
certain age and then it is flushed.  If rollback is too small, you can
get a "snapshot too old" error.

Thanks, this was exactly the answer I was looking for!


Cheers
Thomas


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to