Re: OpenBSD versus semaphores - Mailing list pgsql-hackers

From Tom Lane
Subject Re: OpenBSD versus semaphores
Date
Msg-id 30870.1546933226@sss.pgh.pa.us
Whole thread Raw
In response to Re: OpenBSD versus semaphores  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: OpenBSD versus semaphores
List pgsql-hackers
Thomas Munro <thomas.munro@enterprisedb.com> writes:
> On Tue, Jan 8, 2019 at 7:14 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> So I looked around for an alternative, and found out that modern
>> OpenBSD releases support named POSIX semaphores (though not unnamed
>> ones, at least not shared unnamed ones).  What's more, it appears that
>> in this implementation, named semaphores don't eat open file descriptors
>> as they do on macOS, removing our major objection to using them.

> No OpenBSD here, but I was curious enough to peek at their
> implementation.  Like others, they create a tiny file under /tmp for
> each one, mmap() and close the fd straight away.

Oh, yeah, I can see a bunch of tiny mappings with procmap.  I wonder
whether that scales any better than an open FD per semaphore, when
it comes to forking a bunch of child processes that will inherit
all those mappings or FDs.  I've not tried to benchmark child process
launch as such --- as I said, I'm not running this on hardware that
would support serious benchmarking.

BTW, I just finished finding out that recent NetBSD (8.99.25) has
working code paths for *both* named and unnamed POSIX semaphores.
However, it appears that both code paths involve an open FD per
semaphore, so it's likely not something we want to recommend using.

            regards, tom lane


pgsql-hackers by date:

Previous
From: Kyotaro HORIGUCHI
Date:
Subject: Re: Improve selectivity estimate for range queries
Next
From: Michael Paquier
Date:
Subject: Re: [Sender Address Forgery]Re: error message when subscriptiontarget is a partitioned table