分布式资源查找方法和系统与流程

文档序号:15049669发布日期:2018-07-27 23:57阅读:150来源:国知局

本公开涉及分布计算领域,特别涉及一种分布式资源查找方法和系统。



背景技术:

当前,计算机的使用效率极低,如何有效利用计算资源已成为一个热点问题。与此同时,计算机的处理能力每18个月翻一番,网络速度每9个月翻一番,利用快速发展的网络技术实现在视频处理时资源的高效利用,其可行性及迫切性已经被广泛认同。对等网络作为一种完全分布的计算模型能有效发布与查找网络资源,从而实现视频处理的资源利用效率。

对等网络按结构的不同可分为结构化对等网络和非结构化对等网络。与非结构化对等网络比较,结构化对等网络具有查找效率高和查找确定性等优点。结构化对等网络的核心是对等网络路由算法,对等网络路由算法的路由效率、可扩展性和容错性对对等网络系统有着重要的价值。

对等网络技术已被应用到各种领域,如文件存贮、事件通知和协同工作等。对等网络的核心是对等网络路由算法,对等网络算法的可扩展性和容错性直接影响到对等网络系统的性能,因此对等网络路由算法的研究具有重要的意义。结构化对等网络路由算法由于其查找可确定性、简单性、分布性和鲁棒性等优点,正越来越成为研究和应用的焦点。

地理异构性问题直接影响对等网络的路由效率,在现有的结构化对等网络中,节点基于标识(id)选择下一路由跳。节点id由哈希算法随机生成(即,这里的id是指哈希id,在本文的描述中,可以简称为id)。对等网络的路由路径由起始节点与目标节点间的应用级路由跳组成,路由过程与ip网络独立,路由时延较高,导致路由效率较低,这样将降低资源查找效率。



技术实现要素:

本公开的实施例解决的一个技术问题是:提供一种资源查找方法,以降低路由时延,提高资源查找效率。

根据本公开实施例的一个方面,提供了一种分布式资源查找方法,包括:在物理网络的每个本地域中选择一个或多个节点作为超级节点;所述超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所能路由到的节点所在对等网络内的地址和所在物理网络内的地址;以及起始节点通过所述超级节点或所述本地域路由信息表路由到目标节点,将查找请求消息发送到所述目标节点,其中所述查找请求消息包含需要查找的资源信息;所述目标节点根据需要查找的资源信息向所述起始节点返回所需要查找的资源的存储地址;以及所述起始节点根据所需要查找的资源的存储地址下载所需要查找的资源。

可选地,所述超级节点在获得本地域路由信息表后,不向该超级节点所在本地域内的所有节点分发所述本地域路由信息表;其中,所述起始节点通过所述超级节点路由到目标节点;或者,所述超级节点在获得本地域路由信息表后,向该超级节点所在本地域内的所有节点分发所述本地域路由信息表,其中,所述起始节点通过所述本地域路由信息表路由到目标节点。

可选地,在所述超级节点不向该超级节点所在本地域内的所有节点分发所述本地域路由信息表的情况下,起始节点通过所述超级节点或所述本地域路由信息表路由到目标节点,将查找请求消息发送到所述目标节点的步骤包括:所述起始节点路由到该起始节点所在本地域内的超级节点,并将查找请求消息发送给所述超级节点查找请求消息;所述超级节点根据所需要查找的资源信息获得所述资源信息的哈希标识,并根据所述资源信息的哈希标识和所述本地域路由信息表查找并路由到在所述本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将所述查找请求消息转发到该中间节点;以及所述中间节点通过其所在本地域内的超级节点查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到所述目标节点,并将所述查找请求消息转发到所述目标节点。

可选地,在所述超级节点向该超级节点所在本地域内的所有节点分发所述本地域路由信息表的情况下,起始节点通过所述超级节点或所述本地域路由信息表路由到目标节点,将查找请求消息发送到所述目标节点的步骤包括:起始节点根据需要查找的资源信息计算所述资源信息的哈希标识,并通过所述资源信息的哈希标识和从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点;以及所述中间节点通过所需要查找的资源信息和从该中间节点所在本地域的超级节点处获得的本地域路由信息表查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到所述目标节点,并将所述查找请求消息转发到所述目标节点。

