DDL 频繁卡住阻塞

【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.1
【复现路径】定时对表进行truncate 操作
【遇到的问题:问题现象及影响】表truncate语句卡住,后续任务挤压
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【附件:截图/日志/监控】

尝试措施:
取消DDL 语句失败
ADMIN CANCEL DDL JOBS job_id

触发TiDB Leader 重新选举,依然不能释放卡住的DDL
curl -X POST http://xxxx:10080/ddl/owner/resign

现在成功的措施 对TiDB Server 依次重启可以释放卡住的DDL。
但是卡住评率很频繁,昨天释放今天有卡住,每次重启TiDB Sever 对工作任务影响很大。

咨询一下有什么办法,可以不重启释放卡住任务,或者避免DDL 卡住

SELECT * FROM mysql.tidb_mdl_view
看看是不是有元数据锁

查询这个表很慢,一直没有返回数据

你有多少个region?我也碰到过元数据查询慢。

每个tivk 节点显示 有60K region

:joy:去年没有完全解决,今年又出现类似问题了么?重启不管用了么?

重启管用,就是影响很大,怎么避免DDL阻塞,或者不重启释放DDL阻塞的任务

:thinking:慢查询里有记录dll语句么?如果有,倒是可以看看是哪一步慢了

有的 就这两个 DDL 执行truncate 阻塞了 7个多小时,昨天阻塞了一次,今天又阻塞了一次

点开里面有执行计划么?

就一条truncate 语句,没有其它内容

看这里是刚启用元数据锁,尝试关闭元数据锁看看有没有效果?
https://docs.pingcap.com/zh/tidb/v6.5/metadata-lock#使用元数据锁

也有可能是事务问题

查看元数据锁是打开状态,关闭会有什么其它影响?

这个是6.5之前是默认关闭的,6.5才默认开启的。我理解是关闭没有影响。

嗯 感谢 已经释放阻塞任务,重新分配TiDBServer 节点,并检查schema 信息没有问题,看看明天是否还会阻塞。在阻塞尝试关闭 元数据锁看看

:handshake: :handshake: :handshake:

被其他动作阻塞了

早上查看,又有几个表被阻塞了

查看阻塞前一段时间,有一个 8kw条的insert & commit 的任务,是否是这个原因引起?