The storage stack in the traditional operating system is primarily optimized towards improving the CPU utilization and hiding the long I/O latency imposed by the slow I/O devices such as hard disk drivers (HDDs). However, the emerging storage media experience significant technique shifts in the past decade, which exhibit high bandwidth and low latency. These high-performance storage devices, unfortunately, suffer from the huge overheads imposed by the system software including the long storage stack and the frequent context switch between the user and kernel modes. Many researchers have investigated huge efforts in addressing this challenge by constructing a direct software path between a user process and the underlying storage devices. We revisit such novel designs in the prior work and present a survey in this paper. Specifically, we classify the former research into three categories according to their commonalities. We then present the designs of each category based on the timeline and analyze their uniqueness and contributions. This paper also reviews the applications that exploit the characteristics of theses designs. Given that the user-space storage is a growing research field, we believe this paper can be an inspiration for future researchers, who are interested in the user-space storage system designs.
翻译:传统操作系统中的存储栈主要针对提高CPU利用率以及隐藏硬盘驱动器(HDD)等慢速I/O设备带来的长I/O延迟进行优化。然而,过去十年间新兴存储介质经历了显著的技术变革,表现出高带宽和低延迟的特性。遗憾的是,这些高性能存储设备受到系统软件(包括冗长的存储栈以及用户态与内核态之间频繁的上下文切换)带来的巨大开销影响。众多研究者投入大量精力应对这一挑战,通过构建从用户进程到底层存储设备的直接软件路径来解决问题。本文重新审视了先前工作中的此类创新设计,并进行了综述。具体而言,我们根据共性将先前研究分为三类,然后按时间线呈现每类设计,并分析其独特性和贡献。本文还回顾了利用这些设计特性的应用程序。鉴于用户态存储是一个蓬勃发展的研究领域,我们相信本文能为未来对用户态存储系统设计感兴趣的研究者提供启发。