参考: http://mysql.taobao.org/monthly/2015/05/01/ http://mysql.taobao.org/monthly/2015/06/01/

关键结构体

log_sys对象

log_sys是InnoDB日志系统的中枢及核心对象,控制着日志的拷贝、写入、checkpoint等核心功能。它同时也是大写入负载场景下的热点模块,是连接InnoDB日志文件及log buffer的枢纽,对应结构体为log_t。

Mini transaction

Mini transaction(简称mtr)是InnoDB对物理数据文件操作的最小事务单元,用于管理对Page加锁、修改、释放、以及日志提交到公共buffer等工作。一个mtr操作必须是原子的,一个事务可以包含多个mtr。每个mtr完成后需要将本地产生的日志拷贝到公共缓冲区,将修改的脏页放到flush list上。

Redo checkpoint

Step4. 写入checkpoint信息

函数:log_write_checkpoint_info —> log_group_checkpoint

checkpoint信息被写入到了第一个iblogfile的头部,但写入的文件偏移位置比较有意思,当log_sys->next_checkpoint_no为奇数时,写入到LOG_CHECKPOINT_2(3 *512字节)位置,为偶数时,写入到LOG_CHECKPOINT_1(512字节)位置。

Double Write

(1)Mysql 概念分析 - 图1

InnoDB 崩溃恢复过程

插入语句innodb接口: