If I understand correctly, the SQL query is executed within every task on
each of the nodes and it is not set to be a local query. Correct?

If so then what you are really doing is executing the SQL queries from all
the nodes to all the nodes. This is bound to be inefficient.

In essence what you want to do is make your tasks work at a local level
only. Why not just switch to simple distributed closures and broadcast the
same task to all the nodes but configure the SQL query within the task to
execute as local one - setLocal(true). I mean you are already using
ComputeTaskSplitAdapter which abstracts the only difference between
closures: the capability to automatically assign jobs to nodes. Broadcasting
the same task with a local query means the same task would execute on all
the nodes in parallel and perform only a local query on the node it is
running on. Then your tasks can proceed to do the required calculations and
write the results etc. 



--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/Distributed-Closures-VS-Executor-Service-tp11192p11758.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to