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)