Proc. of the International Symposium on Computer Architecture (ISCA), Los Angeles, CA, June 2018.
Arash Tavakkol†, Mohammad Sadrosadati†, Saugata Ghose‡, Jeremie S. Kim‡†, Yixin Luo‡,
Yaohua Wang†§, Nika Mansouri Ghiasi†, Lois Orosa†*, Juan Gómez-Luna†, Onur Mutlu†‡
‡ Carnegie Mellon University
† ETH Zürich
§ NUDT
* Unicamp
Modern solid-state drives (SSDs) use new host–interface protocols, such as NVMe, to provide applications with fast access to storage. These new protocols make use of a concept known as the multi-queue SSD (MQ-SSD), where the SSD has direct access to the application-level I/O request queues. This removes most of the OS software stack that was used in older protocols to control how and when the I/O requests were dispatched to storage devices. Unfortunately, while the elimination of the OS software stack leads to a signicant performance improvement, we show in this paper that it introduces a new problem: unfairness. This is because the elimination of the OS software stack eliminates the mechanisms that were used to provide fairness among applications in older SSDs.
To study application-level unfairness, we perform experiments using four real state-of-the-art MQ-SSDs. We demonstrate that the lack of fair scheduling mechanisms leads to high unfairness among concurrently-executing applications due to the interference among them. For instance, when one of these applications issues many more I/O requests than others, the other applications are slowed down signicantly. We perform a comprehensive analysis of interference in real MQ-SSDs, and nd four major interference sources: (1) the intensity of requests sent by each application, (2) dierences in request access patterns, (3) the ratio of reads to writes, and (4) garbage collection.
To alleviate unfairness in MQ-SSDs, we propose the Flash- Level INterference-aware scheduler (FLIN). FLIN is a lightweight I/O request scheduling mechanism that provides fairness among requests from dierent applications. FLIN uses a three-stage scheduling algorithm that protects against all four major sources of interference, while respecting the application-level priorities assigned by the host. FLIN is implemented fully within the SSD controller rmware, requiring no new hardware, and has negligible (<0.06%) storage cost. Compared to a state-of-the-art I/O scheduler, FLIN improves the fairness and performance of a wide range of enterprise and datacenter storage workloads, with an average improvement of 70% and 47%, respectively.
FULL PAPER: pdf