Window-Based Fair Priority Scheduling for Task Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional scheduling and routing systems fail to provide fairness in task scheduling for a large number of simultaneous users, especially when tasks cannot be divided or time-shifted, and managing multiple queues complicates priority metric computation.
Innovation Solution
A task scheduler that employs a single priority queue with a window-based system, where tasks are assigned a task-window key based on user-window keys and priority increments, ensuring fair scheduling by allowing each user to have multiple user-window keys and a maximum task limit per window, thus maintaining fairness and minimizing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple queues are used to manage tasks from different users, then fairness can be maintained, but device complexity increases due to managing multiple queues and computing priority metrics
Solution Approach 1:
The patent merges multiple user-specific queues into a single shared priority queue. Tasks from different users are inserted into this single queue with priority values that encode both user identity and task priority. This eliminates the need to manage multiple separate queues while maintaining fairness through the priority-based scheduling mechanism.
Solution Approach 2:
The single priority queue serves multiple functions: it stores tasks from all users, encodes user identity within task priority values, and enables fair scheduling across all users. This universal structure replaces the need for user-specific queues while maintaining the ability to differentiate and fairly schedule tasks from different users.
2Reliability
If tasks are scheduled using conventional WFQ or GPS methods, then bandwidth allocation can be controlled, but latency increases due to iterating over multiple queues
Solution Approach 1:
The patent extracts the iteration overhead by directly accessing tasks based on their priority values without needing to iterate through multiple queues. The priority queue structure allows O(1) or O(log n) access to the highest priority task regardless of which user submitted it, eliminating the time-consuming iteration process inherent in conventional multi-queue systems.
3Device complexity
If a single priority queue is used to handle all users, then device complexity is reduced, but ensuring fairness for all users becomes more difficult
Solution Approach 1:
The patent applies local quality by encoding user-specific information within the task priority value itself. Each task carries a priority value that reflects both its urgency and its user's allocation rights. This allows the single queue to maintain fairness by treating each task according to its locally-encoded priority characteristics while using a globally simple queue structure.
Data Source
AI summary
A system provides a task scheduler to define a priority queue with at least one window and a queue-window key. Each window is an ordered collection of tasks in a task pool of the priority queue and is identified by the queue-window key. The task scheduler sets a task-window key equal to a user-window key when the user-window key is greater than the minimum queue-window key. The task scheduler can further set the task-window key equal to the minimum queue-window key when the user-window key is less than the minimum queue-window key. A maximum task limit per user for each window and a priority increment for the user-window key are further applied to ensure fair scheduling.


