I wrote:
> ... I'm a bit hesitant to put a GetSnapshotData
> call into ProcessIncomingNotify, because of the possibility of adding a
> lot of contention on the ProcArray if there's very heavy notify traffic.
Wait, I have an idea. Let's fetch a snapshot at the top of
ProcessIncomingNotify, and then use the snapshot to decide whether
xids are running, instead of calling TransactionIdIsInProgress.
GetSnapshotData is probably a bit heavier than a single
TransactionIdIsInProgress call, but if we have to process multiple
messages then this should be a net savings in ProcArray traffic.
regards, tom lane