Re: Allocating shared memory in Postgres

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Allocating shared memory in Postgres
Дата
Msg-id 10002.1562185057@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Allocating shared memory in Postgres  (Souvik Bhattacherjee <kivuosb@gmail.com>)
Ответы Re: Allocating shared memory in Postgres  (Souvik Bhattacherjee <kivuosb@gmail.com>)
Список pgsql-general
Souvik Bhattacherjee <kivuosb@gmail.com> writes:
> I need to allocate shared memory in Postgres 11.0 outside the
> initialization phase. In order to achieve this I have done the following:
> - during a particular query, where I need to allocate shared memory (which
> is a function of the sizes of the tables in the query), I invoke
> ShmemInitStruct() in shmem.c

This seems like a pretty horrid idea.  For starters, what happens if two
backends do this concurrently?  Even with only one backend, if you do a
query that requires X space, and then you do another query that requires
X+1 space, what's going to happen?

Recent PG releases have a "DSM" mechanism for short-lived (query lifespan,
typically) shared memory that's separate from the core shmem pool.  That
might suit your needs better.   The system design is really not friendly
to demanding more core shmem after postmaster start.

            regards, tom lane



В списке pgsql-general по дате отправления:

Предыдущее
От: Souvik Bhattacherjee
Дата:
Сообщение: Allocating shared memory in Postgres
Следующее
От: Tom Lane
Дата:
Сообщение: Re: postgres 11 issue?