João Fonseca created IGNITE-14787:
-------------------------------------

             Summary: ConnectionManager and H2Connection hard-coded sizes
                 Key: IGNITE-14787
                 URL: https://issues.apache.org/jira/browse/IGNITE-14787
             Project: Ignite
          Issue Type: Improvement
            Reporter: João Fonseca


There are hard-coded sizes used for internal structures in 
org.apache.ignite.internal.processors.query.h2.H2Connection 
(STATEMENT_CACHE_SIZE=256) and 
org.apache.ignite.internal.processors.query.h2.ConnectionManager 
(DFLT_CONNECTION_POOL_SIZE=32).

 

Also, the ConnectionManager creates a ConcurrentStripedPool with stripes based 
on the number of CPUs (configurable using queryThreadPoolSize, which by default 
= CPUs).

 

All the above can lead to excessive memory usage in servers with many CPUs. In 
my case, I'm running it on a 56 CPU machine, giving:

    56 * 32 * 256 -> roughly half a million prepared statements

    56 * 32 = 1792 connections

 

I was only able to limit these numbers through the queryThreadPoolSize, but 
there should be a way of also controlling the size of each stripe and prepared 
statement caches.

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to