tidb gc-ttl和tidb_gc_life_time 的区别是什么

【TiDB 使用环境】生产环境
【TiDB 版本】5.4.0
【操作系统】Centos 7.9
【部署方式】自己部署
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
gc-ttl默认24小时, tidb_gc_life_time默认10分钟。
gc-ttl可以保证ticdc可以同步24小时内的数据,tidb_gc_life_time可保证删除数据10分钟内可找回,但是还是不太清楚这两个变量的区别,麻烦帮忙解答一下,谢谢。
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

看描述应该是gc-ttl优先级大于tidb_gc_life_time。

可以参考这里看看。

两个不同组件的不同参数
TiKV 通过在 Key 后面添加版本号实现 MVCC机制,通过 GC 机制将无用的老旧版版数据做物理回收,tidb_gc_life_time 能保证一段时间以内的数据不会回收,tidb_gc_life_time 不是越长越好,太长会额外占用空间,且扫描数据是会多扫历史数据影响性能
TiCDC 依赖 TiKV 的 MVCC 机制来抽取历史一段时间的数据变化,所以 tidb_gc_life_time 对 TiCDC 很重要,当同步延迟超过 tidb_gc_life_time 时,就无法保证数据同步的连续性,导致同步中断,所以 TiCDC 增加了 gc-ttl 参数,在同步延迟高且超过 tidb_gc_life_time 时,仍阻塞 gc 推进,保证同步不会中断

2 个赞

还是不太明白如何做到的,在同步延迟高且超过 tidb_gc_life_time 时,数据已经被回收,gc-ttl是怎么保证ti-cdc还能继续抽取数据

https://docs.pingcap.com/zh/tidb/stable/ticdc-faq/#ticdc-gc-safepoint-的完整行为是什么

1 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。