Gaetano,

> I knew there was an evaluation on the futex vs spinlock,
> and Josh Berkus on IRC told me that there was only a 20%
> performance increase, is this increase to throw away ?

Before we get totally off track here ....

I evaluated futexes strictly as an attempt to solve the context switch storm 
bug.   I did NOT test whether they improved performance overall.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

Tue, 24 Aug 2004 18:43:14 -0700
Josh Berkus <josh@agliodbs.com>
Re: futex
Josh Berkus wrote:

>Gaetano,
>
>  
>
>>I knew there was an evaluation on the futex vs spinlock,
>>and Josh Berkus on IRC told me that there was only a 20%
>>performance increase, is this increase to throw away ?
>>    
>>
>
>Before we get totally off track here ....
>
>I evaluated futexes strictly as an attempt to solve the context switch storm 
>bug.   I did NOT test whether they improved performance overall.
>
>  
>
What did you test exactly and could you explain a bit about the context 
switch storm?
Did you use the futex interface directly or pthread_rwlock_rdlock?

--
    Manfred

Wed, 25 Aug 2004 19:14:53 +0200
Manfred Spraul <manfred@colorfullife.com>
Re: futex
Manfred,

> What did you test exactly and could you explain a bit about the context
> switch storm?

PostgreSQL currently causes a CS storm (context switches > 100,000) on 
multi-processor machines where you have a number of concurrent processes ( > 
than the number of processors) accessing the same small quantity of data 
repeatedly, particularly if doing seq scans and/or bad queries.   This issue 
causes a significant drop in server performance, as much as 60%.  

> Did you use the futex interface directly or pthread_rwlock_rdlock?

I'll have to admit to having only a beginner's grasp of this stuff, but I do 
believe that that was what the OSDL patch did.   Jan also tried a simpler 
patch, which didn't work either.    Both Jan and Tom have expressed the 
opinion that the only solution is to make the BufrMgrLock more granular (as 
in, not monolithic) but this is a huge task.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

Wed, 25 Aug 2004 10:27:11 -0700
Josh Berkus <josh@agliodbs.com>
Re: futex
Josh Berkus wrote:
> I'll have to admit to having only a beginner's grasp of this stuff, but I do 
> believe that that was what the OSDL patch did.   Jan also tried a simpler 
> patch, which didn't work either.    Both Jan and Tom have expressed the 
> opinion that the only solution is to make the BufrMgrLock more granular (as 
> in, not monolithic) but this is a huge task.

It's worth noting that I did a lot of work toward that goal (making the 
BufMgrLock more granular) earlier in 2004, but unfortunately wasn't able 
to get it finished before leaving for the summer. I can't guarantee that 
the approach I took was the right one, but if anyone's interested in 
working on this area then it might save some time to start with previous 
work. I want to take another shot at doing this for 8.1, although I 
don't know right now if I'll be able to.

-Neil


Wed, 25 Aug 2004 18:26:28 -0400
Neil Conway <neilc@samurai.com>
Re: futex
Neil,

> It's worth noting that I did a lot of work toward that goal (making the
> BufMgrLock more granular) earlier in 2004, but unfortunately wasn't able
> to get it finished before leaving for the summer. I can't guarantee that
> the approach I took was the right one, but if anyone's interested in
> working on this area then it might save some time to start with previous
> work. I want to take another shot at doing this for 8.1, although I
> don't know right now if I'll be able to.

Jan was interested in working on this as well; we hashed it out this summer.

-- 
Josh Berkus
Aglio Database Solutions
San Francisco

Wed, 25 Aug 2004 15:34:36 -0700
Josh Berkus <josh@agliodbs.com>
Re: futex