I've been thinking about these points, and reconsidered somewhat. Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> wrote: > Should add a citation to Cahill's work this is based on. > Preferably with a hyperlink. I've been thinking that this should be mentioned in both the README and the source code. > A short description of how the predicate locks help to implement > serializable mode would be nice too. I haven't read Cahill's > papers, and I'm left wondering what the RW conflicts and > dependencies are, when you're supposed to grab predicate locks > etc. Again -- why be stingy? Given a more complete README file, how about something like?: /* * A rw-conflict occurs when a read by one serializable transaction * does not see the write of a concurrent serializable transaction * when that write would have been visible had the writing * transaction committed before the start of the reading * transaction. When the write occurs first, the read can detect * this conflict by examining the MVCC information. When the read * occurs first, it must record this somewhere so that writes can * check for a conflict. Predicate locks are used for this. * Detection of such a conflict does not cause blocking, and does * not, in itself, cause a transaction rollback. * * Transaction rollback is required when one transaction (called a * "pivot") has a rw-conflict *in* (a concurrent transaction * couldn't see its write) as well as *out* (it couldn't see the * write of another transaction). In addition, the transaction on * the "out" side of the pivot must commit first, and if the * transaction on the "in" side of the pivot is read-only, it must * acquire its snapshot after the successful commit of the * transaction on the "out" side of the pivot. */ Would something like that have helped? -Kevin
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers