Open skyzh opened 3 years ago
最近看到的一篇 ATC 13 的 paper,差不多做了这个事情。 https://www.usenix.org/system/files/conference/atc13/atc13-ren.pdf https://github.com/pdlfs/tablefs
感觉最好先研究一下目前服务器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 的分配。
MetaFUSE 是一个“透明”的文件系统。用户可以通过 MetaFUSE 访问一个现有的文件系统(称之为源文件系统)。在访问某个文件时,MetaFUSE 会将源文件系统文件的 metadata 以 key-value pair 的形式缓存在内存或 KV 数据库中,由此提升文件系统的 scan 效率,加快诸如 rsync 比对等操作的效率。
目前处于 proposal 的阶段,欢迎大家分享想法。
(Possible) related projects: