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.
翻译:暂无翻译