可选地,所述超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表的步骤包括:所述超级节点汇聚该超级节点所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息,从而获得本地域路由信息表。

可选地,所述起始节点和所述目标节点在同一个本地域内,或者所述起始节点和所述目标节点分别在不同的本地域内。

根据本公开实施例的另一个方面,提供了一种分布式资源查找系统,包括:超级节点、起始节点和目标节点;其中,在物理网络的每个本地域中选择一个或多个节点作为超级节点;所述超级节点用于汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所能路由到的节点所在对等网络内的地址和所在物理网络内的地址;所述起始节点用于通过所述超级节点或所述本地域路由信息表路由到目标节点,将查找请求消息发送到所述目标节点,其中所述查找请求消息包含需要查找的资源信息,以及根据所需要查找的资源的存储地址下载所需要查找的资源;所述目标节点用于根据需要查找的资源信息向所述起始节点返回所需要查找的资源的存储地址。

可选地,所述超级节点用于在获得本地域路由信息表后,不向该超级节点所在本地域内的所有节点分发所述本地域路由信息表;其中,所述起始节点通过所述超级节点路由到目标节点;或者,所述超级节点用于在获得本地域路由信息表后,向该超级节点所在本地域内的所有节点分发所述本地域路由信息表,其中,所述起始节点通过所述本地域路由信息表路由到目标节点。

可选地,在所述超级节点不向该超级节点所在本地域内的所有节点分发所述本地域路由信息表的情况下,所述起始节点用于路由到该起始节点所在本地域内的超级节点,并将查找请求消息发送给所述超级节点;所述超级节点用于根据所需要查找的资源信息获得所述资源信息的哈希标识,并根据所述资源信息的哈希标识和所述本地域路由信息表查找并路由到在所述本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将所述查找请求消息转发到该中间节点;所述分布式资源查找系统还包括:所述中间节点,用于通过其所在本地域内的超级节点查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到所述目标节点,并将所述查找请求消息转发到所述目标节点。

可选地,在所述超级节点向该超级节点所在本地域内的所有节点分发所述本地域路由信息表的情况下,起始节点用于根据需要查找的资源信息计算所述资源信息的哈希标识,并通过所述资源信息的哈希标识和从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点;所述分布式资源查找系统还包括:所述中间节点,用于通过所需要查找的资源信息和从该中间节点所在本地域的超级节点处获得的本地域路由信息表查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到所述目标节点,并将所述查找请求消息转发到所述目标节点。

可选地,所述超级节点用于汇聚该超级节点所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息,从而获得本地域路由信息表。

可选地,所述起始节点和所述目标节点在同一个本地域内,或者所述起始节点和所述目标节点分别在不同的本地域内。

根据本公开实施例的另一个方面,提供了一种分布式资源查找系统,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。

根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。

在上述实施例的方法或系统中,在物理网络的每个本地域中选择一个或多个节点作为超级节点;超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所在对等网络内的地址和所在物理网络内的地址;起始节点通过超级节点或本地域路由信息表路由到目标节点,将查找请求消息发送到目标节点,其中该查找请求消息包含需要查找的资源信息;该目标节点根据需要查找的资源信息向该起始节点返回所需要查找的资源的存储地址;以及起始节点根据所需要查找的资源的存储地址下载所需要查找的资源。由于该分布式资源查找方法综合了对等网络的地址和物理网络的地址,在选择路由路径过程中综合考虑了对等网络路由表和物理网络的邻近性,因此相比现有技术,能够选择时延更短的路由路径,提高资源查找效率。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1是示意性地示出根据一些实施例的对等网络的示意图。

图2是示意性地示出根据一些实施例的在物理网络中的路由路径的示意图。

图3是示意性地示出根据本公开一些实施例的分布式资源查找方法的流程图。

图4是示意性地示出根据本公开一些实施例的分布式资源查找方法的按照super算法获得的路由路径示意图。

图5是示意性地示出根据本公开一些实施例的分布式资源查找方法的分别按照local算法和broaden算法获得的路由路径示意图。

图6是示意性地示出根据本公开一些实施例的分布式资源查找系统的结构图。

