Chinaunix首页 | 论坛 | 博客
  • 博客访问: 458410
  • 博文数量: 72
  • 博客积分: 1851
  • 博客等级: 上尉
  • 技术积分: 1464
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-16 17:50
文章分类

全部博文(72)

文章存档

2013年(1)

2012年(17)

2011年(51)

2010年(3)

分类: LINUX

2013-06-13 09:50:37

Linux文件系统中增加了对事务的支持,防止在系统进行文件操作过程中的原子性,在日志层中主要包含了三种模式:

  • 日志模式(Journal):将所有的元数据和数据改变均写入日志
  • 预定模式(Ordered):只记录元数据的变化,在数据写入磁盘后再修改元数据。
  • 写回模式(Writeback):只记录元数据的修改变化,对数据修改顺序无要求。


    每个文件系统包含一个事务(transaction_t),一个事务又包含一组原子操作(handle_t),当本次原子操作的数据与上一次事务数据发生重合的时候,就需要将数据进行重新复制一份,这个操作通过函数journal_get_write_access(do_journal_get_write_access)来完成,而缓冲区元数据的标记则通过函数ext3_journal_dirty_metadata来完成。记录的内容包含修改的块号以及缓冲区数据。

    当所有的操作完成后,就通过调用journal_stop函数来进行关闭事务,journal_commit_transaction来提交事务。该函数由日志线程kjournald周期性调用,将所有的数据回写至本次磁盘,另外通过进行验证检查点,检查过期数据回收空间。

阅读(3165) | 评论(2) | 转发(1) |
0

上一篇:python 中的mixin特性

下一篇:没有了

给主人留下些什么吧!~~

sunney32292202013-06-13 15:33:38

博主说的太有道理了,支持!

最近经常带着孩子参加了一起活动网组织的,亲子活动,放飞童年亲子同乐,会我爱宝宝成长宣言。活动没感觉到任何商业文化,更多的是公益,爱心,欢乐。那种干净由衷的关爱孩子幸福,快乐,让我非常的轻松愉快。