Using POSIX mutex-es

Started by Mikheev, Vadimover 24 years ago2 messages
#1Mikheev, Vadim
vmikheev@SECTORBASE.COM

1. Just changed
TAS(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_files 8, wal_buffers 256,
checkpoint_segments 64, checkpoint_timeout 3600
50 clients x 100 transactions
(after initialization DB 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

#2Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Mikheev, Vadim (#1)
Re: Using POSIX mutex-es

Added to TODO.detail/performance.

1. Just changed
TAS(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_files 8, wal_buffers 256,
checkpoint_segments 64, checkpoint_timeout 3600
50 clients x 100 transactions
(after initialization DB 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

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026