Shared Request Grouping in Computing Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems, the first come, first served queuing method for resource requests can lead to low parallelism and inefficiency in shared request execution, causing slow process execution and resource underutilization, especially when exclusive and shared requests alternate in the queue.
Innovation Solution
A queuing module groups shared requests together while ensuring that the grouping does not violate the deferral limits of waiting exclusive requests, allowing multiple shared requests to execute in parallel and improving system performance by tagging exclusive requests with deferral limits that prevent starvation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If shared requests are processed in FIFO order with exclusive requests, then fairness and starvation prevention are maintained, but parallelism and throughput are reduced
Solution Approach 1:
The patent merges multiple shared requests into a single grouped request that can be processed in parallel. The queuing module identifies consecutive shared requests in the FIFO queue and combines them into one execution unit, allowing simultaneous processing while maintaining the original FIFO ordering semantics for exclusive requests.
Solution Approach 2:
The patent introduces dynamic behavior to the static FIFO queue by allowing the queuing module to adaptively group shared requests based on their type and position in the queue. The system dynamically determines whether to group requests together or process them individually based on current queue conditions and deferral limits.
2Productivity
If shared requests are grouped together for parallel execution, then throughput and resource utilization improve, but exclusive requests may be deferred indefinitely causing starvation
Solution Approach 1:
The patent applies preliminary action by assigning deferral limits to exclusive requests before they are processed. When an exclusive request is placed in the queue, the system pre-calculates and stores a deferral limit value that specifies the maximum number of shared requests that can be grouped ahead of it. This prevents indefinite deferral while still allowing beneficial grouping.
Solution Approach 2:
The patent implements feedback mechanisms where the queuing module continuously monitors the queue composition and adjusts grouping decisions based on deferral limit constraints. When evaluating whether to group shared requests, the system checks against the deferral limits of intervening exclusive requests and modifies grouping behavior accordingly, providing feedback control to balance throughput and fairness.
3Productivity
If the system allows flexible grouping of shared requests, then parallelism increases, but queue management complexity increases
Solution Approach 1:
The patent segments the queue management function into distinct logical components: the FIFO queuing layer that maintains original ordering, and the grouping layer that identifies and combines shared requests. The queuing module operates as a separate component that processes the FIFO queue and applies grouping rules, separating the complexity of grouping logic from the basic FIFO mechanism.
Data Source
AI summary
A queuing module is configured to determine the presence of at least one shared request in a request queue, and in the event at least one shared request is determined to be present in the queue; determine the presence of a waiting exclusive request located in the queue after the at least one shared request, and in the event a waiting exclusive request is determined to be located in the queue after the at least one shared request: determine whether grouping a new shared request with the at least one shared request violates a deferral limit of the waiting exclusive request; and, in the event grouping the new shared request with the at least one shared request does not violate the deferral limit of the waiting exclusive request, group the new shared request with the at least one shared request.


