GaussDB CLOG拆分处理可见性判断

GaussDB CLOG拆分处理可见性判断

在这里插入图片描述
snapshot.xmin:获取快照时记录当前活跃的最小的xidsnapshot.snapshotcsn:当前最新提交的CSN号 + 1如上图6所示,xid对于当前快照是否可见的简化有步骤如下:

(1) xid < snapshot.xmin,事务在快照开始前已经结束,根据CLOG状态判断是否提交:CLOG显示已提交,可见;否则,不可见。

(2) xid≥snapshot.xmin,事务在快照开始前未结束,根据CSNLOG读取xid对应的CSN。

(3) 如果CSN已提交,即CSN≥3,没有子事务标志,没有正在提交标志。如果CSN< snapshot.snapshotcsn,则可见,否则不可见。

(4) 如果CSN正在提交,则等待事务结束,重入(3)判断。

(5) 其他情况,不可见。
在这里插入图片描述

图7为新节点快照可见性判断流程图。bucketxid:bucket粒度,在当前库,新节点产生的最小xidbucketcsn:bucket粒度,在当前库,来自源节点的最大CSNbucket上线后,CLOG和数据文件已搬迁,CSNLOG未搬迁。CLOG拆分后对可见性判断:老快照判断迁移数据的可见性:报错。因为CSNLOG未搬迁,无法读取CSN号;老快照判断新数据的可见性:元组是在bucket上线后插入的,即tuple.xmin > bucketxid。不可见;新快照判断迁移数据的可见性:通过CLOG;新快照判断新数据的可见性:正常可见性判断逻辑;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值