WO2012055243A1 - Method and apparatus for implementing load balancing of distributed hash table network - Google Patents
Method and apparatus for implementing load balancing of distributed hash table network Download PDFInfo
- Publication number
- WO2012055243A1 WO2012055243A1 PCT/CN2011/075564 CN2011075564W WO2012055243A1 WO 2012055243 A1 WO2012055243 A1 WO 2012055243A1 CN 2011075564 W CN2011075564 W CN 2011075564W WO 2012055243 A1 WO2012055243 A1 WO 2012055243A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- virtual
- responsible
- load
- dht network
- Prior art date
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
Definitions
- the present invention relates to the field of communications, and in particular to a load balancing implementation method and apparatus for a distributed hash table (DHT) network .
- DHT distributed hash table
- P2P peer-to-peer
- its storage load balancing is mainly implemented by using a virtual identifier.
- the distributed hash overlay network there are two different attributes of the node ID and the virtual identifier.
- the node ID is used to distinguish different nodes and maintain a distributed hash table overlay network.
- the virtual identifier is used to divide the hash table space into multiple intervals and allocate them to nodes.
- each node ID is different, and each virtual identifier is also different. Allows for the case where the node ID is the same as the virtual ID.
- the hash table space is divided into multiple intervals according to all virtual identifiers of all nodes and a certain segmentation rule. The number of intervals is equal to the number of virtual identifiers, and each interval is associated with a virtual identifier.
- the hash table interval is the responsibility of the node to which the virtual identity associated with it belongs. Since each node has multiple virtual identities, each node needs to be responsible for multiple hash table intervals.
- Each data resource in the overlay network is assigned a unique resource identifier.
- the resource identifier of a data resource is located in a certain hash table interval, the data resource is located by the node corresponding to the virtual identifier that is responsible for the hash table interval. save. In this way, all node IDs and virtual identifiers in the overlay network form two different logical loops.
- nodes A, B, C and D There are four nodes A, B, C and D in the network.
- the four nodes have their own node IDs: Nl, N9, N28, N49, and assume that the four nodes have the same capabilities.
- each node has three virtual identifiers, such as Node B has three virtual identifiers: P8, P28, and P43.
- the relationship between the resource object's resource identifier and the virtual identifier is saved by the corresponding virtual identifier (for example, if the resource identifier is K5, the virtual identifier P8 is responsible).
- the hash blocks of the three virtual identifiers of the node B are: (1, 8], (23, 28], (38, 43], and the resources of the resource identifier in this space belong to Node B is responsible. Therefore, under this kind of load balancing method, the data resource space stored in the four nodes is 15 . The details are shown in Table 1. Since the resource identifiers are uniformly distributed throughout the hash space, the data resources that each node is responsible for are balanced. Table 1.
- the inventors have found that in the related art, since the virtual identification load space is aliquoted, the theoretical load space value of the node is hardly equal to the sum of the space occupied by the X virtual identifiers. Therefore, the actual space of the node is different from the space responsible for the theory.
- the node theory is responsible for a larger space, and the node is actually responsible for more or less one virtual identifier.
- the maximum deviation of the load balance is still relatively small.
- the scale of the nodes continues to expand, and the theoretical responsibility space of each node is continuously smaller. At this time, if the node is actually responsible for one virtual identifier, the load space corresponding to each virtual identifier is fixed.
- a primary object of the present invention is to provide a load balancing implementation scheme for a DHT network to address at least the above-mentioned problem of load imbalance between nodes of a DHT network due to an increase in nodes.
- a load balancing implementation method for a distributed hash table network including: first, each of the N first virtual identifiers that have been allocated to each node in the distributed hash table network
- the load space corresponding to the virtual identifier is divided into M shares, and each of the load spaces after the equalization is identified by using the second virtual identifier, where ⁇ and ⁇ are natural numbers, and ⁇ ⁇ 2;
- the second virtual identifiers are assigned to the respective nodes in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier assigned thereto.
- the method further includes: the load imbalance of one node in the DHT network exceeds a load imbalance degree threshold.
- Allocating the MXN second virtual identifiers to each node in the current DHT network includes: adjusting the number of second virtual identifiers that are responsible for each node according to the load imbalance of each node in the current DHT network, so that the load imbalance is exceeded.
- the load imbalance of nodes with load imbalance thresholds decreases.
- Assigning MXN second virtual identifiers to each node in the current DHT network includes: adding a new node to the DHT network; calculating the number of second virtual identifiers that the new node should be responsible for according to the capabilities of the new node; The second virtual identifier, which is responsible for the node whose second virtual identifier number exceeds the theoretical value, is assigned to the new node, so that the number of second virtual identifiers that the new node is responsible for is close to the number of second virtual identifiers that the new node should be responsible for.
- the method further includes: adding a new node to the DHT network.
- Allocating the MXN second virtual identifiers to each node includes: calculating the number of second virtual identifiers that the new node should be responsible for according to the capability of the new node; and the node responsible for the second virtual identifier number in the DHT network exceeding the theoretical value is responsible for Part of the second virtual identity is assigned to the new node, so that the number of second virtual identities that the new node is responsible for is close to the number of second virtual identities that the new node should be responsible for.
- Allocating a part of the second virtual identifier that is responsible for the second virtual identifier number in the DHT network to the new node is responsible for: including: according to the capabilities of each node in the DHT network, calculating the number that each node should be responsible for after joining the new node The theoretical value of the second virtual identifier; determining whether the number of the second virtual identifier currently responsible for each node exceeds the theoretical value of the node, and if so, randomly selecting all of the second virtual identifiers responsible for the node beyond the theoretical value portion The second virtual identity is assigned to the new node.
- N is determined according to the node planning and load imbalance threshold of the DHT network.
- N Determine N by: obtaining the node with the worst capability in the DHT network; determining the number N of the first virtual identifier according to the load unbalance threshold, so that the load imbalance of the node with the worst capability is less than the load imbalance Threshold.
- a load balancing implementation apparatus for a DHT network including: a splitting module, configured to correspond to each of the first virtual identifiers of the N first virtual identifiers that have been allocated to the respective nodes in the DHT network
- the load space is divided into M parts, and each of the load spaces after the equalization is identified by using the second virtual identifier, wherein ⁇ and ⁇ are natural numbers, and ⁇ ⁇ 2; the allocation module is set to be the first
- the two virtual identifiers are assigned to the respective nodes of the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier assigned thereto.
- the device further includes: a determining module, configured to determine whether the DHT network has a node whose load imbalance exceeds a load imbalance degree threshold, and if yes, trigger the splitting module.
- the apparatus further includes: a discovery module configured to discover whether a new node is added to the DHT network, and if so, triggering the splitting module.
- FIG. 1 is a schematic diagram of a single-hop DHT network according to the related art using a virtual identifier to balance a load
- FIG. 2 is a load balancing diagram in which the number of virtual identifiers in the related art is much larger than the number of nodes
- FIG. 3 is a schematic diagram of the load balancing according to the present invention
- FIG. 4 is a schematic structural diagram of a device for load balancing implementation of a preferred DHT network according to Embodiment 1 of the present invention
- FIG. 5 is a schematic structural diagram of a load balancing implementation apparatus of another preferred DHT network according to Embodiment 1 of the present invention
- FIG. 6 is a flowchart of a load balancing implementation method of a DHT network according to Embodiment 2 of the present invention
- FIG. 8 is a flowchart of a new node joining and virtual identity splitting of a distributed topology network according to Embodiment 4 of the present invention
- FIG. 9 is a flow chart of the virtual identification splitting of the centralized topology network according to the fifth embodiment of the present invention
- FIG. 10 is a schematic diagram of the virtual identification before splitting according to the sixth embodiment of the present invention
- FIG. 12 is a schematic diagram of a split virtual identifier assigned to a new node according to Embodiment 6 of the present invention.
- FIG. BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict. In order to facilitate the understanding of the present invention, the definition of the node load related parameters involved in the present invention will be described below first: Node capacity one C: A node with a large capacity can bear more load.
- the capacity of a node can be measured by resources such as the CPU, memory, bandwidth, and connection stability of the node. Specific measures can be measured by means of real-risk measurement, risk-of-risk data or dynamic updates. In general, the capacity of a node is limited by the most resource-intensive resources of its CPU, memory, bandwidth, and so on.
- the ID space is used to measure the actual load of the node. Therefore, the node capacity G can be expressed as the size of the load space (which can be simply referred to as ID space) corresponding to the virtual identifier (ID) that the node is responsible for.
- the node with the lowest performance in the DHT network can be defined as a reference value, denoted as C mm
- the capacity C of other nodes can be expressed as mC mm
- m is the performance ratio of the node to the worst performing node.
- the load imbalance of the node - LB indicates the degree of deviation between the actual load of the node and the equilibrium load under ideal conditions.
- the size of the ID space that the node is responsible for represents the section. The storage load of the point. Ideally, the size of the ID space that the node is actually responsible for is equal to the size of the ID space that should be responsible for its node capacity.
- the load imbalance of a node can be defined as: The size of the ID space that the node is actually responsible for/the size of the ID space that the node i should be responsible for - 1 where the size of the ID space that the node is actually responsible for is equal to all the virtual IDs owned by the node. The sum of the size of the ID space.
- the size of the ID space that the node should be responsible for should be based on the node capacity of all nodes in the network.
- the size of the ID space that node i should be responsible for is:
- Load Unbalance Threshold - LN The equilibrium goal to be achieved by the load balancing algorithm. That is, the absolute value of the load imbalance LB of all nodes in the network should be less than the threshold LN.
- Number of virtual nodes - V Indicates the number of virtual nodes (ie, virtual IDs) owned by each physical node. For example, you can define the worst performing node in the network (node capacity is c mm ). The number of virtual nodes owned by the node is V mm and the node with the node capacity of mC mm is [mV mm ].
- the device may split a virtual identifier assigned by each node in a DHT network when the DHT network is expanded.
- the device mainly includes: a splitting module 10 and a distribution module 20.
- the splitting module 10 is configured to divide the load space corresponding to each of the first virtual identifiers of the Z first virtual identifiers that have been allocated to the nodes in the DHT network into M shares, and use the second virtual identifier pair.
- Each of the load spaces after the equalization is identified, wherein ⁇ and ⁇ are natural numbers, JL ⁇ >2; and the allocation module 20 is configured to allocate the second virtual identifiers to each node of the current DHT network, Each node is responsible for the load space corresponding to the second virtual identifier assigned thereto. For example, if the number of the first virtual identifiers that have been assigned to the node i is ⁇ , the splitting module 10 may divide the load space corresponding to each of the first virtual identifiers that have been assigned to the node i into M shares, and add ⁇ (Ml) virtual identifiers, the newly added ⁇ (M-l) virtual identifiers and the original n first virtual identifiers identify some of the split load spaces.
- the apparatus may further include: a determining module 30, configured to determine whether the DHT network has a node whose load imbalance exceeds a load imbalance degree threshold, If so, the splitting module 10 is triggered.
- the allocation module 20 may determine, according to the capability of the new node, the first node that the new node should be responsible for. The number of virtual identities, and then calculate the difference between the number of first virtual identities that the original nodes should be responsible for after the new node joins the DHT network and the number of first virtual identities that each node is actually responsible for.
- the first virtual identifier of the virtual identifier is allocated to the new node, and after the allocation is completed, the load unbalance degree of each node is calculated, and the determining module 30 determines whether the load imbalance of each node exceeds the load unbalance degree threshold; Alternatively, after the initial construction of the DHT network is completed, the load imbalance of each node is calculated, and the determining module 30 determines whether the load imbalance of each node exceeds the load unbalance threshold.
- the splitting module 10 is triggered, and the splitting module 10 divides the load space corresponding to each first virtual identifier that each node is responsible for.
- the splitting module 10 can directly trigger the allocating module 20, and the allocating module 20 adjusts the number of second virtual identifiers that each node is responsible for according to the load imbalance degree of each node, so that the load imbalance is more than the load.
- the load imbalance of the nodes of the equalization threshold is reduced. For example, suppose there are three nodes in the DHT network: ⁇ , ⁇ , and C. The entire hash space is 0-63, and the load imbalance degree threshold is 10%.
- the entire hash space is evenly divided into 8 parts.
- the load space corresponding to the three virtual identifiers that the node B is responsible for is divided into 12 copies, and 12 virtual
- the identifier is identified, and the load space corresponding to the two virtual identifiers that the C node is responsible for is divided into eight, which are identified by eight virtual identifiers, and then the distribution module 20 adjusts the number of virtual identifiers that each node is responsible for, and takes the node A and the node.
- B is responsible A virtual identifier assigned to the node C, so that the load of each node of the inequality is: 3.1%, 3.1% and -6.2%, less than threshold load imbalance.
- the splitting module 10 is performing virtual After the identification, the allocation module 20 may not be triggered.
- the allocation module 20 calculates the number of the second virtual identifiers that the new node should be responsible for according to the capabilities of the new node, and then The portion of the second virtual identifier that is responsible for the second virtual identifier in the DHT network is responsible for the portion of the second virtual identifier assigned to the new node, and the number of the second virtual identifier that the new node is responsible for. Approaching the number of the second virtual identities that the new node should be responsible for.
- the apparatus may further include: a discovery module 40, configured to discover whether the DHT network has a new node to join, and if yes, trigger the splitting Module 10.
- the allocating module 20 may first calculate the number of second virtual identifiers (ie, theoretical values) that each node should be responsible for after the new node joins, and then the second virtual identifier that is actually responsible for exceeding the theoretical value.
- the second virtual identifier that is responsible for the node is taken out (the number of second virtual identifiers that are actually responsible for - the number of second virtual identifiers that the node should be responsible for) the second virtual identifiers are assigned to the new node.
- the above device may be set in the management service node of the DHT network, or may be set in other nodes of the DHT network (for example, the responsible node of the new node;). The above device provided by the embodiment of the present invention can be ensured by splitting the virtual identifier.
- FIG. 6 is a flowchart of a method for implementing load balancing of a DHT network according to an embodiment of the present invention. The method may be implemented by the apparatus described in Embodiment 1 above. As shown in FIG. 6, the method mainly includes the following steps: Step S602, the load space corresponding to each of the first virtual identifiers of the Z first virtual identifiers that have been allocated to each node in the DHT network is equally divided.
- the node can be determined according to the node planning of the DHT network and the preset load imbalance threshold.
- the node planning of the DHT network includes but is not limited to: the number of nodes in the DHT network and each The capabilities of the node. When the node capabilities are different, the theoretical value of the virtual ID of each node load is proportional to its capability.
- the node with the smallest capacity has the largest load imbalance. Therefore, in the embodiment of the present invention, when determining the virtual IZ in the DHT network, it is only necessary to ensure that the total number of Zs can enable the node with the smallest capacity to meet the load balancing requirement, even if the load imbalance of the node with the smallest capacity is less than Load imbalance threshold.
- the following formula needs to be satisfied: (the size of the ID space that node i is actually responsible for / the size of the ID space that node i should be responsible for) - 1 ⁇ load imbalance threshold. Assuming that the number of virtual identifiers is Z, the node i with the smallest capacity is overloaded with a ⁇ space (S/Z), where S is the entire load space of the DHT network, and Z can be determined by the following formula:
- Z may take a value of 2 to the power of n.
- the initial network planning scale has 100 nodes, and the maximum load imbalance LN is controlled below 10%. If the node capacity capacity value C is the same, according to the formula, the number of virtual identifiers Z must be greater than 1000.
- M-1 new virtual identifiers may be generated in the middle of the two connected pre-split virtual identifiers, and the two connected splits are used.
- the first virtual identifier in the virtual identifier and the M-1 new virtual identifiers are used as the M split virtual identifiers (ie, the second virtual identifier;), and the M split virtual identifiers are used to
- the load space corresponding to the virtual identifier is identified by the M payload space.
- step S602 when it is found that the load imbalance of a node in the DHT network exceeds the load unbalance threshold, step S602 is triggered. Alternatively, it is also possible to trigger step 4 S602 when a new node joins in the DHT network.
- step S604 the second virtual identifiers are allocated to the respective nodes in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifiers allocated thereto. If it is found that the load unbalance degree of a node in the DHT network exceeds the load unbalance degree threshold to trigger the foregoing step S602, the second virtual identifier that is responsible for each node may be according to the load unbalance degree of each node in the current DHT network.
- the quantity is adjusted to reduce the load imbalance of the node whose load imbalance is greater than the load imbalance degree threshold; or, after performing the foregoing step S602, the second virtual identifier of each node in the current DHT network may not be adjusted, and When a new node joins, the number of second virtual identifiers that the new node should be responsible for is calculated according to the capability of the new node, and then the number of the second virtual identifiers responsible for the DHT network exceeds the theoretical value. The second virtual identifier that is responsible for the node is assigned to the new node, and the number of the second virtual identifier that the new node is responsible for is close to the number of the second virtual identifier that the new node should be responsible for. . If there is a new node joining the network to trigger step S602, the ability of the new node, calculate the number of split virtual IDs that the new node i should be responsible for:
- the virtual identifier can be automatically segmented, so that the network has scalability, and the load balancing of the nodes of the DHT network can be ensured.
- FIG. 7 is a flowchart of splitting a virtual identifier according to an embodiment of the present invention. As shown in FIG. 7, the method mainly includes the following steps: Step S701: As a new node continuously joins the overlay network, the network scale is continuously expanded, and the load imbalance is continuously increased.
- Step S702 The management service node sends an alarm notification to the decision center (such as the network management platform); Step S703: After receiving the network load imbalance alarm, the decision center may automatically The processing may also be performed by the manual number, indicating the virtual identifier in the overlay network, such as the split M; step S704: the decision center sends a command to the management service node, requesting the management service node to split the virtual identifier; Step S705: the management service node according to the indication
- the virtual identifier is equally divided into M parts; for example, there are 8 original virtual identifiers in the overlay network, and after equal division of 4 copies, 32 virtual identifiers in the overlay network are superimposed.
- Step S706 The management service node adjusts the virtual identifiers that are responsible for each node according to the imbalance degree of each node, so that the imbalance is decreased.
- Step S707 The management service node sends a resource data adjustment notification to the overlay network access node.
- Step S708 The nodes in the data are adjusted.
- the virtual identifier may be split when the load imbalance exceeds the threshold, thereby reducing the load imbalance of the DHT network.
- the fourth embodiment of the present invention uses a distributed topology network as an example to describe the joining of new nodes and the splitting of virtual identifiers.
- FIG. 8 is a flowchart of a new node joining and virtual identity splitting in the embodiment of the present invention. As shown in FIG.
- Step S801 A new node generates a node ID, and locates according to the size of the node ID.
- the access node is the direct successor node of the new node in the current network; wherein the node ID can be obtained by hashing the feature information of the node, and the feature information of the node refers to the uniqueness information of the node.
- the selection of the hash algorithm may be arbitrary, such as the IP address, the network card number, or the machine serial number; or, the node ID may be uniformly allocated by the network operation manager.
- Step S802 The new node sends a join request message to the admission node, where the join request message carries its capability value and node identifier.
- Step S803 The admission node locates the responsible node of the new node by using the DHT algorithm (ie, the successor node of the new node) And then forwarding the join request message to the responsible node;
- Step S804 The responsible node allocates X newly split virtual identifiers to the new node according to the new node capability value; wherein, the calculation formula of X is:
- ⁇ identifies the number of all virtual identities after splitting for the entire overlay network.
- the responsible node may first split the virtual identifiers responsible for each node, and then calculate the number of split virtual identifiers that each node is responsible for after the new nodes in the overlay network are joined, and the nodes will be in each node.
- the number of virtual IDs that are currently responsible for the split minus the number of split virtual IDs that the theory is responsible for, and the number of split virtual identifiers that the node should assign to the new node (assumed to be R), and then The R virtual identifiers randomly obtained from the node are allocated to the new node until the X nodes are reached; or, the responsible node may first calculate the number of virtual identifiers in the overlay network that are theoretically responsible for each node after the new node joins.
- the number of original virtual identifiers in each node minus the difference between the number of theoretically responsible virtual identifiers is the number of virtual identifiers (set to R) that each node should assign to the new node.
- Steps S805, S806 responsible for the node to return the response message of the new node joining request; Step S807: The responsible node instructs the relevant node to perform resource migration adjustment; Step S808: The responsible node notifies the node in the overlay network to update the query routing table; Step S809: Each node in the overlay network updates its respective query routing table according to the indication.
- the virtual identifier may be split when the new node joins, so that the load imbalance of the DHT network after the new node joins is not excessive.
- Embodiment 5 The embodiment of the present invention uses a centralized topology network as an example to describe a splitting process of a virtual identifier.
- FIG. 9 is a flowchart of splitting and allocating virtual identifiers according to an embodiment of the present invention. As shown in FIG. 9, the method includes the following steps: Step S901: As new nodes continuously join the overlay network, the network scale is continuously expanded and the load is unbalanced. The degree is continuously increased. When the load imbalance threshold is reached, the management service node generates an alarm.
- Step S902 The management service node sends an alarm notification to the decision center (such as the network management platform).
- Step S903 The decision center receives the network load imbalance. After the alarm, the alarm may be automatically processed, or may be performed by the manual number, indicating the virtual identifier in the overlay network, etc.;
- Step S904 The decision center sends a command to the management service node, requesting the management service node to split the virtual identifier;
- Step S905 Management service According to the indication, the node splits the virtual identifier into M shares. For example, the overlay network has the original 8 virtual identifiers, and after equally splitting 4 copies, 32 virtual identifiers in the overlay network are superimposed.
- Step S906 The management service node receives the request message with the new node joining;
- Step S907 The management service node allocates the X split virtual identifiers to the new node according to the new node capability value; wherein, the calculation formula of X is:
- ⁇ identifies the number of all virtual identities after splitting for the entire overlay network.
- the service management node calculates the number of virtual identities that each node in the overlay network is responsible for.
- the number of virtual identifiers currently responsible for each node minus the difference between the number of theoretically responsible virtual identifiers is the number of virtual identifiers (set to R) that each node should assign to the new node.
- R virtual identities assigned to the new node are randomly selected from each node until X is reached.
- Step S908 The management service node sends a resource data adjustment notification to the overlay network access node.
- Step S909 The node in the overlay network performs data adjustment.
- Embodiment 6 The embodiment of the present invention describes a virtual identity split provided by an embodiment of the present invention by using a specific example.
- the entire hash space (assumed to be 0-63) is assumed, and the load imbalance degree threshold (LN) is 10%.
- LN load imbalance degree threshold
- the network has two nodes, A and B. The capabilities of the nodes are the same, and the entire hash space is evenly split by 8 virtual identifiers.
- the virtual identifiers P0, P16, P32, and P48 are assigned to the node A, and the virtual identifiers P8, P24, P40, and P56 are assigned to the node B.
- each node is assigned 4 virtual identifiers, and the virtual identifier is responsible for the same space, so the storage load of the two nodes is balanced.
- node A is responsible for 16 virtual identifiers
- node B is responsible for 16 Virtual logo.
- the three node theoretical assignment identifiers are 11, 11 and 10.
- five virtual identifiers need to be extracted from the virtual identifiers responsible for the nodes A and B to be assigned to the node C.
- the load imbalances are 3.1%, 3.1% and -6.2%, respectively, to meet the demand.
- the responsible node randomly selects 5 virtual identifiers from node A and node B to allocate to the new node C, as shown in FIG. From the above description, it can be seen that, through the present invention, the entire DHT overlay network system can well implement data storage load balancing, and the virtual identifier can be automatically segmented according to the scale of the network node, thereby reducing the work of identity management and identity migration. The amount, at the same time, makes the network scalable. Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices.
- the computing device may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein.
- the steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps are fabricated as a single integrated circuit module.
- the invention is not limited to any specific combination of hardware and software.
- the above is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the scope of the present invention are intended to be included within the scope of the present invention.
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
The present invention provides a method and an apparatus for implementing load balancing of a Distributed Hash Table (DHT) network, wherein the method includes: a load space corresponding to each first virtual identifier of N first virtual identifiers distributed to each node in the DHT network is divided into M portions equally, and M×N second virtual identifiers are respectively used to identify each portion of the load space after equal division, wherein M and N are natural numbers, and M≧2; the M×N second virtual identifiers are distributed to each node in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier distributed to itself. The present invention can implement data storage load balancing of DHT networks, and meanwhile reduce workloads of virtual identifier management and virtual identifier transfer.
Description
分布式哈希表网络的负载均衡实现方法 ^置 技术领域 本发明涉及通信领域,具体而言, 涉及一种分布式哈希表(Distributed Hash Table, 简称为 DHT ) 网络的负载均衡实现方法及装置。 背景技术 目前, 分布式哈希表 ( DHT ) 已成为点对点 (P2P ) 叠加网络的主要组织 形式, 其存储负载均衡主要使用虚拟标识的方法实现。 在分布式哈希叠加网络 中同时具有节点 ID与虚拟标识两种不同属性的标识。 其中, 节点 ID用于区分 不同节点, 维护分布式哈希表叠加网络; 虚拟标识用于将哈希表空间分割成多 个区间并分配到节点。 在一个分布式哈希表叠加网络中, 每个节点 ID都不相 同, 每个虚拟标识也都不相同。 允许出现节点 ID相同于虚拟标识的情况。 叠 加网络中才艮据全部节点的全部虚拟标识和一定的分割规则, 将哈希表空间分为 多个区间。 区间数量与虚拟标识数量等同,每个区间与一个虚拟标识互相关联。 哈希表区间由与其关联的虚拟标识所属的节点负责。 由于每个节点拥有多个虚 拟标识, 因此, 每个节点需要负责多个哈希表区间。 而叠加网络中的每个数据 资源被分配一个唯一的资源标识, 若某数据资源的资源标识位于某一哈希表区 间内, 该数据资源由与负责该哈希表区间的虚拟标识所在的节点保存。 这样, 叠加网络中的所有节点 ID 与虚拟标识组成两个不同的逻辑环路。 虚拟标识 ^!夺 哈希表空间进行更精细的划分, 每个虚拟标识负责相应的哈希块, 资源标识落 在该哈希块内的数据资源由该虚拟标识负责保存, 从而起到提升网络负载均衡 效果的作用。 如图 1所示,假设哈希空间为 0-63被 12个虚拟标识均等分割成 12份。 网 络中有 A、 B、 C和 D四个节点, 四个节点分别具有各自的节点 ID: Nl、 N9、 N28、 N49, 并且假设这四个节点能力相同。 则每个节点均具有三个虚拟标识, 如节点 B具有三个虚拟标识: P8、 P28和 P43。 资源对象 居资源标识与虚拟 标识的关系由相应的虚拟标识负责保存 (如资源标识为 K5的, 就由虚拟标识 P8负责)。 其中, 如表 1所示, 节点 B的三个虚拟标识所负责的哈希块分别为: ( 1 , 8]、 ( 23 , 28]、 ( 38, 43] , 资源标识在此空间的资源属于节点 B负责。 从 而可以得到在该种负载均衡方法下, 四个节点中存储的数据资源空间都是 15 ,
具体如表 1所示。 由于资源标识在整个哈希空间是均勾分布的, 因此, 每个节 点所负责的数据资源是均衡的。 表 1.The present invention relates to the field of communications, and in particular to a load balancing implementation method and apparatus for a distributed hash table (DHT) network . BACKGROUND Currently, a distributed hash table (DHT) has become a main organization form of a peer-to-peer (P2P) overlay network, and its storage load balancing is mainly implemented by using a virtual identifier. In the distributed hash overlay network, there are two different attributes of the node ID and the virtual identifier. The node ID is used to distinguish different nodes and maintain a distributed hash table overlay network. The virtual identifier is used to divide the hash table space into multiple intervals and allocate them to nodes. In a distributed hash table overlay network, each node ID is different, and each virtual identifier is also different. Allows for the case where the node ID is the same as the virtual ID. In the overlay network, the hash table space is divided into multiple intervals according to all virtual identifiers of all nodes and a certain segmentation rule. The number of intervals is equal to the number of virtual identifiers, and each interval is associated with a virtual identifier. The hash table interval is the responsibility of the node to which the virtual identity associated with it belongs. Since each node has multiple virtual identities, each node needs to be responsible for multiple hash table intervals. Each data resource in the overlay network is assigned a unique resource identifier. If the resource identifier of a data resource is located in a certain hash table interval, the data resource is located by the node corresponding to the virtual identifier that is responsible for the hash table interval. save. In this way, all node IDs and virtual identifiers in the overlay network form two different logical loops. Virtual logo ^! The hash table space is divided into finer divisions, and each virtual identifier is responsible for the corresponding hash block, and the data resource whose resource identifier falls in the hash block is stored by the virtual identifier, thereby improving the network load balancing effect. effect. As shown in FIG. 1, it is assumed that the hash space is 0-63 and is equally divided into 12 by 12 virtual identifiers. There are four nodes A, B, C and D in the network. The four nodes have their own node IDs: Nl, N9, N28, N49, and assume that the four nodes have the same capabilities. Then each node has three virtual identifiers, such as Node B has three virtual identifiers: P8, P28, and P43. The relationship between the resource object's resource identifier and the virtual identifier is saved by the corresponding virtual identifier (for example, if the resource identifier is K5, the virtual identifier P8 is responsible). As shown in Table 1, the hash blocks of the three virtual identifiers of the node B are: (1, 8], (23, 28], (38, 43], and the resources of the resource identifier in this space belong to Node B is responsible. Therefore, under this kind of load balancing method, the data resource space stored in the four nodes is 15 . The details are shown in Table 1. Since the resource identifiers are uniformly distributed throughout the hash space, the data resources that each node is responsible for are balanced. Table 1.
发明人发现, 在相关技术中, 由于虚拟标识负载空间是等份的, 而节点理 论负载空间值很难正好等于 X个虚拟标识负责空间之和。 因此节点实际负责空 间比理论负责空间会有一定区别, 当网络规模节点较少时, 节点理论负责空间 比较大, 节点实际负责空间多 /少一个虚拟标识, 负载均衡度最大偏差值还是比 较小的。 但随着业务的不断发展, 节点的规模不断扩大, 每个节点的理论负责 空间不断变小, 这时如果节点实际负责空间多一个虚拟标识, 每个虚拟标识对 应的负载空间是固定的, 其负载均衡度最大差值比较大, 从而将导致节点的负 载不均衡度超过负载不均衡度阈值, 节点间的负载不均衡。 发明内容 本发明的主要目的在于提供一种 DHT 网络的负载均衡实现方案, 以至少 解决上述由于节点增加而导致 DHT网络的节点间的负载不均衡的问题。 根据本发明的一个方面, 提供了一种分布式哈希表网络的负载均衡实现方 法, 包括: 将分布式哈希表网络中的已分配给各个节点的 N个第一虚拟标识中 各个第一虚拟标识对应的负载空间均分为 M份, 使用 ΜχΝ个第二虚拟标识对 均分后的各份负载空间进行标识, 其中, Μ和 Ν为自然数, 且 Μ≥2; 将 ΜχΝ
个第二虚拟标识分配给当前 DHT 网络中的各个节点, 由各个节点负责分配给 其的第二虚拟标识对应的负载空间。 在各个第一虚拟标识对应的负载空间均分为 M 份之前, 该方法还包括: DHT网络中一个节点的负载不均衡度超过负载不均衡度阈值。 将 M X N个第二虚拟标识分配当前 DHT网络中的各个节点包括: 根据当 前 DHT 网络中各个节点的负载不均衡度, 对各个节点负责的第二虚拟标识的 数量进行调整, 使负载不均衡度超过负载不均衡度阈值的节点的负载不均衡度 下降。 将 M X N个第二虚拟标识分配当前 DHT网络中的各个节点包括: 新节点 加入 DHT 网络; 才艮据新节点的能力, 计算新节点应该负责的第二虚拟标识的 数量; 将 DHT 网络中负责的第二虚拟标识数超过理论值的节点负责的部分第 二虚拟标识分配给新节点负责, 使新节点负责的第二虚拟标识的数量接近新节 点应该负责的第二虚拟标识的数量。 在各个第一虚拟标识对应的负载空间均分为 M份之前, 该方法还包括: 新 节点加入 DHT网络。 将 M X N个第二虚拟标识分配各个节点包括: 才艮据新节点的能力, 计算新 节点应该负责的第二虚拟标识的数量; 将 DHT 网络中负责的第二虚拟标识数 超过理论值的节点负责的部分第二虚拟标识分配给新节点负责, 使新节点负责 的第二虚拟标识的数量接近新节点应该负责的第二虚拟标识的数量。 将 DHT 网络中负责的第二虚拟标识数超过理论值的节点负责的部分第二 虚拟标识分配给新节点负责包括: 根据 DHT 网络中各个节点的能力, 计算加 入新节点后各个节点应该负责的第二虚拟标识的理论值; 判断各个节点当前负 责的第二虚拟标识的数量是否超过该节点的理论值, 如果是, 则将该节点负责 的所有第二虚拟标识中随机取超出该理论值部分的第二虚拟标识分配给新节 点。 在 DHT网络初建时, N根据 DHT网络的节点规划及负载不均衡度阈值确 定。
按照以下方式确定 N: 获取 DHT 网络中能力最差的节点; 才艮据负载不均 衡度阈值, 确定第一虚拟标识的数量 N, 使得能力最差的节点的负载不均衡度 小于负载不均衡度阈值。 根据本发明的另一方面, 提供了一种 DHT 网络的负载均衡实现装置, 包 括: 分裂模块, 设置为将 DHT网络中已分配给各个节点的 N个第一虚拟标识 中各个第一虚拟标识对应的负载空间均分为 M份, 使用 ΜχΝ个第二虚拟标识 对均分后的各份负载空间进行标识, 其中, Μ和 Ν为自然数, 且 Μ≥2; 分配 模块, 设置为将 ΜχΝ个第二虚拟标识分配给当前 DHT网络的各个节点, 由各 个节点负责分配给其的第二虚拟标识对应的负载空间。 上述装置还包括: 判断模块, 设置为判断 DHT 网络是否存在负载不均衡 度超过负载不均衡度阈值的节点, 如果是, 则触发分裂模块。 上述装置还包括: 发现模块, 设置为发现 DHT 网络是否有新节点加入, 如果是, 则触发分裂模块。 通过本发明, 对已分配给各个节点的虚拟标识进行分裂, 使每个虚拟标识 对应的负载空间减少, 从而使得每个节点的理论负载空间与实际的负载空间的 差值减少, 从而保证了 DHT网络中各个节点的负载均衡。 附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部 分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不 当限定。 在附图中: 图 1是根据相关技术的单跳 DHT网络使用虚拟标识均衡负载的示意图; 图 2是相关技术中虚拟标识的数量远大于节点的数量的负载均衡示意图; 图 3是根据本发明实施例一的 DHT网络的负载均衡实现装置的结构示意 图; 图 4是根据本发明实施例一的优选 DHT网络的负载均衡实现装置的结构 示意图;
图 5是根据本发明实施例一的另一优选 DHT网络的负载均衡实现装置的 结构示意图; 图 6是根据本发明实施例二的 DHT网络的负载均衡实现方法的流程图; 图 7是才艮据本发明实施例三的集中式拓朴网络的虚拟标识分裂的流程图; 图 8是才艮据本发明实施例四的分布式拓朴网络的新节点加入及虚拟标识分 裂的流程图; 图 9是才艮据本发明实施例五的集中式拓朴网络的虚拟标识分裂的流程图; 图 10是才艮据本发明实施例六的虚拟标识分裂前的示意图; 图 11是才艮据本发明实施例六的虚拟标识分裂后的示意图; 图 12是才艮据本发明实施例六的分裂后的虚拟标识分配给新节点的示意图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本发明。 需要说明的是, 在不 冲突的情况下, 本申请中的实施例及实施例中的特征可以相互组合。 为了便于理解本发明, 下面先对本发明涉及的节点负载相关的参数的定义 进行说明: 节点容量一 C: 容量大的节点可以承担更多的负载。 在实际应用中, 节点 的容量 可以通过节点的 CPU、 内存、 带宽、 连接稳定性等资源来衡量。 具 体的衡量方式可以釆用实 -险测量、 经-险数据或动态更新等方式。 一般来说, 节 点的容量受限于其 CPU、 内存、 带宽等资源中最紧张的资源量。 在本发明实施 例中釆用 ID空间来衡量节点实际负载情况, 因此, 节点容量 G可以表示为节 点按能力所应负责的虚拟标识 (ID ) 对应的负载空间 (可以简称为 ID 空间) 大小。例如,可以定义 DHT网络中性能最低的节点容量为一基准值,记为 Cmm, 则其他节点的容量 C可以表示为 mCmm。其中 m为该节点与性能最差节点的性 能比值。 节点的负载不均衡度一 LB:表示节点的实际负载与理想情况下的均衡负载 的偏差程度。 在本发明实施例中, 釆用节点所负责的 ID 空间的大小来表示节
点的存储负载。 理想状态下, 节点实际所负责的 ID 空间大小与按照其节点容 量所应该负责的 ID空间大小相等。 因此, 节点的负载不均衡度可以定义为: 节点实际负责的 ID空间大小 /节点 i应负责的 ID空间大小 - 1 其中, 节点实际负责的 ID空间大小等于该节点所拥有的所有虚拟 ID负责 的 ID空间大小之和。 而节点应负责的 ID空间大小应根据网络中所有节点的节 点容量综合得出。 节点 i应负责的 ID空间大小为: The inventors have found that in the related art, since the virtual identification load space is aliquoted, the theoretical load space value of the node is hardly equal to the sum of the space occupied by the X virtual identifiers. Therefore, the actual space of the node is different from the space responsible for the theory. When there are fewer network scale nodes, the node theory is responsible for a larger space, and the node is actually responsible for more or less one virtual identifier. The maximum deviation of the load balance is still relatively small. . However, with the continuous development of the business, the scale of the nodes continues to expand, and the theoretical responsibility space of each node is continuously smaller. At this time, if the node is actually responsible for one virtual identifier, the load space corresponding to each virtual identifier is fixed. The maximum difference in load balancing is relatively large, which will cause the load imbalance of the node to exceed the load imbalance threshold, and the load between nodes is not balanced. SUMMARY OF THE INVENTION A primary object of the present invention is to provide a load balancing implementation scheme for a DHT network to address at least the above-mentioned problem of load imbalance between nodes of a DHT network due to an increase in nodes. According to an aspect of the present invention, a load balancing implementation method for a distributed hash table network is provided, including: first, each of the N first virtual identifiers that have been allocated to each node in the distributed hash table network The load space corresponding to the virtual identifier is divided into M shares, and each of the load spaces after the equalization is identified by using the second virtual identifier, where Μ and Ν are natural numbers, and Μ ≥ 2; The second virtual identifiers are assigned to the respective nodes in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier assigned thereto. Before the load space corresponding to each first virtual identifier is divided into M shares, the method further includes: the load imbalance of one node in the DHT network exceeds a load imbalance degree threshold. Allocating the MXN second virtual identifiers to each node in the current DHT network includes: adjusting the number of second virtual identifiers that are responsible for each node according to the load imbalance of each node in the current DHT network, so that the load imbalance is exceeded. The load imbalance of nodes with load imbalance thresholds decreases. Assigning MXN second virtual identifiers to each node in the current DHT network includes: adding a new node to the DHT network; calculating the number of second virtual identifiers that the new node should be responsible for according to the capabilities of the new node; The second virtual identifier, which is responsible for the node whose second virtual identifier number exceeds the theoretical value, is assigned to the new node, so that the number of second virtual identifiers that the new node is responsible for is close to the number of second virtual identifiers that the new node should be responsible for. Before the load space corresponding to each first virtual identifier is divided into M shares, the method further includes: adding a new node to the DHT network. Allocating the MXN second virtual identifiers to each node includes: calculating the number of second virtual identifiers that the new node should be responsible for according to the capability of the new node; and the node responsible for the second virtual identifier number in the DHT network exceeding the theoretical value is responsible for Part of the second virtual identity is assigned to the new node, so that the number of second virtual identities that the new node is responsible for is close to the number of second virtual identities that the new node should be responsible for. Allocating a part of the second virtual identifier that is responsible for the second virtual identifier number in the DHT network to the new node is responsible for: including: according to the capabilities of each node in the DHT network, calculating the number that each node should be responsible for after joining the new node The theoretical value of the second virtual identifier; determining whether the number of the second virtual identifier currently responsible for each node exceeds the theoretical value of the node, and if so, randomly selecting all of the second virtual identifiers responsible for the node beyond the theoretical value portion The second virtual identity is assigned to the new node. When the DHT network is initially built, N is determined according to the node planning and load imbalance threshold of the DHT network. Determine N by: obtaining the node with the worst capability in the DHT network; determining the number N of the first virtual identifier according to the load unbalance threshold, so that the load imbalance of the node with the worst capability is less than the load imbalance Threshold. According to another aspect of the present invention, a load balancing implementation apparatus for a DHT network is provided, including: a splitting module, configured to correspond to each of the first virtual identifiers of the N first virtual identifiers that have been allocated to the respective nodes in the DHT network The load space is divided into M parts, and each of the load spaces after the equalization is identified by using the second virtual identifier, wherein Μ and Ν are natural numbers, and Μ ≥ 2; the allocation module is set to be the first The two virtual identifiers are assigned to the respective nodes of the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier assigned thereto. The device further includes: a determining module, configured to determine whether the DHT network has a node whose load imbalance exceeds a load imbalance degree threshold, and if yes, trigger the splitting module. The apparatus further includes: a discovery module configured to discover whether a new node is added to the DHT network, and if so, triggering the splitting module. With the present invention, the virtual identifiers assigned to the respective nodes are split, so that the load space corresponding to each virtual identifier is reduced, so that the difference between the theoretical load space of each node and the actual load space is reduced, thereby ensuring DHT. Load balancing of each node in the network. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are set to illustrate,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, In the drawings: FIG. 1 is a schematic diagram of a single-hop DHT network according to the related art using a virtual identifier to balance a load; FIG. 2 is a load balancing diagram in which the number of virtual identifiers in the related art is much larger than the number of nodes; FIG. 3 is a schematic diagram of the load balancing according to the present invention; FIG. 4 is a schematic structural diagram of a device for load balancing implementation of a preferred DHT network according to Embodiment 1 of the present invention; FIG. 5 is a schematic structural diagram of a load balancing implementation apparatus of another preferred DHT network according to Embodiment 1 of the present invention; FIG. 6 is a flowchart of a load balancing implementation method of a DHT network according to Embodiment 2 of the present invention; FIG. 8 is a flowchart of a new node joining and virtual identity splitting of a distributed topology network according to Embodiment 4 of the present invention; FIG. 9 is a flow chart of the virtual identification splitting of the centralized topology network according to the fifth embodiment of the present invention; FIG. 10 is a schematic diagram of the virtual identification before splitting according to the sixth embodiment of the present invention; FIG. 12 is a schematic diagram of a split virtual identifier assigned to a new node according to Embodiment 6 of the present invention. FIG. BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. It should be noted that the embodiments in the present application and the features in the embodiments may be combined with each other without conflict. In order to facilitate the understanding of the present invention, the definition of the node load related parameters involved in the present invention will be described below first: Node capacity one C: A node with a large capacity can bear more load. In practical applications, the capacity of a node can be measured by resources such as the CPU, memory, bandwidth, and connection stability of the node. Specific measures can be measured by means of real-risk measurement, risk-of-risk data or dynamic updates. In general, the capacity of a node is limited by the most resource-intensive resources of its CPU, memory, bandwidth, and so on. In the embodiment of the present invention, the ID space is used to measure the actual load of the node. Therefore, the node capacity G can be expressed as the size of the load space (which can be simply referred to as ID space) corresponding to the virtual identifier (ID) that the node is responsible for. For example, the node with the lowest performance in the DHT network can be defined as a reference value, denoted as C mm , and the capacity C of other nodes can be expressed as mC mm . Where m is the performance ratio of the node to the worst performing node. The load imbalance of the node - LB: indicates the degree of deviation between the actual load of the node and the equilibrium load under ideal conditions. In the embodiment of the present invention, the size of the ID space that the node is responsible for represents the section. The storage load of the point. Ideally, the size of the ID space that the node is actually responsible for is equal to the size of the ID space that should be responsible for its node capacity. Therefore, the load imbalance of a node can be defined as: The size of the ID space that the node is actually responsible for/the size of the ID space that the node i should be responsible for - 1 where the size of the ID space that the node is actually responsible for is equal to all the virtual IDs owned by the node. The sum of the size of the ID space. The size of the ID space that the node should be responsible for should be based on the node capacity of all nodes in the network. The size of the ID space that node i should be responsible for is:
N '、" N ',"
k=\ , 其中 Ν为网络中的节点数, S为总的 ID空间大小。 负载不均衡度阈值一 LN: 负载均衡算法所要实现的均衡目标。 即网络中所 有节点的负载不均衡度 LB的绝对值应都小于该阈值 LN。 虚拟节点个数一 V: 表示每个物理节点所拥有的虚拟节点 (即虚拟标识) 的数量。 例如, 可以定义网络中性能最差节点 (节点容量为 cmm ) 所拥有的虚 拟节点个数为 Vmm,节点容量为 mCmm的节点所拥有的虚拟节点个数为 [mVmm]。 实施例一 图 3是根据本发明实施例的 DHT网络的负载均衡实现装置的结构示意图, 该装置可以在 DHT网络扩展时, 对 DHT网络中的各个节点分配的虚拟标识进 行分裂。 如图 3所示, 该装置主要包括: 分裂模块 10和分配模块 20。 其中, 分裂 模块 10 , 设置为将所述 DHT网络中已分配给各个节点的 Z个第一虚拟标识中 各个第一虚拟标识对应的负载空间均分为 M份, 使用 ΜχΝ个第二虚拟标识对 均分后的各份负载空间进行标识, 其中, Μ和 Ν为自然数, JL Μ>2; 分配模 块 20, 设置为将 ΜχΝ个所述第二虚拟标识分配给当前所述 DHT网络的各个 节点, 由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。 例如, 如果已分配给节点 i的第一虚拟标识的数量为 η, 则分裂模块 10可 以将已分配给节点 i的各个第一虚拟标识对应的负载空间分为 M份,并新增 ηχ
( M-l ) 个虚拟标识, 新增的 ηχ ( M- l ) 个虚拟标识与原来的 η个第一虚拟标 识一些标识分裂后的各份负载空间。 在本发明实施例的一优选实施方式中, 如图 4所示, 该装置还可以包括: 判断模块 30, 设置为判断所述 DHT网络是否存在负载不均衡度超过负载不均 衡度阈值的节点, 如果是, 则触发所述分裂模块 10。 在实际应用中, Ν个上述第一虚拟标识分配给 DHT网络的各个节点之后, 当有新节点加入到 DHT网络时, 分配模块 20可以按照新节点的能力, 确定该 新节点应负责的第一虚拟标识的数量, 然后计算新节点加入到 DHT 网络后原 各个节点应负责的第一虚拟标识的数量与各个节点实际负责的第一虚拟标识 的数量之间的差值, 从各个节点负责的第一虚拟标识中取该差值个第一虚拟标 识分配给新节点, 分配完后, 计算各个节点的负载不均衡度, 判断模块 30 判 断各个节点的负载不均衡度是否超过负载不均衡度阈值; 或者, 在 DHT 网络 初建完成后, 计算各个节点的负载不均衡度, 判断模块 30 判断各个节点的负 载不均衡度是否超过负载不均衡度阈值。 在判断模块 30 判断其中有一个或多 个节点的负载不均衡度超过负载不均衡度阈值时, 触发分裂模块 10, 分裂模块 10将各个节点负责的各个第一虚拟标识对应的负载空间均分为 Μ份, 并新增 加 ( Μ - 1 ) Ν个虚拟标识, 使用新增加的 ( Μ - 1 ) Ν个虚拟标识和原来的 Ν个第一虚拟标识对划分后的各份负载空间进行标识。 分裂模块 10在进行虚 拟标识后, 可以直接触发分配模块 20 , 分配模块 20根据各个节点的负载不均 衡度对各个节点负责的第二虚拟标识的数量进行调整, 使其中负载不均衡度超 过负载不均衡度阈值的节点的负载不均衡度降低。 例如, 假设 DHT 网络中有 三节点: Α、 Β和 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网络的其他节点 (例如, 新节点的负责节点;)。 通过本发明实施例提供的上述装置, 可以通过分裂虚拟标识的方式, 保证k=\ , where Ν is the number of nodes in the network and S is the total ID space size. Load Unbalance Threshold - LN: The equilibrium goal to be achieved by the load balancing algorithm. That is, the absolute value of the load imbalance LB of all nodes in the network should be less than the threshold LN. Number of virtual nodes - V: Indicates the number of virtual nodes (ie, virtual IDs) owned by each physical node. For example, you can define the worst performing node in the network (node capacity is c mm ). The number of virtual nodes owned by the node is V mm and the node with the node capacity of mC mm is [mV mm ]. Embodiment 1 FIG. 3 is a schematic structural diagram of a device for load balancing implementation of a DHT network according to an embodiment of the present invention. The device may split a virtual identifier assigned by each node in a DHT network when the DHT network is expanded. As shown in FIG. 3, the device mainly includes: a splitting module 10 and a distribution module 20. The splitting module 10 is configured to divide the load space corresponding to each of the first virtual identifiers of the Z first virtual identifiers that have been allocated to the nodes in the DHT network into M shares, and use the second virtual identifier pair. Each of the load spaces after the equalization is identified, wherein Μ and Ν are natural numbers, JL Μ>2; and the allocation module 20 is configured to allocate the second virtual identifiers to each node of the current DHT network, Each node is responsible for the load space corresponding to the second virtual identifier assigned thereto. For example, if the number of the first virtual identifiers that have been assigned to the node i is η, the splitting module 10 may divide the load space corresponding to each of the first virtual identifiers that have been assigned to the node i into M shares, and add ηχ (Ml) virtual identifiers, the newly added ηχ(M-l) virtual identifiers and the original n first virtual identifiers identify some of the split load spaces. In a preferred embodiment of the present invention, as shown in FIG. 4, the apparatus may further include: a determining module 30, configured to determine whether the DHT network has a node whose load imbalance exceeds a load imbalance degree threshold, If so, the splitting module 10 is triggered. In an actual application, after the first virtual identifier is allocated to each node of the DHT network, when a new node joins the DHT network, the allocation module 20 may determine, according to the capability of the new node, the first node that the new node should be responsible for. The number of virtual identities, and then calculate the difference between the number of first virtual identities that the original nodes should be responsible for after the new node joins the DHT network and the number of first virtual identities that each node is actually responsible for. The first virtual identifier of the virtual identifier is allocated to the new node, and after the allocation is completed, the load unbalance degree of each node is calculated, and the determining module 30 determines whether the load imbalance of each node exceeds the load unbalance degree threshold; Alternatively, after the initial construction of the DHT network is completed, the load imbalance of each node is calculated, and the determining module 30 determines whether the load imbalance of each node exceeds the load unbalance threshold. When the determining module 30 determines that the load imbalance of one or more nodes exceeds the load unbalance degree threshold, the splitting module 10 is triggered, and the splitting module 10 divides the load space corresponding to each first virtual identifier that each node is responsible for. Μ ,, and newly added ( Μ - 1 ) 虚拟 a virtual logo, using the newly added ( Μ - 1 ) 虚拟 a virtual id and the original 虚拟 first virtual identities to identify the divided load spaces. After the virtual module is configured, the splitting module 10 can directly trigger the allocating module 20, and the allocating module 20 adjusts the number of second virtual identifiers that each node is responsible for according to the load imbalance degree of each node, so that the load imbalance is more than the load. The load imbalance of the nodes of the equalization threshold is reduced. For example, suppose there are three nodes in the DHT network: Α, Β, and C. The entire hash space is 0-63, and the load imbalance degree threshold is 10%. Before splitting, the entire hash space is evenly divided into 8 parts. 8 virtual ID identifiers, assuming each node's capabilities are c, then each node theory should be responsible for the space: c / (c + c + c) * 64 = 21.33, therefore, the number of virtual IDs assigned by the three nodes is 3, 3, 2, the load imbalance of each node is: 12.49 %, 12.49 % and - 14.98%, the judgment module 30 judges that the load imbalance has exceeded the load imbalance threshold, triggers the split module 10, splits The module 10 divides the load space corresponding to the three virtual identifiers that the A node is responsible for into 12, and is identified by 12 virtual identifiers. The load space corresponding to the three virtual identifiers that the node B is responsible for is divided into 12 copies, and 12 virtual The identifier is identified, and the load space corresponding to the two virtual identifiers that the C node is responsible for is divided into eight, which are identified by eight virtual identifiers, and then the distribution module 20 adjusts the number of virtual identifiers that each node is responsible for, and takes the node A and the node. B is responsible A virtual identifier assigned to the node C, so that the load of each node of the inequality is: 3.1%, 3.1% and -6.2%, less than threshold load imbalance. Or, the splitting module 10 is performing virtual After the identification, the allocation module 20 may not be triggered. When the new node joins, the allocation module 20 calculates the number of the second virtual identifiers that the new node should be responsible for according to the capabilities of the new node, and then The portion of the second virtual identifier that is responsible for the second virtual identifier in the DHT network is responsible for the portion of the second virtual identifier assigned to the new node, and the number of the second virtual identifier that the new node is responsible for. Approaching the number of the second virtual identities that the new node should be responsible for. In another preferred embodiment of the present invention, as shown in FIG. 5, the apparatus may further include: a discovery module 40, configured to discover whether the DHT network has a new node to join, and if yes, trigger the splitting Module 10. After the splitting module 10 performs the splitting function, the allocating module 20 may first calculate the number of second virtual identifiers (ie, theoretical values) that each node should be responsible for after the new node joins, and then the second virtual identifier that is actually responsible for exceeding the theoretical value. The second virtual identifier that is responsible for the node is taken out (the number of second virtual identifiers that are actually responsible for - the number of second virtual identifiers that the node should be responsible for) the second virtual identifiers are assigned to the new node. In practical applications, the above device may be set in the management service node of the DHT network, or may be set in other nodes of the DHT network (for example, the responsible node of the new node;). The above device provided by the embodiment of the present invention can be ensured by splitting the virtual identifier.
DHT网络中各个节点的负载均衡。 实施例二 图 6是根据本发明实施例的 DHT网络的负载均衡实现方法的流程图, 该 方法可以通过上述实施例一所述的装置实现。 如图 6所示, 该方法主要包括以 下步 4聚: 步骤 S602, 将所述 DHT网络中的已分配给各个节点的 Z个第一虚拟标识 中各个第一虚拟标识对应的负载空间均分为 M份, 使用 ΜχΖ个第二虚拟标识 对均分后的各份负载空间进行标识, 其中, Μ和 Ζ为自然数, 且 Μ≥2; 其中, Ζ为当前 DHT网络中虚拟标识的数量, 即 DHT网络中整个负载空 间均匀分成的虚拟空间的数量。 例如, 在 DHT网络初建时, Ζ可以才艮据 DHT 网络的节点规划及预设的负载不均衡度阈值确定; 其中, DHT 网络的节点规划包括但不限于: DHT 网络中的节点数量及各 个节点的能力。
当节点能力不同时, 每个节点负载的虚拟 ID 的理论值与其能力成正比。 由于节点实际所负责的虚拟 ID 与其理论值相比, 最多会偏差一个, 因此, 容 量最小的节点负载不均衡度最大。 因此, 在本发明实施例中, 在确定 DHT 网 络中的虚拟 I Z时, 只需保证 Z的总数可以使容量最小的节点能够满 足负载均衡要求即可, 即使容量最小的节点的负载不均衡度小于负载不均衡度 阈值。 对于 DHT网络的节点 i, 需要满足以下公式: (节点 i实际负责的 ID空 间大小 /节点 i应负责的 ID空间大小) - 1<负载不均衡度阈值。 假设虚拟标识数量为 Z , 容量最小的节点 i多负载了一个 Δ空间 ( S/Z ), 其中, S为 DHT网络的整个负载空间, 则可以通过下面公式确定 Z: Load balancing of each node in the DHT network. Embodiment 2 FIG. 6 is a flowchart of a method for implementing load balancing of a DHT network according to an embodiment of the present invention. The method may be implemented by the apparatus described in Embodiment 1 above. As shown in FIG. 6, the method mainly includes the following steps: Step S602, the load space corresponding to each of the first virtual identifiers of the Z first virtual identifiers that have been allocated to each node in the DHT network is equally divided. M shares, using a second virtual identifier to identify each load space after sharing, where Μ and Ζ are natural numbers, and Μ ≥ 2; where Ζ is the number of virtual identities in the current DHT network, ie DHT The number of virtual spaces that are evenly divided across the entire load space in the network. For example, when the DHT network is initially built, the node can be determined according to the node planning of the DHT network and the preset load imbalance threshold. The node planning of the DHT network includes but is not limited to: the number of nodes in the DHT network and each The capabilities of the node. When the node capabilities are different, the theoretical value of the virtual ID of each node load is proportional to its capability. Since the virtual ID that the node is actually responsible for is at most one deviation from its theoretical value, the node with the smallest capacity has the largest load imbalance. Therefore, in the embodiment of the present invention, when determining the virtual IZ in the DHT network, it is only necessary to ensure that the total number of Zs can enable the node with the smallest capacity to meet the load balancing requirement, even if the load imbalance of the node with the smallest capacity is less than Load imbalance threshold. For node i of the DHT network, the following formula needs to be satisfied: (the size of the ID space that node i is actually responsible for / the size of the ID space that node i should be responsible for) - 1 < load imbalance threshold. Assuming that the number of virtual identifiers is Z, the node i with the smallest capacity is overloaded with a Δ space (S/Z), where S is the entire load space of the DHT network, and Z can be determined by the following formula:
k k
CtxLN 优选地, Z的取值可以为 2的 n次冪。 例如, 网络初建规划规模 Ν有 100个节点, 最大负载不均衡度 LN控制在 10 %以下。 假如节点能力容量值 C相同, 则根据公式, 虚拟标识数量 Z必须大 于 1000个。 其中, 在使用 ΜχΖ 个虚拟标识对均分后的各份负载空间进行标识时, 可 以在两个连接的分裂前的虚拟标识中间生成 M-1个新的虚拟标识,使用两个连 接的分裂前的虚拟标识中的前一个虚拟标识及上述 M-1 个新的虚拟标识作为 M个分裂后的虚拟标识(即上述第二虚拟标识;), 利用该 M个分裂后的虚拟标 识对上述前一个虚拟标识对应的负载空间均分出的 M份负载空间进行标识。
在实际应用中, 可以是在发现 DHT 网络中的某个节点的负载不均衡度超 过负载不均衡度阈值时, 触发步骤 S602。 或者, 也可以是在 DHT网络中有新 节点加入时触发步 4聚 S602。 步骤 S604, 将 ΜχΖ个所述第二虚拟标识分配给当前所述 DHT网络中的 各个节点, 由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。 如果是发现 DHT 网络中某个节点的负载不均衡度超过负载不均衡度阈值 触发上述步骤 S602, 则可以根据当前 DHT网络中各个节点的负载不均衡度, 对各个节点负责的第二虚拟标识的数量进行调整, 使负载不均衡度超过负载不 均衡度阈值的节点的负载不均衡度下降; 或者, 在执行上述步骤 S602之后, 可以不对当前 DHT 网络中各个节点的第二虚拟标识进行调整, 而是在有新节 点加入时, 才艮据所述新节点的能力, 计算所述新节点应该负责的第二虚拟标识 的数量, 然后将 DHT 网络中负责的所述第二虚拟标识数超过理论值的节点负 责的部分所述第二虚拟标识分配给所述新节点负责, 使所述新节点负责的所述 第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟标识的数量。 如果是有新节点加入网络触发步骤 S602, 居新节点的能力, 计算新节点 i应该负责的分裂后的虚拟标识的数量 X: C t xLN Preferably, Z may take a value of 2 to the power of n. For example, the initial network planning scale has 100 nodes, and the maximum load imbalance LN is controlled below 10%. If the node capacity capacity value C is the same, according to the formula, the number of virtual identifiers Z must be greater than 1000. When the virtual load is used to identify the equally divided load spaces, M-1 new virtual identifiers may be generated in the middle of the two connected pre-split virtual identifiers, and the two connected splits are used. The first virtual identifier in the virtual identifier and the M-1 new virtual identifiers are used as the M split virtual identifiers (ie, the second virtual identifier;), and the M split virtual identifiers are used to The load space corresponding to the virtual identifier is identified by the M payload space. In an actual application, when it is found that the load imbalance of a node in the DHT network exceeds the load unbalance threshold, step S602 is triggered. Alternatively, it is also possible to trigger step 4 S602 when a new node joins in the DHT network. In step S604, the second virtual identifiers are allocated to the respective nodes in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifiers allocated thereto. If it is found that the load unbalance degree of a node in the DHT network exceeds the load unbalance degree threshold to trigger the foregoing step S602, the second virtual identifier that is responsible for each node may be according to the load unbalance degree of each node in the current DHT network. The quantity is adjusted to reduce the load imbalance of the node whose load imbalance is greater than the load imbalance degree threshold; or, after performing the foregoing step S602, the second virtual identifier of each node in the current DHT network may not be adjusted, and When a new node joins, the number of second virtual identifiers that the new node should be responsible for is calculated according to the capability of the new node, and then the number of the second virtual identifiers responsible for the DHT network exceeds the theoretical value. The second virtual identifier that is responsible for the node is assigned to the new node, and the number of the second virtual identifier that the new node is responsible for is close to the number of the second virtual identifier that the new node should be responsible for. . If there is a new node joining the network to trigger step S602, the ability of the new node, calculate the number of split virtual IDs that the new node i should be responsible for:
X=^^x (ZxM) ( 1 ), X=^^x (ZxM) ( 1 ),
然后计算新节点加入后各个节点负责的分裂后的虚拟标识的理论值 Xj : X = ^ (ZxM) , k=\ 然后从实际负责的第二虚拟标识超过其理论值的节点负责的所有第二虚 拟标识中取出(实际负责的第二虚拟标识的数量-该节点应该负责的第二虚拟标 识的数量) 个第二虚拟标识分配给新节点。 通过本发明实施例提供的上述方法, 可以对虚拟标识进行自动分割, 从而 使得网络具有可扩展性, 并可以保证 DHT网络的节点的负载均衡。 实施例三
本发明实施例以集中式拓朴网络为例, 对虚拟标识的分裂流程进行说明。 在本发明实施例中, 在 DHT 网络中有节点的负载不均衡度超过负载不均衡度 阈值的情况下进行分裂, 并在进行分裂后, 调整各个节点的负责的虚拟标识的 数量, 以使 DHT网络中节点的负载不均衡度下降。 图 7为本发明实施例中虚拟标识分裂的流程图, 如图 7所示, 主要包括以 下步骤: 步骤 S701 : 随着新节点不断加入叠加网, 网络规模不断扩大, 负载不均衡 度不断增大, 当达到不均衡度阀值时, 管理服务节点出现告警; 步骤 S702: 管理服务节点向决策中心 (如网管平台) 发送告警通知; 步骤 S703: 决策中心接收到网络负载不均衡告警后, 可以自动处理, 也可 以由人工千与, 指示叠加网中虚拟标识等分裂 M份; 步骤 S704: 决策中心向管理服务节点发送命令, 要求管理服务节点分裂虚 拟标识; 步骤 S705: 管理服务节点根据指示, 把虚拟标识进行等份分裂为 M份; 例如, 叠加网中有原 8个虚拟标识, 均等分裂 4份后, 叠加网中 32个虚 拟标识。 步骤 S706:管理服务节点根据各节点的不均衡度调整各个节点负责的虚拟 标识, 使不均衡度下降; 步骤 S707: 管理服务节点向叠加网接入节点发送资源数据调整通知; 步骤 S708: 叠加网中的节点进行数据调整。 通过本发明实施例, 可以在负载不均衡度超过阈值时, 对虚拟标识进行分 裂, 从而降氐 DHT网络的负载不均衡度。 实施例四 本发明实施例以分布式拓朴网络为例, 对新节点加入及虚拟标识分裂进行 说明。
图 8是本发明实施例中新节点加入及虚拟标识分裂的流程图,如图 8所示, 主要包括以下步 4聚: 步骤 S801 :新节点产生节点 ID,并根据节点 ID的大小定位到其准入节点, 准入节点就是当前网络中新节点的直接后继结点; 其中, 所述节点 ID可以通过对节点的特征信息进行哈希运算得到, 节点 的特征信息指该节点的唯一性信息, 如 IP地址、 网卡号、 或机器序号, 哈希算 法的选取可以是任意的; 或者, 节点 ID也可以由网络的运营管理者统一分配。 步骤 S802: 新节点向准入节点发送加入请求消息, 其中, 加入请求消息中 携带其能力值及节点标识; 步骤 S803: 准入节点 居 DHT算法确定新节点的负责节点 (即新节点的 后继节点), 然后把加入请求消息转发给负责节点; 步骤 S804: 负责节点才艮据新节点能力值, 分配 X个新分裂的虚拟标识给 新节点; 其中, X的计算公式为: Then calculate the theoretical value Xj of the split virtual identity that each node is responsible for after the new node joins: X = ^ (ZxM), k=\ and then all the second responsible for the node from the actual responsible second virtual identifier exceeding its theoretical value The virtual identifier is taken out (the number of second virtual identifiers that are actually responsible - the number of second virtual identifiers that the node should be responsible for) the second virtual identifiers are assigned to the new node. With the above method provided by the embodiment of the present invention, the virtual identifier can be automatically segmented, so that the network has scalability, and the load balancing of the nodes of the DHT network can be ensured. Embodiment 3 In the embodiment of the present invention, a centralized topology network is taken as an example to describe a splitting process of a virtual identifier. In the embodiment of the present invention, when the load unbalance degree of the node exceeds the load unbalance degree threshold in the DHT network, the splitting is performed, and after the splitting, the number of responsible virtual identifiers of each node is adjusted to make the DHT The load imbalance of nodes in the network decreases. FIG. 7 is a flowchart of splitting a virtual identifier according to an embodiment of the present invention. As shown in FIG. 7, the method mainly includes the following steps: Step S701: As a new node continuously joins the overlay network, the network scale is continuously expanded, and the load imbalance is continuously increased. When the unbalanced threshold is reached, the management service node generates an alarm; Step S702: The management service node sends an alarm notification to the decision center (such as the network management platform); Step S703: After receiving the network load imbalance alarm, the decision center may automatically The processing may also be performed by the manual number, indicating the virtual identifier in the overlay network, such as the split M; step S704: the decision center sends a command to the management service node, requesting the management service node to split the virtual identifier; Step S705: the management service node according to the indication The virtual identifier is equally divided into M parts; for example, there are 8 original virtual identifiers in the overlay network, and after equal division of 4 copies, 32 virtual identifiers in the overlay network are superimposed. Step S706: The management service node adjusts the virtual identifiers that are responsible for each node according to the imbalance degree of each node, so that the imbalance is decreased. Step S707: The management service node sends a resource data adjustment notification to the overlay network access node. Step S708: The nodes in the data are adjusted. In the embodiment of the present invention, the virtual identifier may be split when the load imbalance exceeds the threshold, thereby reducing the load imbalance of the DHT network. The fourth embodiment of the present invention uses a distributed topology network as an example to describe the joining of new nodes and the splitting of virtual identifiers. FIG. 8 is a flowchart of a new node joining and virtual identity splitting in the embodiment of the present invention. As shown in FIG. 8, the method mainly includes the following steps: Step S801: A new node generates a node ID, and locates according to the size of the node ID. The access node is the direct successor node of the new node in the current network; wherein the node ID can be obtained by hashing the feature information of the node, and the feature information of the node refers to the uniqueness information of the node. The selection of the hash algorithm may be arbitrary, such as the IP address, the network card number, or the machine serial number; or, the node ID may be uniformly allocated by the network operation manager. Step S802: The new node sends a join request message to the admission node, where the join request message carries its capability value and node identifier. Step S803: The admission node locates the responsible node of the new node by using the DHT algorithm (ie, the successor node of the new node) And then forwarding the join request message to the responsible node; Step S804: The responsible node allocates X newly split virtual identifiers to the new node according to the new node capability value; wherein, the calculation formula of X is:
, ζ为整个叠加网标识分裂后所有的虚拟标识个数。 具体地, 在该步骤中, 负责节点可以先对各个节点负责的虚拟标识进行分 裂, 然后计算出叠加网中新节点加入后, 各节点理论负责的分裂后的虚拟标识 的数量, 将各个节点中当前负责的分裂后的虚拟标识的个数减去其理论负责的 分裂后的虚拟标识的个数, 得到该节点应该分配给新节点的分裂后的虚拟标识 的数量 (假设为 R ), 然后从该节点中随机取出分裂后的 R个虚拟标识分配给 新节点, 直到达到 X个; 或者, 负责节点可以先计算出叠加网中在新节点加入后各节点理论负责的 虚拟标识个数。 各节点中原有的虚拟标识个数减去理论负责虚拟标识个数之差 就为各节点应该分配给新节点的虚拟标识数量 (设为 R )。 从各节点中随机选 取 R个虚拟标识分配给新节点的虚拟标识, 直到达到 X'个(其中, X'为 居新 节点的能力计算得到的新节点应该负责的原虚拟标识的数量), 如果这时有节
点的负载不均衡度大于负载不均衡度阈值, 则进行虚拟标识分裂, 然后调整各 个节点负责的虚拟标识, 以降低负载不均衡度。 步骤 S805、 S806: 负责节点原路返回新节点加入请求的响应消息; 步骤 S807: 负责节点指示相关节点, 进行资源数据的迁移调整; 步骤 S808: 负责节点通知叠加网中的节点更新查询路由表; 步骤 S809: 叠加网中各节点根据指示, 更新各自的查询路由表。 通过本发明实施例中, 可以在新节点加入时, 对虚拟标识进行分裂, 从而 使得新节点加入后的 DHT网络的负载不均衡度不会过大。 实施例五 本发明实施例以集中式拓朴网络为例, 对虚拟标识的分裂流程进行说明。 在本发明实施例中, 在 DHT 网络中有节点的负载不均衡度超过负载不均衡度 阈值的情况下进行分裂, 并在进行分裂后, 并不调整各个节点的负责的虚拟标 识的数量, 而是在有新节点加入后, 以分裂后的虚拟标识进行虚拟空间的分配。 图 9为本发明实施例中虚拟标识分裂和分配的流程图, 如图 9所示, 主要 包括以下步 4聚: 步骤 S901 : 随着新节点不断加入叠加网, 网络规模不断扩大, 负载不均衡 度不断增大, 当达到负载不均衡度阀值时, 管理服务节点出现告警; 步骤 S902: 管理服务节点向决策中心 (如网管平台) 发送告警通知; 步骤 S903: 决策中心接收到网络负载不均衡告警后, 可以自动处理, 也可 以由人工千与, 指示叠加网中虚拟标识等分裂 M份; 步骤 S904: 决策中心向管理服务节点发送命令, 要求管理服务节点分裂虚 拟标识; 步骤 S905: 管理服务节点根据指示, 把虚拟标识进行等份分裂为 M份; 例如, 叠加网中有原 8个虚拟标识, 均等分裂 4份后, 叠加网中 32个虚 拟标识。
步骤 S906: 管理服务节点接收到有新节点加入的请求消息; 步骤 S907: 管理服务节点根据新节点能力值, 分配 X个分裂后的虚拟标 识给新节点; 其中, X的计算公式为: , 标识 identifies the number of all virtual identities after splitting for the entire overlay network. Specifically, in this step, the responsible node may first split the virtual identifiers responsible for each node, and then calculate the number of split virtual identifiers that each node is responsible for after the new nodes in the overlay network are joined, and the nodes will be in each node. The number of virtual IDs that are currently responsible for the split, minus the number of split virtual IDs that the theory is responsible for, and the number of split virtual identifiers that the node should assign to the new node (assumed to be R), and then The R virtual identifiers randomly obtained from the node are allocated to the new node until the X nodes are reached; or, the responsible node may first calculate the number of virtual identifiers in the overlay network that are theoretically responsible for each node after the new node joins. The number of original virtual identifiers in each node minus the difference between the number of theoretically responsible virtual identifiers is the number of virtual identifiers (set to R) that each node should assign to the new node. Randomly selecting R virtual identifiers from each node to assign virtual identifiers to new nodes until X's are reached (where X' is the number of original virtual identifiers that the new node calculated by the new node's ability is responsible for) There are festivals If the load imbalance of the point is greater than the load unbalance threshold, the virtual identifier is split, and then the virtual identifiers responsible for each node are adjusted to reduce the load imbalance. Steps S805, S806: Responsible for the node to return the response message of the new node joining request; Step S807: The responsible node instructs the relevant node to perform resource migration adjustment; Step S808: The responsible node notifies the node in the overlay network to update the query routing table; Step S809: Each node in the overlay network updates its respective query routing table according to the indication. In the embodiment of the present invention, the virtual identifier may be split when the new node joins, so that the load imbalance of the DHT network after the new node joins is not excessive. Embodiment 5 The embodiment of the present invention uses a centralized topology network as an example to describe a splitting process of a virtual identifier. In the embodiment of the present invention, when the load unbalance degree of the node exceeds the load unbalance degree threshold in the DHT network, the splitting is performed, and after the splitting, the number of responsible virtual identifiers of each node is not adjusted, and After a new node is added, the virtual space is allocated by the split virtual identifier. FIG. 9 is a flowchart of splitting and allocating virtual identifiers according to an embodiment of the present invention. As shown in FIG. 9, the method includes the following steps: Step S901: As new nodes continuously join the overlay network, the network scale is continuously expanded and the load is unbalanced. The degree is continuously increased. When the load imbalance threshold is reached, the management service node generates an alarm. Step S902: The management service node sends an alarm notification to the decision center (such as the network management platform). Step S903: The decision center receives the network load imbalance. After the alarm, the alarm may be automatically processed, or may be performed by the manual number, indicating the virtual identifier in the overlay network, etc.; Step S904: The decision center sends a command to the management service node, requesting the management service node to split the virtual identifier; Step S905: Management service According to the indication, the node splits the virtual identifier into M shares. For example, the overlay network has the original 8 virtual identifiers, and after equally splitting 4 copies, 32 virtual identifiers in the overlay network are superimposed. Step S906: The management service node receives the request message with the new node joining; Step S907: The management service node allocates the X split virtual identifiers to the new node according to the new node capability value; wherein, the calculation formula of X is:
, ζ为整个叠加网标识分裂后所有的虚拟标识个数。 同样, 服务管理节点计算出叠加网中各节点理论负责的虚拟标识个数。 各 节点中当前负责的虚拟标识个数减去其理论负责虚拟标识个数之差就为各节 点应该分配给新节点的虚拟标识数量 (设为 R )。 从各节点中随机选取 R个虚 拟标识分配给新节点的虚拟标识, 直到达到 X个。 步骤 S908: 管理服务节点向叠加网接入节点发送资源数据调整通知; 步骤 S909: 叠加网中的节点进行数据调整。 实施例六 本发明实施例以一个具体的实例对本发明实施例提供的虚拟标识分裂进 行说明。 在本发明实施例中, 假设整个哈希空间 (假设为 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
由于标识是不可分割的, 三个节点的分配虚拟标识为: 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 叠加网系统可以很 好地实现数据存储负载均衡, 并且虚拟标识可以根据网络节点的规模自动分 割, 从而减少标识管理和标识迁移的工作量, 同时, 使网络具有可扩展性。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以 用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多 个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码 来实现, 从而, 可以将它们存储在存储装置中由计算装置来执行, 并且在某些 情况下, 可以以不同于此处的顺序执行所示出或描述的步骤, 或者将它们分别 制作成各个集成电路模块, 或者将它们中的多个模块或步骤制作成单个集成电 路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领 域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的 ^"神和原则 之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之 内。
, 标识 identifies the number of all virtual identities after splitting for the entire overlay network. Similarly, the service management node calculates the number of virtual identities that each node in the overlay network is responsible for. The number of virtual identifiers currently responsible for each node minus the difference between the number of theoretically responsible virtual identifiers is the number of virtual identifiers (set to R) that each node should assign to the new node. R virtual identities assigned to the new node are randomly selected from each node until X is reached. Step S908: The management service node sends a resource data adjustment notification to the overlay network access node. Step S909: The node in the overlay network performs data adjustment. Embodiment 6 The embodiment of the present invention describes a virtual identity split provided by an embodiment of the present invention by using a specific example. In the embodiment of the present invention, the entire hash space (assumed to be 0-63) is assumed, and the load imbalance degree threshold (LN) is 10%. As shown in Figure 9, the network has two nodes, A and B. The capabilities of the nodes are the same, and the entire hash space is evenly split by 8 virtual identifiers. The virtual identifiers P0, P16, P32, and P48 are assigned to the node A, and the virtual identifiers P8, P24, P40, and P56 are assigned to the node B. Because the two nodes have the same capability, each node is assigned 4 virtual identifiers, and the virtual identifier is responsible for the same space, so the storage load of the two nodes is balanced. When a new node C (capable of the same as A and B) requests to join the overlay network, then each node theory should be responsible for the space: Node A = Node B = Node C = c / (c + c + c) * 64 Since the identity is indivisible, the assigned virtual identities of the three nodes are: 3, 3, 2, at which point two nodes are actually responsible for 24 and the other is 16. Then the load imbalance of each node is 12.49%, 12.49% and - 24.98%. The load imbalance has exceeded the threshold and a split virtual ID is required. If the load space corresponding to each virtual identifier is split into M (assumed M = 4) equal parts, the entire hash space is divided by 32 virtual identifiers. As shown in Figure 10, node A is responsible for 16 virtual identifiers, and node B is responsible for 16 Virtual logo. After the port is added to the node C, the three node theoretical assignment identifiers are 11, 11 and 10. In this case, five virtual identifiers need to be extracted from the virtual identifiers responsible for the nodes A and B to be assigned to the node C. Thus, there are two nodes that are actually responsible for 22 and the other only 20. The load imbalances are 3.1%, 3.1% and -6.2%, respectively, to meet the demand. The responsible node randomly selects 5 virtual identifiers from node A and node B to allocate to the new node C, as shown in FIG. From the above description, it can be seen that, through the present invention, the entire DHT overlay network system can well implement data storage load balancing, and the virtual identifier can be automatically segmented according to the scale of the network node, thereby reducing the work of identity management and identity migration. The amount, at the same time, makes the network scalable. Obviously, those skilled in the art should understand that the above modules or steps of the present invention can be implemented by a general-purpose computing device, which can be concentrated on a single computing device or distributed over a network composed of multiple computing devices. Alternatively, they may be implemented by program code executable by the computing device, such that they may be stored in the storage device by the computing device and, in some cases, may be different from the order herein. The steps shown or described are performed, or they are separately fabricated into individual integrated circuit modules, or a plurality of modules or steps are fabricated as a single integrated circuit module. Thus, the invention is not limited to any specific combination of hardware and software. The above is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the scope of the present invention are intended to be included within the scope of the present invention.
Claims
1. 一种分布式哈希表 DHT网络的负载均衡实现方法, 包括: 1. A distributed hash table DHT network load balancing implementation method, including:
将所述 DHT网络中的已分配给各个节点的 N个第一虚拟标识中各 个第一虚拟标识对应的负载空间均分为 M份, 使用 ΜχΝ个第二虚拟标 识对均分后的各份负载空间进行标识,其中, Μ和 Ν为自然数,且 Μ≥2; All the load spaces corresponding to the first virtual identifiers of the N first virtual identifiers that have been allocated to the respective nodes in the DHT network are equally divided into M shares, and the shared workloads are divided by using the second virtual identifiers. Space is identified, where Μ and Ν are natural numbers, and Μ ≥ 2;
将 ΜχΝ个所述第二虚拟标识分配给当前所述 DHT网络中的各个节 点, 由各个节点负责分配给其的所述第二虚拟标识对应的负载空间。 Each of the second virtual identifiers is assigned to each node in the current DHT network, and each node is responsible for the load space corresponding to the second virtual identifier assigned thereto.
2. 根据权利要求 1所述的方法, 其中, 在各个所述第一虚拟标识对应的负 载空间均分为 Μ份之前, 所述方法还包括: 所述 DHT网络中一个节点 的负载不均衡度超过负载不均衡度阈值。 The method according to claim 1, wherein before the load space corresponding to each of the first virtual identifiers is equally divided, the method further includes: a load imbalance of a node in the DHT network The load imbalance threshold is exceeded.
3. 根据权利要求 2所述的方法, 其中, 所述将 ΜχΝ个所述第二虚拟标识 分配当前所述 DHT网络中的各个节点包括: The method according to claim 2, wherein the allocating the second virtual identifiers to each node in the current DHT network comprises:
根据当前所述 DHT网络中各个节点的负载不均衡度 ,对各个节点负 责的所述第二虚拟标识的数量进行调整, 使负载不均衡度超过负载不均 衡度阈值的节点的负载不均衡度下降。 Adjusting the number of the second virtual identifiers that are responsible for each node according to the load imbalance of each node in the current DHT network, so that the load imbalance of the node whose load imbalance exceeds the load imbalance degree threshold is decreased. .
4. 根据权利要求 2所述的方法, 其中, 所述将 ΜχΝ个所述第二虚拟标识 分配当前所述 DHT网络中的各个节点包括: The method according to claim 2, wherein the allocating the second virtual identifiers to each node in the current DHT network comprises:
新节点加入所述 DHT网络; a new node joins the DHT network;
根据所述新节点的能力, 计算所述新节点应该负责的所述第二虚拟 标识的数量; Calculating, according to the capability of the new node, the number of the second virtual identifiers that the new node should be responsible for;
将所述 DHT 网络中负责的所述第二虚拟标识数超过理论值的节点 负责的部分所述第二虚拟标识分配给所述新节点负责, 使所述新节点负 责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟 标识的数量。 Allocating a portion of the second virtual identifier that is responsible for the second virtual identifier number in the DHT network to a theoretical value is assigned to the new node, and the second virtual identifier responsible for the new node is responsible for The number is close to the number of the second virtual identities that the new node should be responsible for.
5. 根据权利要求 1所述的方法, 其中, 在各个所述第一虚拟标识对应的负 载空间均分为 Μ份之前, 所述方法还包括: 新节点加入所述 DHT网络。 The method according to claim 1, wherein before the load space corresponding to each of the first virtual identifiers is equally divided, the method further comprises: adding a new node to the DHT network.
6. 居权利要求 5所述的方法, 其中, 所述将 ΜχΝ个所述第二虚拟标识 分配各个所述节点包括: 6. The method of claim 5, wherein the assigning each of the second virtual identifiers to each of the nodes comprises:
根据所述新节点的能力, 计算所述新节点应该负责的所述第二虚拟 标识的数量; Calculating, according to the capability of the new node, the number of the second virtual identifiers that the new node should be responsible for;
将所述 DHT 网络中负责的所述第二虚拟标识数超过理论值的节点 负责的部分所述第二虚拟标识分配给所述新节点负责, 使所述新节点负 责的所述第二虚拟标识的数量接近所述新节点应该负责的所述第二虚拟 标识的数量。 Allocating a portion of the second virtual identifier that is responsible for the second virtual identifier number in the DHT network to a theoretical value is assigned to the new node, and the second virtual identifier responsible for the new node is responsible for The number is close to the number of the second virtual identities that the new node should be responsible for.
7. 根据权利要求 6所述的方法, 其中, 将所述 DHT网络中负责的所述第二 虚拟标识数超过理论值的节点负责的部分所述第二虚拟标识分配给所述 新节点负责包括: 7. The method according to claim 6, wherein allocating a portion of the second virtual identifier that is responsible for a node whose number of the second virtual identifiers in the DHT network exceeds a theoretical value to the new node is responsible for including :
根据所述 DHT网络中各个节点的能力,计算加入所述新节点后各个 所述节点应该负责的所述第二虚拟标识的理论值; Calculating a theoretical value of the second virtual identifier that each of the nodes should be responsible for after joining the new node according to the capabilities of each node in the DHT network;
判断各个所述节点当前负责的所述第二虚拟标识的数量是否超过该 节点的所述理论值, 如果是, 则将该节点负责的所有所述第二虚拟标识 中随机取超出该理论值部分的所述第二虚拟标识分配给所述新节点。 Determining whether the number of the second virtual identifiers currently being responsible for each of the nodes exceeds the theoretical value of the node, and if so, randomly selecting all of the second virtual identifiers that are responsible for the node to exceed the theoretical value portion The second virtual identity is assigned to the new node.
8. 根据权利要求 1至 7中任一项所述的方法, 其中, 在所述 DHT网络初建 时, 所述 Ν才艮据所述 DHT网络的节点规划及负载不均衡度阈值确定。 The method according to any one of claims 1 to 7, wherein, when the DHT network is initially built, the UI is determined according to a node plan and a load imbalance degree threshold of the DHT network.
9. 根据权利要求 8所述的方法, 其中, 按照以下方式确定所述 Ν: 9. The method according to claim 8, wherein the Ν is determined in the following manner:
获取所述 DHT网络中能力最差的节点; Obtaining the least capable node in the DHT network;
根据所述负载不均衡度阈值, 确定所述第一虚拟标识的数量 Ν, 使 得所述能力最差的节点的负载不均衡度小于所述负载不均衡度阈值。 And determining, according to the load imbalance degree threshold, the number of the first virtual identifiers, so that the load imbalance of the node with the worst capability is less than the load imbalance degree threshold.
10. —种 DHT网络的负载均衡实现装置, 包括: 10. A load balancing implementation device for a DHT network, comprising:
分裂模块, 设置为将所述 DHT网络中已分配给各个节点的 Ν个第 一虚拟标识中各个所述第一虚拟标识对应的负载空间均分为 Μ份,使用 Μ Ν个第二虚拟标识对均分后的各份负载空间进行标识, 其中, Μ和 Ν 为自然数, 且 Μ>2; 分配模块, 设置为将 ΜχΝ 个所述第二虚拟标识分配给当前所述 DHT网络的各个节点, 由各个节点负责分配给其的所述第二虚拟标识对 应的负载空间。 The splitting module is configured to divide the load space corresponding to each of the first virtual identifiers that are allocated to each node in the DHT network into two parts, and use the second virtual identifier pair The load space after the equalization is identified, wherein Μ and Ν are natural numbers, and Μ>2; And an allocating module, configured to allocate the second virtual identifier to each node of the current DHT network, where each node is responsible for a load space corresponding to the second virtual identifier allocated thereto.
11. 根据权利要求 10所述的装置, 其中, 所述装置还包括: The device according to claim 10, wherein the device further comprises:
判断模块,设置为判断所述 DHT网络是否存在负载不均衡度超过负 载不均衡度阈值的节点, 如果是, 则触发所述分裂模块。 The determining module is configured to determine whether the DHT network has a node whose load imbalance is greater than a load imbalance degree threshold, and if yes, trigger the splitting module.
12. 根据权利要求 10所述的装置, 其中, 所述装置还包括: 12. The device according to claim 10, wherein the device further comprises:
发现模块, 设置为发现所述 DHT网络是否有新节点加入, 如果是, 则触发所述分裂模块。 The discovery module is configured to discover whether the DHT network has a new node to join, and if so, trigger the splitting module.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010522803.5A CN102457428B (en) | 2010-10-27 | 2010-10-27 | The implementation of load balancing of distributed hashtable network and device |
CN201010522803.5 | 2010-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012055243A1 true WO2012055243A1 (en) | 2012-05-03 |
Family
ID=45993130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2011/075564 WO2012055243A1 (en) | 2010-10-27 | 2011-06-10 | Method and apparatus for implementing load balancing of distributed hash table network |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102457428B (en) |
WO (1) | WO2012055243A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593347B (en) * | 2012-08-14 | 2017-06-13 | 中兴通讯股份有限公司 | The method and distributed data base system of a kind of equally loaded |
CN103188345B (en) * | 2013-03-01 | 2016-05-18 | 北京邮电大学 | Distributed dynamic load management system and method |
CN104462124B (en) * | 2013-09-22 | 2018-04-06 | 中国电信股份有限公司 | Data storing platform method for organizing and data storing platform based on linear Hash table |
CN104793926B (en) * | 2014-04-17 | 2018-06-01 | 厦门极致互动网络技术股份有限公司 | Resource allocation method and system in a kind of distributed system |
CN109036439B (en) * | 2018-08-24 | 2020-07-07 | 兰州理工大学 | Perceptual hash feature extraction method and system for encrypted voice signal |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399743A (en) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | Method and system for searching data in P2P network base on distributed Hash table |
CN101523372A (en) * | 2006-10-05 | 2009-09-02 | 澳大利亚国家Ict有限公司 | Decentralised multi-user online environment |
CN101753610A (en) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | Distributed network structure method, device, system and task processing method |
-
2010
- 2010-10-27 CN CN201010522803.5A patent/CN102457428B/en not_active Expired - Fee Related
-
2011
- 2011-06-10 WO PCT/CN2011/075564 patent/WO2012055243A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101523372A (en) * | 2006-10-05 | 2009-09-02 | 澳大利亚国家Ict有限公司 | Decentralised multi-user online environment |
CN101399743A (en) * | 2007-09-28 | 2009-04-01 | 华为技术有限公司 | Method and system for searching data in P2P network base on distributed Hash table |
CN101753610A (en) * | 2008-12-19 | 2010-06-23 | 华为技术有限公司 | Distributed network structure method, device, system and task processing method |
Also Published As
Publication number | Publication date |
---|---|
CN102457428B (en) | 2015-10-21 |
CN102457428A (en) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012055242A1 (en) | Method and apparatus for realizing load balance in distributed hash table network | |
JP2024096844A (en) | Systems and methods for efficient virtualization in lossless networks | |
JP5514041B2 (en) | Identifier assignment method and program | |
CN101616184B (en) | Method of redundant data storage | |
WO2012055243A1 (en) | Method and apparatus for implementing load balancing of distributed hash table network | |
JP2014522036A (en) | Method and apparatus for allocating virtual resources in a cloud environment | |
JP6428012B2 (en) | Distributed processing program, distributed processing management apparatus, and distributed processing method | |
JP5600573B2 (en) | Load balancing apparatus and program | |
WO2011035646A1 (en) | Method and node for loading in one-hop distributed hash table overlay network | |
CN101202746B (en) | Method for generating node identifier and method and device of load balancing | |
JPWO2018220708A1 (en) | Resource allocation system, management device, method and program | |
CN102075359A (en) | Network coordinate-based server deployment method and device | |
CN109617989B (en) | Method, apparatus, system, and computer readable medium for load distribution | |
Fahim et al. | The load balancing based on the estimated finish time of tasks in cloud computing | |
CN109981794B (en) | Processing method and device based on block chain node point network and electronic equipment | |
Shi et al. | Smart shuffling in MapReduce: a solution to balance network traffic and workloads | |
US20130111068A1 (en) | Creating an optimized distribution network for the efficient transfer of data between endpoints using crossover connections | |
Potluri et al. | An efficient DHT-based elastic SDN controller | |
Patange et al. | Survey of load balancing approaches in peer-to-peer network | |
Souravlas et al. | Dynamic Load Balancing on All-to-All Personalized Communications Using the NNLB Principal | |
CN108965387A (en) | A kind of equalization methods and system improving P2P data storage survivability | |
CN114338723B (en) | Block synchronization method and device, electronic equipment and storage medium | |
US20130110999A1 (en) | Creating an optimized distribution network for the efficient transfer of data between endpoints | |
JP6946937B2 (en) | Network controller, address design method and address design program | |
Shimano et al. | Reconfiguration of Chord ring based on communication delay for lookup performance improvement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11835517 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11835517 Country of ref document: EP Kind code of ref document: A1 |