Re: dynamically allocating chunks from shared memory - Mailing list pgsql-hackers

From Tom Lane
Subject Re: dynamically allocating chunks from shared memory
Date
Msg-id 696.1281368484@sss.pgh.pa.us
Whole thread Raw
In response to Re: dynamically allocating chunks from shared memory  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: dynamically allocating chunks from shared memory
Re: dynamically allocating chunks from shared memory
Re: dynamically allocating chunks from shared memory
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> So imagine that thread-or-process A allocates allocates a new chunk of
> memory and then writes a pointer to the new chunk in a previously
> allocated section of memory.  Thread-or-process B then follows the
> pointer.  In a threaded model, this is guaranteed to be safe.  In a
> process model, it's not: A might have enlarged the shared memory
> mapping while B has not yet done so.  So I think in our model any sort
> of change to the shared memory segment is going to require extremely
> careful gymnastics, and be pretty expensive.

... and on some platforms, it'll be flat out impossible.  We looked at
this years ago and concluded that changing the size of the shmem segment
after postmaster start was impractical from a portability standpoint.
I have not seen anything to change that conclusion.

> I don't care to take a position in the religious war over threads vs.
> processes, but I do think threads simplify the handling of this
> particular case.

You meant "I don't think", right?  I agree.  The only way threads would
simplify this is if we went over to a mysql-style model where there was
only one process, period, and all backends were threads inside that.
No shared memory as such, at all.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Markus Wanner
Date:
Subject: Re: dynamically allocating chunks from shared memory
Next
From: Bruce Momjian
Date:
Subject: Re: dynamically allocating chunks from shared memory