From: | Michael Paesold <mpaesold(at)gmx(dot)at> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Chris Marcellino <maps(at)levelview(dot)com>, pgsql-patches(at)postgresql(dot)org |
Subject: | Re: Feature: POSIX Shared memory support |
Date: | 2007-02-06 15:51:22 |
Message-ID: | 45C8A3FA.9070205@gmx.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Tom Lane wrote:
> Chris Marcellino <maps(at)levelview(dot)com> writes:
>> To this end, I have "ported" the svsv_shmem.c layer to use the POSIX
>> calls (which are some ways more robust w.r.t reducing collision by
>> using strings as shared memory id's, instead of ints).
>
> This has been suggested before, and rejected before, on the grounds that
> the POSIX API provides no way to detect whether anyone else is attached
> to the segment. Not being able to tell that is a tremendous robustness
> hit for us. We are not going to risk destroying someone's database
> (or in the alternative, failing to restart after most crashes, which
> it looks like your patch would do) in order to make installation
> fractionally easier.
>
> I read through your patch in the hopes that you had a solution for this,
> but all I find is a copied-and-pasted comment
>
>> /*
>> * We detect whether a shared memory segment is in use by seeing whether
>> * it (a) exists and (b) has any processes are attached to it.
>> */
>
> followed by code that does no such thing.
Just an idea, but would it be possible to have a small SysV area as an
"advisory lock" (using the existing semantics) to protect the POSIX segment.
Best Regards
Michael Paesold
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2007-02-06 16:06:11 | Re: Dead code in _bt_split? |
Previous Message | Tom Lane | 2007-02-06 15:17:14 | Re: Feature: POSIX Shared memory support |