[ 
https://issues.apache.org/jira/browse/CALCITE-1808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026683#comment-16026683
 ] 

Julian Hyde commented on CALCITE-1808:
--------------------------------------

Including the planner in the key of the cache wouldn't work. It would tend to 
prevent planners from being garbage collected.

> JaninoRelMetadataProvider loading cache might cause OOM error
> -------------------------------------------------------------
>
>                 Key: CALCITE-1808
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1808
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Jagruti Varia
>            Assignee: Julian Hyde
>         Attachments: calcite-retained-strong-refs.png
>
>
> JaninoRelMetadataProvider has a static handler cache with size increasing 
> over time for long running HS2, ending up causing OOM errors.
> {code:java}
>   /** Cache of pre-generated handlers by provider and kind of metadata.
>    * For the cache to be effective, providers should implement identity
>    * correctly. */
>   private static final LoadingCache<Key, MetadataHandler> HANDLERS =
>       CacheBuilder.newBuilder().build(
>           new CacheLoader<Key, MetadataHandler>() {
>             public MetadataHandler load(@Nonnull Key key) {
>               //noinspection unchecked
>               return load3(key.def, key.provider.handlers(key.def),
>                   key.relClasses);
>             }
>           });
> ...
>   /** Key for the cache. */
>   private static class Key {
>     public final MetadataDef def;
>     public final RelMetadataProvider provider;
>     public final ImmutableList<Class<? extends RelNode>> relClasses;
> ...
> {code}
> The lifecycle for providers is per query and we have multiple providers 
> instantiated on the lifecycle of a query. The entries are retained in the 
> cache even when query planning has finished.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to