You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2015/02/24 21:15:04 UTC

[jira] [Created] (CALCITE-604) Invoke metadata providers via MethodHandle rather than reflection

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)