图7是示意性地示出根据本公开另一些实施例的分布式资源查找系统的结构图。

图8是示意性地示出根据本公开另一些实施例的分布式资源查找系统的结构图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开的发明人发现,在现有的p2p路由算法中,节点基于节点id选择下一个路由跳,节点id由哈希算法随机生成。p2p路由的路径由起始节点与目标节点间的应用级路由跳组成,而不是由ip级路由跳组成,实际的p2p路由效率是由端到端的路由时延来衡量的,由于对等节点在地理上是分布的,有些应用级路由跳穿越了不同的自治系统,而另一些路由跳仅仅从一个节点到同一局域网内的另一个节点。p2p路由算法由于忽略了节点之间的时延,因此常常选择高时延的路由跳。

在结构化对等网络中,每个节点维护一个路由表,如chord对等节点维护了一个后继节点列表。列表中的每个节点是该节点的后继。节点n的第i路由表项指向id≥n+2i-1的第一个节点s,s=successor(n+2i-1),1≤i≤m(所有的算法都是对2m取模,m为正整数)。

结构化对等网络可以表示为有向图g=(v,e),其中v是对等节点的集合,e有向边的集合。当且仅当节点u有一个指向节点v的表项时,存在有向边(u,v)。对于路由路径(v0,v1,…,vn),对等网络路由路径长度计算如下:

其中:dist是路由路径的长度,|vi-vi-1|是vi-1到vi的距离。

由于对等网络路由表是基于节点id建立的,因此路由路径在id空间是优化的,但在地理空间却是随机的,然而,对等网络的路由效率是以端到端之间的时延来衡量的,因此,基于物理网络的路由更有效率。

图1是示意性地示出根据一些实施例的对等网络的示意图。图2是示意性地示出根据一些实施例的在物理网络中的路由路径的示意图。图1是chord有向图的一个例子,图中的顶点是对等节点,边为节点间的邻接关系,粗实线为chord算法的路由路径。图1中的节点分布在图2的物理网络中。图2中的虚线为chord算法的路由路径,该路径与图1中的粗实线相对应。该路由路径是a→k→d→g→j→h。从图1和图2可以看出,现有的p2p路由频繁地选择高时延的路由路径,资源查找效率较低。

为了解决现有技术的路由效率较低的问题,本公开的实施例提供了一种分布式资源查找方法或系统,从而可以降低路由时延,提高资源查找效率。该分布式资源查找方法在选择路由路径过程中考虑了对等网络路由表和物理网络的邻近性。下面结合附图详细描述根据本公开一些实施例的分布式资源查找方法。

图3是示意性地示出根据本公开一些实施例的分布式资源查找方法的流程图。该分布式资源查找方法可以应用于基于异构环境的分布式视频资源的查找过程。

在步骤s302,在物理网络的每个本地域中选择一个或多个节点作为超级节点。

在步骤s304,超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所能路由到的节点所在对等网络内的地址和所在物理网络内的地址。

例如,每个节点所能路由到的节点所在对等网络内的地址可以是这些路由到的节点的id(例如哈希id),每个节点所能路由到的节点所在物理网络内的地址可以是这些路由到的节点的ip(internetprotocol,网络协议)地址。例如,节点a可以路由到节点i和k,则节点a的路由信息包括:节点i在对等网络内的地址(例如节点i的id)和在物理网络内的地址(例如节点i的ip地址),以及节点k在对等网络内的地址(例如节点k的id)和在物理网络内的地址(例如节点k的ip地址)。

在步骤s306,起始节点通过超级节点或本地域路由信息表路由到目标节点,将查找请求消息发送到该目标节点,其中该查找请求消息包含需要查找的资源信息。

例如,该起始节点和该目标节点可以在同一个本地域内。即,该分布式资源查找方法可以应用在同一个本地域内的节点之间的路由。又例如,该起始节点和该目标节点可以分别在不同的本地域内。即,该分布式资源查找方法可以应用在跨域节点之间的路由。

在一些实施例中,所需要查找的资源信息可以是资源名称或者属性,也可以是资源信息的哈希标识(即hashid)。例如,需要查找的资源可以包括视频资源等。

