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 2016/01/19 02:11:39 UTC
[jira] [Commented] (CALCITE-604) Invoke metadata providers via
MethodHandle rather than reflection
[ https://issues.apache.org/jira/browse/CALCITE-604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15106069#comment-15106069 ]
Julian Hyde commented on CALCITE-604:
-------------------------------------
Work in progress at https://github.com/julianhyde/calcite/tree/604-tune-metadata.
> 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)