On Thu, Apr 28, 2005 at 06:47:18PM -0300, Tom Lane wrote: > Implement sharable row-level locks, and use them for foreign key references > to eliminate unnecessary deadlocks. This commit adds SELECT ... FOR SHARE > paralleling SELECT ... FOR UPDATE. The implementation uses a new SLRU > data structure (managed much like pg_subtrans) to represent multiple- > transaction-ID sets.
One point I didn't quite understand was the business about XLogging heap_lock_tuple. I had to reread your mail to -hackers on this issue several times to get it (as you can see I don't fully grok the WAL rules). Now, I believe that heap_mark4update was wrong on this, no? Only it didn't matter because after a crash nobody cared about the stored Xmax. One nice side effect of this is that the 2PC patch now has this problem solved. The bad part is that locking a tuple emits an (non-XLogFlushed) WAL record and it may have a performance impact. (We should have better performance overall I think, because transactions are no longer locked on foreign key checking.) Anyway: many thanks for updating the patch to an usable state. I'm sorry to have inflicted all those bugs upon you. -- Alvaro Herrera (<[EMAIL PROTECTED]>) "La soledad es compañía" ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly