TiCDC 4.0.15 初体验
作者: dba_gc 原文来源:https://tidb.net/blog/1a7cc066
这里将 CDC 4.0.15 使用做一下总结,方便后续查阅。
这边的生产集群是从 4.0.11 升级到 4.0.15
CDC 监控图表
1、图表可以看到 CPU 和内存使用率降低了很多。goroutine 线程数也减少了非常多。
2、稳定了很多,升级了 2 周 CDC 没有自动重启过,不像 4.0.11 经常自动重启。
3、每个 changefeed 执行 DDL 都是异步调用,并不会影响其他 DDL 的执行。
下面是日志,可以看到 DDL 现在是异步调用。
[2021/12/14 15:09:21.967 +08:00] [INFO] [async_sink.go:132]
[“Execute DDL succeeded”] [changefeed=cs-mysql] [ignored=true]
[ddl=“{“StartTs”:429776112279617537,“CommitTs”:429776112279617540,“TableInfo”:{“Schema”:“cdkk”,“Table”:“t1”,“TableID”:5189,“ColumnInfo”:[{“Name”:“id”,“Type”:3},{“Name”:“pad1”,“Type”:15},{“Name”:“pad2”,“Type”:15},{“Name”:“pad3”,“Type”:15},{“Name”:“create_time”,“Type”:12},{“Name”:“age4”,“Type”:15},{“Name”:“age6”,“Type”:15},{“Name”:“age11”,“Type”:15},{“Name”:“ka”,“Type”:15}]},“PreTableInfo”:{“Schema”:“cdkk”,“Table”:“t1”,“TableID”:5189,“ColumnInfo”:[{“Name”:“id”,“Type”:3},{“Name”:“pad1”,“Type”:15},{“Name”:“pad2”,“Type”:15},{“Name”:“pad3”,“Type”:15},{“Name”:“create_time”,“Type”:12},{“Name”:“age4”,“Type”:15},{“Name”:“age6”,“Type”:15},{“Name”:“age11”,“Type”:15}]},“Query”:“ALTER TABLE t1 ADD ka
varchar(50)”,“Type”:5}“]
4、当前 changefeed 的下游 MySQL 执行 DDL 时 (包括加字段、加索引、修改字段长度),后续所有 DML 语句都会阻塞,同步会延迟。 这里要注意,如果下游 DDL 没有执行完。tidb 就开始大批量跑数据可能导致 CDC 内存积压。
5、这边的排序方式使用的 memory ,还未体验 Unified Sorter 。
6、同步速度
单个同步任务往下游 MySQL 同步速度没有之前的快了,单个任务平均每分钟往下游同步 3 万 -4 万条数据左右,单行平均长度在 1000-2000 个字节左右。 而改成 drainer 可以跑到 10 万 +。
尝试了调大 worker-count=64&max-txn-row=5000 ,和 mounter 为 16 也没有效果。
怎么样来提升单个同步任务的速度,有知道的小伙伴告知一下。
7、当下游执行 DDL 时间过长时,CDC 会不断的向下游发送 DDL 语句直到执行完成。当重试次数达到 20 次以上同步任务就会报错:[CDC:ErrReachMaxTry]reach maximum try: 20,等下游 DDL 执行完成后重新启动任务即可。
{
“id”: “cdkk-mysql”,
“summary”: {
“state”: “stopped”,
“tso”: 429776112279617539,
“checkpoint”: “2021-12-14 15:09:20.344”,
“error”: {
“addr”: “172.16.188.120:8300”,
“code”: “CDC:ErrExecDDLFailed”,
“message”: “[CDC:ErrReachMaxTry]reach maximum try: 20”
}
}
}
版权声明: 本文为 InfoQ 作者【TiDB 社区干货传送门】的原创文章。
原文链接:【http://xie.infoq.cn/article/9527ad0e3a3b45b32a2865608】。文章转载请联系作者。
评论