基于分布式哈希表的p2p系统负载均衡算法.docxVIP

  • 3
  • 0
  • 约4.22千字
  • 约 5页
  • 2023-10-09 发布于广东
  • 举报

基于分布式哈希表的p2p系统负载均衡算法.docx

基于分布式哈希表的p2p系统负载均衡算法 负载平衡是dhs系统的核心问题之一。负载平衡的程度在一定程度上决定了系统性能的好坏。hlt系统负载不平衡的原因是哈希函数生成的特征,这导致了o(gln)不平衡的因素。由于系统中节点能力的差异,节点之间的不均匀负载问题变得更加严重。因此,许多研究人员提出了许多适用于dhs系统的负载补偿策略。一些策略没有考虑节点的异质性,而某些策略会导致大量的负载转移成本,或增加路径复杂性和路径维护成本。 本文提出了SDYA负载均衡算法. 该算法基于虚拟服务器策略,根据网络负载情况,采用特殊的ID生成算法有效地均衡分配负载;采用特殊的动态负载调整算法保证了最小的转移开销. 1 dct节点负载均衡 P2P系统中的每项资源都给系统造成了负载. SDYA可应用于所有的DHT系统,但应包括2个假设条件. 1) 将影响节点能力的因素,如CPU、存储容量、内存、I/O响应率、带宽等统一视为一种资源. 2) 负载均衡分布在ID地址空间上. 一般情况下,资源数据远远多于网络中的节点数,故资源数据在ID空间上分配均匀,或其不均衡度可以忽略不计. 1.1 DHT系统中节点的负载 在DHT系统中,节点的负载既包括其被占用的存储空间,也包括处理消息所带来的CPU开销、传输数据和应用层路由维护所带来的带宽消耗. 故将DHT节点的负载抽象为3类. 1) 存储负载. 节点存储所有资源占用的存储空间. 2) 路由负载. 节点路由维护、转发消耗的带宽. 3) 查询负载. 节点处理查询请求的负载. 在ID空间上资源均匀分布且不存在热点资源的DHT系统中可用节点所负责地址空间的不均衡度来表示其负载的不均衡度. SDYA算法通过均衡节点地址空间达到负载均衡的目的. 而对于存在热点资源的情况,由于其具有独立性和实时性,可以采用对热点资源进行备份或cache等方法. 1.2 负载度量的相关术语 1) 节点容量(C). 表示节点的最大承载能力. 2) 虚拟ID(虚拟服务器) 相当于DHT系统中的节点,每个物理节点对应v个虚拟服务器. 3) 系统负载利用率,即系统总负载量与总容量的比例. 定义下列参数. L:整个网络ID空间的大小. RSpace:节点实际负责的负载量,用变量R表示. OSpace:负载完全均衡情况下,节点应该负责的负载量,用变量O表示. 与节点容量成正比. 节点的负载不均衡度(LB):节点实际负载与理想负载的偏差程度,用变量B表示. 负载不均衡度的阈值(LN):负载均衡算法所要实现的均衡目标,即理想情况下,网络中所有节点LB的绝对值都应小于阈值LN,用变量Y表示. 2 节点负载分配算法 本文所提出的SDYA算法是基于虚拟服务器策略的. 在静态负载分配算法中,利用特殊的ID生成算法可有效地为节点均衡分配负载;同时,当网络发生动荡时,采用特殊的动态负载调整机制,以最快的速度和最小的转移开销可保证系统负载重新均衡. 2.1 种新保活机制 SDYA算法利用引导服务器作为负载均衡策略的决策者,减少了均衡开销,提高了系统的稳定性. 笔者在引导服务器和网络节点之间设计了一种新颖的保活机制,保证了引导服务器最低的保活和负载均衡决策开销,避免了单点失效的问题. 1 a.正常离节点 ① 新节点加入时,将自己的节点信息上报给引导服务器,引导服务器保存节点的信息; ② 节点离开时,a. 正常离开,离开节点自己通知引导服务器;b. 异常离开,离开节点的邻居节点探测到该节点离开后通知引导服务器,引导服务器检测证实. 可以看出,保活机制不需要引导服务器实时探测节点的状态,故用于保活机制的开销非常小. 2 基于sdra的负载均衡优化 ① 新节点加入,引导服务器评估得到新节点容量C,利用静态负载分配算法为节点分配虚拟ID; ② 网络发生动荡时,引导服务器通过保活机制检测到节点加入或离开后,将运行动态负载调整算法,调整网络中极少部分的负载,使所有节点负载满足阈值LN的要求. 引导服务器用于负载均衡决策的开销只与SDYA算法复杂度和运行该算法的频率有关. 而提出的SDYA算法简单、复杂度低,引导服务器用于负载均衡的总体开销小. 2.2 静态负载分配算法 传统虚拟服务器负载均衡算法中,每个虚拟ID的生成是随机的,虚拟ID数量必须足够多,才能达到负载均衡,从而使系统中路由维护开销增大. 而本文提出的静态负载分配算法,每个虚拟ID的生成都有针对性,用来分担目前网络中负载最重节点的部分负载,只需要运行少量虚拟ID就可以达到负载均衡. 初始节点在建立网络时向引导服务器上报自己的各种参数,引导服务器根据网络应用需求进行评估得到节点的容量,并配置初始单位容量上运行的虚拟ID个数V,最后通过随机生成方式为初始节点分配「CV┐个虚拟ID. 若节点不是网络的初始节点,假定网络已存在N-1个

文档评论(0)

1亿VIP精品文档

相关文档