Re: adding wait_start column to pg_locks
torikoshia <torikoshia@oss.nttdata.com>
From: torikoshia <torikoshia@oss.nttdata.com>
To: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: Ian Lawrence Barwick <barwick@gmail.com>, Robert Haas
<robertmhaas@gmail.com>, Justin Pryzby <pryzby@telsasoft.com>, pgsql-hackers
<pgsql-hackers@postgresql.org>
Date: 2021-01-22T05:37:50Z
Lists: pgsql-hackers
Attachments
- v5-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch (text/x-diff) patch v5-0001
On 2021-01-21 12:48, Fujii Masao wrote: > Thanks for updating the patch! I think that this is really useful > feature!! Thanks for reviewing! > I have two minor comments. > > + <entry role="catalog_table_entry"><para > role="column_definition"> > + <structfield>wait_start</structfield> <type>timestamptz</type> > > The column name "wait_start" should be "waitstart" for the sake of > consistency > with other column names in pg_locks? pg_locks seems to avoid including > an underscore in column names, so "locktype" is used instead of > "lock_type", > "virtualtransaction" is used instead of "virtual_transaction", etc. > > + Lock acquisition wait start time. <literal>NULL</literal> if > + lock acquired. > Agreed. I also changed the variable name "wait_start" in struct PGPROC and LockInstanceData to "waitStart" for the same reason. > There seems the case where the wait start time is NULL even when > "grant" > is false. It's better to add note about that case into the docs? For > example, > I found that the wait start time is NULL while the startup process is > waiting > for the lock. Is this only that case? Thanks, this is because I set 'waitstart' in the following condition. ---src/backend/storage/lmgr/proc.c > 1250 if (!InHotStandby) As far as considering this, I guess startup process would be the only case. I also think that in case of startup process, it seems possible to set 'waitstart' in ResolveRecoveryConflictWithLock(), so I did it in the attached patch. Any thoughts? Regards, -- Atsushi Torikoshi
Commits
-
Initialize atomic variable waitStart in PGPROC, at postmaster startup.
- f05ed5a5cfa5 14.0 landed
-
Display the time when the process started waiting for the lock, in pg_locks, take 2
- 46d6e5f56790 14.0 landed
-
Display the time when the process started waiting for the lock, in pg_locks.
- 3b733fcd0419 14.0 landed