Optimizing Every Operation in a Write-optimized File System——论文泛读

FAST 2016 Paper 分布式元数据论文阅读笔记整理

问题

使用写优化字典(WOD)(LSM-trees [24],Bε tree [6])的文件系统可以比传统文件系统快几个数量级地执行随机写入、元数据更新、递归目录遍历。

然而,现有基于WOD的文件系统需要牺牲其他操作(如文件删除、文件或目录重命名、顺序写入)性能的情况下获得这些性能提升。例如,TokuFS[7]和BetrFS[12]的文件删除、重命名和顺序文件写入速度较慢。KVFS[30]和TableFS[25]中的目录遍历较慢。TableFS将大文件存储在底层的ext4文件系统中,因此不会为随机文件写入提供任何性能增益。

本文方法

通过三种技术,即延迟绑定日志、分区和范围删除,表明在写优化中不需要权衡。可以保留写性能,同时在其他操作上与传统的文件系统相匹配。

  • 使用延迟绑定日志以磁盘带宽执行大型顺序写入,同时保持完整数据日志的恢复语义。BetrFS 0.1提供完整的数据日志记录,但所有数据至少写入两次,因此大型写入的系统吞吐量减半。本文采用了无覆盖文件系统使用的方法,如zfs[4]和btrfs[26],只将数据写入空闲空间一次。将此技术应用于Bε树的挑战是平衡数据的崩溃一致性与足够的I/O调度灵活性,以避免在Bε树消息刷新中重新引入大型重复写入。

  • 引入了称为分区的可调目录树划分技术,平衡了快速递归目录遍历和快速文件、目录重命名。快速递归遍历需要将相关项目放在磁盘上的同一位置,但为了维护此位置,重命名必须物理移动数据。快速重命名可以通过更新元数据指针来实现,但这可能会将目录的内容分散在磁盘上。分区带来了这两种设计的大部分好处,在每个分区内有序,以接近磁盘带宽的速度遍历目录;不迁移数据,只修改元数据索引,与基于inode的系统相当的速度重命名。

  • 提供新的范围删除WOD操作,加速取消链接、顺序写入、重命名、分区。使用范围删除来告诉WOD何时不再需要大量数据,可以实现进一步的优化,例如避免读取和合并过时的数据。

实现在了BetrFS 0.2中,执行目录扫描的速度快2.2倍,小型随机写入的速度快两个数量级,在重命名、删除和顺序I/O方面与传统文件系统的性能相匹配。在许多应用程序(如rsync、git-diff和tar)上也优于传统文件系统,与BetrFS 0.1相比,git-clone性能提高了35%,性能与其他文件系统相当。

总结

对利用写优化结构(LSM-trees,Bε tree)的文件系统进行优化,提出BetrFS 0.2,包括3个优化点。(1)使用延迟绑定日志以磁盘带宽执行大型顺序写入,同时保持完整数据日志的恢复语义。只将数据写入空闲空间一次,同时平衡数据的崩溃一致性和I/O调度灵活性。(2)引入了称为分区的目录树划分技术,平衡递归目录遍历和重命名。在每个分区内有序,以接近磁盘带宽的速度遍历目录;重命名不迁移数据,只修改元数据索引,与基于inode的系统相当的速度重命名。(3)提供范围删除操作,加速取消链接、顺序写入、重命名、分区。使用范围删除来优化写优化结构,同时避免读取和合并过时的数据。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值