Hello Ignite-Community!

as some of you might have read, I'm using Ignite as local Off-heap caches
only.
I limited the discovery to localhost and therefore I don't need threads
which are just active to handle e.g. grid topics.

I would like to reduce the amount of threads to an minimum.
The Off-heap cache-access (read/write) should be fast, but everything else
isn't needed.
It might not matter a lot in an average case to have some additional
threads, however, the server as well as the cache are under heavy load and
therefore every useless context-switch should be avoided.

I'm currently experimenting with the following config:

IgniteConfiguration configuration = new IgniteConfiguration()
        .setDiscoverySpi(localNodeDiscovery) //limit to localhost
        .setDaemon(false);

TcpCommunicationSpi communicationSpi = new TcpCommunicationSpi();
communicationSpi.setSelectorsCount(1);
configuration.setCommunicationSpi(communicationSpi);

ConnectorConfiguration connectorConfiguration = new
ConnectorConfiguration();
connectorConfiguration.setSelectorCount(1);
configuration.setConnectorConfiguration(connectorConfiguration);

configuration.setClockSyncFrequency(Integer.MAX_VALUE);
configuration.setUtilityCachePoolSize(1);
configuration.setManagementThreadPoolSize(1);
configuration.setPublicThreadPoolSize(1);
configuration.setRebalanceThreadPoolSize(1);
configuration.setSystemThreadPoolSize(4);


and CacheConfiguration.setEagerTtl(false) for caches which don't need a TTL
for its entries.

1)
Do you see any issue with this config that impacts the described use-case?


2)
Are there other threads I can get rid of as well?
(currently there are still ~20 threads from Ignite on an average
developer-machine.)
I'm e.g. wondering about
 a) disco-event-worker
 b) exchange-worker
 c) grid-time-coordinator
 d) grid-time-server-reader
 e) ignite-clock
 f) nio-acceptor
 g) pub-*
 h) session-timeout-worker
 i) tcp-disco-msg-worker
 j) tcp-disco-srvr

Any hint is appreciated,
Peter

Reply via email to