Re: Serializable Isolation without blocking
Kevin Grittner <kevin.grittner@wicourts.gov>
From: "Kevin Grittner" <Kevin.Grittner@wicourts.gov>
To: "Robert Haas" <robertmhaas@gmail.com>
Cc: <nicolas.barbier@gmail.com>,<gsstark@mit.edu>, <pgsql-hackers@postgresql.org>, <laurenz.albe@wien.gv.at>
Date: 2010-01-13T21:54:41Z
Lists: pgsql-hackers
Attachments
- serializable-002.patch (text/plain) patch
Robert Haas <robertmhaas@gmail.com> wrote: > Nope, you're on target. Although - if I were you - I would post > the ACCESS EXCLUSIVE lock version of the patch for feedback. I > can't speak for anyone else, but I'll read it. Here you go! :-) This is the milestone of having full serializable behavior, albeit with horrible performance, using the simplest implementation possible. I didn't use ACCESS EXCLUSIVE locks, because on review it seemed to me that a SHARE lock would be strong enough. It compiles and passes the regression tests, and I've been testing some of the scenarios previously used to show the snapshot anomalies; I now get correct behavior through blocking. I identified the points to insert predicate locking by looking for places where ExecStoreTuple was called with a valid heap buffer; if there is anywhere that obtains tuples from the heap without going through that method, I have more work to do. If anyone knows of such locations, I'd be grateful for a "heads up". If I've done anything horribly wrong in organizing the code, that'd be nice to hear about before I go too much farther, too. I'm definitely not looking for this to be committed, but should I add it to the CF page just for a "feedback" review? (I'm OK with keeping it more ad hoc, especially if it's going to hold up the beta at all.) -Kevin