首页 / 专利库 / 资料储存系统 / 高速缓冲存储器 / 顶点缓存 / 一种提高Janusgraph路径探索性能的方法

一种提高Janusgraph路径探索性能的方法

阅读:514发布:2020-05-15

专利汇可以提供一种提高Janusgraph路径探索性能的方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种提高Janusgraph路径探索性能的方法,属于应用 数据挖掘 技术的图计算技术领域。本发明的提高Janusgraph路径探索性能的方法使用双向广度优先遍历 算法 ,将从原 节点 出发逐步向目标节点过度的过程改为从两个节点同时出发进行遍历,所需要遍历的 顶点 总数变少,减少 迭代 的次数。该发明的提高Janusgraph路径探索性能的方法能够减少对存储内存资源的消耗,同时降低响应时间,满足 大数据 量,实时计算,低响应时间的要求,具有很好的推广应用价值。,下面是一种提高Janusgraph路径探索性能的方法专利的具体信息内容。

1.一种提高Janusgraph路径探索性能的方法,其特征在于:该方法使用双向广度优先遍历算法,将从原节点出发逐步向目标节点过度的过程改为从两个节点同时出发进行遍历,所需要遍历的顶点总数变少,减少迭代的次数。
2.根据权利要求1所述的提高Janusgraph路径探索性能的方法,其特征在于:具体包括以下步骤:
S1、定义集合v1、集合v2;
S2、通过源节点和目标节点遍历源顶点和目标顶点,取出源节点装入集合v1,取出目标节点装入集合v2;
S3、遍历集合v1,取出每个顶点v;
S4、扩展顶点v,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集,若存在跳转至S9,否则执行步骤S5;
S5、用v1a的内容代替v1;
S6、遍历集合v2,取出每个顶点v;
S7、扩展顶点v,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集,若存在跳转至S9,否则执行步骤S8;
S8、用v2a的内容代替v2;
S9、跳转至步骤S4;
S10、将v2的节点路径与v1做连接,输出路径结果。
3.根据权利要求2所述的提高Janusgraph路径探索性能的方法,其特征在于:该方法中采用并行节点扩展,将双向广度优先遍历对顶点扩展步骤S4和步骤S7进行并行操作,将多个节点的展开作为多个任务同时执行。
4.根据权利要求3所述的提高Janusgraph路径探索性能的方法,其特征在于:限制路径长度,为查询路径设置最大步长,超过最大步长后还未找到节点的路径时算作路径不存在。
5.根据权利要求4所述的提高Janusgraph路径探索性能的方法,其特征在于:超级节点和热数据优化,存在数量较多的边的节点的边在内存做额外的缓存。
6.根据权利要求5所述的提高Janusgraph路径探索性能的方法,其特征在于:对超级节点和热数据进行缓存,减少对图数据库访问和占用时间。
7.根据权利要求6所述的提高Janusgraph路径探索性能的方法,其特征在于:步骤S4中,扩展顶点v,如果为有向图,根据方向对边过滤,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集。
8.根据权利要求7所述的提高Janusgraph路径探索性能的方法,其特征在于:步骤S7中,扩展顶点v,如果为有向图,根据方向对边做方向过滤,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集。

说明书全文

一种提高Janusgraph路径探索性能的方法

技术领域

[0001] 本发明涉及应用数据挖掘技术的图计算技术领域,具体提供一种提高Janusgraph路径探索性能的方法。

背景技术

