Disk Storage Two-Queue Request Management for QoS
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In data storage systems, large request queues increase response time, which is detrimental for high-priority requests that require minimal access time, while low-priority requests prioritize throughput over latency, necessitating a method to differentiate and manage storage requests effectively based on priority levels.
Innovation Solution
Implementing a method that divides storage requests into high-priority and low-priority queues, with high-priority requests being executed ahead of low-priority requests when their priority level is higher, and adjusting queue placement based on the number of outstanding higher-priority requests to optimize throughput and response time, utilizing a multiple-priority service scheme.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a large request queue is used to improve throughput, then the number of requests per unit time increases, but the response time or access time for requests increases
Solution Approach 1:
The request queue is segmented into multiple priority queues (high-priority and low-priority queues), allowing the system to maintain a large overall queue capacity while providing differentiated service. High-priority requests are serviced from the high-priority queue with minimal delay, while low-priority requests utilize the low-priority queue to contribute to overall throughput without blocking high-priority requests.
2Loss of time
If high-priority requests are always serviced first to minimize access time, then response time for high-priority requests improves, but throughput for low-priority requests decreases
Solution Approach 1:
The queue management system dynamically adjusts the servicing strategy based on request priority. The system transitions from a static single-queue FIFO approach to a dynamic multi-queue approach where the servicing order is flexible and adapts to the priority levels of incoming requests, allowing high-priority requests to be interrupted and serviced immediately while maintaining throughput for low-priority requests.
3Device complexity
If a single queue is used to simplify queue management, then device complexity is reduced, but the ability to provide differentiated service quality deteriorates
Solution Approach 1:
The queue management system is segmented into multiple priority queues, each handling requests of specific priority levels. This segmentation enables quality of service differentiation without requiring complex individual management of each queue, as the queues operate semi-independently with clear priority-based servicing rules.
Solution Approach 2:
Each priority queue is optimized for its specific function: the high-priority queue is optimized for minimal response time with direct access to the disk drive, while the low-priority queue is optimized for throughput with scheduling that considers overall system utilization. This local optimization allows each queue to be simple while the overall system provides sophisticated QoS differentiation.
Data Source
AI summary
Storage requests are divided into high-priority requests generally requiring low response time and low-priority requests generally requiring high throughput. The high-priority requests are further divided into several priorities reflecting different classes of service. The low-priority requests are placed on a low-priority request queue where they are executed in a throughput-optimizing order generally different from their arrival order. For each high-priority request, if there are not more than a predetermined number n (e.g., 1) outstanding requests for execution by the disk drive of greater priority, then the request is placed on a high-priority request queue where it is generally executed ahead of requests on the low-priority request queue. If there are more than n such greater-priority requests outstanding, then the high-priority request is placed on the low priority request queue and included in the throughput optimization along with the low-priority requests. The number of priority levels for the high priority requests may be two or more, and in one illustrated embodiment is equal to three.


