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