Hello.
I found that IgniteConfiguration.utilityCachePoolSize and
IgniteConfiguration.marshCachePoolSize are limited by a constant
IgniteConfiguration.DFLT_SYSTEM_MAX_THREAD_CNT that is equals to
DFLT_PUBLIC_THREAD_CNT and does not used any more.
IgnitionEx:1661:
utilityCacheExecSvc = new IgniteThreadPoolExecutor(
"utility",
cfg.getGridName(),
>>myCfg.getUtilityCacheThreadPoolSize(),
>>DFLT_SYSTEM_MAX_THREAD_CNT,
myCfg.getUtilityCacheKeepAliveTime(),
new
LinkedBlockingQueue(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));
marshCacheExecSvc = new IgniteThreadPoolExecutor(
"marshaller-cache",
cfg.getGridName(),
>>myCfg.getMarshallerCacheThreadPoolSize(),
>>DFLT_SYSTEM_MAX_THREAD_CNT,
myCfg.getMarshallerCacheKeepAliveTime(),
new
LinkedBlockingQueue(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));
We can configure these properties more then default limit and catch runtime
exception.
DFLT_PUBLIC_THREAD_CNT configure default value of
IgniteConfiguration.pubPoolSize.
I think we should limit these pool sizes by value of
IgniteConfiguration.pubPoolSize, f.e.:
utilityCacheExecSvc = new IgniteThreadPoolExecutor(
"utility",
cfg.getGridName(),
myCfg.getUtilityCacheThreadPoolSize(),
>>myCfg.getPublicThreadPoolSize(),
myCfg.getUtilityCacheKeepAliveTime(),
new
LinkedBlockingQueue(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));
marshCacheExecSvc = new IgniteThreadPoolExecutor(
"marshaller-cache",
cfg.getGridName(),
myCfg.getMarshallerCacheThreadPoolSize(),
>>myCfg.getPublicThreadPoolSize(),
myCfg.getMarshallerCacheKeepAliveTime(),
new
LinkedBlockingQueue(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));
Thoughts?
--
Vasiliy Sisko
GridGain Systems
www.gridgain.com