On 2022-04-01 13:22, Robert Haas wrote:
I attach herewith a modest patch to rename these shutdown modes to
more accurately correspond to their actual characteristics.

I've waited for April 2nd to submit this comment, but it seemed to me that the suggestion about the first-pass checkpoint in 'slow' mode is a no-foolin' good one. Then I wondered whether there could be an option to accompany the 'dumb' mode that would take a WHERE clause, to be implicitly applied to pg_stat_activity, whose purpose would be to select those sessions that are ok to evict without waiting for them to exit. It could recognize, say, backend connections in no current transaction that are from your pesky app or connection pooler that holds things open. It could
also, for example, select things in transaction state but where
current_timestamp - state_change > '5 minutes' (so it would be re-evaluated every
so often until ready to shut down).

For conciseness (and sanity), maybe the WHERE clause could be implicitly applied, not to pg_stat_activity directly, but to a (virtual or actual) view that has already been restricted to client backend sessions, and already has a column
for current_timestamp - state_change.

Regards,
-Chap


Reply via email to