TiDB DDL 任务的并行处理方式 更高效灵活的 DDL

小夏 教育 更新 2024-02-01

Pingcap 技术。

该技术由Pingcap提交,并参与“数据猿年度金猿策划活动-2023大数据行业年度创新技术突破榜暨奖项”评选。

目前,数据定义语言(DDL)语句的分布式调度系统主要分为以下几种集中式实现:

1. 以oracle、mysql等传统单机或集群系统为例。 元数据锁系统通常通过锁定需要 DDL 更改的对象来协调各种 DDL 语句的执行顺序。 实现并发效果。

2.分布式数据库系统Ocean Base,TDSQL数据库也通过在分布式系统中实现类似的MDL锁来实现并发DDL语句调度的效果。

如何保证当多个DDL工作线程(也称为任务执行单元)同时执行DDL任务时,用户数据库中的对象定义或对象存储数据不会不一致。

本申请实施例提供一种DDL任务的并行处理方法、计算节点、电子设备和计算机可读存储介质,可以解决现有技术的上述问题。 它为涉及数据库字段的DDL任务提供了一种并行处理方法、计算节点和电子设备。 该方法包括:获取作业任务表,用于记录未处理的DDL任务的相关信息,包括DDL任务进入数据库系统的顺序和DDL任务对应的变更对象所在的数据模式; 确定要执行的第一个DDL任务,从作业任务表中确定符合预定任务并行处理规则的第二个DDL任务; 目标的第二个 DDL 任务与第一个 DDL 任务并行处理。 该应用实施例实现逻辑简单,具有较强的可扩展性,能够适应不同数据块形式的部署,不存在像现有技术那样依赖类似元数据锁模式协调执行顺序实现并发DDL调度效果的限制。

TIDB 是由 PingCap 自主设计开发的开源分布式关系型数据库,是一款融合分布式数据库产品,支持混合事务处理和分析处理(HTAP),具有水平伸缩或伸缩、金融级高可用、实时 HTAP、云原生分布式数据库,兼容 MySQL 57 协议、MySQL生态等重要特性。

数据定义语言 (DDL) 用于定义数据对象(数据库、表、字段)。 它不是一种编程语言,而是SQL语言(结构化查询语言)的一个组成部分。 SQL是一种标准化语言,用于在关系数据库(如MySQL、SQL Server、Oracle等)中执行操作。 SQL 语言有四种类型:数据定义语言 (DDL)、数据操作语言 (DML)、数据控制语言 (DCL) 和事务控制语言 (TCL)。 使用 DDL,我们可以创建、修改和删除数据库、表和视图等对象。

目前,数据定义语言语句的分布式调度系统主要分为以下几种集中式实现:

1. 以oracle、mysql等传统单机或集群系统为例。 元数据锁系统通常通过锁定需要 DDL 更改的对象来协调各种 DDL 语句的执行顺序。 实现并发效果。

2.分布式数据库系统Ocean Base,TDSQL数据库也通过在分布式系统中实现类似的MDL锁来实现并发DDL语句调度的效果。

如何保证当多个DDL工作线程(也称为任务执行单元)同时执行DDL任务时,用户数据库中的对象定义或对象存储数据不会不一致。

从设计之初,TiDB DDL 模块就选择了最佳的异步变更模式,为 TiDB 用户提供了不停机的变更服务能力。

该专利提供了一种针对DDL任务的并行处理方法,可以解决现有技术的上述问题。 所描述的技术方案如下:

根据本专利实施例的一个方面,提供一种用于数据定义语言DDL任务的并行处理方法,该方法由数据库系统中的目标计算节点执行,包括:

l 获取作业任务表,该作业任务表用于记录尚未处理的DDL任务的相关信息,相关信息包括DDL任务进入数据库系统的顺序和DDL任务对应的变更对象所属的数据模式;

确定正在执行的第一个DDL任务,从作业任务表中确定符合预定任务并行处理规则的第二个DDL任务,并且该任务并行处理规则与DDL任务进入数据库系统的顺序和DDL任务对应的变更对象所在的数据模式有关;

目标第二个 DDL 任务与第一个 DDL 任务并行处理。

根据本专利实施例的另一方面,在数据库系统中提供目标计算节点,其包括:

作业任务表模块用于获取作业任务表,作业任务表用于记录未处理的已完成的DDL任务的相关信息,相关信息包括DDL任务进入数据库系统的顺序和DDL任务对应的变更对象所在的数据模式;

任务确定模块用于确定正在执行的第一个DDL任务,从作业任务表中确定符合预定任务并行处理规则的第二个DDL任务,任务并行处理规则与DDL任务进入数据库系统的顺序和DDL任务对应的变更对象所在的数据模式有关;

并行处理模块用于第二个DDL任务和第一个DDL任务的并行处理。

根据本专利实施例的另一方面,电子设备包括存储器、处理器和存储在存储器上的计算机程序,处理器执行计算机程序的步骤以实现所述DDL任务的并行处理方法。

