| From: | Fred Habash <fmhabash(at)gmail(dot)com> |
|---|---|
| To: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Timing out A Blocker Based on Time or Count of Waiters |
| Date: | 2024-03-22 16:25:16 |
| Message-ID: | CADpeV5yrSVGjKoK_cLwyf3KaQXkbTan8MjtmaZgACrbmWmc8Pg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Facing an issue where sometimes humans login to a database and run DDL
statements causing a long locking tree of over 1000 waiters. As a
workaround, we asked developers to always start their DDL sessions
with 'SET lock_timeout = 'Xs'.
I reviewed the native lock timeout parameter in Postgres and found 7. None
seem to be related to blocker timeouts directly.
idle_in_transaction_session_timeout
idle_session_timeout
lock_timeout: How long a session waits for a lock
statement_timeout
authentication_timeout
deadlock_timeout
log_lock_waits
Instead, I put together a quick procedure that counts waiter sessions for a
given blocker and terminates it if waiter count exceeds a threshold.
Is there not a native way to ...
1. Automatically time out a blocker
2. A metric that shows how many waiters for a blocker?
Thanks
--
----------------------------------------
Thank you
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adrian Klaver | 2024-03-22 16:31:58 | Re: Timing out A Blocker Based on Time or Count of Waiters |
| Previous Message | Thiemo Kellner | 2024-03-22 16:17:10 | Re: PostgreSQL as advanced job queuing system |