Application Server Task Prioritization via Priority Queue Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem latencyVSAvoidqueue structure complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvethread utilization efficiencyVSAvoidthread availability
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If blocking tasks are processed, then the task is completed, but other tasks must wait causing resource underutilization

Engineering Contradiction:
Improvetask completionVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240086216A1Prioritizing tasks of an application server
Publication Date: 2024.03.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240086216A1 patent drawing
  • US20240086216A1 patent drawing
  • US20240086216A1 patent drawing

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.