MVCC多版本并发控制
2021-09-04 11:52:12 0 举报
MVCC多版本并发控制
作者其他创作
大纲/内容
AB两事务并发
Undo log版本链条
拿到O时候的值
初始值
trx_id(O)
roll_pointer
事务A结果
trx_id(A)
B再次查询数据
事务B结果
trx_id(B)
B事务提交并将trx_id修改为B
拿到B更新后的值
首次查询拿到O的值
发现B的ReadView中的min_trx_id大于trx_id(O),说明B事务开启之前trx_id(O)早已提交
B提交后再查询RC模式下:重新生成ReadView,是可以读到B更新后的值RR模式下:还是使用的以前的ReadView,不能读到B新值
B查询数据
empty undo log
事务A
事务B
发现B的ReadView中的creator_trx_id就是自己,所以看见自己修改的值
A的事务提交并将trx_id改成A
ReadView组成m_ids:有哪些事务没提交min_trx_id:m_ids中最小的值max_trx_id:下一个要生成事务IDcreator_trx_id:当前事务的ID.....
0 条评论
回复 删除
下一页