Skip to content

Commit

Permalink
ticdc: refine changefeed overview (#14799) (#14848)
Browse files Browse the repository at this point in the history
  • Loading branch information
ti-chi-bot authored Aug 22, 2023
1 parent d5d9b34 commit 3a52e51
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
Binary file added media/ticdc/ticdc-changefeed-state-transfer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed media/ticdc/ticdc-state-transfer.png
Binary file not shown.
22 changes: 13 additions & 9 deletions ticdc/ticdc-changefeed-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,30 @@ Changefeed 是 TiCDC 中的单个同步任务。Changefeed 将一个 TiDB 集群

同步任务状态标识了同步任务的运行情况。在 TiCDC 运行过程中,同步任务可能会运行出错、手动暂停、恢复,或达到指定的 `TargetTs`,这些行为都可以导致同步任务状态发生变化。本节描述 TiCDC 同步任务的各状态以及状态之间的流转关系。

![TiCDC state transfer](/media/ticdc/ticdc-state-transfer.png)
![TiCDC state transfer](/media/ticdc/ticdc-changefeed-state-transfer.png)

以上状态流转图中的状态说明如下:

- Normal:同步任务正常进行,checkpoint-ts 正常推进。
- Stopped:同步任务停止,由于用户手动暂停 (pause) changefeed。处于这个状态的 changefeed 会阻挡 GC 推进。
- Error:同步任务报错,由于某些可恢复的错误导致同步无法继续进行处于这个状态的 changefeed 会不断尝试继续推进,直到状态转为 Normal。处于这个状态的 changefeed 会阻挡 GC 推进。
- Warning:同步任务报错,由于某些可恢复的错误导致同步无法继续进行处于这个状态的 changefeed 会不断尝试继续推进,直到状态转为 Normal。最大重试时间为 30 分钟,超过该时间,changefeed 会进入 failed 状态。 处于这个状态的 changefeed 会阻挡 GC 推进。
- Finished:同步任务完成,同步任务进度已经达到预设的 TargetTs。处于这个状态的 changefeed 不会阻挡 GC 推进。
- Failed:同步任务失败。由于发生了某些不可恢复的错误,导致同步无法继续进行,并且无法恢复。TiCDC 将为发生故障的 changefeed 保留数据 24 小时,以防止其在 GC 过程中被清除。
- Failed:同步任务失败。由于发生了某些不可恢复的错误,导致同步无法继续进行,并且无法自动恢复。为了让用户有足够的时间处理故障,处于这个状态的 changefeed 会阻塞 GC 推进,阻塞时长为 `gc-ttl` 所设置的值,其默认值为 24 小时。

> **注意:**
>
> 如果 changefeed 遭遇错误码为 ErrGCTTLExceeded, ErrSnapshotLostByGC 或者 ErrStartTsBeforeGC 类型的错误,则不再阻塞 GC 推进。
以上状态流转图中的编号说明如下:

- ① 执行 `changefeed pause` 命令。
- ② 执行 `changefeed resume` 恢复同步任务。
-`changefeed` 运行过程中发生可恢复的错误,自动进行恢复
-执行 `changefeed resume` 恢复同步任务
-`changefeed` 运行过程中发生不可恢复的错误
-`changefeed` 已经进行到预设的 TargetTs,同步自动停止
-`changefeed` 停滞时间超过 `gc-ttl` 所指定的时长,不可被恢复
-`changefeed` 尝试自动恢复过程中发生不可恢复的错误
-`changefeed` 运行过程中发生可恢复的错误,自动重试
-`changefeed` 自动重试成功,checkpoint-ts 已经继续推进
-`changefeed` 自动重试超过 30 分钟,重试失败,进入 failed 状态。此时 `changefeed` 会继续阻塞上游 GC,阻塞时长为 `gc-ttl` 所配置的时长
-`changefeed` 遇到不可重试错误,直接进入 failed 状态。此时 `changefeed` 会继续阻塞上游 GC,阻塞时长为 `gc-ttl` 所配置的时长
-`changefeed` 的同步进度到达 target-ts 设置的值,完成同步
-`changefeed` 停滞时间超过 `gc-ttl` 所指定的时长,遭遇 GC 推进错误,不可被恢复

## 操作 Changefeed

Expand Down

0 comments on commit 3a52e51

Please sign in to comment.