Advanced search
Start date
Betweenand


FLIN: Enabling Fairness and Enhancing Performance in Modern NVMe Solid State Drives

Full text
Author(s):
Show less -
Tavakkol, Arash ; Sadrosadati, Mohammad ; Ghose, Saugata ; Kim, Jeremie S. ; Luo, Yixin ; Wang, Yaohua ; Ghiasi, Nika Mansouri ; Orosa, Lois ; Gomez-Luna, Juan ; Mutlu, Onur ; IEEE
Total Authors: 11
Document type: Journal article
Source: 2018 ACM/IEEE 45TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA); v. N/A, p. 14-pg., 2018-01-01.
Abstract

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 significant 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 significantly. We perform a comprehensive analysis of interference in real MQ-SSDs, and find four major interference sources: (1) the intensity of requests sent by each application, (2) differences 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 different 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 firmware, 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 (AU)

FAPESP's process: 16/18929-4 - Speculative techniques for reducing the memory bottleneck problem
Grantee:Lois Orosa Nogueira
Support Opportunities: Scholarships abroad - Research Internship - Post-doctor