Hyunsik Choi created TAJO-906:
---------------------------------

             Summary: Runtime code generation for evaluating expression trees
                 Key: TAJO-906
                 URL: https://issues.apache.org/jira/browse/TAJO-906
             Project: Tajo
          Issue Type: Sub-task
          Components: physical operator
            Reporter: Hyunsik Choi
            Assignee: Hyunsik Choi
             Fix For: 0.9.0


We have used EvalNode for two purposes:
 * logical planning of expressions
 * evaluation of expressions

EvalNode still is very nice for the purpose of logical planning. But, each 
EvalNode tree takes Datum included in a tuple and results in a Datum as a 
evaluation result. 

So, the current approach requires many object creations, and causes interpret 
overheads, meaning that each one evaluation involves tree traverses and many 
function calls. interpretation involves also many branches, and it is harmful 
to CPU pipelining.

I propose Java byte code generation for each expression, and I'll use ASM 
(http://asm.ow2.org/) for it. This approach will write native java byte code, 
eliminating many condition branches and function calls. In addition, it is 
easier to deal with java primitive data types for expressions.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to