DeFUSE : Decoupling Metadata and Data Processing in FUSE Framework for Performance Improvement

DeFUSE : Decoupling Metadata and Data Processing in FUSE Framework for Performance Improvement
复制标题

DeFUSE:在 FUSE 框架中解耦元数据和数据处理以提高性能

DOI:
10.1109/access.2019.2942954
复制
发表时间:
2019
期刊:
影响因子:
3.9
通讯作者:
QIANG CAO
QIANG CAO
中科院分区:
计算机科学3区
文献类型:
--
作者:
WENRUI YAN;JIE YAO;QIANG CAO

文献摘要

相似文献

一个流行的用户空间文件系统框架FUSE已被广泛用于在底层内核文件系统(kFS)之上构建各种定制文件系统(cFS)。基于FUSE的cFS通过在用户空间中开发其特定功能获得了足够的灵活性,但是由于将来自FUSE内核驱动程序的所有请求转发到用户空间守护进程,因此在请求处理流中带来了额外的用户内核模式切换,从而降低了总体性能。我们观察到,当基于fuse的cFS和底层kFS之间的文件到文件映射保持不变时,文件数据请求不需要转发到用户空间守护进程。在此基础上,我们提出了一个改进的FUSE框架——化解元数据处理流和数据请求的解耦。元数据请求仍然遵循原始流以保留灵活性,而数据请求直接在内核驱动程序中执行,在内核中维护文件到文件的映射,有效地消除了不必要的模式切换。我们已经实现了化解框架,并移植了三个代表性的基于fuse的cfs到化解。结果表明,对于以数据为中心的工作负载,与相应的基于fuse的实现相比,基于fuse的cfs的吞吐量分别增加了3.5倍的写和3.8倍的读。可以在Github上找到。
A popular user-space file system framework, FUSE, has been widely used for building various customized file systems(cFS) on top of the underlying kernel file system(kFS). A FUSE-based cFS gains adequate flexibility by developing its specific functions in user space, but brings extra user-kernel mode switches in the request processing flow owing to forwarding all requests from the FUSE kernel driver to the user-space daemon, thus degrading the overall performance. We observe that a file data request does not need to forward to the user-space daemon when its file-to-file mapping between the FUSE-based cFS and the underlying kFS remains unchanged. Based on the insight, we propose a modified FUSE framework - DeFUSE that decouples the processing flow of the metadata and data requests. The metadata requests still follow the original flow to reserve flexibility while the data requests are directly executed in the DeFUSE kernel driver maintaining the file-to-file mappings in the kernel, effectively eliminating the unnecessary mode switches.We have implemented the DeFUSE framework and ported three representative FUSE-based cFSs to DeFUSE. The result shows that for data-centric workloads, the throughput of DeFUSE-based cFSs increases up to 3.5X for write and 3.8X for read respectively, compared to their corresponding FUSE-based implementations. DeFUSE is available on Github.