批量导入功能,一次性导入87w数据记录时,报TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction错误提示

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.8
  • 【问题描述】:我们系统有个批量导入功能,一次性导入87w数据记录时,报“[ERR] 8229 - TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction”错误提示,导入大批量数据时没法使用事务功能吗?
  1. 请确认下,这个环境使用的是否悲观锁模式

  2. 如果开启了悲观锁,请确认下 tidb server 参数 max-txn-ttl 的配置,默认情况下该参数为 10 min ,即允许的悲观事务运行的最长时间。出现上面的报错,可能是因为 87w 的数据导入的执行时间即将超出该参数限制。建议将大事务进行拆分成若干小事务,提高事务提交成功率,降低回滚的代价或适当调整相关参数。文档参考链接如下:

https://docs.pingcap.com/zh/tidb/stable/pessimistic-transaction#常见问题

https://docs.pingcap.com/zh/tidb/stable/tidb-configuration-file#max-txn-ttl

经过对生产环境确认,目前是默认的悲观锁模式,通过修改 max-txn-ttl 的配置,由默认的10分钟改为30分钟已解决,非常感谢!

:handshake::handshake::handshake:

请问如何查看系统的事务是 悲观锁模式,还有如何修改 max-txn-ttl 的参数设置呢?

哦,我找到了,show variables like ‘tidb_txn_mode’ 可以查看事务模型,值为 pessimistic 表示悲观的,感谢感谢

有问题可以随时提新帖子咨询哟~