暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
GBase 8s checkpoint介绍.doc
325
2页
5次
2021-01-27
免费下载
GBase 8s checkpoint
介绍
1.
检查点
(Checkpoint)
概念
为提升事务性能
, 8s
内部使用
BuerPool
机制缓存事务涉及数据
,
数据在缓存中被修改
,
commit
操作之前
,
不写入磁盘
. 8s
使用逻辑日志与物理日志机制保证数据的正确性
/
完整性
.
为达到及时从异常中恢复的目的
, 8s
需定期将缓存中数据写入磁盘
.
如图
-1
所示
.
8s
定期将缓存数据写入磁盘的时间点称为检查点
(Checkpoint).
如果数据库发生异常
,
则从
最近的一次检查点开始恢复即可
.
执行
Checkpoint
,
只需将缓存中被修改的数据写入磁盘
,
而非缓存中全部数据
.
,
如果某
页被修改
,
则只将此页
(
脏页
)
写入磁盘
,
而非全部缓存中的页
.
写入磁盘后
,
脏页仍保留在缓存
,
其位置从
LRU-M
队列移至
LRU-F
队列
,
从而去除脏页状态
.
-2
展示了事务的流程
(
假设事务
T1
t1
表中
, id
列值为
10
的行删除
)
图中页
(page)
I/O
最小单位
,
如果某页中的数据被改动
,
整页都需写入磁盘
.
缓存中的页
与磁盘中的页一一对应
.
图中的
5
个操作解释如下
:
1)
将删除操作的纪录从磁盘读入缓存
,
读取该纪录所在页到缓存
.
2)
将该页写入物理日志
,
物理日志存储删除操作之前的数据页
,
也称为
"
前镜像
".
3)
将删除操作记入逻辑日志
.
4)
修改缓存中对应的页
,
将此页中被删除行所在槽位
(slot)
的长度设置为
0,
以标识该行已
Buer Pool
LRU-M
LRU-F
bu bu bu bu
bu bu bu bu
Chunk
-1 检查点缓存写入磁盘
DELETE FROM t1 WHERE id = 10
Buer Pool
page
4
1 5
Physical Log
Logical Log
2
3
-2 事务流程
被删除
,
随后更新该页的时间戳
.
5)
当执行
Checkpoint(
或其它写磁盘操作
)
,
该页被写入磁盘
,
同时将该页从
LRU-M
队列移
LRU-F
队列
.
2.
非阻塞检查点
8s
具备非阻塞检查点技术
,
通过将
Checkpoint
流程拆分为多个阶段
,
达到将产生阻塞操作
的时间缩短到对业务影响最小的程度
.
非阻塞
Checkpoint
过程如下
:
1)
阻止全部线程进入新的关键区
;
2)
等待已在关键区中的全部线程退出
;
3)
将缓存中的系统目录表信息写入磁盘
;
4)
将物理
/
逻辑日志缓冲区写入磁盘
;
5)
在逻辑日志中记录检查点
;
6)
将保留页写入磁盘
;
7)
增加检查点序号
;
8)
允许线程进入关键区
;
9)
将缓存中的全部脏页写入磁盘
;
10)
结束检查点操作
,
在保留页中更新检查点记录
.
当触发非阻塞检查点操作时
,
首先阻塞事务的处理
,
记录系统恢复信息
,
刷写逻辑日志缓冲
区中的内容
,
记录检查点信息
;
随后
,
解除事务阻塞
,
缓存中的脏数据被写入磁盘
;
最后
,
将本
次检查点操作记录更新至保留页中
.
在检查点流程中
,
将脏页写入磁盘及随后操作并不会阻
塞事务的执行
.
of 2
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