Background on Use case: We have around 10000 tasks that we want to run across
ignite cluster. These tasks will be submitted by multiple independent client
nodes. Each task will have a priority and task key. Two tasks with the same
taskKey should not be running in parallel. Execution of all the tasks should
be based on priority. As far as I know, ignite does not provide locking
between two tasks and it does not provide a way to distribute tasks based on
its priority *across *the cluster.

To meet the above requirements, we have a cluster singleton monitoring
ignite service which will create the compute tasks and distribute them
across the cluster. It will take care of priority and locking. All clients
will create a cache object(based on which service can create actual compute
tasks) and store it in the cache store. Service will query the cache-store
to find the next set of valid tasks based on priority and locking.

We need native persistence because even if the cluster goes down, it should
not lose the tasks that were sent by the clients. And only ignite service
will be dealing with these task objects, we are thinking of enabling it only
for the cluster node on which our ignite service is hosted.

Let me know if this makes sense or if you see any red flags.

Thanks,
Krish







--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to