在步骤s308,目标节点根据需要查找的资源信息向起始节点返回所需要查找的资源的存储地址。

在本公开的实施例中,在查找资源之前,资源可以被发布在某个或某些节点(这样的节点可以称为发布节点)上,而资源的信息可以注册到另外的节点(这样的节点可以称为注册节点)上,该注册节点包含了资源发布的地址,即包含了存储该资源的发布节点的地址(例如该节点的哈希id)。在本公开的实施例中,所路由到的目标节点即为注册节点,在该步骤s308中,目标节点(即注册节点)根据需要查找的资源信息(例如该资源信息的哈希标识)向起始节点返回所需要查找的资源的存储地址(即存储该资源的发布节点的地址)。

在步骤s310,起始节点根据所需要查找的资源的存储地址下载所需要查找的资源。

在该步骤s310中,起始节点从目标节点获得了需要查找的资源的存储地址,然后根据该资源的存储地址从相应的发布节点下载所需要查找的资源。

在上述实施例的方法中,在物理网络的每个本地域中选择一个或多个节点作为超级节点;超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所在对等网络内的地址和所在物理网络内的地址;起始节点通过超级节点或本地域路由信息表路由到目标节点,将查找请求消息发送到目标节点,其中该查找请求消息包含需要查找的资源信息;该目标节点根据需要查找的资源信息向该起始节点返回所需要查找的资源的存储地址;以及起始节点根据所需要查找的资源的存储地址下载所需要查找的资源。由于该分布式资源查找方法综合了对等网络的地址和物理网络的地址,在选择路由路径过程中综合考虑了对等网络路由表和物理网络的邻近性,因此相比现有技术,能够选择时延更短的路由路径,提高资源查找效率。

在本公开的实施例中,上述分布式资源查找方法可以包括下面三种路由算法中的至少一种算法:super算法(超级算法)、local算法(本地算法)和broaden算法(扩展算法)。

在一些实施例中,超级节点在获得本地域路由信息表后,不向该超级节点所在本地域内的所有节点分发本地域路由信息表;其中,起始节点通过超级节点路由到目标节点。这实现了上述分布式资源查找方法的super算法。

在另一些实施例中,超级节点在获得本地域路由信息表后,向该超级节点所在本地域内的所有节点分发本地域路由信息表,其中,起始节点通过本地域路由信息表路由到目标节点。这实现了上述分布式资源查找方法的local算法或broaden算法。

下面分别详细描述本公开实施例的分布式资源查找方法的上述三种算法。

在一些实施例中,在超级节点不向该超级节点所在本地域内的所有节点分发本地域路由信息表的情况下,上述步骤s306可以包括:起始节点路由到该起始节点所在本地域内的超级节点,并将查找请求消息发送给该超级节点;该超级节点根据所需要查找的资源信息获得所述资源信息的哈希标识,并根据所述资源信息的哈希标识和本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将该查找请求消息转发到该中间节点;以及该中间节点通过其所在本地域内的超级节点查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到目标节点,并将所述查找请求消息转发到所述目标节点。

在上述实施例中,提供了上述分布式资源查找方法的super算法。在该super算法中,超级节点在获得本地域路由信息表后,并不向其所在本地域内的所有节点分发该本地域路由信息表;起始节点先路由到其所在本地域内的超级节点,并将查找请求消息发送给该超级节点;该超级节点根据所需要查找的资源信息获得所述资源信息的哈希标识,并根据所述资源信息的哈希标识和本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将该查找请求消息转发到该中间节点(例如,该中间节点可以是下一个本地域内的节点);如果该中间节点不是目标节点,则在下一路由跳中,该中间节点继续路由到该中间节点所在本地域内的超级节点,并将查找请求消息转发到该超级节点;该超级节点根据需要查找的资源信息的哈希标识和本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的下一路由跳的中间节点;这样依次查找并路由,直到路由到目标节点,并将所述查找请求消息转发到所述目标节点。

