{
  "slug": "flashfq",
  "term": "FlashFQ",
  "aliases": [
    "FlashFQ I/O scheduler"
  ],
  "definition": "FlashFQ is a research SSD scheduler that combines start-time fair queueing with progress-based dispatch throttling and anticipation.",
  "note": "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. [flashfq]\n\nTwo 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. [flashfq]\n\nCost 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. [flashfq]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The Linux 2.6.33.4 evaluation disabled ext4 journaling because journal I/O was not charged back to originating applications.",
      "citationIds": [
        "flashfq"
      ]
    }
  ],
  "related": [
    "io-scheduler",
    "anticipatory-scheduling",
    "work-conserving-scheduler",
    "queue-depth"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-08",
  "citations": [
    {
      "id": "flashfq",
      "title": "Shen and Park. FlashFQ: A Fair Queueing I/O Scheduler for Flash-Based SSDs. USENIX ATC 2013, pp. 67-78, sections 4-6.",
      "url": "https://www.usenix.org/system/files/conference/atc13/atc13-shen.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "record",
      "title": "USENIX ATC 2013: FlashFQ publication record",
      "url": "https://www.usenix.org/conference/atc13/technical-sessions/presentation/shen",
      "accessed": "2026-11-08"
    },
    {
      "id": "hesela",
      "title": "Hesela: Sharing an SSD: who pays for the slowdown?",
      "url": "https://hesela.com/analyses/ssd-fairness-shared-queues/",
      "accessed": "2026-11-08"
    }
  ],
  "provenance": [
    "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."
  ]
}
