You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Vasiliy Sisko <vs...@gridgain.com> on 2016/01/22 04:09:08 UTC

Pool size limits

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<Runnable>(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));

            marshCacheExecSvc = new IgniteThreadPoolExecutor(
                "marshaller-cache",
                cfg.getGridName(),
>>                myCfg.getMarshallerCacheThreadPoolSize(),
>>                DFLT_SYSTEM_MAX_THREAD_CNT,
                myCfg.getMarshallerCacheKeepAliveTime(),
                new
LinkedBlockingQueue<Runnable>(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<Runnable>(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));

            marshCacheExecSvc = new IgniteThreadPoolExecutor(
                "marshaller-cache",
                cfg.getGridName(),
                myCfg.getMarshallerCacheThreadPoolSize(),
>>                myCfg.getPublicThreadPoolSize(),
                myCfg.getMarshallerCacheKeepAliveTime(),
                new
LinkedBlockingQueue<Runnable>(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP));

Thoughts?

-- 
Vasiliy Sisko
GridGain Systems
www.gridgain.com

Re: Pool size limits

Posted by Denis Magda <dm...@gridgain.com>.
Hi Vasiliy,

Thanks for catching this issue!

If to refer how the rest of the pools are initialized both initial and max
size of utility cache pool must be the  equal
(myCfg.getUtilityCacheThreadPoolSize()). The same is for marshalling pool.

Fixed the issue and merged into the master.

Regards,
Denis



--
View this message in context: http://apache-ignite-developers.2346864.n4.nabble.com/Pool-size-limits-tp6741p6932.html
Sent from the Apache Ignite Developers mailing list archive at Nabble.com.