Re: Buffers from parallel workers not accumulated to upper nodes with gather merge

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Buffers from parallel workers not accumulated to upper nodes with gather merge
Дата
Msg-id CAA4eK1LQnp4UwfEXXKQQtxkHDDx7q83hbDN-BPBNP84qGjqpAQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Buffers from parallel workers not accumulated to upper nodes with gather merge  (Jehan-Guillaume de Rorthais <jgdr@dalibo.com>)
Ответы Re: Buffers from parallel workers not accumulated to upper nodes with gather merge  (Jehan-Guillaume de Rorthais <jgdr@dalibo.com>)
Re: Buffers from parallel workers not accumulated to upper nodes with gather merge  (Jehan-Guillaume de Rorthais <jgdr@dalibo.com>)
Список pgsql-bugs
On Mon, Jul 20, 2020 at 1:29 PM Jehan-Guillaume de Rorthais
<jgdr@dalibo.com> wrote:
>
> On Mon, 20 Jul 2020 11:30:34 +0530
> Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> > On Sat, Jul 18, 2020 at 7:32 PM Jehan-Guillaume de Rorthais
> > <jgdr@dalibo.com> wrote:
> [...]
> > > The Merge node works correctly because it calls ExecShutdownGatherWorkers as
> > > soon as the workers are exhausted from gather_readnext. Because of this,
> > > buffers from workers are already accounted and propagated to upper nodes
> > > before the recursive call of ExecShutdownNode on each nodes. There's no
> > > similar call to ExecShutdownGatherMergeWorkers for Gather Merge. Adding a
> > > call to ExecShutdownGatherMergeWorkers in gather_merge_getnext when workers
> > > are exhausted seems to fix the issue, but I feel like this is the wrong
> > > place to fix this issue.
> >
> > Why do you think so?
>
> Because the fix seemed too specific to the Gather Merge node alone. This bug
> might exist for some other nodes (I didn't look for them) and the trap will
> stay for futur ones.
>
> The fix in ExecShutdownNode recursion have a broader impact on all present
> and futur nodes.
>
> > I think irrespective of whether we want to call
> > ExecShutdownGatherMergeWorkers in gather_merge_getnext (when we know
> > we are done aka binaryheap_empty) to fix this particular issue, it is
> > better to shutdown the workers as soon as we are done similar to what
> > we do for Gather node.  It is good to release resources as soon as we
> > can.
>
> Indeed. I was focusing on the bug and I didn't thought about that. The patch I
> test was really just a quick test. I'll have a closer look at this, but I
> suppose this might be considered as a separate commit?
>

Good Question.  Initially, I thought we will have it in a same commit,
but now on again thinking about it, we might want to keep this one for
the HEAD only and ExecShutdownNode related change in the
back-branches.  BTW, can you please test if the problem exist in
back-branches, and does your change fix it there as well?

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



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

Предыдущее
От: Sandeep Thakkar
Дата:
Сообщение: Re: BUG #16460: Error when executing REFRESH MATERIALIZED VIEW WITH DATA;
Следующее
От: Francisco Olarte
Дата:
Сообщение: Re: Improvement for query planner? (no, not about count(*) again ;-))