Print

【MVS】TiDB CDC新架构V9有何改进

2025-03-15 发表

问题描述

TiDB CDC新架构V9有何改进

解决方法

新老技术架构对比

 不变部分

三个模块基本没有改动:Puller(从 TiKV 拉取变更),Configs & Cli API(配置和用户操作API),Sink(往下游系统写入数据的模块,比如 KafkaMySQL 等)。这保证了新 CDC 与上下游之间有良好的兼容性,用户可以无感升级。

 改进部分

CDC 的所有内核内容都进行了重写,包括基本的抽象模型,线程模型,监控等等。

1)       Changefeed彼此独立各负责一个同步任务链条的上下游,变为一个控制内部服务活动的参数。原同步任务抽象为各个服务管理,便于扩展和代码演进。

2)       消息处理由Timer Driven 模式调整为Event Driven 模式,从原先每50ms周期轮动变为事件(如DDLDMLchangefeed创建修改等)驱动模式,将减少同步时延、提升同步并发效率。

3)       代码复杂度降低,对表变革依赖关系进行逻辑抽象化,统一交给Maintainer模块管理,依赖判断复杂度从N x N降为N x 1