Tasks are sent to all nodes, that return from map() method, regardless of the provided ClusterGroup.

ClusterGroup only affects a list of nodes, that are specified in subgrid parameter. So, it's your responsibility to assign tasks to nodes, that match your needs. If you want to send them to nodes from a cluster group only, then you should consider only nodes from subgrid list.


пн, 4 дек. 2017 г. в 22:42, Chris Berry <>:
Hi Denis,

Thank you for responding.

>>> Can you provide a short summary of what you are trying to achieve?

The problem is this.

Ignite begins sending compute traffic to a Node (i.e. ComputeJobs), before
that Node is truly ready to take traffic. Basically, as soon as Ignite
starts and is balanced on a Node, it begins receiving compute traffic.

This is wrong.
It means that as a Node starts up, it is slammed with traffic it is not
ready to handle yet.
So. We must reject that traffic until we are ready (throw an Exception).
Which, then, fails that ComputeJob over to another Node.
This, of course, works. But it is costly, in terms of system throughput as
Nodes come and go in AWS.

We need the ability to notify a Node that it is ready to handle compute
Instead of Ignite *assuming* that the Node is ready as soon as Ignite is

It is a classic chicken-and-egg problem.
We need Ignite started and rebalanced, because we need to interact w/ some
Ignite caches.
Thus, we need to start Ignite before we can finish enabling the app.
In addition, many other things at startup things happen in the background,
such as Kafka streaming in data to some caches, etc.
And when all of this is complete, we toggle an “Alive switch” that indicates
that the Node is ready for business.

>>> The main thing that I don't understand is why you need a map method?
>>> This method is supposed to be used as a part of a map-reduce pipeline.
>>> It is aimed to split one big task into many small jobs.

This is exactly how we are using it.

But the question at hand here is about whether;
ignite.cluster.compute(ClusterGroup) is broken or not.

Because my logs clearly show me that even though I am absolutely certain
that a ClusterGroup, passed to the compute() method, does NOT contain a
particular Node.
I can see that Node receiving ComputeJobs.

I do not see how that can be possible.

-- Chris

Sent from: