乐观事务本地冲突预检的问题

你好,我们注意到从TiDB 3.0.4 版本开始,你们默认关闭了乐观事务的本地冲突预检功能,其后又从配置文件中移除了相关配置,能否告知一下这样做的目的是什么?是基于什么考虑?谢谢!

在悲观事务没有支持之前,是可以通过 txn-local-latchs 来实现在 TiDB 层实现冲突检查,但是由于这个功能存在一些问题如:内存占用,写冲突信息不一致的问题。所以在后续悲观事务实现了之后也建议用户直接开启使用悲观事务 (3.0.8 之后的版本悲观事务也是默认开启的)。不再建议使用该功能。
悲观事务相关可以参考:
https://docs.pingcap.com/zh/tidb/stable/pessimistic-transaction#tidb-悲观事务模型

内存占用可以理解,关于写冲突信息不一致的问题可以详细描述一下吗?谢谢

关闭这个功能主要还是因为这块的内存消耗较大,以及性能这块存在较大的损耗。其他的都是一些内部的测试发现的问题。目前发现都修复了。所以建议在条件允许的情况下升级到较高的版本并开启悲观事务。

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