The plan for the new spinlocks does look like it has some potential. My
only comment in regards to permformance when we start looking at SMP
machines is ... it is my belief that getting a true threaded backend may
be the only way to get the full potential out of SMP machines. I see that
is one of the things to experiment with on the TODO list and I have seen
some people have messed around already with this using Solaris threads.
It should probably be attempted with pthreads if PostgreSQL is going to
keep some resemblance of cross-platform compatibility. At that time, it
would probably be easier to go in and clean up some stuff for the
implementation of other TODO items (put in the base framework for more
complex future items) as threading the backend would take a little bit of
ideology shift.
Of course, it is much easier to stand back and talk about this then
actually do it - especially comming from someone who has only tried to
contribute a few pieces of code. Keep up the good work.
On Wed, 26 Sep 2001, Tom Lane wrote:
> At the just-past OSDN database conference, Bruce and I were annoyed by
> some benchmark results showing that Postgres performed poorly on an
> 8-way SMP machine. Based on past discussion, it seems likely that the
> culprit is the known inefficiency in our spinlock implementation.
> After chewing on it for awhile, we came up with an idea for a solution.
>
> The following proposal should improve performance substantially when
> there is contention for a lock, but it creates no portability risks
> because it uses the same system facilities (TAS and SysV semaphores)
> that we have always relied on. Also, I think it'd be fairly easy to
> implement --- I could probably get it done in a day.
>
> Comments anyone?
>
> regards, tom lane
--
//========================================================\\
|| D. Hageman <dhageman(at)dracken(dot)com> ||
\\========================================================//