Re: Parallel Append implementation
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Amit Khandekar <amitdkhan.pg@gmail.com>,
Rafia Sabih <rafia.sabih@enterprisedb.com>, Andres Freund <andres@anarazel.de>,
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-09-30T15:55:44Z
Lists: pgsql-hackers
On Sat, Sep 30, 2017 at 12:20 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > Okay, but the point is whether it will make any difference > practically. Let us try to see with an example, consider there are > two children (just taking two for simplicity, we can extend it to > many) and first having 1000 pages to scan and second having 900 pages > to scan, then it might not make much difference which child plan > leader chooses. Now, it might matter if the first child relation has > 1000 pages to scan and second has just 1 page to scan, but not sure > how much difference will it be in practice considering that is almost > the maximum possible theoretical difference between two non-partial > paths (if we have pages greater than 1024 pages > (min_parallel_table_scan_size) then it will have a partial path). But that's comparing two non-partial paths for the same relation -- the point here is to compare across relations. Also keep in mind scenarios like this: SELECT ... FROM relation UNION ALL SELECT ... FROM generate_series(...); >> It's a lot fuzzier what is best when there are only partial plans. >> > > The point that bothers me a bit is whether it is a clear win if we > allow the leader to choose a different strategy to pick the paths or > is this just our theoretical assumption. Basically, I think the patch > will become simpler if pick some simple strategy to choose paths. Well, that's true, but is it really that much complexity? And I actually don't see how this is very debatable. If the only paths that are reasonably cheap are GIN index scans, then the only strategy is to dole them out across the processes you've got. Giving the leader the cheapest one seems to be to be clearly smarter than any other strategy. Am I missing something? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Update parallel.sgml for Parallel Append
- ac535cd47806 11.0 landed
- e80f2b335ecd 12.0 landed
-
Support Parallel Append plan nodes.
- ab7271677812 11.0 landed
-
Remove BufFile's isTemp flag.
- 11e264517dff 11.0 cited
-
Improve comments for parallel executor estimation functions.
- 11c1d555cebe 11.0 landed
-
Separate reinitialization of shared parallel-scan state from ExecReScan.
- 41b0dd987d44 11.0 cited
-
Eat XIDs more efficiently in recovery TAP test.
- 08aed6604de2 10.0 cited
-
Avoid syntax error on platforms that have neither LOCALE_T nor ICU.
- 457a44487328 10.0 cited
-
Preparatory refactoring for parallel merge join support.
- a71f10189dc1 10.0 cited