引言
TiCDC作为TiDB的数据同步组件,负责直接从TiKV感知数据变更同步到下游。其中比较核心的问题是数据解析正确性问题,具体而言就是如何使用正确的schema解析TiKV传递过来的Key-Value数据,从而还原成正确的SQL或者其他下游支持的形式。本文主要通过对TiDBOnlineDDL机制原理和实现的分析,引出对当前TiCDC数据解析实现的讨论。
背景和问题
数据同步组件是数据库生态中不可或缺的生态工具,比较知名的开源单机数据库MySQL就将数据同步作为Server能力的一部分,并基于MySQLbinlog实现异步/半同步/同步的主从复制。由于MySQL悲观事务模型和表元数据锁的存在,我们总是可以认为MySQLbinlog中存在因果关系的data和schema符合时间先后顺序的,即:
Newdata