Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> Hmm, I think it would be simpler to decide that instead of
> SerializableXactHashLock, you must hold ProcArrayLock to access
> LastSxactCommitSeqNo, and move the assignment of commitSeqNo to
> ProcArrayTransaction(). It's probably easiest to move
> LastSxactCommitSeqno to ShmemVariableCache too. There's a few places
> that would then need to acquire ProcArrayLock to read
> LastSxactCommitSeqno, but I feel it might still be much simpler that way.
Yeah ... this patch creats the need to hold both
SerializableXactHashLock and ProcArrayLock during transaction commit,
which is a bit scary from a deadlock-risk perspective, and not pleasant
from the concurrency standpoint either. It'd be better to push some
functionality into the procarray code.
regards, tom lane