Slidable Window I/O Scheduling for Storage Starvation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for scheduling Input/Output (I/O) operations in storage devices often lead to starvation of less beneficial operations, as storage devices prioritize execution based on internal logic, resulting in missed deadlines and inefficiencies in real-time distributed systems.
Innovation Solution
A method employing a 'slidable window' approach, where a sequence of I/O operations is transmitted to an uncontrolled storage device, allowing for the forced execution of operations within the window, optimizing the execution order and minimizing starvation without requiring additional hardware or resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If storage device uses device-internal logic to prioritize execution of beneficial I/O operations, then throughput of storage device is optimized, but less beneficial I/O operations may be starved and remain unprocessed for long time
Solution Approach 1:
The patent implements a feedback mechanism where the host system monitors the execution status and timing of I/O operations returned from the storage device. When an I/O operation is not executed within its expected time window, the host receives feedback about this starvation condition and can adjust the transmission strategy accordingly, such as by reducing the window size or prioritizing time-sensitive operations in subsequent transmissions.
Solution Approach 2:
The patent employs dynamic adjustment of the I/O operation transmission window size based on observed execution patterns and starvation conditions. The window size is not fixed but adapts over time, expanding when the storage device can handle the load and contracting when starvation is detected, thereby balancing throughput optimization with fair execution of all operations.
2Productivity
If storage device skips execution of less beneficial I/O operations in favor of more beneficial ones, then execution efficiency is improved, but execution deadline of starved I/O operations may be missed
Solution Approach 1:
The patent applies preliminary action by transmitting a limited window of I/O operations to the storage device at a time, rather than allowing unlimited operations to be queued. This pre-limits the potential for starvation by controlling the volume of operations the storage device can selectively skip, ensuring that operations outside the current window are not indefinitely delayed.
Solution Approach 2:
The patent segments the stream of I/O operations into discrete windows of a specific size, where each window contains a controlled number of operations. This segmentation prevents any single operation from being starved indefinitely, as the window structure ensures that after a certain number of operations are processed or skipped, new operations are introduced into the transmission cycle.
3Productivity
If operating system generates I/O operations queue to prioritize certain processes, then disk bandwidth sharing is optimized, but constant maintenance of sequence causes disordering and starvation
Solution Approach 1:
The patent extracts the sequence maintenance and reordering logic from the storage device and places it at the host system level. The host transmits operations in small, manageable windows without requiring the storage device to maintain complex global sequences, thereby reducing the device complexity while still achieving efficient bandwidth sharing through host-controlled prioritization.
Data Source
AI summary
A method and a system for scheduling transmission of a plurality of input/output (I/O) operations to be executed by a storage device comprising: applying a slidable cell window to sequential I/O operations from a scheduled sequence, the slidable cell window being positioned over the sequential I/O operations starting with the first I/O operation, transmitting to the storage device the sequential I/O operations, receiving an operation execution confirmation from the storage device, determining a position of a given cell of the slidable cell window associated with the I/O operation, responsive to a position of the given cell being the first position of the slidable cell window: sliding the slidable cell window over the plurality of I/O operations so as to include at least one additional I/O operation in the slidable cell window, and transmitting to the storage device, the at least one additional I/O operation for execution.


