Innodb mtr buf 模块的源码阅读记录

Innodb mtr buf 模块的源码阅读记录
前言:记录下最近gbdb折腾时阅读innodb源码的记录。正文:之前说过Mtr,有很多书写的Mtr能够控制memo内的锁结构,然而加锁过程其实来自于buf 下的 buf_page_get_gen 函数, mtr_memo_push 不包含加锁流程,而mtr中有释放锁的方法mtr_memo_slot_release 这个方法可用于处理获得page的锁及其……继续阅读 »

cyanprobe 5年前 (2019-09-03) 5036浏览 1评论2个赞

最近看innodb部分记录

最近看innodb部分记录
前言:瞎写了一阵子gbdb,发现问题很多,瞅着时间看了下innodb的代码。主要是缓存池和mtr部分。记录:buffer_pool 初始化过程 开辟内存空间block 绑定 frame(包含页方法)  由于开辟的空间是连续的所以可以通过block的内存空间指针来寻址,然后查找对应的frame就能拿到页的信息(学到了…之前一直还在传递页和sp……继续阅读 »

cyanprobe 6年前 (2019-06-15) 2147浏览 0评论0个赞

最近接触的间隙锁

最近接触的间隙锁
前言: 写一下关于最近接触到的问题.正文: 间隙锁问题: 间隙锁产生原因检索范围或者不存在的记录. 例如 检索id 为1-8,或者检索 id = 16 但此记录不存在.无论rc还是rr隔离级别,检索不存在的记录都会产生间隙锁(即使是非范围的索引).锁定的范围是上一个id索引存在记录到下一个索引存在记录如 id = 13 存在……继续阅读 »

cyanprobe 6年前 (2019-04-18) 2292浏览 1个赞