Re: Explain buffers wrong counter with parallel plans

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Explain buffers wrong counter with parallel plans
Дата
Msg-id CAA4eK1+Ez4MFKMB4q7SOMnTM9afV22Oov0Wh5bNsxPJoEnNE8w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Explain buffers wrong counter with parallel plans  (Amit Kapila <amit.kapila16@gmail.com>)
Ответы Re: Explain buffers wrong counter with parallel plans
Список pgsql-hackers
On Tue, Jul 3, 2018 at 4:18 PM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Mon, Jul 2, 2018 at 6:02 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>>
>
>> To fix the problem with Limit that you mention, we could just modify
>> nodeLimit.c so that when the state is changed from LIMIT_INWINDOW to
>> LIMIT_WINDOWEND, we also call ExecShutdownNode on the child plan.
>>
>
> It should work.
>

I have tried this idea, but it doesn't completely solve the problem.
The problem is that nodes below LIMIT won't get a chance to accumulate
the stats as they won't be able to call InstrStopNode.  So the result
will be something like below:

postgres=# explain (analyze,buffers,timing off,costs off) select *
from t1 limit 50000;
                           QUERY PLAN
-----------------------------------------------------------------
 Limit (actual rows=50000 loops=1)
   Buffers: shared hit=6 read=224
   ->  Gather (actual rows=50000 loops=1)
         Workers Planned: 2
         Workers Launched: 2
         Buffers: shared hit=1 read=63
         ->  Parallel Seq Scan on t1 (actual rows=17213 loops=3)
               Buffers: shared hit=6 read=224
 Planning Time: 0.105 ms
 Execution Time: 1363068.675 ms
(10 rows)

In this plan, you can notice that stats (Buffers:) at Parallel Seq
Scan and Limit are same, but Gather node shows different stats.  One
idea could be that in ExecShutdownNode, somehow, we allow the nodes to
count the stats, maybe by calling InstrStartNode/InstrStopNode, but
not sure if that is the best way to fix it.

Thoughts?

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


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

Предыдущее
От: Alexander Kuzmenkov
Дата:
Сообщение: Re: Generating partitioning tuple conversion maps faster
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: shared-memory based stats collector