多个表并行加索引,只能串行一个一个在running状态,其它都在排队

TiDB数据库中,同一时刻只能有一个TiDB Server做Online DDL操作。执行完的job会被移动到history queue中,然后Owner接着从job queue中获取下一个job来执行。

  1. 列表条目

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的缓存中。