Re: Pg isolation levels: 3 or 2?

From: Peter Geoghegan <peter(at)2ndquadrant(dot)com>
To: Thalis Kalfigkopoulos <tkalfigo(at)gmail(dot)com>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Pg isolation levels: 3 or 2?
Date: 2012-11-03 23:55:21
Message-ID: CAEYLb_V+cbMe8oLsZv8SoHCoO9urpatkubxaHTYcJnaHqV1bGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 3 November 2012 23:10, Thalis Kalfigkopoulos <tkalfigo(at)gmail(dot)com> wrote:
> How is that three levels and not two? Read Uncommitted and Read Commited are
> the same. And Repeatable Reads don't allow phantom reads thus making them
> effectively the same as Serializable. No?

They're only equivalent to the extent that the SQL standard describes
the isolation levels (in terms of various anomalies that can or cannot
occur, including phantom reads). However, the SQL standard has nothing
to say about write-skew anomalies, which can introduce errors that are
not possible with actually serially executing transactions. The SQL
standard and every implementation other than Postgres don't completely
"plug the leaks" in the illusion of serial behaviour with snapshot
isolation/Postgres repeatable reads. The Wikipedia article on Snapshot
Isolation [1] may be informative here.

[1] http://en.wikipedia.org/wiki/Snapshot_isolation

--
Peter Geoghegan http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Xiong He 2012-11-04 00:43:39 Re: Server to run Postgresql
Previous Message Gavin Flower 2012-11-03 23:33:54 Re: Server to run Postgresql