您现在的位置:中国下载站学院中心操作系统FreeBSD → 文章列表

Soft Updates一项消除大多数同步写操作的技术(2)

作者:佚名  来源:不详  发布时间:2007-2-8 1:27:39   

减小字体 增大字体

 
 
  作者及顾问:Marshall Kirk McKusick;卡内基梅隆大学 Gregory R. Ganger

  中文翻译:北京工业大学计算机学院李鑫 < delphij@cnfug.org >

  --------------------------------------------------------------------------

  这篇论文最初发表于1999年6月6日至11日举行的USENIX年度技术会议中,Freenix会议

  录的第1-17页。其版权归Marshall Kirk McKusick和Greg Ganger所有,作者保留所有

  权力。这篇论文在作者的许可下被翻译和重新发布。在保持此版权宣示完整的前提下,

  允许对本文进行非商业目的的重新发布。

  --------------------------------------------------------------------------

  第3节 跟踪并确保更新依赖关系

  本节描述BSD Soft Updates数据结构,以及它在保证第二节中描述的更新依赖关系中发挥的作用。这里描述的数据结构和算法能在除文件截断和fsync系统调用以外的所有情况中完全消除BSD FFS的同步写入操作。

  SoftUpdates的关键特性是在缓存块中追踪每个更改之间的更新依赖关系。于是,对包括64个i-节点的块,系统可能会为缓冲区中的这些i-节点维护最多64个依赖关系结构。类似地,对包含50个名字的目录块,系统也会为这些名字维护最多50个依赖关系结构。

  拥有如此详细的依赖关系信息,块之间的循环依赖将不再是问题。无论何时系统希望在缓冲区中写i-节点,它们都能安全地写入,并最终进入磁盘。一时不能安全写入的i-节点将在缓冲区同步时被暂时回滚到过去的某个安全的值,待写盘完成后再恢复当前值。缓冲区在回滚的这段时间被锁定,待内容恢复后再解锁。请求写缓冲区的进程将被阻塞,直到缓冲区恢复原状。

  3.1 依赖关系数据结构

  我们的实现使用了多种数据结构在文件系统结构中追踪未决的更新依赖关系。表1列了使用的依赖关系结构、主要功能,以及与它们关联的块。这些依赖依赖关系数据结构在文件操作完成时被分配并关联到块上。在内核内存中的副本中它们使用指针关联到对应块的头。所有列出的依赖关系结构的两种一般的样式是工作表(worklist)结构和保存追踪依赖关系状态的结构。

  表1 BSD SoftUpdates实现中使用的依赖关系结构

  worklist结构作为所有依赖关系结构首项的公共头。它包含了一系列连接指针,以及一个表示它被嵌入的结构类型的字段。worklist结构使得将不同类型的依赖关系结构连到同一链表中成为可能。SoftUpdates代码能够遍历这种异质链表,使用类型字段判别它遇到的依赖关系结构,并据此进行相应的操作。


在百度中搜索更多Soft Updates一项消除大多数同步写操作的技术(2)相关网页 转贴于:中国下载站

  • 上一篇文章:FreeBSD的功能特点
  • 下一篇文章:Soft Updates一项消除大多数同步写操作的技术(1)
  • 阅读统计:[]
  • 中国下载站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接

    • Copyright (C) 2006-2008 www.cndownz.com All Rights Reserved.
      中国下载站 版权所有. 粤ICP备05141802号. 对本站有任何建议、意见或投诉,请来信:cndownzcom@yahoo.com.cn.
      喜欢中国下载站(cndownz.com),请把中国下载站(cndownz.com)告诉你QQ上的5位好友,多谢支持!