DDL任务的并行处理方法、计算节点、及电子设备技术

技术编号:36605369 阅读:14 留言:0更新日期:2023-02-04 18:26
本申请实施例提供了一种DDL任务的并行处理方法、计算节点及电子设备,涉及数据库领域。该方法包括:获得作业任务表,作业任务表用于记录未处理完成的DDL任务的相关信息,相关信息包括DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式;确定正在执行的第一DDL任务,从作业任务表中确定符合预先确定的任务并行处理规则的第二DDL任务;将目标第二DDL任务与第一DDL任务并行处理。本申请实施例实现逻辑简单,并且可扩展性强,能够适应不同的数据块形态的部署,不存在现有技术那样依赖类似于元数据锁方式协调执行顺序达成并发DDL调度效果的限定。达成并发DDL调度效果的限定。达成并发DDL调度效果的限定。

【技术实现步骤摘要】
DDL任务的并行处理方法、计算节点、及电子设备


[0001]申请涉及数据库
,具体而言,本申请涉及一种DDL任务的并行处理方法、计算节点、电子设备、计算机可读存储介质。

技术介绍

[0002]目前数据定义语言(data definition language,DDL)语句的分布式调度系统主要分为如下集中实现:
[0003]1,以Oracle,MySQL等传统数据库为例的传统单机或者集群系统。通常采用实现一个Meta data Lock系统,通过对于需要进行DDL变更的对象加锁的方式,来协调各种DDL语句执行的先后顺序。达到并发效果。
[0004]2,分布式数据库系统Ocean Base,TDSQL的数据库也是通过采取在分布式系统中实现一种类似MDL锁的方式来达成并发DDL语句调度的效果。
[0005]如何保证在多个DDL worker(也称之为任务执行单元)在并发执行DDL任务的时候,不会造成用户数据库中对象定义或者对象存储的数据的不一致性,是需要解决的问题。

技术实现思路

