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