End-to-End IO Prioritization

Overview

End-to-end IO prioritization is a proposed single-tenant SSD QoS extension that ensures high-priority IOs are expedited through every internal stage of the SSD — submission queues, NAND Die, and DMA — to deliver the lowest possible latency for critical commands. It addresses the single-tenant priority-inversion problem, where a tenant's own background, throughput-oriented IO blocks its latency-sensitive user-facing reads.

Existing mechanisms are insufficient. Standard NVMe priority applies only during command fetching, so high-priority IOs can still be stuck behind low-priority IOs at the NAND Die and DMA stages, producing unpredictable latency spikes. Rate limiting low-priority IOs does not solve it either: rate limiters are priority-agnostic and will not prevent priority inversion, and rate-limiting low-priority IO leaves the drive underutilized when no high-priority IO is present. True end-to-end IO prioritization instead requires separate high-priority queues carried through the NAND Die and DMA stages, preventing bottlenecks at every internal stage.

Sign in to read the full article.

Sign In