drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jinfeng Ni (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (DRILL-4541) Make sure query planner does not generate operators with mixed convention trait
Date Wed, 06 Apr 2016 20:41:25 GMT

     [ https://issues.apache.org/jira/browse/DRILL-4541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Jinfeng Ni reassigned DRILL-4541:

    Assignee: Jinfeng Ni

> Make sure query planner does not generate operators with mixed convention trait
> -------------------------------------------------------------------------------
>                 Key: DRILL-4541
>                 URL: https://issues.apache.org/jira/browse/DRILL-4541
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Jinfeng Ni
>            Assignee: Jinfeng Ni
> Per the discussion [1] in the PR of DRILL-4531, we should fix the query planner rules
used in Drill planning, such that it will not generate Rels with mixed convention trait. 
For instance, a LogicalFilter should only have child with NONE convention; it should not have
child with LOGICAL convention. 
> The mixed Rels will cause planner either hang (as reported in DRILL-4531 and DRILL-3257),
or do wasted work by firing rules against the mixed Rels.  
> I think the reason that we have such mixed rels is we have different kinds of rules,
used in a single Volcano planning phase.
> 1) Rule matchs base class Filter/Project, etc only.
> 2) Rule matches LogicalFilter/LogicalProject, etc
> 3) Rule matches DrillFilter/DrillProject, etc. 
> 3) Rule uses copy() method to generate a new Rel 
> 4) Rule uses RelFactory to generate a new Rel.
> 5) convent rule, which convert from Calcite logical (NONE/Enumerable) to Drill logical
> For instance, ProjectMergeRule, which matches base Project, yet uses default RelFactory,
will match both LogicalProject and DrillProject, but produce LogicalProject as outcome. That
will cause the mixed rels.
> 2 things we may consider to fix this:
> 1) Separate the convent rules from the other transformation rules. Apply convert rule
first, then all the transformation rules match DrillLogical only. 
> 2) Every rule that Drill uses, except for convert rules, should assert the convention
of input and output have the same convention.
> [1] https://github.com/apache/drill/pull/444

This message was sent by Atlassian JIRA

View raw message