Using POSIX mutex-es

From: "Mikheev, Vadim" <vmikheev(at)SECTORBASE(dot)COM>
To: "'pgsql-hackers(at)postgresql(dot)org'" <pgsql-hackers(at)postgresql(dot)org>
Subject: Using POSIX mutex-es
Date: 2001-08-01 19:04:24
Message-ID: 3705826352029646A3E91C53F7189E32016705@sectorbase2.sectorbase.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephan Szabo 2001-08-01 19:10:14 Re: Problem with FK referential actions
Previous Message Neil Padgett 2001-08-01 18:56:37 Re: Patch for Improved Syntax Error Reporting