CN102035861A - 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 - Google Patents
一种单跳分布式哈希表叠加网络的负载均衡方法和系统 Download PDFInfo
- Publication number
- CN102035861A CN102035861A CN2009101739594A CN200910173959A CN102035861A CN 102035861 A CN102035861 A CN 102035861A CN 2009101739594 A CN2009101739594 A CN 2009101739594A CN 200910173959 A CN200910173959 A CN 200910173959A CN 102035861 A CN102035861 A CN 102035861A
- Authority
- CN
- China
- Prior art keywords
- node
- sign
- apart
- cut apart
- hash table
- 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.)
- Pending
Links
Images
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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- 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
-
- 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
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- 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
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Abstract
本发明提供了一种单跳分布式哈希表叠加网络的负载均衡方法,包括:所述叠加网络中的节点包括一节点标识和至少一个分割标识,所述节点标识唯一标识一个节点;所述叠加网络中的全部分割标识将哈希表空间分为若干个哈希表区间,每个分割标识与一个哈希表区间关联;数据资源存储在其对应的哈希表区间关联的分割标识所属的节点上。本发明还提供了一种单跳分布式哈希表叠加网络的负载均衡系统。本发明所述方法和系统,使用分割标识来分割哈希表区间,与节点标识独立,从而均衡了网络中各节点的负载。
Description
技术领域
本发明涉及单跳分布式哈希表叠加网络,尤其涉及一种单跳分布式哈希表叠加网络的负载均衡方法和系统。
背景技术
分布式哈希表网络(DHT网络)近年来逐渐成为P2P(peer to peer,点对点)叠加网络的主流组织形式,它主要是采用分布式哈希表技术来组织P2P叠加网络中的节点。网络中的所有节点共同维护完整巨大的哈希表。哈希表被分割成多个块,每个节点被分配给一个属于自己的哈希块,并成为这个哈希块的管理者。通过加密哈希函数,一个对象的名字或关键词被映射为128位或160位的哈希值。该哈希值必定位于某一哈希块内,而该哈希块的管理节点则负责存储这个对象数据。系统可以根据不同的规则为节点分配属于自己的哈希块,一种典型的形式为:网络中每个节点都有一个唯一的标识,称为节点标识(ID),与对象哈希值在同一哈希空间内,而每个节点所负责管理的哈希块即为其前向节点ID与其自身节点ID之间的部分。例如,有一节点的节点ID为15,而其前向节点ID为10,则该节点负责管理的哈希块即为(10,15]。DHT类结构能够自适应节点的动态加入/退出,有着良好的可扩展性、鲁棒性、节点ID分配的均匀性和自组织能力。
DHT网络中,每个节点均维护到其他节点的路由信息,以便将网络中的所有节点联系起来。而这些路由连接通常采取结构化的方式,因此常将DHT网络称为结构化P2P网络。DHT网络根据路由表构造的不同可以分为multi-hop(多跳)DHT网络和one-hop(单跳)DHT网络。所述multi-hop DHT网络,是指DHT网络中的每个节点仅维护到部分节点的连接信息,这样从网络中的某一节点发起的路由消息,可能会经过多个节点转发才能到达目的节点处,经典的multi-hop DHT网络有Tapestry、Pastry、Chord和CAN等。所述one-hop DHT网络,是指DHT网络中的每个节点维护到其他所有节点的路由信息,这样从网络中的任一节点发起的路由消息,均可经一跳直接达到目的节点处。
以下说明单跳分布式哈希表叠加网络(one-hop DHT网络)的实现方法。图1为one-hop DHT网络的拓扑结构图,与Chord等经典DHT网络相同,网络中节点按照一定的方式分配一个唯一节点ID(Node ID),数据资源通过哈希运算产生一个唯一的资源标识(Object ID),且该资源将存储在节点ID与资源标识相等或者相近的节点上。如图1中,由于14为离10最近的后向标识,资源标识为10的资源对象将保存在节点N14上。one-hop DHT网络的特点在于节点路由表的构造形式。如图1中节点N14,从其路由表中我们可以看到所述节点与网络中其他所有节点均保持连接关系。在资源查找时,节点可根据资源保存规则从路由表中直接定位至保存该资源的节点。如节点N14需要发起对资源K54的查询,通过其路由表,节点N14可知54处于(51,56]的哈希块内,而负责管理该哈希块的节点即为节点N56,因此,节点N14直接向节点N56发送资源查找请求。
单跳分布式哈希表叠加网络中,每个节点根据其所负责的哈希空间来存储数据资源。由于哈希函数的特性,网络中的各数据资源通过哈希运算产生的资源标识近似在整个哈希空间上分布均匀,则各个节点负责的哈希空间大小若不相同,必然会造成节点之间存储数据资源数量的不同。如图2所示,假设哈希空间为0-63,12个数据资源的资源标识在哈希空间内均匀分布,而四个节点负责的哈希块分别为:(49,1]、(1,9]、(9,28]、(28,49]。可以看出,数据资源在各节点的存储情况为:节点A负责存储数据资源K50、K55、K60;节点B负责存储数据资源K5;节点C负责存储数据资源K10、K15、K20、K25;节点D负责存储数据资源K30、K35、K40、K45。这样,四个节点中存储的数据资源个数分别为:3个、1个、4个、4个。由此可看出其负载的不均衡性。事实上,按照分布式哈希表的数据存储规则会造成O(log N)的不平衡因子,即系统中某些节点负责存储的数据可能比其他节点多O(log N)倍,其中N是系统中总节点数。此外,组成网络的节点可能存在异构性,即各节点在接入方式、存储空间、计算能力、用户行为等方面都存在差异。节点之间能力的差别将导致节点负载不均衡问题更加严重,会出现部分节点负载超过处理能力,而部分节点负载远远低于处理能力的负载严重不均衡现象。正是由于单跳分布式哈希表叠加网络中存在的负载不均衡现象,因此需要提供一种负载均衡方法来保证网络中各节点之间负载的均衡。
发明内容
本发明要提供一种单跳分布式哈希叠加网络中的负载均衡方法和系统,该方法均衡网络中各节点的负载,而且并没有引入额外的路由维护开销。
为了解决上述问题,本发明提供了一种单跳分布式哈希表叠加网络的负载均衡方法,包括:
所述叠加网络中的节点包括一节点标识和至少一个分割标识,所述节点标识唯一标识一个节点;
所述叠加网络中的全部分割标识将哈希表空间分为若干个哈希表区间,每个分割标识与一个哈希表区间关联;
数据资源存储在其对应的哈希表区间关联的分割标识所属的节点上。
进一步地,上述方法还可具有以下特点,所述数据资源存储在其对应的哈希表区间关联的分割标识所属的节点上是指,所述数据资源存储在其资源标识所在的哈希表区间关联的分割标识所属的节点上。
进一步地,上述方法还可具有以下特点,每个分割标识关联的哈希表区间为其前向分割标识至该分割标识自身组成的一哈希表区间,该哈希表区间包括该分割标识自身,所述前向分割标识是指在所有分割标识中,最接近该分割标识且小于该分割标识的分割标识。
进一步地,上述方法还可具有以下特点,所述节点加入叠加网络时,包括:
节点产生节点标识,根据节点标识的大小定位到其准入节点,从准入节点获取其路由表;
节点产生分割标识,从自己所产生的每个分割标识的后向分割标识所属节点处获得节点所应负责的数据资源并进行数据备份;其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
节点向其他节点广播节点加入事件消息,该消息中携带节点标识,节点包括的分割标识和节点地址信息;其他节点根据该广播更新路由表。
进一步地,上述方法还可具有以下特点,所述分割标识按照如下方式之一产生:
节点根据本身的性能确定待产生的分割标识的个数N,在分割标识空间内随机产生N个新的分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突;
或者,节点根据本身的性能确定待产生的分割标识的个数N,将分割标识空间等分为N份,并分别在N份空间内各产生一个分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突。
进一步地,上述方法还可具有以下特点,节点退出所述叠加网络时,将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
当节点负责存储的所有数据资源搬移完毕后,该节点向其他节点广播节点退出事件。
进一步地,上述方法还可具有以下特点,所述节点维护一数据查询路由表和一维护路由表,所述数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,所述维护路由表保存叠加网络中各节点的节点标识和地址信息;
所述节点查询数据资源时,根据数据资源的资源标识确定其所在的哈希表区间,根据该哈希表区间关联的分割标识,从所述数据查询路由表中获取该分割标识所属节点的节点标识,从所述维护路由表获取该分割标识所属节点的地址信息,从该分割标识所属节点获取数据资源。
本发明还提供一种单跳分布式哈希表叠加网络的负载均衡系统,包括若干个节点,其中:
所述节点,用于维护一节点标识和至少一个分割标识,所述节点标识唯一标识该节点;还用于使用该节点包括的分割标识与所述叠加网络中的其他所有节点包括的分割标识将哈希表空间分为若干个哈希表区间,将该节点包括的每个分割标识与一个哈希表区间相关联;还负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源。
进一步地,上述系统还可具有以下特点,所述节点负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源是指,所述节点负责存储资源标识在与该节点包括的分割标识关联的哈希表区间内的数据资源。
进一步地,上述系统还可具有以下特点,所述节点,用于将该节点包括的每个分割标识的前向分割标识至该分割标识自身组成的一哈希表区间作为该分割标识关联的哈希表区间,该哈希表区间包括该分割标识自身,所述前向分割标识是指在所有分割标识中,最接近该分割标识且小于该分割标识的分割标识。
进一步地,上述系统还可具有以下特点,所述节点还包括节点标识产生模块、路由维护模块、分割标识产生模块、数据管理模块和广播模块,其中:
节点标识产生模块,用于所述节点加入所述叠加网络时,产生节点标识;
路由维护模块,用于根据节点标识的大小定位到其准入节点,从准入节点获取其路由表;
分割标识产生模块,用于产生分割标识;
数据管理模块,用于从自己所产生的每个分割标识的后向分割标识所属节点处获得节点所应负责的数据资源并进行数据备份;其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
广播模块,用于在节点加入叠加网络时,向其他节点广播节点加入事件消息,该消息中携带节点标识,节点包括的分割标识和节点地址信息。
进一步地,上述系统还可具有以下特点,所述分割标识产生模块,用于按照如下方式之一产生分割标识:
根据节点本身的性能确定待产生的分割标识的个数N,在分割标识空间内随机产生N个新的分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突;
或者,根据节点本身的性能确定待产生的分割标识的个数N,将分割标识空间等分为N份,并分别在N份空间内各产生一个分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突。
进一步地,上述系统还可具有以下特点,所述节点还包括:数据管理模块和广播模块,其中:
数据管理模块,用于在节点退出所述叠加网络时,将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
广播模块,用于在节点退出叠加网络时,节点负责存储的所有数据资源搬移完毕后,向其他节点广播节点退出事件。
进一步地,上述系统还可具有以下特点,所述节点,还包括路由维护模块和查询模块,其中:
所述路由维护模块,用于维护一数据查询路由表和一维护路由表,所述数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,所述维护路由表保存叠加网络中各节点的节点标识和地址信息;
所述查询模块,用于在查询数据资源时,根据数据资源的资源标识确定其所在的哈希表区间,根据该哈希表区间关联的分割标识,从所述维护模块的数据查询路由表中获取该分割标识所属节点的节点标识,从所述维护路由表获取该分割标识所属节点的地址信息,从该分割标识所属节点获取数据资源。
本发明所述方法和系统,与现有技术的区别在于,在传统DHT网络中,节点ID既用来唯一标识节点,参与路由的维护,又与其他节点ID配合用来分割哈希空间,并将各哈希块分配给相应的节点负责管理,本发明将节点ID用于标识节点,引入分割标识分割哈希空间,不仅均衡了网络中各节点的负载,而且没有引入额外的路由维护开销。
附图说明
图1为单跳DHT网络及路由表结构图;
图2为单跳DHT网络中节点间数据存储负载不均衡示意图;
图3为本发明单跳DHT网络中负载均衡方法的示意图;
图4(a)、图4(b)为本发明节点保存的叠加网络数据查询路由表与维护路由表结构示意图;
图5为本发明新节点加入单跳DHT网络时,网络路由维护过程的示意图;
图6为本发明节点正常退出单跳DHT网络时,网络路由维护过程的示意图;
图7所示为本发明节点结构框图。
具体实施方式
下面结合附图和实施例来进一步说明本发明。
本发明的主要思想是,将传统分布式哈希叠加网络中节点ID的双重作用相分离,参与单跳分布式哈希表叠加网络的节点同时具有节点ID与分割标识两种不同属性的标识,其中,节点ID用于区分不同节点,维护分布式哈希表叠加网络;分割标识用于将哈希表空间分割成多个区间,每个分割标识与一个哈希表区间关联,每个节点包括至少一个分割标识,每个节点负责其包括的分割标识关联的哈希表区间。在一个分布式哈希表叠加网络中,每个节点ID都不相同,每个分割标识也都不相同。允许出现节点ID与分割标识相同的情况。
叠加网络中根据全部节点的全部分割标识和一定的分割规则,将哈希表空间分为多个哈希表区间。哈希表区间数量与分割标识数量相同,每个哈希表区间与一个分割标识关联,每个分割标识关联的哈希表区间为其前向分割标识至该分割标识自身组成的一哈希表区间,该哈希表区间包括该分割标识自身,对任一分割标识A,其前向分割标识指,所有分割标识中最接近分割标识A且小于分割标识A的分割标识。哈希表区间由与其关联的分割标识所属的节点负责。由于每个节点拥有一个或多个分割标识,每个节点负责一个或多个哈希表区间。
叠加网络中的每个数据资源被分配一个唯一的资源标识,若某数据资源的资源标识位于所述的某一哈希表区间内,该数据资源由与该哈希表区间关联的分割标识所属的节点保存。这样,叠加网络中的所有节点ID与分割标识组成两个不同的逻辑环路。分割标识将哈希表空间进行更精细的划分,每个分割标识负责相应的哈希块,资源标识落在该哈希块内的数据资源由该分割标识负责所属的节点保存,从而起到提升网络负载均衡效果的作用。
同时,叠加网络中的所有节点的节点ID共同维护网络的路由结构。节点加入/退出等事件消息,Keepalive保活消息等均在节点ID所组成的环路上发送。
本发明负载均衡方法如图3所示。新节点可以根据本身的性能确定需要产生的分割标识的个数N,性能高的节点可产生更多的分割标识。确定个数后,在分割标识空间内(如分割标识为二进制128位,则标识空间为0-2128-1)随机产生N个分割标识。产生的分割标识应保证不与网络中现有分割标识相冲突。
在图3中,网络有A,B,C,D四个节点,四个节点分别具有各自的节点ID:N1、N9、N28、N49。此外,网络中的每个节点均包括多个分割标识,如节点B包括三个分割标识:P8,P32,P48。分布式哈希表叠加网络中各节点的所有分割标识将全部哈希空间分为若干哈希块。每个分割标识负责一个哈希块。资源对象根据资源标识与分割标识的关系由相应的分割标识所属的节点负责保存。如节点B的三个分割标识所负责的哈希块分别为:(1,8]、(25,32]、(42,48]。资源K5与资源K30按照规则分别落在分割标识P8与P32负责的哈希块内,而分割标识P8与P32均属于节点B,则资源K5与K30均由节点B负责存储。从而可以得到在本发明该种负载均衡方法下,数据资源在各节点的存储情况为:节点A负责存储数据资源为K60、K15、K20;节点B负责存储数据资源K5、K30、K45;节点C负责存储数据资源K10、K25、K40;节点D负责存储数据资源K35、K50、K55。这样,四个节点中存储的数据资源个数均为3个。相较之图2,负载在各节点之间的分布更趋于均匀化。可见,采用这种负载均衡方法,将原分布式哈希表中一个节点负责的连续哈希块分为若干个由分割标识负责的不连续的更小的哈希块,使得资源在叠加网络中的各节点之间的保存更趋于均匀化。
由于单跳分布式哈希表叠加网络的特性,节点之间的路由维护可以在由节点ID组成的逻辑环路上进行,如Keepalive消息在A,B,C,D四个节点之间进行发送。当有节点加入/退出等影响网络拓扑的事件发生时,单跳分布式哈希表叠加网络会通过广播机制将该事件通知网络中其他节点,该广播消息也在节点ID组成的逻辑环路上进行,即广播消息也仅需要在A,B,C,D四个节点间进行发送。
在上述网络结构中,由于节点ID与分割标识的作用相互独立,因此每个节点保存两张路由表,一张用来进行数据查找,称其为数据查询路由表,另一张用来进行网络路由的维护,称其为维护路由表。两张路由表的结构如图4所示。其中,数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,维护路由表中保存叠加网络中各节点的节点标识和对应的IP地址。
下面通过实施例进一步说明本发明。
1、新节点加入过程
如图5所示,网络中有新节点加入时,包括如下步骤:
步骤501:新节点产生节点ID,并根据节点ID的大小定位到其准入节点,准入节点就是当前网络中新节点的直接后继节点。
所述节点ID可以通过对节点的特征信息进行哈希运算得到,节点的特征信息指该节点的唯一性信息,如IP地址、网卡号、或机器序号,哈希算法的选取可以是任意的;节点ID也可以由网络的运营管理者统一分配。
步骤502:新节点向准入节点发送加入请求消息。
步骤503:准入节点返回加入应答消息给新节点,并将准入节点的路由表发送给新节点。
由于是单跳DHT网络,故所述路由表应包括到网络中其他所有节点的路由信息。
步骤504:新节点根据一定的规则产生一定数量的分割标识。
分割标识的产生方式可以多样化,不同的方式对于最终网络负载均衡效果会有所影响,而分割标识的数量可以根据新节点本身的性能来决定。
下面介绍两种分割标识的产生方式,但本发明不限于下述两种方式。
方式一:
新节点根据本身的性能确定待产生的分割标识的个数N,性能高的节点可产生更多的分割标识。确定个数后,在分割标识空间内(如分割标识为二进制128位,则标识空间为0-2128-1)随机产生N个新的分割标识。产生的分割标识应保证不与网络中现有分割标识相冲突。
方式二:
新节点根据本身的性能确定待产生的分割标识的个数N,随后将分割标识空间等分为N份,并分别在N份空间内各产生一个分割标识。同样,产生的分割标识应保证不与网络中现有分割标识相冲突。
步骤505:新节点产生分割标识后,从自己所负责的每个分割标识的后向分割标识所属节点处获得新节点所应负责的数据资源并进行数据备份,后向分割标识所属节点删除新节点所负责的数据;
其中,一个分割标识A的后向分割标识就是在所有分割标识中,比A大的那些分割标识中最小的一个,且与A不属于同一个节点。
步骤506:完成数据搬移及备份后,新节点将节点加入事件消息广播至网络中所有节点处,广播消息在由节点ID组成的环路上进行。该广播消息中应包含:a、新节点的节点ID;b、新节点所拥有的分割标识;c、新节点的IP地址等信息。
步骤507:收到广播消息的各节点更新自己的路由表。
步骤508:各节点更新完路由表后返回广播消息应答。
2、节点退出过程
如图6所示,当有节点欲退出网络时,该节点称为退出节点,其过程包括:
步骤601:退出节点将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,即退出节点根据数据查询路由表将属于自己分割标识所负责的数据资源搬移至相应后向分割标识所对应节点处,该后向分割标识必须属于另外的节点,称这些节点为退出节点的接管节点。接管节点需要对接管的退出节点的相关数据进行数据备份。
步骤602:当退出节点所有的分割标识所负责的数据资源搬移完毕后,该退出节点向其维护路由表项中的其他节点广播该节点退出事件消息。
步骤603:收到该广播消息的节点更新自身的维护路由表与数据查询路由表。从维护路由表中删除该物理节点ID表项,从数据查询路由表中删除相关分割标识表项。
步骤604:节点更新完路由表后返回广播消息应答。
步骤605:退出节点确认网络中所有其他节点更新路由表完毕后,退出网络。
3、数据资源查找过程
在本发明的负载均衡方法下,可以方便的实现对数据资源的查找过程。
如在图3所示的单跳分布式哈希叠加网络中,若节点A欲查询数据资源K40,其过程如下:
步骤1:由于节点A保存有如图4所示的路由表,因此节点A可根据数据查询路由表确定数据资源的标识40落在网络的分割标识P38与P42之间,根据单跳分布式哈希叠加网络中的数据存储规则可以确定该数据资源存储在分割标识P42所属的节点N28上。
步骤2:定位到数据资源的存储节点后,节点A通过数据查询路由表获得节点N28的地址信息,并直接向该节点发起数据查询请求获得数据资源。
4、Keepalive消息维护过程
Keepalive消息用来检测对方节点是否在线。由于维护路由表的存在,每一个节点需要向维护路由表中的前向节点定期发送Keepalive消息。这样,Keepalive消息的发送在维护路由表中的各节点之间进行。
在如图3所示的网络中,各节点根据自身的维护路由表定时向其前向节点发送Keepalive消息,前向节点收到Keepalive消息后,向发送消息节点返回应答消息表示其在线。若发送消息节点长时间没有收到应答消息,或多次重试发送均无应答消息,则发送节点认为其前向节点异常退出网络,此时启动节点异常退出网络过程。
本发明还提供一种单跳分布式哈希表叠加网络的负载均衡系统,包括若干个节点,其中:
所述节点,所述节点,用于维护一节点标识和至少一个分割标识,所述节点标识唯一标识该节点;还用于使用该节点包括的分割标识与所述叠加网络中的其他所有节点包括的分割标识将哈希表空间分为若干个哈希表区间,将该节点包括的每个分割标识与一个哈希表区间相关联;还负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源。
其中,所述节点负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源是指,所述节点负责存储资源标识在与该节点包括的分割标识关联的哈希表区间内的数据资源。
其中,所述节点,用于将该节点包括的每个分割标识的前向分割标识至该分割标识自身组成的一哈希表区间作为该分割标识关联的哈希表区间,该哈希表区间包括该分割标识自身,所述前向分割标识是指在所有分割标识中,最接近该分割标识且小于该分割标识的分割标识。
进一步地,如图7所示,节点包括节点标识产生模块、分割标识产生模块、路由维护模块、数据管理模块、广播模块,其中:
节点标识产生模块,用于所述节点加入所述叠加网络时,产生节点标识;
路由维护模块,用于根据节点标识的大小定位到其准入节点,从准入节点获取其路由表;还用于维护一数据查询路由表和一维护路由表,所述数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,所述维护路由表保存叠加网络中各节点的节点标识和地址信息;
分割标识产生模块,用于产生分割标识;分割标识产生模块产生分割标识的方式见方法实施例中所述,此处不再赘述;
数据管理模块,用于从自己所产生的每个分割标识的后向分割标识所属节点处获得节点所应负责的数据资源并进行数据备份;其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;还用于在节点退出所述叠加网络时,将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
广播模块,用于在节点加入叠加网络时,向其他节点广播节点加入事件消息,该消息中携带节点标识,节点包括的分割标识和节点地址信息;还用于在节点退出叠加网络时,节点负责存储的所有数据资源搬移完毕后,向其他节点广播节点退出事件;
所述查询模块,用于在查询数据资源时,根据数据资源的资源标识确定其所在的哈希表区间,根据该哈希表区间关联的分割标识,从所述维护模块的数据查询路由表中获取该分割标识所属节点的节点标识,从所述维护路由表获取该分割标识所属节点的地址信息,从该分割标识所属节点获取数据资源。
Claims (14)
1.一种单跳分布式哈希表叠加网络的负载均衡方法,其特征在于,包括:
所述叠加网络中的节点包括一节点标识和至少一个分割标识,所述节点标识唯一标识一个节点;
所述叠加网络中的全部分割标识将哈希表空间分为若干个哈希表区间,每个分割标识与一个哈希表区间关联;
数据资源存储在其对应的哈希表区间关联的分割标识所属的节点上。
2.如权利要求1所述的方法,其特征在于,所述数据资源存储在其对应的哈希表区间关联的分割标识所属的节点上是指,所述数据资源存储在其资源标识所在的哈希表区间关联的分割标识所属的节点上。
3.如权利要求1所述的方法,其特征在于,每个分割标识关联的哈希表区间为其前向分割标识至该分割标识自身组成的一哈希表区间,该哈希表区间包括该分割标识自身,所述前向分割标识是指在所有分割标识中,最接近该分割标识且小于该分割标识的分割标识。
4.如权利要求1所述的方法,其特征在于,所述节点加入叠加网络时,包括:
节点产生节点标识,根据节点标识的大小定位到其准入节点,从准入节点获取其路由表;
节点产生分割标识,从自己所产生的每个分割标识的后向分割标识所属节点处获得节点所应负责的数据资源并进行数据备份;其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
节点向其他节点广播节点加入事件消息,该消息中携带节点标识,节点包括的分割标识和节点地址信息;其他节点根据该广播更新路由表。
5.如权利要求4所述的方法,其特征在于,所述分割标识按照如下方式之一产生:
节点根据本身的性能确定待产生的分割标识的个数N,在分割标识空间内随机产生N个新的分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突;
或者,节点根据本身的性能确定待产生的分割标识的个数N,将分割标识空间等分为N份,并分别在N份空间内各产生一个分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突。
6.如权利要求1所述的方法,其特征在于,
节点退出所述叠加网络时,将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
当节点负责存储的所有数据资源搬移完毕后,该节点向其他节点广播节点退出事件。
7.如权利要求1所述的方法,其特征在于,
所述节点维护一数据查询路由表和一维护路由表,所述数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,所述维护路由表保存叠加网络中各节点的节点标识和地址信息;
所述节点查询数据资源时,根据数据资源的资源标识确定其所在的哈希表区间,根据该哈希表区间关联的分割标识,从所述数据查询路由表中获取该分割标识所属节点的节点标识,从所述维护路由表获取该分割标识所属节点的地址信息,从该分割标识所属节点获取数据资源。
8.一种单跳分布式哈希表叠加网络的负载均衡系统,包括若干个节点,其特征在于:
所述节点,用于维护一节点标识和至少一个分割标识,所述节点标识唯一标识该节点;还用于使用该节点包括的分割标识与所述叠加网络中的其他所有节点包括的分割标识将哈希表空间分为若干个哈希表区间,将该节点包括的每个分割标识与一个哈希表区间相关联;还负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源。
9.如权利要求8所述的系统,其特征在于,所述节点负责存储与该节点包括的分割标识关联的哈希表区间对应的数据资源是指,所述节点负责存储资源标识在与该节点包括的分割标识关联的哈希表区间内的数据资源。
10.如权利要求8所述的系统,其特征在于,所述节点,用于将该节点包括的每个分割标识的前向分割标识至该分割标识自身组成的一哈希表区间作为该分割标识关联的哈希表区间,该哈希表区间包括该分割标识自身,所述前向分割标识是指在所有分割标识中,最接近该分割标识且小于该分割标识的分割标识。
11.如权利要求8所述的系统,其特征在于,所述节点还包括节点标识产生模块、路由维护模块、分割标识产生模块、数据管理模块和广播模块,其中:
节点标识产生模块,用于所述节点加入所述叠加网络时,产生节点标识;
路由维护模块,用于根据节点标识的大小定位到其准入节点,从准入节点获取其路由表;
分割标识产生模块,用于产生分割标识;
数据管理模块,用于从自己所产生的每个分割标识的后向分割标识所属节点处获得节点所应负责的数据资源并进行数据备份;其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
广播模块,用于在节点加入叠加网络时,向其他节点广播节点加入事件消息,该消息中携带节点标识,节点包括的分割标识和节点地址信息。
12.如权利要求11所述的系统,其特征在于,所述分割标识产生模块,用于按照如下方式之一产生分割标识:
根据节点本身的性能确定待产生的分割标识的个数N,在分割标识空间内随机产生N个新的分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突;
或者,根据节点本身的性能确定待产生的分割标识的个数N,将分割标识空间等分为N份,并分别在N份空间内各产生一个分割标识,产生的分割标识应保证不与叠加网络中现有分割标识相冲突。
13.如权利要求8所述的系统,其特征在于,所述节点还包括:数据管理模块和广播模块,其中:
数据管理模块,用于在节点退出所述叠加网络时,将自己负责存储的数据资源搬移至数据资源对应的哈希表区间关联的分割标识的后向分割标识所属节点处,其中,一个分割标识的后向分割标识是指在所有分割标识中,最接近该分割标识且大于该分割标识,且与该分割标识属于不同节点的分割标识;
广播模块,用于在节点退出叠加网络时,节点负责存储的所有数据资源搬移完毕后,向其他节点广播节点退出事件。
14.如权利要求8所述的系统,其特征在于,所述节点,还包括路由维护模块和查询模块,其中:
所述路由维护模块,用于维护一数据查询路由表和一维护路由表,所述数据查询路由表中保存叠加网络中各节点的节点标识及其包括的分割标识,所述维护路由表保存叠加网络中各节点的节点标识和地址信息;
所述查询模块,用于在查询数据资源时,根据数据资源的资源标识确定其所在的哈希表区间,根据该哈希表区间关联的分割标识,从所述维护模块的数据查询路由表中获取该分割标识所属节点的节点标识,从所述维护路由表获取该分割标识所属节点的地址信息,从该分割标识所属节点获取数据资源。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101739594A CN102035861A (zh) | 2009-09-24 | 2009-09-24 | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 |
PCT/CN2010/075441 WO2011035646A1 (zh) | 2009-09-24 | 2010-07-23 | 一种单跳分布式哈希表叠加网络的负载方法和节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101739594A CN102035861A (zh) | 2009-09-24 | 2009-09-24 | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102035861A true CN102035861A (zh) | 2011-04-27 |
Family
ID=43795367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101739594A Pending CN102035861A (zh) | 2009-09-24 | 2009-09-24 | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102035861A (zh) |
WO (1) | WO2011035646A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594941A (zh) * | 2012-02-22 | 2012-07-18 | 福建星网视易信息系统有限公司 | 楼宇对讲系统中设备接入和设备通信的方法 |
CN102917073A (zh) * | 2012-10-31 | 2013-02-06 | 广州市宏绩信通信设备有限公司 | 一种均衡且易于扩展的无中心云存储方法 |
CN102984185A (zh) * | 2011-09-05 | 2013-03-20 | 北京大学 | 一种分布式、多层级应用系统标识信息的同步方法及系统 |
CN103049572A (zh) * | 2013-01-04 | 2013-04-17 | 福建星网视易信息系统有限公司 | 适用于有时效保证通讯系统的点对点通讯的文件检索方法 |
CN103139079A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | P2p叠加网中路由表修复方法及p2p叠加网节点 |
CN103379138A (zh) * | 2012-04-17 | 2013-10-30 | 深圳市腾讯计算机系统有限公司 | 实现负载均衡的方法及系统和灰度发布的方法及装置 |
CN106202303A (zh) * | 2016-06-30 | 2016-12-07 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN107734008A (zh) * | 2017-09-27 | 2018-02-23 | 柏科数据技术(深圳)股份有限公司 | 一种数据存储系统中的故障处理的方法、装置、节点设备以及存储介质 |
CN111274259A (zh) * | 2020-02-16 | 2020-06-12 | 西安奥卡云数据科技有限公司 | 一种分布式存储系统中存储节点的数据更新方法 |
CN111309261A (zh) * | 2020-02-16 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 一种分布式存储系统中单节点上数据物理位置映射方法 |
US10756999B2 (en) | 2015-08-25 | 2020-08-25 | Huawei Technologies Co., Ltd. | Virtualized network function information obtaining method, apparatus, and system |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187963B (zh) * | 2020-08-20 | 2023-02-28 | 深圳华数云计算技术有限公司 | 分布式哈希表实现方法、计算机装置和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731742A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 对等计算中一种分布式哈希表 |
US20080130516A1 (en) * | 2004-12-21 | 2008-06-05 | Electronics And Telecommunications Research Institute | P2p Overplay Network Construction Method and Apparatus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5016063B2 (ja) * | 2007-02-22 | 2012-09-05 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク |
-
2009
- 2009-09-24 CN CN2009101739594A patent/CN102035861A/zh active Pending
-
2010
- 2010-07-23 WO PCT/CN2010/075441 patent/WO2011035646A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080130516A1 (en) * | 2004-12-21 | 2008-06-05 | Electronics And Telecommunications Research Institute | P2p Overplay Network Construction Method and Apparatus |
CN1731742A (zh) * | 2005-08-26 | 2006-02-08 | 南京邮电大学 | 对等计算中一种分布式哈希表 |
Non-Patent Citations (1)
Title |
---|
STOICA ION ET AL.: "Chord:A Scalable Peer-to-peer Lookup Service for Internet Applications", 《IEEE/ACM TRANSACTIONS ON NETWORKING》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984185A (zh) * | 2011-09-05 | 2013-03-20 | 北京大学 | 一种分布式、多层级应用系统标识信息的同步方法及系统 |
CN102984185B (zh) * | 2011-09-05 | 2015-12-16 | 北京大学 | 一种分布式、多层级应用系统标识信息的同步方法及系统 |
CN103139079B (zh) * | 2011-11-28 | 2018-01-19 | 中兴通讯股份有限公司 | P2p叠加网中路由表修复方法及p2p叠加网节点 |
CN103139079A (zh) * | 2011-11-28 | 2013-06-05 | 中兴通讯股份有限公司 | P2p叠加网中路由表修复方法及p2p叠加网节点 |
WO2013078887A1 (zh) * | 2011-11-28 | 2013-06-06 | 中兴通讯股份有限公司 | P2p叠加网中路由表修复方法及p2p叠加网节点 |
CN102594941B (zh) * | 2012-02-22 | 2015-06-17 | 福建星网视易信息系统有限公司 | 楼宇对讲系统中设备接入和设备通信的方法 |
CN102594941A (zh) * | 2012-02-22 | 2012-07-18 | 福建星网视易信息系统有限公司 | 楼宇对讲系统中设备接入和设备通信的方法 |
CN103379138A (zh) * | 2012-04-17 | 2013-10-30 | 深圳市腾讯计算机系统有限公司 | 实现负载均衡的方法及系统和灰度发布的方法及装置 |
CN103379138B (zh) * | 2012-04-17 | 2016-04-13 | 深圳市腾讯计算机系统有限公司 | 实现负载均衡的方法及系统和灰度发布的方法及装置 |
CN102917073A (zh) * | 2012-10-31 | 2013-02-06 | 广州市宏绩信通信设备有限公司 | 一种均衡且易于扩展的无中心云存储方法 |
CN103049572B (zh) * | 2013-01-04 | 2015-08-05 | 福建星网视易信息系统有限公司 | 适用于有时效保证通讯系统的点对点通讯的文件检索方法 |
CN103049572A (zh) * | 2013-01-04 | 2013-04-17 | 福建星网视易信息系统有限公司 | 适用于有时效保证通讯系统的点对点通讯的文件检索方法 |
US10756999B2 (en) | 2015-08-25 | 2020-08-25 | Huawei Technologies Co., Ltd. | Virtualized network function information obtaining method, apparatus, and system |
CN106202303A (zh) * | 2016-06-30 | 2016-12-07 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN106202303B (zh) * | 2016-06-30 | 2019-09-10 | 南京邮电大学 | 一种Chord路由表压缩方法及优化文件查找方法 |
CN107734008A (zh) * | 2017-09-27 | 2018-02-23 | 柏科数据技术(深圳)股份有限公司 | 一种数据存储系统中的故障处理的方法、装置、节点设备以及存储介质 |
CN111274259A (zh) * | 2020-02-16 | 2020-06-12 | 西安奥卡云数据科技有限公司 | 一种分布式存储系统中存储节点的数据更新方法 |
CN111309261A (zh) * | 2020-02-16 | 2020-06-19 | 西安奥卡云数据科技有限公司 | 一种分布式存储系统中单节点上数据物理位置映射方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2011035646A1 (zh) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035861A (zh) | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 | |
CN101102250B (zh) | 用于自组织网络的分布式散列机制 | |
Schlosser et al. | A scalable and ontology-based P2P infrastructure for semantic web services | |
CN1980169B (zh) | 用于在分布拓扑活性系统中提高群集唤起的方法 | |
CN101399743B (zh) | 在基于分布式哈希表的对等网络中查找数据的方法和系统 | |
US20130198332A1 (en) | Processing method, proxy processing agent, system and method for filling a routing table of a dht client node, router and dht client node | |
CN103475566A (zh) | 一种实时消息交换平台及分布式集群组建方法 | |
CN101771715A (zh) | 分布式网络构建存储的方法、装置和系统 | |
CN101399746A (zh) | 报文路由方法、系统、设备和选择备份资源的方法、系统 | |
CN101014045A (zh) | 服务承载网中服务管理的分布式方法 | |
WO2018121201A1 (zh) | 分布式集群服务结构及节点协同方法和装置、终端及介质 | |
CN101425958A (zh) | 一种p2p叠加网中请求应答方法、装置和系统 | |
CN108989220B (zh) | 路由方法和路由系统 | |
CN100473007C (zh) | 内容交换网络 | |
CN111935314B (zh) | 区块链系统、消息传输方法及装置 | |
JP4459999B2 (ja) | 投票を活用した無停止サービスシステム及びそのシステムにおける情報更新及び提供方法 | |
CN102868617A (zh) | 一种p2p网络路由方法及系统 | |
CN102334313B (zh) | 网络位置识别系统以及终端位置识别装置 | |
CN101729390B (zh) | 分布式哈希表dht网络及其构建方法、节点 | |
CN101989995A (zh) | 一种分布式网络的拓扑信息收集方法 | |
CN101394339A (zh) | 一种在对等网络中实现路由的方法、系统及装置 | |
CN101902388A (zh) | 可扩充的多级排序资源快速发现技术 | |
CN104144100B (zh) | 海量群组通信的实现方法和系统 | |
CN103209207A (zh) | 一种对等网络系统结构的实现方法 | |
CN103139076A (zh) | 分布式哈希表互通网络系统、域间节点及实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110427 |