JP6325995B2 - Distributed system, load balancing method and program - Google Patents

Distributed system, load balancing method and program Download PDF

Info

Publication number
JP6325995B2
JP6325995B2 JP2015031180A JP2015031180A JP6325995B2 JP 6325995 B2 JP6325995 B2 JP 6325995B2 JP 2015031180 A JP2015031180 A JP 2015031180A JP 2015031180 A JP2015031180 A JP 2015031180A JP 6325995 B2 JP6325995 B2 JP 6325995B2
Authority
JP
Japan
Prior art keywords
node
nodes
virtual
load
unit
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.)
Active
Application number
JP2015031180A
Other languages
Japanese (ja)
Other versions
JP2016153929A (en
Inventor
啓介 小西
啓介 小西
篤史 外山
篤史 外山
健 福元
健 福元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015031180A priority Critical patent/JP6325995B2/en
Publication of JP2016153929A publication Critical patent/JP2016153929A/en
Application granted granted Critical
Publication of JP6325995B2 publication Critical patent/JP6325995B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は複数のノード間での負荷の偏りを是正することが可能な分散システム、負荷分散方法及びプログラムに関する。   The present invention relates to a distributed system, a load distribution method, and a program capable of correcting a load imbalance among a plurality of nodes.

近年、クラウドコンピューティングの隆盛に伴い、多量なデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。分散処理を行う際には、クラスタを構成して分散システムを構築する各サーバ(以降、ノードともいう)が担当するデータを決定する必要がある。この際、分散システム全体でのデータの処理能力を高めるためには、各ノードが担当するデータ数は平均化されていることが望ましい。   In recent years, with the rise of cloud computing, it has been required to efficiently process and hold a large amount of data. Thus, distributed processing technology has been developed that realizes efficient processing by operating a plurality of servers in a coordinated manner. When performing distributed processing, it is necessary to determine data for each server (hereinafter also referred to as a node) that configures a cluster and constructs a distributed system. At this time, in order to increase the data processing capacity of the entire distributed system, the number of data handled by each node is preferably averaged.

ところで、代表的なデータの管理手法には、各データのkey(キー)をハッシュ関数にかけた値(以降、hash(key):ハッシュキーともいう)を、ノード数Nで割った余り、即ちhash(key)mod Nを番号として持つノードが、データを管理する手法がある。但し、その際、ノードに事前に0からN−1まで番号を割り当てている。このような管理手法を用いた場合、ノードを追加又は離脱すると、Nの値が変化し、多くのデータでは担当するノードが変更になるため、担当ノードの再配置が必要になる。   By the way, as a representative data management method, a remainder obtained by dividing a value obtained by multiplying the key (key) of each data by a hash function (hereinafter also referred to as hash (key): hash key) by the number of nodes N, that is, hash. There is a method in which a node having (key) mod N as a number manages data. At this time, however, numbers from 0 to N-1 are assigned to the nodes in advance. When such a management method is used, when a node is added or removed, the value of N changes, and the node in charge is changed for a lot of data, so that the node in charge needs to be rearranged.

また、コンシステント・ハッシュ法を用いたデータ管理手法では、図14に符号5で示す円形状のID空間において、ノードA,B,C,D,Eと、○及び●印で示す負荷が異なる負荷データとの双方にID(identification)を割り当てる。負荷データの担当ノードは、当該担当ノード(例えばB)からID空間5を時計回りに辿り、最初に突き当たったノードCまでの間に配置される負荷データを担当する。ノードA〜Eに対するIDの与え方の例としては、IP(Internet Protocol)アドレスをハッシュ関数にかけた値{これを、hash(IPアドレス)ともいう}が挙げられる。   In the data management method using the consistent hash method, the loads indicated by the circles and ● are different from those of the nodes A, B, C, D, and E in the circular ID space indicated by reference numeral 5 in FIG. ID (identification) is assigned to both load data. The node in charge of load data follows the ID space 5 from the node in charge (for example, B) in the clockwise direction, and is responsible for load data arranged between the node C that first hits. As an example of how IDs are given to the nodes A to E, a value obtained by applying an IP (Internet Protocol) address to a hash function {this is also referred to as a hash (IP address)} can be given.

クラスタ構成の分散システムでは、例えば各ノードの性能が等しい場合には、各ノードA〜Eが担当するデータ量は等しい、即ち、コンシステント・ハッシュ法のID空間5における、ノード間の距離(以降、ノードの担当領域ともいう)が等しいことが望ましい。   In a distributed system having a cluster configuration, for example, when the performance of each node is equal, the amount of data handled by each node A to E is equal, that is, the distance between nodes in the ID space 5 of the consistent hash method (hereinafter, It is desirable that the nodes are in charge of each other.

この点を解決するため、各ノードA〜Eに仮想的に複数のIDを持たせる手法が用いられている。各ノードA〜Eが複数の仮想IDを持つことで、仮想ID毎の担当領域は異なっていても、大数の法則に従い、ノードA〜Eの担当領域は平均化される。このようなコンシステント・ハッシュ法や仮想ID等の従来技術により、ノード間で担当するデータ数を均一化し、負荷を分散させることが可能となる。   In order to solve this problem, a method of virtually giving a plurality of IDs to the nodes A to E is used. Since each node A to E has a plurality of virtual IDs, even if the assigned area for each virtual ID is different, the assigned areas of the nodes A to E are averaged according to the law of large numbers. Conventional techniques such as the consistent hash method and virtual ID make it possible to equalize the number of data handled between nodes and distribute the load.

しかしながら、各ノードA〜Eの内の特定ノードにて、アクセス頻度の多いデータや、処理時間の長いデータ(高負荷データ)が偏って発生するため、各ノードA〜Eが担当するデータ数自体は均等であっても、ノード間で負荷の偏りが発生する。   However, since data with a high access frequency and data with a long processing time (high load data) are unevenly generated at specific nodes among the nodes A to E, the number of data handled by the nodes A to E itself Even if they are equal, load imbalance occurs between nodes.

このようなコンシステント・ハッシュ法の分散システムにおける負荷増大に対する対策としては、分散システムに図14に示す新たなノードFを増設して分散システムをスケールアウトさせ、高負荷となったノード(高負荷ノード)、例えば高負荷ノードCが担当するデータ数を縮小させて負荷を低減する手法がとられている。   As a countermeasure against such a load increase in the distributed system of the consistent hash method, a new node F shown in FIG. 14 is added to the distributed system, and the distributed system is scaled out. Node), for example, a method of reducing the load by reducing the number of data handled by the high-load node C.

また、ノード(例えばB)のコンシステント・ハッシュ上での空間配置変更(これを、リバランスという)を行い適切に負荷が分散されていれば、増設を行うことなく現行のノード台数で対処可能なケースもある。非特許文献1には、スケールアウト/リバランスで対処すべき状況を識別し、更に、リバランスで対処すべき状況においては、コンシステント・ハッシュ空間(ID空間5)上の隣接ノード間(例えばEであれば、2つの矢印で示す隣のA又はD)でリバランスを実行して、ノード間の負荷の偏りを是正する手法が提案されている。   In addition, if the load is distributed appropriately by changing the spatial arrangement of the nodes (for example, B) on the consistent hash (this is called rebalancing), it can be handled with the current number of nodes without adding additional nodes. There are also cases. Non-Patent Document 1 identifies situations to be dealt with by scale-out / rebalance, and in situations to be dealt with by rebalance, between adjacent nodes on the consistent hash space (ID space 5) (for example, In the case of E, a method has been proposed in which rebalancing is performed in the adjacent A or D) indicated by two arrows to correct the load imbalance between nodes.

鶴田泰他,「分散サーバシステムにおけるノード負荷分散最適化方式」,電子情報通信学会総合大会,Mar.2014,B-7-84Yasu Tsuruta et al., “Node Load Balancing Optimization Method in Distributed Server System”, IEICE General Conference, Mar. 2014, B-7-84

ところで、非特許文献1の手法を用いたとしても、高負荷ノードの隣も負荷の高いノードになっている等、隣接ノードが必ずしもリバランスに適したノードとなっているとは限らない。この場合、他に負荷の低いノードがあっても、そこに直ちに負荷をリバランスさせることができない。しかし、リバランスを繰り返せば、最終的に負荷の偏りを是正することは可能である。しかしながら、この場合、リバランスを繰り返さなければならないので、多くの時間を要する可能性があり実用的でない。言い換えれば、効率良くリバランスを行うことができないという問題がある。   By the way, even if the method of Non-Patent Document 1 is used, the adjacent node is not necessarily a node suitable for rebalancing, such as a node having a high load next to the high load node. In this case, even if there is another node with a low load, the load cannot be immediately rebalanced there. However, if rebalancing is repeated, it is possible to finally correct the load imbalance. However, in this case, since rebalancing has to be repeated, it may take a lot of time and is not practical. In other words, there is a problem that rebalancing cannot be performed efficiently.

本発明は、このような背景に鑑みてなされたものであり、効率良くリバランスを行うことができる分散システム、負荷分散方法及びプログラムを提供することを課題とする。   The present invention has been made in view of such a background, and an object of the present invention is to provide a distributed system, a load distribution method, and a program capable of efficiently performing rebalancing.

上記課題を解決するため、請求項に係る発明は、通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する分散システムであって、前記ノードは、記憶部に以下の数式(1)を記憶しており、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出し、前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行うリバランス部を備えることを特徴とする分散システムである。
In order to solve the above-mentioned problem, the invention according to claim 1 is a distributed system having a plurality of nodes to which information from a plurality of client machines using a communication service is distributed via a network, The following formula (1) is stored in the part,
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ) To calculate the number of virtual nodes for each node, change the size of the current area per virtual node of the virtual node, and the virtual node having the size of the current area after the change A distributed system comprising a rebalancing unit that performs rebalancing to allocate virtual nodes to the corresponding nodes so that the calculated number of virtual nodes exists.

この構成によれば、リバランス部が、担当領域を移譲する対象ノードや、該当ノードの適切な移譲サイズを指定することなく、各ノードが持つ仮想ノード数を、ノード毎の現状の負荷の状況に応じて、必要な負荷量とするための仮想ノード数とすることができる。つまり、自ノードの必要負荷量に適合したリバランスを行うことができる。   According to this configuration, the rebalancing unit determines the number of virtual nodes that each node has without specifying the target node to which the assigned area is transferred and the appropriate transfer size of the corresponding node. Depending on the number of virtual nodes, the number of virtual nodes for obtaining a necessary load amount can be obtained. That is, rebalancing adapted to the required load amount of the own node can be performed.

請求項に係る発明は、通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する負荷分散方法であって、前記ノードは、記憶部に以下の数式(1)を記憶しており、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出するステップと、前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行うステップとを実行することを特徴とする負荷分散方法である。
The invention according to claim 2 is a load distribution method having a plurality of nodes to which information from a plurality of client machines using a communication service is distributed via a network, and the node stores the following formula ( 1)
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ) To calculate the number of virtual nodes for each node, change the size of the current area per virtual node of the virtual node, and change the virtual area having the changed size of the current area. And performing a rebalancing step of allocating virtual nodes to the corresponding nodes so that there are as many virtual nodes as the calculated number of virtual nodes.

この方法によれば、自ノードの必要負荷量に適合したリバランスを行うことができる。   According to this method, rebalancing suitable for the required load amount of the node can be performed.

請求項に係る発明は、通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する分散システムの当該ノードとして記憶部に以下の数式(1)を記憶しているコンピュータを、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出する手段、前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行う手段として機能させるためのプログラムである。
The invention according to claim 3 stores the following formula (1) in the storage unit as the node of the distributed system having a plurality of nodes to which information from a plurality of client machines using the communication service is distributed via the network. Computer
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ), The virtual node having the size of the assigned area after the change, the means for calculating the number of virtual nodes for each node, the size of the assigned area per virtual node of the current virtual node is changed Is a program for functioning as means for performing rebalancing to allocate virtual nodes to the corresponding nodes so that the calculated number of virtual nodes exists.

このプログラムによれば、請求項と同様の作用効果を得ることができる。 According to this program, the same effect as that of claim 2 can be obtained.

本発明によれば、効率良くリバランスを行うことができる分散システム、負荷分散方法及びプログラムを提供することができる。   According to the present invention, it is possible to provide a distributed system, a load distribution method, and a program capable of efficiently performing rebalancing.

