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 PDFInfo
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
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
各ノード(ノード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
<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をそれぞれ有している。また、各ノードを示す図形の横に示した数値は、各ノードの負荷を表している。
<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]になる。
<
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が担当するキーの範囲は変わらない。
<
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
分散処理システムにおいて、負荷の高い第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
しかしながら、非特許文献1に記載された技術は、第3のノードの負荷がどのように変化するか考慮せずに第2のノードの処理を代行させるため、第3のノードの負荷が大きくなりすぎる場合がある。このため、負荷が大きくなりすぎた第3のノードの負荷をさらに分散させる必要が生じる場合もある。その結果、非特許文献1に記載された技術は、負荷分散の回数を増大させることもあり、負荷分散を効率よく実行することができない。
However, since the technique described in
本発明は、上述の課題を解決するためになされたもので、分散処理システムにおける負荷分散をより効率的に実行可能な技術を提供することを目的とする。 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.
以下、本発明の実施の形態について、図面を参照して詳細に説明する。 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
また、分散処理システム1の処理対象となるデータは、いずれかの分散処理装置10によって処理される。ここで、データとは、格納対象となるコンテンツであってもよいし、格納されたコンテンツを要求するクエリであってもよい。各分散処理装置10は、分散処理システム1において処理対象となるデータを受信すると、そのデータが自ノードで担当するものであれば、自ノードで処理を実行する。また、各分散処理装置10は、受信したデータが自ノードで担当するものでなければ、そのデータの処理を担当する他の分散処理装置10に該データを送信する。なお、各分散処理装置10は、他の全ての分散処理装置10と直接通信可能でなくてもよい。各分散処理装置10は、受信したデータが自ノードで担当するものでなければ、そのデータの処理を担当する他の分散処理装置10に最終的に到達するよう、自ノードから転送可能ないずれかの他の分散処理装置10に該データを送信すればよい。このような分散処理システム1において、各ノードの負荷は、そのノードが受信しているデータ量により変動する。
Data to be processed by the distributed
また、図1に示した分散処理装置10のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード110というものとする。また、分散処理装置10のうち、比較ノード110の処理の一部を分担させる候補となるノードを候補ノード120というものとする。また、分散処理装置10のうち、候補ノード120が比較ノード110の処理を分担する場合にそれまで候補ノード120が担当していた処理を代行するノードを代行ノード130というものとする。なお、分散処理システム1を構成する各分散処理装置10は、いずれも、比較ノード110、候補ノード120および代行ノード130として動作しうるものとする。
In addition, in the distributed
次に、分散処理装置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
ROM1003および記憶装置1004には、コンピュータ装置を本実施の形態の分散処理装置10として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
The
CPU1001は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行する。
The
ネットワークインタフェース1005は、ネットワークを介して他の分散処理装置10との通信を行うモジュールである。
The
次に、分散処理システム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
代行ノード集合作成部101は、ある候補ノード120について、候補ノード120が担当している処理の全てを1つ以上の代行ノード130を用いて代行させる代行ノード集合を作成する。ここで、代行ノード集合作成部101は、代行ノード130となりうるノードのうち1つ以上を代行ノード130としてランダムに選択することにより、代行ノード集合を作成してもよい。なお、代行ノード130となりうるノードとは、例えば、分散処理システム1を構成する分散処理装置10のうち、比較ノード110および候補ノード120以外のノードであってもよい。
The substitute node set
代行後負荷予測値算出部102は、代行ノード集合が候補ノード120の処理の全てを代行する場合の、各代行ノード130の代行後の負荷の予測値(代行後負荷予測値)を求める。
The post-substitution load prediction
ここで、代行ノード集合が複数の代行ノード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
また、代行ノード集合が1つの代行ノード130から構成されていれば、代行後負荷予測値算出部102は、該代行ノード130の代行後負荷予測値として、候補ノード120の負荷の値と、該代行ノード130の負荷の値との合計値を求めればよい。
Further, if the proxy node set is configured by one proxy node 130, the post-substitution load prediction
代行後負荷予測値判断部103は、各代行ノード130の代行後負荷予測値が所定の条件を満たすか否か判断する。ここで、所定の条件とは、例えば、各代行ノード130の代行後負荷予測値のうち最大値が閾値以下であることであってもよい。
The post-substitution load predicted
負荷分散実行部104は、代行後負荷予測値が所定の条件を満たすと判断された場合に、比較ノード110の負荷を軽減する負荷分散を実行する。具体的には、負荷分散実行部104は、候補ノード120の処理を代行ノード130に代行させるため、候補ノード120が担当するデータを代行ノード130に移動させて候補ノード120を空きノードとする。そして、負荷分散実行部104は、比較ノード110が担当する処理の一部を、空きノードとなった候補ノード120に分担させるため、比較ノード110が担当するデータの一部を候補ノード120に移動させる。例えば、負荷分散実行部104は、比較ノード110および候補ノード120の負荷分散後の負荷の値が均等になるように、比較ノード110から候補ノード120へデータを移動させてもよい。
The load
以上のように構成された分散処理システム1の動作について、図4を参照して説明する。
The operation of the distributed
まず、代行ノード集合作成部101は、ある候補ノード120について、1つ以上の代行ノード130からなる代行ノード集合を作成する(ステップS1)。例えば、前述のように、代行ノード集合作成部101は、代行ノード130となりうるノードのうちランダムに選択したものからなる代行ノード集合を作成してもよい。
First, the substitute node set
次に、代行後負荷予測値算出部102は、ステップS1で作成された代行ノード集合を構成する各代行ノード130について、候補ノード120の全ての処理を代行ノード集合で代行する場合の代行後負荷予測値を算出する(ステップS2)。例えば、前述のように、代行後負荷予測値算出部102は、各代行ノード130の代行後負荷予測値が均等になるように、代行後負荷予測値を求めてもよい。
Next, the post-substitution load prediction
次に、代行後負荷予測値判断部103は、ステップS2で算出された各代行ノード130の代行後負荷予測値が所定の条件を満たすか否かを判断する(ステップS3)。例えば、前述のように、代行後負荷予測値判断部103は、代行後負荷予測値の最大値が閾値以下であるか否かを判断してもよい。
Next, the post-substitution load predicted
ここで、代行後負荷予測値判断部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
以上で、分散処理システム1は動作を終了する。
Thus, the distributed
なお、分散処理システム1は、分散処理システム1を構成する分散処理装置10のいずれかを所定のタイミング毎に候補ノード120として、上述の動作を行ってもよい。また、分散処理システム1は、分散処理システム1を構成する分散処理装置10のうち、負荷の値が閾値以上のもの比較ノード110として、上述の動作を行ってもよい。あるいは、分散処理システム1は、分散処理システム1を構成する分散処理装置10のうちランダムに選択したものを比較ノード110として、上述の動作を行ってもよい。
Note that the distributed
次に、本発明の第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
また、分散処理システム2は、本発明の第1の実施の形態としての分散処理システム1と同様に、処理対象となるデータを受信すると、そのデータを担当する分散処理装置20にそのデータを送信することにより、該データを処理する。各分散処理装置20は、自装置で受信したデータを、該データを担当する他の分散処理装置20に転送するために、他のいくつかの分散処理装置20のアドレスをルーティングテーブルとして保持する。このような分散処理システム2において、各ノードの負荷は、そのノードが受信しているデータ量により変動する。
Similarly to the distributed
また、図5に示した分散処理装置20のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード210というものとする。また、分散処理装置20のうち、比較ノード210の処理の一部を分担させる候補となるノードを候補ノード220というものとする。また、分散処理装置20のうち、候補ノード220が比較ノード210の処理を分担する場合にそれまで候補ノード220が担当していた処理を代行するノードを代行ノード230というものとする。なお、各分散処理装置20は、いずれも、比較ノード210、候補ノード220、および、代行ノード230として動作しうるものとする。
In addition, in the distributed
また、分散処理装置20は、図2に示した本発明の第1の実施の形態としての分散処理装置10と同様なハードウェア構成を備えるコンピュータ装置によって構成されている。
The distributed
次に、分散処理システム2の機能ブロック構成を図6に示す。
Next, the functional block configuration of the distributed
図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
次に、候補ノード220の各機能ブロックについて説明する。
Next, each functional block of the
代行ノード集合作成部221は、自ノードが担当する処理の全てを1つ以上の代行ノード230を用いて代行させる代行ノード集合を作成する。例えば、代行ノード集合作成部221は、代行ノード230となりうる他の分散処理装置20のうち、負荷の値が閾値以下のものを代行ノード230として代行ノード集合を作成してもよい。また、代行ノード集合作成部221は、そのような他の分散処理装置20のうち、負荷の値が最も小さいものを代行ノード230として、1つの代行ノード230から構成される代行ノード集合を作成してもよい。なお、代行ノード230となりうる他の分散処理装置20とは、その負荷の値を取得可能な他の分散処理装置20であってもよい。
The substitute node set
代行ノード負荷受信部222は、代行ノード集合作成部221によって作成された代行ノード集合を構成する各代行ノード230について、その代行ノード230の負荷の値を受信する。
The proxy node
代行後負荷予測値算出部223は、代行ノード負荷受信部222によって受信された各代行ノード230の負荷の値に基づいて、代行ノード集合に自ノードの処理を代行させた場合の各代行ノード230の代行後負荷予測値を求める。
Based on the load value of each
例えば、代行後負荷予測値算出部223は、各代行ノード230の代行後負荷予測値として、各代行ノード230のその時点での負荷の値と、自ノードが担当する処理のうち各代行ノード230に割り当てる分の負荷の値との合計値をそれぞれ求めてもよい。
For example, the post-substitution load prediction value calculation unit 223 uses each
もし、代行ノード集合が1つの代行ノード230によって構成される場合、代行後負荷予測値算出部223は、代行後負荷予測値として、その代行ノード230のその時点での負荷の値と、自ノードが担当する処理の負荷の値との合計値を求めればよい。
If the proxy node set is configured by one
また、代行ノード集合が複数の代行ノード230によって構成される場合、代行後負荷予測値算出部223は、各代行ノード230の代行後負荷予測値が均等になるような代行後負荷予測値を求めてもよい。
Further, when the proxy node set includes a plurality of
代行後負荷予測値送信部224は、代行後負荷予測値算出部223によって算出された各代行後負荷予測値を、比較ノード210に送信する。このとき、複数の代行ノード230についてそれぞれ代行後負荷予測値が算出されている場合、代行後負荷予測値送信部224は、各代行ノード230の代行後負荷予測値のうち最大値を、比較ノード210に送信してもよい。
The post-substitution load predicted
また、例えば、代行後負荷予測値送信部224は、代行後負荷予測値の送信先の比較ノード210として、他の分散処理装置20のうち、負荷の値が閾値以上であるノードを選択してもよい。また、例えば、代行後負荷予測値送信部224は、代行後負荷予測値の送信先の比較ノード210として、自ノードが保持するルーティングテーブルに含まれる他のノードのいずれかを選択してもよい。
In addition, for example, the post-substitution load predicted
負荷分散実行部225は、後述の比較ノード210の負荷分散実行部215によって決定される内容の負荷分散を実行する。具体的には、負荷分散実行部225は、自ノードが担当する処理を代行ノード230に代行させるため、自ノードが担当するデータを代行ノード230に送信する。また、負荷分散実行部225は、比較ノード210の処理の一部を分担するため、比較ノード210が担当するデータの一部を比較ノード210から受信する。
The load
次に、代行ノード230の各機能ブロックについて説明する。
Next, each functional block of the
負荷送信部231は、候補ノード220に対して、自ノードの負荷の値を送信する。例えば、負荷送信部231は、候補ノード220からの要求に応じて、負荷の値を送信するようにしてもよい。
The
負荷分散実行部235は、後述の比較ノード210の負荷分散実行部215によって決定された内容の負荷分散を実行する。具体的には、負荷分散実行部235は、候補ノード220が担当する処理を代行するため、候補ノード220から、候補ノード220が担当していたデータを受信する。
The load
次に、比較ノード210の各機能ブロックについて説明する。
Next, each functional block of the
代行後負荷予測値受信部211は、候補ノード220から、代行後負荷予測値を受信する。
The post-substitution load prediction
負荷分散決定部212は、受信された代行後負荷予測値と、自ノードの負荷の値とが、所定の関係にあるか否かを判断する。具体的には、所定の関係とは、自ノードの負荷の値が、代行後負荷予測値以上であることであってもよい。
The load
また、負荷分散決定部212は、受信された代行後負荷予測値と、自ノードの負荷の値とが所定の関係にある場合に、負荷分散の処理内容を決定する。この負荷分散の処理内容とは、候補ノード220の処理を代行ノード集合に代行させて候補ノード220を空きノードとするとともに、自ノードが担当する処理の一部を、空きノードとなった候補ノード220に分担させる処理である。そして、負荷分散決定部212は、決定した負荷分散の処理内容を、候補ノード220に通知する。
Further, the load
負荷分散実行部215は、負荷分散決定部212によって決定された負荷分散を実行する。具体的には、負荷分散実行部215は、自ノードの処理の一部を候補ノード220に分担させるため、自ノードが担当するデータの一部を候補ノード220に対して送信する。例えば、負荷分散実行部215は、自ノードの負荷の値と候補ノード220の負荷の値とが均等になるよう、自ノードが担当するデータの一部を候補ノード220に対して送信してもよい。
The load
以上のように構成された分散処理システム2の負荷分散動作について、図7を参照して説明する。なお、図7において、左図は候補ノード220の動作を示し、右図は比較ノード210の動作を示し、左右を結ぶ破線の矢印はノード間のデータの流れを表すものとする。
The load distribution operation of the distributed
ここでは、まず、候補ノード220の代行ノード集合作成部221は、代行ノード集合を作成する(ステップS11)。
Here, first, the proxy node set
次に、代行ノード負荷受信部222は、ステップS11で作成された代行ノード集合を構成する各代行ノード230の負荷の値を受信する(ステップS12)。
Next, the proxy node
次に、代行後負荷予測値算出部223は、ステップS11で作成された代行ノード集合に自ノードが担当する処理を代行させた場合の、各代行ノード230の代行後負荷予測値を算出する(ステップS13)。
Next, the post-substitution load prediction value calculation unit 223 calculates the post-substitution load prediction value of each
次に、代行後負荷予測値送信部224は、ステップS13で算出された代行後負荷予測値を、比較ノード210に送信する(ステップS14)。例えば、前述のように、代行後負荷予測値送信部224は、ステップS13で算出された代行後負荷予測値の最大値を比較ノード210に送信してもよい。また、このステップにおいて、代行後負荷予測値送信部224は、他の分散処理装置20のうち負荷の値が閾値以下のものを、送信先の比較ノード210として選択してもよい。あるいは、代行後負荷予測値送信部224は、自ノードがルーティングテーブルに保持する他の分散処理装置20のいずれかを、送信先の比較ノード210として選択してもよい。
Next, the post-substitution load predicted
次に、比較ノード210の代行後負荷予測値受信部211は、代行後負荷予測値を受信する(ステップS15)。
Next, the post-substitution load prediction
次に、負荷分散決定部212は、ステップS15で受信された代行後負荷予測値と、自ノートの負荷の値とが、所定の関係にあるか否かを判断する(ステップS16)。例えば、前述のように、負荷分散決定部212は、自ノードの負荷の値が代行後負荷予測値以上であるか否かを判断してもよい。
Next, the load
ここで、代行後負荷予測値と、自ノートの負荷の値とが、所定の関係にあると判断した場合、負荷分散決定部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
次に、負荷分散実行部215は、決定された内容の負荷分散を実行する(ステップS18)。具体的には、負荷分散実行部215は、自ノードが担当するデータの一部を、候補ノード220に送信する。
Next, the load
次に、候補ノード220の負荷分散実行部225は、負荷分散の内容が通知されると(ステップS19でYes)、その内容の負荷分散を実行する(ステップS20)。具体的には、負荷分散実行部225は、自ノードが担当するデータを代行ノード集合に送信する。そして、負荷分散実行部225は、比較ノード210が担当するデータの一部を受信する。
Next, when the content of load distribution is notified (Yes in step S19), the load
以上で、分散処理システム2は、負荷分散動作を終了する。
As described above, the distributed
なお、候補ノード220は、ステップS14における代行後負荷予測値送信処理を、所定のタイミング毎に(例えば所定の時間間隔で)行ってもよい。あるいは、候補ノード220は、ステップS12で受信した代行ノード230の負荷の値および自ノードの負荷の値のすくなくともいずれか一方が、それぞれに定められた閾値以下である場合に、ステップS14の代行後負荷予測値送信処理を実行するようにしてもよい。あるいは、候補ノード220は、比較ノード210から要求されたタイミングで、ステップS14の代行後負荷予測値送信処理を実行するようにしてもよい。
Note that the
次に、本発明の第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
各分散処理装置30は、キー空間上のいずれかのキーをノードIDとして有している。ここで、キー空間とは、キーの値が時計回りに増加する概念的なリング状のキー空間である。このキー空間では、キー間の距離が時計回り方向に定義されている。
Each distributed
また、分散処理システム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
また、分散処理システム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
また、分散処理システム3を構成する分散処理装置30のうち、負荷分散により負荷を軽減させる対象となるノードを比較ノード310というものとする。また、分散処理装置30のうち、比較ノード310の処理の一部を分担させる候補となるノードを候補ノード320というものとする。また、分散処理装置30のうち、候補ノード320が比較ノード310の処理を分担する場合にそれまで候補ノード320が担当していた処理を代行するノードを代行ノード330というものとする。なお、各分散処理装置30は、いずれも、比較ノード310、候補ノード320、および、代行ノード330として動作しうるものとする。
In addition, in the distributed
次に、分散処理システム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
次に、候補ノード320の各機能ブロックについて説明する。
Next, each functional block of the
代行ノード集合作成部321は、自ノード(候補ノード320)のサクセッサを代行ノード330として、1つの代行ノード330からなる代行ノード集合を作成する。
The substitute node set
代行ノード負荷受信部322は、自ノードのサクセッサである代行ノード330の負荷の値を受信する。
The proxy node
負荷情報作成部323は、比較ノード310が自ノードのサクセッサである場合、自ノードの負荷の値を表す数値と、自ノードのノードIDとから構成される負荷情報を作成する。
When the
また、負荷情報作成部323は、比較ノード310が自ノードのサクセッサでない場合、自ノードの負荷の値およびサクセッサの負荷の値の合計値(すなわち、サクセッサである代行ノード330の代行後負荷予測値)と、自ノードのノードIDとから構成される負荷情報を作成する。
In addition, when the
負荷情報送信部324は、負荷情報作成部323によって作成された負荷情報を、比較ノード310に送信する。なお、負荷情報送信部324は、負荷情報の送信先である比較ノード310として、例えば、以下のような手法により他の分散処理装置30を選択してもよい。
<負荷情報送信先の選択手法(1)>キー空間のキーをランダムに選択し、選択したキーを担当する他の分散処理装置30を、負荷情報送信先の比較ノード310として選択。
<負荷情報送信先の選択手法(2)>候補ノード320が保持するルーティングテーブルに格納されているノードの中からランダムに選択。
<負荷情報送信先の選択手法(3)>候補ノード320が保持するルーティングテーブルに格納されているノードのうち、そのノードに他のノードから転送されるデータの単位時間当たりの量が閾値以上であるノードを選択。
<負荷情報送信先の選択手法(4)>候補ノード320において、データ転送先となる他のノードごとに送信キューが用意されているときに、送信キューに格納されているデータの量が閾値以上であるノードを選択。
The load
<Load Information Transmission Destination Selection Method (1)> A key in the key space is selected at random, and another distributed
<Load Information Transmission Destination Selection Method (2)> Random selection from nodes stored in the routing table held by the
<Load Information Transmission Destination Selection Method (3)> Among the nodes stored in the routing table held by the
<Load Information Transmission Destination Selection Method (4)> In the
負荷分散実行部325は、比較ノード310によって決定された内容の負荷分散を実行する。具体的な負荷分散の処理内容については、詳細を後述する。
The load
次に、代行ノード330の各機能ブロックについて説明する。
Next, each functional block of the
負荷送信部331は、候補ノード320に対して、自ノードが担当している処理の負荷の値を送信する。例えば、負荷送信部331は、候補ノード320からの要求に応じて、負荷の値を送信するようにしてもよい。
The
負荷分散実行部335は、後述の比較ノード310の負荷分散実行部315によって決定された内容の負荷分散を実行する。具体的な負荷分散の処理内容については、詳細を後述する。
The load
次に、比較ノード310の各機能ブロックについて述べる。
Next, each functional block of the
負荷情報受信部311は、候補ノード320から負荷情報を受信する。負荷情報は、自ノードが候補ノード320のサクセッサである場合、候補ノード320の負荷の値および候補ノード320のノードIDからなる。また、負荷情報は、自ノードが候補ノード320のサクセッサでない場合、候補ノード320の負荷の値およびそのサクセッサの負荷の値の合計値(サクセッサの代行後負荷予測値)と、候補ノード320のノードIDとからなる。
The load
負荷分散決定部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
[Load value of comparison node 310] ≧ [Load value included in received load information] (1)
Specifically, when the load
また、負荷分散決定部312は、負荷分散の実行を決定した場合は、その処理内容を、候補ノード320に通知する。
In addition, when the load
負荷分散実行部315は、負荷分散決定部312によって決定された内容の負荷分散を実行する。
The load
以上のように構成された分散処理システム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
図10では、まず、候補ノード320の代行ノード集合作成部321は、代行ノード集合を構成する代行ノード330として、自ノードのサクセッサを選択する(ステップS21)。
In FIG. 10, first, the proxy node set
次に、代行ノード負荷受信部322は、サクセッサからその負荷の値を受信する(ステップS22)。
Next, the proxy node
次に、負荷情報作成部323は、比較ノード310が自ノードのサクセッサであるか否かを判断する(ステップS23)。なお、ここで、負荷情報作成部323は、負荷情報送信部324によって、例えば前述の負荷情報送信先の選択手法(1)〜(4)のいずれかを用いて選択された比較ノード310について、判断を行うようにすればよい。
Next, the load
ここで、比較ノード310が自ノードのサクセッサである場合、負荷情報作成部323は、自ノードの負荷の値と、自ノードIDとからなる負荷情報を作成する(ステップS24)。
Here, when the
一方、比較ノード310が自ノードのサクセッサでない場合、負荷情報作成部323は、自ノードの負荷の値およびサクセッサの負荷の値の合計値(サクセッサの代行後負荷予測値)と、自ノードIDとからなる負荷情報を作成する(ステップS25)。
On the other hand, when the
次に、負荷情報送信部324は、ステップS24またはステップS25で作成された負荷情報を比較ノード310に送信する(ステップS26)。
Next, the load
次に、負荷情報を受信した比較ノード310の動作を、図11を参照して説明する。
Next, the operation of the
図11では、まず、比較ノード310の負荷情報受信部311は、候補ノード320から負荷情報を受信する(ステップS27)。
In FIG. 11, first, the load
次に、負荷分散決定部312は、受信された負荷情報に含まれる負荷の値と、自ノードの負荷の値とが所定の関係を満たすか否かを判断する(ステップS28)。例えば、前述のように、所定の関係とは、自ノードの負荷の値が、受信された負荷情報に含まれる負荷の値以上であることであってもよい。
Next, the load
ここで、所定の関係を満たすと判断した場合、負荷分散決定部312は、さらに、負荷情報の送信元である候補ノード320が、自ノード(比較ノード310)のプレディセッサであるか否かを判断する(ステップS29)。
If it is determined that the predetermined relationship is satisfied, the load
ここで、候補ノード320が自ノードのプレディセッサである場合、負荷分散決定部312は、自ノードおよび候補ノード320間で負荷の値が均等になるよう、2つのノード間でデータを移動する負荷分散を決定する(ステップS30)。そして、負荷分散の処理内容を候補ノード320に通知する。
Here, when the
一方、候補ノード320が自ノードのプレディセッサでない場合、負荷分散決定部312は、候補ノード320の処理をそのサクセッサに代行させるとともに、自ノードおよび候補ノード320間で負荷の値が均等になるよう自ノードから候補ノード320へデータを移動する負荷分散を決定する(ステップS31)。そして、負荷分散の処理内容を候補ノード320に通知する。
On the other hand, when the
また、ステップ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
次に、図10において、候補ノード320の負荷分散実行部325は、比較ノード310から負荷分散の処理内容を通知されると(ステップS33でYes)、通知された処理内容にしたがって負荷分散を実行する(ステップS34)。具体的には、もし、比較ノード310が自ノードのサクセッサであれば、負荷分散実行部325は、比較ノード310および自ノード間で負荷分散後の負荷の値が均等になるようデータを送受信する。また、比較ノード310が自ノードのサクセッサでなければ、負荷分散実行部325は、自ノードの担当していたデータの全てをサクセッサに送信する。そして、負荷分散実行部325は、比較ノード310および自ノード間で負荷分散後の負荷の値が均等になるよう、比較ノード310からデータを受信する。
Next, in FIG. 10, when the load
以上で、分散処理システム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
まず、ノードeを候補ノード320とし、ノードeにより負荷情報の送信先の比較ノード310としてノードaが選択された場合の動作例について説明する。
First, an operation example when the node e is the
この場合、まず、ノードeの代行ノード集合作成部321は、ノードeのサクセッサであるノードfを代行ノード330として選択する(ステップS21)。
In this case, first, the proxy node set
そして、ノードeの代行ノード負荷受信部322は、ノードfから、ノードfの負荷の値「20%」を受信する(ステップS22)。
Then, the proxy node
次に、ノードeの負荷情報作成部323は、比較ノード310としてのノードaが自ノードのサクセッサではないので(ステップS23でNo)、ノードfの負荷の値「20%」および自ノードの負荷の値「30%」の合計値である「50%」(サクセッサの代行後負荷予測値)と、自ノードのノードIDとからなる負荷情報を作成する(ステップS25)。
Next, since the node a as the
次に、負荷情報送信部324は、作成された負荷情報を、比較ノード310としてのノードaに送信する(ステップS26)。
Next, the load
次に、負荷情報を受信したノード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
以上で、ノードeを候補ノード320とし、ノードaを比較ノード310とした場合の動作の具体例の説明を終了する。
This is the end of the description of the specific example of the operation when the node e is the
次に、ノードfを候補ノード320とし、ノードfにより負荷情報の送信先の比較ノード310としてノードaが選択された場合の動作例について説明する。
Next, an operation example when the node f is the
この場合、まず、ノードfの代行ノード集合作成部321は、ノードfのサクセッサであるノードgを代行ノード330として選択する(ステップS21)。
In this case, first, the proxy node set
そして、ノードfの代行ノード負荷受信部322は、ノードgから、ノードgの負荷の値「79%」を受信する(ステップS22)。
Then, the proxy node
次に、ノードfの負荷情報作成部323は、比較ノード310としてのノードaが自ノードのサクセッサではないので(ステップS23でNo)、ノードgの負荷の値「79%」および自ノードの負荷の値「20%」の合計値である「99%」(サクセッサの代行後負荷予測値)と、自ノードのノードIDとからなる負荷情報を作成する(ステップS25)。
Next, since the node a as the
次に、負荷情報送信部324は、作成された負荷情報を、比較ノード310としてのノードaに送信する(ステップS26)。
Next, the load
次に、負荷情報を受信したノードaでは、負荷分散決定部312は、自ノードの負荷の値「80%」が、受信された負荷情報に含まれる負荷の値「99%」以上ではないので(ステップS28でNo)、負荷分散を行わないと決定する。
Next, in the node a that has received the load information, the load
以上で、分散処理システム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
なお、本実施の形態において、候補ノードの代行ノード集合作成部は、候補ノードのサクセッサを代行ノードとして、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
(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
(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 6)
The load distribution according to any one of
(Appendix 7)
Any one of
(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 10)
The load distribution method according to any one of
(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 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 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 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
(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 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 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
(Appendix 18)
The
(Appendix 19)
The load distribution method according to
(Appendix 20)
20. The load distribution method according to
(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
1002 RAM
1003 ROM
1004
Claims (10)
あるノード(比較ノード)が担当する処理の一部を分担させる候補となるノード(候補ノード)について、前記候補ノードが担当している処理の全てを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.
前記代行ノード集合として、前記キー空間において前記候補ノードに対して距離が近いノードから順に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.
前記代行ノードの代行後負荷予測値および前記比較ノードの負荷分散前の負荷の値が前記所定の関係であるとき、
前記比較ノードが前記候補ノードのサクセッサならば、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードおよび前記候補ノード間でデータの移動を行う負荷分散を実行し、
前記比較ノードが前記候補ノードのサクセッサではないならば、前記候補ノードが保持するデータの全てを前記代行ノードに移動させるとともに、前記比較ノードおよび前記候補ノードの負荷が均等になるように、前記比較ノードから前記候補ノードにデータの移動を行う負荷分散を実行することを特徴とする請求項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つ以上のノード(代行ノード)を用いて代行させる代行ノード集合を作成する代行ノード集合作成部と、
前記各代行ノードの負荷の値を受信する代行ノード負荷受信部と、
前記各代行ノードの負荷の値に基づいて、前記代行ノード集合が前記候補ノードの処理を代行する場合の各代行ノードの代行後の負荷の予測値(代行後負荷予測値)を求める代行後負荷予測値算出部と、
前記代行後負荷予測値を前記比較ノードに送信する代行後負荷予測値送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記代行ノードは、
前記候補ノードに対して自ノードの負荷の値を送信する負荷送信部と、
前記比較ノードによって決定される負荷分散を実行する負荷分散実行部と、
を備え、
前記比較ノードは、
前記代行後負荷予測値を受信する代行後負荷予測値受信部と、
前記代行後負荷予測値が所定の条件を満たす場合に、前記候補ノードの処理を前記代行ノード集合に代行させて前記候補ノードを空きノードとするとともに、前記比較ノードが担当する処理の一部を、空きノードとなった前記候補ノードに分担させる負荷分散を実行することを決定する負荷分散決定部と、
決定された負荷分散を実行する負荷分散実行部と、
を備える分散処理システム。 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
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2015151548A1 (en) * | 2014-04-03 | 2017-04-13 | ソニー株式会社 | Electronic equipment and recording medium |
-
2012
- 2012-01-19 JP JP2012008794A patent/JP2013149069A/en active Pending
Cited By (1)
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 |