Re: like pg_shmem_allocations, but fine-grained for DSM registry ?

Florents Tselai <florents.tselai@gmail.com>

From: Florents Tselai <florents.tselai@gmail.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-03-14T21:44:54Z
Lists: pgsql-hackers

Attachments

On Fri, Mar 14, 2025 at 4:16 PM Nathan Bossart <nathandbossart@gmail.com>
wrote:

> On Thu, Mar 13, 2025 at 06:54:09PM +0200, Florents Tselai wrote:
> > I扉e been working with the DSM registry API.
> > I was wondering if it is possible (it doesn愒 look like it) or if it has
> been discussed:
> > can we expose a view like pg_shmem_allocations, but fine-grained for
> every named segment (i.e. created by GetNamedDSMSegment )?
> >
> > Currently, there is a "DSM Registry Data" entry in that view,
> > but iiuc, it愀 only about the top-level hash table the registry uses.
>
> This seems like a generally reasonable idea to me.  In theory, it should be
> easy enough to build something that walks through the DSM registry hash
> table.
>

 Here's a first attempt towards a view pg_dsm_registry(name, size) that
does just that
So, using the test_dsm_registry module as a test bed,

it would look like this.

CREATE EXTENSION test_dsm_registry;
SELECT set_val_in_shmem(1236);
 set_val_in_shmem
------------------

(1 row)

-- 20 bytes = int (4 bytes) + LWLock (16bytes)
SELECT * FROM pg_dsm_registry;
       name        | size
-------------------+------
 test_dsm_registry |   20
(1 row)

I'll create a cf entry to keep track of this

Commits

  1. Introduce pg_dsm_registry_allocations view.