sjtug / mirror-requests

新镜像请求 & BUG 汇报
https://mirrors.sjtug.sjtu.edu.cn
48 stars 2 forks source link

MetaFUSE: a user-space filesystem which caches file metadata #184

Open skyzh opened 3 years ago

skyzh commented 3 years ago

MetaFUSE 是一个“透明”的文件系统。用户可以通过 MetaFUSE 访问一个现有的文件系统(称之为源文件系统)。在访问某个文件时,MetaFUSE 会将源文件系统文件的 metadata 以 key-value pair 的形式缓存在内存或 KV 数据库中,由此提升文件系统的 scan 效率,加快诸如 rsync 比对等操作的效率。

目前处于 proposal 的阶段,欢迎大家分享想法。

(Possible) related projects:

skyzh commented 3 years ago

最近看到的一篇 ATC 13 的 paper,差不多做了这个事情。 https://www.usenix.org/system/files/conference/atc13/atc13-ren.pdf https://github.com/pdlfs/tablefs

htfy96 commented 3 years ago

感觉最好先研究一下目前服务器vfs cache的情况。

mirrors.sjtu:

# all, unused, ...
➜  ~ cat /proc/sys/fs/dentry-state 
4524631 4275776 45  0   35906   0
➜  ~ cat /proc/sys/fs/inode-state 
5377404 1215297 0   0   0   0   0

可以看出目前服务器的dentry cache和inode cache似乎还有不少空余。如果fs scan能被hit vfs cache处理,额外的一层cache是否能够带来更多的好处需要实验一下。另外也可以尝试先调整一下 vm.vfs_cache_pressure 来增加 OS 对 metadata cache 的分配。