FlatFlash: Exploiting the Byte-Accessibility of SSDs within a Unified Memory-Storage Hierarchy

FlatFlash: Exploiting the Byte-Accessibility of SSDs within a Unified Memory-Storage Hierarchy
复制标题

DOI:
10.1145/3297858.3304061
复制
发表时间:
2019-04
期刊:
Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Ahmed H. M. O. Abulila;Vikram Sharma Mailthody;Zaid Qureshi;Jian Huang;N. Kim;Jinjun Xiong;Wen-mei W. Hwu
Ahmed H. M. O. Abulila;Vikram Sharma Mailthody;Zaid Qureshi;Jian Huang;N. Kim;Jinjun Xiong;Wen-mei W. Hwu
中科院分区:
其他
文献类型:
--
作者:
Ahmed H. M. O. Abulila;Vikram Sharma Mailthody;Zaid Qureshi;Jian Huang;N. Kim;Jinjun Xiong;Wen-mei W. Hwu

文献摘要

相似文献

使用基于闪存的固态驱动器(SSD)作为主存储器已被提出作为针对数据密集型应用扩展存储器容量的实用解决方案。然而,几乎所有现有的方法都依赖于分页机制来在SSD和主机DRAM之间移动数据。这不可避免地会产生大量的性能开销和额外的I/O流量。由于PCIe互连和固态硬盘控制器中的内部存储器支持的字节寻址能力,现在可以同时以字节和数据块粒度访问固态硬盘。然而,在当今的内存存储层次结构中利用SSD的字节可访问性的好处是具有挑战性的,因为它缺乏系统支持和对程序的抽象。在本文中,我们提出了一种优化的统一存储层次结构FlatFlash,以有效地使用字节可寻址的SSD作为主存的一部分。我们对虚拟内存管理进行了扩展,以提供统一的内存接口,以便程序可以无缝地跨SSD和DRAM访问字节粒度的数据。我们提出了一种在SSD和DRAM之间的轻量级、自适应的页面提升机制,以同时透明地从字节可寻址的大容量SSD和快速DRAM中获益,同时避免不必要的页面移动。此外,我们还提出了一种字节级数据持久化的抽象,以利用固态硬盘的持久化特性,在此基础上,我们重新考虑了几种典型的需要数据持久化的软件系统的崩溃一致性设计原语,如文件系统和数据库。我们对各种应用程序的评估表明,与当前的统一内存存储系统相比,FlatFlash将内存密集型应用程序的性能提高了2.3倍,将延迟关键型应用程序的尾部延迟减少了2.8倍,将事务性数据库的吞吐量扩展了3.0倍,并将文件系统的元数据持久化开销减少了18.9倍。与仅使用DRAM的系统相比,FlatFlash还可将成本效益提高高达3.8倍,同时显著延长固态硬盘的使用寿命。
Using flash-based solid state drives (SSDs) as main memory has been proposed as a practical solution towards scaling memory capacity for data-intensive applications. However, almost all existing approaches rely on the paging mechanism to move data between SSDs and host DRAM. This inevitably incurs significant performance overhead and extra I/O traffic. Thanks to the byte-addressability supported by the PCIe interconnect and the internal memory in SSD controllers, it is feasible to access SSDs in both byte and block granularity today. Exploiting the benefits of SSD's byte-accessibility in today's memory-storage hierarchy is, however, challenging as it lacks systems support and abstractions for programs. In this paper, we present FlatFlash, an optimized unified memory-storage hierarchy, to efficiently use byte-addressable SSD as part of the main memory. We extend the virtual memory management to provide a unified memory interface so that programs can access data across SSD and DRAM in byte granularity seamlessly. We propose a lightweight, adaptive page promotion mechanism between SSD and DRAM to gain benefits from both the byte-addressable large SSD and fast DRAM concurrently and transparently, while avoiding unnecessary page movements. Furthermore, we propose an abstraction of byte-granular data persistence to exploit the persistence nature of SSDs, upon which we rethink the design primitives of crash consistency of several representative software systems that require data persistence, such as file systems and databases. Our evaluation with a variety of applications demonstrates that, compared to the current unified memory-storage systems, FlatFlash improves the performance for memory-intensive applications by up to 2.3x, reduces the tail latency for latency-critical applications by up to 2.8x, scales the throughput for transactional database by up to 3.0x, and decreases the meta-data persistence overhead for file systems by up to 18.9x. FlatFlash also improves the cost-effectiveness by up to 3.8x compared to DRAM-only systems, while enhancing the SSD lifetime significantly.