数据处理方法及装置制造方法及图纸

技术编号:35860633 阅读:24 留言:0更新日期:2022-12-07 10:50
本申请实施例提供了一种数据处理方法及装置。该方法中,通过将事务的多个数据库操作进行分组,并且并发执行分组中的多个数据库操作,以提升系统的整体吞吐率以及处理效率。以及,本申请通过预先进行冲突检测,以将可能发生冲突的数据库操作划分到不同的分组中,从而降低并发执行时的冲突概率,进一步提高系统的处理效率。处理效率。处理效率。

【技术实现步骤摘要】
数据处理方法及装置


[0001]本申请实施例涉及数据处理领域,尤其涉及一种数据处理方法及装置。

技术介绍

[0002]数据库性能是数据库产品竞争力的关键指标。在“以数据为中心”的数据中心战略转型中,数据库承载了数据中心的状态数据的存储,数据库的性能表现直接关系到数据中心设备的性能表现。在数据通信和工业数据服务等产品中,由于资源和功耗的限制,当前基于冯诺依曼处理器架构的软件优化已无法满足数据业务在资源受限环境下的日益增长性能要求。为了克服这个瓶颈,业界提出了各种硬件加速和异构计算的方法,然而在数据库中,由于事务(Transaction)模型的隔离性和原子性要求数据操作在各个阶段或数据集合封锁或冲突检查,限制了硬件的并发能力,使得数据库处理过程中无法兼顾高吞吐的性能指标。

技术实现思路

[0003]本申请实施例提供一种数据处理方法及装置。在该方法中,装置通过预先执行冲突过滤,并以并发模式执行数据库操作,以减少事务失败的概率,提升系统吞吐性能指标。
[0004]第一方面,本申请实施例提供一种数据处理方法。该方法包括:装置获取事务,事务包括N个数据库操作。其中,N为大于1的正整数。接着,装置对N个数据库操作进行冲突检测,得到冲突检测结果。其中,冲突检测结果中包括指示第一数据库操作与第二数据库操作互为冲突操作的结果。其中,第一数据库操作与第二数据库操作属于N个数据库操作。随后,装置基于冲突检测结果,将N个数据库操作划分为M个分组,其中,M个分组中的每个分组中包括多个数据库操作,并且第一数据库操作与第二数据库操作属于不同的分组,以及,M为大于1的正整数。装置并发执行M个分组中的每个分组中的多个数据库操作。这样,本申请实施例中的装置(也可以理解为数据库)通过预先执行冲突过滤,可构造基于不冲突的批量操作,减少失误失败的概率,有益于加速器的并发。
[0005]在一种可能的实现方式中,并发执行M个分组中的每个分组中的多个数据库操作,包括:装置调用多个硬件加速器并发执行M个分组中的单一分组中的多个数据库操作;其中,单一硬件加速器执行单一数据库操作。这样,本申请实施例通过多个硬件并行执行,以提升数据库的处理效率,提高吞吐率,且减少CPU占用,实现软硬件协同工作。
[0006]在一种可能的实现方式中,调用多个硬件加速器并发执行M个分组中的单一分组中的多个数据库操作,包括:装置基于第一分组中包括的X个数据库操作,触发X个硬件加速器;第一分组属于M个分组。装置向X个硬件加速器指示X个数据库操作,使得X个硬件加速器并行执行X个数据库操作。这样,多个加速器可以并行执行,并且,软件可以调用硬件加速器,从而实现软硬件协同。
[0007]在一种可能的实现方式中,向X个硬件加速器指示X个数据库操作,包括:装置向X个硬件加速器指示X个数据库操作中每个数据库操作对应的索引信息,使得X个硬件加速器
基于X个数据库操作中每个数据库操作对应的索引信息,执行X个数据库操作。这样,多个加速器可基于索引信息执行并行操作,以对索引信息所指示的数据进行数据库操作。
[0008]在一种可能的实现方式中,调用多个硬件加速器并发执行M个分组中的单一分组中的多个数据库操作,包括:从共享内存中读取X个数据库操作的执行结果;其中,X个数据库操作的执行结果为多个硬件加速器并发执行X个数据库操作后写入的。这样,CPU和硬件加速器可以通过共享内存传输数据。CPU可读取到对应的执行结果。
[0009]在一种可能的实现方式中,调用多个硬件加速器并发执行M个分组中的单一分组中的多个数据库操作,包括:从共享内存中读取X个数据库操作的执行结果之后,基于第二分组中包括的Y个数据库操作,触发Y个硬件加速器;第二分组属于M个分组;向Y个硬件加速器指示Y个数据库操作,使得Y个硬件加速器并行执行Y个数据库操作。这样,本申请实施例通过循环执行多个组,每个组并行执行的方式,可以有效提高系统的处理效率,提升系统吞吐率。
[0010]在一种可能的实现方式中,X个数据库操作的执行结果置于共享内存的环形队列中。这样,本申请实施例通过环形队列可使得硬件和CPU均可以读取到环形队列中的信息。并且,环形队列中的信息首尾相接,可以重复使用。
[0011]在一种可能的实现方式中,调用多个硬件加速器并发执行M个分组中的单一分组中的多个数据库操作,包括:通过第一接口向内存处理器发送第一指示信号,指示信号用于指示内存处理器触发X个硬件加速器。这样,本申请实施例通过预设的接口,可以方便硬件加速器的快速触发和部署。
[0012]在一种可能的实现方式中,并发执行M个分组中的每个分组中的多个数据库操作之前,包括:将N个数据库操作中的删操作的索引信息置于第一队列;将N个数据库操作中的增操作的反向操作的索引信息置于第二队列。这样,本申请实施例中无需标记删除,仅通过队列即可维护删操作,减少删除标记的查询时间,进一步加快处理效率。通过队列维护增操作的反向操作,使得事务回滚情况下,可以基于反向操作完成事务回滚。
[0013]在一种可能的实现方式中,并发执行M个分组中的每个分组中的多个数据库操作,包括:在提交事务之前,按照M个分组的情况,并行执行第一队列中的删操作。这样,本申请实施例中无需标记删除,仅通过队列即可维护删操作,减少删除标记的查询时间,进一步加快处理效率。
[0014]在一种可能的实现方式中,方法还包括:若在并发执行M个分组中的每个分组中的多个数据库操作的过程中,检测到发生操作冲突,基于第二队列中的增操作的反向操作的索引信息,执行增操作的反向操作,完成事务回滚。这样,本申请实施例将事务的版本信息解耦,使得事务信息分离,更好的实现硬件的并行执行。
[0015]在一种可能的实现方式中,方法还包括:事务回滚后,串行执行N个数据库操作。这样,本申请实施例中乐观事务模式和悲观事务模式相结合,可在发生冲突情况下,切换到串行模式继续执行,以提升系统的处理效率。
[0016]在一种可能的实现方式中,对N个数据库操作进行冲突检测,得到冲突检测结果,包括:获取N个数据库操作中的每个数据库操作对应的哈希值;检测N个数据操作对应的哈希值是否存在数值相等的数值;检测到第一数据库操作的哈希值与第二数据库操作的哈希值相等,确定第一数据库操作与第二数据库操互为冲突操作。这样,通过哈希值的判断,可
以初步过滤可能发生冲突的数据库操作,使得并行执行过程中,发生冲突的操作不在一起执行。
[0017]在一种可能的实现方式中,基于冲突检测结果,将N个数据库操作划分为M个分组,包括:基于冲突检测结果与预设分组规则,将N个数据库操作划分为M个分组;预设分组规则包括以下至少之一:单一分组中的多个数据库操作的哈希值不相等;单一分组中包含的数据库操作的数量小于或等于硬件加速器的数量;单一分组中包含的数据库操作的执行时间在指定范围内;单一分组中包含的数据库操作的类型为同一类型。这样,通过哈希值,可以预先确定可能发生冲突的操作,以将冲突的操作分在不同的组。并行的数量取决于加速器的数量,以使得硬件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取事务,所述事务包括N个数据库操作;N为大于1的正整数;对所述N个数据库操作进行冲突检测,得到冲突检测结果;其中,所述冲突检测结果指示第一数据库操作与第二数据库操作互为冲突操作;所述第一数据库操作与所述第二数据库操作属于所述N个数据库操作;基于所述冲突检测结果,将所述N个数据库操作划分为M个分组;所述M个分组中的每个分组中包括多个数据库操作;其中,所述第一数据库操作与所述第二数据库操作属于不同的分组;M为大于1的正整数;并发执行所述M个分组中的每个分组中的多个数据库操作。2.根据权利要求1所述的方法,其特征在于,所述并发执行所述M个分组中的每个分组中的多个数据库操作,包括:调用多个硬件加速器并发执行所述M个分组中的单一分组中的多个数据库操作;其中,单一硬件加速器执行单一数据库操作。3.根据权利要求2所述的方法,其特征在于,所述调用多个硬件加速器并发执行所述M个分组中的单一分组中的多个数据库操作,包括:基于第一分组中包括的X个数据库操作,触发X个硬件加速器;所述第一分组属于所述M个分组;向所述X个硬件加速器指示所述X个数据库操作,使得所述X个硬件加速器并行执行所述X个数据库操作。4.根据权利要求3所述的方法,其特征在于,所述调用多个硬件加速器并发执行所述M个分组中的单一分组中的多个数据库操作,包括:从共享内存中读取所述X个数据库操作的执行结果;其中,所述X个数据库操作的执行结果为所述多个硬件加速器并发执行所述X个数据库操作后写入的。5.根据权利要求4所述的方法,其特征在于,所述调用多个硬件加速器并发执行所述M个分组中的单一分组中的多个数据库操作,包括:从共享内存中读取所述X个数据库操作的执行结果之后,基于第二分组中包括的Y个数据库操作,触发Y个硬件加速器;所述第二分组属于所述M个分组;向所述Y个硬件加速器指示所述Y个数据库操作,使得所述Y个硬件加速器并行执行所述Y个数据库操作。6.根据权利要求4所述的方法,其特征在于,所述X个数据库操作的执行结果置于所述共享内存的环形队列中。7.根据权利要求3所述的方法,其特征在于,所述调用多个硬件加速器并发执行所述M个分组中的单一分组中的多个数据库操作,包括:通过第一接口向内存处理器发送第一指示信号,所述指示信号用于指示所述内存处理器触发所述X个硬件加速器。8.根据权利要求1至7任一项所述的方法,其特征在于,所述并发执行所述M个分组中的每个分组中的多个数据库操作之前,包括:将所述N个数据库操作中的删操作的索引信息置于第一队列;将所述N个数据库操作中的增操作的反向操作的索引信息置于第二队列。
9.根据权利要求8所述的方法,其特征在于,所述并发执行所述M个分组中的每个分组中的多个数据库操作,包括:在提交所述事务之前,按照所述M个分组的情况,并行执行所述第一队列中的删操作。10.根据权利要求8所述的方法,其特征在于,所述方法还包括:若在并发执行所述M个分组中的每个分组中的多个数据库操作的过程中,检测到发生操作冲突,基于所述第二队列中的增操作的反向操作的索引信息,执行所述增操作的反向操作,完成所述事务回滚。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:所述事务回滚后,串行执行所述N个数据库操作。12.根据权利要求1所述的方法,其特征在于,所述对所述N个数据库操作进行冲突检测,得到冲突检测结果,包括:获取所述N个数据库操作中的每个数据库操作对应的哈希值;检测所述N个数据操作对应的哈希值是否存在数值相等的数值;检测到所述第一数据库操作的哈希值与所述第二数据库操作的哈希值相等,确定所述第一数据库操作与所述第二数据库操互为冲突操作。13.根据权利要求12所述的方法,其特征在于,所述基于所述冲突检测结果,将所述N个数据库操作划分为M个分组,包括:基于所述冲突检测结果与预设分组规则,将所述N个数据库操作划分为M个分组;所述预设分组规则包括以下至少之一:单一分组中的多个数据库操作的哈希值不相等;单一分组中包含的数据库操作的数量小于或等于硬件加速器的数量;单一分组中包含的数据库操作的执行时间在指定范围内;单一分组中包含的数据库操作的类型为同一类型。14.一种数据处理装置,其特征在于,包括:获取模块,用于获取事务,所述事务包括N个数据库操作;N为大于1的正...

【专利技术属性】
技术研发人员:彭锋彬周敏奇罗正海胡璟陈剑辉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1