Re: Unneeded parallel safety tests in grouping_planner

Поиск
Список
Период
Сортировка
От Etsuro Fujita
Тема Re: Unneeded parallel safety tests in grouping_planner
Дата
Msg-id 5C79086F.7000808@lab.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Unneeded parallel safety tests in grouping_planner  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
(2019/02/28 0:46), Robert Haas wrote:
> On Wed, Feb 27, 2019 at 7:46 AM Etsuro Fujita
> <fujita.etsuro@lab.ntt.co.jp>  wrote:
>> Yet another thing I noticed while working on [1] is this in
>> grouping_planner:
>>
>>      /*
>>       * If the input rel is marked consider_parallel and there's nothing
>> that's
>>       * not parallel-safe in the LIMIT clause, then the final_rel can be
>> marked
>>       * consider_parallel as well.  Note that if the query has rowMarks or is
>>       * not a SELECT, consider_parallel will be false for every relation
>> in the
>>       * query.
>>       */
>>      if (current_rel->consider_parallel&&
>>          is_parallel_safe(root, parse->limitOffset)&&
>>          is_parallel_safe(root, parse->limitCount))
>>          final_rel->consider_parallel = true;
>>
>> If there is a need to add a LIMIT node, we don't consider generating
>> partial paths for the final relation below (see commit
>> 0927d2f46ddd4cf7d6bf2cc84b3be923e0aedc52), so it seems unnecessary
>> anymore to assess the parallel-safety of the LIMIT and OFFSET clauses.
>> To save cycles, why not remove those tests from that function like the
>> attached?
>
> Because in the future we might want to consider generating
> partial_paths in cases where we don't do so today.
>
> I repeatedly made the mistake of believing that I could not bother
> setting consider_parallel entirely correctly for one reason or
> another, and I've gone through multiple iterations of fixing cases
> where I did that and it turned out to cause problems.  I now believe
> that we should try to get it right in every case, whether or not we
> currently think it's possible for it to matter.  Sometimes it matters
> in ways that aren't obvious, and it complicates further development.
>
> I don't think we'd save much by changing this test anyway.  Those
> is_parallel_safe() tests aren't entirely free, of course, but they
> should be very cheap.

I got the point.  Thanks for the explanation!

Best regards,
Etsuro Fujita



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: Refactoring the checkpointer's fsync request queue
Следующее
От: Etsuro Fujita
Дата:
Сообщение: Re: Oddity with parallel safety test for scan/join target in grouping_planner