本発明の第1実施形態に係る分散システムの構成を示すブロック図である。1 is a block diagram illustrating a configuration of a distributed system according to a first embodiment of the present invention. 本実施形態の分散システムにおけるノードの構成を示し、(a)は制御部の構成を示すブロック図、(b)は記憶部の情報を示すブロック図である。The configuration of the node in the distributed system of this embodiment is shown, (a) is a block diagram showing the configuration of the control unit, (b) is a block diagram showing the information in the storage unit. 複数のノードA〜Eで分割されたハッシュ空間を示す図である。It is a figure which shows the hash space divided | segmented by several nodes AE. (a)ノード識別子管理表の一例を示す図、(b)振分ID表の一例を示す図である。(A) A figure showing an example of a node identifier management table, (b) A figure showing an example of a distribution ID table. (a)ノード負荷計測データ(ノード単位)の一例を示す図、(b)ノード負荷計測データ(仮想ノード単位)の一例を示す図、(c)ノード負荷計測データ(データ単位)の一例を示す図である。(A) A diagram showing an example of node load measurement data (node unit), (b) a diagram showing an example of node load measurement data (virtual node unit), and (c) an example of node load measurement data (data unit). FIG. 分散システム負荷集計データの一例を示す図である。It is a figure which shows an example of distributed system load total data. (a)リバランス前の振分ID表の一例を示す図、(b)リバランス後の振分ID表の一例を示す図、(c)リバランス後の振分ID表の他例を示す図である。(A) The figure which shows an example of the distribution ID table before rebalance, (b) The figure which shows an example of the distribution ID table after rebalance, (c) The other example of the distribution ID table after rebalance is shown FIG. ノードの複数の仮想ノード及びその担当領域(担当ハッシュ空間)を示す図である。It is a figure which shows the some virtual node of a node, and its charge area (charge hash space). 図8に示す各仮想ノードの担当領域における各種負荷データによる負荷量の一覧表を示す図である。It is a figure which shows the list of the load amount by the various load data in the charge area | region of each virtual node shown in FIG. 各ノードA〜Cが保持する負荷量の偏差を表す棒グラフである。It is a bar graph showing the deviation of the load amount which each node AC holds. 本実施形態の分散システムの各ノードのリバランスを実行する際の動作を説明するための第1のフローチャートである。It is a 1st flowchart for demonstrating the operation | movement at the time of performing the rebalance of each node of the distributed system of this embodiment. 本実施形態の分散システムの各ノードのリバランスを実行する際の動作を説明するための第2のフローチャートである。It is a 2nd flowchart for demonstrating the operation | movement at the time of performing the rebalance of each node of the distributed system of this embodiment. (a)リバランス前の振分ID表の一例を示す図、(b)リバランス後の振分ID表の一例を示す図である。(A) A figure showing an example of a distribution ID table before rebalancing, (b) A figure showing an example of a distribution ID table after rebalancing. 従来技術を説明するためのハッシュ空間を示す図である。It is a figure which shows the hash space for demonstrating a prior art.

以下、本発明の実施形態を、図面を参照して説明する。
<第1実施形態の構成>
図1は、本発明の第1実施形態に係る分散システムの構成を示すブロック図である。
図1に示す分散システム10は、コンシステント・ハッシュ法を用いた複数のノード15を利用し、データ管理を行うシステムである。本発明の特徴は、分散システム10を構成するノード15間で負荷の偏りが生じた際に、現行ノード15数で対処が可能な場合に、現行ノード15の負荷の偏り状況を踏まえて、効率的にリバランスを行い負荷の偏りを是正するものである。
Embodiments of the present invention will be described below with reference to the drawings.
<Configuration of First Embodiment>
FIG. 1 is a block diagram showing a configuration of a distributed system according to the first embodiment of the present invention.
A distributed system 10 shown in FIG. 1 is a system that performs data management using a plurality of nodes 15 using a consistent hash method. A feature of the present invention is that, when a load imbalance occurs between the nodes 15 constituting the distributed system 10, when it is possible to cope with the number of current nodes 15, the efficiency is determined based on the load imbalance of the current node 15. Rebalance to correct the load imbalance.

分散システム10は、複数のクライアントマシン(単に、クライアントともいう)11にインターネット等のネットワーク12を介して接続されたロードバランサ13と、クラスタ14を構成する複数のノード15とを備えて構成されている。   The distributed system 10 includes a load balancer 13 connected to a plurality of client machines (also simply referred to as clients) 11 via a network 12 such as the Internet, and a plurality of nodes 15 constituting a cluster 14. Yes.

各ノード15は、コンピュータ等の物理装置や仮想マシン等の論理装置、言い換えれば、物理的又は仮想的なサーバ等である。クライアント11からのメッセージが、ロードバランサ13によって各ノード15に振り分けられる。この振り分けは、単純なラウンドロビン法等により行われる。   Each node 15 is a physical device such as a computer or a logical device such as a virtual machine, in other words, a physical or virtual server. A message from the client 11 is distributed to each node 15 by the load balancer 13. This distribution is performed by a simple round robin method or the like.

ノード15は、制御部18及び記憶部19を備えて構成されている。但し、制御部18及び記憶部19は、ソフトウェアによって構成されているとする。なお、ハードウェアによって構成してもよい。
図2(a)に示すように、制御部18は、ノード識別子管理部18aと、振分部18bと、信号処理部18cと、ノード負荷計測部18dと、分散システム負荷リバランス部(単に、リバランス部ともいう)18eとを備える。
The node 15 includes a control unit 18 and a storage unit 19. However, it is assumed that the control unit 18 and the storage unit 19 are configured by software. It may be configured by hardware.
As shown in FIG. 2A, the control unit 18 includes a node identifier management unit 18a, a distribution unit 18b, a signal processing unit 18c, a node load measurement unit 18d, a distributed system load rebalancing unit (simply, 18e).

図2(b)に示すように、記憶部19は、ノード識別子管理表19aと、振分ID表19bと、データ19cと、ノード負荷計測データ19dと、分散システム負荷集計データ19eと、呼制御状態フラグ19fとを記憶する。なお、ノード識別子管理表19aを管理表19aともいい、分散システム負荷集計データ19eを集計データ19e、呼制御状態フラグ19fをフラグ19fともいう。   As shown in FIG. 2B, the storage unit 19 includes a node identifier management table 19a, a distribution ID table 19b, data 19c, node load measurement data 19d, distributed system load summary data 19e, and call control. The status flag 19f is stored. The node identifier management table 19a is also called a management table 19a, the distributed system load summary data 19e is also called summary data 19e, and the call control status flag 19f is also called flag 19f.

振分部18bは、クライアント11からのメッセージ(情報)を、例えばコンシステント・ハッシュ法等に基づき、メッセージを担当するノード15に振り分ける。
信号処理部18cは、クライアント11からのメッセージに応じて、所定の信号処理を行い、クライアント11にサービスを提供する。つまり、メッセージを担当するノード15では、信号処理部18cにて所定の信号処理を行ってクライアント11にサービスを提供する。この振分部18b及び信号処理部18cの処理動作については後述で更に詳細に説明する。
The distribution unit 18b distributes the message (information) from the client 11 to the node 15 in charge of the message based on, for example, a consistent hash method.
The signal processing unit 18 c performs predetermined signal processing in response to a message from the client 11 and provides a service to the client 11. That is, the node 15 in charge of the message provides a service to the client 11 by performing predetermined signal processing in the signal processing unit 18c. The processing operations of the distribution unit 18b and the signal processing unit 18c will be described in detail later.

但し、分散システム10においては、ロードバランサ13が存在せず、クライアント11から任意のノード15(振分部18b)にメッセージを送信することも可能である。また、振分部18bと信号処理部18cは、図1のように同じノード15上に同時に存在させてもよいし、別ノード15上に存在させてもよい。   However, in the distributed system 10, the load balancer 13 does not exist, and a message can be transmitted from the client 11 to an arbitrary node 15 (distribution unit 18b). Further, the allocating unit 18b and the signal processing unit 18c may be simultaneously present on the same node 15 as illustrated in FIG.

制御部18において、ノード識別子管理部18aは、分散システム10上のノード情報をノード識別子管理表19aに蓄積することにより、ノード15が担当するID空間を管理する。このID空間は、コンシステント・ハッシュ法ではコンシステント・ハッシュ上の空間(ハッシュ空間)である。   In the control unit 18, the node identifier management unit 18a manages the ID space handled by the node 15 by accumulating node information on the distributed system 10 in the node identifier management table 19a. This ID space is a space (hash space) on the consistent hash in the consistent hash method.

このハッシュ空間を、例えば図3に示すように、複数のノードA〜Eで分割し、各ノードA〜Eの担当領域を決めて管理する。この際、ノードAが担当するハッシュ空間は、ノードAから時計回りにノードBまでの領域であり、このハッシュ空間に存在するデータを担当ノードAが保持する。他のノードB〜Eも同様である。なお、ハッシュ空間(担当領域)のサイズが大きい程に、多くのデータを保持できるようになっている。   For example, as shown in FIG. 3, the hash space is divided by a plurality of nodes A to E, and assigned areas of the nodes A to E are determined and managed. At this time, the hash space handled by the node A is an area from the node A to the node B in the clockwise direction, and the responsible node A holds data existing in the hash space. The same applies to the other nodes B to E. In addition, as the size of the hash space (area in charge) is larger, more data can be held.

図2(a)に戻って、振分部18bは、分散システム10においてメッセージ等のデータの振分先の決定に関する処理を行い、この処理により得られるデータの振分先情報を振分ID表19bとして管理する。   Returning to FIG. 2A, the distribution unit 18b performs processing related to determination of the distribution destination of data such as a message in the distributed system 10, and the distribution destination information of the data obtained by this processing is assigned to the distribution ID table. It manages as 19b.

信号処理部18cは、ノード15における信号処理を行う。この信号処理時のアクセス対象となるデータ19cが記憶部19に記憶される。
ノード負荷計測部18dは、ノード15の負荷を計測し、この計測結果を記憶部19にノード負荷計測データ19dとして記録すると共に、必要に応じて定められる特権ノード15(図3に示す例えばノードB)に送付する。
The signal processing unit 18 c performs signal processing at the node 15. Data 19c to be accessed at the time of this signal processing is stored in the storage unit 19.
The node load measuring unit 18d measures the load of the node 15, records the measurement result as the node load measurement data 19d in the storage unit 19, and determines the privileged node 15 (for example, the node B shown in FIG. ).

分散システム負荷リバランス部18eは、分散システム10全体のノード負荷を収集し、この収集した負荷の平均値及び標準偏差の算出を行い、これらの算出結果である分散システム負荷集計データ19eを記憶部19に記憶する。更に、リバランス部18eは、その記憶された集計データ19eに基づくリバランスの実行判定、並びにリバランス設計を行ってリバランスを実行する。
また、記憶部19に記憶される呼制御状態フラグ19fは、新規呼を制御する状態か否かを判別するための情報である。
The distributed system load rebalancing unit 18e collects the node loads of the entire distributed system 10, calculates the average value and standard deviation of the collected loads, and stores the distributed system load summary data 19e as the calculation results. 19 Further, the rebalancing unit 18e performs rebalancing by performing rebalancing execution determination and rebalancing design based on the stored total data 19e.
The call control state flag 19f stored in the storage unit 19 is information for determining whether or not the state is a state for controlling a new call.

ここで、前述した図1に示すノード15の振分部18b及び信号処理部18cによるメッセージの振分処理及び信号処理について更に詳細に説明する。   Here, message distribution processing and signal processing by the distribution unit 18b and the signal processing unit 18c of the node 15 shown in FIG. 1 will be described in more detail.

振分部18bは、クライアント11から発呼されるメッセージ内の情報をもとに、信号処理を担当するノード15を特定し、当該する他のノード15にメッセージの振り分けを行う。メッセージは、新規呼(例えば、SIP(Session Initiation Protocol)においてはInitial−INVITE等)と後続呼(SIPにおいてはBYE等)に分けられる。
新規呼か後続呼かの識別は、呼に後述の振分キーが埋め込まれているか否かで判定できる。例えば、SIPにおいては、To/FromヘッダのTag等で判定できる。
The distribution unit 18b identifies the node 15 in charge of signal processing based on the information in the message called from the client 11, and distributes the message to the other node 15 concerned. The message is divided into a new call (for example, Initial-INVITE or the like in SIP (Session Initiation Protocol)) and a subsequent call (for example, BYE in SIP).
Whether the call is a new call or a subsequent call can be determined based on whether or not a distribution key described later is embedded in the call. For example, in SIP, it can be determined by Tag of To / From header or the like.

