You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Dechang Gu (JIRA)" <ji...@apache.org> on 2015/12/15 19:40:46 UTC

[jira] [Closed] (DRILL-3912) Common subexpression elimination in code generation

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

Dechang Gu closed DRILL-3912.
-----------------------------

Tested and Verified:  
For the following query: 

select * from comscore_512MB where 
l_orderkey in (1,2,3,4,5,6,7,8,9,10)  or
l_partkey in (20,30,40,55,60,70,80,90,100,101) or
l_suppkey in (11,21,32,44,55,66,77,88,99,111) or
l_linenumber in (12,22,32,42,52,62,72,82,92,102) or
l_quantity in (200,300,400,500,600,700,800,900,1000) or
l_extenededprice in (1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5) or
l_discount in (1.1,2.1,3.1,4.1,5.1,6.1,7.1,8.1,9.1,10.1) or
l_tax in (10,15,20,25,30,35,40,45,50,55) or
l_returnflag in ('r','b','y','d','a','c','p','x') 
limit 100
;

query time reduced by 25% (12s vs 16s), comparing 1.4.0 (gitId 32b871b) to
the one before the commit (gitid bb69f22  mapr-drill 1.3.0 branch).

LGTM.

> Common subexpression elimination in code generation
> ---------------------------------------------------
>
>                 Key: DRILL-3912
>                 URL: https://issues.apache.org/jira/browse/DRILL-3912
>             Project: Apache Drill
>          Issue Type: Improvement
>            Reporter: Steven Phillips
>            Assignee: Jinfeng Ni
>             Fix For: 1.3.0
>
>
> Drill currently will evaluate the full expression tree, even if there are redundant subtrees. Many of these redundant evaluations can be eliminated by reusing the results from previously evaluated expression trees.
> For example,
> {code}
> select a + 1, (a + 1)* (a - 1) from t
> {code}
> Will compute the entire (a + 1) expression twice. With CSE, it will only be evaluated once.
> The benefit will be reducing the work done when evaluating expressions, as well as reducing the amount of code that is generated, which could also lead to better JIT optimization.



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