System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及图数据库,特别是涉及一种图数据库的存储方法和装置。
技术介绍
1、图数据库是非关系型数据库的一种类型,主要应用图形理论来存储实体之间的关系信息。图数据库中的基本概念有三种:顶点,一般用于指示一个实体;边,用于表示实体之间的关系,多数情况下使用有向边;属性,用于描述顶点或者边的某种信息。图数据库的核心概念是通过顶点、边和属性等方式来表示和存储数据,支持增删改查等图查询操作,提供数据库管理功能。由于图数据库可以直观地可视化关系,使得图数据库能够快速响应复杂关联查询,是存储、查询和分析高度互联数据的较优办法。
2、在图数据库的存储中,常见的方式是将图的邻接信息转换成键值对(key-value),底层为键值存储(key-value存储)。另一种方式是,原生图存储,单独存储邻接信息,由于省去了键值封装,所以能提供更好的查询性能。现有技术的图数据库基于原生图对数据进行写入或查询(读取)时,受到内存的限制,无法兼顾写入效率与查询效率,导致在面对超大数据量时,存在一些功能并不能满足于实际使用的需求,例如一次性超大规模数据的处理与导入。在实际使用过程中,用户不断增删改数据,大量的新数据插入时,旧的、过期的无效数据没有立即被清除,导致存储空间中存在许多已经被删除的数据,查询时需要遍历有效数据和无效数据,无效数据的存在影响查询效率。
3、鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
1、本专利技术要解决的技术问题是提供一种图数据库的存
2、本专利技术采用如下技术方案:
3、第一方面,本专利技术提供了一种图数据库的存储方法,包括:
4、根据用户数据,自底向上地构建至少一个原始b树;
5、将所述原始b树作为初始lsm树的相应节点的数据,得到所述初始lsm树;
6、获取所述初始lsm树的合并触发条件,根据所述合并触发条件确定待合并的原始b树,将待合并的原始b树合并为至少一个合并b树,得到包含至少一个合并b树的目标lsm树;
7、使用原生图存储所述用户数据所属的标签之间的邻接信息,根据所述邻接信息,在所述目标lsm树中创建索引项,以便于通过所述索引项得到所述邻接信息,根据所述邻接信息查询出相应的用户数据。
8、进一步地,所述根据用户数据,自底向上地构建至少一个原始b树包括:
9、初始化至少一个原始b树;
10、在初始化至少一个原始b树后,执行所述原始b树的插入过程,依次迭代,直至所述用户数据全部插入至所述原始b树中;
11、每次得到一个所述原始b树时,将每个所述原始b树以b树文件的形式存储在磁盘中。
12、进一步地,所述插入过程包括:
13、对至少一条用户数据进行归并排序,得到归并结果集;
14、按照所述归并结果集中结果数据的顺序,向所述原始b树的当前最右叶子节点依次插入所述结果数据;
15、当存储所述当前最右叶子节点的页中的结果数据达到预设关键字数时,根据达到所述预设关键字数时向所述当前最右叶子节点中插入的第i个结果数据,和所述页的页号j,确定b树中间项(i,j);
16、创建新节点作为所述当前最右叶子节点的父节点,在完成所述父节点的创建后,将所述b树中间项(i,j)插入所述父节点;
17、根据b树的基本性质,调整所述原始b树;
18、按照所述归并结果集中结果数据的顺序,继续向所述当前最右叶子节点依次插入相应的结果数据,直至存储所述当前最右叶子节点的页中的结果数据达到预设关键字数;
19、对以上过程进行迭代,直至所述结果数据全部插入至所述原始b树。
20、进一步地,所述按照所述归并结果集中结果数据的顺序,继续向所述当前最右叶子节点依次插入相应的结果数据,直至存储所述当前最右叶子节点的页中的结果数据达到预设关键字数包括:
21、创建所述当前最右叶子节点的右兄弟节点,将当前最右叶子节点更新为所述右兄弟节点,向所述当前最右叶子节点插入第i+1个结果数据;
22、根据所述第i+1个结果数据,和存储所述当前最右叶子节点的页的页号k,确定b树中间项(i+1,k),将所述b树中间项(i+1,k)插入所述父节点;
23、根据所述基本性质调整所述原始b树;
24、从第i+2个结果数据开始,将相应的结果数据依次插入至所述当前最右叶子节点,直至存储所述当前最右叶子节点的页中的结果数据达到预设关键字数。
25、进一步地,所述获取所述初始lsm树的合并触发条件,根据所述合并触发条件确定待合并的原始b树包括:
26、当初始lsm树的第m层中b树文件的数量达到所述第m层对应的第一预设阈值时,确定所述第m层中多个与初始lsm树的下一层存在交集的原始b树,将所述原始b树确定为所述待合并的原始b树;
27、和/或,当所述b树文件的数量达到所述第m层对应的第二预设阈值时,将所述第m层中所有原始b树确定为所述待合并的原始b树;
28、和/或,根据预设文件大小函数size()得到初始lsm树的每一层的空间大小,根据所述空间大小,得到所述初始lsm树的空间放大指数size(r1)+size(r2)+...+size(rn-1)/size(rn);其中,rm表示初始lsm树第m层的b树文件;当所述空间放大指数达到预设放大阈值时,根据所述第0层中的删除标记,确定所述删除标记对应的原始b树,将所述原始b树确定为所述待合并的原始b树;
29、和/或,当删除标签、原生图、原生图的边、原生图的顶点和索引项时,触发一次对所述初始lsm树的扫描,以检查是否存在删除标记对应的原始b树;当存在时,将所述原始b树确定为所述待合并的原始b树;
30、和/或,每次间隔预设整理时间,将初始lsm树中所有原始b树确定为所述待合并的原始b树。
31、进一步地,所述将待合并的原始b树合并为至少一个合并b树,得到包含至少一个合并b树的目标lsm树包括:
32、将所述待合并的原始b树与下一层中存在交集的原始b树合并为所述下一层的至少一个合并b树;
33、和/或,将位于同一层的所述待合并的原始b树合并为相应的下一层的一个合并b树;
34、和/或,将所述待合并的原始b树合并为同一层的至少一个合并b树;
35、根据至少一个合并b树,得到所述目标lsm树。
36、进一步地,创建至少一个合并任务,所述合并任务用于将待合并的原始b树合并为至少一个合并b树;所述合并任务包括至少一个子任务,所述子任务用于将所述待合并的原始b树合并为一个合并b树;所述合并任务的至少一个子任务使用同一个线程依次执行;
37、所述将待合并的原始b树合并为至本文档来自技高网...
【技术保护点】
1.一种图数据库的存储方法,其特征在于,包括:
2.根据权利要求1所述的图数据库的存储方法,其特征在于,所述根据用户数据,自底向上地构建至少一个原始B树包括:
3.根据权利要求2所述的图数据库的存储方法,其特征在于,所述插入过程包括:
4.根据权利要求3所述的图数据库的存储方法,其特征在于,所述按照所述归并结果集中结果数据的顺序,继续向所述当前最右叶子节点依次插入相应的结果数据,直至存储所述当前最右叶子节点的页中的结果数据达到预设关键字数包括:
5.根据权利要求1所述的图数据库的存储方法,其特征在于,所述获取所述初始LSM树的合并触发条件,根据所述合并触发条件确定待合并的原始B树包括:
6.根据权利要求5所述的图数据库的存储方法,其特征在于,所述将待合并的原始B树合并为至少一个合并B树,得到包含至少一个合并B树的目标LSM树包括:
7.根据权利要求5所述的图数据库的存储方法,其特征在于,创建至少一个合并任务,所述合并任务用于将待合并的原始B树合并为至少一个合并B树;所述合并任务包括至少一个子任务,所述子任务用
8.根据权利要求5所述的图数据库的存储方法,其特征在于,在所述将待合并的原始B树合并为至少一个合并B树之前,从内存或磁盘中对所述待合并的原始B树进行预取,其中:
9.根据权利要求1所述的图数据库的存储方法,其特征在于,所述原生图包括顶点和边,所述邻接信息包括所述顶点的顶点ID到所述边的边ID的映射;所述标签下存在至少一个顶点,所述顶点包括至少一个属性,所述索引项包括属性和对应的顶点的顶点ID;
10.一种图数据库的存储装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于实现权利要求1-9任一所述的图数据库的存储方法。
...【技术特征摘要】
1.一种图数据库的存储方法,其特征在于,包括:
2.根据权利要求1所述的图数据库的存储方法,其特征在于,所述根据用户数据,自底向上地构建至少一个原始b树包括:
3.根据权利要求2所述的图数据库的存储方法,其特征在于,所述插入过程包括:
4.根据权利要求3所述的图数据库的存储方法,其特征在于,所述按照所述归并结果集中结果数据的顺序,继续向所述当前最右叶子节点依次插入相应的结果数据,直至存储所述当前最右叶子节点的页中的结果数据达到预设关键字数包括:
5.根据权利要求1所述的图数据库的存储方法,其特征在于,所述获取所述初始lsm树的合并触发条件,根据所述合并触发条件确定待合并的原始b树包括:
6.根据权利要求5所述的图数据库的存储方法,其特征在于,所述将待合并的原始b树合并为至少一个合并b树,得到包含至少一个合并b树的目标lsm树包括:
7.根据权利要求5所述的图数据库的存储方法,其特征在于,创建至少一个合并任...
【专利技术属性】
技术研发人员:唐俊,程萍,冷建琴,丁先胜,张睿,王振宇,
申请(专利权)人:四川蜀天梦图数据科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。