振分キーは、ノード識別子(SIPにおいてはcall−id)又はハッシュ値による仮想ノードIDで構成されている。ハッシュ値は、元になるデータから一定の計算手順により求められた規則性のない固定長の値なので、仮想ノードIDやノード識別子をハッシュ値で構成するのが好ましい。   The distribution key includes a virtual node ID based on a node identifier (call-id in SIP) or a hash value. Since the hash value is a fixed-length value without regularity obtained from the original data by a certain calculation procedure, it is preferable that the virtual node ID and the node identifier are composed of hash values.

一方、上述した新規呼か後続呼かの識別の判定の結果、後続呼の場合、振分部18bにて、振分ID表19b上のノード15毎の担当領域である振分ID空間{図4(b)に示し後述する}と、振分キー内のハッシュ値とを比較して担当するノード15を特定する。更に、担当するノード15のアドレスを、後述の図4(a)に示すノード識別子管理表19aから特定し、この特定されたノード15に転送する。   On the other hand, in the case of a subsequent call as a result of the above-described determination of whether the call is a new call or a subsequent call, the distribution unit 18b allocates a distribution ID space that is an assigned region for each node 15 on the distribution ID table 19b { 4 (b) and will be described later} is compared with the hash value in the distribution key to identify the node 15 in charge. Further, the address of the node 15 in charge is specified from the node identifier management table 19a shown in FIG. 4A described later, and transferred to the specified node 15.

一方、上述した判定の結果、新規呼の場合、振分キーが存在しないため、メッセージからCall−id(ノード識別子)を抽出し、これをハッシュ関数に導入してハッシュ値を導出する。更に、振分部18bにて、振分ID表19b上のノード15毎の担当領域である振分ID空間{図4(b)に示し後述する}と、導出したハッシュ値とを比較して担当するノード15を特定する。更に、担当するノード15のアドレスを、後述の図4(a)に示すノード識別子管理表19aから特定し、この特定されたノード15に転送する。   On the other hand, as a result of the determination described above, since a distribution key does not exist in the case of a new call, a call-id (node identifier) is extracted from the message and introduced into a hash function to derive a hash value. Further, the distribution unit 18b compares the distribution ID space {shown in FIG. 4B and described later}, which is the assigned area for each node 15 on the distribution ID table 19b, with the derived hash value. The node 15 in charge is specified. Further, the address of the node 15 in charge is specified from the node identifier management table 19a shown in FIG. 4A described later, and transferred to the specified node 15.

新規呼を信号処理部18cで受信した場合も、メッセージからCall−id(ノード識別子)を抽出し、これをハッシュ関数に導入してハッシュ値を導出して、振分キーを生成する。また、信号処理部18cによる信号処理後に、クライアント11に送付するメッセージに振分キーを埋め込んで(SIPにおいてはTo/FromヘッダのTag)送付する。   Even when a new call is received by the signal processing unit 18c, a Call-id (node identifier) is extracted from the message, is introduced into a hash function, a hash value is derived, and a distribution key is generated. Further, after the signal processing by the signal processing unit 18c, the distribution key is embedded in the message to be sent to the client 11 (To / From header tag in SIP) and sent.

以降、クライアント11からの後続呼には本振分キーを埋め込みの上、メッセージを送付し、振分部18bにて本振分キーのハッシュ値を基に振り分けが行われることで、当該呼が処理されたノード15に後続呼が届くことが可能となる。   Thereafter, a message is sent after embedding the real distribution key in the subsequent call from the client 11, and the distribution unit 18b distributes the call based on the hash value of the main distribution key. Subsequent calls can reach the processed node 15.

次に、上述したノード識別子管理部18aについて、より詳細に説明する。
ノード識別子管理部18aは、分散システム10へのノード15の追加や離脱が発生した際に、分散システム10を構成するノード15の識別子情報(ノード識別子)を更新し、これを、図4(a)に示すノード識別子管理表19aとして管理する。図4(a)の例においては、ノード識別子(又はノードID)(例えば、「Node1」)に、アドレス(例えば、「10.45.0.1」)が対応付けられている。そのノード識別子は、特権ノードのノード識別子管理部18aで付与され、全ノード15へと配信される。
Next, the node identifier management unit 18a described above will be described in more detail.
The node identifier management unit 18a updates the identifier information (node identifier) of the node 15 constituting the distributed system 10 when the node 15 is added to or removed from the distributed system 10, and this is updated as shown in FIG. The node identifier management table 19a shown in FIG. In the example of FIG. 4A, an address (for example, “10.45.0.1”) is associated with a node identifier (or node ID) (for example, “Node 1”). The node identifier is assigned by the node identifier management unit 18a of the privileged node and distributed to all the nodes 15.

コンシステント・ハッシュ法においては、ノード識別子に、図4(b)に示す仮想ノード識別子(又は仮想ノードID)が従属している。この仮想ノードIDは、振分ID空間の任意のID(ハッシュ値による)である。例えば図4(a)に示すノード識別子「Node1」には、図4(b)の振分ID表19bに示す少なくとも1つ以上の仮想ノードID「Node1−1」,「Node1−2」が従属している。言い換えれば、ノード15に1つ以上の仮想ノードが従属している。但し、これは基本構成であって、ノード15に仮想ノードが従属しない場合もある。   In the consistent hash method, the virtual node identifier (or virtual node ID) shown in FIG. 4B is subordinate to the node identifier. This virtual node ID is an arbitrary ID (by hash value) in the distribution ID space. For example, the node identifier “Node1” shown in FIG. 4A is subordinate to at least one or more virtual node IDs “Node1-1” and “Node1-2” shown in the distribution ID table 19b of FIG. 4B. doing. In other words, one or more virtual nodes are subordinate to the node 15. However, this is a basic configuration, and the virtual node may not be subordinate to the node 15 in some cases.

このように、前述のノード識別子管理表19aの更新と合わせて、ノード15が担当する振分ID空間の担当領域を更新し、これを振分ID表19bとして管理する。振分ID表19bには、例えば、仮想ノードID「Node1−1」に、担当する振分ID空間の担当領域として「0〜199(D=200)」のデータサイズが対応付けられ、仮想ノードID「Node1−2」に、担当する振分ID空間の担当領域として「600〜999(D=400)」のデータサイズが対応付けられている。即ち、D=200は、担当領域のデータサイズが200であることを示す。他のD=400等も同じである。   Thus, in conjunction with the update of the node identifier management table 19a described above, the assigned area of the distribution ID space handled by the node 15 is updated and managed as the distribution ID table 19b. In the distribution ID table 19b, for example, the virtual node ID “Node1-1” is associated with the data size of “0 to 199 (D = 200)” as the assigned area of the assigned ID space, and the virtual node The data size of “600 to 999 (D = 400)” is associated with the ID “Node1-2” as the assigned area of the assigned ID space. That is, D = 200 indicates that the data size of the assigned area is 200. The same applies to other D = 400 and the like.

次に、上述したノード負荷計測部18dにより計測される負荷の情報収集と、この収集された負荷の特権ノードへの送付について説明する。
ノード負荷計測部18dは、所定の周期で当該ノード15の負荷を計測し、これをノード負荷計測データ19dとして記憶部19に記録して蓄積する。また、ノード負荷計測部18dは、所定の周期で特権ノード(例えば図3に示すノードB)に蓄積したノード負荷計測データ19dを送付する。
Next, information collection of the load measured by the node load measurement unit 18d described above and sending of the collected load to the privileged node will be described.
The node load measurement unit 18d measures the load on the node 15 at a predetermined cycle, and records and accumulates the load on the storage unit 19 as node load measurement data 19d. Further, the node load measurement unit 18d sends the node load measurement data 19d accumulated in the privileged node (for example, the node B shown in FIG. 3) at a predetermined cycle.

但し、上述したノード負荷計測部18dにおいて所定周期で計測されるノード15の負荷は、CPU(Central Processing Unit)使用率、メモリ使用率、アクセス頻度等の、ノード15にて取得可能なあらゆるパラメータが使用される。また、どの数値がボトルネックとなるか、更に、どの程度の値であればリバランスすべき閾値となるかは、分散システムのシステム特性に応じて異なり、複数のパラメータの組み合わせにより判断するケースもある。従って、特定のパラメータ種別に限定せず利用可能とする。   However, the load of the node 15 measured at a predetermined cycle by the node load measuring unit 18d described above is any parameter that can be acquired by the node 15 such as a CPU (Central Processing Unit) usage rate, a memory usage rate, and an access frequency. used. Also, which numerical value is the bottleneck, and what value is the threshold to be rebalanced depends on the system characteristics of the distributed system, and there are cases where it is determined by a combination of multiple parameters. is there. Therefore, it can be used without being limited to a specific parameter type.

また、ノード負荷計測部18dによる負荷の計測単位は、図5の(a)ノードIDによるノード単位、(b)仮想ノードIDによる仮想ノードID単位、(c)データ単位の内、どの単位で計測しても構わない。また、図5(b)の仮想ノード単位で負荷を計測する場合、それを集計して(a)のノード単位を算出可能であり、(c)のデータ単位で負荷を計測する場合、それを集計して(b)の仮想ノード単位や(a)のノード単位の負荷を算出可能である。なお、図5においては、ノード負荷計測部18dにより計測される負荷は、アクセス頻度(アクセス回数)を例に示してある。   Further, the unit of load measurement by the node load measuring unit 18d is measured in any one of (a) node unit by node ID, (b) virtual node ID unit by virtual node ID, and (c) data unit in FIG. It doesn't matter. In addition, when the load is measured in the virtual node unit of FIG. 5B, it is possible to calculate the node unit of (a) by summing up the load, and when measuring the load in the data unit of (c), It is possible to calculate the load in units of virtual nodes in (b) and in units of nodes in (a) by summing up. In FIG. 5, the load measured by the node load measuring unit 18 d shows an access frequency (number of accesses) as an example.

このような図5(a)〜(c)の表は、2つのノード15で構成される分散システム10におけるものであり、次のような構成となっている。
図5(a)に示す1つのノード15(例えばノードID=Node1)において、図5(b)に示す2つの仮想ノードID(Node1_1,Node1_2)による2つの仮想ノードを保持する。更に、図5(c)に示す1つの仮想ノードID(例えばNode1_1)による仮想ノード当り2つのデータ(data1,data2)を保有する場合を想定してある。他のノードも同様である。
Such tables in FIGS. 5A to 5C are for the distributed system 10 including two nodes 15 and have the following configuration.
In one node 15 (for example, node ID = Node1) shown in FIG. 5A, two virtual nodes with two virtual node IDs (Node1_1, Node1_2) shown in FIG. 5B are held. Furthermore, it is assumed that two data (data1, data2) per virtual node with one virtual node ID (for example, Node1_1) shown in FIG. The same applies to the other nodes.

この場合に、負荷の計測単位を図5(b)に示すように仮想ノード単位とし、収集する負荷としてのアクセス頻度(回数)を、10秒周期(10:15:00→10:15:10→10:15:20)で収集して、蓄積するケースを想定してある。   In this case, the load measurement unit is a virtual node unit as shown in FIG. 5B, and the access frequency (number of times) as a load to be collected is a 10 second period (10: 15: 00 → 10: 15: 10). → 10:15:20) The case of collecting and accumulating is assumed.

次に、上述した分散システム負荷リバランス部18eによるノード15の負荷の偏り算出及びリバランス実行判断の処理について説明する。   Next, a description will be given of processing for calculating the load deviation of the node 15 and rebalancing execution determination by the distributed system load rebalancing unit 18e.

リバランス部18eは、所定の周期で各ノード15から収集したノード負荷計測データ19dに基づき、分散システム10全体のノード15の負荷の平均値及び標準偏差、偏差並びに偏差/標準偏差(偏差を標準偏差で除した値)の算出を行う。更に、リバランス部18eは、それらの算出結果を、図6に一例を示すように集計データ19eに記録し、この記録した集計データ19eに基づき、後述の3つの条件(1)〜(3)の何れか1つを満たす場合、ノード15間の負荷の偏りを是正するリバランスを実行する。何れも満たさない場合はリバランスは実行しない。なお、条件(1)は請求項記載の第1条件、条件(2)は請求項記載の第2条件、条件(3)は請求項記載の第3条件である。   The rebalance unit 18e is based on the node load measurement data 19d collected from each node 15 at a predetermined period, and the average value, standard deviation, deviation, and deviation / standard deviation of the load of the nodes 15 of the entire distributed system 10 (standard deviation). The value divided by the deviation is calculated. Further, the rebalance unit 18e records the calculation results in the total data 19e as shown in FIG. 6 as an example, and based on the recorded total data 19e, the following three conditions (1) to (3) If any one of the above is satisfied, rebalancing is performed to correct the load imbalance among the nodes 15. If neither is satisfied, rebalancing is not performed. The condition (1) is the first condition described in the claims, the condition (2) is the second condition described in the claims, and the condition (3) is the third condition described in the claims.

