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