pg.ddx.io  pgsql-general@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Adrian Klaver <adrian.klaver@aklaver.com>
To: Fred Habash <fmhabash@gmail.com>
To: pgsql-general@lists.postgresql.org
Subject: Re: Timing out A Blocker Based on Time or Count of Waiters
Date: Fri, 22 Mar 2024 09:31:58 -0700
Message-ID: <4d234943-b4bf-4e59-aa89-e5d69e18a228@aklaver.com> (raw)
In-Reply-To: <CADpeV5yrSVGjKoK_cLwyf3KaQXkbTan8MjtmaZgACrbmWmc8Pg@mail.gmail.com>
References: <CADpeV5yrSVGjKoK_cLwyf3KaQXkbTan8MjtmaZgACrbmWmc8Pg@mail.gmail.com>

On 3/22/24 09:25, Fred Habash wrote:
> 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 

The above needs more explanation:

1) Define locking tree.

2) Define waiters.

3) Provide examples of the DDL.


> 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
> 
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com






view thread (6+ messages)  latest in thread

Message-ID: <4d234943-b4bf-4e59-aa89-e5d69e18a228@aklaver.com>
Permalink:  ../4d234943-b4bf-4e59-aa89-e5d69e18a228@aklaver.com/
Also on:    postgresql.org/message-id/4d234943-b4bf-4e59-aa89-e5d69e18a228@aklaver.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-general@postgresql.org
  Cc: adrian.klaver@aklaver.com, fmhabash@gmail.com, pgsql-general@lists.postgresql.org
  Subject: Re: Timing out A Blocker Based on Time or Count of Waiters
  In-Reply-To: <4d234943-b4bf-4e59-aa89-e5d69e18a228@aklaver.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox