Search code examples
ignite

Can Ignite distributed executor services supported a distributed PRIORITY queue?


I can create a "standalone, normal" (ie not using Ignite; not distributed) executor service using a priority blocking queue by following the simple example from https://jvmaware.com/priority-queue-and-threadpool/

However, is there a way to have a distributed priority queue for distributed executor services under Apache Ignite?


Solution

  • How strict does the ordering need to be? Ordering is hard on distributed systems...

    Let me explain. In Ignite, task execution is managed at two levels. First, the system decides which node should execute the task. That's load balancing. Once on a node, the system must decide which task to execute next. That's task scheduling.

    One of the options for task scheduling is a priority queue. However, there's no global queue. On average, high-priority tasks should get executed first, but there's no guarantee across nodes that will always be the case.