在一些实施例中,在超级节点向该超级节点所在本地域内的所有节点分发该本地域路由信息表的情况下,上述步骤s306可以包括:起始节点根据需要查找的资源信息计算所述资源信息的哈希标识,并通过所述资源信息的哈希标识和从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点;以及该中间节点通过所需要查找的资源信息和从该中间节点所在本地域的超级节点处获得的本地域路由信息表查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到目标节点,并将查找请求消息转发到该目标节点。

在上述实施例中,提供了上述分布式资源查找方法的local算法。在该local算法中,超级节点在获得本地域路由信息表后,向其所在本地域内的所有节点分发该本地域路由信息表;起始节点根据需要查找的资源信息计算所述资源信息的哈希标识,并通过所述资源信息的哈希标识和从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点(例如,该中间节点是下一个本地域内的节点);如果该中间节点不是目标节点,则该中间节点继续根据需要查找的资源信息获得所述资源信息的哈希标识,并根据其所获得的本地域路由信息表和所述资源信息的哈希标识查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的下一路由跳的中间节点;这样依次路由,直到路由到目标节点,并将查找请求消息转发到该目标节点。

需要说明的是,在上面超级节点或中间节点根据资源信息获得资源信息的哈希标识的一些步骤中,如果查找请求消息所包含的需要查找的资源信息包括该资源信息的哈希标识,则可以直接获得该资源信息的哈希标识;如果查找请求消息所包含的需要查找的资源信息不包括该资源信息的哈希标识,而是包括该资源信息的关键字(例如名称或属性等),则超级节点或中间节点可以对该资源信息的关键字进行哈希计算从而得到该资源信息的哈希标识。

在上述super算法和local算法中,超级节点所汇聚的其所在的本地域内的每个节点的路由信息是本级节点(即当前节点)的路由信息,并不汇聚每个节点的下一级节点的路由信息(这里,下一级节指的是当前节点所路由到的节点)。例如,在super算法和local算法中,以图2中的节点e作为超级节点,则超级节点e汇聚节点a~e(节点a~e作为本级节点)的路由信息,并不汇聚例如节点a所路由到的下一级节点i或k的路由信息。而broaden算法与local算法的区别在于,在broaden算法中,超级节点汇聚其所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息从而获得本地域路由信息表。例如,在broaden算法中,以图2中的节点e作为超级节点,则超级节点e除了汇聚节点a~e(节点a~e作为本级节点)的路由信息,还需要汇聚例如节点a所路由到的下一级节点i或k的路由信息。

在一些实施例中,上述步骤s304可以包括:超级节点汇聚该超级节点所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息,从而获得本地域路由信息表。

在本公开的一些实施例中,提供了上述分布式资源查找方法的broaden算法。在该broaden算法中,超级节点汇聚其所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息从而获得本地域路由信息表;超级节点在获得本地域路由信息表后,向其所在本地域内的所有节点分发该本地域路由信息表;起始节点根据需要查找的资源信息计算所述资源信息的哈希标识,并通过从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点(例如,该中间节点是下一个本地域内的节点);如果该中间节点不是目标节点,则该中间节点继续根据需要查找的资源信息获得所述资源信息的哈希标识,并根据其所获得的本地域路由信息表和目标节点信息查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的下一路由跳的中间节点;这样依次路由,直到路由到目标节点,并将查找请求消息转发到该目标节点。

下面通过矩阵的形式描述上述三种分布式资源查找方法。在描述上述分布式资源查找方法之前,我们先将chord对等网络和聚类后的物理网络描述为连接矩阵。

(i)对等网络连接矩阵

chord对等网络可表示为有向图g=(v,e),v是对等节点的集合,e有向边的集合。图(v,e)的连接矩阵表示为如下:

r={r1,r2,...,ri,...,rn}ti=1,...,n(2)

向量ri由节点vi,vi∈v维护。向量ri包含n个表项,可由式(3)表示。

ri={ri1,ri2,...,rij,...,rin}i=1,...,n;j=1,...,n(3)

其中

e为有向图的边集。

例如,图1所示的示例性的对等网络可以由式(4)给出:

(ii)物理网络连接矩阵

在该分布式资源查找方法中,物理邻近及属于同一本地域的节点被聚为一类,聚类内有一个或多个超级节点(即一个本地域内有一个或多个超级节点),超级节点指向聚类(即本地域)内所有的客户节点(这里的客户节点指的是除超级节点之外的节点)。与此同时,每个客户节点指向超级节点。因此,聚类后的物理网络定义如下:

