TiCDC 可以通过一个start_ts启动,那这个 start_ts 非常早,会有什么问题吗?
TiKV 的 binlog 不会被 purged 吗?
这个start_ts不能超过gc_safe_point
接着 @h5n1 的回答,
这个start_ts不能超过gc_safe_point
TiKV 没有传统意义上的 “binlog”,TiCDC 是通过读取 TiKV 中保存的数据的历史版本来获取历史数据的。
当 start ts 早于 gc_safe_point 时,TiCDC 无法读到早于 gc_safe_point 的版本,这会导致同步任务创建失败。
如果 start ts 很早,可能会导致
- TiCDC 在读取大量历史版本时,可能提高 TiKV 节点的 IO 压力,间接影响业务。
- TiCDC 读取历史版本后,它会将数据缓存在本地磁盘上,如果数据量大于 TiCDC 磁盘容量,会导致同步中断。
好的,感谢大佬,TiKV 肯定会有 change log嘛,想问下 change log存在哪里呢?我有看到官网说存在 RocksDB 中?
TiKV 没有传统意义上的 “change log”,CDC 获取的变更数据来自两处:
- TiKV RocksDB 中保存的 MVCC 版本。
- TiKV 实时写入的 Raft log。
CDC 将这两种数据来源统一成完整的连续的变更数据流,向外输出。
巧妙,太巧妙了。 RocksDB 的 MVCC 版本的 version 应该就是 timestamp 吧
是的
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。