Wenhai created ASTERIXDB-1686:
---------------------------------

             Summary: Optimized plan doesn't converge
                 Key: ASTERIXDB-1686
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1686
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: AsterixDB
         Environment: MAC/LINUX
            Reporter: Wenhai
            Assignee: Wenhai


The query plan seems not converge in the current rule collections.
Operation
We changed the APIFramework as following:
{noformat}
   private static List<Pair<AbstractRuleController, 
List<IAlgebraicRewriteRule>>>
            buildDefaultLogicalRewrites(CompilerExtensionManager 
ccExtensionManager) {
        List<Pair<AbstractRuleController, List<IAlgebraicRewriteRule>>> 
defaultLogicalRewrites = new ArrayList<>();
        SequentialFixpointRuleController seqCtrlNoDfs = new 
SequentialFixpointRuleController(false);
        SequentialFixpointRuleController seqCtrlFullDfs = new 
SequentialFixpointRuleController(true);
        SequentialOnceRuleController seqOnceCtrl = new 
SequentialOnceRuleController(true);
        defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, 
RuleCollections.buildInitialTranslationRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, 
RuleCollections.buildTypeInferenceRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, 
RuleCollections.buildAutogenerateIDRuleCollection()));
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildNormalizationRuleCollection(ccExtensionManager)));
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildLoadFieldsRuleCollection()));
        // fj
        defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildFuzzyJoinRuleCollection()));
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildNormalizationRuleCollection(ccExtensionManager)));
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildLoadFieldsRuleCollection()));
        //
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildNormalizationRuleCollection(ccExtensionManager)));
        defaultLogicalRewrites
                .add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildCondPushDownAndJoinInferenceRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlFullDfs, 
RuleCollections.buildLoadFieldsRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqOnceCtrl, 
RuleCollections.buildDataExchangeRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildConsolidationRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildAccessMethodRuleCollection()));
        defaultLogicalRewrites.add(new Pair<>(seqCtrlNoDfs, 
RuleCollections.buildPlanCleanupRuleCollection()));

        //put TXnRuleCollection!
        return defaultLogicalRewrites;
    }
{noformat}
which means we conducted the three two-round collections 
NormalizationRuleCollection, PushDownAndJoinInferenceRuleCollection and 
LoadFieldsRuleCollection to run three time.
Results:
{noformat}
ExecutionTests executed successfully.
OptimizerTests has 59 errors and more of them are reasonable in terms of the 
rules.
{noformat}
Our current master has some plans that are not optimized completely?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to