Thread
Commits
-
Rephrase a few comments for clarity.
- 8b1d2685b82f 9.6.10 landed
- a1dc4ea02044 10.5 landed
- 45fcd758a07f 11.0 landed
- 99fdebaf2da9 12.0 landed
-
Fix parallel index and index-only scans to fall back to serial.
- 09529a70bb5a 10.0 cited
-
pgsql: Fix parallel index and index-only scans to fall back to serial.
Robert Haas <rhaas@postgresql.org> — 2017-03-08T13:17:36Z
Fix parallel index and index-only scans to fall back to serial. Parallel executor nodes can't assume that parallel execution will happen in every case where the plan calls for it, because it might not work out that way. However, parallel index scan and parallel index-only scan failed to do the right thing here. Repair. Amit Kapila, per a report from me. Discussion: http://postgr.es/m/CAA4eK1Kq5qb_u2AOoda5XBB91vVWz90w=LgtRLgsssriS8pVTw@mail.gmail.com Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/09529a70bb5a77935d086d651c63396767d240d7 Modified Files -------------- src/backend/executor/nodeIndexonlyscan.c | 72 +++++++++++++------------ src/backend/executor/nodeIndexscan.c | 90 ++++++++++++++++++++------------ 2 files changed, 96 insertions(+), 66 deletions(-)
-
Re: pgsql: Fix parallel index and index-only scans to fall back to serial.
Heikki Linnakangas <hlinnaka@iki.fi> — 2018-07-13T19:22:42Z
Hi! I just bumped into this comment, from commit 09529a70bb5, and I can't make sense of it: > + /* > + * We reach here if the index only scan is not parallel, or if we're > + * executing a index only scan that was intended to be parallel > + * serially. > + */ What was that intended to say? - Heikki
-
Re: pgsql: Fix parallel index and index-only scans to fall back to serial.
David G. Johnston <david.g.johnston@gmail.com> — 2018-07-13T21:19:29Z
On Fri, Jul 13, 2018 at 12:22 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote: > Hi! > > I just bumped into this comment, from commit 09529a70bb5, and I can't make > sense of it: > > + /* >> + * We reach here if the index only scan is not parallel, >> or if we're >> + * executing a index only scan that was intended to be >> parallel >> + * serially. >> + */ >> > > What was that intended to say? > > I think... ...or if we're serially executing a[n] index only scan that was intended to be [executed in] parallel s/intended/planned/ ? David J.
-
Re: pgsql: Fix parallel index and index-only scans to fall back to serial.
Robert Haas <robertmhaas@gmail.com> — 2018-07-13T21:56:40Z
On Fri, Jul 13, 2018 at 2:22 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote: > I just bumped into this comment, from commit 09529a70bb5, and I can't make > sense of it: > >> + /* >> + * We reach here if the index only scan is not parallel, >> or if we're >> + * executing a index only scan that was intended to be >> parallel >> + * serially. >> + */ > > > What was that intended to say? There are two ways that you can reach that code. One is that you have the thing that shows up in EXPLAIN output as "Index-Only Scan". The other is that you have the thing that shows up in EXPLAIN output as "Parallel Index-Only Scan", but you didn't get any workers, so now you're falling back to running what was intended to be a parallel plan without parallelism i.e. serially. The comment is intended to alert you to the fact that an intended-as-parallel scan can end up here in corner cases where the plan doesn't end up being parallel. We've had some difficulty in consistently getting that case correct. If you decide to rephase the comment for clarity, note that there are three other near-copies of it cf. git grep -C4 'We reach here if' -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
-
Re: pgsql: Fix parallel index and index-only scans to fall back to serial.
Heikki Linnakangas <hlinnaka@iki.fi> — 2018-07-19T13:13:18Z
On 14/07/18 00:56, Robert Haas wrote: > On Fri, Jul 13, 2018 at 2:22 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote: >> I just bumped into this comment, from commit 09529a70bb5, and I can't make >> sense of it: >> >>> + /* >>> + * We reach here if the index only scan is not parallel, >>> or if we're >>> + * executing a index only scan that was intended to be >>> parallel >>> + * serially. >>> + */ >> >> >> What was that intended to say? > > There are two ways that you can reach that code. One is that you have > the thing that shows up in EXPLAIN output as "Index-Only Scan". The > other is that you have the thing that shows up in EXPLAIN output as > "Parallel Index-Only Scan", but you didn't get any workers, so now > you're falling back to running what was intended to be a parallel plan > without parallelism i.e. serially. The comment is intended to alert > you to the fact that an intended-as-parallel scan can end up here in > corner cases where the plan doesn't end up being parallel. We've had > some difficulty in consistently getting that case correct. Ah, gotcha. I changed that (and the other copies) per David's suggestion. - Heikki