Re: dynamically allocating chunks from shared memory

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: dynamically allocating chunks from shared memory
Дата
Msg-id 201008091631.o79GVj815207@momjian.us
обсуждение исходный текст
Ответ на Re: dynamically allocating chunks from shared memory  (Bruce Momjian <bruce@momjian.us>)
Ответы Re: dynamically allocating chunks from shared memory  (Robert Haas <robertmhaas@gmail.com>)
Re: dynamically allocating chunks from shared memory  (Markus Wanner <markus@bluegap.ch>)
Список pgsql-hackers
Bruce Momjian wrote:
> > With our process-based design, the default is private memory (i.e. not 
> > shared). If you need shared memory, you must specify a certain amount in 
> > advance. That chunk of shared memory then is reserved and can't ever be 
> > used by another subsystem. Even if you barely ever need that much shared 
> > memory for the subsystem in question.
> 
> Once multiple threads are using the same local memory, you have the same
> issues of being unable to resize it because repalloc can change the
> pointer location.

Let me be more concrete.  Suppose you are using threads, and you want to
increase your shared memory from 20MB to 30MB.  How do you do that?  If
you want it contiguous, you have to use realloc, which might move the
pointer.  If you allocate another 10MB chunk, you then have shared
memory fragments, which is the same as adding another shared memory
segment.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +


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

Предыдущее
От: Daniel Oliveira
Дата:
Сообщение: Universal B-tree
Следующее
От: Tom Lane
Дата:
Сообщение: Re: ERROR: argument to pg_get_expr() must come from system catalogs