【Q&A 回顾】TiCDC 源码解读#7 TiCDC Sorter 模块揭秘

本文为 TiCDC 源码解读第七期 - TiCDC Sorter 模块揭秘 的分享 Q&A 整理以及视频回顾、分享资料下载合集。对于本期分享内容有更多想要交流的,也欢迎在本帖下留言。

本期 Q&A 回顾

以下是本期 《TiCDC Sorter 模块揭秘》的 Q&A 回顾:

Q1:大事务拆分这块能再详细分享一下吗?64kb 是跨表还是同一表的要求呢?
A:这期讲到事件的 key 编码是以 CommitTs 和 StartTs 作为比 Record 更高的前缀,所以在从 SortEngine 中扫描出事件时,它们是以 CommitTs 和 StartTs 排序的,因此来自同一事务的事件被聚合在一起。当开启大事务拆分功能时,对于每个表上生成的一个任务,每隔 64KB 就会对事务进行一次切割,将部分事件写入到下游。但是大事务拆分之后,仍然需要等待整个事务写入到下游之后,才能推进 Checkpoint。

Q2:哪个版本能限制 cdc 或 sorter 内存大小了?
A:5.4 及之后的版本都可以,通过 max-memory-percentage 限制了排序引擎本身的内存占用。changefeed 的内存占用在 6.5 及之后的版本可以通过 changefeed 配置中的 memory-quota 项来限制。

Q3:提到的控制 ticdc 或 sorter 内存的问题是哪个参数,目前只找到 per-table-memory-quota。
A:per-table-memory-quota 在 6.4 及更早的版本中限制每个表上等待发送到下游的数据量大小,默认 10MB。这个选线在 6.5 中被 memory-quota 取代了,后者可以在每个 changefeed 上设制。限制 TiCDC 进程内排序引擎的总内存占用的参数是 max-memory-percentage。

直播互动获奖用户公示

恭喜以下参与互动的获奖用户~可以获得 100 TiDB 社区积分/题

以下用户可以在2023年3月10日前,添加 微信号:Oneandtwii,回复:您的视频号昵称 + TiDB 社区昵称,即可进行积分兑换

序号 视频号用户
1 俨-zen
2 xz
3 冯老爷

对于本期分享内容有更多想要交流的,也欢迎在本帖下留言。