IO Request Scheduler With Adjustment Layer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current data management and storage systems face challenges in balancing IO requests of varying priorities, leading to limitations in system throughput, latency, and resource allocation, as existing scheduling methods fail to effectively manage conflicting goals such as prioritization and concurrency.
Innovation Solution
An IO request scheduler is implemented with a kernel scheduler and an adjustment layer that provides a grace period for high-priority requests, allows concurrent processing of requests, and enforces dynamic minimum throughput for lower-priority requests to prevent starvation, thereby optimizing resource allocation and system performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If complete control over the disk is taken by the scheduler, then high-priority IO requests can be serviced promptly, but the system loses flexibility in balancing conflicting goals and overall throughput is limited
Solution Approach 1:
The scheduler segments IO requests into different priority queues (highest priority, high priority, medium priority, low priority) and applies different scheduling policies to each queue. This allows the system to provide exclusive access to high-priority requests while maintaining flexibility to balance throughput and latency through configurable parameters like grace periods and concurrency limits.
2Ease of operation
If token bucket scheduling is used to manage IO requests, then some level of prioritization is achieved, but the system still has limitations in handling conflicting goals of throughput and latency
Solution Approach 1:
The scheduler implements dynamic adjustment of scheduling parameters based on real-time conditions. The grace period duration, concurrency limits, and throughput enforcement are dynamically modified based on the current state of IO queues and system load, allowing the system to adapt to changing priorities and maximize both throughput and latency performance.
3Ease of operation
If stride scheduling is used for IO requests, then basic request management is achieved, but the system cannot effectively enforce minimum throughput for lower-priority requests to prevent starvation
Solution Approach 1:
The scheduler implements feedback mechanisms that monitor the throughput of each priority queue and adjust scheduling decisions accordingly. Lower-priority queues receive feedback about their throughput status, and the scheduler dynamically modifies their service rate to ensure minimum throughput guarantees and prevent starvation, while still allowing high-priority requests to be serviced promptly.
4Productivity
If concurrent IO requests are allowed without limits, then system throughput increases, but lower-priority requests may be completely starved
Solution Approach 1:
The scheduler changes key parameters including grace period duration, maximum concurrency limits, and minimum throughput enforcement based on request priority levels. These parameter changes allow the system to maintain high throughput by permitting concurrent requests while simultaneously preventing starvation of lower-priority requests through enforced minimum service rates and grace period mechanisms.
Data Source
AI summary
In some examples, a data management and storage (DMS) system comprises peer DMS nodes in a node cluster, a distributed data store comprising local and cloud storage, and an IO request scheduler comprising at least one processor configured to perform operations in a method of scheduling IO requests. Example operations comprise implementing a kernel scheduler to schedule a flow of IO requests in the DMS system, and providing an adjustment layer to adjust the kernel scheduler based on an IO request prioritization. A flow of IO requests is identified and some examples implement an IO request prioritization based on the adjustments made by the adjustment layer.


