Re: BUG #14206: Switch to using POSIX semaphores on FreeBSD - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #14206: Switch to using POSIX semaphores on FreeBSD
Date
Msg-id 16860.1466539165@sss.pgh.pa.us
Whole thread Raw
In response to BUG #14206: Switch to using POSIX semaphores on FreeBSD  (sobomax@freebsd.org)
Responses Re: BUG #14206: Switch to using POSIX semaphores on FreeBSD  (Maxim Sobolev <sobomax@freebsd.org>)
List pgsql-bugs
sobomax@freebsd.org writes:
> However, according to the analysis done by Konstantin Belousov here
> https://www.kib.kiev.ua/kib/pgsql_perf_v2.0.pdf there is at the very least
> some performance benefit on using POSIX semaphones instead of SYSV
> semaphones in the PG running on FreeBSD host.

I wonder how thorough that performance testing was.  The reason that the
named-POSIX-semaphore code exists is that it used to be the only kind of
semaphore available on ancient OS X versions.  But we got rid of that as
soon as we could, for the reason explained in template/darwin:

# Select appropriate semaphore support.  Darwin 6.0 (Mac OS X 10.2) and up
# support System V semaphores; before that we have to use POSIX semaphores,
# which are less good for our purposes because they eat a file descriptor
# per backend per max_connection slot.

The extra FDs slow down launching of new backends (due to having to dup
all the postmaster's FDs for the semaphores) and if max_connections is
large they can take a pretty serious chunk out of your system-wide file
table, at worst max_connections squared.

Now maybe FreeBSD is different enough from OSX that these are not problems
for you, but I'm dubious.

Have you got unnamed POSIX semaphores, and if so have you tried that
variant?

            regards, tom lane

pgsql-bugs by date:

Previous
From: sobomax@freebsd.org
Date:
Subject: BUG #14206: Switch to using POSIX semaphores on FreeBSD
Next
From: Maxim Sobolev
Date:
Subject: Re: BUG #14206: Switch to using POSIX semaphores on FreeBSD