【 TiDB 使用环境】生产
【 TiDB 版本】v5.4.1
【遇到的问题】出错大量死锁
【复现路径】做过哪些操作出现的问题
看社区发现很多人也跟我一样,出现大量的死锁现象,请問这块解决了吗,要怎么解决
按照库,表先排除一下,是否所有的表都这样,还是特定的
如果是特定的,分析下场景看看
基本使用频率比较大的表都会出现锁表情况
请问一下,锁表会导致cdc执行语句失败吗?如果失败会重新尝试执行吗?会导致数据丢失吗?
锁表 会阻塞写入操作,超时会出现回滚和失败
至于checkpoint 可以支持回放,但是能保留多久,和你的配置有关系
为啥会有表锁? 这个太不合理了
多个进程同步操作一张表的时候,就会cdc就会产生死锁报错
有没有相关配置,能让一张表最多一个进程去执行更新操作
TICDC能否不用 Replace Into
感觉就是使用了 Replace Into 引起的
根据锁表的情况,进行应用优化。
正常业务运行几乎不会产生死锁现象,所以这边怀疑是TICDC插入使用的Replace Into问题
叫大佬们改成on duplicate key update:joy:
人小言微啊,得你们这些大佬或内部人员提
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 分钟后被自动关闭。不再允许新回复。