数据库内核分享(第一期) - Buffer Pool Implementation InnoDB vs Oracle要领.pdfVIP

  • 19
  • 0
  • 约3.62万字
  • 约 73页
  • 2017-06-07 发布于湖北
  • 举报

数据库内核分享(第一期) - Buffer Pool Implementation InnoDB vs Oracle要领.pdf

数据库内核分享——第一期 网易杭研:何登成 新浪微博:何_登成 邮箱:he.dengcheng@ Buffer Pool Implementation: InnoDB vs Oracle Outline • 知识准备 – 名词解释 – 并发控制:Latch/Pin/Lock/Mutex • Buffer Pool (Data Cache) – 数据结构 – 初始化 – Page/Buffer定位 – LRU管理 – Page/Buffer访问控制 – Log Buffer Write – Dirty Page Write Checkpoint – Crash Recovery/Instance Recovery 名词解释 • Buffer Pool vs Data Cache – 本PPT,涉及的内容,是InnoDB的Buffer Pool与Oracle的Data Cache之间的 实现对比 – 未涉及InnoDB Change Buffer 的实现 – 未涉及Oracle SGA 中其他pool,例如shared pool – 本PPT,统一使用Buffer Pool名词指代 • Buffer vs Block vs Page – 本PPT,buffer/block/page对应的均为外存中的一个页面 – 本PPT,buffer/block/page会交替使用 并发控制 • 并发控制 – Buffer Pool是全局共享资源,存在竞争,需要并发控制 – 表中的一个页面,一条记录,同样是共享资源,需要并发控制 – InnoDB/Oracle系统内部,有其他共享数据结构,同样需要并发控制 • InnoDB vs Oracle – InnoDB • 根据保护对象的不同,需要采用mutex/latch(rw_lock)/pin/lock等方式 – Oracle • 根据保护对象的不同,需要采用latch/pin/mutex等方式 – 区别 • InnoDB/Oracle 虽然同时采用了latch/pin/mutex等方式,但是实现/功能有较大不同 并发控制(InnoDB) • InnoDB mutex – 通过CAS/TAS实现的轻量级原子锁 没有锁模式,“无锁/模式”可能会理解错误 – 无锁模式;不可重入;短期持有;deadlock free; – 保护系统中重要的全局资源,临界区 • 例如:buffer pool mutex;buffer header mutex;log sys mutex等 • InnoDB Latch – 通过CAS/TAS实现的读写锁(RW_Lock); – 短期持有;deadlock free ; – 保护系统中的共享buffer • 例如:page latch 并发控制(InnoDB) • InnoDB Pin – 一个标识,一个在mutex保护下的count值;不是一个锁 – 保护内存页面不被替换 • 例如:page pin count • InnoDB Lock (本PPT不讲) – 最高层次的锁,实现复杂; – 多种锁模式;支持死锁检测 – 保护用户资源

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档