暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

GoldenDB的DML 任务的并行处理技术

原创 吾亦可往 2024-11-12
295

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



一、引言


在数据处理领域,DML(数据操纵语言)任务的高效处理对于系统性能至关重要。本文将详细介绍一种 DML 任务的并行处理方法、相应的处理装置,以及涉及的存储介质和电子装置。

二、DML 任务并行处理方法

(一)总体流程

  1. 首先,获取并解析来自客户端请求消息中的 DML 任务,这里的 DML 任务包含数据操纵语言 DML 语句。
  2. 接着,将 DML 语句转化为服务端执行所需的系统资源,依据这些系统资源来确定并行线程数。
  3. 然后,根据系统资源和并行线程数构造多个执行 DML 语句。
  4. 最后,执行这些执行 DML 语句,当所有执行 DML 语句都执行成功时,判定 DML 任务并行处理完成。

(二)确定并行线程数

  1. 要确定并行线程数,需要获取客户端配置的预设并行数和 DML 语句涉及的数据库表的分发策略,这里的资源包括数据库表,且数据库表有其分发策略。
  2. 根据分发策略和预设并行数确定 DML 任务的并行线程数。具体步骤为:从分发策略中读取数据库表的分区数量,然后判断预设并行数是否大于分区数量。若预设并行数大于分区数量,则确定并行线程数为分区数量;若预设并行数小于或等于分区数量,则确定并行线程数为预设并行数。
  3. 创建并行线程数数量的线程集合,并根据分发策略为线程集合命名。这一过程包括:获取数据库表的分区名(分发策略包含分区名和分区数量,二者一一对应),针对线程集合中的每个线程,按照预设顺序为单个线程分配至少一个分区名。

(三)构造执行 DML 语句

  1. 基于并行线程数构造对应数目的执行 DML 语句模板,执行 DML 语句模板由头部、主体和尾部顺序拼接组成。
  2. 采用系统资源填充执行 DML 语句模板以得到执行 DML 语句。具体操作是:解析系统资源的 DML 语句类型、DML 语句需求、库表名以及分区名,根据 DML 语句的类型和库表名填充执行 DML 语句的头部,根据分区名填充执行 DML 语句的主体,根据 DML 语句需求填充执行 DML 语句的尾部。

(四)执行并完成任务

  1. 初始化所有线程的会话区资源,为所有线程分配会话 ID 和执行状态。
  2. 线程根据会话 ID 和会话区资源并行执行执行 DML 语句,并反馈执行状态。
  3. 判断执行状态是否为执行成功。若所有线程的执行状态均为执行成功,则确定 DML 任务并行处理完成,封装所有线程的执行结果,并将执行结果发送给客户端;若所有线程的执行状态中有执行失败的线程,则对执行失败的线程执行状态进行标记,并回滚所有线程。

三、DML 任务并行处理装置


  1. 获取模块:用于获取并解析来自客户端请求消息中的 DML 任务,此 DML 任务包含数据操纵语言 DML 语句。
  2. 转化模块:负责将 DML 语句转化为服务端执行所需的系统资源,并基于系统资源确定并行线程数。
  3. 构造模块:根据系统资源和并行线程数构造多个执行 DML 语句。
  4. 执行模块:执行多个执行 DML 语句,当这些语句均执行成功时,确定 DML 任务并行处理完成。

四、存储介质与电子装置


  1. 存储介质中存储有计算机程序,该计算机程序被设置为运行时执行上述 DML 任务并行处理方法中的步骤。
  2. 电子装置包括存储器和处理器,存储器用于存储相关信息(文中未完整描述)。这种设计为 DML 任务的并行处理提供了硬件和软件层面的支持。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论