A High Performance File System for Non-Volatile Main Memory
Jiaxin Ou
Jiwu Shu
∗
Youyou Lu
Department of Computer Science and Technology, Tsinghua University
Tsinghua National Laboratory for Information Science and Technology
ojx11@mails.tsinghua.edu.cn,
{
shujw, luyouyou
}
@tsinghua.edu.cn
Abstract
Emerging
non-volatile main memories
(NVMMs) provide
data persistence at the main memory level. To avoid the
double-copy overheads among the user buffer, the OS page
cache, and the storage layer, state-of-the-art NVMM-aware
file systems bypass the OS page cache which directly copy
data between the user buffer and the NVMM storage. How-
ever, one major drawback of existing NVMM technologies
is the slow writes. As a result, such direct access for all file
operations can lead to suboptimal system performance.
In this paper, we propose HiNFS, a high performance file
system for non-volatile main memory. Specifically, HiNF-
S uses an
NVMM-aware Write Buffer
policy to buffer the
lazy-persistent file writes in DRAM and persists them to N-
VMM lazily to hide the long write latency of NVMM. How-
ever, HiNFS performs direct access to NVMM for eager-
persistent file writes, and directly reads file data from both
DRAM and NVMM as they have similar read performance,
in order to eliminate the double-copy overheads from the
critical path. To ensure read consistency, HiNFS uses a com-
bination of the
DRAM Block Index
and
Cacheline Bitmap
to
track the latest data between DRAM and NVMM. Finally,
HiNFS employs a
Buffer Benefit Model
to identify the eager-
persistent file writes before issuing the write operations. Us-
ing software NVMM emulators, we evaluate HiNFS’s per-
formance with various workloads. Comparing with state-
of-the-art NVMM-aware file systems - PMFS and EXT4-
DAX, surprisingly, our results show that HiNFS improves
the system throughput by up to 184% for filebench micro-
benchmarks and reduces the execution time by up to 64% for
data-intensive traces and macro-benchmarks, demonstrating
the benefits of hiding the long write latency of NVMM.
∗
Corresponding author: Jiwu Shu (shujw@tsinghua.edu.cn).
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee
provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and
the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored.
Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, contact
the Owner/Author(s). Request permissions from permissions@acm.org or Publications Dept., ACM, Inc., fax +1 (212)
869-0481.
EuroSys ’16,
April 18 - 21, 2016, London, United Kingdom
Copyright c
2016 held by owner/author(s). Publication rights licensed to ACM.
ACM 978-1-4503-4240-7/16/04. . . $15.00
DOI: http://dx.doi.org/10.1145/2901318.2901324
1.
Introduction
Emerging fast, byte-addressable non-volatile memories
(NVMs), such as phase change memory (PCM) [8, 17, 29],
resistive RAM (ReRAM), and memristor [51], are promised
to be employed to build fast, cheap, and persistent mem-
ory systems. Attaching NVMs directly to processors pro-
duces non-volatile main memories (NVMMs), exposing the
performance, flexibility, and persistence of these memo-
ries to applications [52, 53]. Moreover, these devices are
expected to become a common component of the memo-
ry/storage hierarchy for laptops, PCs, and servers in the near
future [10, 13, 21, 24, 30, 40, 54].
Given the anticipated high performance characteristics of
emerging NVMMs, recent research [6, 13, 18, 49] shows
that the overheads from the generic block layer and copying
data between the OS page cache and the NVMM storage
significantly degrade the system performance. To avoid these
overheads, state-of-the-art NVMM-aware file systems, such
as BPFS [13], PMFS [18], EXT4-DAX [6, 7], etc., bypass
the OS page cache and the generic block layer. Specifically,
all of them directly copy data between the user buffer and the
NVMM storage without going through the OS page cache,
implying that all requests incur prompt access to NVMM.
Unfortunately, one major drawback of NVMM is the slow
writes [10, 20, 46]. The asymmetric read-write performance
of NVMM indicates that, while DRAM and NVMM have
similar read performance, the write operations of existing N-
VMM technologies, such as PCM and ReRAM, incur longer
latency and lower bandwidth compared to DRAM [44, 52].
Therefore, direct access to NVMM can lead to suboptimal
system performance as it exposes the long write latency of
NVMM to the critical path. Furthermore, our experiments of
running existing NVMM-aware file systems on a simulated
NVMM device show that the overhead from the direct write
access can dominate the system performance degradation.
The relatively large write performance gap between
DRAM and NVMM indicates that buffering writes in
DRAM is important for improving the NVMM system per-
formance, because (1) writes to the same block may be
coalesced since many I/O workloads have access locali-
ty [35, 38, 42, 43], and (2) writes to files that are later delet-
ed do not need to be performed. In addition, writes in file
systems typically involve a trade-off between performance
and persistence, and applications usually have alternative ap-
proaches to persisting their data [19, 37].
However, simply using DRAM as a cache of NVMM is
inefficient due to the double-copy overheads in the critical
path among the user buffer, the DRAM cache, and the NVM-
M storage [6, 18]. On one hand, reading data to a block not
present in the DRAM cache causes the double-copy over-
head in the read path, because the operating system needs
to first copy the data from the storage layer to the DRAM
cache, and then copy it from the DRAM cache to the user
buffer. On the other hand, synchronous writes or synchro-
nization operations, such as
fsync
, also lead to the double-
copy overheads in the write path. For instance, if an applica-
tion issues a write operation to block
Do'stlaringiz bilan baham: |