KingbaseES数据库的WAL日志讲解

一、WAL日志应用

WAL日志应用在以下场景:


Change发生时:
先将变更后内容记入WAL Buffer 再将更新后的数据写入Data Buffer

Commit发生时:
WAL Buffer刷新到Disk Data Buffer写磁盘推迟

Checkpoint发生时:
将所有Data Buffer刷新到磁盘


 

二、Wal日志功能


通过上面的分析,可以看到

1、当宕机发生时


Data Buffer的内容还没有全部写入到永久存储中,数据丢失;

但是WAL Buffer的内容已写入磁盘,根据WAL日志的内容,可以恢复数据库丢失的内容

2、在提交时,仅把WAL刷新到了磁盘,而不是Data刷新:

从IO次数来说,WAL刷新是少量IO,Data刷新是大量IO,WAL刷新次数少得多


从IO花销来说,WAL刷新是连续IO,Data刷新是随机IO,WAL刷新花销小得多

因此WAL机制在保证事务持久性和数据完整性的同时,成功地提升了系统性能

三、WAL日志文件

整页写 (Full Page Write)


假设因为操作系统在fsync脏页的过程中出现故障,导致TABLE_A存储上的页面数据损坏,由于 XLOG记录无法在损坏的页面上重放,因此我们需要额外的操作

KingbaseES支持一项称为整页写(FPW)的功能,以处理此类故障。如果启用,KinbaseES 将在每个检查点后每个页面的第一次更改中将页面头部数据和整个页面作为 XLOG记录写入。KinbaseES默认已启用整页写。在 KingbaseES中,包含整个页面的此类 XLOG 记录称为备份块 (或整页镜像)


整页写 (Full Page Write) 恢复过程


1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值