Re: Explain buffers wrong counter with parallel plans

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: "Jonathan S. Katz" <jonathan.katz@excoventures.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Adrien Nayrat <adrien.nayrat@anayrat.info>, Andres Freund <andres@anarazel.de>, PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2018-07-28T06:14:11Z
Lists: pgsql-hackers

Attachments

On Fri, Jul 27, 2018 at 11:12 PM, Jonathan S. Katz
<jonathan.katz@excoventures.com> wrote:
>
>> On Jul 27, 2018, at 8:31 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>>
>>
>> Yeah, that would be better.  Today, I have tried the patch on both
>> Head and PG11 and I am getting same and correct results.
>
> I have applied the the patch to PG11beta2 and tested.
>

I think we should backpatch this till 9.6 where the parallel query was
introduced.  Note, that for HEAD and 11, the patch is same.  For PG10,
the patch code is same, but because surrounding code is different, the
same patch didn't apply.  For 9.6, we don't need to collect stats in
ExecShutdownNode.   I have tested it in all the back branches and it
works fine.

Robert,

We have done verification that the approach works and fixes the bug in
all known cases.  Do you see any problem with this approach?

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

Commits

  1. Adjust comment atop ExecShutdownNode.

  2. Prohibit shutting down resources if there is a possibility of back up.

  3. Fix buffer usage stats for parallel nodes.

  4. Match the buffer usage tracking for leader and worker backends.

  5. Improve division of labor between execParallel.c and nodeGather[Merge].c.