FLIN: Enabling fairness and enhancing performance in modern NVMe solid state drives

  • Arash Tavakkol
  • , Mohammad Sadrosadati
  • , Saugata Ghose
  • , Jeremie S. Kim
  • , Yixin Luo
  • , Yaohua Wang
  • , Nika Mansouri Ghiasi
  • , Lois Orosa
  • , Juan Gómez-Luna
  • , Onur Mutlu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.

Original languageEnglish (US)
Title of host publicationProceedings - 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture, ISCA 2018
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages397-410
Number of pages14
ISBN (Electronic)9781538659847
DOIs
StatePublished - Jul 19 2018
Externally publishedYes
Event45th ACM/IEEE Annual International Symposium on Computer Architecture, ISCA 2018 - Los Angeles, United States
Duration: Jun 2 2018Jun 6 2018

Publication series

NameProceedings - International Symposium on Computer Architecture
ISSN (Print)1063-6897

Other

Other45th ACM/IEEE Annual International Symposium on Computer Architecture, ISCA 2018
Country/TerritoryUnited States
CityLos Angeles
Period6/2/186/6/18

ASJC Scopus subject areas

  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'FLIN: Enabling fairness and enhancing performance in modern NVMe solid state drives'. Together they form a unique fingerprint.

Cite this