JP2013149069A - Load distribution method, distribution processing system, distribution processing device, and computer program - Google Patents

Load distribution method, distribution processing system, distribution processing device, and computer program Download PDF

Info

Publication number
JP2013149069A
JP2013149069A JP2012008794A JP2012008794A JP2013149069A JP 2013149069 A JP2013149069 A JP 2013149069A JP 2012008794 A JP2012008794 A JP 2012008794A JP 2012008794 A JP2012008794 A JP 2012008794A JP 2013149069 A JP2013149069 A JP 2013149069A
Authority
JP
Japan
Prior art keywords
node
load
proxy
candidate
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012008794A
Other languages
Japanese (ja)
Inventor
Sawako Mikami
紗和子 見上
Tadashi Sato
正 佐藤
Masabumi Watabe
正文 渡部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012008794A priority Critical patent/JP2013149069A/en
Publication of JP2013149069A publication Critical patent/JP2013149069A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a technique capable of efficiently executing load distribution in a distribution processing system.SOLUTION: In a distribution processing system including one or more distribution processing devices (nodes), a substitute node aggregate is generated for causing one or more nodes (substitute nodes) to perform all processes taken charge by a node (candidate node) with which some of processes taken charge by a node (comparison node) are shared (step S1). A prediction value (after-substitution load prediction value) of a load after substitution by each substitute node when the substitute node aggregate performs processes in place of the candidate node is obtained (step S2). When the after-substitution load prediction value for each substitute node satisfies predetermined conditions (step S3: Yes), load distribution is executed in which the substitute node aggregate is caused to perform the processes for the candidate node to make the candidate node into a free node, and the candidate node, which has become a free node, is caused to perform some of the processes taken charge by the comparison node in place of the comparison node (step S4).

Description

本発明は、1つ以上の分散処理装置によって構成される分散処理システムにおける負荷分散方法、分散処理システム、分散処理装置、および、コンピュータ・プログラムに関する。   The present invention relates to a load distribution method, a distributed processing system, a distributed processing device, and a computer program in a distributed processing system including one or more distributed processing devices.

大量のデータの処理や格納を、複数の分散処理装置(ノード)が分担する分散処理システムが知られている。このような分散処理システムにおいて、ある第1のノードの処理量が極端に増え、そのCPU(Central Processing Unit)使用率が100%に近づくなどの負荷が高い状態になることがある。この場合、このような分散処理システムは、第1のノードが実行中の処理の一部を、他の第2のノードにも分担させることにより、第1のノードの負荷を分散することができる。このように、分散処理システムでは、ノード間における負荷分散が重要な課題となる。このような負荷分散を行う技術の一例が、非特許文献1に記載されている。非特許文献1には、Chordを採用した分散処理システムにおける負荷分散について、主に述べられている。Chordとは、分散処理システムにおいて、データをその担当ノードに割り当てる技術として知られる分散ハッシュテーブル(Distributed Hash Table, DHT)の代表的なアルゴリズムである。Chordでは、リング状のキー空間が定義されている。このキー空間において、キーの値は時計回りに増加していく。また、キーとは、ハッシュ関数の値である。参加ノードは、キー空間上のいずれかのキーをノードIDとして有している。また、キー空間では、あるキーから他のキーまでの距離として、時計回り方向の長さが定義されている。ここで、あるキーからの距離が最も近いノードを、そのキーのサクセッサという。また、あるキーからの距離が最も遠いノードを、そのキーのプレディセッサという。Chordでは、あるデータは、そのデータから算出されるキーのサクセッサによって担当される。つまり、各ノードは、自ノードのプレディセッサのノードIDより大きく自ノードのノードIDまでのキーを担当範囲とする。このようなChordを採用した分散処理システムにおける負荷分散について、非特許文献1に記載された技術を以下に述べる。   There is known a distributed processing system in which a plurality of distributed processing devices (nodes) share processing and storage of a large amount of data. In such a distributed processing system, there is a case where the processing amount of a certain first node is extremely increased and a load such as a CPU (Central Processing Unit) usage rate approaches 100% is high. In this case, such a distributed processing system can distribute the load of the first node by sharing a part of the processing being executed by the first node with other second nodes. . Thus, in a distributed processing system, load distribution among nodes becomes an important issue. An example of a technique for performing such load balancing is described in Non-Patent Document 1. Non-Patent Document 1 mainly describes load distribution in a distributed processing system employing Chord. Chord is a typical algorithm of a distributed hash table (Distributed Hash Table, DHT) known as a technique for assigning data to a node in charge in a distributed processing system. In Chord, a ring-shaped key space is defined. In this key space, the value of the key increases clockwise. The key is a hash function value. The participating node has any key on the key space as a node ID. In the key space, a length in the clockwise direction is defined as a distance from one key to another key. Here, the node closest to a key is called the successor of that key. The node farthest from a key is called the predecessor for that key. In Chord, certain data is handled by a key successor calculated from the data. That is, each node takes a key that is larger than the node ID of the predecessor of the own node and reaches the node ID of the own node. A technique described in Non-Patent Document 1 will be described below for load distribution in a distributed processing system employing such Chord.

各ノード(ノードa)は、ランダムに選択した他のノード(ノードx)の負荷の値を取得し、ノードxの負荷の値(l_x)とノードaの負荷の値(l_a)との関係がl_x≦ε×l_a(εは、0<ε<1の定数、例えば0.25)であるとき、以下のcase1〜case3のいずれかの処理を行う。なお、ノードxのサクセッサをノードyとする。
<case1:ノードaがノードxのサクセッサである場合>
ノードaおよびノードxの負荷が均等になるように、ノードaが保持するデータの一部をノードxに移動する。
<case2:ノードaがノードxのサクセッサではなく、ノードaの負荷の値が、ノードyの負荷の値以下の場合>
ノードxおよびノードyの負荷の値が均等になるように、ノードyが保持するデータの一部をノードxに移動する。
<case3:ノードaがノードxのサクセッサではなく、ノードaの負荷の値がノードyの負荷の値より大きい場合>
ノードxが保持する全データをノードyに移動する。すなわち、ノードxが処理していた全てのデータをノードyが担当することになる。ノードaは、ノードaおよびノードxの負荷の値が均等になるように、ノードaが保持するデータの一部をノードxに移動する。
Each node (node a) acquires the load value of another node (node x) selected at random, and the relationship between the load value (l_x) of node x and the load value (l_a) of node a is When l_x ≦ ε × l_a (ε is a constant of 0 <ε <1, for example, 0.25), any one of the following cases 1 to 3 is performed. Note that the successor of node x is node y.
<Case 1: When node a is a successor of node x>
A part of the data held by the node a is moved to the node x so that the loads on the node a and the node x are equalized.
<Case 2: When the node a is not the successor of the node x and the load value of the node a is equal to or less than the load value of the node y>
Part of the data held by the node y is moved to the node x so that the load values of the node x and the node y are equalized.
<Case 3: When the node a is not the successor of the node x and the load value of the node a is larger than the load value of the node y>
All data held by the node x is moved to the node y. That is, the node y takes charge of all data processed by the node x. The node a moves a part of the data held by the node a to the node x so that the load values of the node a and the node x are equal.

case1〜case3について具体例で説明する。図12に示すように、ノードaからノードhまでの8つのノードによって構成される分散処理システムを想定する。図12において、各ノードは、リング上のキー空間900上で図示の順に並ぶノードIDをそれぞれ有している。また、各ノードを示す図形の横に示した数値は、各ノードの負荷を表している。   Cases 1 to 3 will be described using specific examples. As shown in FIG. 12, a distributed processing system composed of eight nodes from node a to node h is assumed. In FIG. 12, each node has node IDs arranged in the order shown in the key space 900 on the ring. Further, the numerical value shown beside the graphic indicating each node represents the load of each node.

<case1>
ノードaがノードhの負荷の値(l_h)を取得したとする。ここで、l_h(10%)≦ε×l_a(80%)であり、ノードaはノードhのサクセッサである。したがって、この場合は、case1に相当する。そこで、ノードaの負荷の値を減らすため、ノードaおよびノードhの負荷の値が均等になるように、ノードaは、保持するデータの一部をノードhに移動する。この結果、ノードaおよびノードhの負荷の値は、それぞれ45%となる。また、データ移動前に、ノードaおよびノードhがそれぞれ担当するキー範囲が、[151, 190]および[100, 150]であったとする。なお、[k1, k2]は、k1以上k2以下のキー範囲を表す。ここで、キーが[151, 170]であるデータをノードaからノードhに移動させたとすると、ノードaおよびノードhが新たに担当するキー範囲は、[171, 190]および[100, 170]になる。
<Case 1>
It is assumed that the node a has acquired the load value (l_h) of the node h. Here, l_h (10%) ≦ ε × l_a (80%), and node a is a successor of node h. Therefore, this case corresponds to case1. Therefore, in order to reduce the load value of the node a, the node a moves a part of the held data to the node h so that the load values of the node a and the node h are equal. As a result, the load values of the node a and the node h are 45%, respectively. Further, it is assumed that the key ranges handled by the node a and the node h are [151, 190] and [100, 150] before the data movement. [K1, k2] represents a key range from k1 to k2. Here, if the data whose key is [151, 170] is moved from node a to node h, the key ranges newly assigned to node a and node h are [171, 190] and [100, 170]. become.

<case2>
ノードaがノードbの負荷の値(l_b)を取得したとする。ここで、l_b(15%)≦ε×l_a(80%)である。また、ノードaがノードbのサクセッサではなく、ノードaの負荷の値(l_a=80%)が、ノードbのサクセッサであるノードcの負荷の値(l_c=85%)以下である。したがって、この場合は、case2に相当する。そこで、負荷の値が高いノードcの負荷を分散するため、ノードbおよびノードcの負荷の値が均等になるように、ノードcは、保持するデータの一部をノードbに移動する。この結果、ノードaの負荷の値は80%(変更なし)、ノードbの負荷の値は50%、ノードcの負荷の値は50%になる。また、データ移動前にノードbおよびノードcがそれぞれ担当するキー範囲が[191, 250]、[251, 300]であったとする。ここで、キーが[251, 280]であるデータをノードcからノードbに移動させたとすると、ノードbおよびノードcが新たに担当するキー範囲は、[191, 280]および[281, 300]になる。また、ノードaが担当するキーの範囲は変わらない。
<Case 2>
It is assumed that the node a has acquired the load value (l_b) of the node b. Here, l_b (15%) ≦ ε × l_a (80%). The node a is not the successor of the node b, and the load value of the node a (l_a = 80%) is equal to or less than the load value of the node c that is the successor of the node b (l_c = 85%). Therefore, this case corresponds to case2. Therefore, in order to distribute the load of the node c having a high load value, the node c moves a part of the held data to the node b so that the load values of the node b and the node c are equalized. As a result, the load value of node a is 80% (no change), the load value of node b is 50%, and the load value of node c is 50%. Further, it is assumed that the key ranges handled by the node b and the node c before the data movement are [191, 250] and [251, 300], respectively. Here, if the data whose key is [251, 280] is moved from the node c to the node b, the key ranges newly assigned to the node b and the node c are [191, 280] and [281, 300]. become. In addition, the range of keys that node a is in charge of does not change.

<case3>
ノードaがノードdの負荷の値(l_d)を取得したとする。ここで、l_d(20%)≦ε×l_a(80%)である。また、ノードaがノードdのサクセッサではなく、ノードaの負荷の値(l_a=80%)が、ノードdのサクセッサであるノードeの負荷の値(l_e=30%)より大きい。したがって、この場合は、case3に相当する。そこで、負荷の値が高いノードaの負荷を分散するため、ノードdは、保持するデータをノードeに移動して空きノードとなる。そして、ノードaは、ノードaの負荷の値が半分になるように、保持するデータをノードdに移動する。この結果ノードaの負荷の値は40%、ノードdの負荷の値は40%、ノードeの負荷の値は50%になる。また、データ移動前にノードa、ノードdおよびノードeのそれぞれが担当するキーの範囲が[151, 190]、[301, 380]および[381, 500]であったとする。ここで、キーが[170, 190]のデータをノードaからノードdに移動させたとすると、ノードa、ノードdおよびノードeがそれぞれ新たに担当するキー範囲は[151, 169]、[170, 190]および[301, 500]になる。
<Case 3>
It is assumed that the node a has acquired the load value (l_d) of the node d. Here, l_d (20%) ≦ ε × l_a (80%). Further, the node a is not the successor of the node d, and the load value of the node a (l_a = 80%) is larger than the load value of the node e which is the successor of the node d (l_e = 30%). Therefore, this case corresponds to case3. Therefore, in order to distribute the load of the node a having a high load value, the node d moves the held data to the node e and becomes an empty node. Then, the node a moves the data to be held to the node d so that the load value of the node a is halved. As a result, the load value of the node a is 40%, the load value of the node d is 40%, and the load value of the node e is 50%. Further, it is assumed that the key ranges assigned to the node a, the node d, and the node e before the data movement are [151, 190], [301, 380], and [381, 500]. Here, if the data whose key is [170, 190] is moved from node a to node d, the key ranges newly assigned to node a, node d, and node e are [151, 169], [170, 190] and [301, 500].

このように、非特許文献1に記載された技術は、分散処理システムにおいて、負荷の値が高いノードの負荷を軽減することができる。   As described above, the technique described in Non-Patent Document 1 can reduce the load of a node having a high load value in the distributed processing system.

David R. Karger, Matthias Ruhl著,“Simple Efficient Load Balancing Algorithms for Peer-to-Peer Systems”,Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures (SPAA’04), 2004David R. Karger, Matthias Ruhl, “Simple Efficient Load Balancing Algorithms for Peer-to-Peer Systems”, Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures (SPAA’04), 2004

分散処理システムにおいて、負荷の高い第1のノードの処理を他の第2のノードに分散させるには、第2のノードが何も処理を実行していない状態(以降、このような状態のノードを空きノードともいう)であるか、少量の処理しか実行しておらず負荷が低い状態であることが前提となる。そこで、非特許文献1に記載された技術は、case3において、第1のノードの負荷を分散するために、ランダムに第2のノードを選択し、第2のノードが現在実行中の処理のすべてを、この第2のノードのサクセッサである第3のノードに担当させる。これにより、非特許文献1に記載された技術は、第2のノードを空きノードとしている。   In a distributed processing system, in order to distribute the processing of the first node having a high load to other second nodes, the second node is not executing any processing (hereinafter, a node in such a state). Is also referred to as an empty node), or it is assumed that only a small amount of processing is executed and the load is low. Therefore, in the technique described in Non-Patent Document 1, in case 3, in order to distribute the load of the first node, the second node is selected at random, and all the processes currently being executed by the second node are selected. Is assigned to the third node which is the successor of the second node. As a result, the technique described in Non-Patent Document 1 uses the second node as an empty node.

しかしながら、非特許文献1に記載された技術は、第3のノードの負荷がどのように変化するか考慮せずに第2のノードの処理を代行させるため、第3のノードの負荷が大きくなりすぎる場合がある。このため、負荷が大きくなりすぎた第3のノードの負荷をさらに分散させる必要が生じる場合もある。その結果、非特許文献1に記載された技術は、負荷分散の回数を増大させることもあり、負荷分散を効率よく実行することができない。   However, since the technique described in Non-Patent Document 1 substitutes the processing of the second node without considering how the load of the third node changes, the load of the third node increases. It may be too much. For this reason, it may be necessary to further distribute the load of the third node that has become too heavy. As a result, the technique described in Non-Patent Document 1 may increase the number of times of load distribution and cannot perform load distribution efficiently.

本発明は、上述の課題を解決するためになされたもので、分散処理システムにおける負荷分散をより効率的に実行可能な技術を提供することを目的とする。   SUMMARY An advantage of some aspects of the invention is to provide a technique capable of more efficiently executing load distribution in a distributed processing system.

本発明の負荷分散方法は、1つ以上の分散処理装置(ノード)によって構成される分散処理システムにおいて、あるノード(比較ノード)が担当する処理の一部を分担させる候補となるノード(候補ノード)について、前記候補ノードが担当している処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成し、前記代行ノード集合が前記候補ノードの処理を代行する場合の前記各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求め、前記各代行ノードの代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行する。   The load distribution method according to the present invention is a node (candidate node) that is a candidate for sharing a part of processing that a certain node (comparison node) is responsible for in a distributed processing system constituted by one or more distributed processing devices (nodes). ), A proxy node set is created that substitutes all of the processes handled by the candidate node by using one or more nodes (proxy nodes), and the proxy node set acts as a proxy for the candidate node A substitute load prediction value (post-substitution load prediction value) of each of the proxy nodes of the proxy node, and when the post-substitution load prediction value of the proxy node satisfies a predetermined condition, the processing of the candidate node is performed In addition to making the candidate node an empty node on behalf of a node set, a part of the processing handled by the comparison node is assigned to the candidate node that has become an empty node To perform load balancing.

