Re: TPC-H Q20 from 1 hour to 19 hours!

Поиск
Список
Период
Сортировка
Искать
От
Amit Kapila
Тема
Re: TPC-H Q20 from 1 hour to 19 hours!
Дата
Msg-id
CAA4eK1+8HY0v4JS204zY_huAJNDrS85eTi250DdcAyyygjYS_g@mail.gmail.com
Ответ на
Список
Дерево обсуждения
[HACKERS] TPC-H Q20 from 1 hour to 19 hours! Rafia Sabih <rafia.sabih@enterprisedb.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Robert Haas <robertmhaas@gmail.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Robert Haas <robertmhaas@gmail.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Amit Kapila <amit.kapila16@gmail.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Rafia Sabih <rafia.sabih@enterprisedb.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Robert Haas <robertmhaas@gmail.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Peter Geoghegan <pg@bowt.ie>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Tom Lane <tgl@sss.pgh.pa.us>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Peter Geoghegan <pg@bowt.ie>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Peter Geoghegan <pg@bowt.ie>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Peter Geoghegan <pg@bowt.ie>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Robert Haas <robertmhaas@gmail.com>
Re: [HACKERS] TPC-H Q20 from 1 hour to 19 hours! Tomas Vondra <tomas.vondra@2ndquadrant.com>
Re: TPC-H Q20 from 1 hour to 19 hours! Rafia Sabih <rafia.sabih@enterprisedb.com>
On Thu, Mar 30, 2017 at 8:24 AM, Robert Haas  wrote:
> On Wed, Mar 29, 2017 at 8:00 PM, Tomas Vondra
>  wrote:
>> What is however strange is that changing max_parallel_workers_per_gather
>> affects row estimates *above* the Gather node. That seems a bit, um,
>> suspicious, no? See the parallel-estimates.log.
>
> Thanks for looking at this!  Comparing the parallel plan vs. the
> non-parallel plan:
>
> part: parallel rows (after Gather) 20202, non-parallel rows 20202
> partsupp: parallel rows 18, non-parallel rows 18
> part-partsupp join: parallel rows 88988, non-parallel rows 355951
> lineitem: parallel rows 59986112, non-parallel rows 59986112
> lineitem after aggregation: parallel rows 5998611, non-parallel rows 5998611
> final join: parallel rows 131, non-parallel rows 524
>
> I agree with you that that looks mighty suspicious.  Both the
> part-partsupp join and the final join have exactly 4x as many
> estimated rows in the non-parallel plan as in the parallel plan, and
> it just so happens that the parallel divisor here will be 4.
>
> Hmm... it looks like the parallel_workers value from the Gather node
> is being erroneously propagated up to the higher levels of the plan
> tree.   Wow.   Somehow, Gather Merge managed to get the logic correct
> here, but Gather is totally wrong.  Argh.   Attached is a draft patch,
> which I haven't really tested beyond checking that it passes 'make
> check'.
>

Your patch looks good to me.  I have verified some join cases as well
where the behaviour is sane after patch.  I have also done testing
with force_parallel_mode=regress (ran make check-world) and everything
seems good.

-- 
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления
От: Rafia Sabih
Дата:
От: Corey Huinker
Дата:
FAQ