Re: adding wait_start column to pg_locks - Mailing list pgsql-hackers

From Ian Lawrence Barwick
Subject Re: adding wait_start column to pg_locks
Date
Msg-id CAB8KJ=idS0m_+65d2ujjjZj5DSwpYYV3XoHMwr-UZ-OFs3Mb4Q@mail.gmail.com
Whole thread Raw
In response to Re: adding wait_start column to pg_locks  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: adding wait_start column to pg_locks  (torikoshia <torikoshia@oss.nttdata.com>)
List pgsql-hackers

2021年1月15日(金) 3:45 Robert Haas <robertmhaas@gmail.com>:
On Wed, Jan 13, 2021 at 10:40 PM Ian Lawrence Barwick <barwick@gmail.com> wrote:
> It looks like the logical place to store the value is in the PROCLOCK
> structure; ...

That seems surprising, because there's one PROCLOCK for every
combination of a process and a lock. But, a process can't be waiting
for more than one lock at the same time, because once it starts
waiting to acquire the first one, it can't do anything else, and thus
can't begin waiting for a second one. So I would have thought that
this would be recorded in the PROC.

Umm, I think we're at cross-purposes here. The suggestion is to note
the time when the process started waiting for the lock in the process's
PROCLOCK, rather than in the lock itself (which in the original version
of the patch resulted in all processes with an interest in the lock appearing
to have been waiting to acquire it since the time a lock acquisition
was most recently attempted).

As mentioned, I hadn't really ever looked at the lock code before so might
be barking up the wrong forest.
 

Regards

Ian Barwick

--

pgsql-hackers by date:

Previous
From: "tsunakawa.takay@fujitsu.com"
Date:
Subject: RE: POC: postgres_fdw insert batching
Next
From: Michael Paquier
Date:
Subject: Re: Remove PG_SHA*_DIGEST_STRING_LENGTH from sha2.h