TiDB数据库中,同一时刻只能有一个TiDB Server做Online DDL操作。执行完的job会被移动到history queue中,然后Owner接着从job queue中获取下一个job来执行。
- 列表条目
TiDB中Online DDL操作的调度流程大致如下:
不同用户连接到不同的TiDB Server,发出的DDL操作由start job模块接收,并由start job模块生成一个对应的job放到TiKV节点上的job queue队列中。
承担Owner角色的TiDB Server中的worker模块会从TiKV节点上的job queue中获取Online DDL的job来执行。执行完的job会被移动到history queue中,然后Owner接着从job queue中获取下一个job来执行。
当前的Owner任期结束时,会通过选举选出一个新的TiDB Server,作为新的Owner来执行Online DDL任务。同时,新的Owner中的schema load模块会将最新的所有表schema的信息同步到TiDB Server的缓存中。