在看胶片的时候有个疑问,secondary lock 为什么可以异步提交, 如果出现冲突, tikv 怎么来保证成功 commit
commit 阶段只要保证 primary key 提交成功了,就表示整个事务提交成功了,第一阶段 prewrite 的时候已经保证所有的 key 获取锁成功了,不会与其他事务冲突,读写冲突,写写冲突都是指在 prewrite 阶段发生的, commit 阶段先提交 primary key ,就可以代表事务提交成功了。
这样可以让 primary key 和 seconday key 的 commit 变成异步提交。
具体可以参考一下文章:
commit 阶段不是只要做锁的清理就可以了吗,为什么还会有 primary 和 secondary lock 的 commit 操作
primary key 的 commit 阶段 = 清理 primary key 上的锁
清理成功就表示 primary key commit 成功
好的 了解了
![]()
![]()
![]()
