Thread: futex

futex

From
Gaetano Mendola
Date:
Hi all,
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 ?


Regards
Gaetano Mendola





Re: futex

From
Josh Berkus
Date:
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


Re: futex

From
Manfred Spraul
Date:
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


Re: futex

From
Josh Berkus
Date:
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


Re: futex

From
Neil Conway
Date:
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



Re: futex

From
Josh Berkus
Date:
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