TiDB Server中 schema load具体存储什么信息?

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【概述】 场景 + 问题概述

【应用框架及开发适配业务逻辑】

【背景】 做过哪些操作

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

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】

【附件】 相关日志及监控(https://metricstool.pingcap.com/)


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

TiDB中的Online DDL操作需要TiDB Server节点上的 start jobworkerschema load 模块以及TiKV节点上的 job queuehistory queue 协同完成。

TiDB数据库中,同一时刻只能有一个TiDB Server做Online DDL操作。我们把当前时刻可以执行Online DDL任务的TiDB Server称为 Owner

TiDB中Online DDL操作的调度流程大致如下:

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