Re: Sync Rep v17 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Sync Rep v17
Date
Msg-id 15716.1298991737@sss.pgh.pa.us
Whole thread Raw
In response to Re: Sync Rep v17  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: Sync Rep v17
List pgsql-hackers
Simon Riggs <simon@2ndQuadrant.com> writes:
> On Tue, 2011-03-01 at 15:51 +0900, Fujii Masao wrote:
>> A spinlock can be used only for very short-term operation like
>> read/write of some shared-variables. The operation on the queue
>> is not short, so should be protected by LWLock, I think.

> There's no need to sleep while holding locks and the operations are very
> short in most cases. The code around it isn't trivial, but that's no
> reason to use LWlocks.

What does "in most cases" mean?

> LWlocks are just spinlocks plus sem sleeps, so I don't see the need for
> that in the current code. Other views welcome.

Simon, that is absolutely NOT acceptable.  Spinlocks are to be used only
for short straight-line code segments.  If the lock has any potential to
be held for more than nanoseconds, use an LWLock.  The contention costs
of the shortcut you propose are too high.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Nikhil Sontakke
Date:
Subject: Re: PG signal handler and non-reentrant malloc/free calls
Next
From: Tom Lane
Date:
Subject: Re: Porting PostgreSQL to DragonFly BSD