一种基于图-KV的混合存储方法及装置制造方法及图纸

技术编号:30229973 阅读:17 留言:0更新日期:2021-09-29 10:01
本发明专利技术涉及数据处理领域,提供了一种基于图

【技术实现步骤摘要】
一种基于图

KV的混合存储方法及装置


[0001]本专利技术涉及数据处理领域,具体涉及一种基于图

KV的混合存储方法及装置。

技术介绍

[0002]存储引擎是数据库中底层的组件,也是数据库中最重要的一个模块。随着时代的发展,越来越多的数据源源不断地产生,信息的生产和存储规模变得越来越大,传统关系型数据库在大数据方面的表现并不够好,例如关系型数据库在查找人与人之间的关联关系时,往往需要联合多表查询,特别是在度数更高的时候,查询速度更是非常缓慢,甚至超时。
[0003]大数据时代到来,各种非关系型数据库(NoSQL)应运而生,NoSQL(Not only SQL)泛指非关系型数据库。随着Web 2.0网站的兴起、5G物联网的接入、大数据挖掘和分析需求的增长、社交网络的发展等,诸多应用场景暴露了传统数据库很多难以克服的问题,而非关系型数据库则由于其自身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
[0004]关系型数据库的缺点:
[0005]1.关系数据库无法满足对海量数据的高效率存储和访问的需求。
[0006]2.关系数据库无法满足对数据库的高可扩展性和高可用性的需求。
[0007]3.关系数据库无法存储和处理半结构化/非结构化数据。
[0008]4.关系数据库复杂的事务机制效率太低。
[0009]关系型数据库中的表需要存储格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,时间和空间的开销大。这样的结构可以便于表与表之间进行连接等操作。但从另一个角度来说,它也是关系型数据库性能瓶颈的一个因素。
[0010]NoSQL的优势:
[0011]1.灵活的可扩展性。
[0012]2.大数据量和高性能。
[0013]3.灵活的数据模型。
[0014]目前,已经有多种图数据的存取方法被提出。专利CN201911388011.0中的存储原理是:结合传统关系数据库和图数据库,利用传统关系型数据库的底层行记录结构,在行记录结构上进行扩展,内嵌了对于图结构的描述。在顶点的记录上内嵌了对该顶点关系的描述,而在关系的行记录上,内嵌了对起止顶点的描述。但该专利技术适合存储结构化的图数据,对于非结构化或半结构化的图数据支持并不友好。
[0015]鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。

技术实现思路

[0016]本专利技术要解决的技术问题是:
[0017]现有技术是将图对象中的图结构数据和非图结构数据(即图结构数据中顶点和边
的属性信息等)均以KV的形式放在一起进行存储,但是实际场景中的有些情况,只需要获取图结构数据,那么在获取图结构数据的时候会将图结构数据和非图结构数据均查询出来,这将极大占用内存,同时降低查询的效率。
[0018]本专利技术通过如下技术方案达到上述目的:
[0019]第一方面,本专利技术提供了一种基于图

KV的混合存储方法,包括VLOG、图结构数据存储和索引存储;
[0020]所述VLOG用于存储value,其中,所述value为非图结构数据,所述value插入于所述VLOG后生成偏移量,所述偏移量与所述value对应的key作为非图结构数据的索引信息;
[0021]所述图结构数据存储仅用于存储边和顶点的图结构数据,所述顶点和边分别包含唯一一个ID编号,所述顶点和边的ID编号与所述顶点和边的非图结构数据插入到VLOG中的value对应的key一一对应,所述ID编号与所述value对应的key作为图结构数据的索引信息;
[0022]所述索引存储用于存储索引信息。
[0023]优选的,在图

KV的混合存储方法中,接收到插入请求时,方法包括:
[0024]接收插入请求;
[0025]如果所述插入请求为边记录,将所述边记录作为value插入VLOG中生成偏移量,并返回所述边记录的偏移量,其中,所述边记录为边的非图结构数据;
[0026]根据所述边记录中起始顶点的key和终止顶点的key,从索引存储中查询,分别得到对应的起始顶点的ID编号和终止顶点的ID编号;
[0027]根据所述起始顶点的ID编号和终止顶点的ID编号,将所述边记录中的边插入图结构数据中,生成所述边的ID编号,并返回边的ID编号;
[0028]将所述边记录的偏移量和边记录的key作为非图结构数据的索引信息插入索引存储中,将所述边记录的key和边的ID编号作为图结构数据的索引信息插入索引存储中。
[0029]优选的,在图