根据专利实例的另一方面,提供一种计算机可读存储介质,其上存储计算机程序,以及当计算机程序由处理器执行时实现上述DDL任务的并行处理方法的步骤。

专利实施例中提供的技术方案带来的有益效果是:

通过获取任务任务表,将至少一个DDL任务的相关信息记录在任务任务表中,根据任务并行处理规则,从作业任务表中确定处理中可以与该处理中第一个DDL任务并行处理的第二个DDL任务,并将第二个DDL任务与第一个DDL任务并行处理, 这样逻辑简单,扩展性强,能适应不同数据块形式的部署。没有现有技术这样的东西,它只能按顺序从队列中选择 DDL 任务。

本申请具有以下技术效果:

1、方案实现逻辑简单,扩展性强;

2、该方案可充分利用集群整体资源,自动负载均衡任务,扩展性强;

3、能适应不同数据库形态的部署;

a) 单实例数据库部署。

b) 集群单主节点,集群范围分布式DDL任务调度。

c) 集群分布式DDL任务调度(多主节点)。

4、在分布式系统中的故障恢复性能特别好,不会遇到锁实现方案中分布式死锁检测的复杂性,也不会遇到单点锁中控和单点故障问题的性能;

5、故障恢复简单高效,无需额外操作即可将DDL任务调度恢复到正常状态。

6、该模型中易于实现特定的分布式调度规则,将特定的DDL任务调度到特定的计算节点进行执行,如按数据位置调度、多个租户的可用计算节点等。

专利申请号 公开号:cn115687378a

团队负责人姓名:黄文军

黄文军是 PingCap TiDB 的研发工程师,也是 TiDB 中 CTE 函数开发的负责人,致力于 TiDB DDL 的演进。

团队其他重要成员姓名:李霞、黄晓、刘琦、黄东旭、崔秋。

联系:pingcap

Pingcap是行业领先的企业级开源分布式数据库公司,提供开源分布式数据库产品、解决方案和咨询、技术支持、培训和认证服务,致力于为全球行业用户提供稳定、高效、安全、可靠、开放、兼容的新型数据服务平台,解放企业生产力,加速企业数字化转型升级。

DDL操作是最繁重的数据库管理操作之一,该技术的专利为DDL任务提供了一种并行处理方法,逻辑简单,扩展性强,可以适应不同数据块形式的部署。

一头智能硬件。

这项专利使得 TiDB 的 DDL 更加灵活高效,新的底层架构也为后续元数据锁定、分布式任务等功能奠定了坚实的基础。

某互联网教育公司顾问。

陶杰.

相似文章

    金猿科技展 训练样本集的数据增强技术

    星环科技。本项目由星环科技投稿,参与 数据猿年度金猿策划活动 大数据产业年度创新技术突破榜暨奖项 评选。为了满足日益增长的AI性能需求,需要不断更新训练样本集,以训练和更新AI模型。研究人员不断创建新的模型结构,提出新的模型训练技术,使AI模型在特定领域的公共数据集上取得超越人类表现水平的结果,但在...

    金猿产品展示 有书ChatBI是一款基于大模型的可信对话式数据分析平台

    网易舒凡产品。本产品由网易书凡交付,参与评选 数据猿年度金猿策划活动 中国大数据产业年度创新服务产品榜奖 有书聊天是基于网易自研大模型的对话式数据智能助手,网易书凡于年推出,旨在实现自然语言对话作为分析,通过日常对话获取可信数据,大幅降低数据消费门槛,引领数据分析新范式。优数Chatbi是数据分析领...

    金猿案例展:首创证券NoETL敏捷分析解决方案

    aloudata 本项目案例由Aloudata提交,参与评选 数据猿年度金猿策划活动 大数据行业年度创新服务企业榜单奖 党的十八大以来,我们不断加大对金融科技创新的支持力度,扩大金融科技创新在资本市场的试点范围。同时,年月,证监会发布 行业科技发展 十四五 规划 指出推动行业数字化转型发展是两大主题...

    金猿信息创新发展达盟数据库已成为国家信息创新事业的核心力量

    新创达盟数据库本地化。本内容由大盟数据库提供,参与评选 数据猿年度金猿策划活动 年度大数据产业本土化优秀代表厂商 武汉大盟数据库有限公司成立于年,是国内领先的数据库产品开发服务商,是国内数据库基础软件行业发展的重要推动者。公司为客户提供各类数据库软件及集群软件 云计算 大数据等一系列数据库产品及相关...

    2024砂石展:破碎锤配件的技术盛宴

    砂石展 破碎锤配件的技术盛宴 破碎锤配件是砂石行业不可或缺的重要组成部分,砂石将为破碎锤配件技术带来前所未有的盛宴。以下是您关注的重点 .技术巅峰的对决 破译最新的断路器技术 砂石展将聚集世界领先的破碎锤零件公司,展示最新的技术高峰。无论是在耐磨性 精确控制还是高效能耗方面,这都是技术之战的巅峰之作...