Re: Improve LWLock tranche name visibility across backends

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Sami Imseih <samimseih@gmail.com>, Andres Freund <andres@anarazel.de>, Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, Rahila Syed <rahilasyed90@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-08-25T20:33:08Z
Lists: pgsql-hackers
On Fri, Aug 22, 2025 at 05:33:55PM -0400, Tom Lane wrote:
> Sami Imseih <samimseih@gmail.com> writes:
>> One point I did not make earlier is that the tranche name lengths will
>> need to be as long as we allow in dsm_registry.c.
> 
>> #define DSMR_NAME_LEN 128
> 
> Huh.  Why is that different from NAMEDATALEN in the first place?

One of the reviewers of commit fe07100 requested it [0].  At the time,
there was no reason to use NAMEDATALEN.  I'm fine with lowering it if
needed for the shared tranche name work.

Presently, we also append a " DSA" suffix to the DSA tranche name in
GetNamedDSHash().  I was originally trying to use separate tranches for the
DSA and the dshash table for observability purposes, but since it seems to
be more trouble than it's worth, perhaps we should only allocate one
tranche.

[0] https://postgr.es/m/58DB9EB7-4646-4508-84BA-F0F067A7E8BA%40gmail.com

-- 
nathan



Commits

  1. test_dsa: Avoid leaking LWLock tranches.

  2. Teach DSM registry to ERROR if attaching to an uninitialized entry.

  3. Add a test harness for the LWLock tranche code.

  4. Revert recent change to RequestNamedLWLockTranche().

  5. Move dynamically-allocated LWLock tranche names to shared memory.

  6. Prepare DSM registry for upcoming changes to LWLock tranche names.

  7. Add GetNamedDSA() and GetNamedDSHash().