FlashFQ
FlashFQ is a research SSD scheduler that combines start-time fair queueing with progress-based dispatch throttling and anticipation.
Dispatch control: Min-SFQ(D) orders requests by virtual start tags and caps parallel dispatches at D. FlashFQ additionally blocks a task that advances too far ahead of the slowest active task. A depth limit alone does not regulate unequal service costs. [1]
Two timers: a completed synchronous request can leave its task temporarily active for virtual-time accounting without necessarily idling the device. A separate, shorter anticipation bound limits dispatch blocking that can leave pending work unserved. The prototype used 20 ms and 2 ms respectively; neither is a response-time guarantee. [1]
Cost model: request tags use estimated service cost, calibrated separately for reads and writes at two sizes. These are resource-accounting estimates, not measured completion deadlines. [1]
Relations
Limitations
- The Linux 2.6.33.4 evaluation disabled ext4 journaling because journal I/O was not charged back to originating applications. [1]
Citations
Further reading
Sources & caveats
- Primary-source synthesis of the full paper; no scheduler implementation or device benchmark was performed.
- The historical prototype is not a performance ranking for contemporary NVMe devices.