また、本発明の分散処理システムは、1つ以上の分散処理装置(ノード)によって構成される分散処理システムであって、他のノード(比較ノード)が担当する処理の一部を分担する候補となる候補ノードは、自ノードが担当する処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、を備え、前記代行ノードは、前記候補ノードに対して自ノードの負荷の値を送信する負荷送信部と、前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、を備え、前記比較ノードは、前記代行後負荷予測値を受信する代行後負荷予測値受信部と、前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、決定された負荷分散を実行する負荷分散実行部と、を備える。   The distributed processing system according to the present invention is a distributed processing system including one or more distributed processing devices (nodes), and a candidate for sharing a part of processing handled by another node (comparison node). The candidate node consists of a proxy node set creation unit that creates a proxy node set that substitutes one or more nodes (proxy nodes) for all the processes that the node is in charge of, and sets the load value of each proxy node. Based on the proxy node load receiving unit to receive and the load value of each proxy node, a predicted value of the load after proxy of each proxy node when the proxy node set performs processing of the candidate node (after proxy) A post-substitution load prediction value calculation unit for obtaining a load prediction value), a post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node, and a load component determined by the comparison node A load distribution execution unit that executes the load distribution unit, and the proxy node transmits a load value of its own node to the candidate node, and a load that executes load distribution determined by the comparison node A distributed execution unit, and the comparison node receives a post-substitution load prediction value receiving unit, and if the post-substitution load prediction value satisfies a predetermined condition, Performing a load distribution in which the candidate node is made a vacant node by substituting the process to the proxy node set, and part of the process handled by the comparison node is shared by the candidate node that has become a vacant node A load distribution determination unit for determining; and a load distribution execution unit for executing the determined load distribution.

また、本発明の分散処理装置は、分散処理システムを構成する分散処理装置(ノード)であって、自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、を備える。   The distributed processing apparatus of the present invention is a distributed processing apparatus (node) constituting a distributed processing system, and the own node is a candidate for sharing a part of processing handled by another node (comparison node). A proxy node set creation unit that creates a proxy node set for substituting one or more other nodes (proxy nodes) for all the processes handled by the own node when the node is a node (candidate node); A proxy node load receiving unit that receives the value of the load of the proxy node, and the proxy node set after the proxy node when the proxy node set performs the processing of the candidate node based on the load value of the proxy node A post-substitution load prediction value calculation unit that obtains a predicted load value (post-substitution load prediction value), a post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node, and the comparison node And a load distribution execution unit for performing load balancing to be.

また、本発明のコンピュータ・プログラムは、分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成ステップと、前記各代行ノードの負荷の値を受信する代行ノード負荷受信ステップと、前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出ステップと、前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信ステップと、前記比較ノードによって決定される負荷分散を実行する負荷分散実行ステップと、を実行させる。   In the computer program of the present invention, the own node shares a part of processing handled by another node (comparison node) with the computer device constituting the distributed processing device (node) included in the distributed processing system. A proxy node set creation step of creating a proxy node set that substitutes one or more other nodes (proxy nodes) for all processes handled by the own node when the node is a candidate node (candidate node); A proxy node load receiving step for receiving the load value of each proxy node; and based on the load value of each proxy node, each proxy node in the case where the proxy node set performs the processing of the candidate node A post-substitution load prediction value calculation step for obtaining a post-substitution load prediction value (post-substitution load prediction value), and the post-substitution load prediction value are transmitted to the comparison node A load prediction value transmission step after row, to execute a load balancing execution step of executing a load distribution which is determined by the comparison node.

また、本発明の分散処理装置は、分散処理システムを構成する分散処理装置(ノード)であって、自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信部と、前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、決定した負荷分散を実行する負荷分散実行部と、を備える。   The distributed processing apparatus of the present invention is a distributed processing apparatus (node) that constitutes a distributed processing system, and the own node is a comparison node that shares a part of the processing in charge with other candidate nodes. , A post-substitution load prediction value that receives from the candidate node a predicted value (post-substitution load prediction value) of the proxy node that constitutes the proxy node set that performs all of the processes handled by the candidate node. When the receiving unit and the post-substitution load prediction value satisfy a predetermined condition, the candidate node processing is substituted for the substitution node set to make the candidate node a vacant node, and the comparison node is in charge A load distribution deciding unit that decides to execute load distribution to share a part of the candidate nodes with the candidate nodes that became free nodes, and a load distribution execution unit that executes the decided load distribution; Equipped with a.

また、本発明のコンピュータ・プログラムは、分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信ステップと、前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定ステップと、決定した負荷分散を実行する負荷分散実行ステップと、を実行させる。   The computer program of the present invention is a comparison node that allows a computer device constituting a distributed processing device (node) included in the distributed processing system to share a part of the processing that the node is responsible for with other candidate nodes. In some cases, after the proxy receiving from the candidate node the predicted load value (post-substitute load predicted value) of each proxy node constituting the proxy node set that performs all of the processes in charge of the candidate node When the load prediction value receiving step and the post-substitution load prediction value satisfy a predetermined condition, the processing of the candidate node is delegated to the proxy node set to make the candidate node an empty node, and the comparison node A load balancing decision step for deciding to execute load balancing for sharing a part of the processing in charge to the candidate nodes that have become free nodes; A load distribution execution step of executing the determined load distribution, thereby to execute.

本発明は、分散処理システムにおける負荷分散をより効率的に実行可能な技術を提供することができる。   The present invention can provide a technique capable of more efficiently executing load distribution in a distributed processing system.

本発明の第1の実施の形態としての分散処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the distributed processing system as the 1st Embodiment of this invention. 本発明の第1の実施の形態としての分散処理装置のハードウェア構成図である。It is a hardware block diagram of the distributed processing apparatus as the first embodiment of the present invention. 本発明の第1の実施の形態としての分散処理システムの機能ブロック図である。It is a functional block diagram of the distributed processing system as a 1st embodiment of the present invention. 本発明の第1の実施の形態としての分散処理システムの動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the distributed processing system as the 1st Embodiment of this invention. 本発明の第2の実施の形態としての分散処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the distributed processing system as the 2nd Embodiment of this invention. 本発明の第2の実施の形態としての分散処理システムの機能ブロック図である。It is a functional block diagram of the distributed processing system as the 2nd Embodiment of this invention. 本発明の第2の実施の形態としての分散処理システムの負荷分散動作を説明するフローチャートである。It is a flowchart explaining the load distribution operation | movement of the distributed processing system as the 2nd Embodiment of this invention. 本発明の第3の実施の形態としての分散処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the distributed processing system as the 3rd Embodiment of this invention. 本発明の第3の実施の形態としての分散処理システムの機能ブロック図である。It is a functional block diagram of the distributed processing system as the 3rd Embodiment of this invention. 本発明の第3の実施の形態における候補ノードの負荷分散動作を説明するフローチャートである。It is a flowchart explaining the load distribution operation | movement of the candidate node in the 3rd Embodiment of this invention. 本発明の第3の実施の形態における比較ノードの負荷分散動作を説明するフローチャートである。It is a flowchart explaining the load distribution operation | movement of the comparison node in the 3rd Embodiment of this invention. Chordを採用した分散処理システムの一例を示す図である。It is a figure which shows an example of the distributed processing system which employ | adopted Chord.

以下、本発明の実施の形態について、図面を参照して詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

(第1の実施の形態)
本発明の第1の実施の形態としての分散処理システム1の構成を図1に示す。図1において、分散処理システム1は、1つ以上の分散処理装置(以下、ノードともいう)10によって構成されている。これらの分散処理装置10は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。なお、図1には、6つの分散処理装置10を示しているが、本発明が対象とする分散処理システムを構成する分散処理装置の数を限定するものではない。
(First embodiment)
FIG. 1 shows the configuration of a distributed processing system 1 as a first embodiment of the present invention. In FIG. 1, the distributed processing system 1 includes one or more distributed processing apparatuses (hereinafter also referred to as nodes) 10. These distributed processing devices 10 are communicably connected to each other via a network constituted by the Internet, a LAN (Local Area Network), a public line network, a wireless communication network, or a combination thereof. Although FIG. 1 shows six distributed processing apparatuses 10, the number of distributed processing apparatuses constituting the distributed processing system targeted by the present invention is not limited.

また、分散処理システム1の処理対象となるデータは、いずれかの分散処理装置10によって処理される。ここで、データとは、格納対象となるコンテンツであってもよいし、格納されたコンテンツを要求するクエリであってもよい。各分散処理装置10は、分散処理システム1において処理対象となるデータを受信すると、そのデータが自ノードで担当するものであれば、自ノードで処理を実行する。また、各分散処理装置10は、受信したデータが自ノードで担当するものでなければ、そのデータの処理を担当する他の分散処理装置10に該データを送信する。なお、各分散処理装置10は、他の全ての分散処理装置10と直接通信可能でなくてもよい。各分散処理装置10は、受信したデータが自ノードで担当するものでなければ、そのデータの処理を担当する他の分散処理装置10に最終的に到達するよう、自ノードから転送可能ないずれかの他の分散処理装置10に該データを送信すればよい。このような分散処理システム1において、各ノードの負荷は、そのノードが受信しているデータ量により変動する。   Data to be processed by the distributed processing system 1 is processed by one of the distributed processing devices 10. Here, the data may be a content to be stored, or a query for requesting the stored content. When each distributed processing apparatus 10 receives data to be processed in the distributed processing system 1, if the data is handled by the own node, each distributed processing apparatus 10 executes the process at the own node. Each distributed processing apparatus 10 transmits the received data to another distributed processing apparatus 10 that is in charge of processing the received data if the received data is not handled by the own node. Each distributed processing device 10 may not be able to directly communicate with all other distributed processing devices 10. Each distributed processing device 10 is one that can be transferred from its own node so that it finally arrives at another distributed processing device 10 that is in charge of processing that data if the received data is not handled by its own node. The data may be transmitted to the other distributed processing apparatus 10. In such a distributed processing system 1, the load on each node varies depending on the amount of data received by that node.

また、図1に示した分散処理装置10のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード110というものとする。また、分散処理装置10のうち、比較ノード110の処理の一部を分担させる候補となるノードを候補ノード120というものとする。また、分散処理装置10のうち、候補ノード120が比較ノード110の処理を分担する場合にそれまで候補ノード120が担当していた処理を代行するノードを代行ノード130というものとする。なお、分散処理システム1を構成する各分散処理装置10は、いずれも、比較ノード110、候補ノード120および代行ノード130として動作しうるものとする。   In addition, in the distributed processing apparatus 10 illustrated in FIG. 1, a node that is a target for reducing the load by load distribution is referred to as a comparison node 110. In the distributed processing apparatus 10, a node that is a candidate for sharing a part of the processing of the comparison node 110 is referred to as a candidate node 120. Further, in the distributed processing apparatus 10, when the candidate node 120 shares the processing of the comparison node 110, the node acting as the proxy for the candidate node 120 until then is referred to as the proxy node 130. It is assumed that each of the distributed processing devices 10 constituting the distributed processing system 1 can operate as the comparison node 110, the candidate node 120, and the proxy node 130.

次に、分散処理装置10のハードウェア構成を図2に示す。図2において、分散処理装置10は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成されている。   Next, the hardware configuration of the distributed processing apparatus 10 is shown in FIG. In FIG. 2, the distributed processing apparatus 10 includes a CPU (Central Processing Unit) 1001, a RAM (Random Access Memory) 1002, a ROM (Read Only Memory) 1003, a storage device 1004 such as a hard disk, and a network interface 1005. It is comprised by the computer apparatus provided.

ROM1003および記憶装置1004には、コンピュータ装置を本実施の形態の分散処理装置10として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。   The ROM 1003 and the storage device 1004 store a computer program and various data for causing the computer device to function as the distributed processing device 10 of the present embodiment.

CPU1001は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行する。   The CPU 1001 reads the computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them.

ネットワークインタフェース1005は、ネットワークを介して他の分散処理装置10との通信を行うモジュールである。   The network interface 1005 is a module that communicates with other distributed processing apparatuses 10 via a network.

次に、分散処理システム1の機能ブロック構成を図3に示す。図3において、分散処理システム1は、代行ノード集合作成部101と、代行後負荷予測値算出部102と、代行後負荷予測値判断部103と、負荷分散実行部104とを備える。ここで、各機能ブロックは、それぞれ、いずれかの分散処理装置10におけるネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、分散処理システム1の各機能ブロックは、同一の分散処理装置10によって構成されていてもよいし、少なくとも1つは異なる分散処理装置10によって構成されていてもよい。また、各機能ブロックを構成する分散処理装置10は、その動作上、他の機能ブロックとの通信が必要な場合であって、該他の機能ブロックが他の分散処理装置10によって構成される場合は、適宜該他の分散処理装置10との間で通信を行うものとする。   Next, the functional block configuration of the distributed processing system 1 is shown in FIG. In FIG. 3, the distributed processing system 1 includes a proxy node set creation unit 101, a post-substitution load prediction value calculation unit 102, a post-substitution load prediction value determination unit 103, and a load distribution execution unit 104. Here, each functional block includes a network interface 1005 in one of the distributed processing devices 10 and a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them. The Further, each functional block of the distributed processing system 1 may be configured by the same distributed processing device 10, or at least one may be configured by different distributed processing devices 10. In addition, the distributed processing device 10 constituting each functional block needs to communicate with another functional block in its operation, and the other functional block is constituted by another distributed processing device 10. Shall communicate with the other distributed processing apparatus 10 as appropriate.

代行ノード集合作成部101は、ある候補ノード120について、候補ノード120が担当している処理の全てを1つ以上の代行ノード130を用いて代行させる代行ノード集合を作成する。ここで、代行ノード集合作成部101は、代行ノード130となりうるノードのうち1つ以上を代行ノード130としてランダムに選択することにより、代行ノード集合を作成してもよい。なお、代行ノード130となりうるノードとは、例えば、分散処理システム1を構成する分散処理装置10のうち、比較ノード110および候補ノード120以外のノードであってもよい。   The substitute node set creation unit 101 creates a substitute node set for a candidate node 120 that substitutes all of the processes handled by the candidate node 120 using one or more substitute nodes 130. Here, the proxy node set creation unit 101 may create a proxy node set by randomly selecting one or more nodes that can be the proxy node 130 as the proxy node 130. Note that the node that can be the proxy node 130 may be, for example, a node other than the comparison node 110 and the candidate node 120 in the distributed processing device 10 configuring the distributed processing system 1.

代行後負荷予測値算出部102は、代行ノード集合が候補ノード120の処理の全てを代行する場合の、各代行ノード130の代行後の負荷の予測値(代行後負荷予測値)を求める。   The post-substitution load prediction value calculation unit 102 obtains a post-substitution load prediction value (post-substitution load prediction value) of each proxy node 130 when the proxy node set performs all of the processing of the candidate node 120.

ここで、代行ノード集合が複数の代行ノード130から構成されていれば、代行後負荷予測値算出部102は、各代行ノード130の代行後負荷予測値として、候補ノード120の処理の全てのうち各代行ノード130に割り当てられる分の負荷の値と、各代行ノード130の負荷の値との合計値をそれぞれ算出する。例えば、代行後負荷予測値算出部102は、各代行ノード130の代行後負荷予測値が均等になるよう各代行ノード130に代行させる分の負荷の値を算出することにより、各代行ノード130の代行後負荷予測値を求めてもよい。   Here, if the proxy node set is composed of a plurality of proxy nodes 130, the post-substitution load prediction value calculation unit 102 uses all of the processes of the candidate nodes 120 as post-substitution load prediction values of the proxy nodes 130. The total value of the load value allocated to each proxy node 130 and the load value of each proxy node 130 is calculated. For example, the post-substitution load predicted value calculation unit 102 calculates a load value for each proxy node 130 to be substituted so that the post-substitution load prediction value of each proxy node 130 is equalized. An estimated post-substitution load prediction value may be obtained.

また、代行ノード集合が1つの代行ノード130から構成されていれば、代行後負荷予測値算出部102は、該代行ノード130の代行後負荷予測値として、候補ノード120の負荷の値と、該代行ノード130の負荷の値との合計値を求めればよい。   Further, if the proxy node set is configured by one proxy node 130, the post-substitution load prediction value calculation unit 102 uses the load value of the candidate node 120 as the post-substitution load prediction value of the proxy node 130, and What is necessary is just to obtain | require the total value with the value of the load of the proxy node 130. FIG.

代行後負荷予測値判断部103は、各代行ノード130の代行後負荷予測値が所定の条件を満たすか否か判断する。ここで、所定の条件とは、例えば、各代行ノード130の代行後負荷予測値のうち最大値が閾値以下であることであってもよい。   The post-substitution load predicted value determination unit 103 determines whether or not the post-substitution load prediction value of each proxy node 130 satisfies a predetermined condition. Here, the predetermined condition may be, for example, that the maximum value among the post-proxy load prediction values of each proxy node 130 is equal to or less than a threshold value.

負荷分散実行部104は、代行後負荷予測値が所定の条件を満たすと判断された場合に、比較ノード110の負荷を軽減する負荷分散を実行する。具体的には、負荷分散実行部104は、候補ノード120の処理を代行ノード130に代行させるため、候補ノード120が担当するデータを代行ノード130に移動させて候補ノード120を空きノードとする。そして、負荷分散実行部104は、比較ノード110が担当する処理の一部を、空きノードとなった候補ノード120に分担させるため、比較ノード110が担当するデータの一部を候補ノード120に移動させる。例えば、負荷分散実行部104は、比較ノード110および候補ノード120の負荷分散後の負荷の値が均等になるように、比較ノード110から候補ノード120へデータを移動させてもよい。   The load distribution execution unit 104 executes load distribution for reducing the load on the comparison node 110 when it is determined that the post-substitution load prediction value satisfies a predetermined condition. Specifically, the load distribution execution unit 104 moves the data handled by the candidate node 120 to the substitute node 130 to make the candidate node 120 an empty node in order to make the substitute node 130 perform the processing of the candidate node 120. Then, the load distribution execution unit 104 moves a part of the data handled by the comparison node 110 to the candidate node 120 in order to share a part of the processing handled by the comparison node 110 with the candidate node 120 that has become an empty node. Let For example, the load distribution execution unit 104 may move data from the comparison node 110 to the candidate node 120 so that the load values after load distribution of the comparison node 110 and the candidate node 120 are equal.

以上のように構成された分散処理システム1の動作について、図4を参照して説明する。   The operation of the distributed processing system 1 configured as described above will be described with reference to FIG.

