暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
PG mvcc可见性判断
1299
4页
16次
2020-03-12
免费下载
1
、知识准备
1
Tuple
格式头
HeapTupleHeaderData




 !"
#$%&&'&((
)*+
)
其中
,

:存储的是产生这个元组的事务

,可能是

或者

语句

:存储的是删除或者锁定这个元组的事务





删除这个元组的

#
:存储的是
$%&&'&((
命令的事务

-./(
主要就是通过






来唯





标记字段)。
2
Clog
-./(
(01
中维护事务的状态,持久化存储

目录下,为了访问
效,会在内存中维护一块共享内存用于缓存
(01
的内容。
-1
定义有四种事务状态:
2*3%4.%04.%&.4-30135.. 666
2*3%4.%04.%&.0''5 667
2*3%4.%04.%&.%8035 669
2*3%4.%04.%&..&80''5 66+

页为

1.
9!
:;
:;:9<+9;
!=
'>79: '>? 48=@79AA
(01."

系统
运行过程中,
#
会定时将不再使用的

文件清理。
3
Hint
在进行可见性判断时,需要获取事务的状态,即元组


的状态,这些
(01
-./(

8
8
在元中(

免频繁访问
(01
,元组头中对应的标识位如下
,BC
2*5%-D'40''5 66766 
2*5%-D'44$%( 66966 #!
2*5%-D'430E54 >5%-D'40''5F
5%-D'44$%(A
2*5%-D'%D0''5 66?66 
2*5%-D'%D4$%( 66:66 #!
2*5%-D'%D.'&( 67666 'D
-./(
时主新元上的
8
访
该元组并进行可见性判断时,如果发现
8
没有设置,则
(01
中读取并设置
8
8
.8
。这里的访问可能是
$%&&'
'(
或者
.5(5
因此,
8
可以理解为是事务状态在元组头上的一份缓存。
4
Hint
与日志
在开启
"
或者
1&
参数
G"

的情况下,如
"
后第一次使页面

的操作是更
8
,则会产生一条
H%(
日志,将当前页面写
H%(
日志中
>
-A
,避免产生部分写,导致数据
"
异常。注
意,以上写
-
日志的行为与是否开
G
没有关系。因
在开启
"
或者
1&
参数
G"

时,即便执行
.5(5
,也可
能更改页面的
8
,从而导致产
H%(
日志,这会在一定程度上增
H%(
日志占
用的存储空间。
2
、快照判断
判断一个事务是否在快照,即针对这个快照是否还在

7
)大于等于
BC
:未来事务,不可见
9
)小于
BC
:已结束事务,可见
+
IBC BCA
(01


!
状态:不可见
of 4
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

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