Write-Ahead Log
预写日志(WAL)将修改先持久化到追加日志再应用到数据页,保证崩溃后可重做恢复。
用途
实现事务持久性与崩溃恢复的基石,是所有关系数据库的核心机制。
机制
事务修改先写日志(LSN + 变更内容)并 fsync,再修改内存页。崩溃后重放日志重做已提交事务(redo)并回滚未提交(undo)。检查点截断旧日志。
用例
- 崩溃恢复设计
- 事务持久性
- 数据库内核
预写日志(WAL)将修改先持久化到追加日志再应用到数据页,保证崩溃后可重做恢复。
实现事务持久性与崩溃恢复的基石,是所有关系数据库的核心机制。
事务修改先写日志(LSN + 变更内容)并 fsync,再修改内存页。崩溃后重放日志重做已提交事务(redo)并回滚未提交(undo)。检查点截断旧日志。