図6に示す集計データ19eには、収集時の時刻、ノードID(ノード識別子)、平均値(アクセス頻度)、標準偏差、実測値(アクセス頻度)、偏差、及び偏差/標準偏差が記録される。なお、平均値及び実測値は、アクセス頻度の平均値及び実測値である。   In the aggregated data 19e shown in FIG. 6, the collection time, node ID (node identifier), average value (access frequency), standard deviation, actual measurement value (access frequency), deviation, and deviation / standard deviation are recorded. . The average value and the actual measurement value are the average value and the actual measurement value of the access frequency.

条件(1)、リバランス部18eは、集計データ19eに基づき、ノード15の負荷が、当該ノード15が許容する負荷の上限値(予め定められた上限値)を超えていないか否かをチェックし、上限値を超えるノードが存在する場合に、リバランスを実行する。   Condition (1), the rebalance unit 18e checks whether or not the load on the node 15 exceeds the upper limit value (predetermined upper limit value) permitted by the node 15 based on the total data 19e. When there is a node exceeding the upper limit value, rebalancing is executed.

条件(2)、リバランス部18eは、集計データ19eに基づき、ノード15全体の負荷の標準偏差が所定の閾値(第1閾値)以下であるか否かを確認し、閾値を超えている場合に、リバランスを実行する。   Condition (2), the rebalance unit 18e checks whether or not the standard deviation of the load of the entire node 15 is equal to or less than a predetermined threshold (first threshold) based on the total data 19e, and exceeds the threshold And rebalance.

条件(3)、リバランス部18eは、集計データ19eに基づき、ノード15毎の負荷の偏差/標準偏差が所定の閾値(第2閾値)以下であるか否かを確認し、閾値を超えている場合に、リバランスを実行する。   Condition (3), the rebalance unit 18e checks whether or not the load deviation / standard deviation for each node 15 is equal to or less than a predetermined threshold (second threshold) based on the aggregated data 19e. If so, perform a rebalance.

