Re: Explain buffers wrong counter with parallel plans

Jonathan Katz <jonathan.katz@excoventures.com>

From: "Jonathan S. Katz" <jonathan.katz@excoventures.com>
To: Amit Kapila <amit.kapila16@gmail.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-30T15:14:31Z
Lists: pgsql-hackers
> On Jul 28, 2018, at 2:14 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
> 
> 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.

The logic on backpatching seems sounds. I confirmed my tests of the respective
patches against 9.6.9 and 10.4. I'll defer to someone else for comments on the
code, but from my read it appears to be a consistent approach for each version.

Jonathan

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.