Re: How to expose session vs txn lock info in pg_locks view? - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: How to expose session vs txn lock info in pg_locks view?
Date
Msg-id CAGRY4nwgDDqRp+K2ZtzVKRA=yyTp-N4ajP68K2pX=A_KDw1zXw@mail.gmail.com
Whole thread Raw
In response to Re: How to expose session vs txn lock info in pg_locks view?  (Andres Freund <andres@anarazel.de>)
Responses Re: How to expose session vs txn lock info in pg_locks view?
List pgsql-hackers
On Sun, 24 Jan 2021 at 09:12, Andres Freund <andres@anarazel.de> wrote:
Hi,

On 2021-01-19 14:16:07 +0800, Craig Ringer wrote:
> AFAICS it'd be necessary to expand PROCLOG to expose this in shmem.
> Probably by adding a small bitfield where bit 0 is set if there's a txn
> level lock and bit 1 is set if there's a session level lock. But I'm not
> convinced that expanding PROCLOCK is justifiable for this. sizeof(PROCLOCK)
> is 64 on a typical x64 machine. Adding anything to it increases it to 72
> bytes.

Indeed - I really don't want to increase the size, it's already a
problem.


> It's frustrating to be unable to tell the difference between session-level
> and txn-level locks in diagnostic output.

It'd be useful, I agree.


> And the deadlock detector has no way to tell the difference when
> selecting a victim for a deadlock abort - it'd probably make sense to
> prefer to send a deadlock abort for txn-only lockers.

I'm doubtful this is worth going for.


> But I'm not sure I see a sensible way to add the info - PROCLOCK is
> already free of any padding, and I wouldn't want to use hacks like
> pointer-tagging.

I think there's an easy way to squeeze out space: make groupLeader be an
integer index into allProcs instead. That requires only 4 bytes...

Alternatively, I think it'd be reasonably easy to add the scope as a bit
in LOCKMASK - there's plenty space.

I was wondering about that, but concerned that there would be impacts I did not understand.

I'm happy to pursue that angle.

pgsql-hackers by date:

Previous
From: Julien Rouhaud
Date:
Subject: Re: Faulty HEAP_XMAX_LOCK_ONLY & HEAP_KEYS_UPDATED hintbit combination
Next
From: Dilip Kumar
Date:
Subject: Re: Faulty HEAP_XMAX_LOCK_ONLY & HEAP_KEYS_UPDATED hintbit combination