aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeSort.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2017-12-19 12:21:56 -0500
committerRobert Haas <rhaas@postgresql.org>2017-12-19 12:21:56 -0500
commit8526bcb2df76d5171b4f4d6dc7a97560a73a5eff (patch)
tree8fd13e8cc570a6f996b9162ff4c76ce9190b3f0f /src/backend/executor/nodeSort.c
parent38fc54703ea4203a537c58332f697c546eaa4bcf (diff)
downloadpostgresql-8526bcb2df76d5171b4f4d6dc7a97560a73a5eff.tar.gz
postgresql-8526bcb2df76d5171b4f4d6dc7a97560a73a5eff.zip
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
Diffstat (limited to 'src/backend/executor/nodeSort.c')
-rw-r--r--src/backend/executor/nodeSort.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index 73aa3715e6d..d593378f74f 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -397,23 +397,6 @@ ExecSortInitializeDSM(SortState *node, ParallelContext *pcxt)
}
/* ----------------------------------------------------------------
- * ExecSortReInitializeDSM
- *
- * Reset shared state before beginning a fresh scan.
- * ----------------------------------------------------------------
- */
-void
-ExecSortReInitializeDSM(SortState *node, ParallelContext *pcxt)
-{
- /* If there's any instrumentation space, clear it for next time */
- if (node->shared_info != NULL)
- {
- memset(node->shared_info->sinstrument, 0,
- node->shared_info->num_workers * sizeof(TuplesortInstrumentation));
- }
-}
-
-/* ----------------------------------------------------------------
* ExecSortInitializeWorker
*
* Attach worker to DSM space for sort statistics.