[0002] 图(Graph)是表示实体与实体之间的关系的数学逻辑对象,在数学中被表示为一个G=(V,E)的二元组,其自身由N个顶点(V=vertex)和M个边(E=edge)构成,每个顶点对应着多个边(<=M),每个边又连接着两个顶点,边可以存在方向,如果图所包含的边带有方向,称为有向图(oriented graph),反之为无向图(undirected graph)。图论(Graph Theory)是以图为基本研究对象的一个数学分支,而使用图论对图进行求解的算法被称为图算法(Graph Algorithm)。
[0003] 在现今互联网信息行业中,图和图算法在数据挖掘(Data Mining)领域得到了广泛的使用,其所延伸出的应用包括:交通路由、社交网络计算、商品推荐、网络通信等。
[0004] 图数据库(graph database)是根据图作为逻辑结构进行存取的数据库工具,常见的图数据库包括:neo4j、janusgraph、titan等,为了满足当前行业内对图使用的需求,自身一般提供多种图算法,包括:路径探索(path explore)、生成树(spanning tree)、连通图(connected graph)、社交网络算法(SNA)等。
[0005] 路径探索是常用的图算法之一,用于求出有向图或无向图的两个任意顶点之间关联(P=>(V,E)),即从一个点到另一个点之间路径,这种算法应用主要包括两种:最短路径(shortestpath),如计算从城市的地图上由一个地点出发能够用最少步数到达另一个地点的行走方式;路径遍历(path traverse),如用于求得两个之间的六度关系,通过一个人的人脉关系如何找到另一个人。
[0006] JanusGraph是一款开源的图数据库产品,因其通用性较好、高性能、开放源代码等优势,在数据分析领域被广泛使用,Janusgraph本身提供路径探索功能所使用的图算法为深度优先遍历(DFS),这种算法存在如下缺陷
[0007] (1)性能差,响应时间较长:深度优先遍历采用了类似于探索和构建迷宫的思路,需要对图的每一个可能顶点进行遍历,如果图的规模非常大,往往无法在可接受的时间内完成探索,顾不适合实时计算场景,更适合应用于离线(offline)计算;
[0008] (2)资源消耗较高:算法执行时需要将所有遍历过的顶点信息记录到内存中,以满足算法的需要,当数据计算量较为密集时,其内存的消耗也会逐步上升,对计算的资源要求也较高。
[0009] 这些问题使Janusgraph的路径探索功能在面对大数据量且具有实时(real)性需求的场景下难以快速低延迟响应外部路径探索请求,且查询过程中的内存消耗非常高。

发明内容

[0010] 本发明的技术任务是针对上述存在的问题,提供一种减少对存储内存资源的消耗,同时降低响应时间,满足大数据量,实时计算,低响应时间的要求的提高Janusgraph路径探索性能的方法。
[0011] 为实现上述目的,本发明提供了如下技术方案:
[0012] 一种提高Janusgraph路径探索性能的方法,该方法使用双向广度优先遍历算法,将从原节点出发逐步向目标节点过度的过程改为从两个节点同时出发进行遍历,所需要遍历的顶点总数变少,减少迭代的次数。
[0013] 作为优选,该提高Janusgraph路径探索性能的方法具体包括以下步骤:
[0014] S1、定义集合v1、集合v2;
[0015] S2、通过源节点和目标节点遍历源顶点和目标顶点,取出源节点装入集合v1,取出目标节点装入集合v2;
[0016] S3、遍历集合v1,取出每个顶点v;
[0017] S4、扩展顶点v,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集,若存在跳转至S9,否则执行步骤S5;
[0018] S5、用v1a的内容代替v1;
[0019] S6、遍历集合v2,取出每个顶点v;
[0020] S7、扩展顶点v,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集,若存在跳转至S9,否则执行步骤S8;
[0021] S8、用v2a的内容代替v2;
[0022] S9、跳转至步骤S4;
[0023] S10、将v2的节点路径与v1做连接,输出路径结果。
[0024] 作为优选,该方法中采用并行节点扩展,将双向广度优先遍历对顶点扩展步骤S4和步骤S7进行并行操作,将多个节点的展开作为多个任务同时执行。
[0025] 作为优选,限制路径长度,为查询路径设置最大步长,超过最大步长后还未找到节点的路径时算作路径不存在。
[0026] 对图遍历过程会限制最大步长,防止查询过程陷入死循环。
[0027] 作为优选,超级节点和热数据优化,存在数量较多的边的节点的边在内存做额外的缓存。
[0028] 作为优选,对超级节点和热数据进行缓存,减少对图数据库的访问和占用时间。
[0029] 作为优选,步骤S4中,扩展顶点v,如果为有向图,根据方向对边过滤,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集。
[0030] 作为优选,步骤S7中,扩展顶点v,如果为有向图,根据方向对边做方向过滤,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集。
[0031] 该提高Janusgraph路径探索性能的方法采用与Janusgraph兼容的方式进行集成集成方式为:将实现双向广度优先遍历的算法封装为Janusgraph自身支持的Traverser模型,并重新编译,放在服务的lib目录下代替其使用。
[0032] 与现有技术相比,本发明的提高Janusgraph路径探索性能的方法具有以下突出的有益效果:所述提高Janusgraph路径探索性能的方法对双向广度优先遍历进行优化,为算法增加了最大步长限制,增加了超级节点的缓存,减少了对图数据库的访问和占用,且对节点扩展做了并行执行的改进,解决了JanusGraph图数据库所使用的深度优先遍历路径探索算法普遍存在的响应时间较长、资源消耗过大的问题,具有良好的推广应用价值。附图说明
[0033] 图1是本发明所述提高Janusgraph路径探索性能的方法的流程图

