> > Unfortunately, session 3 with just SELECT * FROM foo will also wait > > for session 1 & session 2 commit. > > Session 3 would wait for session 2 in any case, no? But now it will wait longer - for the duration of session 1' transaction. > This is all irrelevant unless someone can make a convincing case that > it's safe to release read locks early. In the words of the ancient > sage, "I can make this program arbitrarily fast ... if it doesn't have > to give the right answer". I have already pointed out several cases > where releasing locks early is clearly *not* safe. I don't think I > need to produce more examples. The burden of proof is on the other > side to show how it can be done safely (and with an amount of work > that's reasonable for 7.1, which is not too darn much at this point). Agreed - no other way now. Vadim