System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() DML任务的并行处理方法及装置、存储介质、电子装置制造方法及图纸_技高网

DML任务的并行处理方法及装置、存储介质、电子装置制造方法及图纸

技术编号:40660261 阅读:3 留言:0更新日期:2024-03-18 18:52
本发明专利技术提供了一种DML任务的并行处理方法及装置、存储介质、电子装置,其中,该方法包括:获取并解析来自客户端的请求消息中的DML任务,DML任务包含数据操纵语言DML语句;将DML语句转化为服务端执行所需的系统资源,基于系统资源确定并行线程数;根据系统资源和并行线程数构造多个执行DML语句;执行多个执行DML语句,若多个执行DML语句均执行成功,确定DML任务并行处理完成,通过获取系统资源,并根据系统资源构造执行DML语句,实现DML任务的并行处理,解决了相关技术中DML任务不能并行处理的技术问题,提高了系统的整体性能和灵活性,同时也解决了在传统技术中由于无法并行处理DML任务而导致的性能瓶颈。

【技术实现步骤摘要】

本专利技术涉及数据库处理,具体而言,涉及一种dml任务的并行处理方法及装置、存储介质、电子装置。


技术介绍

1、随着互联网的高速发展以及企业级应用的不断发展,对数据库高性能的要求变得日益迫切,传统的单机数据库性能有限,通过锁和并发控制机制无法满足业务实时性要求,因此,越来越多的企业选择采用分布式数据库解决方案来应对海量数据的存储和处理需求。

2、分布式数据库中,数据节点负责储存和管理分布式数据库的数据以及处理数据的读取和写入请求,并提供数据的访问接口;计算节点负责执行分布式数据库的计算任务和查询操作,接受客户端请求,并分发到适当的数据节点进行处理;分布式数据库将数据分成多个分片,并将这些数据分片分发到不同的数据节点上,分布式数据库的计算节点会将dml操作请求进行同义改写,然后发送给数据节点,由不同的节点并行处理并生成相应的结果,分布式数据库使用数据同步和合并的方式将各个节点的结果汇总为一个完整的结果集并返回给客户端,在分布式计算架构下,多个任务执行单元并发执行dml任务无法实现,是本项专利技术技术所面对的技术难点。

3、针对相关技术中存在的上述问题,暂未发现高效且准确的解决方案。


技术实现思路

1、本专利技术提供了一种dml任务的并行处理方法及装置、存储介质、电子装置,以解决相关技术中存在的上述技术问题。

2、根据本专利技术的一个实施例,提供了一种dml任务的并行处理方法,其特征在于,包括:获取并解析来自客户端的请求消息中的dml任务,所述dml任务包含数据操纵语言dml语句;将所述dml语句转化为服务端执行所需的系统资源,基于所述系统资源确定并行线程数;根据所述系统资源和所述并行线程数构造多个执行dml语句;执行所述多个执行dml语句,若所述多个执行dml语句均执行成功,确定所述dml任务并行处理完成。

3、可选地,基于所述系统资源确定并行线程数包括:获取所述客户端配置的预设并行数和所述dml语句涉及的数据库表的分发策略,所述资源包括所述数据库表,所述数据库表包括分发策略;根据所述分发策略和所述预设并行数确定所述dml任务的并行线程数;创建所述并行线程数数量的线程集合,并根据所述分发策略为所述线程集合命名。

4、可选地,根据所述分发策略和所述预设并行数确定所述dml任务的并行线程数包括:从所述分发策略中读取所述数据库表的分区数量;判断所述预设并行数是否大于所述分区数量;若所述预设并行数大于所述分区数量,确定所述并行线程数为所述分区数量;若所述预设并行数小于或等于所述分区数量,确定所述并行线程数为所述预设并行数。

5、可选地,根据所述分发策略为所述线程集合命名包括:获取所述数据库表的分区名,所述分发策略包括所述分区名和分区数量,所述分区名与所述分区数量一一对应;针对所述线程集合中的每个线程,基于预设顺序为单个线程分配至少一个分区名。

6、可选地,根据所述资源和所述并行线程数构造执行dml语句包括:基于所述并行线程数构造对应数目的执行dml语句模板,所述执行dml语句模板由头部、主体和尾部顺序拼接组成;采用所述系统资源填充所述执行dml语句模板,得到所述执行dml语句。

7、可选地,采用所述系统资源填充所述执行dml语句模板,得到所述执行dml语句包括:解析所述系统资源的dml语句类型、dml语句需求、库表名、以及分区名;根据所述dml语句的类型和所述库表名填充所述执行dml语句的头部;根据分区名填充所述执行dml语句的主体;根据所述dml语句需求填充所述执行dml语句的尾部,得到所述执行dml语句。