具体实施方式

[0034] 下面将结合附图和实施例,对本发明的提高Janusgraph路径探索性能的方法作进一步详细说明。
[0035] 实施例
[0036] 如图1所示,本发明的提高Janusgraph路径探索性能的方法,使用双向广度优先遍历算法,将从原节点出发逐步向目标节点过度的过程改为从两个节点同时出发进行遍历,所需要遍历的顶点总数变少,减少迭代的次数。
[0037] 该提高Janusgraph路径探索性能的方法具体包括以下步骤:
[0038] S1、定义集合v1、集合v2。
[0039] S2、通过源节点和目标节点遍历源顶点和目标顶点,取出源节点装入集合v1,取出目标节点装入集合v2。
[0040] S3、遍历集合v1,取出每个顶点v。
[0041] S4、扩展顶点v,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集,若存在跳转至S9,否则执行步骤S5。
[0042] 扩展顶点v,如果为有向图,根据方向对边过滤,找到节点路径,将符合的顶点装入v1a,判断v1a与v2是否存在重合交集。
[0043] S5、用v1a的内容代替v1。
[0044] S6、遍历集合v2,取出每个顶点v。
[0045] S7、扩展顶点v,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集,若存在跳转至S9,否则执行步骤S8。
[0046] 扩展顶点v,如果为有向图,根据方向对边做方向过滤,找到节点路径,将符合的顶点装入v2a,判断v2a与v1是否存在重合交集。
[0047] S8、用v2a的内容代替v2。
[0048] S9、跳转至步骤S4。
[0049] S10、将v2的节点路径与v1做连接,输出路径结果。
[0050] 其中该方法还可做如下的优化:
[0051] (1)该方法中采用并行节点扩展,将双向广度优先遍历对顶点扩展步骤S4和步骤S7进行并行操作,将多个节点的展开作为多个任务同时执行。
[0052] (2)限制路径长度,为查询路径设置最大步长,超过最大步长后还未找到节点的路径时算作路径不存在。
[0053] 对图遍历过程会限制最大步长,防止查询过程陷入死循环。
[0054] (3)超级节点和热数据优化,存在数量较多的边的节点的边在内存做额外的缓存。
[0055] 对超级节点和热数据进行缓存,减少对图数据库的访问和占用时间。
[0056] 该提高Janusgraph路径探索性能的方法采用与Janusgraph兼容的方式进行集成集成方式为:将实现双向广度优先遍历的算法封装为Janusgraph自身支持的Traverser模型,并重新编译,放在服务的lib目录下代替其使用。
[0057] 其中,Janusgraph服务分为websocket接口、图操作、算法、图数据库,将实现双向广度优先遍历的算法封装为Janusgraph自身支持的Traverser模型,并重新编译,放在服务的lib目录下代替其使用。
[0058] 以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