Re: How is statement level read consistency implemented?
От | Thomas Kellerer |
---|---|
Тема | Re: How is statement level read consistency implemented? |
Дата | |
Msg-id | fukh46$j73$1@ger.gmane.org обсуждение исходный текст |
Ответ на | Re: How is statement level read consistency implemented? ("Pavan Deolasee" <pavan.deolasee@gmail.com>) |
Ответы |
Re: How is statement level read consistency implemented?
|
Список | pgsql-general |
Pavan Deolasee, 22.04.2008 12:57: > On Tue, Apr 22, 2008 at 4:11 PM, Thomas Kellerer <spam_eater@gmx.net> wrote: >> >> I am interested in the technical details on how PG determines that a block >> needs to be read from from "some other place than the data block" because >> another transaction has updated the data block. >> > Postgres uses MVCC for transaction consistency. When a row is updated, > a new copy of the row is created and the old version is marked for > deletion (though its not removed immediately). The old readers > continue to read from the old copy whereas new transactions see the > new copy. This is all managed by XMIN and XMAX which are transaction > ids of the inserting and deleting transactions respectively and > control the visibility of the different versions. > > If you want to understand MVCC, please see this excellent > documentation by Tom Lane: > http://www.postgresql.org/files/developer/transactions.pdf The xmin, xmax info is basically what I was looking for. 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. Thanks for the quick answer. Thomas
В списке pgsql-general по дате отправления: