用于处理并发属性图查询的系统技术方案

技术编号:27308144 阅读:13 留言:0更新日期:2021-02-10 09:25
提供了一种用于对在分布式网络中实现的属性图进行并发属性图查询的图处理系统,所述图处理系统在相应节点上计算子图分片,所述子图分片表示为包含在一定范围内的顶点的边集。每个节点存储子图分片的数据,所述子图分片包含一系列局部顶点,这些局部顶点是所述属性图的所有顶点的子集。每个子图分片还具有边界顶点,所述边界顶点具有将所述子图分片连接到另一子图分片的边界顶点的边。在接收到所述属性图的并发查询时,根据每个并发用户查询的初始顶点来调度所述子图分片的查询。通过遍历每个节点上子图分片内的边集来遍历所述属性图,并且在遍历期间使用消息传递来将边界顶点的值发送到具有共享所述边界顶点的另一子图分片的至少一个其它节点。的至少一个其它节点。的至少一个其它节点。

【技术实现步骤摘要】
【国外来华专利技术】用于处理并发属性图查询的系统
[0001]相关申请案交叉申请
[0002]本申请与2018年6月15日提交的专利技术标题为“用于处理并发属性图查询的方法和系统(Methodology and System for Handling Concurrent Property Graph Queries)”的第62/685,555号美国临时申请序列号相关,该美国临时申请的全部内容通过引用并入本文。


[0003]本专利技术涉及在分布式基础设施中运行的基于边集的属性图遍历框架。

技术介绍

[0004]很多大数据分析应用都研究自然建模为图的一组相关实体。然而,众所周知,由于随机数据访问模式,尤其是在工业规模应用中数据量较大的情况下,图处理面临着性能挑战。解决这些挑战对于此类工业规模应用的性能至关重要。
[0005]图处理已在大数据分析中得到了广泛应用,在知识图和机器学习应用中发挥着越来越重要的作用。许多现实世界的场景,如社交网络、Web图、无线网络等,自然地表示为大比例尺图。将应用建模为图提供了直观的表示,使得能够研究和提取数据中的有价值的信息。例如,在推荐系统中,通过分析关于邻居的信息来预测用户的兴趣,提高点击率。高性能图处理也有利于丰富重要算法。例如,映射应用充分利用了最短路径图遍历算法进行导航。为了有效管理和处理图,已经开发出了图数据库,如等。在许多大数据计算平台中,图处理框架也通常被视为关键组件,如中的Giraph
TM
、Spark
TM
中的GraphX、中的Gelly
TM
等。然而,这种图处理系统通常侧重于加速单个图处理任务,而不考虑多个图处理任务并发运行,如在现实场景中工业规模应用所需的同时向同一图发出一组查询。

技术实现思路

[0006]现在描述各种示例从而以简化形式引入一些概念,在下文具体实施方式中会进一步描述这些概念。
技术实现思路
并非旨在确定请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
[0007]需要一种能够支持并发属性图查询的图处理系统,以提高分布式环境中k跳可达性查询的平均响应时间。通常,属性图包括定向轴和用户的属性(attribute/property)(例如,用户名)、数据关系等。本文描述的系统和方法涉及一种在分布式基础设施中运行的基于边集的图遍历框架,称为C-Graph(即,并发图),并且使得k跳可达性查询具有高并发性和效率。本文描述的系统和方法可以通过图处理软件实现,所述图处理软件由支持属性图并发查询的分布式处理系统中的一个或多个处理器执行。
[0008]在示例实施例中,本文描述的系统旨在满足工业需求,即高效处理对大型图的一组同时图查询,而非如传统系统中那样,在服务器/集群中仅加速单个图处理任务。因为许
多用户使用不同的查询并发访问一个图是十分常见的,尤其是对于云服务而言,因此需要这种并发性。此外,在许多情况下,图越来越大,导致复制图实例的开销也增加。此外,生成过多的实例导致难以实现各实例之间高效的数据一致性。因此,需要支持每个实例中的并发查询以避免过多的数据复制。此外,更新应在各实例之间进行,并且每个实例内的并发性增加。为了实现这些目标,本文描述的C-Graph遍历框架维持了全局顶点状态,以便于图遍历,同时支持同步和异步通信接口。对于任何可以分解为一组局部遍历的图处理任务,如图k跳可达性查询,这种方法相对于传统系统都表现出优异的性能。
[0009]本专利技术的第一方面涉及一种用于对属性图进行并发属性图查询的图处理系统,其中,所述属性图在节点分布式网络中实现。所述图处理系统包括至少一个处理器和包括指令的机器可读介质,当所述至少一个处理器执行所述指令时,所述至少一个处理器执行包括以下各项的操作:在所述节点分布式网络中的多个节点中的一个节点上确定所述属性图的多个子图分片中的一个子图分片,所述节点存储所述子图分片的数据,所述子图分片包含一系列局部顶点,所述局部顶点是所述属性图的所有顶点的子集,所述子图分片具有边界顶点,所述边界顶点具有将所述子图分片连接到另一子图分片的边界顶点的边。所述操作还包括:将所述子图分片转换为边集集合,所述边集集合包含在由顶点标识符限定的一定范围内的顶点;接收至少一个用户对所述属性图的并发查询;根据每个并发用户查询的初始顶点调度所述多个子图分片中的所述一个子图分片的查询;通过遍历所述子图分片内的边集,在执行所述并发查询期间遍历所述属性图。在示例实施例中,在遍历所述属性图期间,所述节点使用消息传递将所述子图分片的边界顶点的值发送到具有另一子图分片的至少一个其它节点,所述另一子图分片共享所述边界顶点。
[0010]在第一方面提供的第一种实现方式中,每个节点上的每个子图分片包括两个位数组:第一数组,用于标记在对所述子图分片进行下一次遍历迭代中要访问的邻接顶点列表;第二数组,用于验证所述子图分片中已访问的顶点。所述第一数组和所述第二数组的大小为N
×
k,其中,N为子图分片中的顶点数,k为并发用户查询数。
[0011]在所述第一方面或所述第一方面的任一前述实现方式提供的第二种实现方式中,遍历所述属性图还包括:在所述边集中查找未访问的邻居节点;将所述未访问的邻居节点填充到所述第一数组中;访问所述未访问的邻居节点并检查未访问的邻居节点;对包括所述多个子图分片中的至少一个子图分片的不同节点重复所述访问和检查。
[0012]在所述第一方面或所述第一方面的任一前述实现方式提供的第三种实现方式中,所述节点向所述节点上的所述子图分片提供收件箱和发件箱,其中,所述收件箱用于接收来自邻居子图分片的消息,所述发件箱用于当所述邻居子图分片位于所述节点分布式网络中的另一节点上时向所述邻居子图分片提供消息。
[0013]在所述第一方面或所述第一方面的任一前述实现方式提供的第四种实现方式中,所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器在执行所述并发查询期间通过以下方式遍历所述属性图:从每个根开始,向每个邻居顶点传送唯一标签,以标记所述子图分片的边集中的已遍历边;使用收件箱和发件箱来缓存所述唯一标签,所述唯一标签发送到所述节点分布式网络中的所述另一节点上的所述邻居子图分片并从所述节点分布式网络中的所述另一节点上的所述邻居子图分片接收。
[0014]在所述第一方面或所述第一方面的任一前述实现方式提供的第五种实现方式中,
所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器针对稀疏性和高速缓存局部性优化相应的边集。
[0015]在所述第一方面或所述第一方面的任一前述实现方式提供的第六种实现方式中,遍历所述属性图包括:遍历(1)在对边集内的所述子图分片进行下一次遍历迭代中要访问的邻接顶点的共享邻居顶点;(2)仅进行一次所述并发查询的并发查询之间的共享顶点。
[0016]在所述第一方面或所述第一方面的任一前述实现方式提供的第七种实现方式中,遍历所述属性图包括:根据邻接顶点的所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于对属性图进行并发属性图查询的图处理系统,所述属性图在节点分布式网络中实现,其特征在于,所述图处理系统包括:至少一个处理器;包含指令的机器可读介质,当所述至少一个处理器执行所述指令时,所述至少一个处理器执行包括以下各项的操作:在所述节点分布式网络中的多个节点中的一个节点上确定所述属性图的多个子图分片中的一个子图分片,所述节点存储所述子图分片的数据,所述子图分片包含一系列局部顶点,所述局部顶点是所述属性图的所有顶点的子集,所述子图分片具有边界顶点,所述边界顶点具有将所述子图分片连接到另一子图分片的边界顶点的边;将所述子图分片转换为边集集合,所述边集集合包含在由顶点标识符限定的一定范围内的顶点;接收至少一个用户对所述属性图的并发查询;根据每个并发用户查询的初始顶点调度所述多个子图分片中的所述子图分片的查询;通过遍历所述子图分片内的边集,在执行所述并发查询期间遍历所述属性图,其中,在遍历所述属性图期间,所述节点使用消息传递将所述子图分片的边界顶点的值发送到具有另一子图分片的至少一个其它节点,所述另一子图分片共享所述边界顶点。2.根据权利要求1所述的图处理系统,其特征在于,每个节点上的每个子图分片包括两个位数组,第一数组用于标记在对所述子图分片进行下一次遍历迭代中要访问的邻接顶点列表,第二数组用于验证所述子图分片中已访问的顶点,所述第一数组和所述第二数组的大小为N
×
k,其中,N为所述子图分片中的顶点数,k为并发用户查询数。3.根据权利要求2所述的图处理系统,其特征在于,遍历所述属性图还包括:在所述边集中查找未访问的邻居节点;将所述未访问的邻居节点填充到所述第一数组中;访问所述未访问的邻居节点并检查未访问的邻居节点;对包括所述多个子图分片中的至少一个子图分片的不同节点重复所述访问和检查。4.根据权利要求1所述的图处理系统,其特征在于,所述节点向所述节点上的所述子图分片提供收件箱和发件箱,其中,所述收件箱用于接收来自邻居子图分片的消息,所述发件箱用于当所述邻居子图分片位于所述节点分布式网络中的另一节点上时向所述邻居子图分片提供消息。5.根据权利要求4所述的图处理系统,其特征在于,所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器在执行所述并发查询期间通过以下方式遍历所述属性图:从每个根开始,向每个邻居顶点传送唯一标签,以标记所述子图分片的边集中的已遍历边;使用收件箱和发件箱来缓存所述唯一标签,所述唯一标签发送到所述节点分布式网络中的所述另一节点上的所述邻居子图分片并从所述节点分布式网络中的所述另一节点上的所述邻居子图分片接收。6.根据权利要求1所述的图处理系统,其特征在于,所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器针对稀疏性和高速缓存局部性优化相应的边集。7.根据权利要求1所述的图处理系统,其特征在于,遍历所述属性图包括:遍历(1)在对边集内的所述子图分片进行下一次遍历迭代中要访问的邻接顶点的共享邻居顶点;(2)仅
进行一次所述并发查询的并发查询之间的共享顶点。8.根据权利要求7所述的图处理系统,其特征在于,遍历所述属性图包括:根据邻接顶点的所述共享邻居顶点和在所述边集内的并发查询之间的共享顶点,免去针对一组查询对所述属性图的重复遍历,其中,所述边集被访问一次,并且缓存来自所述边集的数据,以供重复使用。9.根据权利要求1所述的图处理系统,其特征在于,所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器在遍历所述属性图期间利用动态资源分配,并存储所述属性图的前一级和当前一级的值。10.根据权利要求1所述的图处理系统,其特征在于,所述机器可读介质还包括指令,当所述至少一个处理器执行所述指令时,所述至少一个处理器根据顶点标识符将所述属性图的顶点分配到不同的子图分片,并将顶点的所有出边分配到相同的子图分片。11.一种用于对节点分布式网络中实现的属性图进行并发查询的方法,其特征在于,包括:在...

【专利技术属性】
技术研发人员:夏应龙李洲任陈
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1