# 网络DDL相关模块

![`smart`](OnlineDDLRelatedModules_aa_002_20220509.png)

------------------------------------------------------------
TiDB 支持在线 DDL，也就是说，DDL 操作不会锁表。

整个 TiDB 集群只允许一个 TiDB 服务器同时执行 DDL 操作。每个 TiDB 服务器都有一个 `Worker` 模块来处理 DDL 操作，只有当当前 TiDB 服务器角色是 `Owner` 时才会启用。

如果您的 TiDB 集群中有多台 TiDB 服务器，那么这些 TiDB 服务器将按照固定的时间（通过选举）轮流成为 `Owner` 角色。当 TiDB 服务器成为 `Owner` 角色时，其 `Worker` 模块可以处理 DDL 操作。

当前集群的`Owner`角色信息存储在PD中，`Woker`模块可以检查它所在的TiDB服务器是否当前是`Owner`角色。当`Owner`的任期到期时，PD将发起新的`Owner`选举。

除了`Worker`模块外，还有`Load Schema`模块，用于在当前TiDB服务器成为`Owner`角色后加载最新的模式信息，以便具有当前`Owner`角色的TiDB服务器拥有最新的模式信息。

最后，`Start Job`模块负责接收DDL请求并为DDL操作分配唯一ID。这里我们称每个具有分配ID的DDL操作为一个作业。`Start Job`模块将作业放入TiKV集群的作业队列中。