まず、代行ノード集合作成部101は、ある候補ノード120について、1つ以上の代行ノード130からなる代行ノード集合を作成する(ステップS1)。例えば、前述のように、代行ノード集合作成部101は、代行ノード130となりうるノードのうちランダムに選択したものからなる代行ノード集合を作成してもよい。   First, the substitute node set creation unit 101 creates a substitute node set including one or more substitute nodes 130 for a candidate node 120 (step S1). For example, as described above, the proxy node set creation unit 101 may create a proxy node set made up of randomly selected nodes that can be the proxy node 130.

次に、代行後負荷予測値算出部102は、ステップS1で作成された代行ノード集合を構成する各代行ノード130について、候補ノード120の全ての処理を代行ノード集合で代行する場合の代行後負荷予測値を算出する(ステップS2)。例えば、前述のように、代行後負荷予測値算出部102は、各代行ノード130の代行後負荷予測値が均等になるように、代行後負荷予測値を求めてもよい。   Next, the post-substitution load prediction value calculation unit 102 performs the post-substitution load when the proxy node set performs all the processes of the candidate nodes 120 for each of the proxy nodes 130 that constitute the proxy node set created in step S1. A predicted value is calculated (step S2). For example, as described above, the post-substitution load prediction value calculation unit 102 may obtain the post-substitution load prediction value so that the post-substitution load prediction value of each substitution node 130 becomes equal.

次に、代行後負荷予測値判断部103は、ステップS2で算出された各代行ノード130の代行後負荷予測値が所定の条件を満たすか否かを判断する(ステップS3)。例えば、前述のように、代行後負荷予測値判断部103は、代行後負荷予測値の最大値が閾値以下であるか否かを判断してもよい。   Next, the post-substitution load predicted value determination unit 103 determines whether or not the post-substitution load prediction value of each proxy node 130 calculated in step S2 satisfies a predetermined condition (step S3). For example, as described above, the post-substitution load prediction value determination unit 103 may determine whether or not the maximum value of the post-substitution load prediction value is equal to or less than a threshold value.

ここで、代行後負荷予測値判断部103が所定の条件を満たすと判断された場合、負荷分散実行部104は、負荷分散を実行する。具体的には、前述のように、負荷分散実行部104は、候補ノード120の処理を代行ノード130に代行させて候補ノード120を空きノードとする。そして、負荷分散実行部104は、比較ノード110が担当する処理の一部を、空きノードとなった候補ノード120に分担させる。例えば、負荷分散実行部104は、比較ノード110および候補ノード120の負荷の値が均等になるよう、比較ノード110の処理の一部を候補ノード120に分担させてもよい。   Here, when it is determined that the post-substitution load predicted value determination unit 103 satisfies a predetermined condition, the load distribution execution unit 104 executes load distribution. Specifically, as described above, the load distribution execution unit 104 substitutes the processing of the candidate node 120 by the proxy node 130 to make the candidate node 120 an empty node. Then, the load distribution execution unit 104 assigns a part of the processing handled by the comparison node 110 to the candidate nodes 120 that have become free nodes. For example, the load distribution execution unit 104 may share a part of the processing of the comparison node 110 with the candidate node 120 so that the load values of the comparison node 110 and the candidate node 120 are equal.

以上で、分散処理システム1は動作を終了する。   Thus, the distributed processing system 1 ends the operation.

なお、分散処理システム1は、分散処理システム1を構成する分散処理装置10のいずれかを所定のタイミング毎に候補ノード120として、上述の動作を行ってもよい。また、分散処理システム1は、分散処理システム1を構成する分散処理装置10のうち、負荷の値が閾値以上のもの比較ノード110として、上述の動作を行ってもよい。あるいは、分散処理システム1は、分散処理システム1を構成する分散処理装置10のうちランダムに選択したものを比較ノード110として、上述の動作を行ってもよい。   Note that the distributed processing system 1 may perform the above-described operation with any one of the distributed processing devices 10 constituting the distributed processing system 1 as the candidate node 120 at every predetermined timing. Further, the distributed processing system 1 may perform the above-described operation as a comparison node 110 having a load value equal to or greater than a threshold among the distributed processing devices 10 constituting the distributed processing system 1. Alternatively, the distributed processing system 1 may perform the above-described operation using a randomly selected one of the distributed processing devices 10 constituting the distributed processing system 1 as the comparison node 110.

次に、本発明の第1の実施の形態の効果について述べる。   Next, effects of the first exemplary embodiment of the present invention will be described.

本発明の第1の実施の形態としての分散処理システムは、負荷分散をより効率的に実行することができる。   The distributed processing system as the first exemplary embodiment of the present invention can execute load distribution more efficiently.

その理由は、負荷を軽減する対象となる比較ノードの処理を分担する候補となる候補ノードについて、その処理を代行する代行ノード集合を作成し、代行ノード集合に候補ノードの処理を代行させる場合の各代行ノードの代行後負荷予測値を算出し、代行後負荷予測値が所定の条件を満たす場合に、候補ノードの処理を代行ノードに代行させて空きノードとするとともに空きノードとなった候補ノードに比較ノードの処理の一部を分担させる負荷分散を実行するからである。これにより、代行後負荷予測値が所定の条件を満たさない(例えば、代行後負荷予測値の最大値が閾値より大きい)場合、本実施の形態としての分散処理システムは、負荷分散を実行しない。したがって、代行ノードの負荷分散後の負荷の値が、さらなる負荷の軽減が必要なほど大きくなることがないからである。   The reason is that when a candidate node that is a candidate for sharing the processing of the comparison node that is the target of reducing the load is created, a proxy node set that substitutes the processing is created, and the processing of the candidate node is delegated to the proxy node set Candidate nodes that calculate the post-substitution load prediction value of each substitution node and, when the post-substitution load prediction value satisfies a predetermined condition, make the candidate node process the substitution node as an empty node and become an empty node This is because load balancing is performed to share part of the processing of the comparison node. Thereby, when the post-substitution load prediction value does not satisfy a predetermined condition (for example, the maximum value of the post-substitution load prediction value is larger than the threshold value), the distributed processing system according to the present embodiment does not perform load distribution. Therefore, the load value after load distribution of the proxy node does not become so large that further load reduction is necessary.

