[
https://issues.apache.org/jira/browse/IMPALA-7808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul Rogers updated IMPALA-7808:
--------------------------------
Summary: Refactor SelectStmt analyzer for easier debugging (was: Refactor
Analyzer for easier debugging)
> Refactor SelectStmt analyzer for easier debugging
> -------------------------------------------------
>
> Key: IMPALA-7808
> URL: https://issues.apache.org/jira/browse/IMPALA-7808
> Project: IMPALA
> Issue Type: Improvement
> Components: Frontend
> Affects Versions: Impala 3.0
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Priority: Minor
>
> The analysis steps in {{SelectStmt}} and {{AnalysisContext}} are large and
> cumbersome. There is ample evidence in the literature that simpler, smaller
> functions are easier to understand and debug than larger, more complex
> functions. This ticket requests breaking up the large functions in these two
> cases into smaller, easier-understood units in preparation for tracking down
> issues related to missing rewrites of the {{WHERE}} and {{GROUP BY}} clauses.
> One might argue that large functions perform better by eliminating
> unnecessary function calls. However, the planner is not performance
> sensitive, and the dozen extra calls that this change introduce will not
> change performance given the thousands of calls already made.
> Experience has shown that the JIT compiler in the JVM actually does a better
> job optimizing smaller functions, and gives up when functions get to large.
> So, by creating smaller functions, we may actually allow the JIT compiler to
> generate better code.
> And, this refactoring is in support of a possible outcome that the planner
> can handle rewrites without making multiple passes through the analyzer: that
> savings will far outweigh the few extra calls this change introduces.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]