flashfq · research · also FlashFQ I/O scheduler

FlashFQ

FlashFQ is a research SSD scheduler that combines start-time fair queueing with progress-based dispatch throttling and anticipation.

Related Observatory article: FlashFQ on hesela.com

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

related
I/O scheduler, Anticipatory scheduling, Work-conserving scheduler, Queue depth

Limitations

  • The Linux 2.6.33.4 evaluation disabled ext4 journaling because journal I/O was not charged back to originating applications. [1]

Citations

  1. Shen and Park. FlashFQ: A Fair Queueing I/O Scheduler for Flash-Based SSDs. USENIX ATC 2013, pp. 67-78, sections 4-6. (accessed 2026-11-08)

Further reading

  1. USENIX ATC 2013: FlashFQ publication record (accessed 2026-11-08)
  2. Hesela: Sharing an SSD: who pays for the slowdown? (accessed 2026-11-08)
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.

JSON: /data/terms/flashfq.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. FlashFQ. Hesela. 2026-11-08. https://hesela.dev/terms/flashfq/