Re: dynamically allocating chunks from shared memory

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Bruce Momjian <bruce@momjian.us>, Markus Wanner <markus@bluegap.ch>, Alvaro Herrera <alvherre@commandprompt.com>, PostgreSQL-development Hackers <pgsql-hackers@postgresql.org>
Date: 2010-08-10T01:29:27Z
Lists: pgsql-hackers
On Mon, Aug 9, 2010 at 7:17 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Mon, Aug 9, 2010 at 4:18 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> Particular implementations might cope with such cases in useful ways, or
>>> then again they might not.
>> That doesn't seem like a big problem to me.  I was assuming we'd need
>> to remap when the size changed.
> Well, as long as you can do that, sure.  I'm concerned about what
> happens if/when remapping fails (not at all unlikely in 32-bit address
> spaces in particular).  You mentioned that that would probably have to
> be a PANIC condition, which I think I agree with; and that idea pretty
> much kills any argument that this would be a good way to improve server
> uptime.

In some cases, you might be able to get by with FATAL.  Still, it's
easier to imagine using this in cases for things like resizing
shared_buffers (where the alternative is to restart the server anyway)
than it is to use it for routine memory allocation.

> Another issue is that if you're doing dynamic remapping you almost
> certainly can't assume that the segment will appear at the same
> addresses in every backend.  We could live with that for shared buffers
> without too much pain, but not so much for most other shared
> datastructures.

Hmm.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company