MVCC图示

Posted 邱明成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVCC图示相关的知识,希望对你有一定的参考价值。

磨砺技术珠矶,践行数据之道,追求卓越价值  

回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页

[作者:高健@博客园 luckyjackgao@gmail.com]

 

资料来源:

其中对于MVCC的描述比较容易理解,特此贴图备忘

图1:事务T1改变数据V1,将其改为数据V2,在堆中,数据如下图

 

图2:事务T3改变了V2,将其改为V3,在堆中,数据如下图:目前事务T2还在活动中,所以V1和V2属于recently dead状态,而不是真的dead状态。

 

 

图3:从可视性而言,事务T0只能看到数据V1。因为它早于事务T1启动。

 

 

图4:事务T1提交后,事务T2启动,此时事务T3尚未启动,故T2可以看到T1提交后的数据V2。

 

 

 

图5:事务T3提交后,事务T4启动,故T4只能看到数据V3。

 

 

图6: 前面说过,当还有事务活动中访问数据V1和V2,V1和V2的状态是recently dead。

当T0和T2都结束,已经没有事务在访问数据V1和V2了,此时V1和V2为dead状态,所以V1和V2都成为VACUUM的处理对象了。

以上是关于MVCC图示的主要内容,如果未能解决你的问题,请参考以下文章

OSSIM远程连接与文件传输图示

亿图图示,Edrawmax,MindMaster,windows,mac 免费会员(点个赞呗)

C语言字符串长度如何数?

亿图图示为啥不能保存成jpg格式

c语言字符串的长度怎么看

Skype for Business Server 2015 的技术图示