(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

本発明の第2の実施の形態としての分散処理システム2の構成を図5に示す。図5において、分散処理システム2は、1つ以上の分散処理装置20によって構成されている。これらの分散処理装置20は、図1を参照して説明した本発明の第1の実施の形態としての分散処理装置10と同様に、ネットワークを介して互いに接続されている。なお、図5には、6つの分散処理装置20を示しているが、本発明の分散処理システムを構成する分散処理装置の数を限定するものではない。   FIG. 5 shows the configuration of a distributed processing system 2 as a second embodiment of the present invention. In FIG. 5, the distributed processing system 2 is configured by one or more distributed processing devices 20. Similar to the distributed processing apparatus 10 according to the first embodiment of the present invention described with reference to FIG. 1, these distributed processing apparatuses 20 are connected to each other via a network. In FIG. 5, six distributed processing devices 20 are shown, but the number of distributed processing devices constituting the distributed processing system of the present invention is not limited.

また、分散処理システム2は、本発明の第1の実施の形態としての分散処理システム1と同様に、処理対象となるデータを受信すると、そのデータを担当する分散処理装置20にそのデータを送信することにより、該データを処理する。各分散処理装置20は、自装置で受信したデータを、該データを担当する他の分散処理装置20に転送するために、他のいくつかの分散処理装置20のアドレスをルーティングテーブルとして保持する。このような分散処理システム2において、各ノードの負荷は、そのノードが受信しているデータ量により変動する。   Similarly to the distributed processing system 1 as the first embodiment of the present invention, when the distributed processing system 2 receives data to be processed, the distributed processing system 2 transmits the data to the distributed processing device 20 in charge of the data. To process the data. Each distributed processing device 20 holds the addresses of some other distributed processing devices 20 as a routing table in order to transfer the data received by itself to other distributed processing devices 20 in charge of the data. In such a distributed processing system 2, the load on each node varies depending on the amount of data received by that node.

また、図5に示した分散処理装置20のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード210というものとする。また、分散処理装置20のうち、比較ノード210の処理の一部を分担させる候補となるノードを候補ノード220というものとする。また、分散処理装置20のうち、候補ノード220が比較ノード210の処理を分担する場合にそれまで候補ノード220が担当していた処理を代行するノードを代行ノード230というものとする。なお、各分散処理装置20は、いずれも、比較ノード210、候補ノード220、および、代行ノード230として動作しうるものとする。   In addition, in the distributed processing device 20 illustrated in FIG. 5, a node that is a target for reducing the load by load distribution is referred to as a comparison node 210. In the distributed processing device 20, a node that is a candidate for sharing a part of the processing of the comparison node 210 is referred to as a candidate node 220. Further, in the distributed processing device 20, when the candidate node 220 shares the processing of the comparison node 210, the node acting as the proxy for the candidate node 220 until then is referred to as the proxy node 230. Each distributed processing device 20 can operate as the comparison node 210, the candidate node 220, and the proxy node 230.

また、分散処理装置20は、図2に示した本発明の第1の実施の形態としての分散処理装置10と同様なハードウェア構成を備えるコンピュータ装置によって構成されている。   The distributed processing device 20 is configured by a computer device having the same hardware configuration as the distributed processing device 10 according to the first embodiment of the present invention shown in FIG.

次に、分散処理システム2の機能ブロック構成を図6に示す。   Next, the functional block configuration of the distributed processing system 2 is shown in FIG.

図6において、比較ノード210は、代行後負荷予測値受信部211と、負荷分散決定部212と、負荷分散実行部215とを備える。また、候補ノード220は、代行ノード集合作成部221と、代行ノード負荷受信部222と、代行後負荷予測値算出部223と、代行後負荷予測値送信部224と、負荷分散実行部225とを備える。代行ノード230は、負荷送信部231と、負荷分散実行部235とを備える。ここで、代行後負荷予測値受信部211と、代行ノード負荷受信部222と、代行後負荷予測値送信部224と、負荷送信部231と、負荷分散実行部215、225、235とは、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、負荷分散決定部212と、代行後負荷予測値算出部223とは、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。なお、比較ノード210、候補ノード220、および、代行ノード230の各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。   In FIG. 6, the comparison node 210 includes a post-substitution load predicted value reception unit 211, a load distribution determination unit 212, and a load distribution execution unit 215. In addition, the candidate node 220 includes a proxy node set creation unit 221, a proxy node load reception unit 222, a post-substitution load prediction value calculation unit 223, a post-substitution load prediction value transmission unit 224, and a load distribution execution unit 225. Prepare. The proxy node 230 includes a load transmission unit 231 and a load distribution execution unit 235. Here, the post-proxy load predicted value receiving unit 211, the proxy node load receiving unit 222, the post-proxy load predicted value transmitting unit 224, the load transmitting unit 231, and the load distribution executing units 215, 225, and 235 are network The interface 1005 includes a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them. The load distribution determination unit 212 and the post-substitution load predicted value calculation unit 223 are configured by a CPU 1001 that reads a computer program and various data stored in the ROM 1003 and the storage device 1004 into the RAM 1002 and executes them. Note that the hardware configuration of each functional block of the comparison node 210, the candidate node 220, and the proxy node 230 is not limited to the above configuration.

次に、候補ノード220の各機能ブロックについて説明する。   Next, each functional block of the candidate node 220 will be described.

代行ノード集合作成部221は、自ノードが担当する処理の全てを1つ以上の代行ノード230を用いて代行させる代行ノード集合を作成する。例えば、代行ノード集合作成部221は、代行ノード230となりうる他の分散処理装置20のうち、負荷の値が閾値以下のものを代行ノード230として代行ノード集合を作成してもよい。また、代行ノード集合作成部221は、そのような他の分散処理装置20のうち、負荷の値が最も小さいものを代行ノード230として、1つの代行ノード230から構成される代行ノード集合を作成してもよい。なお、代行ノード230となりうる他の分散処理装置20とは、その負荷の値を取得可能な他の分散処理装置20であってもよい。   The substitute node set creation unit 221 creates a substitute node set that substitutes one or more substitute nodes 230 for all of the processes handled by the own node. For example, the proxy node set creation unit 221 may create a proxy node set by using, as the proxy node 230, another distributed processing apparatus 20 that can be the proxy node 230 and whose load value is equal to or less than a threshold value. In addition, the proxy node set creation unit 221 creates a proxy node set composed of one proxy node 230 by using the other distributed processing apparatus 20 having the smallest load value as the proxy node 230. May be. The other distributed processing device 20 that can be the proxy node 230 may be another distributed processing device 20 that can acquire the load value.

代行ノード負荷受信部222は、代行ノード集合作成部221によって作成された代行ノード集合を構成する各代行ノード230について、その代行ノード230の負荷の値を受信する。   The proxy node load receiving unit 222 receives the value of the load of the proxy node 230 for each proxy node 230 constituting the proxy node set created by the proxy node set creation unit 221.

代行後負荷予測値算出部223は、代行ノード負荷受信部222によって受信された各代行ノード230の負荷の値に基づいて、代行ノード集合に自ノードの処理を代行させた場合の各代行ノード230の代行後負荷予測値を求める。   Based on the load value of each proxy node 230 received by the proxy node load reception unit 222, the proxy post-load predicted value calculation unit 223 substitutes the proxy node set with the processing of its own node. Obtain the estimated post-substitute load value.

例えば、代行後負荷予測値算出部223は、各代行ノード230の代行後負荷予測値として、各代行ノード230のその時点での負荷の値と、自ノードが担当する処理のうち各代行ノード230に割り当てる分の負荷の値との合計値をそれぞれ求めてもよい。   For example, the post-substitution load prediction value calculation unit 223 uses each proxy node 230 as a post-substitution load prediction value of each proxy node 230 and the value of the load of each proxy node 230 at that time and the process in charge of the own node. A total value with the load value allocated to each of the values may be obtained.

もし、代行ノード集合が1つの代行ノード230によって構成される場合、代行後負荷予測値算出部223は、代行後負荷予測値として、その代行ノード230のその時点での負荷の値と、自ノードが担当する処理の負荷の値との合計値を求めればよい。   If the proxy node set is configured by one proxy node 230, the post-substitution load prediction value calculation unit 223 uses the proxy node 230 as the post-substitution load prediction value at that point in time and the own node. What is necessary is just to obtain | require the total value with the value of the load of the process in charge of.

また、代行ノード集合が複数の代行ノード230によって構成される場合、代行後負荷予測値算出部223は、各代行ノード230の代行後負荷予測値が均等になるような代行後負荷予測値を求めてもよい。   Further, when the proxy node set includes a plurality of proxy nodes 230, the post-substitution load prediction value calculation unit 223 obtains post-substitution load prediction values such that the proxy load prediction values of the proxy nodes 230 are equal. May be.

代行後負荷予測値送信部224は、代行後負荷予測値算出部223によって算出された各代行後負荷予測値を、比較ノード210に送信する。このとき、複数の代行ノード230についてそれぞれ代行後負荷予測値が算出されている場合、代行後負荷予測値送信部224は、各代行ノード230の代行後負荷予測値のうち最大値を、比較ノード210に送信してもよい。   The post-substitution load predicted value transmission unit 224 transmits each post-substitution load prediction value calculated by the post-substitution load prediction value calculation unit 223 to the comparison node 210. At this time, when the post-substitution load prediction value is calculated for each of the plurality of proxy nodes 230, the post-substitution load prediction value transmission unit 224 uses the maximum value among the post-substitution load prediction values of each proxy node 230 as a comparison node. You may transmit to 210.

また、例えば、代行後負荷予測値送信部224は、代行後負荷予測値の送信先の比較ノード210として、他の分散処理装置20のうち、負荷の値が閾値以上であるノードを選択してもよい。また、例えば、代行後負荷予測値送信部224は、代行後負荷予測値の送信先の比較ノード210として、自ノードが保持するルーティングテーブルに含まれる他のノードのいずれかを選択してもよい。   In addition, for example, the post-substitution load predicted value transmission unit 224 selects a node having a load value equal to or greater than the threshold among the other distributed processing devices 20 as the comparison node 210 of the post-substitution load prediction value transmission destination. Also good. Further, for example, the post-substitution load predicted value transmission unit 224 may select any of the other nodes included in the routing table held by the own node as the destination comparison node 210 of the post-substitution load prediction value. .

負荷分散実行部225は、後述の比較ノード210の負荷分散実行部215によって決定される内容の負荷分散を実行する。具体的には、負荷分散実行部225は、自ノードが担当する処理を代行ノード230に代行させるため、自ノードが担当するデータを代行ノード230に送信する。また、負荷分散実行部225は、比較ノード210の処理の一部を分担するため、比較ノード210が担当するデータの一部を比較ノード210から受信する。   The load distribution execution unit 225 executes load distribution of contents determined by a load distribution execution unit 215 of the comparison node 210 described later. Specifically, the load distribution execution unit 225 transmits data handled by the own node to the substitute node 230 in order to cause the substitute node 230 to substitute the process handled by the own node. In addition, the load distribution execution unit 225 receives a part of data handled by the comparison node 210 from the comparison node 210 in order to share a part of the processing of the comparison node 210.

次に、代行ノード230の各機能ブロックについて説明する。   Next, each functional block of the proxy node 230 will be described.

負荷送信部231は、候補ノード220に対して、自ノードの負荷の値を送信する。例えば、負荷送信部231は、候補ノード220からの要求に応じて、負荷の値を送信するようにしてもよい。   The load transmission unit 231 transmits the load value of the own node to the candidate node 220. For example, the load transmission unit 231 may transmit a load value in response to a request from the candidate node 220.

負荷分散実行部235は、後述の比較ノード210の負荷分散実行部215によって決定された内容の負荷分散を実行する。具体的には、負荷分散実行部235は、候補ノード220が担当する処理を代行するため、候補ノード220から、候補ノード220が担当していたデータを受信する。   The load distribution execution unit 235 executes load distribution of the content determined by the load distribution execution unit 215 of the comparison node 210 described later. Specifically, the load distribution execution unit 235 receives the data handled by the candidate node 220 from the candidate node 220 in order to perform the processing handled by the candidate node 220.

次に、比較ノード210の各機能ブロックについて説明する。   Next, each functional block of the comparison node 210 will be described.

代行後負荷予測値受信部211は、候補ノード220から、代行後負荷予測値を受信する。   The post-substitution load prediction value receiving unit 211 receives the post-substitution load prediction value from the candidate node 220.

負荷分散決定部212は、受信された代行後負荷予測値と、自ノードの負荷の値とが、所定の関係にあるか否かを判断する。具体的には、所定の関係とは、自ノードの負荷の値が、代行後負荷予測値以上であることであってもよい。   The load distribution determining unit 212 determines whether or not the received post-proxy load prediction value and the load value of the own node have a predetermined relationship. Specifically, the predetermined relationship may be that the load value of the own node is equal to or greater than the post-proxy load prediction value.

また、負荷分散決定部212は、受信された代行後負荷予測値と、自ノードの負荷の値とが所定の関係にある場合に、負荷分散の処理内容を決定する。この負荷分散の処理内容とは、候補ノード220の処理を代行ノード集合に代行させて候補ノード220を空きノードとするとともに、自ノードが担当する処理の一部を、空きノードとなった候補ノード220に分担させる処理である。そして、負荷分散決定部212は、決定した負荷分散の処理内容を、候補ノード220に通知する。   Further, the load distribution determining unit 212 determines the load distribution processing content when the received post-substitution load prediction value and the load value of the own node have a predetermined relationship. The processing contents of this load distribution are to make the candidate node 220 a vacant node by substituting the processing of the candidate node 220 to the proxy node set, and to part of the processing handled by the own node as a vacant node 220 is a process shared by 220. Then, the load distribution determination unit 212 notifies the candidate node 220 of the processing content of the determined load distribution.

負荷分散実行部215は、負荷分散決定部212によって決定された負荷分散を実行する。具体的には、負荷分散実行部215は、自ノードの処理の一部を候補ノード220に分担させるため、自ノードが担当するデータの一部を候補ノード220に対して送信する。例えば、負荷分散実行部215は、自ノードの負荷の値と候補ノード220の負荷の値とが均等になるよう、自ノードが担当するデータの一部を候補ノード220に対して送信してもよい。   The load distribution execution unit 215 executes the load distribution determined by the load distribution determination unit 212. Specifically, the load distribution execution unit 215 transmits a part of the data handled by the own node to the candidate node 220 in order to share a part of the process of the own node with the candidate node 220. For example, the load distribution execution unit 215 may transmit a part of data handled by the own node to the candidate node 220 so that the load value of the own node is equal to the load value of the candidate node 220. Good.

以上のように構成された分散処理システム2の負荷分散動作について、図7を参照して説明する。なお、図7において、左図は候補ノード220の動作を示し、右図は比較ノード210の動作を示し、左右を結ぶ破線の矢印はノード間のデータの流れを表すものとする。   The load distribution operation of the distributed processing system 2 configured as described above will be described with reference to FIG. In FIG. 7, the left diagram shows the operation of the candidate node 220, the right diagram shows the operation of the comparison node 210, and the dashed arrows connecting the left and right represent the data flow between the nodes.

ここでは、まず、候補ノード220の代行ノード集合作成部221は、代行ノード集合を作成する(ステップS11)。   Here, first, the proxy node set creation unit 221 of the candidate node 220 creates a proxy node set (step S11).

次に、代行ノード負荷受信部222は、ステップS11で作成された代行ノード集合を構成する各代行ノード230の負荷の値を受信する(ステップS12)。   Next, the proxy node load receiving unit 222 receives the load value of each proxy node 230 constituting the proxy node set created in step S11 (step S12).

次に、代行後負荷予測値算出部223は、ステップS11で作成された代行ノード集合に自ノードが担当する処理を代行させた場合の、各代行ノード230の代行後負荷予測値を算出する(ステップS13)。   Next, the post-substitution load prediction value calculation unit 223 calculates the post-substitution load prediction value of each proxy node 230 when the proxy node set created in step S11 is delegated to the processing of the own node ( Step S13).

次に、代行後負荷予測値送信部224は、ステップS13で算出された代行後負荷予測値を、比較ノード210に送信する(ステップS14)。例えば、前述のように、代行後負荷予測値送信部224は、ステップS13で算出された代行後負荷予測値の最大値を比較ノード210に送信してもよい。また、このステップにおいて、代行後負荷予測値送信部224は、他の分散処理装置20のうち負荷の値が閾値以下のものを、送信先の比較ノード210として選択してもよい。あるいは、代行後負荷予測値送信部224は、自ノードがルーティングテーブルに保持する他の分散処理装置20のいずれかを、送信先の比較ノード210として選択してもよい。   Next, the post-substitution load predicted value transmission unit 224 transmits the post-substitution load prediction value calculated in step S13 to the comparison node 210 (step S14). For example, as described above, the post-substitution load predicted value transmission unit 224 may transmit the maximum value of the post-substitution load prediction value calculated in step S13 to the comparison node 210. In this step, the post-substitution load predicted value transmission unit 224 may select the other distributed processing apparatus 20 having a load value equal to or less than a threshold value as the transmission destination comparison node 210. Alternatively, the post-substitution load predicted value transmission unit 224 may select any other distributed processing device 20 held by the own node in the routing table as the comparison node 210 of the transmission destination.

次に、比較ノード210の代行後負荷予測値受信部211は、代行後負荷予測値を受信する(ステップS15)。   Next, the post-substitution load prediction value receiving unit 211 of the comparison node 210 receives the post-substitution load prediction value (step S15).

次に、負荷分散決定部212は、ステップS15で受信された代行後負荷予測値と、自ノートの負荷の値とが、所定の関係にあるか否かを判断する(ステップS16)。例えば、前述のように、負荷分散決定部212は、自ノードの負荷の値が代行後負荷予測値以上であるか否かを判断してもよい。   Next, the load distribution determining unit 212 determines whether or not the post-proxy load prediction value received in step S15 and the load value of its own note have a predetermined relationship (step S16). For example, as described above, the load distribution determination unit 212 may determine whether or not the load value of the own node is equal to or greater than the post-proxy load prediction value.

ここで、代行後負荷予測値と、自ノートの負荷の値とが、所定の関係にあると判断した場合、負荷分散決定部212は、負荷分散の処理内容を決定する(ステップS17)。具体的には、候補ノード220の処理を代行ノード230に代行させて候補ノード220を空きノードとするとともに、自ノードの処理の一部を候補ノード220に分担させることを決定する。そして、負荷分散決定部212は、負荷分散の処理内容を、候補ノード220に通知する。   Here, when it is determined that the post-substitution load prediction value and the load value of the own note have a predetermined relationship, the load distribution determination unit 212 determines the content of the load distribution process (step S17). Specifically, it is determined that the processing of the candidate node 220 is delegated to the proxy node 230 to make the candidate node 220 an empty node and to share a part of the processing of the own node with the candidate node 220. Then, the load distribution determining unit 212 notifies the candidate node 220 of the load distribution processing content.

次に、負荷分散実行部215は、決定された内容の負荷分散を実行する(ステップS18)。具体的には、負荷分散実行部215は、自ノードが担当するデータの一部を、候補ノード220に送信する。   Next, the load distribution execution unit 215 executes load distribution of the determined content (step S18). Specifically, the load distribution execution unit 215 transmits a part of data handled by the own node to the candidate node 220.

次に、候補ノード220の負荷分散実行部225は、負荷分散の内容が通知されると(ステップS19でYes)、その内容の負荷分散を実行する(ステップS20)。具体的には、負荷分散実行部225は、自ノードが担当するデータを代行ノード集合に送信する。そして、負荷分散実行部225は、比較ノード210が担当するデータの一部を受信する。   Next, when the content of load distribution is notified (Yes in step S19), the load distribution execution unit 225 of the candidate node 220 executes load distribution of the content (step S20). Specifically, the load distribution execution unit 225 transmits data handled by the own node to the proxy node set. Then, the load distribution execution unit 225 receives part of the data handled by the comparison node 210.

以上で、分散処理システム2は、負荷分散動作を終了する。   As described above, the distributed processing system 2 ends the load distribution operation.

なお、候補ノード220は、ステップS14における代行後負荷予測値送信処理を、所定のタイミング毎に(例えば所定の時間間隔で)行ってもよい。あるいは、候補ノード220は、ステップS12で受信した代行ノード230の負荷の値および自ノードの負荷の値のすくなくともいずれか一方が、それぞれに定められた閾値以下である場合に、ステップS14の代行後負荷予測値送信処理を実行するようにしてもよい。あるいは、候補ノード220は、比較ノード210から要求されたタイミングで、ステップS14の代行後負荷予測値送信処理を実行するようにしてもよい。   Note that the candidate node 220 may perform the post-substitution load predicted value transmission processing in step S14 at predetermined timings (for example, at predetermined time intervals). Alternatively, when at least one of the load value of the proxy node 230 and the load value of the own node received in step S12 is equal to or less than the threshold value determined for each candidate node 220, The load predicted value transmission process may be executed. Alternatively, the candidate node 220 may execute the post-substitution predicted load value transmission process in step S14 at the timing requested from the comparison node 210.

次に、本発明の第2の実施の形態の効果について述べる。   Next, the effect of the second exemplary embodiment of the present invention will be described.

本発明の第2の実施の形態としての分散処理システムは、負荷分散をより効率的に実行することができる。   The distributed processing system as the second exemplary embodiment of the present invention can execute load distribution more efficiently.

その理由は、分散処理システムを構成するノードのうち、負荷を軽減する対象となる比較ノードの処理を分担する候補となる候補ノードが、自ノードの処理の全てを代行ノード集合に代行させた場合の各代行ノードの代行後負荷予測値を算出して比較ノードに送信し、比較ノードは、自ノードの負荷の値および代行後負荷予測値が所定の関係にある場合に、候補ノードの処理を代行ノードに代行させて比較ノードの処理の一部を候補ノードに分担させる負荷分散を実行することを決定するからである。これにより、比較ノードの負荷の値および代行後負荷予測値が所定の関係にない(例えば、代行後負荷予測値が比較ノードの負荷の値より大きい)場合、分散処理システムは、負荷分散を実行しない。したがって、比較ノード、候補ノードおよび代行ノードのうち負荷分散後の負荷の値の最大値が、負荷分散前の負荷の値の最大値より大きくなることがない。その結果、本発明の第2の実施の形態としての分散処理システムは、1つのノードの負荷を軽減する負荷分散処理により他のノードの負荷の軽減が必要となるケースを生じることなく、負荷分散をより効率よく実行可能となる。   The reason is that, among the nodes that make up the distributed processing system, the candidate node that is a candidate for sharing the processing of the comparison node whose load is to be reduced, delegates all of its own processing to the proxy node set. After the proxy load prediction value of each proxy node is calculated and transmitted to the comparison node, the comparison node performs the processing of the candidate node when the load value of the own node and the proxy load prediction value are in a predetermined relationship. This is because it is determined to execute load distribution in which a part of the processing of the comparison node is shared by the candidate node by substituting for the proxy node. As a result, when the load value of the comparison node and the post-substitution load prediction value are not in a predetermined relationship (for example, the post-substitution load prediction value is larger than the load value of the comparison node), the distributed processing system executes load distribution. do not do. Therefore, the maximum value of the load value after load distribution among the comparison node, the candidate node, and the proxy node does not become larger than the maximum value of the load value before load distribution. As a result, the distributed processing system according to the second exemplary embodiment of the present invention does not cause a case where it is necessary to reduce the load on another node by the load distribution processing that reduces the load on one node. Can be executed more efficiently.

(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
(Third embodiment)
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.

本実施の形態では、本発明を、非特許文献1に記載されたChordの技術に基づく分散処理システムに適用した例について説明する。本発明の第3の実施の形態としての分散処理システム3の構成を図8に示す。図8において、分散処理システム3は、1つ以上の分散処理装置30を備えている。また、これらの分散処理装置30は、図5を参照して説明した本発明の第2の実施の形態としての分散処理装置30と同様に、ネットワークを介して互いに接続されている。なお、図8には、6つの分散処理装置30を示しているが、本発明の分散処理システムを構成する分散処理装置の数を限定するものではない。   In the present embodiment, an example in which the present invention is applied to a distributed processing system based on the Chord technique described in Non-Patent Document 1 will be described. FIG. 8 shows the configuration of a distributed processing system 3 as a third embodiment of the present invention. In FIG. 8, the distributed processing system 3 includes one or more distributed processing devices 30. Also, these distributed processing devices 30 are connected to each other via a network, like the distributed processing device 30 according to the second embodiment of the present invention described with reference to FIG. In FIG. 8, six distributed processing devices 30 are shown, but the number of distributed processing devices constituting the distributed processing system of the present invention is not limited.

各分散処理装置30は、キー空間上のいずれかのキーをノードIDとして有している。ここで、キー空間とは、キーの値が時計回りに増加する概念的なリング状のキー空間である。このキー空間では、キー間の距離が時計回り方向に定義されている。   Each distributed processing device 30 has any key on the key space as a node ID. Here, the key space is a conceptual ring-shaped key space in which the key value increases clockwise. In this key space, the distance between keys is defined in the clockwise direction.

また、分散処理システム3において、処理対象となるデータは、該データから算出されるキーからの距離が最も近いノードIDを有するノード(そのキーのサクセッサ)によって処理される。つまり、各分散処理装置30は、自ノードのノードIDからの距離が最も遠いノードIDを有するノード(自ノードのプレディセッサ)のノードIDより大きく、自ノードのノードIDまでの範囲のキーに関連するデータの処理を担当する。ここで、データとは、格納対象となるコンテンツであってもよいし、格納されたコンテンツを要求するクエリであってもよい。   Further, in the distributed processing system 3, data to be processed is processed by a node having a node ID closest to the key calculated from the data (successor of the key). That is, each distributed processing device 30 is related to the key in the range from the node ID of the node having the farthest node ID from the node ID of the own node (the predecessor of the own node) to the node ID of the own node. Responsible for data processing. Here, the data may be a content to be stored, or a query for requesting the stored content.

また、分散処理システム3は、いずれかの分散処理装置30が外部から受信するデータを、他の分散処理装置30に順次転送することにより、該データの処理を担当する分散処理装置30に最終的に配送する。各分散処理装置30は、データを他の分散処理装置30に転送するために、他のいくつかの分散処理装置30のアドレスをルーティングテーブルとして保持する。例えば、Chordでは、各分散処理装置30は、自ノードのノードIDであるキーからの距離が2i−1 (i=1,2,...,m)であるキーのサクセッサのアドレスを、ルーティングテーブルに保持する。 In addition, the distributed processing system 3 sequentially transfers data received from any one of the distributed processing devices 30 to the other distributed processing devices 30, so that the distributed processing device 30 in charge of processing the data finally Delivered to Each distributed processing device 30 holds addresses of some other distributed processing devices 30 as a routing table in order to transfer data to other distributed processing devices 30. For example, in Chord, each distributed processing device 30 determines the address of the successor of the key whose distance from the key that is the node ID of its own node is 2 i−1 (i = 1, 2,..., M), Store in the routing table.

また、分散処理システム3を構成する分散処理装置30のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード310というものとする。また、分散処理装置30のうち、比較ノード310の処理の一部を分担させる候補となるノードを候補ノード320というものとする。また、分散処理装置30のうち、候補ノード320が比較ノード310の処理を分担する場合にそれまで候補ノード320が担当していた処理を代行するノードを代行ノード330というものとする。なお、各分散処理装置30は、いずれも、比較ノード310、候補ノード320、および、代行ノード330として動作しうるものとする。   In addition, in the distributed processing device 30 configuring the distributed processing system 3, a node that is a target for reducing the load by load distribution is referred to as a comparison node 310. In the distributed processing device 30, a node that is a candidate for sharing a part of the processing of the comparison node 310 is referred to as a candidate node 320. Further, in the distributed processing device 30, when the candidate node 320 shares the processing of the comparison node 310, the node acting as the proxy for the candidate node 320 until then is referred to as the proxy node 330. Each of the distributed processing devices 30 can operate as the comparison node 310, the candidate node 320, and the proxy node 330.

次に、分散処理システム3の機能ブロック構成を図9に示す。   Next, the functional block configuration of the distributed processing system 3 is shown in FIG.

図9において、比較ノード310は、負荷情報受信部311と、負荷分散決定部312と、負荷分散実行部315とを備えている。また、候補ノード320は、代行ノード集合作成部321と、代行ノード負荷受信部322と、負荷情報作成部323と、負荷情報送信部324と、負荷分散実行部325とを備えている。また、代行ノード330は、負荷送信部331と、負荷分散実行部335とを備えている。なお、負荷情報受信部311は、本発明の代行後負荷予測値受信部の一実施形態を構成する。また、負荷情報作成部323は、本発明の代行後負荷予測値算出部の一実施形態を構成する。また、負荷情報送信部324は、本発明の代行後負荷予測値送信部の一実施形態を構成する。   In FIG. 9, the comparison node 310 includes a load information reception unit 311, a load distribution determination unit 312, and a load distribution execution unit 315. In addition, the candidate node 320 includes a proxy node set creation unit 321, a proxy node load reception unit 322, a load information creation unit 323, a load information transmission unit 324, and a load distribution execution unit 325. The proxy node 330 also includes a load transmission unit 331 and a load distribution execution unit 335. The load information receiving unit 311 constitutes an embodiment of the post-substitution load predicted value receiving unit of the present invention. Moreover, the load information creation unit 323 constitutes an embodiment of the post-substitution load predicted value calculation unit of the present invention. Moreover, the load information transmission part 324 comprises one Embodiment of the post-substitution load predicted value transmission part of this invention.

次に、候補ノード320の各機能ブロックについて説明する。   Next, each functional block of the candidate node 320 will be described.

代行ノード集合作成部321は、自ノード(候補ノード320)のサクセッサを代行ノード330として、1つの代行ノード330からなる代行ノード集合を作成する。   The substitute node set creation unit 321 creates a substitute node set composed of one substitute node 330 by using the successor of the own node (candidate node 320) as the substitute node 330.

代行ノード負荷受信部322は、自ノードのサクセッサである代行ノード330の負荷の値を受信する。   The proxy node load receiving unit 322 receives the load value of the proxy node 330 that is the successor of the local node.

負荷情報作成部323は、比較ノード310が自ノードのサクセッサである場合、自ノードの負荷の値を表す数値と、自ノードのノードIDとから構成される負荷情報を作成する。   When the comparison node 310 is a successor of its own node, the load information creation unit 323 creates load information including a numerical value representing the load value of the own node and the node ID of the own node.

また、負荷情報作成部323は、比較ノード310が自ノードのサクセッサでない場合、自ノードの負荷の値およびサクセッサの負荷の値の合計値(すなわち、サクセッサである代行ノード330の代行後負荷予測値)と、自ノードのノードIDとから構成される負荷情報を作成する。   In addition, when the comparison node 310 is not the successor of the own node, the load information creation unit 323 calculates the total value of the load value of the own node and the load value of the successor (that is, the estimated post-substitution load value of the substitute node 330 that is the successor). ) And the node ID of the own node.

負荷情報送信部324は、負荷情報作成部323によって作成された負荷情報を、比較ノード310に送信する。なお、負荷情報送信部324は、負荷情報の送信先である比較ノード310として、例えば、以下のような手法により他の分散処理装置30を選択してもよい。
<負荷情報送信先の選択手法(1)>キー空間のキーをランダムに選択し、選択したキーを担当する他の分散処理装置30を、負荷情報送信先の比較ノード310として選択。
<負荷情報送信先の選択手法(2)>候補ノード320が保持するルーティングテーブルに格納されているノードの中からランダムに選択。
<負荷情報送信先の選択手法(3)>候補ノード320が保持するルーティングテーブルに格納されているノードのうち、そのノードに他のノードから転送されるデータの単位時間当たりの量が閾値以上であるノードを選択。
<負荷情報送信先の選択手法(4)>候補ノード320において、データ転送先となる他のノードごとに送信キューが用意されているときに、送信キューに格納されているデータの量が閾値以上であるノードを選択。
The load information transmission unit 324 transmits the load information created by the load information creation unit 323 to the comparison node 310. Note that the load information transmission unit 324 may select another distributed processing device 30 as the comparison node 310 that is the transmission destination of the load information, for example, by the following method.
<Load Information Transmission Destination Selection Method (1)> A key in the key space is selected at random, and another distributed processing device 30 in charge of the selected key is selected as the comparison node 310 of the load information transmission destination.
<Load Information Transmission Destination Selection Method (2)> Random selection from nodes stored in the routing table held by the candidate node 320.
<Load Information Transmission Destination Selection Method (3)> Among the nodes stored in the routing table held by the candidate node 320, the amount per unit time of data transferred from other nodes to the node is equal to or greater than the threshold value Select a node.
<Load Information Transmission Destination Selection Method (4)> In the candidate node 320, when a transmission queue is prepared for each of other nodes serving as data transfer destinations, the amount of data stored in the transmission queue is equal to or greater than a threshold value. Select the node that is.

負荷分散実行部325は、比較ノード310によって決定された内容の負荷分散を実行する。具体的な負荷分散の処理内容については、詳細を後述する。   The load distribution execution unit 325 executes load distribution of the content determined by the comparison node 310. Details of specific load distribution processing will be described later.

次に、代行ノード330の各機能ブロックについて説明する。   Next, each functional block of the proxy node 330 will be described.

負荷送信部331は、候補ノード320に対して、自ノードが担当している処理の負荷の値を送信する。例えば、負荷送信部331は、候補ノード320からの要求に応じて、負荷の値を送信するようにしてもよい。   The load transmission unit 331 transmits to the candidate node 320 the load value of the processing that the node is in charge of. For example, the load transmission unit 331 may transmit a load value in response to a request from the candidate node 320.

負荷分散実行部335は、後述の比較ノード310の負荷分散実行部315によって決定された内容の負荷分散を実行する。具体的な負荷分散の処理内容については、詳細を後述する。   The load distribution execution unit 335 executes load distribution of the content determined by the load distribution execution unit 315 of the comparison node 310 described later. Details of specific load distribution processing will be described later.

次に、比較ノード310の各機能ブロックについて述べる。   Next, each functional block of the comparison node 310 will be described.

負荷情報受信部311は、候補ノード320から負荷情報を受信する。負荷情報は、自ノードが候補ノード320のサクセッサである場合、候補ノード320の負荷の値および候補ノード320のノードIDからなる。また、負荷情報は、自ノードが候補ノード320のサクセッサでない場合、候補ノード320の負荷の値およびそのサクセッサの負荷の値の合計値(サクセッサの代行後負荷予測値)と、候補ノード320のノードIDとからなる。   The load information receiving unit 311 receives load information from the candidate node 320. When the own node is a successor of the candidate node 320, the load information includes the load value of the candidate node 320 and the node ID of the candidate node 320. Further, when the own node is not the successor of the candidate node 320, the load information includes the load value of the candidate node 320 and the total value of the load values of the successor (the predicted load value after the successor of the successor) and the node of the candidate node 320. It consists of ID.

負荷分散決定部312は、受信された負荷情報に含まれる負荷の値と、自ノードの負荷の値とが所定の関係を満たす場合に、負荷分散の処理内容を決定する。ここで、所定の関係とは、次式(1)で表される関係であってもよい。
[比較ノード310の負荷の値]≧[受信した負荷情報に含まれる負荷の値]・・・(1)
具体的には、負荷分散決定部312は、そのような所定の関係を満たす場合であって、負荷情報の送信元である候補ノード320が自ノードのプレディセッサである場合、自ノード(比較ノード310)および候補ノード320間で負荷を均等にするようデータを移動する負荷分散処理を決定する。また、負荷分散決定部312は、そのような所定の関係を満たす場合であって、負荷情報の送信元である候補ノード320が自ノードのプレディセッサではない場合、候補ノード320の処理をサクセッサ(代行ノード330)に代行させるとともに自ノード(比較ノード310)の処理の一部を候補ノード320に分担させる負荷分散処理を決定する。このとき、負荷分散決定部312は、自ノードの負荷分散後の負荷の値と、候補ノード320の負荷分散後の負荷の値とが均等になるように、自ノードから候補ノード320に移動するデータを決定してもよい。また、負荷分散決定部312は、所定の関係が満たされない場合は、この候補ノード320と自ノード間で負荷分散を実行しないことを決定する。
When the load value included in the received load information and the load value of the own node satisfy a predetermined relationship, the load distribution determination unit 312 determines the load distribution processing content. Here, the predetermined relationship may be a relationship represented by the following equation (1).
[Load value of comparison node 310] ≧ [Load value included in received load information] (1)
Specifically, when the load distribution determination unit 312 satisfies such a predetermined relationship and the candidate node 320 that is the transmission source of the load information is the predecessor of the own node, the load distribution determination unit 312 ) And a load distribution process for moving data so that the load is evenly distributed among the candidate nodes 320. In addition, when the load distribution determination unit 312 satisfies such a predetermined relationship and the candidate node 320 that is the load information transmission source is not the predecessor of the own node, the load distribution determination unit 312 performs the processing of the candidate node 320 as a successor (proxy) The node 330) is delegated, and a load distribution process for allocating a part of the process of the own node (comparison node 310) to the candidate node 320 is determined. At this time, the load distribution determining unit 312 moves from the own node to the candidate node 320 so that the load value after load distribution of the own node is equal to the load value after load distribution of the candidate node 320. Data may be determined. In addition, when the predetermined relationship is not satisfied, the load distribution determining unit 312 determines not to execute load distribution between the candidate node 320 and the own node.

