TIDB ticdc同步性能问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.8
【遇到的问题:问题现象及影响】 ticdc在同步TIDB–>TIDB集群的数据过程中,排除DDL操作场景,大家是否遇到过同步性能的问题,例如:QPS写&&每秒行变更达到XX后,ticdc复制延迟就开始变大问题

只看dml语句如果是update更新大表会有延迟,其他的不明显

ticdc是解析底层wal【or raft日志】日志来实现数据同步的,理论上是不是跟QPS和SQL写法没关系呢

CDC拉取的是源头的行变更信息,所以在行数变化一致的情况下,一条SQL和两条SQL实现效果一样的

看来对于单条SQL更新行数较多的话【例如:update tab set where col0=‘a’ and col1=‘b’,过滤条件使用了辅助索引,行检索上万行】,延迟可能真的会变大

是的,因为是基于行的

我见的都是大事务延时的

你们业务上用ticdc 了吗? 坑多不多,哈哈

大事务就是行变更多的事务,延迟大点正常的 :grinning:
从 v6.2 版本开始,TiCDC 支持拆分单表事务功能,可大幅降低同步大事务的延时和内存消耗。因此,在业务对事务原子性要求不高的场景下,建议通过设置 sink uri 参数 transaction-atomicity 打开拆分事务功能以解决可能出现的同步延迟和 OOM 问题。

OOM问题是指TICDC的实例么?问到这里,还有个TICDC部署的问题,看社区文档上TICDC部署建议是在TIDB集群上部署的【考虑同步延迟问题】,感觉这个耦合性比较强,如果对同步延迟不敏感的话,单独部署是不是更友好些

TiCDC是一个组件,你可以单独部署到一台机器上,加入到TiDB集群就可以。

这里的OOM可能是TiCDC自己也可能是下游TiDB。
TiCDC是TiDB的一个组件,不能单独存在。你可以在部署TiDB的时候一起部署,或者在已有的TiDB上扩容这个组件。单独部署肯定比混合部署好维护些的。

cdc.region-concurrencycdc.sink-parallelism,参数调调有效果不

还在方案调研中,哈哈

尝试部署下测测,感谢大神