Re: getting the most of out multi-core systems for repeated complex SELECT statements

From: Vitalii Tymchyshyn <tivv00(at)gmail(dot)com>
To: Chris Browne <cbbrowne(at)acm(dot)org>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: getting the most of out multi-core systems for repeated complex SELECT statements
Date: 2011-02-07 10:02:57
Message-ID: 4D4FC351.4000105@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi, all

My small thoughts about parallelizing single query.
AFAIK in the cases where it is needed, there is usually one single
operation that takes a lot of CPU, e.g. hashing or sorting. And this are
usually tasks that has well known algorithms to parallelize.
The main problem, as for me, is thread safety. First of all, operations
that are going to be parallelized, must be thread safe. Then functions
and procedures they call must be thread safe too. So, a marker for a
procedure must be introduced and all standard ones should be
checked/fixed for parallel processing with marker set.
Then, one should not forget optimizer checks for when to introduce
parallelizing. How should it be accounted in the query plan? Should it
influence optimizer decisions (should it count CPU or wall time when
optimizing query plan)?
Or can it simply be used by an operation when it can see it will benefit
from it.

Best regards, Vitalii Tymchyshyn

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Marti Raudsepp 2011-02-07 10:30:25 Re: Really really slow select count(*)
Previous Message Greg Smith 2011-02-07 08:31:52 Re: High load,