tidb日志报错

查看tidb日志,发现如下信息:
[2020/10/15 10:53:46.623 +08:00] [INFO] [adapter.go:596] [“pessimistic write conflict, retry statement”] [txn=420146164949843974] [forUpdateTS=420146164949843974] [err="[kv:9007]Write conflict, txnStartTS=420146164949843974, conflictStartTS=420146164949843975, conflictCommitTS=420146164949843978, key={tableID=21, indexID=2, indexValues={17, }} primary={tableID=21, indexID=2, indexValues={17, }} [try again later]"]
[2020/10/15 10:54:04.607 +08:00] [INFO] [region_cache.go:828] [“switch region leader to specific leader due to kv return NotLeader”] [regionID=3049] [currIdx=2] [leaderStoreID=1]

这个信息代表什么问题呢?有什么影响吗?

pessimistic write conflict
这是一个悲观写冲突的 SQL 重试信息
悲观锁模式是在 2pc 之前进行的加锁操作,如果加锁超时就会 造成 出现此 log。正常不会对我们的业务有影响。
如果统计发现有大量此信息出现
可能存在如下情况 ,本身此行记录即为热点记录,竞争较为激烈。悲观锁模式正式为解决这种场景而服务的
如果在事物内 对不同记录 单条进行操作,事物内部并无冲突情况,可以考虑将重复的单条 SQL,已批量形势进行改写”
switch region leader
TiDB 本身会有 region cache 。如果 tikv 上的 leader 发生切换,但是 TiDB 还并为同步,及会有此 log 输出。量小无需关注
如果大量出现,可能与 tikv 异常关机,等异常情况有关。

推荐以下 连接 可以更多了解 相关 log 信息