[PATCH] Function to get size of asynchronous notification queue - Mailing list pgsql-hackers

From Brendan Jurd
Subject [PATCH] Function to get size of asynchronous notification queue
Date
Msg-id CADxJZo2bQ_6JAR09Cjh3gx4RuUxO3Yw08doM73Q0-zzXfwktZg@mail.gmail.com
Whole thread Raw
In response to Re: Function to get size of notification queue?  (kjsteuer <kjsteuer@gmail.com>)
Responses Re: [PATCH] Function to get size of asynchronous notification queue  (Gurjeet Singh <gurjeet@singh.im>)
Re: [PATCH] Function to get size of asynchronous notification queue  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-hackers
Hello hackers,

I present a patch to add a new built-in function pg_notify_queue_saturation().

The purpose of the function is to allow users to monitor the health of their notification queue.  In certain cases, a client connection listening for notifications might get stuck inside a transaction, and this would cause the queue to keep filling up, until finally it reaches capacity and further attempts to NOTIFY error out.

The current documentation under LISTEN explains this possible gotcha, but doesn't really suggest a useful way to address it, except to mention that warnings will show up in the log once you get to 50% saturation of the queue.  Unless you happen to be eyeballing the logs when it happens, that's not a huge help.  The choice of 50% as a threshold is also very much arbitrary, and by the time you hit 50% the problem has likely been going on for quite a while.  If you want your nagios (or whatever) to say, alert you when the queue goes over 5% or 1%, your options are limited and awkward.

The patch has almost no new code.  It makes use of the existing logic for the 50% warning.  I simply refactored that logic into a separate function asyncQueueSaturation, and then added pg_notify_queue_saturation to make that available in SQL.

I am not convinced that pg_notify_queue_saturation is the best possible name for this function, and am very much open to other suggestions.

The patch includes documentation, a regression test and an isolation test.

Cheers,
BJ
Attachment

pgsql-hackers by date:

Previous
From: Vladimir Borodin
Date:
Subject: Re: pg_rewind and xlogtemp files
Next
From: Fujii Masao
Date:
Subject: Re: pg_rewind and xlogtemp files