8、可选地,执行所述多个执行dml语句,若所述多个执行dml语句均执行成功,确定所述dml任务并行处理完成,包括:初始化所有所述线程的会话区资源,为所有所述线程分配会话id和执行状态;所述线程根据所述会话id和所述会话区资源并行执行所述执行dml语句,并反馈所述执行状态;判断所述执行状态是否为执行成功;若所有所述线程的执行状态均为执行成功,确定所述dml任务并行处理完成,封装所有所述线程的执行结果,将所述执行结果发送给所述客户端;若所有所述线程的执行状态中存在执行失败的线程,对所述执行失败的线程执行状态进行标记,回滚所有所述线程。

9、根据本专利技术的另一个实施例,提供了一种dml任务的并行处理装置,包括:获取模块,用于获取并解析来自客户端的请求消息中的dml任务,所述dml任务包含数据操纵语言dml语句;转化模块,用于将所述dml语句转化为服务端执行所需的系统资源,基于所述系统资源确定并行线程数;构造模块,用于根据所述系统资源和所述并行线程数构造多个执行dml语句;执行模块,用于执行所述多个执行dml语句,若所述多个执行dml语句均执行成功,确定所述dml任务并行处理完成。

10、可选地,所述转化模块包括:获取单元,用于获取所述客户端配置的预设并行数和所述dml语句涉及的数据库表的分发策略,所述资源包括所述数据库表,所述数据库表包括分发策略;确定单元,用于根据所述分发策略和所述预设并行数确定所述dml任务的并行线程数;创建单元,用于创建所述并行线程数数量的线程集合,并根据所述分发策略为所述线程集合命名。

11、可选地,所述确定单元包括:读取子单元,用于从所述分发策略中读取所述数据库表的分区数量;判断子单元,用于判断所述预设并行数是否大于所述分区数量;第一确定子单元,用于若所述预设并行数大于所述分区数量,确定所述并行线程数为所述分区数量;第二确定子单元,用于若所述预设并行数小于或等于所述分区数量,确定所述并行线程数为所述预设并行数。

12、可选地,所述创建单元包括:获取子单元,用于获取所述数据库表的分区名,所述分发策略包括所述分区名和分区数量,所述分区名与所述分区数量一一对应;分配子单元,用于针对所述线程集合中的每个线程,基于预设顺序为单个线程分配至少一个分区名。

13、可选地,所述构造模块包括:构造单元,用于基于所述并行线程数构造对应数目的执行dml语句模板,所述执行dml语句模板由头部、主体和尾部顺序拼接组成;填充单元,用于采用所述系统资源填充所述执行dml语句模板,得到所述执行dml语句。

14、可选地,所述填充单元包括:解析子单元,用于解析所述系统资源的dml语句类型、dml语句需求、库表名、以及分区名;第一填充子单元,用于根据所述dml语句的类型和所述库表名填充所述执行dml语句的头部;第二填充子单元,用于根据分区名填充所述执行dml语句的主体;第三填充子单元,用于根据所述dml语句需求填充所述执行dml语句的尾部,得到所述执行dml语句。

15、可选地,所述执行模块包括:分配单元,用于初始化所有所述线程的会话区资源,为所有所述线程分配会话id和执行状态;执行单元,用于所述线程根据所述会话id和所述会话区资源并行执行所述执行dml语句,并反馈所述执行状态;判断单元,用于判断所述执行状态是否为执行成功;发送单元,用于若所有所述线程的执行本文档来自技高网...

【技术保护点】

1.一种DML任务的并行处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述系统资源确定并行线程数包括:

3.根据权利要求2所述的方法,其特征在于,根据所述分发策略和所述预设并行数确定所述DML任务的并行线程数包括:

4.根据权利要求2所述的方法,其特征在于,根据所述分发策略为所述线程集合命名包括:

5.根据权利要求1所述的方法,其特征在于,根据所述资源和所述并行线程数构造执行DML语句包括:

6.根据权利要求5所述的方法,其特征在于,采用所述系统资源填充所述执行DML语句模板,得到所述执行DML语句包括:

7.根据权利要求1所述的方法,其特征在于,执行所述多个执行DML语句,若所述多个执行DML语句均执行成功,确定所述DML任务并行处理完成,包括:

8.一种DML任务的并行处理装置,其特征在于,包括:

9.一种存储介质,其特征在于,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行权利要求1至7任一项中的方法。

10.一种电子装置,包括存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行权利要求1至7任一项中的方法。

...

【技术特征摘要】

1.一种dml任务的并行处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述系统资源确定并行线程数包括:

3.根据权利要求2所述的方法,其特征在于,根据所述分发策略和所述预设并行数确定所述dml任务的并行线程数包括:

4.根据权利要求2所述的方法,其特征在于,根据所述分发策略为所述线程集合命名包括:

5.根据权利要求1所述的方法,其特征在于,根据所述资源和所述并行线程数构造执行dml语句包括:

6.根据权利要求5所述的方法,其特征在于,采用所述系统资源填充所述执行d...

【专利技术属性】
技术研发人员:陈国锋王烨黄宇
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1