KV的混合存储方法中,接收到插入请求时,方法包括:
[0030]接收插入请求;
[0031]如果所述插入请求为顶点记录,将所述顶点记录作为value插入VLOG中生成偏移量,并返回所述顶点记录的偏移量,其中,所述顶点记录为顶点的非图结构数据;
[0032]将所述顶点记录中的顶点插入图结构数据中,生成所述顶点的ID编号,并返回顶点的ID编号;
[0033]将所述顶点记录的偏移量和顶点记录的key作为非图结构数据的索引信息插入索引存储中,将所述顶点记录的key和顶点的ID编号作为图结构数据的索引信息插入索引存储中。
[0034]优选的,所述索引存储,具体包括:
[0035]将索引信息插入内存中活动的跳表中,若活动的跳表满足冻结条件,则将活动的跳表冻结,冻结的跳表只支持查询;
[0036]每冻结一次跳表将在后台任务队列中添加一个写入任务,后台线程不断处理后台任务队列中的写入任务,将冻结的跳表中的数据写入磁盘,每一次跳表落盘都将在未合并层生成一个新的索引文件。
[0037]优选的,还包括,每冻结一次跳表将在后台任务队列中添加一个合并任务,将未合
并层中的索引文件与合并层中的索引文件进行合并,其中,所述合并层中只存在唯一一个索引文件。
[0038]优选的,在图

KV的混合存储方法中,接收到查询请求时,方法包括:
[0039]在活动的跳表中查询,若活动的跳表中未找到,则在内存中冻结的跳表中查询;
[0040]若内存中冻结的跳表中还未找到,则依次查询磁盘的未合并层中的各个索引文件;
[0041]若磁盘的未合并层中的各个索引文件中也未找到,则查询磁盘的合并层中的索引文件,此时,若还没有找到,则表示查询请求的索引信息并不存在。
[0042]优选的,若找到查询请求的索引信息,将索引信息返回,其中,返回的索引信息为不包含删除标志且为最新的索引信息。
[0043]优选的,将删除请求和更新请求均替换为插入请求。
[0044]优选的,所述根据所述起始顶点的ID编号和终止顶点的ID编号,将所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图

KV的混合存储方法,其特征在于,包括VLOG、图结构数据存储和索引存储;所述VLOG用于存储value,其中,所述value为非图结构数据,所述value插入于所述VLOG后生成偏移量,所述偏移量与所述value对应的key作为非图结构数据的索引信息;所述图结构数据存储仅用于存储边和顶点的图结构数据,所述顶点和边分别包含唯一一个ID编号,所述顶点和边的ID编号与所述顶点和边的非图结构数据插入到VLOG中的value对应的key一一对应,所述ID编号与所述value对应的key作为图结构数据的索引信息;所述索引存储用于存储索引信息。2.根据权利要求1所述的基于图

KV的混合存储方法,其特征在于,在图

KV的混合存储方法中,接收到插入请求时,方法包括:接收插入请求;如果所述插入请求为边记录,将所述边记录作为value插入VLOG中生成偏移量,并返回所述边记录的偏移量,其中,所述边记录为边的非图结构数据;根据所述边记录中起始顶点的key和终止顶点的key,从索引存储中查询,分别得到对应的起始顶点的ID编号和终止顶点的ID编号;根据所述起始顶点的ID编号和终止顶点的ID编号,将所述边记录中的边插入图结构数据中,生成所述边的ID编号,并返回边的ID编号;将所述边记录的偏移量和边记录的key作为非图结构数据的索引信息插入索引存储中,将所述边记录的key和边的ID编号作为图结构数据的索引信息插入索引存储中。3.根据权利要求1所述的基于图

KV的混合存储方法,其特征在于,在图

KV的混合存储方法中,接收到插入请求时,方法包括:接收插入请求;如果所述插入请求为顶点记录,将所述顶点记录作为value插入VLOG中生成偏移量,并返回所述顶点记录的偏移量,其中,所述顶点记录为顶点的非图结构数据;将所述顶点记录中的顶点插入图结构数据中,生成所述顶点的ID编号,并返回顶点的ID编号;将所述顶点记录的偏移量和顶点记录的key作为非图结构数据的索引信息插入索引存储中,将所述顶点记录的key和顶点的ID编号作为图结构数据的索引信息插入索引存储中。4.根据权利要求1

3任一所述的基于图

KV的混合存储方法,其特征在于,所述索引存储,具体包括:将索引信息插入内存中活动的跳表中,若活动的跳表满足冻结条件,则将活动的跳表冻结,冻结的跳...

【专利技术属性】
技术研发人员:吕伟程萍唐俊张睿
申请(专利权)人:四川蜀天梦图数据科技有限公司
类型:发明
国别省市:

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

1