ITPub博客

首页 > Linux操作系统 > Linux操作系统 > BUFFER CACHE寻找流程

BUFFER CACHE寻找流程

原创 Linux操作系统 作者:gaopengtttt 时间:2013-06-14 09:55:55 0 删除 编辑
1、获得保护hash bucket的CACHE BUFFERS CHAINS锁存器,读取需要SHARED模式,如果是修改则需要EXCLUSIVE模式,
如果发生争用等待latch:cache buffers chains
2、查看BUFFER HEADER,块是否已经在BUFFER里面,如果在对相应的缓冲区进行shared模式或者EXCLUSIVE模式的
buffer lock,如果发生BUFFER LOCK争用则等待BUFFER BUSY WAITS,如果正在通过DBWR写入到
缓冲区,则等待WRITE COMPLETE WAITS(逻辑读)
3、如果不在BUFFER CACHE中,获得CACHE BUFFER LRU chain后在LRU辅助列上检索空闲区域,
如果辅助区没有空闲区域,就在主队列上按照COLD HOT的COLD端寻找,如果找到可以覆盖的缓冲
区域,则对缓冲区叫EXCLUSIVE模式的BUFFER LOCK,并且将数据块读入到环境区,如果获得BUFFER LOCK
的过程发生争用则等待READ BY OYHER SESSION(物理读)
4、如果还是没有找到,服务器进程请求DBWR将脏数据写到数据文件,确保空闲缓冲区,如果等待DBWR写盘的时间就是FREE BUFFER WAITS。

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

上一篇: CACHE BUFFER CHAINS
下一篇: 块清除
请登录后发表评论 登录
全部评论
wxh gp_22389860 公众号 MySQL学习 书籍 深入理解MySQL主从原理

注册时间:2021-06-07

  • 博文量
    868
  • 访问量
    3495543