Search Postgresql Archives

Re: A simple question about Read committed isolation level

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tom Lane дµÀ:

weiping he <laser@qmail.zhengmai.net.cn> writes:


txn1: txn2:
begin; begin;
update table_a set col= col + 1; update table_a set col = col + 1;
end; end;





if two transaction begin at exact the same time,
what's the result of 'col' after both transactions committed
in Read committed level? it's 3 or 2?
My understanding is the result is 3,



If the second xact to lock the row is READ COMMITTED, you get 3.
If it's SERIALIZABLE you get an error. In no case will you silently
lose an update.


dose is mean that I must use some kind of lock ( ... FOR UPDATE for example)
to lock that row to get the result 3 in READ COMMITTED level? My understanding
is even in MVCC environment, the update action would still be executed sequencly
(by means of some kind of lock).


What confused me is: in MVCC environment, what's the procedure of postgresql to
use lock when two transaction update to the same row at the same time?


thanks you.

Laser

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux