数据库内核分享——第一期.PDF

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库内核分享——第一期 网易杭研:何登成 新浪微博:何_登成 邮箱: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)

xyl118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档