On Tue, Jul 15, 2025 at 11:57 AM Nathan Bossart
<nathandbossart@gmail.com> wrote:
>
> On Tue, Jul 15, 2025 at 11:52:19AM -0500, Sami Imseih wrote:
> >> Another random thought: I worry that the dshash approach might be quite a
> >> bit slower, and IIUC we just need to map an integer to a string. Maybe we
> >> should just use a DSA for LWLockTrancheNames. IOW we'd leave it as a char**
> >> but put it in shared memory.
> >
> > To use DSA just for this purpose, we would need to maintain an array of
> > dsa_pointers that reference the string(s), right? I am not clear what you
> > mean by using dsa to put the char**
>
> I was imagining putting the array in one big DSA allocation instead of
> carting around a pointer for each tranche name. (Sorry, I realize I am
> hand-waving over some of the details.)
I understood it like this. Here is a sketch:
```
dsa_pointer p;
dsa = dsa_create(....)
p = dsa_allocate(dsa, LWLockTranchesInitialSize());
tranche_names = (char **) dsa_get_address(dsa, p);
tranche_names[0] = "my tranche";
tranche_names[1] = "my tranche";
```
We will need to track the size and resize if needed.
Is this what you mean, from a high level?
--
Sami