Hello,

If my memory doesn't fail me, in the pre-Ignite versions of GridGain, it was 
possible to configure custom executor services which would then be used to 
create the public, system, utility, etc. thread pools. In Ignite however it's 
only possible to configure the size of the thread pools and not their 
implementations. 

This is unfortunate as I'd like to be able to configure my own ThreadFactory. 
My implementation would for example ensure that newly created threads have 
their thread locals properly initialized (for example, by storing the local 
instance of Ignite in it). Specific use case is being able to get hold of the 
local Ignite instance during deserialization when the JVM instance has multiple 
Ignite nodes started. Some of my classes must be able to access resources that 
are local to the node on which they are being deserialized. At the moment there 
is absolutely no way of achieving something like that.

I'm wondering if it would be possible to add this feature back to Ignite? It 
seems to be indispensable for unit testing. 

Alternatively, to reduce the impact on the public API, an environment variable 
that takes an FQN of the ThreadFactory to use would also work. It would be 
injectable with the Ignite resources in the manner similar to how it's done for 
the closures and factories...

Regards
Andrey

PS. While we're at it, I also remember that in the pre-Ignite versions it was 
possible to inject an instance of the public executor service into the 
closures. Not anymore. It causes the inconvenience of starting another thread 
pool while there is already a public pool managed by Ignite with plenty of 
threads idling most of the time... It feels wasteful.
                                          

Reply via email to