跳转到主要内容

记一起 Schedule 卡住的问题

1 现象

业务反馈查询 TiFlash 报错:No access path for table 'dwd_id_mapping' is found with 'tidb_isolation_read_engines' = 'tiflash,tidb', valid values can be 'tikv'.

到集群中查看了一下,确实这个表的副本一直处于同步状态,但是进度一直没有发生变化。

image

看了下 PLACEMENT POLICY 状态,确实也处于 ​INPROGRESS​​状态
​image

但是通过 pd-ctl​来看,scheduler​的状态是正常的,但是 operator show​ 发现并没有待执行的operator​的存在。
​image

2 根因分析

根据上述表现分析说明, PD 根本没有产生operator​,肯定是调度的某个条件没有满足导致的,联想到昨天做的唯一操作是:由于​**TiFlash 配置失效问题​ ,调整了 TiFlash Write 节点的​​storage.main.capacity​​配置,将其设置为比当前使用量略大的值,** 大概率是和这个动作有关系。

通过pdctl show config​看到当前配置的schedule.low-space-ratio: 0.88,将其修改为 0.98 后,过了几分钟 TiFlash 副本就同步完成了,后续查询也没有继续报错了。

PS: 至于为什么这个表的 TiFlash 副本需要重新同步,是因为每天业务都会TRUNCATE 该表重新插入数据,admin show ddl jobs​也可以佐证。
​image