图数据搜索系统、方法和设备的制造方法

文档序号:9326876阅读:132来源:国知局
图数据搜索系统、方法和设备的制造方法
【技术领域】
[0001]本发明实施例涉及信息技术领域,并且更具体地,涉及图数据搜索系统、方法和设备。
【背景技术】
[0002]很多现实中的计算问题都会涉及到大规模的图。网页链接关系和各种社交关系是这种大规模图的最典型的例子。这些图可能具有大量的顶点以及边。如何对图进行高效率的搜索以获取所需的内容是一项亟待解决的问题。
[0003]谷歌(Google)提出的Pregel技术是一种效率较高的图搜索机制。Pregel技术是通过主从结构的系统实现的。在需要对一个特定关系(即查询计划)进行搜索时,主节点(Master)会将保存的完整的图数据进行分区,将完整的图划分为多个子图,并将子图发送给多个从节点(Worker)。每个从节点可以接收一个或多个子图。节点负责维护分配给自己的子图的顶点(vertex)和边(edge)的状态信息。节点为每个子图分配一个线程。该线程根据计算任务对每一个处于激活(active)状态的顶点进行计算,计算完成后,根据边的链接信息,通过消息传递方式将计算结果传递给其它相邻的从节点,直到没有激活状态顶点或者迭代次数达到指定数目。
[0004]Pregel中,Master和Worker都是计算站点,Master负责调度Worker进行计算。因此,Pregel存在以下问题:消息传播和计算过程中的大量步骤都是串行化步骤,即必须在一个步骤完成之后再执行下一个步骤;消息传递数量以及总体并行化运行时间等方面很难获得理论上界;消息传递开销会影响图数据搜索的性能。

【发明内容】