对于一个对等网络有向图g=(v,e),存在v1,v2,…,vk,满足:

(i)vi∩vj=φ,1<i,j≤k,

(ii)则vl,vm物理邻近。

(a)我们称对等网络所在的物理网络为聚类物理网络。

(b)vi也可表示为v(vl)。

(c)vi内存在一个或多个超级节点。超级节点维护客户节点信息。vi的客户节点与超级节点相关联。

(d)客户节点的路由表表示为ti。

聚类物理网络由式(5)给出:

t={t1,t2,...,ti,...,tn}ti=1,...,n(5)

ti进一步由式(6)给出:

ti={ti1,ti2,...,tij,...,tin}i=1,...,n;j=1,...,n(6)

其中:

例如,图2中物理网络的连接矩阵可由式(7)给出:

由式(7)的t可知,图2所示的物理网络有三个邻近节点的聚类。这三个聚类分别是:v1={a,b,c,d,e},v2={f,g,h,i},v3={j,k}。矩阵t2表示聚类内节点之间实现全连接,即每个节点与聚类内其他节点互为邻居。t2ij为矩阵t2中第i行,第j列的元素,t2ij值由式(8)给出:

式(8)中的加法运算和乘法运算是布尔运算。对图2所示的物理网络来说,t2可以表示为:

令pc=r,ps=r+t,pl=r+t2,pb=r×t2pc,ij、ps,ij、pl,ij、pb,ij分别为矩阵pc、ps、pl、pb的第i行,第j列元素值。

本公开实施例的分布式资源查找方法组合了超级对等网络路由算法和邻近路由算法两者的优点。两种算法的组合以矩阵r和t的组合关系体现。r和t以何种方式组合很大程度上决定了本公开实施例的路由算法的路由效率。下面分别详细介绍本公开实施例的三种路由算法,即super算法、local算法和broaden算法。

super算法:该算法的连接矩阵为ps=r+t。客户节点(作为起始节点)将查找请求提交给超级节点,并通过超级节点维护的客户节点列表ts加速路由过程。该算法的伪代码如下所示:

上述super算法的第1~2行伪代码用于判断是否找到目标节点,如果没有找到目标节点,第4~5行伪代码选择下一路由跳vk,满足key(关键字)≤节点id(vk),且节点id(vk)在所有的邻居节点中最接近key。例如该关键字key可以是需要查找的资源信息。第6行伪代码将查找请求提交给超级节点vs。第7~8行伪代码用于查找节点vl,该节点vl的id在超级节点所维护的id列表中最接近key,key≤节点id(vl)。第9行伪代码比较vk和vl,两者较接近key的节点为下一路由跳节点。

super算法有效地提高了路由效率。由于客户节点只需维护对等网络路由表和指向超级节点的指针,该算法具有轻量级且易于实现的优点。

local算法:算法的连接矩阵为pl=r+t2。每个客户节点指向聚类(即本地域)内的其他对等节点。与super算法相比,local较好地实现了负载平衡,且查找请求不需要提交给超级节点。下面是local算法路由过程的伪代码:

上述local算法的第1~2行伪代码用于判断是否找到目标节点。如果没有找到目标节点,则第4~5行伪代码用于选择下一路由跳vk,满足key≤节点id(vk),且vk在所有邻居节点中最接近key。

broaden算法:该算法的连接矩阵为pb=r×t2。该broaden算法的伪代码如下:

上面可以看出,该broaden算法的伪代码与local算法的伪代码基本相似。上述broaden算法的第1~2行伪代码用于判断是否找到目标节点。如果没有找到目标节点,则第4~5行伪代码用于选择下一路由跳vk,满足key≤节点id(vk),且vk在所有邻居节点中最接近key。

在broaden算法中,每个节点指向同一组的其他节点及其邻居节点。因为每个节点的邻居数要比super算法和local算法大得多,因此broaden算法的路由效率高于super算法和local算法。broaden算法的路由过程与local算法的路由过程相似,但broaden算法的连接矩阵与local算法的连接矩阵不同。