但し、図6に示す集計データ19eにおいては、負荷の計測単位を図5(a)に示すノード単位(仮想ノード単位の場合もある)とし、負荷の平均値及び実測値をアクセス頻度とする。更に、平均値や標準偏差を算出する際の時間間隔を20秒間(例えば、10:14:40〜10:15:00)とする。図6の例は、10:15:00の時刻における上記算出値等である。また、ノード15が許容する負荷の上限値をアクセス頻度の実測値「90」{条件(1)}とし、標準偏差の閾値を「15」{条件(2)}、偏差/標準偏差の閾値(乖離閾値ともいう)を「1.2」{条件(3)}とした際の例である。   However, in the aggregated data 19e shown in FIG. 6, the load measurement unit is the node unit shown in FIG. 5A (there may be a virtual node unit), and the load average value and the actual measurement value are the access frequency. Furthermore, the time interval for calculating the average value and the standard deviation is set to 20 seconds (for example, 10:14:40 to 10:15:00). The example of FIG. 6 is the calculated value and the like at the time of 10:15:00. Further, the upper limit value of the load permitted by the node 15 is the access frequency measured value “90” {condition (1)}, the standard deviation threshold is “15” {condition (2)}, and the deviation / standard deviation threshold ( This is an example when “1.2” {condition (3)} is also set as the deviation threshold.

この例では、条件(1)、(2)は満たさない。しかし、図6ではノード識別子の「Node1」、「Node3」、「Node4」の偏差/標準偏差が「1.5」であり、閾値「1.2」を超えており、条件(3)を満たしているため、リバランス実行となる。   In this example, the conditions (1) and (2) are not satisfied. However, in FIG. 6, the deviation / standard deviation of the node identifiers “Node 1”, “Node 3”, and “Node 4” is “1.5”, which exceeds the threshold value “1.2” and satisfies the condition (3) Therefore, rebalancing is executed.

ここで、リバランス部18eが実行するリバランスについて説明する。
リバランスは、負荷の高いノード15の担当領域(担当のID空間)中の移譲領域(後述)を、負荷の低いノード15へ移譲することで負荷の偏りを是正する。この時、負荷の乖離を是正するために、担当領域の必要な移譲領域のサイズを推定の上、その移譲領域のみを移譲する。但し、移譲領域は、担当領域の全てであったり、担当領域の100%未満の割合の領域であったりする。
Here, the rebalancing executed by the rebalancing unit 18e will be described.
The rebalance corrects the load bias by transferring a transfer area (described later) in the assigned area (responsible ID space) of the node 15 having a high load to the node 15 having a low load. At this time, in order to correct the load divergence, the size of the necessary transfer area of the assigned area is estimated, and only the transfer area is transferred. However, the transfer area may be all of the assigned areas or an area with a ratio of less than 100% of the assigned areas.

この移譲の方法は、次の(T1)〜(T4)のようになる。
(T1)全てのノード15の中で最も負荷の高いノード15の担当領域中の移譲領域を、最も低いノード15に対して移譲していくものとする。
This transfer method is as follows (T1) to (T4).
(T1) It is assumed that the transfer area in the assigned area of the node 15 having the highest load among all the nodes 15 is transferred to the lowest node 15.

(T2)移譲領域の移譲は次の場合に終了するものとする。即ち、上記の条件(1)〜(3)の何れかを満たす要因となった偏差の全てが存在しなくなった場合(T2−1)、若しくは、その偏差の一部(予め指定の偏差解消割合を満たす偏差)を解消する移譲領域の移譲が決定した場合(T2−2)、若しくは、移譲領域の移譲を許容可能な移譲先ノード15が存在しなくなった場合(T2−3)に終了するものとする。   (T2) The transfer of the transfer area ends in the following case. That is, when all of the deviations that cause any of the above conditions (1) to (3) no longer exist (T2-1), or a part of the deviation (previously designated deviation cancellation ratio) The process ends when the transfer of the transfer area that resolves (deviation satisfying) is determined (T2-2), or when there is no transfer destination node 15 that can transfer the transfer area (T2-3). And

(T3)移譲領域の移譲単位は、ノード単位や仮想ノード単位でも構わないし、仮想ノード単位でなく、仮想ノードの担当領域の半分を割譲する単位や、1つのハッシュ値によるデータのみの移譲単位でも構わない。   (T3) The transfer unit of the transfer area may be a node unit or a virtual node unit, not a virtual node unit, but a unit for transferring half of the area in charge of the virtual node, or a transfer unit of only data using one hash value I do not care.

(T4)リバランス部18eがリバランスを行う際に事前に実行するリバランス設計は、負荷の計測単位を上述したノード単位、仮想ノード単位及びデータ単位の内、どの単位で実行していたかで、可能なリバランス設計の粒度が、次に記載するように変わる。   (T4) The rebalancing design executed in advance when the rebalancing unit 18e performs rebalancing determines in which unit the load measurement unit is executed from among the node unit, the virtual node unit, and the data unit described above. The granularity of possible rebalance designs varies as described below.

即ち、ノード単位の負荷計測の場合、後述のリバランス粒度が粗い場合のみの方式となる。
仮想ノード単位の負荷計測の場合、後述のリバランス粒度が粗い場合及びリバランス粒度が中間(粗いと細かいとの中間)の場合の方式が可能となる。
データ単位の負荷計測の場合、後述のリバランス粒度が粗い場合、中間の場合及び細かい場合の3つ全ての方式が採用可能となる。
That is, in the case of load measurement in node units, the method is only used when the rebalance granularity described later is coarse.
In the case of load measurement in units of virtual nodes, it is possible to use a method in which the rebalance granularity described later is coarse and the rebalance granularity is intermediate (intermediate between coarse and fine).
In the case of load measurement in units of data, all three methods can be employed when the rebalance granularity described later is coarse, intermediate, and fine.

まず、リバランス粒度が粗い場合について説明する。
ノード15全体における負荷の総量を、ノード15全ての仮想ノードID数で割った仮想ノード当たりの平均負荷量「Lv_ave」を算出する。次に、ノード15内において最も負荷の高いノード15に着目し、このノード15について解消すべき負荷量の偏差(この偏差の符号は+であることから、プラス偏差ともいう)「Ltarget」を算出する。次に、「Ltarget」を「Lv_ave」で割った値を、解消すべき負荷量を解消するために必要な仮想ノードID数「Vtarget_num」と考える。
First, the case where the rebalance particle size is coarse will be described.
An average load amount “Lv_ave” per virtual node obtained by dividing the total load amount of the entire node 15 by the number of virtual node IDs of all the nodes 15 is calculated. Next, paying attention to the node 15 with the highest load in the node 15, the deviation of the load amount to be eliminated for this node 15 (because the sign of this deviation is +, also referred to as a plus deviation) “Ltarget” is calculated. To do. Next, a value obtained by dividing “Ltarget” by “Lv_ave” is considered as the number of virtual node IDs “Vtarget_num” necessary for eliminating the load to be eliminated.

このノード15の仮想ノードの中から無作為に「Vtarget_num」の仮想ノードIDを抽出する。この時、「Vtarget_num」に小数が含まれる場合は、上記(T3)にその概要を記載したように、所定の仮想ノードIDの仮想ノードの担当領域を例えば小数に基づき割譲してもよい。これは、例えば「1.5」の場合、仮想ノード1つの担当領域の割譲と、仮想ノード2つ目の担当領域を半分にして割譲することである。更に、小数部分を切り捨てや切り上げ、又は四捨五入する等して整数個の仮想ノードIDを抽出してもよい。   A virtual node ID of “Vtarget_num” is extracted from the virtual nodes of the node 15 at random. At this time, when “Vtarget_num” includes a decimal number, as described in the outline in (T3) above, the area in charge of the virtual node having a predetermined virtual node ID may be assigned based on the decimal number, for example. For example, in the case of “1.5”, the assigned area of one virtual node is assigned and the assigned area of the second virtual node is divided in half. Further, an integer number of virtual node IDs may be extracted by rounding down, rounding up, or rounding off the decimal part.

上述したように、無作為に抽出された仮想ノードID「Vtarget_num」の仮想ノードの担当領域中の移譲領域を移譲する際に、全てのノード15の中で、最も負荷の低いノード15から順に移譲していく。この際、移譲によって移譲先のノード15の負荷が高まりすぎないように、許容可能な担当領域の移譲サイズを求める必要がある。   As described above, when the transfer area in the assigned area of the virtual node with the virtual node ID “Vtarget_num” extracted at random is transferred, the transfer is performed in order from the node 15 having the lowest load among all the nodes 15. I will do it. At this time, it is necessary to determine an allowable transfer size of the assigned area so that the load on the transfer destination node 15 does not increase too much due to the transfer.

具体的には、移譲先のノード15は、負荷量の偏差(この偏差の符号は−であることから、マイナス偏差ともいう)までは許容可能である。このため、負荷量のマイナス偏差を平均負荷量「Lv_ave」で割った値である負荷量解消に必要な仮想ノードID数「Vget_num1」が、許容可能な仮想ノードID数となる。   Specifically, the transfer destination node 15 can tolerate a load amount deviation (since the sign of this deviation is-, it is also referred to as a minus deviation). For this reason, the number of virtual node IDs “Vget_num1” required to eliminate the load amount, which is a value obtained by dividing the minus deviation of the load amount by the average load amount “Lv_ave”, is the allowable number of virtual node IDs.

ここで、移譲先のノード15の担当領域が許容量を越える場合は、次に負荷の低いノード15について、同様の手順で許容可能な仮想ノードID数「Vget_num2」を求めていき、Vtarget_num<Vget_num1+Vget_num2+…となって、全ての必要な担当領域中の移譲領域の移譲が完了すれば終了となる。   Here, when the assigned area of the transfer destination node 15 exceeds the allowable amount, an allowable virtual node ID number “Vget_num2” is obtained for the node 15 having the next lowest load in the same procedure, and Vtarget_num <Vget_num1 + Vget_num2 + When the transfer of the transfer area in all the necessary assigned areas is completed, the process ends.

以降同様の処理を、次に負荷の高いノードに対しても実行し、全ての負荷乖離の解消が必要なノード15において、負荷の乖離を是正する担当領域中の移譲領域の移譲が完了するか、若しくは、移譲領域の移譲が可能なノードが存在しなくなるまで実行する。   Thereafter, the same processing is executed for the next highest load node, and the transfer of the transfer area in the assigned area that corrects the load divergence is completed in all the nodes 15 that need to eliminate the load divergence. Or, it is executed until there is no node that can be transferred to the transfer area.

次に、リバランス粒度が中間の場合について説明する。
基本的に上述したリバランス粒度が粗い場合と同じであるため、粗い場合との差分のみを説明する。
上述したようにノード15の仮想ノードの中から無作為に仮想ノードを抽出するのではなく、解消すべき負荷量のプラス偏差を発生させている仮想ノードを選択的に抽出し、この抽出した仮想ノードの担当領域中の移譲領域を移譲するものとする。この場合、仮想ノード単位で負荷量を計測しているため、計測負荷は粒度が粗い場合よりも高くなるが、負荷の乖離を是正するための移譲領域の移譲を、より正確に行うことが可能となる。
Next, a case where the rebalance granularity is intermediate will be described.
Since it is basically the same as the case where the rebalance granularity described above is coarse, only the difference from the coarse case will be described.
As described above, instead of randomly extracting virtual nodes from the virtual nodes of the node 15, virtual nodes that cause a positive deviation of the load to be eliminated are selectively extracted, and the extracted virtual nodes The transfer area in the node's area is transferred. In this case, since the load amount is measured in units of virtual nodes, the measured load is higher than when the granularity is coarse, but the transfer area can be transferred more accurately to correct the load divergence. It becomes.

次に、リバランス粒度が細かい場合について説明する。
基本的に上述したリバランス粒度が粗い場合と同じであるため、粗い場合との差分のみを説明する。
Next, the case where the rebalance granularity is fine will be described.
Since it is basically the same as the case where the rebalance granularity described above is coarse, only the difference from the coarse case will be described.

上述したようにノード15の仮想ノードの中から無作為に仮想ノードを抽出するのではなく、解消すべき負荷量のプラス偏差を発生させているデータのハッシュ値を選択的に抽出し、そのハッシュ値のみを移譲するものとする。この場合、データ単位で負荷量を計測しているため、計測負荷はリバランス粒度が中間の場合よりも高くなるが、負荷の乖離を是正するための移譲領域の移譲を、より正確に行うことが可能となる。また、移譲の単位も最小化することができる。   As described above, instead of randomly extracting the virtual nodes from the virtual nodes of the node 15, the hash value of the data causing the positive deviation of the load amount to be eliminated is selectively extracted, and the hash Only the value is transferred. In this case, the load is measured in units of data, so the measured load is higher than when the rebalance granularity is intermediate, but the transfer of the transfer area to correct the load divergence should be performed more accurately. Is possible. Also, the unit of transfer can be minimized.

リバランス部18eは、リバランスの実行を行うことを決定した後は、負荷の偏りを是正するリバランス設計を考え、振分ID表19bに反映し、全ノード15に送付する。   After the rebalancing unit 18e determines to execute the rebalancing, the rebalancing unit 18e considers the rebalancing design that corrects the load imbalance, reflects it in the distribution ID table 19b, and sends it to all the nodes 15.

例えば、図7(a)に示すように、リバランス前の振分ID表19bは、仮想ノードID「Node1−1」に、担当する振分ID空間の担当領域として「0〜199(D=200)」のデータサイズが対応付けられ、「Node2−1」に「200〜399(D=200)」、「Node3−1」に「400〜599(D=200)」、「Node1−2」に「600〜999(D=400)」のデータサイズが対応付けられているとする。   For example, as shown in FIG. 7A, the distribution ID table 19b before rebalancing is assigned to the virtual node ID “Node1-1” as “0-199 (D = 200) ”,“ Node 2-1 ”is“ 200 to 399 (D = 200) ”,“ Node 3-1 ”is“ 400 to 599 (D = 200) ”, and“ Node 1-2 ”. Are associated with a data size of “600 to 999 (D = 400)”.

ここで、例えば図7(a)に示す「Node1−2」の仮想ノードの担当領域「600〜999(D=400)」を全て、他の仮想ノードID「Node3_2」の仮想ノードへ移譲するものとする。この場合、図7(b)に示すように、仮想ノードID「Node3_2」の仮想ノードの担当領域が「600〜999(D=400)」のサイズとなる。   Here, for example, all the assigned areas “600 to 999 (D = 400)” of the virtual node “Node 1-2” illustrated in FIG. 7A are transferred to the virtual node having the other virtual node ID “Node3_2”. And In this case, as shown in FIG. 7B, the area in charge of the virtual node with the virtual node ID “Node3_2” has a size of “600 to 999 (D = 400)”.

また、図7(a)に示す「Node1−2」の仮想ノードの担当領域「600〜999(D=400)」の半分を、他の仮想ノードID「Node3_2」の仮想ノードへ移譲するものとする。この場合、図7(c)に示すように、仮想ノードID「Node1_2」の仮想ノードの担当領域が「600〜799(D=200)」のサイズとなり、仮想ノードID「Node3_2」の仮想ノードの担当領域が「800〜999(D=200)」のサイズとなる。   Also, half of the assigned area “600 to 999 (D = 400)” of the virtual node “Node 1-2” illustrated in FIG. 7A is transferred to the virtual node having the other virtual node ID “Node3_2”. To do. In this case, as shown in FIG. 7C, the virtual node with the virtual node ID “Node1_2” has a size of “600 to 799 (D = 200)”, and the virtual node with the virtual node ID “Node3_2” The area in charge is “800 to 999 (D = 200)”.

<第1実施形態の動作>
次に、第1実施形態に係る分散システム10において、ノード15間の負荷の偏りを是正するリバランスを実行する際の動作(第1のリバランス動作)を、図8〜図12を参照して説明する。
<Operation of First Embodiment>
Next, in the distributed system 10 according to the first embodiment, the operation (first rebalancing operation) when executing the rebalancing to correct the load imbalance between the nodes 15 will be described with reference to FIGS. I will explain.

まず、リバランスを実行する前提条件について、図8を参照して説明する。図8に示すように、ハッシュ空間を3つのノードA〜Cの□示す仮想ノードA1〜A6,B1〜B5,C1〜C5で分割し、各仮想ノードA1〜A6,B1〜B5,C1〜C5の担当領域を決めて管理している。但し、A〜CはノードIDであり、A1〜A6,B1〜B5,C1〜C5は仮想ノードIDであるとする。   First, preconditions for executing the rebalance will be described with reference to FIG. As shown in FIG. 8, the hash space is divided into the virtual nodes A1 to A6, B1 to B5, and C1 to C5 indicated by the three nodes A to C, and the virtual nodes A1 to A6, B1 to B5, C1 to C5 are divided. The area of responsibility is determined and managed. However, A to C are node IDs, and A1 to A6, B1 to B5, and C1 to C5 are virtual node IDs.

例えば、仮想ノードB1が担当するハッシュ空間(担当領域)は、仮想ノードB1から時計回りに仮想ノードA1までの領域となり、この担当領域に存在するデータを担当仮想ノードB1が保持している。他の仮想ノードA1〜A6,B2〜B5,C1〜C5においても同様である。   For example, the hash space (responsible area) handled by the virtual node B1 is an area from the virtual node B1 to the virtual node A1 in the clockwise direction, and the responsible virtual node B1 holds data existing in this responsible area. The same applies to the other virtual nodes A1 to A6, B2 to B5, and C1 to C5.

また、各仮想ノードA1〜A6,B1〜B5,C1〜C5は、担当領域に負荷データを保持するが、本例では、○記号で示す負荷量が「1」の低負荷データ、◎記号で示す負荷量が「2」の中負荷データ、●記号で示す負荷量が「3」の高負荷データを、任意数保持するものとする。   In addition, each of the virtual nodes A1 to A6, B1 to B5, and C1 to C5 holds load data in the assigned area. In this example, low load data with a load amount “1” indicated by a symbol “で”, Assume that an arbitrary number of medium load data with a load amount of “2” and an arbitrary number of high load data with a load amount of “3” indicated by a symbol ● are retained.

例えば、仮想ノードB1は、高負荷データ●を3つ保持し、合計「9」の負荷データを保持している。仮想ノードA1であれば、高負荷データ●を2つ、中負荷データ◎を1つ保持し、合計「8」の負荷データを保持している。このように、他の仮想ノードA2〜A6,B2〜B5,C1〜C5においても、負荷データを保持している。   For example, the virtual node B1 holds three pieces of high load data ●, and holds a total of “9” load data. In the case of the virtual node A1, two pieces of high load data ● and one piece of medium load data ◎ are held, and a total of “8” load data is held. As described above, the load data is also held in the other virtual nodes A2 to A6, B2 to B5, and C1 to C5.

このように各仮想ノードA1〜A6,B1〜B5,C1〜C5が保持する負荷データの表を図9に示す。図9の負荷データ表は、最上段の行欄にノードA,B,Cを示し、最左列に上から順に仮想ノードIDの「1」〜「6」を示した。   FIG. 9 shows a table of load data held by the virtual nodes A1 to A6, B1 to B5, and C1 to C5. In the load data table of FIG. 9, nodes A, B, and C are shown in the top row column, and virtual node IDs “1” to “6” are shown in order from the top in the leftmost column.

但し、最上段行欄のノードAは、担当領域に保持する負荷量が(40)であり、偏差/標準偏差が「+1.39」で閾値「1.2」よりも大きく、高負荷であることを前提条件として示している。ノードBは、負荷量が(21)で、偏差/標準偏差が「−0.93」で閾値「1.2」よりも小さく、中負荷であることを前提条件として示している。ノードCは、負荷量が(25)であり、偏差/標準偏差が「−0.44」で閾値「1.2」よりも小さく、中負荷であることを前提条件として示している。   However, in node A in the top row column, the load amount held in the assigned area is (40), the deviation / standard deviation is “+1.39”, which is larger than the threshold value “1.2”, and is a high load. This is shown as a precondition. Node B indicates that the load amount is (21), the deviation / standard deviation is “−0.93”, which is smaller than the threshold value “1.2”, and is a medium load. The node C indicates that the load amount is (25), the deviation / standard deviation is “−0.44”, which is smaller than the threshold value “1.2”, and is a medium load as a precondition.

また、負荷データ表において、ノードAの「1」の欄には、仮想ノードA1の負荷データを示し、本例では、高負荷データ●の負荷量を示す「高(3)」が2つと、中負荷データ◎の負荷量を示す「中(2)」が1つ示してある。この様態は、他のノードA〜Cの仮想ノードA2〜A6,B1〜B5,C1〜C5の欄においても同様である。   In the load data table, the column “1” of the node A indicates the load data of the virtual node A1, and in this example, there are two “high (3)” indicating the load amount of the high load data ●. One “medium (2)” indicating the load amount of the medium load data ◎ is shown. This aspect is the same in the columns of the virtual nodes A2 to A6, B1 to B5, and C1 to C5 of the other nodes A to C.

また、図10は各ノードA〜Cが保持する負荷量の偏差を表す棒グラフである。この棒グラフに示す各ノードA〜Cの総負荷量は「86」、ノードA〜C当たりの平均負荷量は「28.6」、標準偏差は「8.17」、乖離閾値は「1.2」、仮想ノード数は「16」、仮想ノード当たりの平均負荷量は「5.375」、ノードAの偏差は「+11.4」、ノードBの偏差は「−7.6」、ノードCの偏差は「−3.6」である。   FIG. 10 is a bar graph showing the deviation of the load amount held by each of the nodes A to C. The total load amount of each node A to C shown in this bar graph is “86”, the average load amount per node A to C is “28.6”, the standard deviation is “8.17”, and the deviation threshold is “1.2”. ”, The number of virtual nodes is“ 16 ”, the average load amount per virtual node is“ 5.375 ”, the deviation of node A is“ +11.4 ”, the deviation of node B is“ −7.6 ”, The deviation is “−3.6”.

また、各ノードA〜Cの負荷量は、1つのノード(例えばA)の全ての仮想ノードの担当領域の負荷の和と見なすことができる。   Further, the load amount of each of the nodes A to C can be regarded as the sum of the loads in the area in charge of all the virtual nodes of one node (for example, A).

このような前提条件において、各ノードA〜Cのリバランスを実行する際の動作を、図11及び図12に示すフローチャートを参照して説明する。 Under such preconditions, the operation when rebalancing the nodes A to C will be described with reference to the flowcharts shown in FIGS.

まず、図11に示すステップS1において、所定のノード(A〜Cの何れか)の分散システム負荷リバランス部18eは、所定の周期で各ノードA〜Cから収集したノード負荷計測データ19dに基づき、各ノードA〜Cの負荷の平均値及び標準偏差、偏差並びに偏差/標準偏差の算出を行う。   First, in step S1 shown in FIG. 11, the distributed system load rebalancing unit 18e of a predetermined node (any one of A to C) is based on the node load measurement data 19d collected from each node A to C at a predetermined cycle. The average value, standard deviation, deviation, and deviation / standard deviation of the loads of the nodes A to C are calculated.

次に、ステップS2において、リバランス部18eは、上記ステップS1での算出結果を集計データ19e(図6参照)として記憶部19に記録する。   Next, in step S2, the rebalance unit 18e records the calculation result in step S1 in the storage unit 19 as total data 19e (see FIG. 6).

ステップS3において、リバランス部18eは、上記ステップS2で記録したデータ19eに基づき、上述した3つの条件(1)〜(3)の何れか1つを満たすか否かを判定する。この結果、満たさなければ(No)、リバランスの処理を終了する。   In step S3, the rebalance unit 18e determines whether any one of the three conditions (1) to (3) described above is satisfied based on the data 19e recorded in step S2. As a result, if not satisfied (No), the rebalancing process is terminated.

一方、その判定の結果、例えば、条件(3)のみを満たした(Yes)とする。この場合、ステップS4において、リバランス部18eは、各ノードA〜Cの偏差/標準偏差と乖離閾値「1.2」とを比較することにより、図10に示すように、ノードAが高負荷ノード「+11.4」、ノードB、Cが中負荷ノード「−7.6」,「−3.6」であることを検知する。これによって、リバランス部18eは、高負荷ノードAの担当領域中の移譲領域を他ノードB,Cに移譲することで負荷の偏りを是正するリバランスの実行準備を行う。   On the other hand, as a result of the determination, for example, it is assumed that only the condition (3) is satisfied (Yes). In this case, in step S4, the rebalancing unit 18e compares the deviation / standard deviation of each of the nodes A to C with the deviation threshold value “1.2”, so that the node A has a high load as shown in FIG. It is detected that the node “+11.4” and the nodes B and C are medium load nodes “−7.6” and “−3.6”. As a result, the rebalance unit 18e prepares for rebalancing to correct the load bias by transferring the transfer area in the area in charge of the high load node A to the other nodes B and C.

この際、ステップS5において、リバランス部18eは、移譲元ノードの担当領域中の移譲領域のサイズ(=負荷量)を求める。高負荷ノードAで解消すべき負荷の偏りは、ノードAの偏差全てとした場合、「+11.4」である。この偏差を解消するために必要な仮想ノードの担当領域サイズは、偏差「+11.4」÷仮想ノード当たりの平均負荷量「5.375」で求めることができる。即ち、11.4÷5.375=2.12であり、仮想ノードの2.12個分の担当領域中の移譲領域を移譲する必要がある。   At this time, in step S5, the rebalance unit 18e obtains the size (= load amount) of the transfer area in the assigned area of the transfer source node. The load bias to be eliminated at the high load node A is “+11.4” when all the deviations of the node A are assumed. The assigned size of the virtual node necessary to eliminate this deviation can be calculated by the deviation “+11.4” ÷ average load amount per virtual node “5.375”. That is, 11.4 ÷ 5.375 = 2.12, and it is necessary to transfer the transfer area in the area in charge of 2.12 virtual nodes.

次に、ステップS6において、リバランス部18eは、移譲元ノードAの担当領域中の移譲領域を移譲するための、移譲先ノードB,Cの担当領域の許容可能なサイズを求める。移譲先ノードは最も負荷の低いノードBから移譲を受け入れることとし、この移譲先ノードBの許容可能な担当領域サイズは、偏差「−7.6」÷仮想ノード当たりの平均負荷量「5.375」より、仮想ノードの1.41個分となる。また、移譲先ノードBの許容可能な担当領域サイズは、偏差「−3.6」÷仮想ノード当たりの平均負荷量「5.375」より、仮想ノードの0.67個分となる。   Next, in step S6, the rebalance unit 18e obtains an allowable size of the area in charge of the transfer destination nodes B and C for transferring the transfer area in the area in charge of the transfer source node A. The transfer destination node accepts transfer from the node B having the lowest load. The allowable area size of the transfer destination node B is the deviation “−7.6” ÷ the average load amount per virtual node “5.375. ”Is 1.41 virtual nodes. In addition, the allowable area size of the transfer destination node B is 0.67 virtual nodes because of the deviation “−3.6” ÷ the average load amount per virtual node “5.375”.

次に、図12に示すステップS7において、リバランス部18eは、移譲元ノードAの移譲対象の担当領域、即ち担当領域中の移譲領域を移譲可能な、移譲先ノードB,Cが有るか否かを判定する。この判定は、移譲先ノードB,Cの担当領域の許容可能なサイズが、移譲元ノードAの担当領域中の移譲領域を移譲可能であるか否かを検知して行う。この結果、移譲可能な移譲先ノードB,Cが無ければ(No)、リバランスの処理を終了する。   Next, in step S7 shown in FIG. 12, the rebalancing unit 18e determines whether there are transfer destination nodes B and C that can transfer the transfer target area of the transfer source node A, that is, transfer areas in the transfer area. Determine whether. This determination is performed by detecting whether or not the allowable size of the assigned area of the transfer destination nodes B and C can transfer the transfer area in the assigned area of the transfer source node A. As a result, if there are no transfer destination nodes B and C that can be transferred (No), the rebalancing process is terminated.

一方、移譲可能な移譲先ノードB,Cが有れば(Yes)、ステップS8において、リバランス部18eは、移譲元ノードAの担当領域中の移譲領域を、移譲先ノードBへ移譲する。この移譲では、例えば、1.41個分の担当領域の空きを有する移譲先ノードBに、移譲元ノードAから移譲対象が2.12個分の担当領域が移譲されるので、2.12−1.41=0.71個分の仮想ノードが残ることになる。この場合は、仮想ノード単位での移譲である。   On the other hand, if there are transfer destination nodes B and C that can be transferred (Yes), the rebalancing unit 18e transfers the transfer area in the area in charge of the transfer source node A to the transfer destination node B in step S8. In this transfer, for example, 2.12 assigned areas are transferred from the transfer source node A to the transfer destination node B having a vacant area of 1.41 assigned areas. 1.41 = 0.71 virtual nodes remain. In this case, the transfer is performed in units of virtual nodes.

これを、図8に示すハッシュ空間においてデータ単位で移譲する場合に置き換えて説明する。例えば、移譲元ノードAにおける仮想ノードA1の「8」の負荷データが、移譲先ノードBにおける負荷量「2」の低負荷の仮想ノードB3へ移譲される。この場合、移譲元ノードAは、11.4−8=3.4の負荷量が残ることになる。   This will be described by replacing it in the case where data is transferred in units of data in the hash space shown in FIG. For example, “8” load data of the virtual node A1 in the transfer source node A is transferred to the low load virtual node B3 of the load amount “2” in the transfer destination node B. In this case, the transfer source node A has a load amount of 11.4−8 = 3.4.

この後、図12に示すステップS9において、リバランス部18eは、移譲元ノードAの担当領域中の移譲領域の残りが有るか否かを判定する。この結果、残りが無ければ(No)、言い換えれば、移譲対象の担当領域が全て移譲完遂されていれば、リバランスの処理を終了する。   Thereafter, in step S9 shown in FIG. 12, the rebalance unit 18e determines whether or not there is a remaining transfer area in the assigned area of the transfer source node A. As a result, if there is no remaining (No), in other words, if all of the transfer target areas have been transferred, the rebalancing process ends.

一方、上記ステップS9の判定で残り(上記の0.71個分)が有れば(Yes)、ステップS10において、リバランス部18eは、移譲元ノードAの残りの移譲領域が移譲可能な、移譲先ノードが有るか否かを判定する。この結果、移譲先ノードが無ければ(No)、リバランスの処理を終了する。   On the other hand, if there is a remainder (for 0.71 above) in the determination of step S9 (Yes), the rebalancing unit 18e can transfer the remaining transfer area of the transfer source node A in step S10. It is determined whether there is a transfer destination node. As a result, if there is no transfer destination node (No), the rebalancing process is terminated.

上記ステップS10の判定の結果、残りの移譲領域が移譲可能な移譲先ノードが有れば(Yes)、ステップS11において、リバランス部18eは、移譲元ノードAの残り(0.71個分)の移譲領域を、上記ステップS9で存在が認められた移譲先ノードCへ移譲する。この移譲により、移譲元ノードAには、0.71−0.67=0.04個分が残る。   As a result of the determination in step S10, if there is a transfer destination node to which the remaining transfer area can be transferred (Yes), in step S11, the rebalance unit 18e determines the remaining transfer source node A (for 0.71). Are transferred to the transfer destination node C whose existence is recognized in step S9. With this transfer, 0.71-0.67 = 0.04 remains in the transfer source node A.

この後、上記ステップS9に戻って、リバランス部18eは、移譲元ノードAの担当領域中の移譲領域の残りが有るか否かを判定する。この場合、上記0.04個分の残りが有るので(Yes)、ステップS10において、リバランス部18eは、移譲元ノードAの残りの移譲領域が移譲可能な、移譲先ノードが有るか否かを判定する。この場合、ノードB,C以外に、移譲可能なノードは無いので(No)、リバランスの処理を終了する。ここで、リバランス処理は終了となるが、移譲元ノードAには仮想ノードの0.04個分の負荷しか残っていないので、ノードA〜C間の負荷の乖離が低減されたことになる。   Thereafter, returning to step S9, the rebalancing unit 18e determines whether there is a remaining transfer area in the assigned area of the transfer source node A. In this case, since there is a remaining portion of 0.04 (Yes), in step S10, the rebalancing unit 18e determines whether or not there is a transfer destination node to which the remaining transfer area of the transfer source node A can be transferred. Determine. In this case, since there are no transferable nodes other than the nodes B and C (No), the rebalancing process is terminated. Here, although the rebalancing process ends, since only 0.04 loads of virtual nodes remain in the transfer source node A, the load divergence between the nodes A to C is reduced. .

但し、以上の内容では、移譲元ノードAの移譲可能な負荷量を、平均負荷量からの差分(例えばノードAでは「+11.4」)としたが、任意に定めてもよい。例えば、移譲可能な負荷量を「+5」としてもよい。   In the above description, the transferable load amount of the transfer source node A is a difference from the average load amount (for example, “+11.4” in the node A), but may be arbitrarily determined. For example, the transferable load amount may be “+5”.

<第1実施形態の効果>
以上説明した第1実施形態の分散システム10は、通信サービスを利用する複数のクライアントマシン11にネットワーク12を介して接続されたロードバランサ13によりクライアント11からの情報が振り分けられる複数のノード15を有して構成されている。
<Effects of First Embodiment>
The distributed system 10 according to the first embodiment described above includes a plurality of nodes 15 to which information from the client 11 is distributed by a load balancer 13 connected to a plurality of client machines 11 using a communication service via a network 12. Configured.

第1実施形態の特徴は、ノード15にリバランス部18eを備えたことである。このリバランス部18eは、全ノード15の負荷量の標準偏差、及び偏差/標準偏差を求める。次に、リバランス部18eは、ノード15の負荷が予め定められた上限値を超えたことを示す条件(1)、全ノード15の負荷の標準偏差が予め定められた第1閾値を超えていることを示す条件(2)、ノード毎の偏差/標準偏差が予め定められた第2閾値を超えていることを示す条件(3)の何れか1つの条件を満たすか否かを判断する。満たすと判断された場合に、リバランス部18eは、ノード15が負荷を保持可能な担当領域のうち所定の負荷容量の移譲領域を、ノード15間の負荷量の乖離が抑制されるように、負荷の高い移譲元ノード(例えばノードA)から負荷の低い移譲先ノード(例えばノードB)へ移譲する処理を行うようにした。なお、リバランスの条件として、上記の他、条件(1)〜(3)の内、何れか複数を満たすことを条件としてもよい。   A feature of the first embodiment is that the node 15 includes a rebalance unit 18e. The rebalance unit 18e calculates the standard deviation and the deviation / standard deviation of the load amounts of all the nodes 15. Next, the rebalancing unit 18e includes a condition (1) indicating that the load on the node 15 exceeds a predetermined upper limit value, and the standard deviation of the loads on all the nodes 15 exceeds a predetermined first threshold value. It is determined whether or not any one of the condition (2) indicating presence or the condition (3) indicating that the deviation / standard deviation for each node exceeds a predetermined second threshold is satisfied. When it is determined that the load balance is satisfied, the rebalancing unit 18e allows the node 15 to hold a predetermined load capacity transfer area among the assigned areas in which the load can be held, so that the deviation of the load amount between the nodes 15 is suppressed. A process of transferring from a transfer source node having a high load (for example, node A) to a transfer destination node having a low load (for example, node B) is performed. In addition to the above, the rebalance condition may satisfy any one of the conditions (1) to (3).

これによって、上述した条件(1)〜(3)の何れか1つ又は何れか複数の条件を満たした場合に、ノードの担当領域中の所定の負荷容量の移譲領域を、負荷の高いノードから負荷の低いノードへ移譲するので、手間を掛けずに、ノード間の負荷量の乖離を低減することができる。従って、効率良くリバランスを行うことができる。   As a result, when any one or a plurality of the conditions (1) to (3) described above are satisfied, the transfer area having a predetermined load capacity in the assigned area of the node is transferred from the node having a high load. Since the transfer is performed to a node having a low load, it is possible to reduce the divergence of the load amount between the nodes without taking time and effort. Therefore, rebalancing can be performed efficiently.

また、リバランス部18eは、移譲元ノードAの担当領域の移譲領域を移譲可能な負荷容量を有する移譲先ノードBが有る場合に、当該担当領域を移譲先ノードBへ移譲するようにした。   In addition, when there is a transfer destination node B having a load capacity capable of transferring the transfer area of the assigned area of the transfer source node A, the rebalance unit 18e transfers the assigned area to the transfer destination node B.

これによって、その移譲領域を移譲可能な負荷容量を有する移譲先ノードBが有る場合にのみ、担当領域を移譲するので、リバランスを実行するか否かの判断を、手間を掛けずに行うことができる。   As a result, since the assigned area is transferred only when there is a transfer destination node B having a load capacity capable of transferring the transfer area, it is possible to determine whether or not to perform rebalancing without taking time and effort. Can do.

リバランス部18eは、移譲元ノードAの担当領域の移譲領域を移譲先ノードBへ移譲する際に、当該移譲領域が全て移譲完遂されるか、当該移譲領域が移譲可能な移譲先ノードbが存在しなくなるまで移譲を行うようにした。   When the rebalancing unit 18e transfers the transfer area of the transfer area of the transfer source node A to the transfer destination node B, the transfer area is completely transferred, or the transfer destination node b to which the transfer area can be transferred is The transfer was done until it no longer exists.

これによって、ノード15間の負荷量の乖離を無くす、又は低減することができる。   Thereby, it is possible to eliminate or reduce the deviation of the load amount between the nodes 15.

<第2実施形態の構成>
本発明の第2実施形態に係る分散システムについて説明する。第2実施形態の分散システムが、第1実施形態の分散システム10と異なる点は、分散システム負荷リバランス部18eが行うリバランス処理の違いにある。
<Configuration of Second Embodiment>
A distributed system according to a second embodiment of the present invention will be described. The difference between the distributed system of the second embodiment and the distributed system 10 of the first embodiment is the difference in the rebalancing process performed by the distributed system load rebalancing unit 18e.

第2実施形態の特徴は、リバランス部18eが次の処理を行うようにした。即ち、分散システム10の各ノード15のリソースの総量(負荷の総量)が、使用リソース量(使用負荷量)に対して十分であるにも関わらず、使用リソース量に偏りが生じているとする。この際に、リバランス部18eが、第1実施形態のように担当領域中の移譲領域を移譲する対象ノードや、該当ノード15の適切な移譲サイズを指定することなく、各ノード15が持つ仮想ノード数を、ノード15毎の現状の負荷の状況に応じて、ノード15毎に必要な負荷量とする仮想ノード数に再設定するリバランスを行うようにした。
この際、リバランス部18eは、各ノード15の仮想ノード数を、負荷の状況に合わせて下式(1)により算出し、この算出された各ノード15の仮想ノード数に基づきリバランスする。
A feature of the second embodiment is that the rebalance unit 18e performs the following processing. That is, even though the total amount of resources (total load) of each node 15 of the distributed system 10 is sufficient with respect to the used resource amount (used load amount), the used resource amount is biased. . At this time, the rebalancing unit 18e does not specify the target node to transfer the transfer area in the assigned area or the appropriate transfer size of the corresponding node 15 as in the first embodiment, and the virtual that each node 15 has Rebalancing is performed so that the number of nodes is reset to the number of virtual nodes that is required for each node 15 according to the current load status for each node 15.
At this time, the rebalancing unit 18e calculates the number of virtual nodes of each node 15 according to the following equation (1) according to the load condition, and rebalances based on the calculated number of virtual nodes of each node 15.

このリバランスにおいては、算出された仮想ノード数に基づき、各仮想ノードの振分ID空間の先頭から仮想ノードIDと振分ID空間の再マッピングを行う。再マッピングは、担当領域の総延長(総サイズ)を算出した仮想ノード数で除し、1仮想ノード当たりの振分ID空間サイズを求め、振分ID空間の先頭から新たな振分ID空間サイズ毎に、仮想ノードID毎の仮想ノード数を再設定していく。   In this rebalancing, the virtual node ID and the distribution ID space are remapped from the top of the distribution ID space of each virtual node based on the calculated number of virtual nodes. In the remapping, the total extension (total size) of the assigned area is divided by the calculated number of virtual nodes to obtain a distribution ID space size per virtual node, and a new distribution ID space size from the top of the distribution ID space. Each time, the number of virtual nodes for each virtual node ID is reset.

リバランス後の仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/該当ノードの負荷の実測値) …(式1)
但し、式(1)中の「該当ノードの負荷の実測値」は、現状の仮想ノードを有するノードの負荷の実測値である。また、式(1)はリバランス部18eの図示せぬ記憶部に保持されるものとする。
Number of virtual nodes after rebalancing = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of relevant nodes) (Equation 1)
However, the “actually measured load value of the corresponding node” in the equation (1) is an actually measured value of the load of the node having the current virtual node. In addition, Expression (1) is held in a storage unit (not shown) of the rebalance unit 18e.

