CN102457428B - 分布式哈希表网络的负载均衡实现方法及装置 - Google Patents
分布式哈希表网络的负载均衡实现方法及装置 Download PDFInfo
- Publication number
- CN102457428B CN102457428B CN201010522803.5A CN201010522803A CN102457428B CN 102457428 B CN102457428 B CN 102457428B CN 201010522803 A CN201010522803 A CN 201010522803A CN 102457428 B CN102457428 B CN 102457428B
- Authority
- CN
- China
- Prior art keywords
- node
- virtual identifying
- responsible
- virtual
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种分布式哈希表网络的负载均衡实现方法及装置。其中,该方法包括:将所述分布式哈希表网络中的已分配给各个节点的N个第一虚拟标识中各个第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;将M×N个所述第二虚拟标识分配给当前所述DHT网络中的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。通过本发明,可以保证DHT网络中各个节点的负载均衡。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种分布式哈希表(Distributed Hash Table,简称为DHT)网络的负载均衡实现方法及装置。
背景技术
目前,分布式哈希表(DHT)已成为点对点(P2P)叠加网络的主要组织形式,其存储负载均衡主要使用虚拟标识的方法实现。在分布式哈希叠加网络中同时具有节点ID与虚拟标识两种不同属性的标识。其中,节点ID用于区分不同节点,维护分布式哈希表叠加网络;虚拟标识用于将哈希表空间分割成多个区间并分配到节点。在一个分布式哈希表叠加网络中,每个节点ID都不相同,每个虚拟标识也都不相同。允许出现节点ID相同于虚拟标识的情况。叠加网络中根据全部节点的全部虚拟标识和一定的分割规则,将哈希表空间分为多个区间。区间数量与虚拟标识数量等同,每个区间与一个虚拟标识互相关联。哈希表区间由与其关联的虚拟标识所属的节点负责。由于每个节点拥有多个虚拟标识,因此,每个节点需要负责多个哈希表区间。而叠加网络中的每个数据资源被分配一个唯一的资源标识,若某数据资源的资源标识位于某一哈希表区间内,该数据资源由与负责该哈希表区间的虚拟标识所在的节点保存。这样,叠加网络中的所有节点ID与虚拟标识组成两个不同的逻辑环路。虚拟标识将哈希表空间进行更精细的划分,每个虚拟标识负责相应的哈希块,资源标识落在该哈希块内的数据资源由该虚拟标识负责保存,从而起到提升网络负载均衡效果的作用。
如图1所示,假设哈希空间为0-63被12个虚拟标识均等分割成12份。网络中有A、B、C和D四个节点,四个节点分别具有各自的节点ID:N1、N9、N28、N49,并且假设这四个节点能力相同。则每个节点均具有三个虚拟标识,如节点B具有三个虚拟标识:P8、P28和P43。资源对象根据资源标识与虚拟标识的关系由相应的虚拟标识负责保存(如资源标识为K5的,就由虚拟标识P8负责)。其中,如表1所示,节点B的三个虚拟标识所负责的哈希块分别为:(1,8]、(23,28]、(38,43],资源标识在此空间的资源属于节点B负责。从而可以得到在该种负载均衡方法下,四个节点中存储的数据资源空间都是15,具体如表1所示。由于资源标识在整个哈希空间是均匀分布的,因此,每个节点所负责的数据资源是均衡的。
表1.
发明人发现,在相关技术中,由于虚拟标识负载空间是等份的,而节点理论负载空间值很难正好等于X个虚拟标识负责空间之和。因此节点实际负责空间比理论负责空间会有一定区别,当网络规模节点较少时,节点理论负责空间比较大,节点实际负责空间多/少一个虚拟标识,负载均衡度最大偏差值还是比较小的。但随着业务的不断发展,节点的规模不断扩大,每个节点的理论负责空间不断变小,这时如果节点实际负责空间多一个虚拟标识,每个虚拟标识对应的负载空间是固定的,其负载均衡度最大差值比较大,从而将导致节点的负载不均衡度超过负载不均衡度阈值,节点间的负载不均衡。
发明内容
本发明的主要目的在于提供一种DHT网络的负载均衡实现方案,以至少解决上述由于节点增加而导致DHT网络的节点间的负载不均衡的问题。
根据本发明的一个方面,提供了一种分布式哈希表网络的负载均衡实现方法,包括:将所述分布式哈希表网络中的已分配给各个节点的N个第一虚拟标识中各个第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;将M×N个所述第二虚拟标识分配给当前所述DHT网络中的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
根据本发明的另一方面,提供了一种DHT网络的负载均衡实现装置,包括:分裂模块,用于将所述DHT网络中已分配给各个节点的N个第一虚拟标识中各个所述第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;分配模块,用于将M×N个所述第二虚拟标识分配给当前所述DHT网络的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
通过本发明,对已分配给各个节点的虚拟标识进行分裂,使每个虚拟标识对应的负载空间减少,从而使得每个节点的理论负载空间与实际的负载空间的差值减少,从而保证了DHT网络中各个节点的负载均衡。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的单跳DHT网络使用虚拟标识均衡负载的示意图;
图2是相关技术中虚拟标识的数量远大于节点的数量的负载均衡示意图;
图3是根据本发明实施例一的DHT网络的负载均衡实现装置的结构示意图;
图4是根据本发明实施例一的优选DHT网络的负载均衡实现装置的结构示意图;
图5是根据本发明实施例一的另一优选DHT网络的负载均衡实现装置的结构示意图;
图6是根据本发明实施例二的DHT网络的负载均衡实现方法的流程图;
图7是根据本发明实施例三的集中式拓扑网络的虚拟标识分裂的流程图;
图8是根据本发明实施例四的分布式拓扑网络的新节点加入及虚拟标识分裂的流程图;
图9是根据本发明实施例五的集中式拓扑网络的虚拟标识分裂的流程图;
图10是根据本发明实施例六的虚拟标识分裂前的示意图;
图11是根据本发明实施例六的虚拟标识分裂后的示意图;
图12是根据本发明实施例六的分裂后的虚拟标识分配给新节点的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明,下面先对本发明涉及的节点负载相关的参数的定义进行说明:
节点容量-C:容量大的节点可以承担更多的负载。在实际应用中,节点的容量Ci可以通过节点的CPU、内存、带宽、连接稳定性等资源来衡量。具体的衡量方式可以采用实验测量、经验数据或动态更新等方式。一般来说,节点的容量受限于其CPU、内存、带宽等资源中最紧张的资源量。在本发明实施例中采用ID空间来衡量节点实际负载情况,因此,节点容量Ci可以表示为节点按能力所应负责的虚拟标识(ID)对应的负载空间(可以简称为ID空间)大小。例如,可以定义DHT网络中性能最低的节点容量为一基准值,记为Cmin,则其他节点的容量C可以表示为mCmin。其中m为该节点与性能最差节点的性能比值。
节点的负载不均衡度-LB:表示节点的实际负载与理想情况下的均衡负载的偏差程度。在本发明实施例中,采用节点所负责的ID空间的大小来表示节点的存储负载。理想状态下,节点实际所负责的ID空间大小与按照其节点容量所应该负责的ID空间大小相等。因此,节点的负载不均衡度可以定义为:
节点实际负责的ID空间大小/节点i应负责的ID空间大小-1
其中,节点实际负责的ID空间大小等于该节点所拥有的所有虚拟ID负责的ID空间大小之和。而节点应负责的ID空间大小应根据网络中所有节点的节点容量综合得出。节点i应负责的ID空间大小为:
其中N为网络中的节点数,S为总的ID空间大小。
负载不均衡度阈值-LN:负载均衡算法所要实现的均衡目标。即网络中所有节点的负载不均衡度LB的绝对值应都小于该阈值LN。
虚拟节点个数-V:表示每个物理节点所拥有的虚拟节点(即虚拟标识)的数量。例如,可以定义网络中性能最差节点(节点容量为Cmin)所拥有的虚拟节点个数为Vmin,节点容量为mCmin的节点所拥有的虚拟节点个数为[mVmin]。
实施例一
图3是根据本发明实施例的DHT网络的负载均衡实现装置的结构示意图,该装置可以在DHT网络扩展时,对DHT网络中的各个节点分配的虚拟标识进行分裂。
如图3所示,该装置主要包括:分裂模块10和分配模块20。其中,分裂模块10,用于将所述DHT网络中已分配给各个节点的Z个第一虚拟标识中各个第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;分配模块20,用于将M×N个所述第二虚拟标识分配给当前所述DHT网络的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
例如,如果已分配给节点i的第一虚拟标识的数量为n,则分裂模块10可以将已分配给节点i的各个第一虚拟标识对应的负载空间分为M份,并新增n×(M-1)个虚拟标识,新增的n×(M-1)个虚拟标识与原来的n个第一虚拟标识一些标识分裂后的各份负载空间。
在本发明实施例的一优选实施方式中,如图4所示,该装置还可以包括:判断模块30,用于判断所述DHT网络是否存在负载不均衡度超过负载不均衡度阈值的节点,如果是,则触发所述分裂模块10。
在实际应用中,N个上述第一虚拟标识分配给DHT网络的各个节点之后,当有新节点加入到DHT网络时,分配模块20可以按照新节点的能力,确定该新节点应负责的第一虚拟标识的数量,然后计算新节点加入到DHT网络后原各个节点应负责的第一虚拟标识的数量与各个节点实际负责的第一虚拟标识的数量之间的差值,从各个节点负责的第一虚拟标识中取该差值个第一虚拟标识分配给新节点,分配完后,计算各个节点的负载不均衡度,判断模块30判断各个节点的负载不均衡度是否超过负载不均衡度阈值;或者,在DHT网络初建完成后,计算各个节点的负载不均衡度,判断模块30判断各个节点的负载不均衡度是否超过负载不均衡度阈值。在判断模块30判断其中有一个或多个节点的负载不均衡度超过负载不均衡度阈值时,触发分裂模块10,分裂模块10将各个节点负责的各个第一虚拟标识对应的负载空间均分为M份,并新增加(M-1)×N个虚拟标识,使用新增加的(M-1)×N个虚拟标识和原来的N个第一虚拟标识对划分后的各份负载空间进行标识。分裂模块10在进行虚拟标识后,可以直接触发分配模块20,分配模块20根据各个节点的负载不均衡度对各个节点负责的第二虚拟标识的数量进行调整,使其中负载不均衡度超过负载不均衡度阈值的节点的负载不均衡度降低。例如,假设DHT网络中有三节点:A、B和C,整个哈希空间为0-63,负载不均衡度阈值为10%,分裂前,整个哈希空间被均匀划分为8份,每份由8个虚拟ID标识,假设各个节点的能力都为c,则各个节点理论应负责空间为:c/(c+c+c)*64=21.33,因此,三个节点分配的虚拟ID的数量为:3,3,2,各个节点的负载不均衡度分别为:12.49%,12.49%和-14.98%,判断模块30判断出负载不均衡度已超过负载不均衡度阈值,触发分裂模块10,分裂模块10将A节点负责的3个虚拟标识对应的负载空间划分为12份,由12个虚拟标识进行标识,将B节点负责的3个虚拟标识对应的负载空间划分为12份,由12个虚拟标识进行标识,将C节点负责的2个虚拟标识对应的负载空间划分为8份,由8个虚拟标识进行标识,然后分配模块20对各个节点负责的虚拟标识数量进行调整,取节点A和节点B负责的1个虚拟标识分配给节点C,从而使得各个节点的负载不均衡度为:3.1%、3.1%和-6.2%,小于负载不均衡度阈值。或者,分裂模块10在执行虚拟标识后,也可以不触发分配模块20,分配模块20在有新节点加入时,根据所述新节点的能力,计算所述新节点应该负责的所述第二虚拟标识的数量,然后将所述DHT网络中负责的所述第二虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述新节点负责,使所述新节点负责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟标识的数量。
在本发明实施例的另一优选实施方式中,如图5所示,该装置还可以包括:发现模块40,用于发现所述DHT网络是否有新节点加入,如果是,则触发所述分裂模块10。分配模块20在分裂模块10执行完分裂功能后,可以先计算各个节点在新节点加入后应该负责的第二虚拟标识的数量(即理论值),然后实际负责的第二虚拟标识超过其理论值的节点负责的所有第二虚拟标识中取出(实际负责的第二虚拟标识的数量-该节点应该负责的第二虚拟标识的数量)个第二虚拟标识分配给新节点。
在实际应用中,上述装置可以设置在DHT网络的管理服务节点,也可以设置在DHT网络的其他节点(例如,新节点的负责节点)。
通过本发明实施例提供的上述装置,可以通过分裂虚拟标识的方式,保证DHT网络中各个节点的负载均衡。
实施例二
图6是根据本发明实施例的DHT网络的负载均衡实现方法的流程图,该方法可以通过上述实施例一所述的装置实现。如图6所示,该方法主要包括以下步骤:
步骤S602,将所述DHT网络中的已分配给各个节点的Z个第一虚拟标识中各个第一虚拟标识对应的负载空间均分为M份,使用M×Z个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和Z为自然数,且M≥2;
其中,Z为当前DHT网络中虚拟标识的数量,即DHT网络中整个负载空间均匀分成的虚拟空间的数量。例如,在DHT网络初建时,Z可以根据DHT网络的节点规划及预设的负载不均衡度阈值确定;
其中,DHT网络的节点规划包括但不限于:DHT网络中的节点数量及各个节点的能力。
当节点能力不同时,每个节点负载的虚拟ID的理论值与其能力成正比。由于节点实际所负责的虚拟ID与其理论值相比,最多会偏差一个,因此,容量最小的节点负载不均衡度最大。因此,在本发明实施例中,在确定DHT网络中的虚拟ID的总数Z时,只需保证Z的总数可以使容量最小的节点能够满足负载均衡要求即可,即使容量最小的节点的负载不均衡度小于负载不均衡度阈值。对于DHT网络的节点i,需要满足以下公式:
(节点i实际负责的ID空间大小/节点i应负责的ID空间大小)-1<负载不均衡度阈值
假设虚拟标识数量为Z,容量最小的节点i多负载了一个Δ空间(S/Z),其中,S为DHT网络的整个负载空间,则可以通过下面公式确定Z:
解之,可得:
优选地,Z的取值可以为2的n次幂。
例如,网络初建规划规模N有100个节点,最大负载不均衡度LN控制在10%以下。假如节点能力容量值C相同,则根据公式,虚拟标识数量Z必须大于1000个。
其中,在使用M×Z个虚拟标识对均分后的各份负载空间进行标识时,可以在两个连接的分裂前的虚拟标识中间生成M-1个新的虚拟标识,使用两个连接的分裂前的虚拟标识中的前一个虚拟标识及上述M-1个新的虚拟标识作为M个分裂后的虚拟标识(即上述第二虚拟标识),利用该M个分裂后的虚拟标识对上述前一个虚拟标识对应的负载空间均分出的M份负载空间进行标识。
在实际应用中,可以是在发现DHT网络中的某个节点的负载不均衡度超过负载不均衡度阈值时,触发步骤S602。或者,也可以是在DHT网络中有新节点加入时触发步骤S602。
步骤S604,将M×Z个所述第二虚拟标识分配给当前所述DHT网络中的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
如果是发现DHT网络中某个节点的负载不均衡度超过负载不均衡度阈值触发上述步骤S602,则可以根据当前DHT网络中各个节点的负载不均衡度,对各个节点负责的第二虚拟标识的数量进行调整,使负载不均衡度超过负载不均衡度阈值的节点的负载不均衡度下降;或者,在执行上述步骤S602之后,可以不对当前DHT网络中各个节点的第二虚拟标识进行调整,而是在有新节点加入时,根据所述新节点的能力,计算所述新节点应该负责的第二虚拟标识的数量,然后将DHT网络中负责的所述第二虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述新节点负责,使所述新节点负责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟标识的数量。
如果是有新节点加入网络触发步骤S602,根据新节点的能力,计算新节点i应该负责的分裂后的虚拟标识的数量X:
然后计算新节点加入后各个节点负责的分裂后的虚拟标识的理论值Xj:
然后从实际负责的第二虚拟标识超过其理论值的节点负责的所有第二虚拟标识中取出(实际负责的第二虚拟标识的数量-该节点应该负责的第二虚拟标识的数量)个第二虚拟标识分配给新节点。
通过本发明实施例提供的上述方法,可以对虚拟标识进行自动分割,从而使得网络具有可扩展性,并可以保证DHT网络的节点的负载均衡。
实施例三
本发明实施例以集中式拓扑网络为例,对虚拟标识的分裂流程进行说明。在本发明实施例中,在DHT网络中有节点的负载不均衡度超过负载不均衡度阈值的情况下进行分裂,并在进行分裂后,调整各个节点的负责的虚拟标识的数量,以使DHT网络中节点的负载不均衡度下降。
图7为本发明实施例中虚拟标识分裂的流程图,如图7所示,主要包括以下步骤:
步骤701:随着新节点不断加入叠加网,网络规模不断扩大,负载不均衡度不断增大,当达到不均衡度阀值时,管理服务节点出现告警;
步骤702:管理服务节点向决策中心(如网管平台)发送告警通知;
步骤703:决策中心接收到网络负载不均衡告警后,可以自动处理,也可以由人工干与,指示叠加网中虚拟标识等分裂M份;
步骤704:决策中心向管理服务节点发送命令,要求管理服务节点分裂虚拟标识;
步骤705:管理服务节点根据指示,把虚拟标识进行等份分裂为M份;
例如,叠加网中有原8个虚拟标识,均等分裂4份后,叠加网中32个虚拟标识。
步骤706:管理服务节点根据各节点的不均衡度调整各个节点负责的虚拟标识,使不均衡度下降;
步骤707:管理服务节点向叠加网接入节点发送资源数据调整通知;
步骤708:叠加网中的节点进行数据调整。
通过本发明实施例,可以在负载不均衡度超过阈值时,对虚拟标识进行分裂,从而降低DHT网络的负载不均衡度。
实施例四
本发明实施例以分布式拓扑网络为例,对新节点加入及虚拟标识分裂进行说明。
图8是本发明实施例中新节点加入及虚拟标识分裂的流程图,如图8所示,主要包括以下步骤:
步骤801:新节点产生节点ID,并根据节点ID的大小定位到其准入节点,准入节点就是当前网络中新节点的直接后继结点;
其中,所述节点ID可以通过对节点的特征信息进行哈希运算得到,节点的特征信息指该节点的唯一性信息,如IP地址、网卡号、或机器序号,哈希算法的选取可以是任意的;或者,节点ID也可以由网络的运营管理者统一分配。
步骤802:新节点向准入节点发送加入请求消息,其中,加入请求消息中携带其能力值及节点标识;
步骤803:准入节点根据DHT算法确定新节点的负责节点(即新节点的后继节点),然后把加入请求消息转发给负责节点;
步骤804:负责节点根据新节点能力值,分配X个新分裂的虚拟标识给新节点;
其中,X的计算公式为:
Z为整个叠加网标识分裂后所有的虚拟标识个数。
具体地,在该步骤中,负责节点可以先对各个节点负责的虚拟标识进行分裂,然后计算出叠加网中新节点加入后,各节点理论负责的分裂后的虚拟标识的数量,将各个节点中当前负责的分裂后的虚拟标识的个数减去其理论负责的分裂后的虚拟标识的个数,得到该节点应该分配给新节点的分裂后的虚拟标识的数量(假设为R),然后从该节点中随机取出分裂后的R个虚拟标识分配给新节点,直到达到X个;
或者,负责节点可以先计算出叠加网中在新节点加入后各节点理论负责的虚拟标识个数。各节点中原有的虚拟标识个数减去理论负责虚拟标识个数之差就为各节点应该分配给新节点的虚拟标识数量(设为R)。从各节点中随机选取R个虚拟标识分配给新节点的虚拟标识,直到达到X′个(其中,X′为根据新节点的能力计算得到的新节点应该负责的原虚拟标识的数量),如果这时有节点的负载不均衡度大于负载不均衡度阈值,则进行虚拟标识分裂,然后调整各个节点负责的虚拟标识,以降低负载不均衡度。
步骤805,806:负责节点原路返回新节点加入请求的响应消息;
步骤807:负责节点指示相关节点,进行资源数据的迁移调整;
步骤808:负责节点通知叠加网中的节点更新查询路由表;
步骤809:叠加网中各节点根据指示,更新各自的查询路由表。
通过本发明实施例中,可以在新节点加入时,对虚拟标识进行分裂,从而使得新节点加入后的DHT网络的负载不均衡度不会过大。
实施例五
本发明实施例以集中式拓扑网络为例,对虚拟标识的分裂流程进行说明。在本发明实施例中,在DHT网络中有节点的负载不均衡度超过负载不均衡度阈值的情况下进行分裂,并在进行分裂后,并不调整各个节点的负责的虚拟标识的数量,而是在有新节点加入后,以分裂后的虚拟标识进行虚拟空间的分配。
图9为本发明实施例中虚拟标识分裂和分配的流程图,如图9所示,主要包括以下步骤:
步骤901:随着新节点不断加入叠加网,网络规模不断扩大,负载不均衡度不断增大,当达到负载不均衡度阀值时,管理服务节点出现告警;
步骤902:管理服务节点向决策中心(如网管平台)发送告警通知;
步骤903:决策中心接收到网络负载不均衡告警后,可以自动处理,也可以由人工干与,指示叠加网中虚拟标识等分裂M份;
步骤904:决策中心向管理服务节点发送命令,要求管理服务节点分裂虚拟标识;
步骤905:管理服务节点根据指示,把虚拟标识进行等份分裂为M份;
例如,叠加网中有原8个虚拟标识,均等分裂4份后,叠加网中32个虚拟标识。
步骤906:管理服务节点接收到有新节点加入的请求消息;
步骤907:管理服务节点根据新节点能力值,分配X个分裂后的虚拟标识给新节点;
其中,X的计算公式为:
Z为整个叠加网标识分裂后所有的虚拟标识个数。
同样,服务管理节点计算出叠加网中各节点理论负责的虚拟标识个数。各节点中当前负责的虚拟标识个数减去其理论负责虚拟标识个数之差就为各节点应该分配给新节点的虚拟标识数量(设为R)。从各节点中随机选取R个虚拟标识分配给新节点的虚拟标识,直到达到X个。
步骤908:管理服务节点向叠加网接入节点发送资源数据调整通知;
步骤909:叠加网中的节点进行数据调整。
实施例六
本发明实施例以一个具体的实例对本发明实施例提供的虚拟标识分裂进行说明。
在本发明实施例中,假设整个哈希空间(假设为0-63),负载不均衡度阈值(LN)为10%。如图9所示,网络有A和B两个节点,节点的能力都相同为c,整个哈希空间被8个虚拟标识均匀分裂。虚拟标识P0,P16,P32,P48分配给节点A负责,虚拟标识P8,P24,P40,P56分配给节点B负责。因两个节点能力相同,因此,每个节点都分配4个虚拟标识,虚拟标识所负责的空间都一样,所以两个节点的存储负载均衡。
当一个新节点C(能力与A、B相同)请求加入到叠加网中,这时各节点理论应负责空间:
节点A=节点B=节点C=c/(c+c+c)*64=21.33
由于标识是不可分割的,三个节点的分配虚拟标识为:3,3,2,这时有两个节点实际负责空间为24,而另一个只有16。则各个节点的负载不均衡度分别为12.49%、12.49%和-24.98%。负载不均衡度已经超过阀值,需要进行分裂虚拟标识。
如果每个虚拟标识对应的负载空间分裂成M(假设M=4)等份,整个哈希空间被32个虚拟标识分割,如图10所示,节点A负责16个虚拟标识,节点B负责16个虚拟标识。加入节点C后,三个节点理论应分配标识分别为11,11,10,这时,需要从节点A和B负责的虚拟标识中取出5个虚拟标识分配给节点C。这样,有两个节点实际负责空间为22,而另一个只有20。则负载不均衡度分别为3.1%,3.1%和-6.2%,满足需求。负责节点分别从节点A和节点B两个节点随机选择5个虚拟标识分配给新节点C,如图11所示。
从以上的描述中,可以看出,通过本发明,整个DHT叠加网系统可以很好地实现数据存储负载均衡,并且虚拟标识可以根据网络节点的规模自动分割,从而减少标识管理和标识迁移的工作量,同时,使网络具有可扩展性。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种分布式哈希表DHT网络的负载均衡实现方法,其特征在于,包括:
将所述DHT网络中的已分配给各个节点的N个第一虚拟标识中各个第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;
将M×N个所述第二虚拟标识分配给当前所述DHT网络中的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
2.根据权利要求1所述的方法,其特征在于,在各个所述第一虚拟标识对应的负载空间均分为M份之前,所述方法还包括:所述DHT网络中一个节点的负载不均衡度超过负载不均衡度阈值。
3.根据权利要求2所述的方法,其特征在于,所述将M×N个所述第二虚拟标识分配当前所述DHT网络中的各个节点包括:
根据当前所述DHT网络中各个节点的负载不均衡度,对各个节点负责的所述第二虚拟标识的数量进行调整,使负载不均衡度超过负载不均衡度阈值的节点的负载不均衡度下降。
4.根据权利要求2所述的方法,其特征在于,所述将M×N个所述第二虚拟标识分配当前所述DHT网络中的各个节点包括:
新节点加入所述DHT网络;
根据所述新节点的能力,计算所述新节点应该负责的所述第二虚拟标识的数量;
将所述DHT网络中负责的所述第二虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述新节点负责,使所述新节点负责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟标识的数量。
5.根据权利要求1所述的方法,其特征在于,在各个所述第一虚拟标识对应的负载空间均分为M份之前,所述方法还包括:新节点加入所述DHT网络。
6.根据权利要求5所述的方法,其特征在于,所述将M×N个所述第二虚拟标识分配各个所述节点包括:
根据所述新节点的能力,计算所述新节点应该负责的所述第二虚拟标识的数量;
将所述DHT网络中负责的所述第二虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述新节点负责,使所述新节点负责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟标识的数量。
7.根据权利要求6所述的方法,其特征在于,将所述DHT网络中负责的所述第二虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述新节点负责包括:
根据所述DHT网络中各个节点的能力,计算加入所述新节点后各个所述节点应该负责的所述第二虚拟标识的理论值;
判断各个所述节点当前负责的所述第二虚拟标识的数量是否超过该节点的所述理论值,如果是,则将该节点负责的所有所述第二虚拟标识中随机取超出该理论值部分的所述第二虚拟标识分配给所述新节点。
8.根据权利要求1至7中任一项所述的方法,其特征在于,在所述DHT网络初建时,所述N根据所述DHT网络的节点规划及负载不均衡度阈值确定。
9.根据权利要求8所述的方法,其特征在于,按照以下方式确定所述N:
获取所述DHT网络中能力最差的节点;
根据所述负载不均衡度阈值,确定所述第一虚拟标识的数量N,使得所述能力最差的节点的负载不均衡度小于所述负载不均衡度阈值。
10.一种DHT网络的负载均衡实现装置,其特征在于,包括:
分裂模块,用于将所述DHT网络中已分配给各个节点的N个第一虚拟标识中各个所述第一虚拟标识对应的负载空间均分为M份,使用M×N个第二虚拟标识对均分后的各份负载空间进行标识,其中,M和N为自然数,且M≥2;
分配模块,用于将M×N个所述第二虚拟标识分配给当前所述DHT网络的各个节点,由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述DHT网络是否存在负载不均衡度超过负载不均衡度阈值的节点,如果是,则触发所述分裂模块。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
发现模块,用于发现所述DHT网络是否有新节点加入,如果是,则触发所述分裂模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010522803.5A CN102457428B (zh) | 2010-10-27 | 2010-10-27 | 分布式哈希表网络的负载均衡实现方法及装置 |
PCT/CN2011/075564 WO2012055243A1 (zh) | 2010-10-27 | 2011-06-10 | 分布式哈希表网络的负载均衡实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010522803.5A CN102457428B (zh) | 2010-10-27 | 2010-10-27 | 分布式哈希表网络的负载均衡实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102457428A CN102457428A (zh) | 2012-05-16 |
CN102457428B true CN102457428B (zh) | 2015-10-21 |
Family
ID=45993130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010522803.5A Expired - Fee Related CN102457428B (zh) | 2010-10-27 | 2010-10-27 | 分布式哈希表网络的负载均衡实现方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102457428B (zh) |
WO (1) | WO2012055243A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593347B (zh) * | 2012-08-14 | 2017-06-13 | 中兴通讯股份有限公司 | 一种均衡负载的方法及分布式数据库系统 |
CN103188345B (zh) * | 2013-03-01 | 2016-05-18 | 北京邮电大学 | 分布式动态负载管理系统和方法 |
CN104462124B (zh) * | 2013-09-22 | 2018-04-06 | 中国电信股份有限公司 | 基于线性哈希表的数据存储平台组织方法和数据存储平台 |
CN104793926B (zh) * | 2014-04-17 | 2018-06-01 | 厦门极致互动网络技术股份有限公司 | 一种分布式系统中资源配置方法及系统 |
CN109036439B (zh) * | 2018-08-24 | 2020-07-07 | 兰州理工大学 | 一种加密语音信号的感知哈希特征提取方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523372A (zh) * | 2006-10-05 | 2009-09-02 | 澳大利亚国家Ict有限公司 | 分散式多用户在线环境 |
CN101753610A (zh) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | 分布式网络构造方法、装置和系统以及任务处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399743B (zh) * | 2007-09-28 | 2011-09-14 | 华为技术有限公司 | 在基于分布式哈希表的对等网络中查找数据的方法和系统 |
-
2010
- 2010-10-27 CN CN201010522803.5A patent/CN102457428B/zh not_active Expired - Fee Related
-
2011
- 2011-06-10 WO PCT/CN2011/075564 patent/WO2012055243A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523372A (zh) * | 2006-10-05 | 2009-09-02 | 澳大利亚国家Ict有限公司 | 分散式多用户在线环境 |
CN101753610A (zh) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | 分布式网络构造方法、装置和系统以及任务处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102457428A (zh) | 2012-05-16 |
WO2012055243A1 (zh) | 2012-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102457429B (zh) | 分布式哈希表网络的负载均衡实现方法及装置 | |
CN102882973B (zh) | 基于p2p技术的分布式负载均衡系统和方法 | |
CN102457428B (zh) | 分布式哈希表网络的负载均衡实现方法及装置 | |
Wuhib et al. | Gossip-based resource management for cloud environments | |
Wang et al. | Service function chain composition, placement, and assignment in data centers | |
Tavakoli-Someh et al. | Multi-objective virtual network function placement using NSGA-II meta-heuristic approach | |
CN102457571A (zh) | 一种云存储中数据均衡分布方法 | |
CN107111520A (zh) | 用于分布式计算环境中的实时资源消耗控制的方法和系统 | |
US9106482B1 (en) | Systems and methods for proxy-less load balancing | |
Khan et al. | Effective Load Balance Scheduling Schemes for Heterogeneous Distributed System. | |
Gao et al. | A new algorithm with coordinated node and link mapping for virtual network embedding based on LP relaxation | |
Kang et al. | Load balancing of software-defined network controller using genetic algorithm | |
CN111880926B (zh) | 一种负载均衡方法、装置及计算机存储介质 | |
Dwiardhika et al. | Optimal construction of service function chains based on security level for improving network security | |
CN109981794B (zh) | 基于区块链节点网络的处理方法、装置及电子设备 | |
CN109922006B (zh) | 路由交换系统及其虚拟服务重构方法、装置、设备和介质 | |
Huang et al. | Modeling service applications for optimal parallel embedding | |
Wang et al. | A clustering-based approach for virtual network function mapping and assigning | |
CN105187488A (zh) | 一种基于遗传算法实现mas负载均衡的方法 | |
CN115633041A (zh) | 多集群的管理方法、装置、电子设备和可读存储介质 | |
Masuda et al. | Capacity management in decentralized networks | |
Shi et al. | Smart shuffling in MapReduce: a solution to balance network traffic and workloads | |
Rodrigues et al. | Improving virtual machine consolidation for heterogeneous cloud computing datacenters | |
You et al. | A coordinated algorithm with resource evaluation for service function chain allocation | |
KR101806932B1 (ko) | 유전자 알고리즘을 이용한 부하 분배 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151021 Termination date: 20201027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |