Transactional IO Scheduler for Multi-Device Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Quality of Service (QoS) throttling in storage systems is limited to single disk operations and does not effectively prioritize IO requests across multiple storage devices, particularly neglecting the differences between Solid State Drives (SSD) and Hard Disk Drives (HDD) for optimal scheduling.
Innovation Solution
An IO tagging module tags child IO requests with unique identifiers, allowing a transactional IO scheduler to prioritize and group requests based on tags, optimizing dispatch policies across multiple storage devices to enhance IO performance by considering the type and status of each device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional QoS throttling is used for IO prioritization, then single disk IO operations can be controlled, but multi-device IO scheduling effectiveness deteriorates due to inability to differentiate between SSD and HDD characteristics
Solution Approach 1:
The patent segments the storage system into multiple independent storage devices (SSDs and HDDs) with device-specific QoS policies. Each storage device is treated as a separate entity with its own priority levels and throttling parameters, allowing differentiated control rather than uniform QoS application across all devices.
Solution Approach 2:
The patent applies local quality by implementing device-specific QoS characteristics tailored to each storage device type. SSDs receive different priority treatments compared to HDDs based on their performance characteristics, with each device having customized throughput limits, IOPS constraints, and latency targets appropriate to its capabilities.
2Ease of operation
If QoS throttling is applied at system level, then overall IO control is simplified, but device-specific optimization deteriorates due to lack of consideration for underlying storage device types
Solution Approach 1:
The patent implements dynamic QoS policies that automatically adjust throttling parameters based on real-time device status, workload characteristics, and device type. The system dynamically selects appropriate priority levels and throughput limits for each storage device, adapting to changing conditions rather than applying static system-wide rules.
Solution Approach 2:
The patent changes QoS parameters at the device level rather than system level, allowing independent adjustment of throughput limits, IOPS constraints, and latency targets for each storage device. This enables fine-grained parameter optimization for SSDs versus HDDs while maintaining centralized policy management.
3Device complexity
If child IO requests are serviced independently without transactional grouping, then individual IO processing is simplified, but transactional IO completion time deteriorates due to lack of coordinated scheduling
Solution Approach 1:
The patent merges multiple child IO requests into transactional groups that are scheduled and executed together. Related child IOs (such as those accessing different segments of the same file or requiring coordinated access patterns) are combined into single scheduling units, reducing the total number of scheduling decisions and improving transactional completion times.
Solution Approach 2:
The patent performs preliminary grouping and prioritization of child IO requests before they are dispatched to storage devices. By pre-organizing IOs into transactional cohorts and determining their relative priorities in advance, the system reduces scheduling overhead during actual IO execution and ensures coordinated access patterns.
Data Source
AI summary
In one embodiment, a storage system includes a processor, a memory coupled to the processor to store instructions for execution, and an IO tagging module executed by the processor to determine a plurality of child IO requests required to complete a plurality of received IO request transactions and to tag the IO request transaction and/or the associated child IO requests with a tag identifier uniquely identifying the IO request transaction. The system includes an IO scheduler module executed by the processor to prioritize the IO request transactions according to a policy by grouping the child IO requests based on the associated tag identifier. The grouped child IO requests of the IO request transactions are serviced by a plurality of storage devices of the storage system for an optimal performance.


