max-retry-count参数控制问题

image
官方文档说"单个语句最大重试次数" ,这个是针对txnStartTS 的重试次数还是 报错 SQL DIGEST来计算次数?

肯定是针对某一个sql,不是某一类sql了。。。。

可以看看这些信息,可能会对你有帮助:

TiDB 悲观事务模式 | PingCAP 文档中心

TiDB 锁冲突问题处理 | PingCAP 文档中心

报错后 就终止连接了吧?

报错后,这个SQL就终止执行了。
至于连接这个问题,通常客户端访问数据库是建立的mysql协议 TCP长连接,如果客户端不主动断开或者没有遇到系统超时的情况,连接应该还是在的。

1 个赞

系统超时 是指TIDB设置的超时?

有个updata语句, set 某个字段的值不一样,不停的 retrying,日志write conflict
产生了大量的日志,conn 值也不是都一样,这种是不是只能从应用端去处理?
没找到从 DB 端控制的方式

系统超时是指TiDB/MySQL这类数据库,遇到一些空闲链接太长时间没用,就会从服务端断开它,避免造成资源浪费或出现其他问题。这个时间通常默认是7天,用户可以调整为其他值。

不同事务对相同的数据记录update,出现write config 说明事务冲突了。
这种问题数据库侧做的事情不多,调整各种参数最多只能是缓解症状。要根本解决问题,就需要从应用侧去处理,尽可能避免同时操作相同数据。

这个是为了避免过多的重试造成资源浪费

是的,像这种事务导致的锁冲突只能从业务层面解决,靠数据库只能保证数据一致性,不能保证业务。