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

基于GPU分组LSM树索引的方法技术

技术编号:26505116 阅读:43 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供一种基于GPU分组LSM树索引的方法,涉及GPU数据库技术领域。本发明专利技术首先将数据进行预处理,当value为变长时,在GPU上进行查询时不能很好的利用缓存而且数据传输代价也会增大。本发明专利技术针对以上情况,将数据中的Key和Value进行分离,GPU中仅仅存放Value的地址,真正的Value存放在内存中。针对LSM插入速度慢的问题,本发明专利技术将原来的LSM树每一层分为多个组,每个组都是一个有序数组,合并到下一层的时候通过GPU上大量的线程并行的归并。由于将LSM树进行分组,意味着查询需要花费更高的代价。为了提高查询速度,本发明专利技术在GPU上设计了一种适应于GPU结构的布隆过滤器,通过布隆过滤器减少了大量不必要的查询开销。

【技术实现步骤摘要】
基于GPU分组LSM树索引的方法
本专利技术涉及GPU数据库
,尤其涉及一种基于GPU分组LSM树索引的方法。
技术介绍
随着大数据时代的到来,数据总量和数据访问量都在爆炸式的增长。传统的关系型数据库已经不能够满足这种高并发的访问场景。而Nosql数据库不依赖于关系数据库的传统结构且更加灵活和方便,因此非常适用于云存储,电子商务和web访问等。键值(Key-Value,KV)是Nosql数据库的基本类型,通过GET,PUT,DELETE等简单的接口就能对大量非结构化的数据进行读写。目前主流的Nosql数据库的索引结构都是日志结构合并树(log-sturctremergetree,LSMTree)。LSM树是重要的数据结构之一。它被广泛用于levelDB,rocksDB,Cassandra等NoSql数据库中。LSM树是一种多层的结构,它的基本思想是先将数据的修改或者插入保存在内存中,当内存达到容量限制再将这些操作顺序写入磁盘,磁盘中的树在后台会进行定期的合并操作,最后以归并的方式合并成一棵大树。相比于其它索引结构例如B树,它在数据本文档来自技高网...

【技术保护点】
1.一种基于GPU分组LSM树索引的方法,其特征在于:包括以下步骤:/n步骤1:对Key-Value数据进行预处理,将数据在内存中进行键值Key和数据Value的分离;将Value存放在内存中,同时在内存中用哈希表存储Value和对应的地址,查询时以O(1)的时间复杂度定位Value;分离之后将Key和Value的地址拷贝到GPU的全局内存中;/n步骤2:将数据插入到GPU分组LSM树中;/n所述GPU分组LSM树中,所有数据均是按批进行插入,假设每一批数据大小为b,数据组group的数量为g,因此GPU GLSM中每一层都会有g个group且第i层有b*g

【技术特征摘要】
1.一种基于GPU分组LSM树索引的方法,其特征在于:包括以下步骤:
步骤1:对Key-Value数据进行预处理,将数据在内存中进行键值Key和数据Value的分离;将Value存放在内存中,同时在内存中用哈希表存储Value和对应的地址,查询时以O(1)的时间复杂度定位Value;分离之后将Key和Value的地址拷贝到GPU的全局内存中;
步骤2:将数据插入到GPU分组LSM树中;
所述GPU分组LSM树中,所有数据均是按批进行插入,假设每一批数据大小为b,数据组group的数量为g,因此GPUGLSM中每一层都会有g个group且第i层有b*g(i+1)个组,整个GPU分组LSM包含的数据都是b的整数倍;使用GPU的基数排序对数据进行排序,并查看GPU分组LSM树中第一层是否有空的组,有则将数据拷贝到该组中,没有则触发合并操作,使第一层为空然后将数据拷贝到第一层;
步骤3:进行数据查询时,进行部分排序提高合并内存访问效率,确定需要排序比特位数量;
假设Key的长度位为B个比特,GPU分组LSM树的大小为T,GPU缓存存放的Key的长度为K,Key的范围长度为2B,LSM树中的每一...

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

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

1