Re: Improve LWLock tranche name visibility across backends
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Sami Imseih <samimseih@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, 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-19T20:59:39Z
Lists: pgsql-hackers
On Tue, Aug 19, 2025 at 03:52:33PM -0500, Sami Imseih wrote: > If we limit the tranche name to NAMEDATALEN and also limit the > number of tranches an extension can register, we can put this > all in static shared memory (We would still need to have a backend local > cache to allow lookups to avoid going to shared memory). I bet we could avoid the local cache by keeping a backend-local copy of LWLockCounter that gets updated as needed. > However, I am not sure what the limit would be for the number of tranches, > and if we do impose something, will it break anything that is out there? I can think of contrived scenarios where these limits would present problems, but I'm not aware of anything that folks are actually doing that would be affected. In general, the examples I've seen involve allocating a small number of tranches for an extension, so my assumption is that the most likely cause of breakage would be someone installing many, many extensions. -- nathan
Commits
-
test_dsa: Avoid leaking LWLock tranches.
- c5c74282f2ea 19 (unreleased) landed
-
Teach DSM registry to ERROR if attaching to an uninitialized entry.
- b26d76f64327 18.2 landed
- ac2800ddc185 17.8 landed
- 1165a933aab1 19 (unreleased) landed
-
Add a test harness for the LWLock tranche code.
- 16607718c010 19 (unreleased) landed
-
Revert recent change to RequestNamedLWLockTranche().
- d814d7fc3d52 19 (unreleased) landed
-
Move dynamically-allocated LWLock tranche names to shared memory.
- 38b602b0289f 19 (unreleased) landed
-
Prepare DSM registry for upcoming changes to LWLock tranche names.
- 5487058b56e0 19 (unreleased) landed
-
Add GetNamedDSA() and GetNamedDSHash().
- fe07100e82b0 19 (unreleased) cited