一种结构化p2p系统中的延迟动态优化的方法

文档序号:7760046阅读:850来源:国知局

专利名称::一种结构化p2p系统中的延迟动态优化的方法
技术领域
:本发明涉及一种结构化P2P系统实现的关键技术,特别涉及一种结构化P2PChord网络动态路由延迟优化的方法。
背景技术
:近年来,基于对等网络(P2P)的系统得到很大发展。相对于传统C/S模式,P2P系统充分发挥以往被忽略的众多个人计算机(Peer节点)的作用,降低了运行成本,在特定服务上具有巨大的优势。根据其组织方式的不同,P2P系统可分为结构化和非结构化两种。结构化的P2P系统则更为适合一些需要高效、可靠、以及分布式准确定位数据的应用,目前已经提出了很多结构化P2P网络,如Chord,CAN,Tapestry,Pastry等,其原理是在底层物理节点的基础上建立基于DHT(DistributedHashTable)的叠加层覆盖网络,保障定位在有限跳数内完成,从而实现高效的资源查找在非结构化P2P系统中,参与节点利用Gossip协议构造随机拓扑结构,形成一个多对多的数据传输模型。这种组织形式具有易于实现和便于维护的优点,目前几乎所有大规模部署的商业P2P流媒体系统都采用这种方式。结构化P2P系统中资源定位是一个不断路由查找的过程,因此路由表的效率成为影响P2P系统性能的重要因素。然而,由于P2P覆盖网络拓扑的构建没有考虑底层物理网络的实际情况,产生了覆盖网络和底层物理网络不匹配的问题,导致节点查找的延迟和开销的增加。Chord通过使用一致性哈希方式进行键值与节点的映射,使得发现指定对象只需要维护O(IogN)长度的路由表。Chord这个经典的路由机制提出时对查找延迟并没有过多考虑,所以随着研究的深入,一些新的改进算法被提出。如,实现动态路径查找的方法,延迟敏感的双向查询和节点分组的方法等。但是在结构化P2P系统中,各种路由延迟优化方法的过程都可能带来了额外的负载,如果额外负载较大,那么对象选择的延迟估测将不可靠。所以对于延迟优化方法性能的进行分析也是至关重要的。在原Chord协议中,节点η在执行查找时,首先在finger中找到距待查键值k最近的节点n’,然后再在η’继续查找k,整个查找过程以递归的形式进行。查找过程的耗时严格依赖于查找路径上的节点,即便是其中只有一个节点延迟较高(例如在其他国家),整个查找过程性能也会变得缓慢。该查找方法没有考虑到可能存在潜在的其它查找路径,这些潜在路径虽然查找次数更多,但是存在查找总体时耗较小的情况。
发明内容有鉴于此,本发明的主要目的在于提供一种Chord动态路由延迟优化方法OChord,OChord能够有效减小资源查找的延迟,路由效率优于原Chord协议,提高了路由效率,并且动态路径查找增加的额外负载为常数,可忽略不计。为了达到上述目的,本发明的技术方案是这样实现的在Chord查找过程中设计实现一种基于对象选择的Chord动态延迟优化机制OChord,该方法中利用对象选择机制发掘潜在更优查找路径,从而提高了路由查找的效率。节点在执行查找时以迭代方式进行,每个查找分为若干步骤,每一步需要其他节点协作完成子查找,并将子查找结果返回执行查找的节点。如果将一次子查找操作看作1“跳”,那么节点η查找键值k时,a、首先节点η从自己finger中找出k之前的所有节点;b、计算这些节点完成查找k所需的跳数,利用节点间的网络坐标预测延迟,估算平均每跳所需时间Th。p;C、分别估算选择这些节点作为下一跳执行查找k的总耗时Tm,;d、最后选择最小耗时的节点最为完成下一跳的节点,依次完成整个查找过程;e、节点在执行查找的每一步进行对象选择,选择总体延迟小的查找路径。步骤c中估算选择这些节点作为下一跳执行查找k的总耗时Tnn,,如上述所说,选择总体延迟小的查找路径,延迟估测方式如下C(Ui)=dt+dXHinJH(bi)=ones((id-ni)>>(160_log2N))其中,C(Hi)为估测η节点执行查找键值id总耗时,Cli为η节点与η,节点间的网络坐标预测延迟,5是平均每跳执行延迟,H(Iii)为估测Iii节点查找id键值所需跳数,ones函数计算数字的二进制中’1’的个数,符号>>为二进制右移运算。步骤d完成整个查找过程,动态延迟优化方法OChord的查找时间克表示为T(OChord)=排序之前需要计算各节点的时间C(Si)+排序时间排序方式可以是快速排序,能够在0(nlogη)的时间内完成,显然,对于元素个数η<160的s排序所需时间很小,可以忽略不计。排序之前需要计算各节点的计算时间C(Si)由两部分构成。计算IogN所需时间t。和ones()执行时间t。步骤e中节点在执行查找的每一步进行对象选择,方法如下=OChord与Chord查找区别在于动态路径选择下一跳时,不一定选择距待查ID最近的节点,而是使用Sort_by_IatencyO对满足条件的所有finger集合s按照预测的延迟排序,选择延迟最小者。本发明提供的结构化P2P网络中动态延迟优化方法OChord,具有以下优点1)本发明通过采用递归方式调用对象选择机制来减小Chord路由的延迟,并利用网络坐标来预测节点间的延迟,并通过实际测量延迟数据进行网络坐标分布式计算修正。2)在动态延迟优化方法OChord分布式网络坐标预测得到各节点之间的延迟,然后通过对象选择机制调用相对延迟较小的节点降低了Chord查找的延迟,性能分析中证明了该方法时间复杂度为常数,并没有带来额外开销。最后的实验表明提出方法的路由效率优于原Chord协议。图1为基于对象选择的潜在更优查找路径的图示具体实施例方式下面结合附图及本发明实施例对本发明的方法进一步详细的说明。本实施例中,给出了一种基于对象选择的潜在更优查找路径情况,节点A,B在X,Y之间,待查目标节点Y在标识符空间上距B较A近,X与A,B节点之间的延迟Txa=IOms,Txb=IOOms0假定P2P系统启动后会记录各节点之间的历史实际通信耗时,并且计算每一跳所需的平均时间Th。p,用NumHopsm表示标识符为M的节点查找键值N总共执行的跳数。使用这两条信息,X节点查找Y时可以对查找路径X-A-Y,X-B-Y的延迟进行比较。如果满足ThopXNumHopsAY+TM<ThopXNumHopsBY+Tffi则选择X-A-Y,否则选择X-B-Y,Chord查找总是使用后者。节点在执行查找的每一步进行对象选择,如上述所说,选择总体延迟小的查找路径,延迟估测方式如下C(η:)=+ΧH(nJHfci)=ones((id-ni)>>(160_log2N))其中,C(Hi)为估测η节点执行查找键值id总耗时,Cli为η节点与η,节点间的网络坐标预测延迟,^是平均每跳执行延迟,H(Iii)为估测Iii节点查找id键值所需跳数,ones函数计算数字的二进制中’1’的个数,符号>>为二进制右移运算,。H(Iii)的证明由一致性哈希函数的性质可知节点标识符是随机分布在标识符空间(对SHA-l,m=160以下默认SHA-1),那么在有N个节点的Chord环中,节点标识符近似均分标识符空间,即任意节点和其后继节点的标识符差值为d=差值d最高N,有效二进制位r=log2d=160-log2N。因此,在标识符为η的节点上执行查找id时η与id之间的节点数为=—A)。>>为二进制右移运算,(id-ni)为modulo216°减法。Chord协议finger表中节点距离以2为倍数递增,故φ的二进制形式中的每一个’1’即为一跳,所以整个查找所需跳数为φ中’1’的个数。使用对象选择的查找算法为//asknodeηforalistofnodesinitsfingerstableor//successorlistthatcloselyprecedekeyn.closest_preceding_nodes(key)1.return{n,e{fingersUsuccessors}s.t.n'.ide(n.id,key)}//asknodeηtofindthesuccessorofkeyn.lookup(key)l.n,=n;2.while(n,.id!=key)3.s[1..k]=n,·closest_preceding_nodes(key);4.sort_by_latency(s[l..k]);5·η,=min_latency_alive_node(s[1..k]);6.returnη,;节点η执行lookup(key)时,η’初始时设为本节点η,η调用η’上的RPC服务closest_preceding_nodes(key),获取满足条件的finger集合s,对s中的每一个元素Si,使用SOrt_by_latenCy(s[1..k])采用上述延迟预测方法计算C(Si),最后对s按照C(Si)进行排序。min_latenCy_alive_node(S[l..k])从排好序的s中选择C(Si)最小的存活节点来继续上述过程,直到找到key为止。动态路径查找仍旧使用Chord协议finger表,OChord与Chord查找区别在于动态路径选择下一跳时,不一定选择距待查ID最近的节点,而是使用SOrt_by_latenCy()对满足条件的所有finger集合s按照预测的延迟排序,选择延迟最小者。OChord中整个查找时间T(OChord)的算法T(OChord)=排序之前需要计算各节点的时间C(Si)+排序时间排序方式可以是快速排序,能够在Ofclogn)的时间内完成,显然,对于元素个数η<160的s排序所需时间很小,可以忽略不计。排序之前需要计算各节点的计算时间C(Si)由两部分构成。计算IogN所需时间t。和ones()执行时间t。IogN使用二进制移位运算,所需移位次数‘=flog2(N+1)1。ones()算法表述如下权利要求一种Chord动态延迟优化方法OChord。采用递归方式调用对象选择机制来减小Chord路由延迟的优化方法,所述优化方法其特征在于,该方法包括如果将一次子查找操作看作1“跳”,那么节点n查找键值k时,a.首先节点n从自己finger中找出k之前的所有节点;b.计算这些节点完成查找k所需的跳数,利用节点间的网络坐标预测延迟,估算平均每跳所需时间Thop;c.分别估算选择这些节点作为下一跳执行查找k的总耗时Tnn’;d.最后选择最小耗时的节点最为完成下一跳的节点,依次完成整个查找过程;e.节点在执行查找的每一步进行对象选择,选择总体延迟小的查找路径。2.根据权利要求1所述的优化方法,其特征在于,步骤b所述的空间节点的网络坐标预测延迟的分布式网络坐标计算方法包括分布式的解算网络坐标可以如下进行,让每个节点模拟弹性网络的一部分。设置节点初始的网络坐标为原点,模拟过程中节点不断更新自己的网络坐标。每完成一次实际通信后,节点使用实际延迟数据来修复自己的网络坐标,将自己的网络坐标向通信对方坐标方向上移动,使得网络坐标间的距离接近实际延迟。为了避免抖动,节点不是直接移动自己网络坐标与对方网络坐标距离实际延迟。3.根据权利要求1所述的优化方法,其特征在于,步骤c中估算选择这些节点作为下一跳执行查找k的总耗时Tnn的方法如下选择总体延迟小的查找路径,延迟估测方式如下C(n^)=Cfi+XZf(Hi)Hfci)=ones((id-ni)>>(160_log2N))其中,C(Hi)为估测η节点执行查找键值id总耗时,Cli为η节点与Iii节点间的网络坐标预测延迟,i是平均每跳执行延迟,H(Iii)为估测Iii节点查找id键值所需跳数,ones函数计算数字的二进制中’1’的个数,符号>>为二进制右移运算。H(Iii)的证明由一致性哈希函数的性质可知节点标识符是随机分布在标识符空间W,2m-l](对SHA-l,m=160以下默认SHA-1),那么在有N个节点的Chord环中,节点标识符近似均分标识符空间,即任意节点和其后继节点的标识符差值为d=^,差值d最高有效二‘、17进制位r=log2d=160-log2No因此,在标识符为η的节点上执行查找id时η与id之间的节点数为Φ=(id-Tii)r,>>为二进制右移运算,(Id-Hi)为modulo216°减法。Chord协议finger表中节点距离以2为倍数递增,故φ的二进制形式中的每一个‘1’即为一跳,所以整个查找所需跳数为φ中‘1’的个数。4.根据权利要求1所述的优化方法,其特征在于,步骤e所述节点在执行查找的每一步进行对象选择,选择总体延迟小的查找路径的方法包括OChord与Chord查找区别在于动态路径选择下一跳时,不一定选择距待查ID最近的节点,而是使用SOrt_by_latenCy()对满足条件的所有finger集合s按照预测的延迟排序,选择延迟最小者。5.根据权利要求1所述的优化方法,其特征在于,OChord性能分析中证明了该方法时间复杂度为常数,并没有带来额外开销,路由效率优于原Chord协议。具体说明如下OChord中整个查找时间T(OChord)可表示为T(OChord)=排序之前需要计算各节点的时间C(Si)+排序时间排序方式可以是快速排序,能够在Ofclogn)的时间内完成,显然,对于元素个数η<160的s排序所需时间很小,可以忽略不计。全文摘要结构化P2P系统中资源定位是一个不断路由查找的过程,因此路由表的效率成为影响P2P系统性能的重要因素。Chord的路由机制提出时,对查找延迟并没有过多考虑。在分析现有研究的基础上,提出了一种Chord动态延迟优化方法OChord,采用递归方式调用对象选择机制来减小Chord路由的延迟。该方法中利用网络坐标来预测节点间的延迟,并通过实际测量延迟数据进行网络坐标分布式计算修正,然后通过对象选择机制调用相对延迟较小的节点降低了Chord查找的延迟,性能分析中证明了该方法时间复杂度为常数,并没有带来额外开销。最后的实验表明提出方法的路由效率优于原Chord协议。文档编号H04L12/56GK101938425SQ20101028552公开日2011年1月5日申请日期2010年9月19日优先权日2010年9月19日发明者刘芳妤,周维,姚绍文,殷继斌,谈子龙申请人:周维;谈子龙;姚绍文;刘芳妤;殷继斌
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1