ITPub博客

首页 > Linux操作系统 > Linux操作系统 > buffer cache的原理:

buffer cache的原理:

原创 Linux操作系统 作者:dayboy2416 时间:2012-03-11 15:20:11 0 删除 编辑
buffer cache的原理:
这个原理至关重要.

当一个Server进程需要读取数据到buffer cache中时:

1).首先要判断该数据是否存在于buffer中,如果存在,且可用.则获取数据,再根据LRU算法在LRU列表上移动该block;

2).如果数据不存在于buffer中,Server进程就要扫描lru列表,查找可用的buffer空间(free buffer)以放数据到buffer中,
在扫描lru list的过程中,如果碰到已经被修改过的buffer,就将它移动到dirty list(checkpoint queue)上(由于增量检查点的引入,DBWR进程也会主动扫描一定比例的LRU list,将发现的脏数据块移动到dirty lis);
如果dirty list(checkpoint queue)达到了阈值,Server进程就会通知DBWn进程写出脏数据到数据文件(DBWR进程写的一个触发条件);
如果Server进程扫描lru列表到一个阈值还没有找到足够的free buffer,这时,就停止对lru的扫描转而通知DBWR写出脏数据,释放内存空间;这时,进程处于free buffer wait等待.

3).找到足够的buffer之后,Server进程就可以将数据从数据文件读入到buffer cache中;

4).如果读取的block不满足"一致性"需求,则Server进程就需要通过当前block的版本从回滚段中读取该block的"一致性"镜像返回给用户(consistent gets).

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13273138/viewspace-718290/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 随笔
请登录后发表评论 登录
全部评论

注册时间:2008-02-28

  • 博文量
    4
  • 访问量
    3029