Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-906

Runtime code generation for evaluating expression trees

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.0
    • Component/s: Physical Operator
    • Labels:
      None

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hyunsik Hyunsik Choi
                Reporter:
                hyunsik Hyunsik Choi
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: