Re: parallelize queries containing initplans
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Kuntal Ghosh <kuntalghosh.2007@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-03-28T01:55:56Z
Lists: pgsql-hackers
On Thu, Mar 16, 2017 at 2:34 AM, Kuntal Ghosh <kuntalghosh.2007@gmail.com> wrote: > On Tue, Mar 14, 2017 at 3:20 PM, Amit Kapila <amit.kapila16@gmail.com> wrote: >> Based on that idea, I have modified the patch such that it will >> compute the set of initplans Params that are required below gather >> node and store them as bitmap of initplan params at gather node. >> During set_plan_references, we can find the intersection of external >> parameters that are required at Gather or nodes below it with the >> initplans that are passed from same or above query level. Once the set >> of initplan params are established, we evaluate those (if they are not >> already evaluated) before execution of gather node and then pass the >> computed value to each of the workers. To identify whether a >> particular param is parallel safe or not, we check if the paramid of >> the param exists in initplans at same or above query level. We don't >> allow to generate gather path if there are initplans at some query >> level below the current query level as those plans could be >> parallel-unsafe or undirect correlated plans. > > I would like to mention different test scenarios with InitPlans that > we've considered while developing and testing of the patch. > Thanks a lot Kuntal for sharing different test scenarios. Unfortunately, this patch doesn't received any review till now, so there is no chance of making it in to PostgreSQL-10. I have moved this to next CF. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
Commits
-
Pass InitPlan values to workers via Gather (Merge).
- e89a71fb449a 11.0 landed
-
Track in the plan the types associated with PARAM_EXEC parameters.
- e64861c79bda 11.0 landed
-
Force rescanning of parallel-aware scan nodes below a Gather[Merge].
- 7df2c1f8daeb 11.0 cited