Re: Feature: POSIX Shared memory support - Mailing list pgsql-patches

From Michael Paesold
Subject Re: Feature: POSIX Shared memory support
Date
Msg-id 45C8A3FA.9070205@gmx.at
Whole thread Raw
In response to Re: Feature: POSIX Shared memory support  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Feature: POSIX Shared memory support  (Chris Marcellino <maps@levelview.com>)
List pgsql-patches
Tom Lane wrote:
> Chris Marcellino <maps@levelview.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


pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: Feature: POSIX Shared memory support
Next
From: Chris Marcellino
Date:
Subject: Re: Feature: POSIX Shared memory support