图4是示意性地示出根据本公开一些实施例的分布式资源查找方法的按照super算法获得的路由路径示意图。图4所示的路由路径的场景是:节点在物理网络上的分布可以如图2所示,节点间维护图1所示的对等网络拓扑,且节点a要查找节点h。图4的实线和虚线分别是super算法和现有技术算法(例如chord算法)的路由路径。图4中示出了本地域a、b、c和网络传输域d、e。图4中的大节点为超级节点(例如节点e、i和k),小节点为客户节点(例如节点a、b、c、d、f、g、h和j)。super算法的路由步聚如下:

(1)客户节点a作为起始节点查找chord路由表ra并创建消息msg(keyh),其中keyh为需要查找的资源信息的关键字。这一步骤对应于super算法的第4~6行伪代码。

(2)起始节点a将消息msg(keyh)路由到超级节点e。

(3)超级节点e根据keyh计算得到需要查找的资源信息的哈希id,在客户节点列表te中查找id与keyh的哈希id最近的节点。在给定的例子中,中间节点c的id与keyh的哈希id最近。这一步骤对应于super算法的第7~9行伪代码。

(4)节点e将消息路由到c。c继续执行第(1)步。这一步与super算法的第10行伪代码对应。

由于超级节点e汇聚了本地域a内的所有节点a~e的路由信息,可以由超级节点根据需要查找的资源信息的哈希标识和本地域路由信息表(包括chord路由表ra和客户节点列表te)查找并路由到在本地域路由信息表内的距离需要查找的资源信息的哈希标识最近的中间节点c,并将查找请求消息转发到该中间节点c。

以上步骤重复执行,直到找到目标节点h,因此super算法的路由路径为a→e→c→f→i→h。该路径如图4的实线所示。需要说明的是,中间节点c在路由时不再路由到超级节点e,而是路由到中间节点f。与现有技术的路由路径相比,本公开实施例的分布式资源查找方法的super算法的能够选择较低时延的路由路径,从而提高了路由效率,进而提供资源查找效率。

图5是示意性地示出根据本公开一些实施例的分布式资源查找方法的分别按照local算法和broaden算法获得的路由路径示意图。如图5所示的实线和虚线分别为local算法和broaden算法的路由路径。

如图5所示,在local算法中,由于聚类(即本地域)内每个节点指向聚类内的其他节点,客户节点不需要将查找请求路由到超级节点,因此local算法的路由效率高于super算法。local算法的路由步骤如下:

(1)起始节点a在从超级节点e获得的本地域路由信息表(例如包括路由表ra和ta)中查找与资源信息的关键字keyh的哈希id最接近的id。其中,中间节点c的节点id与keyh的哈希id最接近。这一步骤与local算法的第4~5行伪代码相对应。

(2)起始节点a将查找请求路由到中间节点c。这一步与local算法的第6行伪代码对应。

(3)中间节点c继续执行(1)。

以上步骤重复执行,直到找到目标节点h。local算法的路由路径为:a→c→f→h。该路由路径如图5的实线所示。

broaden算法的路由过程与local算法相似。broaden算法的邻居节点数比super算法和local算法大得多,因此broaden算法有更好的路由效率。由图1可知,尽管节点b距离keyh较远,但rb中有一个表项指向节点h(参见图1)。由于节点a维护了本地域内其他节点路由表,因此也包括节点b的路由表。查找请求从起始节点a直接路由到包含所需要查找的资源信息的目标节点h,因此,broaden算法的路由路径为a→h,该路由路径如图5的虚线所示。

图6是示意性地示出根据本公开一些实施例的分布式资源查找系统的结构图。如图6所示,该分布式资源查找系统可以应用于基于异构环境的分布式视频资源的查找过程。该分布式资源查找系统可以包括超级节点602、起始节点604和目标节点608。该起始节点604和该目标节点608可以在同一个本地域内,或者该起始节点604和该目标节点608可以分别在不同的本地域内。

在物理网络的每个本地域中选择一个或多个节点作为超级节点。该超级节点602可以用于汇聚其所在的本地域内的每个节点(包括超级节点自身和其他的客户节点)的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所能路由到的节点所在对等网络内的地址和所在物理网络内的地址。

