doc: 阅读innodb文档

This commit is contained in:
asahi
2025-07-08 22:01:57 +08:00
parent 3a808113ba
commit 35d84c57b1

View File

@@ -171,6 +171,15 @@ redo log buffer会在如下时机将log block刷新到磁盘中
- log buffer中有一半的内存空间已经被使用时
- log checkpoint时(checkpoint时会导致脏页被刷新到磁盘上而WAL要求脏页刷新前刷新redo log buffer)
##### WAL
`write-ahead logging`是一种为database系统提供`原子性``持久性`的技术。
`write ahead log``append-only`的辅助磁盘存储结构用于crash recovery和transaction recovery。
在使用`WAL`的系统中在所有的changes被应用到数据库之前要求changes都被写入到log中。
所以在innodb中脏页被刷新到磁盘之前脏页对应的`newest_lsn`之前的redo log都必须被刷新到磁盘中。`redo log file中最新的lsn必须大于磁盘页文件中最大的lsn`
在redo log buffer中的log block刷新到redo log file中时其会追加append到redo log file的末尾。当redo log group中的一个文件被写满时其会接着写入下一个redo log file其行为称为`round-robin`
在redo log group中的每个redo log file中其前2KB4个log block大小均不用于存储log block前2KB内容如下