一 体系架构
1.后台线程
Master Thread
将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新,合并插入缓冲,
UODO页的回收等
IO Thread
负责IO请求的回调处理
Purge Thread
当事务提交后,undolog可能不在需要,因此需要 Purge Thread 来回收已经使用并分配的undo页
Page Cleaner Thread
进行 脏页 的刷新操作
2.共享内存(一大块内存)
1)缓冲池
2)LRU List 去记录 缓冲池中 页 的使用情况,来管理已经读取的表。最频繁使用的页在最前面,最少使用在尾端。
Free List 当需要从缓冲池中分页时,首先去Free列表中看一下是否有可用的空闲页。
Flush List 当LRU列表中的页被修改之后,该页 为脏页。即缓冲池中的页 和磁盘上的页的数据产生了不一致。这时数据库通过CHECKPOIT机制将脏页刷新回磁盘。所以Flush列表即为脏页列表。
3) 重做日志缓冲 redo log buffer
InnoDB 存储引擎首先会将 重做日志信息 放在 重做日志缓存中,而不是直接写入日志(磁盘)。以 一定的频率 将重写日志缓存 的信息刷新到磁盘中。
4) 额外的内存池 ????
========================================================================
二 关键特性(明天写)
以下特性为InnoDB存储引擎带来了更好的性能以及更高的可靠性。