[0006]本申请实施例提供了一种DDL任务的并行处理方法、计算节点、电子设备、计算机可读存储介质,可以解决现有技术的上述问题。所述技术方案如下:
[0007]根据本申请实施例的一个方面,提供了一种数据定义语言DDL任务的并行处理方法,由数据库系统中的目标计算节点执行,所述方法包括:
[0008]获得作业任务表,所述作业任务表用于记录未处理完成的DDL任务的相关信息,所述相关信息包括DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式;
[0009]确定正在执行的第一DDL任务,从所述作业任务表中确定符合预先确定的任务并行处理规则的第二DDL任务,所述任务并行处理规则与DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式相关;
[0010]将所述目标第二DDL任务与所述第一DDL任务并行处理。
[0011]根据本申请实施例的另一个方面,提供了一种数据库系统中的目标计算节点,该节点包括:
[0012]作业任务表模块,用于获得作业任务表,所述作业任务表用于记录未处理完成的DDL任务的相关信息,所述相关信息包括DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式;
[0013]任务确定模块,用于确定正在执行的第一DDL任务,从所述作业任务表中确定符合预先确定的任务并行处理规则的第二DDL任务,所述任务并行处理规则与DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式相关;
[0014]并行处理模块,用于将所述第二DDL任务与所述第一DDL任务并行处理。
[0015]根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行所述计算机程序以实现上述DDL任务的并行处理方法的步骤。
[0016]根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述DDL任务的并行处理方法的步骤。
[0017]本申请实施例提供的技术方案带来的有益效果是:
[0018]通过获取任务作业任务表,任务作业任务表中记录了至少一个DDL任务的相关信息,基于任务并行处理规则,从作业任务表中确定与处理中的第一DDL任务可并行处理的第二DDL任务,将第二DDL任务与第一DDL任务并行处理,实现逻辑简单,并且可扩展性强,能够适应不同的数据块形态的部署,不存在现有技术那样只能从队列中按排序选择DDL任务的限定。
附图说明
[0019]为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0020]图1为相关技术提供的DDL任务的执行流程示意图;
[0021]图2为本申请实施例提供的一种DDL任务的并行处理方法的流程示意图;
[0022]图3为本申请实施例提供的一种由三种级别的变更对象构成的树结构;
[0023]图4为本申请另一个实施例提供的一种DDL任务的处理方法的流程示意图;
[0024]图5为本申请再一个实施例提供的一种DDL任务的处理方法的流程示意图;
[0025]图6为本申请实施例提供的一种目标计算节点的结构示意图;
[0026]图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0027]下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0028]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本
所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
[0029]为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0030]目前常见的DDL语句的实现采取的解决方案是在分布式集群里面所有的DDL任务
会以进入集群的先后顺序登记到一个队列当中,之所以需要登记到队列当中主要是用在故障恢复的目的。这些任务会被执行DDL任务的任务执行单元获取并执行。具体执行流程如图1所示,计算节点都可以接受来自客户端的DDL变更语句,然后将语句存入DDL任务队列中,任务执行单元从DDL任务队列中每次取一个DDL任务执行,由于DDL任务的执行顺序仅与DDL任务队列中的DDL任务的排序相关,因此多个任务执行单元在并发执行DDL任务时,可能造成用户数据库中对象定义或者对象存储的数据的不一致性。通常数据库会使用MDL锁来保证DDL语句之间的正确执行。
[0031]本申请提供的DDL任务的并行处理、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
[0032]下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
[0033]本申请实施例中提供了一种DDL任务的并行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据定义语言DDL任务的并行处理方法,其特征在于,由数据库系统中的目标计算节点执行,所述方法包括:获得作业任务表,所述作业任务表用于记录未处理完成的DDL任务的相关信息,所述相关信息包括DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式;确定正在执行的第一DDL任务,从所述作业任务表中确定符合预先确定的任务并行处理规则的第二DDL任务,所述任务并行处理规则与DDL任务进入数据库系统的顺序以及DDL任务对应的变更对象所处的数据模式相关;将所述目标第二DDL任务与所述第一DDL任务并行处理。2.根据权利要求1所述的方法,其特征在于,所述相关信息包括用于指示当前执行对应DDL任务的计算节点的计算节点标识,所述作业任务表包括用于记录计算节点标识的第一字段;所述将所述第二DDL任务与所述第一DDL任务并行处理,包括:若根据所述作业任务表中所述第二DDL任务的第一字段确定所述第二DDL任务首次被执行,则在所述第一字段记录所述目标计算节点的目标计算节点标识;调用所述数据库系统中的任务执行单元执行所述第二DDL任务,所述任务执行单元的类型包括进程、线程、协程中的至少一种。3.根据权利要求2所述的方法,其特征在于,所述相关信息包括DDL任务对应的变更对象的对象标识以及所述DDL任务的元信息;所述作业任务表包括用于记录所述对象标识的第二字段、用于记录DDL任务对应的变更对象所处的数据模式的模式标识的第三字段以及用于记录所述元信息的第四字段;调用所述数据库系统中的任务执行单元执行所述第二DDL任务,包括:调用所述任务执行单元读取所述作业任务表中所述第二DDL任务的所述第二字段至第四字段,获得所述第二DDL任务对应的目标变更对象的目标对象标识、所述目标变更对象所处的目标数据模式的目标模式标识以及所述第二DDL任务的目标元信息;根据所述目标对象标识和所述目标模式标识,从所述数据库系统的所述目标数据模式中确定所述目标变更对象;根据所述目标元信息,对所述目标变更对象执行所述第二DDL任务。4.根据权利要求2所述的方法,其特征在于,所述对所述第二DLL任务进行并行处理,还包括:若根据所述作业任务表中所述第二DDL任务的第一字段确定所述第二DDL任务非首次被执行,则判断是否恢复所述第二DDL任务的执行;若确定恢复所述第二DDL任务的执行,则执行所述第二DDL任务,若确定不恢复所述第二DDL任务的执行,则回滚上一次执行所述第二DDL任务产生的数据。5.根据权利要求1所述的方法,其特征在于,所述相关信息包括用于指示相应DDL任务是否为逻辑DDL任务的类型标识,所述作业任务表包括用于记录所述类型标识的第五字段;所述将所述第二DDL任务与所述第一DDL任务并行处理,包括:若根据所述作业任务表中所述第二DDL任务的第五字段确定所述第二DDL...

【专利技术属性】
技术研发人员:黄文俊李霞黄潇刘奇黄东旭崔秋
申请(专利权)人:平凯星辰北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1