]> granicus.if.org Git - postgresql/commit
Try again to fix accumulation of parallel worker instrumentation.
authorRobert Haas <rhaas@postgresql.org>
Tue, 19 Dec 2017 17:21:56 +0000 (12:21 -0500)
committerRobert Haas <rhaas@postgresql.org>
Tue, 19 Dec 2017 17:21:56 +0000 (12:21 -0500)
commit8526bcb2df76d5171b4f4d6dc7a97560a73a5eff
tree8fd13e8cc570a6f996b9162ff4c76ce9190b3f0f
parent38fc54703ea4203a537c58332f697c546eaa4bcf
Try again to fix accumulation of parallel worker instrumentation.

When a Gather or Gather Merge node is started and stopped multiple
times, accumulate instrumentation data only once, at the end, instead
of after each execution, to avoid recording inflated totals.

Commit 778e78ae9fa51e58f41cbdc72b293291d02d8984, the previous attempt
at a fix, instead reset the state after every execution, which worked
for the general instrumentation data but had problems for the additional
instrumentation specific to Sort and Hash nodes.

Report by hubert depesz lubaczewski.  Analysis and fix by Amit Kapila,
following a design proposal from Thomas Munro, with a comment tweak
by me.

Discussion: http://postgr.es/m/20171127175631.GA405@depesz.com
src/backend/executor/execParallel.c
src/backend/executor/nodeHash.c
src/backend/executor/nodeSort.c
src/include/executor/nodeHash.h
src/include/executor/nodeSort.h
src/test/regress/expected/select_parallel.out
src/test/regress/sql/select_parallel.sql