当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于GPU加速的超空间哈希索引方法技术

技术编号:26505114 阅读:44 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供一种基于GPU加速的超空间哈希索引方法。针对key‑value数据库,构建超空间哈希数据结构,使超空间哈希更好地适应GPU,在超空间哈希数据结构中,使用数组结构体而不是结构体数组的数据布局,其中键、次要属性和值分别存储;该数据结构更适合于GPU的线程执行模型和内存层次结构;对于批处理查询,使用通过查询分类来减少分支分歧的warp预组合数据共享策略,而且为了进一步提高超空间哈希数据结构的性能,用原子操作代替加锁,并设计了一种暂时重复读取策略来提高GHSH的性能,实现了无锁的全并发策略;最后,基于超空间哈希数据结构,实现了批量构建、按键搜索、按次要属性搜索、修改、插入和删除的操作。

【技术实现步骤摘要】
一种基于GPU加速的超空间哈希索引方法
本专利技术涉及数据库索引
,具体涉及一种基于GPU加速的超空间哈希索引方法。
技术介绍
在大数据时代,越来越多的服务需要摄取大量、快速、多样的数据,如社交网络数据、智能手机应用使用数据、点击数据等。NoSQL数据库是作为关系数据库的可伸缩性和灵活性更好的替代品而开发的,NoSQL数据库包括Hbase(HadoopDatabase)、ApacheCassandra等,引起了业界和学术界的广泛关注,并在产品中得到广泛应用。通过使用日志结构的合并树(LSM),NoSQL系统特别擅长于支持两种功能:(a)快速写吞吐量,(b)对数据项的键进行快速查找。但是,许多应用程序还需要查询非键属性,这是关系型数据库中通常支持的功能。例如,如果一条推特tweet具有诸如tweetid、用户ID(身份标识号)和文本等属性,那么能够返回用户的所有推特tweet(或最近的推特tweet)将非常有用。然而,在NoSQL数据库中支持二级索引是一项挑战,因为在写期间必须维护二级索引结构,同时还要管理二级索引和数据表之间的一致性。这大本文档来自技高网...

【技术保护点】
1.一种基于GPU加速的超空间哈希索引方法,其特征在于,包括如下步骤:/n步骤1:以链表作为处理GPU中哈希冲突的方式,构建超空间哈希数据结构,包括:/n步骤1.1:针对存储在GPU的key-value数据库中的n个数据,将所有数据的值value中查询频率大于预设频率H的属性抽离出来,记为次要属性A1,A2,…,Ai…,Ap,i=1,2,…,p,p表示可索引的次要属性的总个数,Ai表示抽离出来的第i个次要属性;/n步骤1.2:根据GPU数据访问方式,构造每个存储数据的数据元组形式,定义第j个元组表示为{key

【技术特征摘要】
1.一种基于GPU加速的超空间哈希索引方法,其特征在于,包括如下步骤:
步骤1:以链表作为处理GPU中哈希冲突的方式,构建超空间哈希数据结构,包括:
步骤1.1:针对存储在GPU的key-value数据库中的n个数据,将所有数据的值value中查询频率大于预设频率H的属性抽离出来,记为次要属性A1,A2,…,Ai…,Ap,i=1,2,…,p,p表示可索引的次要属性的总个数,Ai表示抽离出来的第i个次要属性;
步骤1.2:根据GPU数据访问方式,构造每个存储数据的数据元组形式,定义第j个元组表示为{keyj,A1j,A2j,…Aij,…,Apj,valuej},其中,keyj表示第j个元组中的键,Aij表示第j个元组中的第i个次要属性,valuej表示第j个元组中的位置ID或值,j=1,2,…,n;
步骤1.3:并行构建超空间哈希数据结构,包括:
步骤1.3.1:根据抽离得到的p个次要属性,将GPU存储空间表示为一个p+1维空间,其中维度轴与元组的属性一一对应;
步骤1.3.2:将每个元组的每个属性值散列到对应轴上的一个确定位置,从而映射到存储空间中的一个确定性坐标,得到每个属性值的坐标值,则每个元组中第i个次要属性值在对应哈希桶的坐标为xi+1,每个元组中键key在对应哈希桶的坐标为x1;
步骤1.3.3:利用GPU的多线程任务处理方式,将n个数据同时定位到对应的哈希桶中,并存储在哈希桶对应的链表结构中,链表结构由超级节点连接而成,超级节点结构由键节点、属性节点、值节点构成,其中键节点、属性节点、值节点统称为基本节点,所述超级节点具体表示为:根据预设的基本节点的存储容量M,确定每个超级节点存储的元组数量其中size(key)表示键key的字节数,m个数据中的所有键key存储在同一个键节点中,m个数据抽离出的所有第i个次要属性值存储在同一个属性i节点中,m个数据中的所有值value存储在同一个值节点中,链表中的每个基本节点通过指针链接到下一个基本节点;
步骤2:对于超空间哈希数据结构,分类查询任务,合并查询路径,并行实现批量的键key、次要属性的索引查询;
步骤3:对于超空间哈希数据结构,并行实现批量数据的插入;
步骤4:对于超空间哈希数据结构,并行实现批量数据的修改,维护数据的一致性;
步骤5:对于超空间哈希数据结构,并行实现批量数据的删除。


2.根据权利要求1所述的一种基于GPU加速的超空间哈希索引方法,其特征在于,所述步骤2包括:
步骤2.1:定义通过哈希函数得到的查询属性Ai的坐标为a,判断每个哈希桶中坐标xi+1的位置是否为a,如果xi+1等于a,则将查询任务添加到对应哈希桶的任务队列中TQi,完成对哈希桶标号的分类,通过GPU的不同线程组执行不同的子任务;
步骤2.2:将每个哈希桶的任务队列中查询相同属性的任务分为同一个组,完成对查询类型的预组合,并将同一个哈希桶中同一个分组的任务分配给GPU的同一个线程组的线程执行;
步骤2.3:当需要执行查询操作时,GPU从超空间哈希数据结构读取哈希桶的坐标,一个线程组的线程同时检查当前超级节点中存储的数据是否等于需要查询的目标数据,如果查询到的数据等于目标数据,则返回结果并将任务标记为解决;否则,GPU的每个线程读取地址单元标记的指针,并根据指针查找下一个链表...

【专利技术属性】
技术研发人员:谷峪任卓李传文李芳芳于戈
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁;21

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

1