NAND Flash is steadily maturing as a mass storage device, and Flash-based storage systems are a promising solution for the new demands of data-driven computing. Flash-based storage promises higher, more efficient performance than mechanical disks. However, existing system software may be ill-suited to handle the performance characteristics of Flash-based storage. The combination of inappropriate system support and Flash characteristics can lead to the breakdown of service guarantees like fairness and performance isolation. On the other hand, in developing appropriate system support for Flash-based storage, the opportunity to develop mechanisms for additional, stronger service guarantees arises.
The thesis of this proposal is that these performance characteristics can be understood and predicted or detected online in the face of sophisticated firmware and such behavior can be exploited to improve system reliability and performance. Understanding the behavior of solid-state storage is essential in determining if and how operating systems and file systems should be redesigned to accommodate and fully exploit new storage devices and properly support modern application needs. In this proposal, we present work on characterizing Flash performance, a new I/O scheduler to support I/O on Flash, and directions for future system development to improve application performance over Flash.