- 【TiDB 版本】:5.7.25-TiDB-v3.0.9
- 【问题描述】:
tidb_disable_txn_auto_retry设置为1,但是我发现tikv层面有锁冲突后,仍然会进行事务重试。结果是导致事务时间变长。
请问即使tidb_disable_txn_auto_retry设置为1,tikv仍然会重试一次吗?
你好,
辛苦执行下
show global variables like ‘tidb_retry_limit’;
show global variables like ‘tidb_disable_txn_auto_retry’;
可以提供下 tikv log 这边是如何判断这个冲突有被重试。
是的, 这个变量不会影响自动提交的隐式事务和 TiDB 内部执行的事务,它们依旧会根据 tidb_retry_limit
的值来决定最大重试次数。
此说明在 tidb 系统变量文档中有所体现
所以如果想关闭 tidb retry 需要使用如果方式进行设置。
set global tidb_disable_txn_auto_retry
= on;
set global tidb_retry_limit = 0;
https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_retry_limit
开发使用的mybatis框架来实现的事务功能,应该不会走到autocommit这个隐式提交的情况吧?
tikv log 可以发个完整版,这边看下,从当前日志没看到 autocommit
=0的字样,这个可以查下代码,确定是否有 begin commit 部分,
或者直接在 todb 就讲重试关闭。
hi
请问上面的问题有什么需要反馈吗, set global tidb_disable_txn_auto_retry
= on;
set global tidb_retry_limit = 0; 之后是否还出现重试?
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。