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: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>, Rahila Syed <rahilasyed90@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-08-28T16:32:35Z
Lists: pgsql-hackers
Attachments
I've spent some time getting this prepared for commit, so apologies if I am steamrolling over some of the latest discussion points. The majority of what I've changed amounts to what I'd characterize as relatively minor editorialization, but I'd imagine reasonable people could disagree. The bigger things I've changed include: * I've moved the DSM registry adjustments to be a prerequisite patch. I noticed that we can also stop tracking the tranche names there since we always use the name of the DSM registry entry. * I modified the array of tranche names to be a char ** to simplify lookups. I also changed how it is first initialized in CreateLWLocks() a bit. * I've left out the tests for now. Those are great for the development phase, but I'm not completely sold on committing them. In any case, I'd probably treat that as a follow-up effort once this stuff is committed. I think this patch set will require reworking the "GetNamedLWLockTranche crashes on Windows in normal backend" patch [0], but AFAICT we can easily adjust it to scan through NamedLWLockTrancheNames instead. Overall, I'm pretty happy about these patches. They simplify the API and the code while also fixing the problem with tranche name visibility. [0] https://postgr.es/m/CAA5RZ0v1_15QPg5Sqd2Qz5rh_qcsyCeHHmRDY89xVHcy2yt5BQ%40mail.gmail.com -- 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