【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
乐观事务下写写冲突导致的update或insert慢(耗时几秒,修改的内容不多,走索引修改),只能降低并发,把并行改串行来解决吗?如果不使用悲观事务,还有其它办法吗?
现在并发并不高,也就几个并发。
tidb_disable_txn_auto_retry 重试会导致数据丢失,自动重试不行。
慢查询日志里有txnLock:
Prewrite_time: 4.738867105 Wait_prewrite_binlog_time: 0.000000467 Commit_backoff_time: 4.736 Backoff_types: [txnLock txnLock txnLock txnLock txnLock] Resolve_lock_time: 0.000006231 Write_keys: 9 Write_size: 793 Prewrite_region: 3
tidb 日志里有Write conflict
[2023/08/21 21:48:03.278 +08:00] [WARN] [session.go:425] [sql] [conn=747870656] [label=general] [error=“[kv:9007]Write conflict, txnStartTS=443711666075730001, conflictStartTS=443711667071877217, conflictCommitTS=443711667071877226, key={tableID=1765, handle=436418090659116} primary={tableID=1765, indexID=7, indexValues={180357100, 1, 1, 1692625676, 436418090659116, }} [try again later]”] [txn=“Txn{state=invalid}”]
文档上写应用程序修改逻辑,需要怎么修改逻辑呢?
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】