Re: Question about LWLockAcquire's use of semaphores instead

Bruce Momjian <pgman@candle.pha.pa.us>

From: Bruce Momjian <pgman@candle.pha.pa.us>
To: bruc@acm.org
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2002-07-30T03:38:52Z
Lists: pgsql-hackers
Robert E. Bruccoleri wrote:
> Dear Tom,
> 	Thank you for the explanation. I did not understand what was
> going on in lwlock.c.

Yes, as Tom said, using the pre-7.2 code on SMP machines, if one backend
had a spinlock, the other backend would TAS loop trying to get the lock
until its timeslice ended or the other backend released the lock.  Now,
we TAS, then sleep on a semaphore and get woken up when the first
backend releases the lock.  We worked hard on that logic, I can tell you
that and it was a huge discussion topic on the Fall of 2001.

> 	My systems are all SGI Origins having between 8 and 32
> processors, and I've been running PostgreSQL on them for about 5
> years.  These machines do provide a number of good mechanisms for high
> performance shared memory parallelism that I don't think are found
> elsewhere.  I wish that I had the time to understand and tune
> PostgreSQL to run really well on them.
> 	I have a question for you and other developers with regard to
> my SGI needs. If I made a functional Origin 2000 system available to
> you with hardware support, would the group be willing to tailor the
> SGI port for better performance?

We would have to understand how the SGI code is better than our existing
code on SMP machines.

-- 
  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