SOSP-21 存储方向论文速读一
最近在学习新的文件存储思路,陆续整理了下,尝试做一些总结。SOSP 21年在10月份论文都放出来了,分享一部分。
Scale and Performance in a Filesystem Semi-Microkernel
论文项目:https://github.com/WiscADSL/uFS
论文:https://dl.acm.org/doi/10.1145/3477132.3483581
总结:
- 论文在用户态实现了本地文件系统,利用spdk充分利用NVME设备。
- 提供了一种集中处理dentry,by thread shard inode 的处理思路,提到可以并发写入journal,于此提供高性能服务。
- 基于by thread做了一个动态调度,监控系统复杂然后可以自适应调整inode映射。
- 实现偏理想化posix功能不完整,不太适合通用文件场景,本地自己使用可以尝试。
速读代码分析:
- 类似状态机实现IO异步处理
- in mem inode组织
- std::unordered_map<uint32_t, InMemInode *> inodeMap_
- 读取用了一把全局锁
- 独立Worker
- 每个都包含dev指针,利用spdk实现了
- journal可以分区的原因:
- inode和dentry的存储布局设计参考了本地文件系统
- inode和dentry的修改是分开的