Aleksey Plekhanov created IGNITE-27432:
------------------------------------------

             Summary: 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


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)

Reply via email to