【 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 了吗? 坑多不多,哈哈
大事务就是行变更多的事务,延迟大点正常的
从 v6.2 版本开始,TiCDC 支持拆分单表事务功能,可大幅降低同步大事务的延时和内存消耗。因此,在业务对事务原子性要求不高的场景下,建议通过设置 sink uri 参数 transaction-atomicity
打开拆分事务功能以解决可能出现的同步延迟和 OOM 问题。
OOM问题是指TICDC的实例么?问到这里,还有个TICDC部署的问题,看社区文档上TICDC部署建议是在TIDB集群上部署的【考虑同步延迟问题】,感觉这个耦合性比较强,如果对同步延迟不敏感的话,单独部署是不是更友好些
TiCDC是一个组件,你可以单独部署到一台机器上,加入到TiDB集群就可以。
这里的OOM可能是TiCDC自己也可能是下游TiDB。
TiCDC是TiDB的一个组件,不能单独存在。你可以在部署TiDB的时候一起部署,或者在已有的TiDB上扩容这个组件。单独部署肯定比混合部署好维护些的。
cdc.region-concurrency
、cdc.sink-parallelism
,参数调调有效果不
还在方案调研中,哈哈
尝试部署下测测,感谢大神