On 11/22/10 17:37, David Xu wrote:
Mark Felder wrote:
I recommend posting this on the Postgres performance list, too.




Regards,


Mark

I think if PostgreSQL uses semaphore for inter-process locking,
it might be a good idea to use POSIX semaphore exits in our head
branch, the new POSIX semaphore implementation now supports
process-shared, and is more light weight than SYSV semaphore,
if there is no contention, a process need not enter kernel to
acquire/release a lock. Note that I have just fixed a bug in head
branch. However RELENG_8 does not support process-shared semaphore
yet.

Another thing might be that, despite that they appear to try to avoid it, they possibly have a large number of processes hanging on the same semaphore, leading to thundering herd problem.

There already is code for POSIX semaphores in PostgreSQL. It requires some manual fiddling with the configuration to enable (USE_UNNAMED_POSIX_SEMAPHORES).

However, I've just tried it on 9-CURRENT and it doesn't work:

Nov 23 01:23:02 biggie postgres[1515]: [1-1] FATAL: sem_init failed: No space left on device

PostgreSQL calls it as "sem_init(sem, 1, 1);"

One more thing: apparently I had to kldload sem.ko - which looks like an error, since it is in GENERIC in 8-STABLE !

_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"

Reply via email to