[发明专利]一种数据库中的数据查询方法及装置有效
申请号: | 201410109559.8 | 申请日: | 2014-03-21 |
公开(公告)号: | CN103984695B | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 马庆利;陈志标 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 中的 数据 查询 方法 装置 | ||
技术领域
本发明涉及数据库技术领域,更具体的说是涉及一种数据库中的数据查询方法及装置。
背景技术
在分析型数据库中,为了加速数据处理,通常要使用多进程/多线程并发技术。尽管CPU的核数越来越多,但其增长速度已不能满足数据处理的需要。而通用图形处理器(Graphics Processing Units,简称GPU)提供了更高的并发处理能力和更大的内存带宽,适用于高度并发、运算密集、控制简单的计算应用。
现有技术中利用GPU进行执行数据查询指令的过程中,由于GPU的Global Memory(全局内存,也称为显存)大小受限,所以为每个短查询启动GPU线程后都需要将与该查询条件对应的分区数据导入到GPU的全局内存中,当查询条件有多个时,该重复复制过程就会有多次,因此查询过程非常繁琐,并且,将数据从内存复制到GPU全局内存的时延较长,因此,大大降低了利用GPU执行查询指令的效率。
发明内容
有鉴于此,本发明实施例提供了一种数据库中的数据查询方法及装置,目的在于利用GPU的高并发处理能力加速数据查询过程中的数据过滤,减少GPU与内存间大量的数据复制,提高数据查询效率。
为了实现上述目的,本发明实施例提供了以下技术方案:
本发明实施例的第一方面提供一种数据库中的数据查询方法,所述数据库运行于包含有中央处理器CPU和图形处理器GPU的计算机系统之上,所述方法包括:
接收查询指令,所述查询指令中包含有一个或多个查询条件;
确定预先存储于所述GPU的显存中的块索引集合中的各个块索引的状态,所述块索引集合包括至少一个块索引,且所述块索引集合为所述CPU根据所述数据库中原始数据生成并存储到所述GPU的显存中的;
当所述GPU的显存中的各个块索引均为非同步状态时,启动一个或多个GPU进程,依据所述查询条件,过滤所述GPU的显存中的块索引,得到第一块索引查询结果,并根据所述第一块索引查询结果确定最终数据查询结果;
其中,所述计算机系统的内存中存储有所述CPU根据所述数据库中的原始数据生成的块索引集合;所述方法还包括:
当所述GPU的显存中的块索引中包含有同步状态的块索引时,依据所述查询条件,过滤所述内存中保存的块索引集合中与所述GPU的显存中处于同步状态的块索引对应的块索引,得到第二块索引查询结果;
启动一个或多个GPU进程,依据所述查询条件,过滤所述GPU的显存中非同步状态的块索引,得到第三块索引查询结果;
依据所述第二块索引查询结果和所述第三块索引查询结果确定最终数据查询结果。
结合所述第一方面或所述第一方面的第一种可能实现方式,还提供了所述第一方面的第二种可能实现方式,在确定所述GPU的显存中的块索引集合中的各个块索引的状态之前,还包括:
将所述CPU根据所述数据库中的原始数据生成的块索引集合分成多个逻辑页;
将所述多个逻辑页复制并连续存储到所述GPU的显存中。
结合所述第一方面的第一种可能实现方式,还提供了所述第一方面的第三种可能实现方式,还包括:
当所述数据库中的原始数据更新后,更新存储在所述内存中的块索引集合;
生成与更新后的块索引集合对应的块索引更新位图,并在所述块索引更新位图中标记所述更新后的块索引。
结合所述第一方面的第三种可能实现方式,还提供了所述第一方面的第四种可能实现方式,还包括:根据所述标记后的块索引更新位图,确定存储在所述GPU的显存中的块索引集合中需要更新的块索引,并将所述需要更新的块索引进行更新。
结合所述第一方面,还提供了所述第一方面的第五种可能实现方式,所述启动一个或多个GPU进程,依据所述查询条件,过滤所述GPU的显存中的块索引,得到第一块索引查询结果,包括:
为每一查询条件分配一个或多个GPU进程;
启动各个查询条件所对应的一个或多个GPU进程对所述GPU的显存中的块索引进行过滤,以获得满足所述查询条件的第一块索引查询结果;
所述获得满足所述查询条件的第一块索引查询结果包括:
从所述GPU的显存中复制所述各个查询条件所对应的GPU进程的运行结果,所述运行结果包括:所述各个查询条件所对应的GPU进程对所述GPU的显存中的块索引进行过滤,获得与所述各个查询条件相对应的块索引过滤数组,并根据所述各个查询条件间的逻辑关系对所述块索引过滤数组进行逻辑运算之后得到的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410109559.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:双轴高效圆振动筛
- 下一篇:具有可变化组合结构的简易型连接器
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置