[ 
https://issues.apache.org/jira/browse/IGNITE-12248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16981405#comment-16981405
 ] 

Roman Kondakov commented on IGNITE-12248:
-----------------------------------------

[~gvvinblade], I've taken a look to your approach and overall it seems to be 
very good.

I just have a list of minor questions:
 # Why do we need spring dependencies in calcite/pom.xml?
 # Are we going to support {{_key}} and {{_val}} columns in the new engine? Why?
 # Why do we use java serialization in calcite.serialize package?
 # What is the purpose of {{CalciteSchemaHolder}}? Why don't use just 
{{RootSchema}}? I haven't got the idea.
 # Why do we need {{IgnitePlanner}}? It is almost certain copy of 
{{org.apache.calcite.prepare.PlannerImpl}}
 # Why do we wrap everything into {{Context}}? Even query itself. Do we really 
need it? See {{CalciteQueryProcessor#context()}}. Excessive use of 
wrap/unwrap/chaining/etc methods affects code readablity.
 # Looks like {{RelOp}} interface is redundant. Also as usage of {{BiFunction}} 
in {{Commons#transformSubset}}. IMO we need to avoid excessive using of lambdas 
and functions. It affects readability too.
 # Why do we need to have {{DistributionRegistry}}? Aren't tables aware of 
their distributions?
 # IgniteMdDistribution#join - there is a list of differnet types of joins and 
there is also a statement that "others are impossible". Why broadcast LEFT JOIN 
hash is impossible?
 # What is the difference between implementor and visitor? See 
{{RelImplementor}}. If there are no differences, why don't use the word 
{{Visitor}} instead of {{Implementor}} just because it is the well known 
pattern?

> Apache Calcite based query execution engine
> -------------------------------------------
>
>                 Key: IGNITE-12248
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12248
>             Project: Ignite
>          Issue Type: Task
>          Components: sql
>            Reporter: Igor Seliverstov
>            Assignee: Igor Seliverstov
>            Priority: Major
>
> Currently used H2 based query execution engine has a number of critical 
> limitations Which do not allow to execute an arbitrary query.
> The ticket aims to show potential of a new, Calcite based, execution engine 
> which may act not worse than current one on co-located queries, provide a 
> boost for queries, using distributed joins, and provide an ability to execute 
> arbitrary queries, requiring more than one map-reduce step in execution flow.
> [IEP 
> link|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=130028084]
> [Dev list 
> thread|http://apache-ignite-developers.2346864.n4.nabble.com/New-SQL-execution-engine-td43724.html]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to