Using POSIX mutex-es - Mailing list pgsql-hackers

From Mikheev, Vadim
Subject Using POSIX mutex-es
Date
Msg-id 3705826352029646A3E91C53F7189E32016705@sectorbase2.sectorbase.com
Whole thread Raw
Responses Re: Using POSIX mutex-es
List pgsql-hackers
1. Just changedTAS(lock) to pthread_mutex_trylock(lock)S_LOCK(lock) to pthread_mutex_lock(lock)S_UNLOCK(lock) to
pthread_mutex_unlock(lock)
(and S_INIT_LOCK to share mutex-es between processes).

2. pgbench was initialized with scale 10.  SUN WS 10 (512Mb), Solaris 2.6 (I'm unable to test on E4500 -:()  -B 16384,
wal_files8, wal_buffers 256,  checkpoint_segments 64, checkpoint_timeout 3600  50 clients x 100 transactions  (after
initializationDB dir was saved and before each test   copyed back and vacuum-ed).
 

3. No difference.  Mutex version maybe 0.5-1 % faster (eg: 37.264238 tps vs 37.083339 tps).

So - no gain, but no performance loss "from using pthread library"
(I've also run tests with 1 client), at least on Solaris.

And so - looks like we can use POSIX mutex-es and conditional variables
(not semaphores; man pthread_cond_wait) and should implement light lmgr,
probably with priority locking.

Vadim


pgsql-hackers by date:

Previous
From: Dave Blasby
Date:
Subject: How to find the database name during run-time
Next
From: Stephan Szabo
Date:
Subject: Re: Problem with FK referential actions