[0005]本发明实施例提供图数据搜索系统、方法和设备,提高图数据搜索的效率与可扩展性。
[0006]第一方面,提供了一种图数据搜索系统,该系统包括一个主计算站点和M个子计算站点,该M个子计算站点中每个子计算站点均存储总图数据中的部分图数据,该部分图数据包括多个节点和用于连接该多个节点中的两个节点之间的边,其中M为大于I的正整数;其中,该主计算站点用于将查询计划发送给该M个子计算站点中的N个子计算站点,其中该查询计划采用图仿真的查询语义,N为小于或等于M的正整数;该N个子计算站点中的第一子计算站点用于接收该主计算站点发送的该查询计划;该第一子计算站点还用于根据该查询计划,对该第一子计算站点存储的第一部分图数据进行迭代查询,以确定该第一部分图数据包括的多个节点中与该查询计划相匹配的至少一个匹配节点,该至少一个匹配节点组成该第一子计算站点的本地匹配节点集合;该第一子计算站点还用于向该主计算节点发送该第一子计算节点的本地匹配节点集合;该主计算站点还用于接收该N个子计算站点中的每个子计算节点发送的该每个子计算节点的本地匹配节点集合,并且根据该N个子计算站点中的每个子计算节点的本地匹配节点集合,确定对应于该查询计划的匹配结果。
[0007]结合第一方面,在第一种可能的实现方式中,该第一子计算站点还用于确定该第一部分图数据中包括的与该查询计划相关的第一节点,其中,该第一节点与第二部分图数据中包括的第二节点之间具有跨站点边,该N个计算子节点中的第二子节点存储有该第二部分图数据;该第一子计算站点还用于向该第二子计算站点发送第一匹配指示消息,该第一匹配指示消息用于指示该第一节点与该查询计划的匹配结果。
[0008]结合上述可能的实现方式,在第二种可能的实现方式中,该第一子计算站点还用于接收该N个子计算节点中的第三子计算站点发送的第二匹配指示消息,该第二匹配指示消息用于指示第三站点与该查询计划的匹配结果,其中,该第三子计算节点存储有第三部分图数据,该第三部分图数据包括的该第三节点与该第一部分图数据中包括的第四节点之间具有跨站点边;该第一子计算站点还用于根据该第二匹配指示消息和该查询计划,确定该第四节点是否与该查询计划匹配。
[0009]结合上述可能的实现方式,在第三种可能的实现方式中,该主计算站点还用于根据该M个子计算站点的属性,从该M个子计算站点中确定该N个子计算站点。
[0010]结合上述可能的实现方式,在第四种可能的实现方式中,该第一子计算站点根据该查询计划,对该第一子计算站点存储的第一部分图数据进行迭代查询,包括:根据该查询计划,对该第一部分图数据进行查询,以确定该第一部分图数据中包括的多个节点中与该查询计划匹配的至少一个初始匹配节点,该至少一个初始匹配节点组成该本地匹配节点集合;根据查询计划,再次对该第一部分图数据进行查询,以确定该多个节点中是否存在与该查询计划匹配的新增匹配节点;若确定该多个节点中存在与该查询计划匹配的新增匹配节点时,将该新增匹配节点添加至该本地匹配节点集合,并且再次对该第一部分图数据进行查询,以确定该多个节点中是否包括与该查询计划匹配的新增匹配节点,直到确定该多个节点中不存在新增匹配节点为止。
[0011]结合上述可能的实现方式,在第五种可能的实现方式中,该第一子计算站点还用于在确定本地匹配节点集合之后,向该主计算站点发送终止消息,该终止消息用于指示该第一子计算站点完成对该查询计划的查询;该主计算节点还用于接收该N个子计算节点中的每个子计算节点发送的终止消息,并在接收到该N个子计算节点中的每个子计算节点发送的终止消息之后,根据该N个子计算站点中的每个子计算节点的本地匹配节点集合,确定对应于该查询计划的匹配结果。
[0012]第二方面,提供了一种图数据搜索方法,应用于图数据搜索系统,该图数据搜索系统包括一个主计算站点和M个子计算站点,该M个子计算站点中每个子计算站点均存储总图数据中的部分图数据,该部分图数据包括多个节点和用于连接该多个节点中的两个节点之间的边,其中M为大于I的正整数,该方法包括:该主计算站点确定查询计划,其中该查询计划采用图仿真的查询语义;将该查询计划发送至该M个子计算站点中的N个子计算站点,其中M为大于I的正整数,N为小于或等于M的正整数;接收该N个子计算站点中的每个子计算站点发送的该每个子计算站点的本地匹配节点集合;根据该N个子计算站点中的每个子计算节点的本地匹配节点集合,确定对应于该查询计划的匹配结果。
[0013]结合第二方面,在第一种可能的实现方式中,在该根据该N个子计算站点中的每个子计算节点的本地匹配节点集合,确定对应于该查询计划的匹配结果之前,该方法还包括:接收该N个子计算站点中的每个子计算站点发送的终止消息,该终止消息用于指示该终止消息对应的子计算站点完成对该查询计划的查询。
[0014]结合上述可能的实现方式,在第二种可能的实现方式中,在该将该查询计划发送给图数据搜索系统中的M个子计算站点中的N个子计算站点之前,该方法还包括:根据该M个子计算站点的属性,从该M个子计算站点中确定N个子计算站点。
[0015]第三方面,提供了另一种图数据搜索方法,应用于图数据搜索系统,该图数据搜索系统包括一个主计算站点和M个子计算站点,该M个子计算站点中每个子计算站点均存储总图数据中的部分图数据,该部分图数据包括多个节点和用于连接该多个节点中的两个节点之间的边,其中M为大于I的正整数,该方法包括:第一子计算站点接收主计算站点发送的查询计划,其中,该M个子计算站点包括该第一子计算站点;根据该查询计划,对存储的第一部分图数据进行迭代查询,以确定该第一部分图数据包括的多个节点中与该查询计划相匹配的至少一个匹配节点,该至少一个匹配节点组成该本地匹配节点集合;将该本地匹配节点集合发送至该主计算站点。
[0016]结合第三方面,在第一种可能的实现方式中,该方法还包括:确定该第一部分图数据中包括的与该查询计划相关的第一节点,其中,该第一节点与第二部分图数据中包括的第二节点之间具有跨站点边,该N个计算子节点中的第二子节点存储有该第二部分图数据;向该第二子计算站点发送第一匹配指示消息,该第一匹配指示消息用于指示该第一节点与该查询计划的匹配结果。
[0017]结合上述可能的实现方式,在第二种可能的实现方式中,该方法还包括:接收该N个子计算节点中的第三子计算站点发送的第二匹配指示消息,该第二匹配指示消息用于指示第三站点与该查询计划的匹配结果,其中,该第三子计算节点存储有第三部分图数据,该第三部分图数据包括的该第三节点与该第一部分图数据中包括的第四节点之间具有跨站点边;根据该第二匹配指示消息和该查询计划,确定该第四节点是否与该查询计划匹配。
[0018]结合上述可能的实现方式,在第三种可能的实现方式中,该根据该查询计划,对该第一子计算站点存储的第一部分图数据进行迭代查询,包括:根据该查询计划,对该第一部分图数据进行查询,以确定该第一部分图数据中包括的多个节点中与该查询计划匹配的至少一个初始匹配节点,该至少一个初始匹配节点组成该本地匹配节点集合;根据查询计划,再次对该第一部分图数据进行查询,以确定该多个节点中是否存在与该查询计划匹配的新增匹配节点;若确定该多个节点中存在与该查询计划匹配的新增匹配节点时,将该新增匹配节点添加至该本地匹配节点集合,并且再次对该第一部分图数据进行查询,以确定该多个节点中是否包括与该查询计划匹配的新增匹配节点,直到确定该多个节点中不存在新增匹配节点为止。
[0019]结合上述可能的实现方式,在第四种可能的实现方式中,在该对存储的第一部分图数据进行迭代查询之后,该方法还包括:向该主计算站点发送终止消息,该终止消息用于指示该第一子计算站点完成对该查询计划的查询。
[0020]第四方面,提供了一种图数据搜索设备,应用于图数据搜索系统,该图数据搜索系统包括一个主计算站点和M个子计算站点,该M个子计算站点中每个子计算站点均存储总图数据中的部分图数据,该部分图数据包括多个节点和用于连接该多个节点中的两个节点之间的边,其中M为大于I的正整数,该设备包括:确定单元,用于确定查询计划,其中该查询计划采用图仿真的查询语义;发送单元,用于将该确定单元确定的该查询计划发送至该M个子计算站点中的N个子计算站点,其中M为大于I的正整数,N为小于或等于M的正整数;接收单元,用于接收该N个子计算站点中的每个子计算站点发送的该每个子计算站点的本地匹配节点集合;该确定单元还用于根据该接收单元接收的该N个子计算站点中的每个子计算节点的本地匹配节点集合,确定对应于该查询计划的匹配结果。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1