【PaperNotes】SOSP'17 DFSCQ,形式化验证crash-safe的文件系统

预备知识

形式化背景(hoare logic、separation logic等),文件系统(inode,disk block等)

介绍

DFSCQ是在FSCQ基础上进一步的工作,FSCQ是用coq形式化验证后拥有crash-safe属性的串行文件系统,FSCQ对disk进行了建模,用coq规定了disk的行为,同时提出了crash hoare logic(CHL)这个能证明crash-safe的逻辑规则。DFSCQ在FSCQ的基础上,为应用额外提供了fsync和fdatasync两个接口,这两个接口通过batch data flush的方式提高了程序性能。

简而言之就是为了提高性能,需要额外证两个接口fsync和fdatasync,导致建模变复杂了,证明变麻烦了。

当然作者没有去证明ext4的正确性,而是自己写了一个DFSCQ,用coq证明其正确性,用coq生成haskell运行,并且DFSCQ是一个串行的文件系统,不支持并行,这两点成为了这篇论文的limitation。

Why fsync and fdatasync?

为什么我们要这两个接口呢,先介绍一下这两个接口分别是什么。

fsync和fdatasync都是文件系统提供的接口,fdatasync将文件的data部分刷入disk之后返回(保证返回后data部分数据不会因为crash丢失),fsync将文件的data与metadata部分都刷入disk。这两个接口是为了实现文件系统的高性能优化所准备的。

其中最核心的两个优化是:

  1. batch syscall,用log的方式,打包syscall并执行,减少I/O&#x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值