また、負荷分散決定部312は、負荷分散の実行を決定した場合は、その処理内容を、候補ノード320に通知する。   In addition, when the load distribution determination unit 312 determines to execute load distribution, the load distribution determination unit 312 notifies the candidate node 320 of the processing content.

負荷分散実行部315は、負荷分散決定部312によって決定された内容の負荷分散を実行する。   The load distribution execution unit 315 executes load distribution of the content determined by the load distribution determination unit 312.

以上のように構成された分散処理システム3の動作について、図10および図11を参照して詳細に説明する。なお、図10は候補ノード320の動作を示し、図11は比較ノード310の動作を示している。また、図10および図11における破線の矢印は、候補ノード320および比較ノード310間のデータの流れを示す。   The operation of the distributed processing system 3 configured as described above will be described in detail with reference to FIGS. 10 and 11. 10 shows the operation of the candidate node 320, and FIG. 11 shows the operation of the comparison node 310. 10 and 11 indicate the flow of data between the candidate node 320 and the comparison node 310.

図10では、まず、候補ノード320の代行ノード集合作成部321は、代行ノード集合を構成する代行ノード330として、自ノードのサクセッサを選択する(ステップS21)。   In FIG. 10, first, the proxy node set creation unit 321 of the candidate node 320 selects the successor of its own node as the proxy node 330 constituting the proxy node set (step S <b> 21).

次に、代行ノード負荷受信部322は、サクセッサからその負荷の値を受信する(ステップS22)。   Next, the proxy node load receiving unit 322 receives the load value from the successor (step S22).

次に、負荷情報作成部323は、比較ノード310が自ノードのサクセッサであるか否かを判断する(ステップS23)。なお、ここで、負荷情報作成部323は、負荷情報送信部324によって、例えば前述の負荷情報送信先の選択手法(1)〜(4)のいずれかを用いて選択された比較ノード310について、判断を行うようにすればよい。   Next, the load information creation unit 323 determines whether or not the comparison node 310 is a successor of its own node (step S23). Here, the load information creation unit 323 uses the load information transmission unit 324 for, for example, the comparison node 310 selected using any one of the load information transmission destination selection methods (1) to (4) described above. Judgment should be made.

ここで、比較ノード310が自ノードのサクセッサである場合、負荷情報作成部323は、自ノードの負荷の値と、自ノードIDとからなる負荷情報を作成する(ステップS24)。   Here, when the comparison node 310 is the successor of the own node, the load information creation unit 323 creates load information including the load value of the own node and the own node ID (step S24).

一方、比較ノード310が自ノードのサクセッサでない場合、負荷情報作成部323は、自ノードの負荷の値およびサクセッサの負荷の値の合計値(サクセッサの代行後負荷予測値)と、自ノードIDとからなる負荷情報を作成する(ステップS25)。   On the other hand, when the comparison node 310 is not the successor of the own node, the load information creation unit 323 determines the total value of the load value of the own node and the load value of the successor (predicted post-substitute load prediction value), the own node ID, Is created (step S25).

次に、負荷情報送信部324は、ステップS24またはステップS25で作成された負荷情報を比較ノード310に送信する(ステップS26)。   Next, the load information transmission unit 324 transmits the load information created in step S24 or step S25 to the comparison node 310 (step S26).

次に、負荷情報を受信した比較ノード310の動作を、図11を参照して説明する。   Next, the operation of the comparison node 310 that has received the load information will be described with reference to FIG.

図11では、まず、比較ノード310の負荷情報受信部311は、候補ノード320から負荷情報を受信する(ステップS27)。   In FIG. 11, first, the load information receiving unit 311 of the comparison node 310 receives load information from the candidate node 320 (step S27).

次に、負荷分散決定部312は、受信された負荷情報に含まれる負荷の値と、自ノードの負荷の値とが所定の関係を満たすか否かを判断する(ステップS28)。例えば、前述のように、所定の関係とは、自ノードの負荷の値が、受信された負荷情報に含まれる負荷の値以上であることであってもよい。   Next, the load distribution determining unit 312 determines whether or not the load value included in the received load information and the load value of the own node satisfy a predetermined relationship (step S28). For example, as described above, the predetermined relationship may be that the load value of the own node is equal to or greater than the load value included in the received load information.

ここで、所定の関係を満たすと判断した場合、負荷分散決定部312は、さらに、負荷情報の送信元である候補ノード320が、自ノード(比較ノード310)のプレディセッサであるか否かを判断する(ステップS29)。   If it is determined that the predetermined relationship is satisfied, the load distribution determining unit 312 further determines whether or not the candidate node 320 that is the load information transmission source is a predecessor of the own node (comparison node 310). (Step S29).

ここで、候補ノード320が自ノードのプレディセッサである場合、負荷分散決定部312は、自ノードおよび候補ノード320間で負荷の値が均等になるよう、2つのノード間でデータを移動する負荷分散を決定する(ステップS30)。そして、負荷分散の処理内容を候補ノード320に通知する。   Here, when the candidate node 320 is a predecessor of the own node, the load distribution determination unit 312 moves the data between the two nodes so that the load values are equal between the own node and the candidate node 320. Is determined (step S30). Then, the candidate node 320 is notified of the processing contents of load distribution.

一方、候補ノード320が自ノードのプレディセッサでない場合、負荷分散決定部312は、候補ノード320の処理をそのサクセッサに代行させるとともに、自ノードおよび候補ノード320間で負荷の値が均等になるよう自ノードから候補ノード320へデータを移動する負荷分散を決定する(ステップS31)。そして、負荷分散の処理内容を候補ノード320に通知する。   On the other hand, when the candidate node 320 is not the predecessor of the own node, the load distribution determining unit 312 substitutes the successor for the processing of the candidate node 320 and automatically sets the load value between the own node and the candidate node 320 to be equal. Load distribution for moving data from the node to the candidate node 320 is determined (step S31). Then, the candidate node 320 is notified of the processing contents of load distribution.

また、ステップS28において、所定の関係を満たさないと判断した場合、分散処理システム3は負荷分散を実行しない。   If it is determined in step S28 that the predetermined relationship is not satisfied, the distributed processing system 3 does not execute load distribution.

次に、比較ノード310の負荷分散実行部315は、ステップS30またはステップS31で決定された負荷分散の内容にしたがって、候補ノード320との間でデータの送受信を行う(ステップS32)。   Next, the load distribution execution unit 315 of the comparison node 310 transmits / receives data to / from the candidate node 320 according to the content of the load distribution determined in step S30 or step S31 (step S32).

次に、図10において、候補ノード320の負荷分散実行部325は、比較ノード310から負荷分散の処理内容を通知されると(ステップS33でYes)、通知された処理内容にしたがって負荷分散を実行する(ステップS34)。具体的には、もし、比較ノード310が自ノードのサクセッサであれば、負荷分散実行部325は、比較ノード310および自ノード間で負荷分散後の負荷の値が均等になるようデータを送受信する。また、比較ノード310が自ノードのサクセッサでなければ、負荷分散実行部325は、自ノードの担当していたデータの全てをサクセッサに送信する。そして、負荷分散実行部325は、比較ノード310および自ノード間で負荷分散後の負荷の値が均等になるよう、比較ノード310からデータを受信する。   Next, in FIG. 10, when the load distribution execution unit 325 of the candidate node 320 is notified of the load distribution processing content from the comparison node 310 (Yes in step S33), the load distribution is executed according to the notified processing content. (Step S34). Specifically, if the comparison node 310 is a successor of its own node, the load distribution execution unit 325 transmits and receives data so that the load values after load distribution are equalized between the comparison node 310 and its own node. . If the comparison node 310 is not the successor of its own node, the load distribution execution unit 325 transmits all of the data handled by the own node to the successor. Then, the load distribution execution unit 325 receives data from the comparison node 310 so that the load values after load distribution are equal between the comparison node 310 and the own node.

以上で、分散処理システム3は動作を終了する。   Thus, the distributed processing system 3 ends the operation.

次に、分散処理システム3の負荷分散動作について、具体例を挙げて説明する。ここでは、図12に示したようなノードaからノードhまでの8つの分散処理装置によって構成される分散処理システムに、本実施の形態としての分散処理システム3を適用した場合の負荷分散動作について説明する。なお、前述のように、図12において、各ノードは、リング上のキー空間900上で図示の順に並ぶノードIDをそれぞれ有している。また、各ノードを示す図形の横に示した数値は、各ノードの負荷の値を表している。   Next, the load distribution operation of the distributed processing system 3 will be described with a specific example. Here, load distribution operation when the distributed processing system 3 according to the present embodiment is applied to a distributed processing system constituted by eight distributed processing devices from the node a to the node h as shown in FIG. explain. As described above, in FIG. 12, each node has a node ID arranged in the order shown in the key space 900 on the ring. Further, the numerical value shown beside the graphic indicating each node represents the load value of each node.

まず、ノードeを候補ノード320とし、ノードeにより負荷情報の送信先の比較ノード310としてノードaが選択された場合の動作例について説明する。   First, an operation example when the node e is the candidate node 320 and the node e is selected as the comparison node 310 of the load information transmission destination by the node e will be described.

この場合、まず、ノードeの代行ノード集合作成部321は、ノードeのサクセッサであるノードfを代行ノード330として選択する(ステップS21)。   In this case, first, the proxy node set creation unit 321 of the node e selects the node f that is the successor of the node e as the proxy node 330 (step S21).

そして、ノードeの代行ノード負荷受信部322は、ノードfから、ノードfの負荷の値「20%」を受信する(ステップS22)。   Then, the proxy node load receiving unit 322 of the node e receives the load value “20%” of the node f from the node f (step S22).

次に、ノードeの負荷情報作成部323は、比較ノード310としてのノードaが自ノードのサクセッサではないので(ステップS23でNo)、ノードfの負荷の値「20%」および自ノードの負荷の値「30%」の合計値である「50%」(サクセッサの代行後負荷予測値)と、自ノードのノードIDとからなる負荷情報を作成する(ステップS25)。   Next, since the node a as the comparison node 310 is not the successor of the own node (No in step S23), the load information creation unit 323 of the node e determines the load value “20%” of the node f and the load of the own node. Load information consisting of "50%" (successor's surrogate post-substitute load prediction value) that is the total value of "30%" and the node ID of the own node is created (step S25).

次に、負荷情報送信部324は、作成された負荷情報を、比較ノード310としてのノードaに送信する(ステップS26)。   Next, the load information transmission unit 324 transmits the created load information to the node a as the comparison node 310 (step S26).

次に、負荷情報を受信したノードaでは、負荷分散決定部312は、自ノードの負荷の値「80%」が、受信された負荷情報に含まれる負荷の値「50%」以上であり(ステップS28でYes)、ノードeがノードaのプレディセッサではない(ステップS29でNo)と判断する。そこで、ノードaの負荷分散決定部312は、ノードeの処理をノードfに代行させるとともにノードaの処理の一部をノードeに分担させる負荷分散を決定する(ステップS31)。そして、ノードa、ノードeおよびノードfの各負荷分散実行部315、325および335は、決定された負荷分散を実行する。これにより、ノードaおよびノードeの負荷分散後の負荷の値はそれぞれ40%となる。また、ノードfの負荷分散後の負荷の値は50%となる。   Next, in the node a that receives the load information, the load distribution determination unit 312 has the load value “80%” of the own node equal to or greater than the load value “50%” included in the received load information ( In step S28, Yes), it is determined that the node e is not the predecessor of the node a (No in step S29). Therefore, the load distribution determining unit 312 of the node a determines load distribution that causes the node f to perform the process of the node e and also shares a part of the process of the node a with the node e (step S31). Then, the load distribution execution units 315, 325, and 335 of the node a, the node e, and the node f execute the determined load distribution. As a result, the load values after the load distribution of the node a and the node e are each 40%. Further, the load value after load distribution of the node f is 50%.

以上で、ノードeを候補ノード320とし、ノードaを比較ノード310とした場合の動作の具体例の説明を終了する。   This is the end of the description of the specific example of the operation when the node e is the candidate node 320 and the node a is the comparison node 310.

次に、ノードfを候補ノード320とし、ノードfにより負荷情報の送信先の比較ノード310としてノードaが選択された場合の動作例について説明する。   Next, an operation example when the node f is the candidate node 320 and the node a is selected as the load information comparison node 310 by the node f will be described.

この場合、まず、ノードfの代行ノード集合作成部321は、ノードfのサクセッサであるノードgを代行ノード330として選択する(ステップS21)。   In this case, first, the proxy node set creation unit 321 of the node f selects the node g that is the successor of the node f as the proxy node 330 (step S21).

そして、ノードfの代行ノード負荷受信部322は、ノードgから、ノードgの負荷の値「79%」を受信する(ステップS22)。   Then, the proxy node load receiving unit 322 of the node f receives the load value “79%” of the node g from the node g (step S22).

次に、ノードfの負荷情報作成部323は、比較ノード310としてのノードaが自ノードのサクセッサではないので(ステップS23でNo)、ノードgの負荷の値「79%」および自ノードの負荷の値「20%」の合計値である「99%」(サクセッサの代行後負荷予測値)と、自ノードのノードIDとからなる負荷情報を作成する(ステップS25)。   Next, since the node a as the comparison node 310 is not the successor of the own node (No in step S23), the load information creation unit 323 of the node f determines the load value “79%” of the node g and the load of the own node. Load information consisting of “99%” (successor's proxy post-substitution predicted load value), which is the total value of “20%”, and the node ID of the own node is created (step S25).

次に、負荷情報送信部324は、作成された負荷情報を、比較ノード310としてのノードaに送信する(ステップS26)。   Next, the load information transmission unit 324 transmits the created load information to the node a as the comparison node 310 (step S26).

次に、負荷情報を受信したノードaでは、負荷分散決定部312は、自ノードの負荷の値「80%」が、受信された負荷情報に含まれる負荷の値「99%」以上ではないので(ステップS28でNo)、負荷分散を行わないと決定する。   Next, in the node a that has received the load information, the load distribution determining unit 312 determines that the load value “80%” of the own node is not equal to or greater than the load value “99%” included in the received load information. (No in step S28), it is determined not to perform load distribution.

以上で、分散処理システム3の負荷分散動作の具体例の説明を終了する。   Above, description of the specific example of load distribution operation | movement of the distributed processing system 3 is complete | finished.

次に、本発明の第3の実施の形態の効果について述べる。   Next, effects of the third exemplary embodiment of the present invention will be described.

本発明の第3の実施の形態としての分散処理システムは、あるノードの負荷を軽減するための負荷分散処理に関連したノード群において、負荷分散前の負荷の値の最大値より、負荷分散後の負荷の値の最大値が大きくなることを防止することができる。   The distributed processing system according to the third exemplary embodiment of the present invention is a node group related to load distribution processing for reducing the load of a certain node, after the load distribution is greater than the maximum load value before load distribution. It is possible to prevent the maximum value of the load value from increasing.

その理由は、比較ノードの負荷分散決定部が、自ノードの負荷の値が、自ノードの処理を分担させる候補ノードの処理を代行させる代行ノードの代行後負荷予測値以上である(所定の関係である)場合に、負荷分散を実行することを決定するからである。   The reason is that the load distribution determination unit of the comparison node has a load value of the own node that is equal to or greater than the predicted post-substitution load value of the proxy node that performs the process of the candidate node that shares the process of the self node (predetermined relationship). This is because it is decided to execute load balancing.

ここで、比較ノードの負荷分散前の負荷の値をl_a、負荷分散後の負荷の値をl_a’とし、候補ノードの負荷分散前の負荷の値をl_x、負荷分散後の負荷の値をl_x’とし、代行ノードの負荷分散前の負荷の値をl_y、負荷分散後の負荷の値をl_y’とする。このとき、前述の所定の関係は、l_a≧l_x+l_yと表される。また、代行後負荷予測値l_y’は、l_x+l_yで算出される。   Here, the load value before load distribution of the comparison node is l_a, the load value after load distribution is l_a ', the load value before load distribution of the candidate node is l_x, and the load value after load distribution is l_x It is assumed that the load value before load distribution of the proxy node is l_y, and the load value after load distribution is l_y. At this time, the predetermined relationship is expressed as l_a ≧ l_x + l_y. Further, the post-substitution load prediction value l_y ′ is calculated by l_x + l_y.

もし、代行後負荷予測値l_y’(=l_x+l_y)がl_aより大きいと(ステップS28でNo)、本実施の形態としての分散処理システムは、負荷分散を実行しない。したがって、max{l_a, l_x, l_y}=max{l_a’, l_x’, l_y’}となる。ここで、max{}は、要素のうち最大値を表す。したがって、関連するノード群(比較ノード、候補ノードおよび代行ノード)において、負荷分散前の負荷の値の最大値より、負荷分散後の負荷の値が大きくなることはない。   If the post-proxy load prediction value l_y ′ (= l_x + l_y) is larger than l_a (No in step S28), the distributed processing system according to the present embodiment does not execute load distribution. Therefore, max {l_a, l_x, l_y} = max {l_a ′, l_x ′, l_y ′}. Here, max {} represents the maximum value among the elements. Accordingly, in the related node group (comparison node, candidate node, and proxy node), the load value after load distribution does not become larger than the maximum load value before load distribution.

また、代行後負荷予測値l_y’(=l_x+l_y)がl_a以下であると(ステップS28でYes)、max{l_a, l_x, l_y}はl_aである。この場合、本実施の形態としての分散処理システムは、負荷分散を実行することにより、
l_a’=l_a×0.5、
l_x’=l_a×0.5、
l_y’=l_x+l_y
となる。このとき、max{l_a’, l_x’, l_y’}は、l_a×0.5またはl_x+l_yであるが、どちらの値も、l_a以下である。したがって、max{l_a, l_x, l_y}≧max{l_a’, l_x’, l_y’}となり、関連するノード群(比較ノード、候補ノードおよび代行ノード)において、負荷分散前の負荷の値の最大値より、負荷分散後の負荷の値が大きくなることはない。
Further, when the post-substitution load predicted value l_y ′ (= l_x + l_y) is equal to or less than l_a (Yes in step S28), max {l_a, l_x, l_y} is l_a. In this case, the distributed processing system as the present embodiment performs load balancing,
l_a '= l_a × 0.5,
l_x '= l_a × 0.5,
l_y '= l_x + l_y
It becomes. At this time, max {l_a ′, l_x ′, l_y ′} is l_a × 0.5 or l_x + l_y, and both values are equal to or less than l_a. Therefore, max {l_a, l_x, l_y} ≧ max {l_a ', l_x', l_y '}, and the maximum value of the load value before load distribution in the related node group (comparison node, candidate node, and proxy node) Thus, the load value after load distribution does not increase.

このように、本実施の形態としての分散処理システムにおいて、比較ノードの負荷の値が、代行ノードの代行後負荷予測値以上である場合に負荷分散を実行することにより、関連するノード群(比較ノード、候補ノードおよび代行ノード)において、負荷分散前の負荷の値の最大値より、負荷分散後の負荷の値が大きくなることはない。その結果、本実施の形態としての分散処理システムにおいて、負荷分散後にさらなる負荷分散が必要なケースを減らすことができ、負荷分散の処理回数を軽減できることになる。   As described above, in the distributed processing system according to the present embodiment, when the load value of the comparison node is equal to or higher than the post-proxy load prediction value of the proxy node, by executing load distribution, the related node group (comparison Node, candidate node, and proxy node), the load value after load distribution does not become larger than the maximum load value before load distribution. As a result, in the distributed processing system according to the present embodiment, cases where further load distribution is necessary after load distribution can be reduced, and the number of load distribution processes can be reduced.

例えば、図12において、ノードfを候補ノード320とし、ノードaを比較ノード310としたとき、本実施の形態としての分散処理システムは、負荷分散を行わないことを説明した。ここで、図12において、非特許文献1に記載の関連技術を適用した場合について考える。このとき、ノードaがノードfの負荷の値(l_f)を取得したとする。ここで、l_f(20%)≦ε×l_a(80%)である。また、ノードaがノードfのサクセッサではなく、ノードaの負荷の値(l_a=80%)が、ノードfのサクセッサであるノードgの負荷の値(l_c=79%)より大きい。したがって、この場合は、関連技術におけるcase3に相当する。そこで、ノードfは、保持するデータをノードgに移動して空きノードとなる。そして、ノードaは、ノードaの負荷の値が半分になるように、保持するデータをノードfに移動する。この結果ノードaおよびノードfの負荷の値はそれぞれ40%となり、ノードgの負荷の値は99%となる。その結果、関連技術では、負荷の値が99%となったノードgの負荷を軽減するための負荷分散が、さらに実行されることになる。一方、本実施の形態としての分散処理システムは、ノードfからノードaに負荷の値を送信した場合、前述のように負荷分散を実行せず、例えばノードeからノードaに負荷の値を送信した場合に、負荷分散を実行することになる。したがって、このような具体例において、本実施の形態としての分散処理システムは、負荷分散の処理回数を軽減することになる。   For example, in FIG. 12, it has been described that when the node f is the candidate node 320 and the node a is the comparison node 310, the distributed processing system according to the present embodiment does not perform load distribution. Here, consider the case where the related technique described in Non-Patent Document 1 is applied in FIG. At this time, it is assumed that the node a has acquired the load value (l_f) of the node f. Here, l_f (20%) ≦ ε × l_a (80%). In addition, the node a is not the successor of the node f, and the load value of the node a (l_a = 80%) is larger than the load value of the node g that is the successor of the node f (l_c = 79%). Therefore, this case corresponds to case 3 in the related art. Therefore, the node f becomes a free node by moving the held data to the node g. The node a moves the data to be held to the node f so that the load value of the node a is halved. As a result, the load value of the node a and the node f is 40%, and the load value of the node g is 99%. As a result, in the related art, load distribution for reducing the load of the node g having the load value of 99% is further executed. On the other hand, when the load value is transmitted from the node f to the node a, the distributed processing system according to the present embodiment does not perform load distribution as described above, and transmits the load value from the node e to the node a, for example. If this happens, load balancing will be executed. Therefore, in such a specific example, the distributed processing system according to the present embodiment reduces the number of load distribution processes.

なお、本実施の形態において、候補ノードの代行ノード集合作成部は、候補ノードのサクセッサを代行ノードとして、1つの代行ノードからなる代行ノード集合を作成するものとして説明した。この他、候補ノードの代行ノード集合作成部は、候補ノードに対して時計回り方向の距離が近いノードから順にn個(nは1以上の整数)のノードを代行ノードとして、それらの代行ノードによって構成される代行ノード集合を作成してもよい。   In the present embodiment, the proxy node set creation unit for candidate nodes has been described as creating a proxy node set composed of one proxy node using the successor of the candidate node as a proxy node. In addition, the proxy node set creation unit of candidate nodes uses n (n is an integer of 1 or more) nodes as proxy nodes in order from the node whose distance in the clockwise direction is close to the candidate node. A configured proxy node set may be created.

また、本実施の形態において、候補ノードが比較ノードに対して負荷情報を送信するタイミングとしては、以下が採用可能である。
<負荷送信タイミング(1)>所定のタイミング。例えば、一定時間毎や、あらかじめ定められたスケジュールにしたがったタイミング等。
<負荷送信タイミング(2)>候補ノードおよび代行ノードの少なくとも一方の負荷の値が、それぞれに定められた閾値以下となったタイミング。
<負荷送信タイミング(3)>候補ノードのルーティングテーブルにアドレスが格納されている他のノードのうち、単位時間当たりに転送されるデータの数または量が閾値以上となったノードがあるとき。
<負荷送信タイミング(4)>候補ノードにおいてデータ転送先のノード毎に送信キューが用意されている場合に、あるノード用の送信キューに格納されているデータ数または量が閾値以上になったとき。
Further, in the present embodiment, the following can be adopted as the timing at which the candidate node transmits load information to the comparison node.
<Load transmission timing (1)> Predetermined timing. For example, every certain time or timing according to a predetermined schedule.
<Load transmission timing (2)> Timing at which the load value of at least one of the candidate node and the proxy node becomes equal to or less than a threshold value determined for each.
<Load transmission timing (3)> When there is a node whose number or amount of data transferred per unit time is equal to or greater than a threshold among other nodes whose addresses are stored in the routing table of the candidate node.
<Load transmission timing (4)> When a transmission queue is prepared for each data transfer destination node in the candidate node, and the number or amount of data stored in the transmission queue for a certain node exceeds a threshold value .

なお、候補ノードがこのようなタイミングを判断して比較ノードに対して代行後負荷予測値を送信してもよいし、比較ノードがこのようなタイミングを判断することにより候補ノードに代行後負荷予測値の送信を要求してもよい。   The candidate node may determine such timing and transmit the post-substitution load prediction value to the comparison node, or the comparison node may determine such timing and send the post-substitution load prediction value to the candidate node. You may request to send a value.

また、本発明の第2および第3の実施の形態において、比較ノードの代行後負荷予測値受信部(または負荷情報受信部)は、複数の候補ノードから代行後負荷予測値を受信してもよい。この場合、比較ノードの負荷分散決定部は、最も値が小さい代行後負荷予測値の送信元の候補ノードおよびその代行ノードを用いた負荷分散を決定してもよい。   In the second and third embodiments of the present invention, the post-substitution load prediction value reception unit (or load information reception unit) of the comparison node may receive post-substitution load prediction values from a plurality of candidate nodes. Good. In this case, the load distribution determining unit of the comparison node may determine the load distribution using the candidate node of the transmission source predicted load value with the smallest value and the proxy node.

また、本発明の第2および第3の実施の形態において、比較ノードの負荷分散決定部が、負荷分散を実行しないことを決定した場合、この候補ノードから受信した代行後負荷予測値を、他の比較ノードに転送してもよい。この場合、代行後負荷予測値を転送された他の比較ノードが同様に動作することにより、負荷分散を行うか否かを決定すればよい。これにより、各実施の形態としての分散処理システムは、ある候補ノードによって算出された代行後負荷予測値をもとに、負荷の値が高いいずれかのノードの負荷を軽減する負荷分散を実行できることになる。   In the second and third embodiments of the present invention, when the load distribution determination unit of the comparison node determines not to execute load distribution, the post-proxy load prediction value received from this candidate node is May be transferred to the comparison node. In this case, it is only necessary to determine whether or not to perform load distribution by the other comparison nodes to which the post-proxy load prediction value has been transferred operating in the same manner. As a result, the distributed processing system according to each embodiment can execute load distribution that reduces the load on any node with a high load value based on the post-proxy load prediction value calculated by a certain candidate node. become.

また、本発明の第2および第3の実施の形態において、候補ノードは、自ノードの負荷の値または代行ノードの負荷の値の少なくともいずれか一方が閾値以上であるときは、比較ノードに代行後負荷予測値を送信しないようにしてもよい。これにより、各実施の形態としての分散処理システムは、負荷分散を実行しないことを決定する可能性が高いにもかかわらず、代行後負荷予測値の送信処理および負荷分散を実行するか否かの決定処理を行うことがなく、より効率的に負荷分散を実行可能となる。   In the second and third embodiments of the present invention, the candidate node acts as a substitute for the comparison node when at least one of the load value of the own node or the load value of the substitute node is equal to or greater than the threshold value. The post-load predicted value may not be transmitted. As a result, the distributed processing system according to each embodiment determines whether or not to execute post-substitution load prediction value transmission processing and load distribution even though there is a high possibility of determining not to execute load distribution. The load distribution can be executed more efficiently without performing the determination process.

また、上述した各実施の形態としての分散処理システムは、候補ノードおよび代行ノードを用いて負荷分散を行うことを決定した場合に、そのような負荷分散を実行する前に、次の処理をおこなってもよい。すなわち、この場合において、各実施の形態としての分散処理システムは、代行ノードの負荷の値が、代行ノードのサクセッサの負荷の値以上であれば、代行ノードの処理の一部を代行ノードのサクセッサに分担させる負荷分散をあらかじめ行うようにしてもよい。これにより、各実施の形態としての分散処理システムは、負荷分散による代行ノードの負荷の値の上昇をさらに軽減することができる。   In addition, the distributed processing system according to each embodiment described above performs the following processing before executing load balancing when it is determined to perform load balancing using candidate nodes and proxy nodes. May be. In other words, in this case, the distributed processing system according to each embodiment, when the load value of the proxy node is equal to or greater than the load value of the proxy node, part of the processing of the proxy node is processed by the proxy node. You may make it perform the load distribution to share in advance. Thereby, the distributed processing system as each embodiment can further reduce the increase in the load value of the proxy node due to load distribution.

また、本発明の第2および第3の実施の形態において、候補ノードが、代行ノード集合を作成して代行後負荷予測値を算出し、比較ノードが、代行後負荷予測値が所定の条件を満たすか否かに基づいて負荷分散を実行するか否かを決定する例について説明した。これに限らず、本発明の分散処理システムにおいて、代行ノード集合の作成処理は、候補ノード以外のノードによって行われても構わない。また、本発明の分散処理システムにおいて、代行後負荷予測値の算出処理は、候補ノード以外のノードによって行われても構わない。また、本発明の分散処理システムにおいて、代行後負荷予測値が所定の条件を満たすか否かの判定処理は、比較ノード以外のノードによって行われても構わない。   In the second and third embodiments of the present invention, the candidate node creates a proxy node set and calculates a post-substitution load prediction value, and the comparison node determines that the post-substitution load prediction value satisfies a predetermined condition. An example has been described in which it is determined whether or not to perform load balancing based on whether or not it is satisfied. Not limited to this, in the distributed processing system of the present invention, the proxy node set creation process may be performed by a node other than the candidate nodes. In the distributed processing system of the present invention, the post-substitution load prediction value calculation process may be performed by a node other than the candidate node. Further, in the distributed processing system of the present invention, the determination process as to whether or not the post-substitution load prediction value satisfies a predetermined condition may be performed by a node other than the comparison node.

また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各ノードの動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。   In each embodiment of the present invention described above, the operation of each node described with reference to each flowchart is stored as a computer program of the present invention in a storage device (storage medium) of the computer device. The computer program may be read and executed by the CPU. In such a case, the present invention is constituted by the code of the computer program or a storage medium.

また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。   Moreover, each embodiment mentioned above can be implemented in combination as appropriate.

また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。   The present invention is not limited to the above-described embodiments, and can be implemented in various modes.

また、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
1つ以上の分散処理装置(ノード)によって構成される分散処理システムにおいて、
あるノード(比較ノード)が担当する処理の一部を分担させる候補となるノード(候補ノード)について、前記候補ノードが担当している処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成し、
前記代行ノード集合が前記候補ノードの処理を代行する場合の前記各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求め、
前記各代行ノードの代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行する、負荷分散方法。
(付記2)
前記各代行ノードの代行後負荷予測値と、前記比較ノードの負荷分散前の負荷の値とが所定の関係にあることを前記所定の条件として、該所定の条件が満たされる場合に前記負荷分散を実行することを特徴とする付記1に記載の負荷分散方法。
(付記3)
概念的なリング状のキー空間であって、キーの値が時計回りに増加するとともに、キー間の距離が時計回り方向に定義されているキー空間において、前記分散処理システムを構成する各ノードがいずれかのキーをノードIDとして有しており、前記分散処理システムの処理対象となるデータが、該データから算出されるキーからの距離が最も近いノードIDを有するノード(該キーのサクセッサ)によって処理されるとき、
前記代行ノード集合として、前記キー空間において前記候補ノードに対して距離が近いノードから順にn個(nは1以上の整数)のノードによって構成される集合を作成することを特徴とする付記1または付記2に記載の負荷分散方法。
(付記4)
前記代行ノード集合が1つの代行ノード(候補ノードのサクセッサ)によって構成され、
前記代行ノードの代行後負荷予測値および前記比較ノードの負荷分散前の負荷の値が前記所定の関係であるとき、
前記比較ノードが前記候補ノードのサクセッサならば、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードおよび前記候補ノード間でデータの移動を行う負荷分散を実行し、
前記比較ノードが前記候補ノードのサクセッサではないならば、前記候補ノードが保持するデータの全てを前記代行ノードに移動させるとともに、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードから前記候補ノードにデータの移動を行う負荷分散を実行することを特徴とする付記3に記載の負荷分散方法。
(付記5)
前記分散処理システムを構成する各ノードのうち、負荷の値が閾値以上であるノードを前記比較ノードとして、前記負荷分散を実行することを特徴とする付記1から付記4のいずれか1項に記載の負荷分散方法。
(付記6)
前記分散処理システムを構成する各ノードのうち、ランダムに選択されたノードを前記比較ノードとして、前記負荷分散を実行することを特徴とする付記1から付記4のいずれか1つに記載の負荷分散方法。
(付記7)
前記候補ノードにおいて他のノードに関する情報を保持するルーティングテーブルに含まれる他のノードのいずれかを前記比較ノードとして、前記負荷分散を実行することを特徴とする付記1から付記4のいずれか1つに記載の負荷分散方法。
(付記8)
前記候補ノードにおける前記ルーティングテーブルに含まれる他のノードのいずれかに対して、単位時間当たりに転送されるデータ量が閾値以上になったタイミングで、前記各代行ノードの代行後負荷予測値を求めることにより、該他のノードを前記比較ノードとして前記負荷分散を実行することを特徴とする付記7に記載の負荷分散方法。
(付記9)
前記候補ノードにおいてデータ転送先となる他のノードごとに送信キューが用意されている場合に、いずれかの他のノード用の送信キューに格納されているデータ量が閾値以上になったタイミングで、前記各代行ノードの代行後負荷予測値を求めることにより、該他のノードを前記比較ノードとして前記負荷分散を実行することを特徴とする付記1から付記4のいずれか1つに記載の負荷分散方法。
(付記10)
前記各代行ノードの代行後負荷予測値を所定のタイミング毎に求めることにより、前記負荷分散を実行することを特徴とする付記1から付記7のいずれか1つに記載の負荷分散方法。
(付記11)
前記候補ノードの負荷の値および前記代行ノードの負荷の値の少なくとも一方がそれぞれに定められた閾値以下となったタイミングで、前記各代行ノードの代行後負荷予測値を求めることにより、前記負荷分散を実行することを特徴とする付記1から付記7のいずれか1つに記載の負荷分散方法。
(付記12)
複数の前記候補ノードについてそれぞれ前記代行ノード集合を作成し、作成した各代行ノード集合における前記代行後負荷予測値に基づいていずれかの候補ノードを選択し、選択した候補ノードおよびその代行ノード集合を用いて、前記比較ノードの前記負荷分散を実行することを特徴とする付記1から付記11のいずれか1つに記載の負荷分散方法。
(付記13)
前記代行後負荷予測値と、前記比較ノードの負荷分散前の負荷の値とが前記所定の関係にない場合に、他のノードを新たな比較ノードとして前記代行後負荷予測値が前記所定の関係を満たすか否かに基づいて、前記新たな比較ノードについて前記負荷分散を実行するか否かを決定することを特徴とする付記2から付記12のいずれか1つに記載の負荷分散方法。
(付記14)
前記各代行ノードの代行後負荷予測値として、前記候補ノードの処理の全てのうち前記各代行ノードに代行させる分の負荷の値と、前記各代行ノードの負荷の値との合計値をそれぞれ求めることを特徴とする付記1から付記13のいずれか1つに記載の負荷分散方法。
(付記15)
前記各代行ノードの代行後負荷予測値が均等になるよう前記各代行ノードに代行させる分の負荷の値を算出することにより、前記各代行ノードの代行後負荷予測値を求めることを特徴とする付記14に記載の負荷分散方法。
(付記16)
前記代行ノード集合が1つの代行ノードからなるとき、該代行ノードの代行後負荷予測値として、前記候補ノードの負荷の値と、前記代行ノードの負荷の値との合計値を求めることを特徴とする付記14に記載の負荷分散方法。
(付記17)
前記比較ノードの負荷分散前の負荷の値が、前記各代行ノードの代行後負荷予測値の最大値以上であることを前記所定の関係として、該所定の関係が満たされる場合に前記負荷分散を実行することを特徴とする付記2から付記16のいずれか1つに記載の負荷分散方法。
(付記18)
前記各代行ノードの代行後負荷予測値の最大値が閾値以下であることを前記所定の条件として、該所定の条件が満たされる場合に前記負荷分散を実行することを特徴とする付記1に記載の負荷分散方法。
(付記19)
前記代行ノードとなりうるノードのうち、負荷の値が閾値以下のものを前記代行ノードとして前記代行ノード集合を作成することを特徴とする付記1または付記2に記載の負荷分散方法。
(付記20)
前記代行ノードとなりうるノードのうち、負荷の値が最小のものを前記代行ノードとして前記代行ノード集合を作成することを特徴とする付記19に記載の負荷分散方法。
(付記21)
1つ以上の分散処理装置(ノード)によって構成される分散処理システムであって、
他のノード(比較ノード)が担当する処理の一部を分担する候補となる候補ノードは、
自ノードが担当する処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記代行ノードは、
前記候補ノードに対して自ノードの負荷の値を送信する負荷送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記比較ノードは、
前記代行後負荷予測値を受信する代行後負荷予測値受信部と、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、
決定された負荷分散を実行する負荷分散実行部と、
を備える分散処理システム。
(付記22)
分散処理システムを構成する分散処理装置(ノード)であって、
自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備えた分散処理装置。
(付記23)
分散処理システムを構成する分散処理装置(ノード)を用いて、
自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成し、
前記各代行ノードの負荷の値を受信し、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求め、
前記代行後負荷予測値を前記比較ノードに送信し、
前記比較ノードによって決定される負荷分散を実行する、負荷分散方法。
(付記24)
分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、
自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成ステップと、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信ステップと、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出ステップと、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信ステップと、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行ステップと、
を実行させるコンピュータ・プログラム。
(付記25)
分散処理システムを構成する分散処理装置(ノード)であって、
自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、
前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信部と、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、
決定した負荷分散を実行する負荷分散実行部と、
を備えた分散処理装置。
(付記26)
分散処理システムを構成する分散処理装置(ノード)を用いて、
自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、
前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信し、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定し、
決定した負荷分散を実行する、負荷分散方法。
(付記27)
分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、
自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信ステップと、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定ステップと、
決定した負荷分散を実行する負荷分散実行ステップと、
を実行させるコンピュータ・プログラム。
Moreover, a part or all of each embodiment mentioned above can be described as the following supplementary notes, but is not limited to the following.
(Appendix 1)
In a distributed processing system composed of one or more distributed processing devices (nodes),
For a node (candidate node) that is a candidate for sharing a part of processing handled by a certain node (comparison node), all of the processing handled by the candidate node is performed using one or more nodes (proxy nodes). Create a proxy node set for proxy,
Obtaining a predicted load value after proxy of each proxy node when the proxy node set performs processing of the candidate node (post-substitute load prediction value),
When the post-substitution load prediction value of each proxy node satisfies a predetermined condition, the candidate node processing is substituted for the proxy node set to make the candidate node an empty node, and the comparison node is in charge Load distribution method for executing load distribution in which a part of the node is shared by the candidate nodes that have become free nodes.
(Appendix 2)
The load distribution is performed when the predetermined condition is satisfied with the predetermined condition that the predicted load value after the proxy of each proxy node and the load value before the load distribution of the comparison node are in a predetermined relationship. The load balancing method according to supplementary note 1, wherein:
(Appendix 3)
In a key space in which a key value increases clockwise and a distance between keys is defined in a clockwise direction, each node constituting the distributed processing system is a conceptual ring-shaped key space. One of the keys is used as a node ID, and the data to be processed by the distributed processing system is determined by the node having the closest node ID from the key calculated from the data (the successor of the key). When processed
Note 1 or 2, wherein, as the proxy node set, a set composed of n nodes (n is an integer of 1 or more) in order from a node having a distance close to the candidate node in the key space is created. The load distribution method according to attachment 2.
(Appendix 4)
The proxy node set is constituted by one proxy node (successor of candidate nodes),
When the post-proxy load prediction value of the proxy node and the load value before load distribution of the comparison node are in the predetermined relationship,
If the comparison node is a successor of the candidate node, load distribution is performed to move data between the comparison node and the candidate node so that the loads of the comparison node and the candidate node are equal.
If the comparison node is not a successor of the candidate node, the comparison node is moved so that all the data held by the candidate node is moved to the proxy node and the loads of the comparison node and the candidate node are equalized. The load balancing method according to appendix 3, wherein load balancing is performed to move data from a node to the candidate node.
(Appendix 5)
5. The load distribution is performed by using, as a comparison node, a node having a load value equal to or greater than a threshold value among the nodes constituting the distributed processing system, according to any one of appendix 1 to appendix 4, Load balancing method.
(Appendix 6)
The load distribution according to any one of appendix 1 to appendix 4, wherein the load distribution is executed by using a randomly selected node as the comparison node among the nodes constituting the distributed processing system. Method.
(Appendix 7)
Any one of Supplementary Note 1 to Supplementary Note 4, wherein the load distribution is executed by using any one of the other nodes included in the routing table holding information on the other nodes in the candidate node as the comparison node. Load balancing method described in 1.
(Appendix 8)
A proxy post-substitution load prediction value of each proxy node is obtained at a timing when the amount of data transferred per unit time exceeds a threshold with respect to any of the other nodes included in the routing table in the candidate node The load distribution method according to appendix 7, wherein the load distribution is executed using the other node as the comparison node.
(Appendix 9)
When a transmission queue is prepared for each other node that is a data transfer destination in the candidate node, at a timing when the amount of data stored in the transmission queue for any other node is equal to or more than a threshold, The load distribution according to any one of appendix 1 to appendix 4, wherein the load distribution is executed by using the other node as the comparison node by obtaining a post-proxy load prediction value of each of the proxy nodes. Method.
(Appendix 10)
The load distribution method according to any one of appendix 1 to appendix 7, wherein the load distribution is executed by obtaining a post-proxy load prediction value of each of the proxy nodes at every predetermined timing.
(Appendix 11)
The load distribution is obtained by obtaining a post-proxy load prediction value of each proxy node at a timing when at least one of the load value of the candidate node and the load value of the proxy node is equal to or less than a threshold value defined for each of the candidate nodes. The load distribution method according to any one of appendix 1 to appendix 7, wherein:
(Appendix 12)
The proxy node set is created for each of the plurality of candidate nodes, one of the candidate nodes is selected based on the post-proxy load prediction value in each of the generated proxy node sets, and the selected candidate node and the proxy node set are selected. The load distribution method according to any one of appendix 1 to appendix 11, wherein the load distribution of the comparison node is executed.
(Appendix 13)
When the post-proxy load prediction value and the load value before load distribution of the comparison node are not in the predetermined relationship, the post-proxy load prediction value is the predetermined relationship with another node as a new comparison node. 13. The load distribution method according to any one of appendix 2 to appendix 12, wherein whether or not to execute the load distribution for the new comparison node is determined based on whether or not the condition is satisfied.
(Appendix 14)
As the post-substitution load prediction value of each proxy node, a total value of a load value to be substituted for each proxy node and a load value of each proxy node among all the processes of the candidate nodes is obtained. 14. The load distribution method according to any one of supplementary note 1 to supplementary note 13, characterized by:
(Appendix 15)
The post-substitution load prediction value of each proxy node is obtained by calculating a load value for proxying to each of the proxy nodes so that the post-substitution load prediction values of the proxy nodes are equal. The load balancing method according to appendix 14.
(Appendix 16)
When the proxy node set consists of one proxy node, a total value of a load value of the candidate node and a load value of the proxy node is obtained as a post-substitution load prediction value of the proxy node. The load distribution method according to appendix 14.
(Appendix 17)
The load distribution before load distribution of the comparison node is equal to or greater than the maximum value of the post-proxy load prediction value of each proxy node, and the load distribution is performed when the predetermined relationship is satisfied. The load balancing method according to any one of Supplementary Note 2 to Supplementary Note 16, which is executed.
(Appendix 18)
The supplementary note 1 is characterized in that the load distribution is executed when the predetermined condition is satisfied, with the predetermined condition that the maximum value of the post-proxy load prediction value of each proxy node is equal to or less than a threshold value. Load balancing method.
(Appendix 19)
The load distribution method according to Supplementary Note 1 or Supplementary Note 2, wherein the proxy node set is created by using, as the proxy node, a node having a load value equal to or less than a threshold among the nodes that can be the proxy node.
(Appendix 20)
20. The load distribution method according to appendix 19, wherein the proxy node set is created by using, as the proxy node, a node having a minimum load value among the nodes that can be the proxy node.
(Appendix 21)
A distributed processing system including one or more distributed processing devices (nodes),
Candidate nodes that are candidates for sharing a part of the processing handled by other nodes (comparison nodes)
A proxy node set creation unit that creates a proxy node set that substitutes one or more nodes (proxy nodes) for all of the processes handled by the own node;
A proxy node load receiving unit that receives a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculation unit;
A post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node;
A load distribution execution unit for executing load distribution determined by the comparison node;
With
The proxy node is
A load transmitter that transmits a load value of the own node to the candidate node;
A load distribution execution unit for executing load distribution determined by the comparison node;
With
The comparison node is
A post-substitution load prediction value receiving unit that receives the post-substitution load prediction value;
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determination unit that determines to execute load distribution to be shared among the candidate nodes that have become free nodes;
A load balancing execution unit for executing the determined load balancing;
A distributed processing system.
(Appendix 22)
A distributed processing device (node) constituting a distributed processing system,
When the own node is a node (candidate node) that is a candidate for sharing a part of the process handled by another node (comparison node), one or more other nodes handle all of the processes handled by the own node A proxy node set creation unit that creates a proxy node set to be delegated using (proxy node);
A proxy node load receiving unit that receives a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculation unit;
A post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node;
A load distribution execution unit for executing load distribution determined by the comparison node;
A distributed processing apparatus.
(Appendix 23)
Using the distributed processing devices (nodes) constituting the distributed processing system,
When the own node is a node (candidate node) that is a candidate for sharing a part of the process handled by another node (comparison node), one or more other nodes handle all of the processes handled by the own node Create a proxy node set to proxy using (proxy node),
Receiving the load value of each proxy node;
Based on the load value of each proxy node, obtain a predicted value (post-substitution load prediction value) of the proxy node after the proxy node when the proxy node set performs the processing of the candidate node,
Sending the post-substitution load prediction value to the comparison node;
A load distribution method for executing load distribution determined by the comparison node.
(Appendix 24)
In the computer device constituting the distributed processing device (node) included in the distributed processing system,
When the own node is a node (candidate node) that is a candidate for sharing a part of the process handled by another node (comparison node), one or more other nodes handle all of the processes handled by the own node A proxy node set creation step of creating a proxy node set to be delegated using (proxy node);
A proxy node load receiving step of receiving a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculating step;
A post-substitution load prediction value transmission step of transmitting the post-substitution load prediction value to the comparison node;
A load balancing execution step for performing load balancing determined by the comparison node;
A computer program that runs
(Appendix 25)
A distributed processing device (node) constituting a distributed processing system,
When the own node is a comparison node that shares a part of the processing in charge with other candidate nodes,
Receiving a post-proxy load prediction value receiving from the candidate node a predicted load value (post-replacement load prediction value) of each proxy node that constitutes a proxy node set that performs all of the processes handled by the candidate node And
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determination unit that determines to execute load distribution to be shared among the candidate nodes that have become free nodes;
A load balancing execution unit for executing the determined load balancing;
A distributed processing apparatus.
(Appendix 26)
Using the distributed processing devices (nodes) constituting the distributed processing system,
When the own node is a comparison node that shares a part of the processing in charge with other candidate nodes,
Receiving from the candidate node the predicted value of the post-proxy load of each proxy node that constitutes the proxy node set that performs all of the processes in charge of the candidate node (post-substitute load predicted value);
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of , Decide to execute load distribution to be shared among the candidate nodes that have become free nodes,
A load balancing method that performs the determined load balancing.
(Appendix 27)
In the computer device constituting the distributed processing device (node) included in the distributed processing system,
When the own node is a comparison node that divides a part of the processing in charge to other candidate nodes, the proxy node of each proxy node constituting the proxy node set that performs all of the processing in charge of the candidate node A post-substitution load prediction value receiving step of receiving a predicted load value (post-substitution load prediction value) from the candidate node;
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determining step for determining to execute load distribution to be shared by the candidate nodes that have become empty nodes;
A load balancing execution step for executing the determined load balancing;
A computer program that runs

1、2、3 分散処理システム
101 代行ノード集合作成部
102 代行後負荷予測値算出部
103 代行後負荷予測値判断部
104 負荷分散実行部
10、20、30 分散処理装置
110、210、310 比較ノード
120、220、320 候補ノード
130、230、330 代行ノード
211 代行後負荷予測値受信部
212、312 負荷分散決定部
215、315 負荷分散実行部
221、321 代行ノード集合作成部
222、322 代行ノード負荷受信部
223 代行後負荷予測値算出部
224 代行後負荷予測値送信部
225、325 負荷分散実行部
231、331 負荷送信部
235、335 負荷分散実行部
311 負荷情報受信部
323 負荷情報作成部
324 負荷情報送信部
1001 CPU
1002 RAM
1003 ROM
1004 記憶装置
1005 ネットワークインタフェース
1, 2, 3 Distributed processing system 101 Proxy node set creation unit 102 Post-substitution load prediction value calculation unit 103 Post-substitution load prediction value determination unit 104 Load distribution execution unit 10, 20, 30 Distributed processing device 110, 210, 310 Comparison node 120, 220, 320 Candidate nodes 130, 230, 330 Proxy node 211 Load prediction value receiving unit 212, 312 Load distribution determination unit 215, 315 Load distribution execution unit 221, 321 Proxy node set creation unit 222, 322 Proxy node load Receiving unit 223 Post-substitution load prediction value calculation unit 224 Sub-substitute load prediction value transmission unit 225, 325 Load distribution execution unit 231, 331 Load transmission unit 235, 335 Load distribution execution unit 311 Load information reception unit 323 Load information creation unit 324 Load Information transmission unit 1001 CPU
1002 RAM
1003 ROM
1004 Storage device 1005 Network interface

Claims (10)

1つ以上の分散処理装置(ノード)によって構成される分散処理システムにおいて、
あるノード(比較ノード)が担当する処理の一部を分担させる候補となるノード(候補ノード)について、前記候補ノードが担当している処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成し、
前記代行ノード集合が前記候補ノードの処理を代行する場合の前記各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求め、
前記各代行ノードの代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行する、負荷分散方法。
In a distributed processing system composed of one or more distributed processing devices (nodes),
For a node (candidate node) that is a candidate for sharing a part of processing handled by a certain node (comparison node), all of the processing handled by the candidate node is performed using one or more nodes (proxy nodes). Create a proxy node set for proxy,
Obtaining a predicted load value after proxy of each proxy node when the proxy node set performs processing of the candidate node (post-substitute load prediction value),
When the post-substitution load prediction value of each proxy node satisfies a predetermined condition, the candidate node processing is substituted for the proxy node set to make the candidate node an empty node, and the comparison node is in charge Load distribution method for executing load distribution in which a part of the node is shared by the candidate nodes that have become free nodes.
前記各代行ノードの代行後負荷予測値と、前記比較ノードの負荷分散前の負荷の値とが所定の関係にあることを前記所定の条件として、該所定の条件が満たされる場合に前記負荷分散を実行することを特徴とする請求項1に記載の負荷分散方法。   The load distribution is performed when the predetermined condition is satisfied with the predetermined condition that the predicted load value after the proxy of each proxy node and the load value before the load distribution of the comparison node are in a predetermined relationship. The load distribution method according to claim 1, wherein: 概念的なリング状のキー空間であって、キーの値が時計回りに増加するとともに、キー間の距離が時計回り方向に定義されているキー空間において、前記分散処理システムを構成する各ノードがいずれかのキーをノードIDとして有しており、前記分散処理システムの処理対象となるデータが、該データから算出されるキーからの距離が最も近いノードIDを有するノード(該キーのサクセッサ)によって処理されるとき、
前記代行ノード集合として、前記キー空間において前記候補ノードに対して距離が近いノードから順にn個(nは1以上の整数)のノードによって構成される集合を作成することを特徴とする請求項1または請求項2に記載の負荷分散方法。
In a key space in which a key value increases clockwise and a distance between keys is defined in a clockwise direction, each node constituting the distributed processing system is a conceptual ring-shaped key space. One of the keys is used as a node ID, and the data to be processed by the distributed processing system is determined by the node having the closest node ID from the key calculated from the data (the successor of the key). When processed
2. The proxy node set is configured to create a set composed of n nodes (n is an integer of 1 or more) in order from a node closest to the candidate node in the key space. Or the load distribution method of Claim 2.
前記代行ノード集合が1つの代行ノード(候補ノードのサクセッサ)によって構成され、
前記代行ノードの代行後負荷予測値および前記比較ノードの負荷分散前の負荷の値が前記所定の関係であるとき、
前記比較ノードが前記候補ノードのサクセッサならば、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードおよび前記候補ノード間でデータの移動を行う負荷分散を実行し、
前記比較ノードが前記候補ノードのサクセッサではないならば、前記候補ノードが保持するデータの全てを前記代行ノードに移動させるとともに、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードから前記候補ノードにデータの移動を行う負荷分散を実行することを特徴とする請求項3に記載の負荷分散方法。
The proxy node set is constituted by one proxy node (successor of candidate nodes),
When the post-proxy load prediction value of the proxy node and the load value before load distribution of the comparison node are in the predetermined relationship,
If the comparison node is a successor of the candidate node, load distribution is performed to move data between the comparison node and the candidate node so that the loads of the comparison node and the candidate node are equal.
If the comparison node is not a successor of the candidate node, the comparison node is moved so that all the data held by the candidate node is moved to the proxy node and the loads of the comparison node and the candidate node are equalized. 4. The load balancing method according to claim 3, wherein load balancing is performed to move data from a node to the candidate node.
前記分散処理システムを構成する各ノードのうち、負荷の値が閾値以上であるノードを前記比較ノードとして、前記負荷分散を実行することを特徴とする請求項1から請求項4のいずれか1項に記載の負荷分散方法。   5. The load distribution is performed by using, as the comparison node, a node having a load value equal to or greater than a threshold value among the nodes constituting the distributed processing system. Load balancing method described in 1. 1つ以上の分散処理装置(ノード)によって構成される分散処理システムであって、
他のノード(比較ノード)が担当する処理の一部を分担する候補となる候補ノードは、
自ノードが担当する処理の全てを1つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記代行ノードは、
前記候補ノードに対して自ノードの負荷の値を送信する負荷送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記比較ノードは、
前記代行後負荷予測値を受信する代行後負荷予測値受信部と、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、
決定された負荷分散を実行する負荷分散実行部と、
を備える分散処理システム。
A distributed processing system including one or more distributed processing devices (nodes),
Candidate nodes that are candidates for sharing a part of the processing handled by other nodes (comparison nodes)
A proxy node set creation unit that creates a proxy node set that substitutes one or more nodes (proxy nodes) for all of the processes handled by the own node;
A proxy node load receiving unit that receives a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculation unit;
A post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node;
A load distribution execution unit for executing load distribution determined by the comparison node;
With
The proxy node is
A load transmitter that transmits a load value of the own node to the candidate node;
A load distribution execution unit for executing load distribution determined by the comparison node;
With
The comparison node is
A post-substitution load prediction value receiving unit that receives the post-substitution load prediction value;
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determination unit that determines to execute load distribution to be shared among the candidate nodes that have become free nodes;
A load balancing execution unit for executing the determined load balancing;
A distributed processing system.
分散処理システムを構成する分散処理装置(ノード)であって、
自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備えた分散処理装置。
A distributed processing device (node) constituting a distributed processing system,
When the own node is a node (candidate node) that is a candidate for sharing a part of the process handled by another node (comparison node), one or more other nodes handle all of the processes handled by the own node A proxy node set creation unit that creates a proxy node set to be delegated using (proxy node);
A proxy node load receiving unit that receives a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculation unit;
A post-substitution load prediction value transmission unit that transmits the post-substitution load prediction value to the comparison node;
A load distribution execution unit for executing load distribution determined by the comparison node;
A distributed processing apparatus.
分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、
自ノードが、他のノード(比較ノード)が担当する処理の一部を分担する候補となるノード(候補ノード)である場合に、自ノードが担当する処理の全てを1つ以上の他のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成ステップと、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信ステップと、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出ステップと、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信ステップと、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行ステップと、
を実行させるコンピュータ・プログラム。
In the computer device constituting the distributed processing device (node) included in the distributed processing system,
When the own node is a node (candidate node) that is a candidate for sharing a part of the process handled by another node (comparison node), one or more other nodes handle all of the processes handled by the own node A proxy node set creation step of creating a proxy node set to be delegated using (proxy node);
A proxy node load receiving step of receiving a load value of each proxy node;
A post-substitution load that obtains a predicted value (post-substitution load prediction value) after the substitution of each substitution node when the substitution node set substitutes the processing of the candidate node based on the load value of each substitution node A predicted value calculating step;
A post-substitution load prediction value transmission step of transmitting the post-substitution load prediction value to the comparison node;
A load balancing execution step for performing load balancing determined by the comparison node;
A computer program that runs
分散処理システムを構成する分散処理装置(ノード)であって、
自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、
前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信部と、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、
決定した負荷分散を実行する負荷分散実行部と、
を備えた分散処理装置。
A distributed processing device (node) constituting a distributed processing system,
When the own node is a comparison node that shares a part of the processing in charge with other candidate nodes,
Receiving a post-proxy load prediction value receiving from the candidate node a predicted load value (post-replacement load prediction value) of each proxy node that constitutes a proxy node set that performs all of the processes handled by the candidate node And
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determination unit that determines to execute load distribution to be shared among the candidate nodes that have become free nodes;
A load balancing execution unit for executing the determined load balancing;
A distributed processing apparatus.
分散処理システムに含まれる分散処理装置(ノード)を構成するコンピュータ装置に、
自ノードが、担当する処理の一部を他の候補ノードに分担させる比較ノードである場合に、前記候補ノードが担当する処理の全てを代行させる代行ノード集合を構成する各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を、前記候補ノードから受信する代行後負荷予測値受信ステップと、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定ステップと、
決定した負荷分散を実行する負荷分散実行ステップと、
を実行させるコンピュータ・プログラム。
In the computer device constituting the distributed processing device (node) included in the distributed processing system,
When the own node is a comparison node that divides a part of the processing in charge to other candidate nodes, the proxy node of each proxy node constituting the proxy node set that performs all of the processing in charge of the candidate node A post-substitution load prediction value receiving step of receiving a predicted load value (post-substitution load prediction value) from the candidate node;
When the post-substitution load prediction value satisfies a predetermined condition, the candidate node process is substituted for the substitute node set to make the candidate node an empty node, and a part of the process that the comparison node is in charge of A load distribution determining step for determining to execute load distribution to be shared by the candidate nodes that have become empty nodes;
A load balancing execution step for executing the determined load balancing;
A computer program that runs
JP2012008794A 2012-01-19 2012-01-19 Load distribution method, distribution processing system, distribution processing device, and computer program Pending JP2013149069A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012008794A JP2013149069A (en) 2012-01-19 2012-01-19 Load distribution method, distribution processing system, distribution processing device, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012008794A JP2013149069A (en) 2012-01-19 2012-01-19 Load distribution method, distribution processing system, distribution processing device, and computer program

Publications (1)

Publication Number Publication Date
JP2013149069A true JP2013149069A (en) 2013-08-01

Family

ID=49046520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012008794A Pending JP2013149069A (en) 2012-01-19 2012-01-19 Load distribution method, distribution processing system, distribution processing device, and computer program

Country Status (1)

Country Link
JP (1) JP2013149069A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015151548A1 (en) * 2014-04-03 2017-04-13 ソニー株式会社 Electronic equipment and recording medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015151548A1 (en) * 2014-04-03 2017-04-13 ソニー株式会社 Electronic equipment and recording medium

Similar Documents

Publication Publication Date Title
CN101133622B (en) Splitting a workload of a node
US20120297056A1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US9705750B2 (en) Executing data stream processing applications in dynamic network environments
JP6428012B2 (en) Distributed processing program, distributed processing management apparatus, and distributed processing method
Misra et al. Multiarmed-bandit-based decentralized computation offloading in fog-enabled IoT
US11575599B2 (en) Multi-tier deterministic networking
JP2012123544A (en) Load distribution device and program
US20190220311A1 (en) Method, apparatus and computer program product for scheduling dedicated processing resources
Achary et al. Dynamic job scheduling using ant colony optimization for mobile cloud computing
JP5845877B2 (en) Information processing apparatus, data control method, and data control program
JP2008071156A (en) Load distribution system, method and program
Mostafa Cooperative fog communications using a multi-level load balancing
JP6011786B2 (en) Distributed storage system, distributed storage data allocation control method, and distributed storage data allocation control program
US10474644B2 (en) Systems and methods for optimizing selection of a replication data node in a distributed file system
WO2017000094A1 (en) Data storage method, device and system
JP2013149069A (en) Load distribution method, distribution processing system, distribution processing device, and computer program
Lin et al. VNF embedding and assignment for network function parallelism
JP2007272540A (en) Data distributing method and data distributing system
Wang et al. Decentralized scheduling with data locality for data-parallel computation on peer-to-peer networks
KR102279184B1 (en) Task offloading method in fog networks and design method for fog networks architecture
Liu et al. Opportunistic resource sharing in mobile cloud computing: The single-copy case
JP6383336B2 (en) Server management apparatus and server management method
WO2014102996A1 (en) Information processing system
Nethaji et al. Differential Grey Wolf Load‐Balanced Stochastic Bellman Deep Reinforced Resource Allocation in Fog Environment
Haryanti et al. Improving resource allocation performance in mobile ad hoc grid with mobility prediction