Re: dynamically allocating chunks from shared memory
От | Bruce Momjian |
---|---|
Тема | Re: dynamically allocating chunks from shared memory |
Дата | |
Msg-id | 201008091850.o79Ioje13741@momjian.us обсуждение исходный текст |
Ответ на | Re: dynamically allocating chunks from shared memory (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: dynamically allocating chunks from shared memory
Re: dynamically allocating chunks from shared memory |
Список | pgsql-hackers |
Robert Haas wrote: > On Mon, Aug 9, 2010 at 2:33 PM, Bruce Momjian <bruce@momjian.us> wrote: > >> > 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. > >> > >> You probably wouldn't do either of those things. ?You'd just allocate > >> small chunks here and there for whatever you need them for. > > > > Well, then we do that with shared memory then --- my point is that it is > > the same problem with threads or processes. > > Well, I think your point is wrong, then. :-) > > It's not the same at all. If you have a bunch of threads in one > address space, "shared" memory is really just process-local. You can > grow the total amount of allocated space just by calling malloc(). > With our architecture, you can't. You effectively have to add infrastructure to add/remove shared memory segments to match memory requests. It is another step, but it is the same behavior. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
В списке pgsql-hackers по дате отправления: