[
https://issues.apache.org/jira/browse/IGNITE-27432?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksey Plekhanov reassigned IGNITE-27432:
------------------------------------------
Assignee: Aleksey Plekhanov
> Calcite engine. Make query plan cache size tunable
> --------------------------------------------------
>
> Key: IGNITE-27432
> URL: https://issues.apache.org/jira/browse/IGNITE-27432
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksey Plekhanov
> Assignee: Aleksey Plekhanov
> Priority: Major
> Labels: calcite, ise
>
> Currently we have plans cache with hardcoded (1024) size. See
> \{{QueryPlanCacheImpl#CACHE_SIZE}}. This size must be tunable via dinamic
> configuration.
> Also, plans cache used for two different purposes:
> * Cache for query -> plan (to avoid planning)
> * Cache for json -> fragment (to avoid deserialization)
> This has the following disadvantages.
> * User can't rely on common CACHE_SIZE variable to know how many user
> queries can fit the cache, since some of the slots are occupied by fragments.
> * Plans cache is cleared on DDL, but fragments cache should not.
> * Plans cache requires query properties, such as schema, parameter types,
> etc, but fragments cache only requires json text.
> * For fragments cache we can return FragmentPlan, not QueryPlan, to avoid
> additional checks and casts (Map<String, FragmentPlan> type can be used).
> We should use different data structures for these caches.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)