TICDC同步时,日志出现大量mysql死锁日志

【 TiDB 使用环境】生产
【 TiDB 版本】v5.4.1
【遇到的问题】出错大量死锁
【复现路径】做过哪些操作出现的问题
看社区发现很多人也跟我一样,出现大量的死锁现象,请問这块解决了吗,要怎么解决

按照库,表先排除一下,是否所有的表都这样,还是特定的

如果是特定的,分析下场景看看

基本使用频率比较大的表都会出现锁表情况

请问一下,锁表会导致cdc执行语句失败吗?如果失败会重新尝试执行吗?会导致数据丢失吗?

锁表 会阻塞写入操作,超时会出现回滚和失败

至于checkpoint 可以支持回放,但是能保留多久,和你的配置有关系

为啥会有表锁? 这个太不合理了

多个进程同步操作一张表的时候,就会cdc就会产生死锁报错

有没有相关配置,能让一张表最多一个进程去执行更新操作

隔壁的帖子不是有么~

如果同步出现抢占,能不能考虑采用队列的方式来处理? 当然,这个看你的场景需求

TICDC能否不用 Replace Into

感觉就是使用了 Replace Into 引起的

根据锁表的情况,进行应用优化。

正常业务运行几乎不会产生死锁现象,所以这边怀疑是TICDC插入使用的Replace Into问题

叫大佬们改成on duplicate key update:joy:

人小言微啊,得你们这些大佬或内部人员提:sob:

TiCDC 计划后面优化 replace into,替换成 insert 和 update,以减少 MySQL deadlock 的概率。

进度可以在这个 issue 中追踪:An enhancement of MySQL sink to turn off safe-mode automatically · Issue #5611 · pingcap/tiflow (github.com)

感谢反馈!

啥时候支持啊,发现TICDC同步好慢,可能是因为死锁

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。