大量TTL manager has timed out, pessimistic locks may expire提示

突然出现大量的错误提示:
SQLException; SQL state [HY000]; error code [8229]; TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction; nested exception is java.
sql.SQLException: TTL manager has timed out, pessimistic locks may expire, please commit or rollback this transaction
导致大量不同查询表或插入失败, 查过cpu和内存占用均正常,
没有慢查询,只有个别表插入数据量较大,但是分库的,其他库也出这个问题.
重启tikv后恢复正常

应用框架: mybatis-plus3.5+springboot2.6,基于dynamic-datasource3.5.1做多数据源分库处理

这如何查起? 感觉tidb非常不稳定啊, 数据没有完成切过来就各种莫名其妙的问题, 同样程序之前单机Mysql没有这些问题

1 个赞

把 TTL 相关的配置特性都关掉

性能跟不上业务数据灌入了,导致大量超时

把特性关闭,大量业务超时啦

tidb悲观锁事务超时(默认1小时)导致大量操作失败,根本原因是大事务未拆分或执行时间过长,建议合理调整max-txn-ttl参数,而非依赖重启。

默认10分钟,事务没有及时提交而已。

并没有存在大事务, 只是简单的查询和新增,查询都带索引,只是新增数量略大但也还没到2KW

tidb这么low吗? 业务才刚起步,数据量也只是个别表稍大点,还没到2000w

有哪些配置?

事务没提交

事务超时导致的,数据库内应该存在长时间未提交的事务。

有具体命令吗? TTL是什么

参考这个就足够了

关于这个问题,对于TTL错误,查看系统日志日志可以帮助定位问题。 欢迎继续交流讨论。