为什么raft log都committed了。用户transaction还不能返回提交成功。写的操作不应该是在内存中有数据么?此时虽然没有apply到kv里面。但是应该在内存中应该可以读到了。那么就应该可以给客户端返回提交成功了吧?

https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_enable_async_commit-从-v50-版本开始引入

不应该出现你说的这个情况,当然也不是说楼上关于raft算法的内容,说的不对。

而是tidb做过这个优化。是可以允许异步提交的。而且这个异步提交的参数,除非是5.0以下版本升级上来的,否则默认设置就是on。

还有一些专栏也是介绍相关内容的,供参考。

另外还有一个参数
https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_enable_1pc-从-v50-版本开始引入
允许只涉及一个 Region 的事务上启用一阶段提交特性。

这是两个主要的关于事务提交方面的参数了。

2 个赞