Re: How is statement level read consistency implemented? - Mailing list pgsql-general

From Thomas Kellerer
Subject Re: How is statement level read consistency implemented?
Date
Msg-id fukh46$j73$1@ger.gmane.org
Whole thread Raw
In response to Re: How is statement level read consistency implemented?  ("Pavan Deolasee" <pavan.deolasee@gmail.com>)
Responses Re: How is statement level read consistency implemented?  ("Roberts, Jon" <Jon.Roberts@asurion.com>)
List 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 by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: How is statement level read consistency implemented?
Next
From: "Kerri Reno"
Date:
Subject: Re: Schema migration tools?