第2実施形態のリバランス処理について具体的に説明する。
リバランス部18eは、まず、自ノード15が持つ仮想ノード数を再設定する。この再設定の処理を図13(a)及び(b)を参照して説明する。但し、図13(a)及び(b)に示す仮想ノードID「Node1−1」,「Node1−2」は、ノードID「Node1」のノード1(図示せず)に従属する仮想ノード1−1,1−2(図示せず)に対応するものとする。他の仮想ノードIDにおいても同様であり、例えば、仮想ノードID「Node5−1」,「Node5−2」,「Node5−3」は、ノードID「Node5」のノード5(図示せず)に従属する仮想ノード5−1,5−2,5−3(図示せず)に対応するものとする。
The rebalancing process of the second embodiment will be specifically described.
First, the rebalancing unit 18e resets the number of virtual nodes that the node 15 has. This resetting process will be described with reference to FIGS. 13 (a) and 13 (b). However, the virtual node IDs “Node 1-1” and “Node 1-2” illustrated in FIGS. 13A and 13B are virtual nodes 1-1 subordinate to the node 1 (not shown) having the node ID “Node 1”. , 1-2 (not shown). The same applies to other virtual node IDs. For example, the virtual node IDs “Node5-1”, “Node5-2”, and “Node5-3” are subordinate to the node 5 (not shown) of the node ID “Node5”. It corresponds to virtual nodes 5-1, 5-2, 5-3 (not shown).

