公开/公告号CN1777120A
专利类型发明专利
公开/公告日2006-05-24
原文格式PDF
申请/专利权人 中国科学院计算技术研究所;
申请/专利号CN200510126321.7
申请日2005-12-07
分类号H04L12/24(20060101);
代理机构11021 中科专利商标代理有限责任公司;
代理人段成云
地址 100080 北京市海淀区中关村科学院南路6号
入库时间 2023-12-17 17:16:35
法律状态公告日
法律状态信息
法律状态
2013-01-30
专利权的转移 IPC(主分类):H04L12/24 变更前: 变更后: 登记生效日:20130104 申请日:20051207
专利申请权、专利权的转移
2008-01-23
授权
授权
2006-07-19
实质审查的生效
实质审查的生效
2006-05-24
公开
公开
技术领域
本发明涉及计算机网络技术领域,特别是涉及结构化P2P系统的分布式负载均衡。
背景技术
与非结构化P2P(Peer-to-Peer,对等)系统相比,基于DHTs(DistributedHash Tables)的结构化P2P系统在系统扩展性、查找速度等方面都有了很大的提高,这使得结构化P2P系统在最近几年得到了普遍的关注和研究(CAN,Chord,Pastry,Tapestry)。结构化P2P系统中,数据对象(dataobject)借助于哈希函数随机地分布在各个对等节点中。由于节点ID之间距离是不规则的,所以某些节点的负载可能是系统平均负载的O(logN)倍。对P2P应用的测量研究表明P2P系统中节点能力(CPU、存储空间、带宽等)差异很大,而DHTs却假设节点能力是相同的。这导致了负载不均衡问题,即节点的负载和节点的能力不相符。
副本和缓存是解决负载均衡的最直接方法,但是需要复杂的算法来维护副本和缓存内容的一致性,尤其是在动态环境下。
现有的负载均衡方法主要存在两个不足:1)负载的转移没有考虑节点之间的链路延迟,所以负载可能在链路延迟较大的节点之间转移,浪费了系统资源;2)该方法依赖于系统中固定位置的某些节点来收集负载信息和生成转移策略,这种类似于集中式的方法不仅增加了这些节点的负载,而且增加了这些节点被攻击的概率。
在动态的P2P网络中,上述不足更加明显。所以有必要设计一种分布式的负载均衡方法,这种分布式负载均衡方法不仅能够有效地均衡负载,而且要尽量减少负载转移开销,从而节省网络带宽。
发明内容
本发明利用了节点在覆盖网络上的邻居信息,并提出了一种结构化P2P系统的分布式负载均衡方法,包括基于邻居信息的局部负载信息收集方法和启发式负载转移方法,节点根据邻居节点信息周期性地收集局部负载信息,过载节点通过启发式方法向非过载节点转移负载,该方法利用了节点在物理网络上的邻近关系,所以负载能够在链路延迟较小的节点之间转移;同时兼顾了负载转移效果和负载转移开销两个相互冲突的目标。
所述的结构化P2P系统的分布式负载均衡方法,基于邻居信息的局部负载信息收集方法,使用了一种高效的泛洪机制,而且负载信息的收集只使用节点的邻居信息,简单且快速。
所述的结构化P2P系统的分布式负载均衡方法,基于邻居信息的局部负载信息收集方法,该方法的空间复杂度为O(log2 N)。
所述的结构化P2P系统的分布式负载均衡方法,启发式负载转移方法,不仅能够获得理想的负载均衡效果,而且利用了节点在物理网络上的邻近关系,降低了负载转移开销,节省了网络带宽。
所述的结构化P2P系统的分布式负载均衡方法,启发式负载转移方法,能够在负载均衡效果和负载转移开销之间取得较好的折中,而且时间复杂度为O(log2 N+log N),具有较好的扩展性,能够适应大规模P2P系统。
所述的结构化P2P系统的分布式负载均衡方法,结构化P2P系统负载均衡方法,不仅能够有效解决结构化P2P系统的负载不均衡问题,而且是完全分布式的。
具体内容叙述如下:
1.收集系统局部负载信息
本方法利用一种高效的TTL-2(Time To Live-2)泛洪机制收集系统局部负载信息。每个节点周期性地向其直接邻居节点发送TTL为2的消息,该消息内容包括源地址,TTL的值k以及时间戳ts。收到消息的节点向源节点汇报负载信息(响应消息),响应消息内容包括响应节点的地址,节点负载,节点能力以及时间戳ts;然后把k减1,如果k大于0,更新收到消息的TTL值,并把消息转发给直接邻居节点。由源节点估算与响应节点之间的链路延迟,并把负载信息以及链路延迟信息保存到链表LILoA(load information list of node A)中,该链表长度为O(log2 N),其中N为系统中节点个数。通过这个过程,源节点就完成了局部负载信息的收集。
2.启发式负载转移方法
在完成局部负载信息收集后,源节点根据收集到的信息,计算系统局部利用率,并使用启发式方法进行负载转移。负载转移方法的伪代码描述如下:
在上面的伪代码中,当系统局部利用率utl_LA大于1时,置utl_LA为1,这可以加快负载均衡速度,提高负载均衡质量。函数Choose_VS_To_Remove和Choose_Node_To_Accept用于生成转移策略。如何从过载节点转移虚拟服务器给非过载节点使得负载均衡达到最优(即最小化最大节点利用率)是NP完全问题,本发明设计了一种高效的启发式方法来选择需要删除的虚拟服务器以及接收该虚拟服务器的物理节点。伪代码描述如下:
在函数Choose_VS_To_Remove中,当不存在一个虚拟服务器使节点A变为非过载节点时,选择负载最大的虚拟服务器转移。在函数Choose_Node_To_Accept中,utli指节点i接收虚拟服务器后的利用率,而latA-i指节点A和节点i之间的链路延迟.算法首先保证接收节点在接收虚拟服务器后不会成为过载节点,然后通过调整参数r和s在负载均衡效果和节点间的链路延迟之间取得折中。在等式p=r×utl_imp+s×lat_imp中r和s均为非负数,若r>s,则更注重负载均衡的效果;而如果r<s,则更注重在链路延迟较小的节点转移负载。
上述负载转移方法利用了节点在物理网络上的邻近关系,通过调整参数r和s在负载均衡效果和节点间的链路延迟之间取得折中,可在负载均衡效果和负载转移开销之间权衡。算法时间复杂度为O(log2 N+log N),N为系统中节点数目。这说明该方法具有较好的扩展性,能够适应大规模P2P系统。
附图说明
图1是本方法的负载均衡效果图。
图2是调整方法参数时负载均衡效果和负载转移开销累积分布图。
图3是调整系统利用率时负载均衡效果图。
图4是结构化P2P系统的分布式负载均衡方法的流程图。
具体实施方式
图1是本方法的负载均衡效果图,(a)负载均衡前,(b)负载均衡后。可以看出,在负载均衡之前,负载的分布很不均匀:大量的节点过载(即节点负载大于节点能力)。而负载均衡后,节点的负载和节点的能力基本上成正比例关系,这也是负载均衡的目的。所以分布式负载均衡方法能够获得理想的负载均衡效果。
图2是系统利用率为0.81时,调整方法参数的负载均衡效果图。(a)负载均衡效果,,(b)被转移的负载的累积分布。图中纵坐标是99.5百分位节点利用率。从图3可以看出,通过调整方法参数,分布式负载均衡方法能够在负载均衡效果和负载转移开销之间取得权衡。同时可以看出r=s=1时权衡效果最理想。进一步的计算得出,当r=s=1时,该方法能够节省23%以上的网络带宽。
图3是调整系统利用率时的负载均衡效果图,其中方法参数为r=s=1。可以看出,第99.5百分位节点利用率随着系统利用率的增加呈线性增长趋势。但在各种利用率下,经过几个周期后,第99.5百分位节点利用率都小于1.0。这说明分布式负载均衡方法在各种利用率下都能获得理想的负载均衡效果。
图4的结构化P2P系统的分布式负载均衡方法,其步骤如下:
步骤S1,节点A收集局部负载信息,收集到信息的节点集合为S;
步骤S2,节点A根据收集到的负载信息,计算系统局部利用率;
步骤S3,判断节点A是否为过载节点,如果不是,则返回;否则继续执行;
步骤S4,根据函数Choose_VS_To_Remov选择需要转移的虚拟服务器Removed_VS;
步骤S5,根据函数Choose_Node_To_Accept选择接收Removed_VS的节点Accept_Node,如果Accept_Node为空,则返回;否则继续执行;
步骤S6,节点A向节点Accept_Node转移虚拟服务器Accept_Node,方法结束。
机译: 信息处理系统,信息处理设备,负载均衡方法,数据库分配计划方法和用于实现用于分布式数据库的负载均衡的连接分配的程序
机译: 信息处理系统,信息处理设备,负载均衡方法,数据库分配计划方法和用于实现用于分布式数据库的负载均衡的连接分配的程序
机译: 分布式数据库中的信息处理系统,信息处理设备,负载均衡方法,数据库供应调度方法和负载均衡连接分发程序