From: | matteo durighetto <desmodemone(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | mvcc & DML on the same row |
Date: | 2010-12-15 19:50:43 |
Message-ID: | AANLkTikU9GVTAK9weE_XW4V_OFjFfg4t3uHpE8sa-i68@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
I have an idea about mvcc and different DML of the same row in the
same transaction.
Normally when a backend do an unpdate on a row ( call it X ) , we done
an insert and logical delete on this row (0,1,2..N are the "version
of the row) :
X0 (delete "old" row)
X1 (insert "new" row)
if we continue the transaction and we do for example another update
on this row (X) , we again redo the same operation:
X0 (deleted "old" row)
X1 (row inserted, NOW deleted) => not needed for rollback
X2 (insert "new" row )
But why we need all these versions of the same row on table, if for
rollback we need only the original row X (X0) ?
So I think we need it in memory, not on physical space of table (ok
there is the cache, but ..) or something similar, or this method is
for transaction with isolation level at "read uncommited"?
Kind Regards
Matteo Durighetto
-----------------------
desmodemone(at)gmail(dot)com
m(dot)durighetto(at)miriade(dot)it
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2010-12-15 19:51:04 | Re: Segfault related to pg_authid when running initdb from git master |
Previous Message | Robert Haas | 2010-12-15 19:43:24 | Re: Segfault related to pg_authid when running initdb from git master |