Re: Proposal: Add a callback data parameter to GetNamedDSMSegment
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Sami Imseih <samimseih@gmail.com>
Cc: Zsolt Parragi <zsolt.parragi@percona.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-12-03T20:07:56Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow passing a pointer to GetNamedDSMSegment()'s init callback.
- 48d4a1423d2e 19 (unreleased) landed
-
Move dynamically-allocated LWLock tranche names to shared memory.
- 38b602b0289f 19 (unreleased) cited
On Wed, Dec 03, 2025 at 12:47:46PM -0600, Sami Imseih wrote: > Can you provide more details on the use-case? I think the main use-case is creating multiple DSM segments in the registry that use the same initialization callback. I ran into this when I was working on GetNamedDSA() and GetNamedDSHash(). In early versions of the patch, the new functions used GetNamedDSMSegment() to allocate the space for all the DSA/dshash information [0]. Since initializing those segments required the user-provided name string, I ended up taking a lock after calling GetNamedDSMSegment() and doing most of the initialization there. My gut feeling is that this is an obscure enough use-case that this workaround is probably sufficient, but I am interested to hear more... [0] https://postgr.es/m/attachment/177621/v8-0001-simplify-creating-hash-table-in-dsm-registry.patch -- nathan