MadFS: Per-File Virtualization for Userspace Persistent Memory Filesystems

MadFS: Per-File Virtualization for Userspace Persistent Memory Filesystems
复制标题

DOI:
--
复制
发表时间:
2023
期刊:
--
影响因子:
--
通讯作者:
Shawn Zhong;Chenhao Ye;Guanzhou Hu;Suyan Qu;Andrea C. Arpaci-Dusseau;Remzi H. Arpaci-Dusseau;M. Swift
Shawn Zhong;Chenhao Ye;Guanzhou Hu;Suyan Qu;Andrea C. Arpaci-Dusseau;Remzi H. Arpaci-Dusseau;M. Swift
中科院分区:
其他
文献类型:
--
作者:
Shawn Zhong;Chenhao Ye;Guanzhou Hu;Suyan Qu;Andrea C. Arpaci-Dusseau;Remzi H. Arpaci-Dusseau;M. Swift

文献摘要

被引文献

相似文献

永久内存(PM)可以直接从用户空间访问,无需内核参与,但大多数PM文件系统仍然在内核中执行元数据操作以确保安全性,并依赖内核进行跨进程同步。我们提出了每文件虚拟化,其中虚拟化层实现了一套完整的文件功能,包括元数据管理,崩溃的一致性,并发控制,在用户空间。我们观察到,并不是所有的文件元数据都需要由内核维护,并建议将不敏感的元数据嵌入到文件中进行用户空间管理。对于崩溃一致性,写入时复制(CoW)受益于块映射的嵌入,因为映射可以在没有内核参与的情况下有效地更新。对于跨进程同步,我们在用户级引入无锁乐观并发控制(OCC),它容忍进程崩溃,并提供更好的可扩展性。基于每个文件的虚拟化,我们实现了MadFS,一个库PM文件系统,维护嵌入的元数据作为一个紧凑的日志。实验结果表明,在并发工作负载上,MadFS的吞吐量高达ext4-DAX的3.6倍。对于实际应用,与NOVA相比,MadFS为LevelDB上的YCSB提供了高达48%的加速,为SQLite上的TPC-C提供了85%的加速。
Persistent memory (PM) can be accessed directly from userspace without kernel involvement, but most PM filesystems still perform metadata operations in the kernel for security and rely on the kernel for cross-process synchronization. We present per-file virtualization, where a virtualization layer implements a complete set of file functionalities, including metadata management, crash consistency, and concurrency control, in userspace. We observe that not all file metadata need to be maintained by the kernel and propose embedding insensitive metadata into the file for userspace management. For crash consistency, copy-on-write (CoW) benefits from the embedding of the block mapping since the mapping can be efficiently updated without kernel involvement. For cross-process synchronization, we introduce lockfree optimistic concurrency control (OCC) at user level, which tolerates process crashes and provides better scalability. Based on per-file virtualization, we implement MadFS, a library PM filesystem that maintains the embedded metadata as a compact log. Experimental results show that on concurrent workloads, MadFS achieves up to 3.6× the throughput of ext4-DAX. For real-world applications, MadFS provides up to 48% speedup for YCSB on LevelDB and 85% for TPC-C on SQLite compared to NOVA.