Robert Haas wrote: > On Mon, Aug 9, 2010 at 12:31 PM, Bruce Momjian <br...@momjian.us> wrote: > > 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. > > 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. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers