[发明专利]一种基于图形处理器的数据库事务执行方法有效
申请号: | 201810778840.9 | 申请日: | 2018-07-16 |
公开(公告)号: | CN109033301B | 公开(公告)日: | 2021-07-06 |
发明(设计)人: | 华蓓;曹利安;黄翔;陆李 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 汪祥虬 |
地址: | 230026 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 图形 处理器 数据库 事务 执行 方法 | ||
本发明公开了一种基于图形处理器的数据库事务执行方法,特征是采取事务拆分、构建事务依赖图、无冲突事务集合划分、基本操作分组和事务执行的步骤;通过将事务拆分为基本操作,根据基本操作之间的冲突得出事务之间的依赖关系,构建出事务依赖图;在执行事务时,每个基本操作由一个GPU线程执行,与现有的每个GPU线程执行一个事务的执行方法相比,在保证事务执行正确的前提下,提高了事务执行的并行性,缩短了事务执行时间,提高了系统吞吐量。
技术领域
本发明属于计算机内存数据库技术领域,具体涉及在广泛使用的图形处理器(GPU)上实现快速的数据库事务执行方法。
背景技术
1999年8月,NVIDIA公司发布了一款代号为NV10的图形芯片Geforce 256。它是第一款提出GPU(Graphics Processing Unit)概念的产品,主要用来进行图像处理。近年来,随着GPU的计算能力越来越强大,它的应用领域逐渐扩展到通用计算领域。目前已经出现了用GPU加速联机事务处理(OLTP)内存数据库的技术,但目前的方案都是采用一个线程执行一个事务的顺序执行方式。由于一个事务由多个基本操作组成,而部分基本操作可以并行执行,单线程顺序执行模式不能充分挖掘事务内部的并行性,从而不能充分利用GPU的计算资源和内存带宽。
发明内容
本发明的目的是提出一种基于图形处理器的数据库事务执行方法,以克服现有技术的上述缺陷,在保证低开销的情况下,增强事务执行的并行性,缩短事务执行时间,提高系统执行事务的吞吐量。
本发明基于图形处理器的数据库事务执行方法,其特征在于包括以下步骤:
第一步:事务拆分
根据一批事务的输入数据,将事务拆分成基本操作集合,基本操作包括“读操作”和“写操作”;一个基本操作由[数据项,事务号,操作类型(读或写)]表示,如果两个基本操作访问同一个数据项,并且其中至少有一个基本操作是写操作,则认为这两个数据项冲突;两个事务t1和t2中至少关于一个数据项是冲突的,则认为这两个事务有依赖关系;
第二步:构建事务依赖图
初始事务依赖图为空,按事务号从小到大的顺序依次添加所有的事务和相应的依赖到事务依赖图;顶点代表一个事务;当满足以下三个条件时,在事务t1和t2之间添加一条边:①两个事务t1和t2之间存在依赖关系,②事务t1的事务号小于事务t2的事务号,③不存在另一个事务t,使得事务t的事务号介于事务t1和t2之间、且事务t和事务t1、t2都有依赖关系,事务t1称为事务t2的前缀顶点;
第三步:无冲突事务集合划分
在构造好的事务依赖图中,源顶点是无前缀顶点的顶点,其对应的事务不依赖于任何其它事务;顶点v的深度为从源顶点到顶点v的最长路径长度,源顶点的深度为零;具有相同深度的事务放入同一个集合,深度为k的顶点构成的集合称为k-set,事务依赖图的深度为所有顶点深度的最大值;
第四步:操作分组
在每个k-set中,把所有的读操作加入同一组称为0-组,把所有的写操作加入同一组称为1-组;0-组内的操作之间无依赖关系,1-组内的操作之间无依赖关系;1-组依赖于0-组;
第五步:事务执行
GPU按照0-set,1-set,…,k-set的顺序依次执行事务;在每个集合内部,按照0-组,1-组的顺序执行操作,一个操作由一个GPU线程执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810778840.9/2.html,转载请声明来源钻瓜专利网。