Re: BUG #14830: Missed NOTIFications, PostgreSQL 9.1.24

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Marko Tiikkaja <marko@joh.to>, Michael Paquier <michael.paquier@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@postgresql.org>
Date: 2017-10-10T14:54:26Z
Lists: pgsql-bugs
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


Commits

  1. Fix low-probability loss of NOTIFY messages due to XID wraparound.