図13(a)に示す振分ID表19bには、仮想ノードID「Node1−1」に、担当する振分ID空間の担当領域として「0〜199(D=200)」のデータサイズが対応付けられ、「Node1−2」に、「200〜399(D=200)」のデータサイズが対応付けられている。他の仮想ノードIDにおいても図示する通りである。   In the distribution ID table 19b shown in FIG. 13A, the virtual node ID “Node1-1” corresponds to the data size “0 to 199 (D = 200)” as the assigned area of the assigned ID space. A data size of “200 to 399 (D = 200)” is associated with “Node 1-2”. The same applies to other virtual node IDs.

更に、各ノード1〜5の仮想ノード数は、ノード1の仮想ノード数が2個、ノード2の仮想ノード数が1個、ノード3の仮想ノード数が1個、ノード4の仮想ノード数が2個、ノード5の仮想ノード数が2個である。   Further, the number of virtual nodes of each of the nodes 1 to 5 is that the number of virtual nodes of node 1 is 2, the number of virtual nodes of node 2 is 1, the number of virtual nodes of node 3 is 1, and the number of virtual nodes of node 4 is Two and the number of virtual nodes of the node 5 is two.

このような条件において、リバランス部18eは、自ノード1〜5が持つ仮想ノード数を現状の負荷の状況に応じて、必要な負荷量に再設定する。以降、この再設定の処理について説明する。   Under such conditions, the rebalancing unit 18e resets the number of virtual nodes of the own nodes 1 to 5 to a necessary load amount according to the current load status. Hereinafter, the resetting process will be described.

まず、リバランス部18eは、各ノード1〜5の仮想ノード数を変更する。例えば、各ノード1〜5の現状の仮想ノード数は、図13(a)に示すように、ノード1が2個、ノード2が1個、ノード3が1個、ノード4が2個、ノード5が2個の合計8個である。これを、各ノード1〜5の負荷の現状に応じて、図13(b)に示すように、ノード1が1個、ノード2が2個、ノード3が2個、ノード4が2個、ノード5が3個の合計10個に変更する。   First, the rebalance unit 18e changes the number of virtual nodes of each of the nodes 1-5. For example, as shown in FIG. 13A, the current number of virtual nodes for each of the nodes 1 to 5 is two for node 1, one for node 2, one for node 3, two for node 4, 5 is a total of 8 pieces. As shown in FIG. 13B, this corresponds to one node 1, two nodes 2, two nodes 3, two nodes 4, depending on the current load of each node 1 to 5. Node 5 changes to a total of 10 nodes.

この仮想ノード数の変更を行う場合に上記式(1)を用いる。仮想ノード数の変更は、例えば図13(a)に示す各ノード1〜5の個数「2個、1個、1個、2個、2個」=8個を、図13(b)に示す各ノード1〜5の個数「1個、2個、2個、2個、3個」=10個に変更することである。   The above formula (1) is used when changing the number of virtual nodes. For example, the number of virtual nodes is changed as shown in FIG. 13B, for example, when the number of nodes 1 to 5 shown in FIG. 13A is “2, 1, 1, 2, 2” = 8. The number of nodes 1 to 5 is changed to “1, 2, 2, 2, 3” = 10.

図13(a)の現状では、全ノード1〜5のハッシュ空間サイズ(担当領域のサイズ)は「0〜1599」の1600であり、仮想ノード数は8個なので、仮想ノード当たりの担当領域のサイズDは、1600÷8=200である。このD=200の担当領域のサイズの内、該当ノード1の負荷の実測値は、例えば「80」や「150」のようになる。このような全ノード1〜5の実測値から、全ノード1〜5の負荷の平均値が求められるので、その平均値及び実測値を上記式(1)に代入する。   In the current state of FIG. 13A, the hash space size (size of the assigned area) of all the nodes 1 to 5 is 1600 of “0 to 1599” and the number of virtual nodes is 8, so the assigned area per virtual node is The size D is 1600 ÷ 8 = 200. Of the size of the assigned area of D = 200, the actual measured value of the load of the corresponding node 1 is, for example, “80” or “150”. Since the average value of the loads of all the nodes 1 to 5 is obtained from the actually measured values of all the nodes 1 to 5, the average value and the actually measured value are substituted into the above formula (1).

例えば、仮想ノードID=「Node1−1」の振分ID空間の担当領域(サイズD=200)では負荷の実測値が「140」、「Node1−2」では負荷の実測値が「160」であるとすると、ノード1の負荷の実測値は「300」である。この際、全ノード1〜5の負荷の平均値が「150」とする。この場合、ノード1のリバランス後の仮想ノード数は、2×(150/300)=1となる。同様に、他のノード2〜5においてもリバランス後の仮想ノード数を求め、各ノード1〜5の仮想ノード数を、その求められた仮想ノード数に変更する。但し、式(1)に当て嵌めた計算結果が、1.6等の小数点を伴う場合、切り上げ、切り捨て、四捨五入とすることを予め決めておく。   For example, in the assigned area (size D = 200) of the distribution ID space of virtual node ID = “Node 1-1”, the actual load value is “140”, and in “Node 1-2”, the actual load value is “160”. If there is, the measured value of the load of the node 1 is “300”. At this time, the average value of the loads of all the nodes 1 to 5 is “150”. In this case, the number of virtual nodes after the rebalancing of node 1 is 2 × (150/300) = 1. Similarly, the number of virtual nodes after rebalancing is obtained in the other nodes 2 to 5, and the number of virtual nodes of each node 1 to 5 is changed to the obtained number of virtual nodes. However, when the calculation result fitted to the formula (1) includes a decimal point such as 1.6, it is determined in advance that rounding up, rounding down, and rounding off are performed.

