Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc759395

Browse files
committed
Code review for Parallel Append.
- Remove unnecessary #include mistakenly added in execnodes.h.- Fix mistake in comment in choose_next_subplan_for_leader.- Adjust row estimates in cost_append for a possibly-different parallel divisor.- Clamp row estimates in cost_append after operations that may not produce integers.Amit Kapila, with cosmetic adjustments by me.Discussion:http://postgr.es/m/CAA4eK1+qcbeai3coPpRW=GFCzFeLUsuY4T-AKHqMjxpEGZBPQg@mail.gmail.com
1 parent934c798 commitc759395

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

‎src/backend/executor/nodeAppend.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -446,10 +446,9 @@ choose_next_subplan_for_leader(AppendState *node)
446446
*
447447
*We start from the first plan and advance through the list;
448448
*when we get back to the end, we loop back to the first
449-
*nonpartial plan. This assigns the non-partial plans first
450-
*in order of descending cost and then spreads out the
451-
*workers as evenly as possible across the remaining partial
452-
*plans.
449+
*partial plan. This assigns the non-partial plans first in
450+
*order of descending cost and then spreads out the workers
451+
*as evenly as possible across the remaining partial plans.
453452
* ----------------------------------------------------------------
454453
*/
455454
staticbool

‎src/backend/optimizer/path/costsize.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,18 +1883,26 @@ cost_append(AppendPath *apath)
18831883
subpath->startup_cost);
18841884

18851885
/*
1886-
* Apply parallel divisor to non-partial subpaths. Also add the
1887-
* cost of partial paths to the total cost, but ignore non-partial
1888-
* paths for now.
1886+
* Apply parallel divisor to subpaths. Scale the number of rows
1887+
* for each partial subpath based on the ratio of the parallel
1888+
* divisor originally used for the subpath to the one we adopted.
1889+
* Also add the cost of partial paths to the total cost, but
1890+
* ignore non-partial paths for now.
18891891
*/
18901892
if (i<apath->first_partial_path)
18911893
apath->path.rows+=subpath->rows /parallel_divisor;
18921894
else
18931895
{
1894-
apath->path.rows+=subpath->rows;
1896+
doublesubpath_parallel_divisor;
1897+
1898+
subpath_parallel_divisor=get_parallel_divisor(subpath);
1899+
apath->path.rows+=subpath->rows* (subpath_parallel_divisor /
1900+
parallel_divisor);
18951901
apath->path.total_cost+=subpath->total_cost;
18961902
}
18971903

1904+
apath->path.rows=clamp_row_est(apath->path.rows);
1905+
18981906
i++;
18991907
}
19001908

‎src/include/nodes/execnodes.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#include"lib/pairingheap.h"
2222
#include"nodes/params.h"
2323
#include"nodes/plannodes.h"
24-
#include"storage/spin.h"
2524
#include"utils/hsearch.h"
2625
#include"utils/queryenvironment.h"
2726
#include"utils/reltrigger.h"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp