filmov
tv
[ASPLOS '19-Lightning Talk] FlatFlash
Показать описание
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.3×,
reduces the tail latency for latency-critical applications by up
to 2.8×, scales the throughput for transactional database by
up to 3.0×, and decreases the meta-data persistence overhead
for file systems by up to 18.9×. FlatFlash also improves the
cost-effectiveness by up to 3.8× compared to DRAM-only
systems, while enhancing the SSD lifetime significantly.
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.3×,
reduces the tail latency for latency-critical applications by up
to 2.8×, scales the throughput for transactional database by
up to 3.0×, and decreases the meta-data persistence overhead
for file systems by up to 18.9×. FlatFlash also improves the
cost-effectiveness by up to 3.8× compared to DRAM-only
systems, while enhancing the SSD lifetime significantly.