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

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】

【概述】 场景 + 问题概述
sysbench 给30个表prepare数据, 但是发现add index只是串行,其它都是queueing 排队状态

【背景】 做过哪些操作

【现象】 业务和数据库现象

【问题】 当前遇到的问题


是时只有一个表的add index在跑,其它都是排队,是我哪里配置不对吗?

【业务影响】

【TiDB 版本】
TiDB v5.4.2

【应用软件及版本】

【附件】 相关日志及配置信息

  • TiUP Cluster Display 信息
  • TiUP CLuster Edit config 信息

监控(https://metricstool.pingcap.com/)

  • TiDB-Overview Grafana监控
  • TiDB Grafana 监控
  • TiKV Grafana 监控
  • PD Grafana 监控
  • 对应模块日志(包含问题前后 1 小时日志)

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

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

有两个队列,一个索引的,一个索引以外ddl的,两个worker处理

tidb DDL的痛,加索引只能串行,而且加索引的表还不能有其他DDL,否则会导致后面其他表非add index操作被阻塞, 加索引只能调参数加快速度: tidb_ddl_reorg_batch_size tidb_ddl_reorg_worker_cnt

TiDB 6.2 会支持并行 DDL

TiDB目前就这么设计的,串行执行。后续会有改进

6.2什么时候发版哈

tks all

一样一样

https://github.com/pingcap/tidb/projects/63%2012

发版的进度可见~

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。