[ https://issues.apache.org/jira/browse/DRILL-6763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16628279#comment-16628279 ]
Pritesh Maker commented on DRILL-6763: -------------------------------------- [~karthikm] could you take a look at this improvement? You might be more familiar with codegen. > Codegen optimization of SQL functions with constant values > ---------------------------------------------------------- > > Key: DRILL-6763 > URL: https://issues.apache.org/jira/browse/DRILL-6763 > Project: Apache Drill > Issue Type: Improvement > Components: Execution - Codegen > Affects Versions: 1.14.0 > Reporter: shuifeng lu > Assignee: shuifeng lu > Priority: Critical > Fix For: 1.15.0 > > Attachments: Query1.java, Query2.java, code_compare.png, > compilation_time.png > > > Codegen class compilation takes tens to hundreds of milliseconds, a class > cache is hit when generifiedCode of code generator is exactly the same. > It works fine when UDF only takes columns or symbols, but not efficient when > one or more parameters in UDF is always distinct from the other. > Take face recognition for example, the face images are almost distinct from > each other according to lighting, facial expressions and details. > It is important to reduce redundant class compilation especially for those > low latency queries. > Cache miss rate and metaspace gc can also be reduced by eliminating the > redundant classes. > Here is the query to get the persons whose last name is Brunner and hire from > 1st Jan 1990: > SELECT full_name, hire_date FROM cp.`employee.json` where last_name = > 'Brunner' and hire_date >= '1990-01-01 00:00:00.0'; > Now get the persons whose last name is Bernard and hire from 1st Jan 1990. > SELECT full_name, hire_date FROM cp.`employee.json` where last_name = > 'Bernard' and hire_date >= '1990-01-01 00:00:00.0'; > Figure !compilation_time.png! shows the compilation time of the generated > code by the above query in FilterRecordBatch on my laptop > Figure !code_compare.png! shows the only difference of the generated code > from the attachments is the last_name value at line 156. > It is straightforward that the redundant class compilation can be eliminated > by making the string12 as a member of the class and set the value when the > instance is created -- This message was sent by Atlassian JIRA (v7.6.3#76005)