tidb悲观锁

tidb 悲观锁在执行dml过程中就要写入tikv default cf和lock cf信息。但是文档提到commit之前都是内存操作,只有commit才发起写入tikv 操作,这样就前后矛盾了,正确应该是如何?

乐观模式下再Prewrtie时 会进行写锁信息,悲观锁时在DML期间就把锁信息写进去,此时的悲观锁就是一个占位符是空的,等到提交时就和乐观模式一样去写真正锁信息。 在tug里搜索悲观锁 会有很多文章

1 个赞

也就是说: 悲观锁模式下,在执行行dml过程中就要写入tikv default cf和lock cf信息,是吗?

图上红框位置是加悲观锁过程,锁信息会写入到lock cf, tidb server间相无关联只有将锁信息放到tikv才能全局可见。 后面提交时和乐观事务一样,写defalut /write cf

悲观锁是在DML阶段会写锁信息,提交后会替换成标准乐观模式锁信息,写了个验证文档
https://asktug.com/t/topic/273045

恩,明白了,default cf 不是在dml期间写入的。是在发起commit 后写write cf

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。