[发明专利]一种基于GPU加速的超空间哈希索引方法有效
申请号: | 202010835717.3 | 申请日: | 2020-08-19 |
公开(公告)号: | CN112000845B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 谷峪;任卓;李传文;李芳芳;于戈 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F16/901 | 分类号: | G06F16/901;G06F16/245 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李在川 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gpu 加速 空间 索引 方法 | ||
本发明提供一种基于GPU加速的超空间哈希索引方法。针对key‑value数据库,构建超空间哈希数据结构,使超空间哈希更好地适应GPU,在超空间哈希数据结构中,使用数组结构体而不是结构体数组的数据布局,其中键、次要属性和值分别存储;该数据结构更适合于GPU的线程执行模型和内存层次结构;对于批处理查询,使用通过查询分类来减少分支分歧的warp预组合数据共享策略,而且为了进一步提高超空间哈希数据结构的性能,用原子操作代替加锁,并设计了一种暂时重复读取策略来提高GHSH的性能,实现了无锁的全并发策略;最后,基于超空间哈希数据结构,实现了批量构建、按键搜索、按次要属性搜索、修改、插入和删除的操作。
技术领域
本发明涉及数据库索引技术领域,具体涉及一种基于GPU加速的超空间哈希索引方法。
背景技术
在大数据时代,越来越多的服务需要摄取大量、快速、多样的数据,如社交网络数据、智能手机应用使用数据、点击数据等。NoSQL数据库是作为关系数据库的可伸缩性和灵活性更好的替代品而开发的,NoSQL数据库包括Hbase(Hadoop Database)、ApacheCassandra等,引起了业界和学术界的广泛关注,并在产品中得到广泛应用。通过使用日志结构的合并树(LSM),NoSQL系统特别擅长于支持两种功能:(a)快速写吞吐量,(b)对数据项的键进行快速查找。但是,许多应用程序还需要查询非键属性,这是关系型数据库中通常支持的功能。例如,如果一条推特tweet具有诸如tweet id、用户ID(身份标识号)和文本等属性,那么能够返回用户的所有推特tweet(或最近的推特tweet)将非常有用。然而,在NoSQL数据库中支持二级索引是一项挑战,因为在写期间必须维护二级索引结构,同时还要管理二级索引和数据表之间的一致性。这大大降低了写入速度,从而影响了系统处理高写入吞吐量的能力。
为了解决这个问题,在HyperDex system(HyperDex是一种分布式系统)中提出了超空间哈希,用于支持检索除键之外的部分指定的二级属性搜索的分布式键值存储。与独立的二级索引方法(例如Hbase中基于表的二级索引)相比,超空间哈希可以极大地节省存储空间,这对于内存数据库尤为重要。与KD-tree等嵌入式二级索引方法相比,超空间哈希可以快速定位数据所在的哈希桶,而不需要对每一层进行排序。超空间哈希将每个表表示为一个独立的多维空间,其中维度轴直接对应于表的属性。将对象的每个属性值散列到对应轴上的一个位置,从而将对象映射到空间中的一个确定性坐标。
HyperDex作为一种分布式系统,可以缓解超空间哈希的性能问题。但是在一个集中的环境中,图形处理单元(简称GPU)加速是必须的。在过去的几年里,GPU作为数据存储应用程序的加速器的应用越来越多。与CPU相比,GPU有几个优点。首先,GPU使用数千个内核提供了大量的并行性,这些内核可以比CPU高几个数量级的吞吐量一起执行计算。例如,每台Nvidia Tesla V100 GPU将5120个CUDA核封装到多个流处理器(SM)中,能够提供14万亿次浮点运算的单精度浮点运算性能。其次,使用紧密集成的高带宽内存技术,GPU为设备内存提供接近1TB/s的带宽。第三,现代GPU也提供各种功能,如可编程共享内存,线程和同步原语,重叠计算技术与I/O等。
然而,超空间哈希应用在GPU处理器上,处理key-value数据库,并没有发挥GPU良好的并行处理能力。由于查询属性的数量无法事先确定,使用传统的超空间哈希结构,使得GPU上的内存吞吐量难以最大化。在同一GPU线程组中的两个并发执行的查询可能需要在不同的哈希桶中执行,或者需要查询不同的属性。这将导致分支分歧,大大降低查询性能。此外,更新可索引属性值将导致数据重新定位,这将进一步增加并发的复杂性。超空间哈希的这些特性与GPU的特性不匹配,阻碍了超空间哈希在GPU上的性能。
发明内容
针对现有技术的不足,本发明提出一种基于GPU加速的超空间哈希索引方法,包括以下步骤:
步骤1:以链表作为处理GPU中哈希冲突的方式,构建超空间哈希数据结构,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010835717.3/2.html,转载请声明来源钻瓜专利网。