SOS CDC 望重视

从4.0的版本一路升到7.1.1, 总体来说数据库的各项功能基本上ok的,遇到不少bug,也能想办法规避,加上新版本上了一些新的功能,管理和使用上也越来越流畅,唯一让人头疼的就是CDC,一路走来,各种bug,不断升级也是因为cdc问题被动进行, 总结如下:

  1. 各种卡住没有反馈信息,狂刷INFO日志,无错误信息
  2. 偶尔能够显示的错误,好多情况完全不相关,甚至你只有自己pause才能看到错误,定位问题困难
  3. 大批量刷新数据(比如历史上给decimal类型改了个精度,当然这个新版本已解决)
  4. 横向影响,一个changefeed卡主,其他也受影响
  5. 因为各种原因暂停了一会,然后根本追不上,卡住不动,其他正常的也受影响
  6. CDC导致pd不断地重启

一个优秀数据库除了本身的各项功能外,其增量日志的提取对业务系统是非常重要的,比如oracle的OGG,mysql的binlog都是非常稳定, tidb的binlog我们没有试过,因为官方文档明确说明将不再维护,推荐使用CDC, 我们的业务系统数据虽然上了tidb,但是cdc不稳定,不断地卡住,处理上我们只能跳过数据,在生产环境这是完全无法接收的,所以,即使上线了快2年的tidb,我们还是一直不敢大用, 集群级别的热备也做不起来。

今天又出了个问题,下游的kafka因为一个节点异常,导致cdc failed, kafka恢复之后(大概中断1个小时),resume cdc,结果有增量数据发送到kafka,而且抽查了几张表,数据都已经发到最新(是不是所有表都到了最新不清楚),但是cdc 的tso死活不推进, 重启了changefeed,重启cdc都没用,死活过不去。 你原来的不行,我重建一个总行吧,用之前的changefeed的tso新建一个,情况完全相同,kafka有数据,tso死活不走,关键,changefeed的状态显示normal,日志里面也没有什么错误信息,真的是无从下手…

你说的 BUG 有对应的问题链接吗?

如果是 BUG 只能 case by case 去解决,
这样子讲有点空泛,

产研的老师们无法下手,

建议按照产品缺陷模板,一个一个问题反馈,尽量提出你所遇到的 可复现的 bug 来反馈问题。

Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 TiDB 版本】
【 Bug 的影响】

【可能的问题复现步骤】

【看到的非预期行为】

【期望看到的行为】

【相关组件及具体版本】

【其他背景信息或者截图】

说实话,只有目前遇到的各种问题的现象,至于如何重现真的不好说,也没有这个条件,因为我们可能没法为了重新bug在生产环境去构造kafka故障,然后测试环境和生产环境可能也千差万别,很难复现。
前段时间出现的导致pd不断重启的,也发过帖子:

这个在新版本已经修改了,但是其他你说的问题

没有详情无从下手!

搭建个类似环境的测试环境去复现下呢

请问你的CDC同步到下游的QPS有多少?追不上通常是有性能问题出现,可以针对性进行调优的。

把更多的信息提供上来,我们帮你分析分析

我们使用国产数据库也是各种BUG,各种问题,习惯了就好了,毕竟我们起步晚

如果你想吧tidb用起来,建议上企业版,原厂会给你兜底各种问题。

2 个赞

下游是直接到kafka, 不是下游的问题,是cdc本身增量日志的抽取问题, 假设我抽取1000张表,你会发现其中可能有600张表抽取进度正常,然后后面的表卡住看不出原因,然后整个cdc的tso也无法推进

在Grafana上有一个 TiCDC 的监控面板,到里面去查看一下 一些关键监控指标,看看内部的流转算子运行情况。
面板大概有下面这些:
image

tidb版本升级到v7.1.3, cdc组件由原来的和tidb&pd混合部署调整为独立部署,基本ok了