Abstract
In this paper, we present OS I/O path optimizations for NAND flash solid-state
drives, aimed to minimize scheduling delays caused by additional contexts such
as interrupt bottom halves and background queue runs. With our optimizations,
these contexts are eliminated and merged into hardware interrupts or I/O
participating threads without introducing side effects. This was achieved by
pipelining fine grained host controller operations with the cooperation of
I/O participating threads. To safely expose fine grained host controller
operations to upper layers, we present a low level hardware abstraction
layer interface. Evaluations with micro-benchmarks showed that our
optimizations were capable of accommodating up to five, AHCI controller
attached, SATA 3.0 SSD devices at 671k IOPS, while current Linux SCSI based
I/O path was limited at 354k IOPS failing to accommodate more than three
devices. Evaluation on an SSD backed key value system also showed IOPS
improvement using our I/O optimizations.
Type
Publication
2014 USENIX Annual Technical Conference