Julian Hyde created CALCITE-604:
-----------------------------------

             Summary: Invoke metadata providers via MethodHandle rather than 
reflection
                 Key: CALCITE-604
                 URL: https://issues.apache.org/jira/browse/CALCITE-604
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde
            Assignee: Julian Hyde


JDK 1.7 introduced 
http://docs.oracle.com/javase/7/docs/api/java/lang/invoke/MethodHandle.html, a 
more efficient way to invoke methods. Access control etc. is done when the 
handle is created, not each invocation.

Currently calls to metadata providers are dispatched via reflection 
(Method.invoke, see ReflectiveRelMetadataProvider, ChainedRelMetadataProvider 
and CachingInvocationHandler), and I suspect that planning a complex query 
(especially with tracing enabled) makes millions of calls. Moving to 
MethodHandle would improve performance.



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

Reply via email to