Configure template change to use SysV Semaphors on darwin

Поиск
Список
Период
Сортировка
От Chris Marcellino
Тема Configure template change to use SysV Semaphors on darwin
Дата
Msg-id 3830CBEB-F8CE-4EBC-BE16-A415E78A4CBC@apple.com
обсуждение исходный текст
Ответы Re: Configure template change to use SysV Semaphors on darwin  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Configure template change to use SysV Semaphors on darwin  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-patches
Tom mentioned,
> AFAIK the only platform where the POSIX sema code is really used is
> Darwin (OS X), and it is not something I'd use there if I had a
> choice.
> The problem with it is that *every* semaphore corresponds to an open
> file handle in the postmaster that has to be inherited by *every*
> forked
> child.  So N backend slots cost you O(N^2) in kernel filehandles and
> process fork overhead, plus if N is big you're taking a serious hit in
> the number of disk files any one backend can have open.  This problem
> may be specific to Darwin's implementation of the POSIX spec, but it's
> real enough there.  If you trawl the archives you'll probably notice a
> lack of people running big Postgres installations on Darwin, and
> this is
> why.

I searched through the archives and I can't find a mention of why the
posix_sema code was written for Darwin.
I assume it is because before Darwin 6.0/Mac OS X 10.2 there was not
kernel support for SysV semaphores.

If this is in fact the case, I have a trivial patch to conditionally
enable SysV semaphores based on the OS release:


*** /Users/chrismarcellino/postgresql-8.2.2/src/template/darwin Fri
Mar 10 20:38:40 2006
--- /Users/chrismarcellino/darwin       Wed Feb  7 13:56:01 2007
***************
*** 4,8 ****
   # (Note: on OS X before 10.2, you might need -traditional-cpp
instead)
   CC="$CC -no-cpp-precomp"

! # Select appropriate semaphore support
! USE_NAMED_POSIX_SEMAPHORES=1
--- 4,16 ----
   # (Note: on OS X before 10.2, you might need -traditional-cpp
instead)
   CC="$CC -no-cpp-precomp"

! # Select appropriate semaphore support. Darwin 6.0 (Mac OS X 10.2)
and higher
! # support System V semaphores for better peformance.
! case $host_os in
!   darwin[015].*)
!     USE_NAMED_POSIX_SEMAPHORES=1
!     ;;
!   *)
!     USE_SYSV_SEMAPHORES=1
!     ;;
! esac



Thanks,
Chris Marcellino



Вложения

В списке pgsql-patches по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Stamp releases notes for 8.2.3, 8.1.8, 8.0.12.
Следующее
От: Neil Conway
Дата:
Сообщение: Re: Re: [COMMITTERS] pgsql: Stamp releases notes for 8.2.3, 8.1.8, 8.0.12.