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

http://tech.ddvip.com   2006年04月01日    社区交流

本文详细介绍Soft Updates一项消除大多数同步写操作的技术(2)

  作者及顾问: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 依赖关系数据结构

责编:豆豆技术应用

正在加载评论...