该起始节点604可以用于通过超级节点或本地域路由信息表路由到目标节点,将查找请求消息发送到该目标节点,其中该查找请求消息包含需要查找的资源信息,以及根据所需要查找的资源的存储地址下载所需要查找的资源。

该目标节点608可以用于根据需要查找的资源信息向起始节点604返回所需要查找的资源的存储地址。

在上述实施例的系统中,超级节点汇聚其所在的本地域内的每个节点的路由信息以获得本地域路由信息表,其中,每个节点的路由信息包括每个节点所在对等网络内的地址和所在物理网络内的地址;起始节点通过超级节点或本地域路由信息表路由到目标节点,将查找请求消息发送到目标节点,其中该查找请求消息包含需要查找的资源信息;该目标节点根据需要查找的资源信息向该起始节点返回所需要查找的资源的存储地址;以及起始节点根据所需要查找的资源的存储地址下载所需要查找的资源。由于该分布式资源查找系统综合了对等网络的地址和物理网络的地址,在选择路由路径过程中综合考虑了对等网络路由表和物理网络的邻近性,因此相比现有技术,能够选择时延更短的路由路径,提高资源查找效率。

在一些实施例中,超级节点602可以用于在获得本地域路由信息表后,不向该超级节点所在本地域内的所有节点分发本地域路由信息表。起始节点可以通过该超级节点路由到目标节点。

在另一些实施例中,该超级节点602可以用于在获得本地域路由信息表后,向该超级节点所在本地域内的所有节点分发本地域路由信息表。起始节点可以通过该本地域路由信息表路由到目标节点。

在一些实施例中,在超级节点不向该超级节点所在本地域内的所有节点分发本地域路由信息表的情况下,起始节点可以用于路由到该起始节点所在本地域内的超级节点,并将查找请求消息发送给该超级节点。该超级节点可以用于根据所需要查找的资源信息获得所述资源信息的哈希标识,并根据该资源信息的哈希标识和本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将该查找请求消息转发到该中间节点。

在一些实施例中,如图6所示,该分布式资源查找系统还可以包括:中间节点606,可以用于通过其所在本地域内的超级节点查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到目标节点608,并将查找请求消息转发到该目标节点。

在一些实施例中,在超级节点向该超级节点所在本地域内的所有节点分发本地域路由信息表的情况下,起始节点可以用于根据需要查找的资源信息计算所述资源信息的哈希标识,并通过从超级节点处获得的本地域路由信息表查找并路由到在该本地域路由信息表内的距离所述资源信息的哈希标识最近的中间节点,并将查找请求消息发送给该中间节点。

在一些实施例中,该分布式资源查找系统还可以包括:中间节点,可以用于通过所需要查找的资源信息和从该中间节点所在本地域的超级节点处获得的本地域路由信息表查找并路由到下一路由跳的中间节点,其中,通过节点之间依次查找并路由到下一路由跳的中间节点,直到路由到目标节点,并将查找请求消息转发到该目标节点。

在一些实施例中,超级节点602可以用于汇聚该超级节点所在的本地域内的每个节点的路由信息以及每个节点的下一级节点的路由信息,从而获得本地域路由信息表。

图7是示意性地示出根据本公开另一些实施例的分布式资源查找系统的结构图。该分布式资源查找系统包括存储器710和处理器720。其中:

存储器710可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图3所对应实施例中的指令。在一些实施例中,每个节点中均可以设置该存储器710和处理器720。

处理器720耦接至存储器710,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器720用于执行存储器中存储的指令,从而能够降低路由时延,提高资源查找效率。

在一个实施例中,还可以如图8所示,该分布式资源查找系统800包括存储器810和处理器820。处理器820通过bus总线830耦合至存储器810。该分布式资源查找系统800还可以通过存储接口840连接至外部存储装置850以便调用外部数据,还可以通过网络接口860连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。在一些实施例中,每个节点中可以设置该存储器810、处理器820、bus总线830、存储接口840、外部存储装置850和网络接口860。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而能够降低路由时延,提高资源查找效率。

在另一个实施例中,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图3所对应实施例中的方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1