Re: POSIX Shared memory, revised, again

From: Chris Marcellino <cmarcellino(at)apple(dot)com>
To: David Fetter <david(at)fetter(dot)org>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: POSIX Shared memory, revised, again
Date: 2007-02-28 18:28:50
Message-ID: 047815D0-E56C-45C0-B04E-3E6D7FA70C08@apple.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Messages with PDF's seem to be dropped as Magnus described yesterday.
It is in this tarball though:
http://homepage.mac.com/cmarcellino/postgres-posix-shmem.tar

As Tom has said a few times, there is an issue with the need to keep
two different lifecycles of postmasters and backends out of the
database.
I was working under the assumption that the OS I was using had a
standard implementation of shm_unlink. Darwin conveniently keeps new
shm_open's from succeeding after a shm_unlink. It turns out that on
platforms other than Darwin/Mac OS X, the patch can't prevent lone
backends from corrupting the db.

The only portable way I can think of that might make this work would
be to use a either a small token SysV segment for mutual exclusion
(as discussed previously), or to use a SysV semaphore with SEM_UNDO
to clean up on process crashes/killings. I need to flesh out the
latter idea. Does anyone have any thoughts on whether this would be
worth trying? We have a strong need in our group to use POSIX shmem
and the more portable and robust it is, the better.

Thanks,
Chris

On Feb 28, 2007, at 9:24 AM, David Fetter wrote:

> On Tue, Feb 27, 2007 at 11:17:44AM -0800, Chris Marcellino wrote:
>> So I've finished reformulating this patch to use the device/inode
>> instead of the hash idea I had earlier.
>>
>> I have tested this patch (on Darwin) to permit the postmaster to
>> recover after a crash or killing, and it will not permit the
>> postmaster to restart while another postmaster or backends are still
>> in the database (regardless of the lockfile status). The ideas are
>> the same as before, but are described via flowchart in the attached
>> PDF.
>
> The PDF didn't come through. Could you please re-send?
>
> Cheers,
> David.
> --
> David Fetter <david(at)fetter(dot)org> http://fetter.org/
> phone: +1 415 235 3778 AIM: dfetter666
> Skype: davidfetter
>
> Remember to vote!
> Consider donating to PostgreSQL: http://www.postgresql.org/about/
> donate
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 6: explain analyze is your friend

In response to

Browse pgsql-patches by date

  From Date Subject
Next Message Joshua D. Drake 2007-03-01 00:26:30 Re: [HACKERS]
Previous Message Tom Lane 2007-02-28 17:58:04 Re: [HACKERS]