Re: Improve LWLock tranche name visibility across backends
От | Sami Imseih |
---|---|
Тема | Re: Improve LWLock tranche name visibility across backends |
Дата | |
Msg-id | CAA5RZ0v2JdAFh9yBsgvqNXrF68SKoF+bbjhn7ZBW_Oo66XUhrQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Improve LWLock tranche name visibility across backends (Nathan Bossart <nathandbossart@gmail.com>) |
Ответы |
Re: Improve LWLock tranche name visibility across backends
|
Список | pgsql-hackers |
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
В списке pgsql-hackers по дате отправления: