On Tue, 2007-09-11 at 10:21 -0400, Tom Lane wrote: > Simon Riggs <[EMAIL PROTECTED]> writes: > > 1. The ProcArrayLock is acquired Exclusive-ly by only one remaining > > operation: XidCacheRemoveRunningXids(). Reducing things to that level is > > brilliant work, Florian and Tom. > > It would be brilliant if it were true, but it isn't. Better look again.
On the more detailed explanation, I say "in normal operation". My analytical notes attached to the original post show ProcArrayLock is acquired exclusively during backend start, exit and while making a prepared (twophase) commit. So yes, it is locked Exclusively in other places, but they happen rarely and they actually add/remove procs from the array, so its unlikely anything can change there anyhow. -- Simon Riggs 2ndQuadrant http://www.2ndQuadrant.com ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend