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/
