Matthew Wakeling <matthew(at)flymine(dot)org> writes:
> As for ProcArrayLock, it sounds like it is very much a special case.
Quite. Read the section "Interlocking Transaction Begin, Transaction
End, and Snapshots" in src/backend/access/transam/README before
proposing any changes in this area --- it's a lot more delicate than
one might think. We'd have partitioned the ProcArray long ago if
it wouldn't have broken the transaction system.
regards, tom lane