Application Server Task Prioritization via Priority Queue Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Application servers face inefficiencies due to 'blocking' tasks that cause system latencies and resource underutilization, as well as thread starvation from greedy threads, leading to slowed throughput and unresponsive servers.
Innovation Solution
Implementing a priority queue system within resource managers that distinguishes tasks based on their processing phases, prioritizing tasks in their final phase to ensure faster processing and efficient resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If a single queue is used for task management, then the system structure is simple, but tasks in final phase cannot be prioritized causing increased system latency
Solution Approach 1:
The patent divides the single task queue into multiple queues: a priority queue for tasks in final phase and a standard queue for other tasks. This segmentation allows differentiated handling of tasks based on their processing phase, enabling priority processing of near-complete tasks while maintaining manageable system complexity through structured organization.
2Productivity
If thread pooling is used to avoid costly thread construction, then thread creation overhead is reduced, but thread starvation occurs when greedy threads monopolize shared resources
Solution Approach 1:
The patent changes the priority parameter of tasks based on their processing phase. Tasks in final phase are assigned high priority, while tasks in business logic phase are assigned normal priority. This dynamic parameter change ensures that near-complete tasks can preempt resource-hogging tasks, preventing thread starvation while maintaining efficient thread pooling.
3Reliability
If blocking tasks are processed, then the task is completed, but other tasks must wait causing resource underutilization
Solution Approach 1:
The patent introduces a priority queue as an intermediary mechanism between task submission and resource allocation. This intermediary allows the system to buffer and prioritize tasks dynamically, ensuring that non-blocking tasks in final phase can access resources immediately while blocking tasks wait, thereby maintaining both task completion reliability and high system throughput.
Data Source
AI summary
A method, system, computer program product and a computer program for prioritizing queued tasks waiting to access a resource associated with a resource manager in an application server, wherein an incoming task received at the application server from a calling application may have a status indicating that the incoming task is in a final phase during which a response to the calling application is created, the method comprising: receiving the incoming task; identifying the status of the incoming task; in response to identifying that the status of the incoming task is in the final phase, placing the incoming task in a priority queue; analyzing any queued tasks waiting to access the resource in the priority queue and one or more other queues; and processing a queued task from the priority queue in preference to the one or more other queues.


