Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ticdc/ticdc-ddl.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ summary: 了解 TiCDC 支持同步的 DDL 和一些特殊情况

### 创建和添加索引 DDL 的异步执行

为了减小对 Changefeed 同步延迟的影响,如果下游是 TiDB,TiCDC 会异步执行创建和添加索引的 DDL 操作,即 TiCDC 将 `ADD INDEX` 和 `CREATE INDEX` DDL 同步到下游执行后,会立刻返回,而不会等待 DDL 操作完成。这样可以避免阻塞后续的 DML 执行。
虽然 TiCDC 在大多数情况下会按顺序同步 DDL,但如果下游是 TiDB,`ADD INDEX` 和 `CREATE INDEX` 是例外。为了减小对 Changefeed 同步延迟的影响,TiCDC 会异步执行这两类 DDL,即 TiCDC 将 `ADD INDEX` 和 `CREATE INDEX` DDL 同步到下游执行后,会立刻返回,而不会等待 DDL 操作完成。这样可以避免阻塞后续的 DML 执行。
Comment thread
qiancai marked this conversation as resolved.
Outdated

当 `ADD INDEX` 或 `CREATE INDEX` DDL 操作在下游执行期间,TiCDC 执行同一张表的下一条 DDL 时,这条 DDL 可能长期被阻塞在 `queueing` 状态,导致其被 TiCDC 重复执行多次,重试时间过长时还会导致同步任务失败。从 v8.4.0 开始,如果拥有下游数据库的 `SUPER` 权限,TiCDC 会定期执行 `ADMIN SHOW DDL JOBS` 查询异步执行的 DDL 任务的状态,等到索引创建完成后再继续同步。这期间虽然同步任务的延迟会加剧,但避免了同步任务失败的问题。

Expand Down
6 changes: 4 additions & 2 deletions ticdc/ticdc-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,12 +403,14 @@ BR (Backup & Restore) 工具是将直接将数据生成 SST 文件并导入 TiKV

## 如何理解 DML 和 DDL 语句之间的执行顺序?

目前,TiCDC 采用了以下执行顺序
对于大多数 DDL,TiCDC 采用以下执行顺序

1. TiCDC 阻塞受 DDL 影响的表的同步进度,直到 DDL `commitTS` 的时间点,以确保在 DDL `commitTS` 之前执行的 DML 先成功同步到下游。
2. TiCDC 继续同步 DDL。当存在多个 DDL 时,TiCDC 是以串行的方式进行同步的
2. TiCDC 继续同步 DDL。当存在多个 DDL 时,TiCDC 通常以串行的方式进行同步
3. 当 DDL 在下游执行完成之后,TiCDC 继续同步 DDL `commitTS` 之后执行的 DML。

当下游是 TiDB 时,`ADD INDEX` 和 `CREATE INDEX` 是上述顺序的例外。为了减小对 Changefeed 同步延迟的影响,TiCDC 会异步执行这两类 DDL,不会等待其在下游执行完成后再返回。因此,这两类 DDL 不完全遵循上述“等待下游执行完成后再继续同步”的顺序。关于这种特殊处理及后续优化,参见[创建和添加索引 DDL 的异步执行](/ticdc/ticdc-ddl.md#创建和添加索引-ddl-的异步执行)。
Comment thread
qiancai marked this conversation as resolved.
Outdated

## 如何对比上下游数据的一致性?

如果下游是 TiDB 集群或者 MySQL,我们推荐使用 [sync diff inspector](/sync-diff-inspector/sync-diff-inspector-overview.md) 工具进行数据对比。
Expand Down
Loading