Re: Row-level Locks & SERIALIZABLE transactions, postgres vs. Oracle

Florian Pflug <fgp@phlo.org>

From: Florian Pflug <fgp@phlo.org>
To: "Kevin Grittner" <Kevin.Grittner@wicourts.gov>
Cc: "pgsql-hackers" <pgsql-hackers@postgresql.org>
Date: 2010-05-13T23:02:48Z
Lists: pgsql-hackers
On May 13, 2010, at 23:51 , Kevin Grittner wrote:

> Florian Pflug <fgp@phlo.org> wrote:
> 
>> All in all, I believe that SHARE and UPDATE row-level locks should
>> be changed to cause concurrent UPDATEs to fail with a
>> serialization error. I can come up with a patch that does that,
>> but I wanted to get some feedback on the idea before I put the
>> work in.
> 
> Before you work on that, you might want to wait until you can review
> the work that I and Dan Ports (a Ph.D. candidate from MIT) have been
> doing on support for true serializable transactions.  You don't need
> to use FOR SHARE or FOR UPDATE or any explicit locks as long as the
> concurrent transactions are SERIALIZABLE.  We have it working, but
> have been holding off on discussion or patch submission at Tom's
> request -- he felt it would distract from the process of getting the
> release out.

I'm very exited about the work you're doing there, and believe it'd be a great feature to have.

However, I view my proposal as pretty orthogonal to that work. True serializable transaction are much more powerful than what I proposed, but at a much higher price too, due to the necessity of SIREAD locks. My proposal allows for simple FK-like constraints to be implemented at user-level that are correct for all isolation levels.

best regards,
Florian Pflug