次に、リバランス部18eは、仮想ノード当たりのハッシュ空間サイズを変更する。図13(a)に示す現状では、上述したように、仮想ノード当たりのハッシュ空間サイズDは、1600÷8=200である。   Next, the rebalance unit 18e changes the hash space size per virtual node. In the current state shown in FIG. 13A, as described above, the hash space size D per virtual node is 1600/8 = 200.

これを、上述した変更後の仮想ノード数=10個を用いると、仮想ノード当たりのハッシュ空間サイズは、1600÷10=160となる。このハッシュ空間サイズを用いて、図13(b)に示すように、1個当たりの仮想ノードのハッシュ空間サイズDを「160」とする。   If the number of virtual nodes after change = 10 is used, the hash space size per virtual node is 1600/10 = 160. Using this hash space size, as shown in FIG. 13B, the hash space size D of each virtual node is set to “160”.

次に、リバランス部18eは、その変更後のハッシュ空間サイズD=「160」の仮想ノードを、前述で変更した後の各ノード1〜5の仮想ノード数だけ割り振って行く。即ち、ノード1では変更後の仮想ノードが1個なので、図13(b)に示すように、ノード1において、変更後のハッシュ空間サイズD=「160」の仮想ノード{仮想ノードID「Node1−1」}が1個割り振られる。   Next, the rebalance unit 18e allocates the virtual nodes having the changed hash space size D = “160” by the number of virtual nodes of the respective nodes 1 to 5 after the above change. That is, since there is one changed virtual node in the node 1, as shown in FIG. 13B, in the node 1, the changed virtual node of the hash space size D = “160” {virtual node ID “Node1- 1 "} is allocated.

同様に、ノード2では変更後の仮想ノードが2個なので、サイズD=「160」の仮想ノード{仮想ノードID「Node2−1,Node2−2」}が2個割り振られる。以降、同様に図示するように、ノード3〜5まで変更後の仮想ノード2個〜3個が割り振られる。   Similarly, since there are two virtual nodes after the change in node 2, two virtual nodes {virtual node IDs “Node2-1, Node2-2”} of size D = “160” are allocated. Thereafter, as shown in the figure, two to three virtual nodes after the change are allocated to the nodes 3 to 5.

<第2実施形態の効果>
以上説明した第2実施形態の分散システムの特徴は、ノード15のリバランス部18eが、上述した式(1)を保持する。更に、リバランス部18eは、ノード15毎の負荷の状況に応じた、現状の仮想ノード数、全ノード15の負荷の平均値、当該現状の仮想ノードを有するノード15の負荷の実測値を求め、これら求めた数値を式(1)に当て嵌めることにより、ノード15毎に持つ仮想ノード数を算出する。そして、リバランス部18eは、現状の仮想ノードの仮想ノード当たりの負荷容量を変更し、この変更後の負荷容量を有する仮想ノードが、算出された仮想ノード数だけ存在するように、該当ノード15に割り当てるリバランスを行うようにした。
<Effects of Second Embodiment>
The feature of the distributed system of the second embodiment described above is that the rebalancing unit 18e of the node 15 holds the above-described formula (1). Further, the rebalance unit 18e obtains the current number of virtual nodes, the average value of the loads of all the nodes 15, and the actual measured value of the load of the node 15 having the current virtual node according to the load status of each node 15. By applying these calculated numerical values to the equation (1), the number of virtual nodes for each node 15 is calculated. Then, the rebalancing unit 18e changes the load capacity per virtual node of the current virtual node, and the corresponding node 15 so that there are as many virtual nodes having the changed load capacity as the calculated number of virtual nodes. Rebalance to be performed.

これによって、リバランス部18eが、担当領域中の移譲領域を移譲する対象ノード15や、該当ノード15の適切な移譲サイズを指定することなく、各ノード15が持つ仮想ノード数を、ノード15毎の現状の負荷の状況に応じて、必要な負荷量とするための仮想ノード数とすることができる。つまり、自ノード15の必要負荷量に適合したリバランスを行うことができる。   As a result, the rebalancing unit 18e determines the number of virtual nodes that each node 15 has for each node 15 without specifying the target node 15 to which the transfer area in the assigned area is transferred or the appropriate transfer size of the corresponding node 15. Depending on the current load status, the number of virtual nodes for obtaining the required load amount can be obtained. That is, rebalancing suitable for the required load amount of the node 15 can be performed.

その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。   In addition, about a concrete structure, it can change suitably in the range which does not deviate from the main point of this invention.

10 分散システム
11 クライアントマシン
12 ネットワーク
13 ロードバランサ
14 クラスタ
15 ノード
18 制御部
18a ノード識別子管理部
18b 振分部
18c 信号処理部
18d ノード負荷計測部
18e 分散システム負荷リバランス部
19 記憶部
19a ノード識別子管理表
19b 振分ID表
19c データ
19d ノード負荷計測データ
19e 分散システム負荷集計データ
19f 呼制御状態フラグ
DESCRIPTION OF SYMBOLS 10 Distributed system 11 Client machine 12 Network 13 Load balancer 14 Cluster 15 Node 18 Control part 18a Node identifier management part 18b Distribution part 18c Signal processing part 18d Node load measurement part 18e Distributed system load rebalancing part 19 Storage part 19a Node identifier management Table 19b Distribution ID table 19c Data 19d Node load measurement data 19e Distributed system load summary data 19f Call control status flag

Claims (3)

通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する分散システムであって、
前記ノードは、記憶部に以下の数式(1)を記憶しており、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出し、
前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行うリバランス部
を備えることを特徴とする分散システム。
A distributed system having a plurality of nodes to which information from a plurality of client machines using a communication service is distributed via a network,
The node stores the following formula (1) in the storage unit,
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ) To calculate the number of virtual nodes for each node,
The size of the assigned area per virtual node of the current virtual node is changed, and a virtual node having the size of the assigned area after the change exists in the corresponding node so that there are as many virtual nodes as the calculated number of virtual nodes. A distributed system comprising a rebalancing unit for performing rebalancing.
通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する負荷分散方法であって、
前記ノードは、
記憶部に以下の数式(1)を記憶しており、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出するステップと、
前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行うステップと
を実行することを特徴とする負荷分散方法。
A load balancing method having a plurality of nodes to which information from a plurality of client machines using a communication service is distributed via a network,
The node is
The following mathematical formula (1) is stored in the storage unit,
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ) To calculate the number of virtual nodes for each node,
The size of the assigned area per virtual node of the current virtual node is changed, and a virtual node having the size of the assigned area after the change exists in the corresponding node so that there are as many virtual nodes as the calculated number of virtual nodes. And a step of performing rebalancing to allocate a load balancing method.
通信サービスを利用する複数のクライアントマシンからの情報がネットワークを介して振り分けられる複数のノードを有する分散システムの当該ノードとして記憶部に以下の数式(1)を記憶しているコンピュータを、
仮想ノード数=現状の仮想ノード数×(全ノードの負荷の平均値/現状の仮想ノードを有するノードの負荷の実測値)…数式(1)
前記ノード毎の負荷の状況に応じて、現状の仮想ノード数、全ノードの負荷の平均値、当該現状の仮想ノードを有するノードの負荷の実測値を求め、これら求めた数値を前記数式(1)に当て嵌めることにより、前記ノード毎に持つ仮想ノード数を算出する手段、
前記現状の仮想ノードの仮想ノード当たりの担当領域のサイズを変更し、この変更後の担当領域のサイズを有する仮想ノードが、前記算出された仮想ノード数だけ存在するように、該当ノードに仮想ノードを割り当てるリバランスを行う手段
として機能させるためのプログラム。
A computer storing the following formula (1) in a storage unit as a node of a distributed system having a plurality of nodes to which information from a plurality of client machines using a communication service is distributed via a network,
Number of virtual nodes = current number of virtual nodes × (average value of loads of all nodes / actual value of loads of nodes having current virtual nodes) (1)
In accordance with the load status of each node, the current number of virtual nodes, the average value of the loads of all the nodes, and the actually measured value of the load of the node having the current virtual node are obtained, and these obtained numerical values are represented by the formula (1). ) To calculate the number of virtual nodes for each of the nodes,
The size of the assigned area per virtual node of the current virtual node is changed, and a virtual node having the size of the assigned area after the change exists in the corresponding node so that there are as many virtual nodes as the calculated number of virtual nodes. A program to make it function as a means of rebalancing.
JP2015031180A 2015-02-20 2015-02-20 Distributed system, load balancing method and program Active JP6325995B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015031180A JP6325995B2 (en) 2015-02-20 2015-02-20 Distributed system, load balancing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015031180A JP6325995B2 (en) 2015-02-20 2015-02-20 Distributed system, load balancing method and program

Publications (2)

Publication Number Publication Date
JP2016153929A JP2016153929A (en) 2016-08-25
JP6325995B2 true JP6325995B2 (en) 2018-05-16

Family

ID=56761208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015031180A Active JP6325995B2 (en) 2015-02-20 2015-02-20 Distributed system, load balancing method and program

Country Status (1)

Country Link
JP (1) JP6325995B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7014130B2 (en) * 2018-11-02 2022-02-01 日本電信電話株式会社 Load leveling device, load leveling method and load leveling program
CN115695434B (en) * 2022-09-28 2024-08-27 聚好看科技股份有限公司 Load balancing method and device and electronic equipment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283330A (en) * 1997-04-04 1998-10-23 Hitachi Ltd Load decentralization control method for parallel computer
JP2002351853A (en) * 2001-05-28 2002-12-06 Fujitsu Ltd Load and balance method
US7979460B2 (en) * 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US7716238B2 (en) * 2006-02-15 2010-05-11 Sony Computer Entertainment America Inc. Systems and methods for server management
JP2011150472A (en) * 2010-01-20 2011-08-04 Nec Software Chubu Ltd Web service system, server selection reference determination device, server selection reference determination method and program
JP5600573B2 (en) * 2010-12-07 2014-10-01 日本放送協会 Load balancing apparatus and program
JP6011786B2 (en) * 2012-08-06 2016-10-19 日本電気株式会社 Distributed storage system, distributed storage data allocation control method, and distributed storage data allocation control program
JP6059558B2 (en) * 2013-02-26 2017-01-11 日本電信電話株式会社 Load balancing judgment system
JP2014186364A (en) * 2013-03-21 2014-10-02 Kddi Corp Dispersion system

Also Published As

Publication number Publication date
JP2016153929A (en) 2016-08-25

Similar Documents

Publication Publication Date Title
US20230379381A1 (en) Load balanced network file accesses
US8850002B1 (en) One-to many stateless load balancing
US10616370B2 (en) Adjusting cloud-based execution environment by neural network
CN109218355A (en) Load equalizing engine, client, distributed computing system and load-balancing method
US8713125B2 (en) Method and system for scaling usage of a social based application on an online social network
JP6428012B2 (en) Distributed processing program, distributed processing management apparatus, and distributed processing method
KR20170029263A (en) Apparatus and method for load balancing
CN105516369A (en) Video cloud platform load balancing method and video cloud platform load balancing dispatcher
JPWO2018220708A1 (en) Resource allocation system, management device, method and program
JP6272190B2 (en) Computer system, computer, load balancing method and program thereof
JP6116102B2 (en) Cluster system and load balancing method
JP2014186364A (en) Dispersion system
CN102932271A (en) Method and device for realizing load balancing
JP6325995B2 (en) Distributed system, load balancing method and program
JP2010003273A (en) Sip message distribution method and sip message distribution device
CN108200185B (en) Method and device for realizing load balance
CN103825963B (en) Virtual Service moving method
CN106878356B (en) Scheduling method and computing node
JP6383336B2 (en) Server management apparatus and server management method
JP2017215933A (en) Information processing device, and load distribution control method
Oral et al. Supporting performance isolation in software as a service systems with rich clients
JP2017146848A (en) Re-balancing device, re-balancing method, and program
JP2017041185A (en) Management server device and management program
JP6259408B2 (en) Distributed processing system
JP6433926B2 (en) Rebalancing device, rebalancing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180413

R150 Certificate of patent or registration of utility model

Ref document number: 6325995

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150