Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6566822B2 - Load balancing method in cloud storage with range search - Google Patents
[go: Go Back, main page]

JP6566822B2 - Load balancing method in cloud storage with range search - Google Patents

Load balancing method in cloud storage with range search Download PDF

Info

Publication number
JP6566822B2
JP6566822B2 JP2015194688A JP2015194688A JP6566822B2 JP 6566822 B2 JP6566822 B2 JP 6566822B2 JP 2015194688 A JP2015194688 A JP 2015194688A JP 2015194688 A JP2015194688 A JP 2015194688A JP 6566822 B2 JP6566822 B2 JP 6566822B2
Authority
JP
Japan
Prior art keywords
node
virtual
nodes
data
empty
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
JP2015194688A
Other languages
Japanese (ja)
Other versions
JP2017068666A (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.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
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 National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2015194688A priority Critical patent/JP6566822B2/en
Publication of JP2017068666A publication Critical patent/JP2017068666A/en
Application granted granted Critical
Publication of JP6566822B2 publication Critical patent/JP6566822B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、クラウド上に分散して蓄積されたキーバリュー(key-value)型データについて、ストレージ資源の利用率を高めることができる、範囲検索可能なクラウドストレージにおける負荷分散方法に関する。   The present invention relates to a load distribution method in a range-searchable cloud storage that can increase the utilization rate of storage resources for key-value type data distributed and accumulated on the cloud.

近年、ビッグデータ処理向けのクラウドストレージが急速に発展している。中でも、特にソーシャルネットワークとIоTなどにおける時空間データを効率的に処理するための範囲検索可能なクラウドストレージが注目されつつある。しかし、範囲検索を可能にするために、データのローカリティ(局所参照性)を保つことが必要であり、物理ノード間の低コストかつ高効率の負荷分散はきわめて困難な課題である。   In recent years, cloud storage for big data processing has developed rapidly. In particular, cloud storage capable of range search for efficiently processing spatio-temporal data in social networks and Internet is attracting attention. However, in order to enable range search, it is necessary to maintain data locality (local reference), and low-cost and high-efficiency load distribution between physical nodes is a very difficult task.

従来技術では、隣接ノードのリモートマイグレーションといった手法が多く用いられている。隣接ノードのリモートマイグレーションとは、負荷が軽いノードが自分の負荷を、担当範囲が隣接するノードに移動し、自分が空きノードになった後、元の位置を離れ、リモートの負荷が重いノードの隣にマイグレーションし、その重いノードの負荷を担当するという仕組みである。
従来技術の問題点としては、オーバヘッドが非常に大きいことと処理速度が遅いことである。
In the prior art, a technique such as remote migration of adjacent nodes is often used. Remote migration of an adjacent node means that a lightly loaded node moves its own load to a node that is in charge of the neighboring node, and after it becomes an empty node, leaves its original position and the remote node is heavily loaded. It is a mechanism that migrates to the next and takes charge of the heavy node load.
The problem with the prior art is that the overhead is very large and the processing speed is slow.

この従来技術の一例を図5に示す。図5は、AからFの各ノードの負荷とその担当範囲とを示す。ノード間で作業負荷を再バランスさせる基本的なメカニズムとして、従来の大概のものでは上記リモートマイグレーション用のリオーダー(Reorder)操作を用いている。これは、仮に第2ノードが過少負荷であり、他の過剰負荷ノードを救済するものとする。この場合は、まず、第2ノードのすべての作業負荷を隣の方へ移動する。その第2ノードは空ノードになるので、一旦システムから離れ、また過剰負荷ノードの隣へ再加入する。その過剰負荷ノードはその負荷を隣にできた空ノードに移す。この場合の移動コストは、図5のαとβを加えたものである。この操作によっては、移動されるデータ量が多いが、バランシング効果は限られている。   An example of this prior art is shown in FIG. FIG. 5 shows the loads on the nodes A to F and their assigned ranges. As a basic mechanism for rebalancing the workload among nodes, most of the conventional mechanisms use the reorder operation for remote migration. It is assumed that the second node is underloaded and the other overloaded nodes are relieved. In this case, first, all the workloads of the second node are moved to the adjacent direction. Since the second node becomes an empty node, it leaves the system and rejoins next to the overloaded node. The overloaded node moves its load to the next empty node. The movement cost in this case is obtained by adding α and β in FIG. Depending on this operation, the amount of data to be moved is large, but the balancing effect is limited.

本発明では、検索アルゴリズムにコード#(CHORD#)アルゴリズムを用いて仮想ノードの管理を行うが、このアルゴリズムの、よく知られたコード(CHORD)アルゴリズムと比べての類似点と相異点は、概略下記の通りである。
つまりコードでは複数のノードが論理的な配置でリング状に並べられ、各ノードに検索項目となるキーがハッシュ関数によって分散されて関連付けられる。検索は、上記キーによるキー空間で行う。このため、各ノードはキーとアドレスに関するフィンガーテーブルを備え、それには、上記リングを半周、4分の1周と順次半分の行程とするノードのアドレスが書かれている。
これに対してコード#では、複数のノードが論理的な配置でリング状に並べられる点ではそれに類似しているが、一次元に並べられるデータに関する項目が、各ノードが所定の範囲を受け持ち、かつ前記データの順で並ぶ構成である。検索は、上記ノードによるノード空間で行う。各ノードは上記と同様なフィンガーテーブルを備えるがノードとアドレスに関するものである。
In the present invention, a virtual node is managed by using a code # (CHORD #) algorithm as a search algorithm. The similarities and differences of this algorithm compared to the well-known code (CHORD) algorithm are as follows. The outline is as follows.
That is, in the code, a plurality of nodes are arranged in a ring with a logical arrangement, and a key as a search item is distributed and associated with each node by a hash function. The search is performed in the key space by the key. For this reason, each node is provided with a finger table for keys and addresses, in which the addresses of nodes that make the above-mentioned ring half a circle and a quarter of a cycle are sequentially written.
On the other hand, code # is similar in that a plurality of nodes are arranged in a ring with a logical arrangement, but items relating to data arranged in a one-dimensional manner have each node responsible for a predetermined range, And it is the structure arranged in order of the said data. The search is performed in the node space of the above nodes. Each node has a finger table similar to the above, but with respect to nodes and addresses.

上記の様にコードの場合はハッシュ関数を用いるので、ノード毎のキー数の分布は平均化される。しかし、ノード位置とキー順の関連がばらばらになっており、範囲検索は容易ではない。これに対してコード#の場合はハッシュ関数を用いないので、ノード位置とキー順の関連を簡単な対応づけで済ませることができる。しかし、ノード毎のキー数の分布には偏りが生じる。   As described above, since the hash function is used in the case of the code, the distribution of the number of keys for each node is averaged. However, the relationship between the node position and the key order is dispersed, and range search is not easy. On the other hand, since the hash function is not used in the case of code #, the association between the node position and the key order can be simply associated. However, there is a bias in the distribution of the number of keys for each node.

H. C. Hsiao, H. Y. Chung, H. Shen, and Y. C. Chao, “Load Rebalancingfor Distributed File Systems in Clouds,” IEEE Transactions on Paralleland Distributed Systems, vol. 24, no. 5, pp. 951-962, May. 2013.H. C. Hsiao, H. Y. Chung, H. Shen, and Y. C. Chao, “Load Rebalancing for Distributed File Systems in Clouds,” IEEE Transactions on Paralleland Distributed Systems, vol. 24, no. 5, pp. 951-962, May. 2013.

本発明の目的は、クラウド上に分散して蓄積されたキーバリュー(key-value)型データについて、ストレージ資源の利用率を高めることができるようにすることである。   An object of the present invention is to make it possible to increase the utilization rate of storage resources for key-value type data distributed and accumulated on the cloud.

このため、本発明では、範囲検索可能なクラウドストレージにおいて範囲検索を行うが、そのクラウドストレージ上の仮想ノードの基盤となる物理ノードに割り当てられたデータが量的に偏在することが無い様にするために、負荷分散を行う。   For this reason, in the present invention, range search is performed in a cloud storage capable of range search, but the data allocated to the physical node that is the basis of the virtual node on the cloud storage is not unevenly distributed quantitatively. Therefore, load balancing is performed.

まず、本発明の、範囲検索可能なクラウドストレージにおける負荷分散方法で用いるクラウドストレージは、複数のストレージと該ストレージと組み合わされたプロセッサとメモリを含めて構成された物理ノードの複数が接続されたネットワーク上に構成されるもので、
上記範囲検索可能なクラウドストレージを、上記ストレージによる共通の容量値の仮想ストレージと該仮想ストレージが係属するプロセッサによる仮想プロセッサとが構成要素となる仮想ノードの複数が接続されたオーバレイネットワーク上に形成し、
データ蓄積においては、上記範囲検索可能なクラウドストレージにキーバリュー(key-value)型データを蓄積し、
検索においては、上記仮想ノードを所定のキーバリューについて検索する。
さらに、物理ノードの負荷分散のために、各仮想ノードのデータ蓄積量に、下限と該下限の所定倍の上限とを設けている。
このような範囲検索可能なクラウドストレージで各仮想ノードのデータ蓄積量の調整を行って物理ノードの負荷分散を図るには以下の様にする。
(1)第1仮想ノードに新たなデータを追加しようとする場合で、追加によるデータ量が上記上限以上になる見込みの場合は、前記追加によるデータ量について、上記検索可能なクラウドストレージから選択した空仮想ノードを第2仮想ノードとして、第1仮想ノードから第2仮想ノードに上記上限の半分の分量のデータを振り分けると共に、この振り分けによる新たな順に上記オーバレイネットワーク上の仮想ノードの並びを更新し、
(2)上記キーバリュー型データの並びで隣接する第1仮想ノードのデータ量と第2仮想ノードのデータ量との和が上記上限未満の場合に、第1仮想ノードあるいは第2仮想ノードの一方に両方のデータを寄せ集めて他方の仮想ノードを空仮想ノードとすると共に、上記オーバレイネットワーク上の仮想ノードの並びを更新し、
(3)上記キーバリュー型データの並びで隣接する第1仮想ノードの仮想ストレージと第2仮想ノードの各々のデータ量の和が、上記上限以上で、且つ、その一方の仮想ノードのデータ量が上記下限未満の場合に、その他方の仮想ノードから該一方の仮想ノードへデータを移動して、それら双方のデータ量が上記下限を超える様に再配分し、上記オーバレイネットワーク上の仮想ノードの並びを更新する。
First, the cloud storage used in the load distribution method in the range searchable cloud storage according to the present invention is a network in which a plurality of physical nodes configured to include a plurality of storages, a processor and a memory combined with the storages are connected. Consists of above,
The range searchable cloud storage is formed on an overlay network to which a plurality of virtual nodes, each of which is composed of a virtual storage having a common capacity value by the storage and a virtual processor by a processor to which the virtual storage belongs, are connected. ,
In data storage, key-value type data is stored in cloud storage that can be searched in the above range,
In the search, the virtual node is searched for a predetermined key value.
Further, for load distribution of the physical nodes, a lower limit and an upper limit that is a predetermined multiple of the lower limit are provided for the data storage amount of each virtual node.
In order to distribute the load of physical nodes by adjusting the data storage amount of each virtual node in such a range searchable cloud storage, the following is performed.
(1) If new data is to be added to the first virtual node and the amount of added data is expected to exceed the upper limit, the added data amount is selected from the searchable cloud storage. With the empty virtual node as the second virtual node, the half of the upper limit data is distributed from the first virtual node to the second virtual node, and the arrangement of the virtual nodes on the overlay network is updated in a new order by this distribution. ,
(2) When the sum of the data amount of the first virtual node and the data amount of the second virtual node adjacent to each other in the arrangement of the key-value data is less than the upper limit, one of the first virtual node and the second virtual node And the other virtual node is made an empty virtual node, and the arrangement of the virtual nodes on the overlay network is updated.
(3) The sum of the data amount of each of the virtual storage and the second virtual node adjacent to each other in the arrangement of the key-value type data is not less than the above upper limit, and the data amount of one of the virtual nodes is If it is less than the lower limit, move the data from the other virtual node to the one virtual node, redistribute the data so that both of them exceed the lower limit, and arrange the virtual nodes on the overlay network. Update.

また、本発明は、上記クラウドストレージを構成する物理ノードから選択された第1物理ノードと第2物理ノードについて、
上記物理ノードの空でない仮想ノード数の全体の仮想ノード数に対する比をμとし、所定の閾値パラメータλ(∈(0、1))を用いて、
(1)第1物理ノードに属する仮想ノードにおける空でないノード数の第1物理ノードに属する仮想ノード数の比μ1と、第2物理ノードに属する上記仮想ノード数対する空でない仮想ノード数の比μ2について、μ1(1+λ)が上記μより大きく、μ2(1−λ)が上記μより小さいときに、
(2)第1物理ノードに属する空でない仮想ノードから第2物理ノードに属する空の仮想ノードへの、保持データに関するスワップを行い、
(3)上記オーバレイネットワーク上のノードの並びを更新する、
ことを特徴とする。
The present invention also relates to the first physical node and the second physical node selected from the physical nodes constituting the cloud storage.
The ratio of the number of non-empty virtual nodes of the physical node to the total number of virtual nodes is μ, and using a predetermined threshold parameter λ (∈ (0, 1)),
(1) and the virtual node number ratio mu 1 belonging to the first physical node number of nodes is not empty in the virtual node belonging to the first physical node, the number of virtual nodes is not empty against the above number of virtual nodes which belong to the second physical node For the ratio μ 2 , when μ 1 (1 + λ) is larger than μ and μ 2 (1−λ) is smaller than μ,
(2) Swap the retained data from the non-empty virtual node belonging to the first physical node to the empty virtual node belonging to the second physical node,
(3) updating the sequence of nodes on the overlay network;
It is characterized by that.

上記範囲検索可能なクラウドストレージにおける上記のキーバリューについての検索は、コード#アルゴリズムに従った検索であることを特徴とする。 The search for the key value in the range searchable cloud storage is a search according to a code # algorithm.

上記オーバレイネットワークにおいて空仮想ノードの全体が上記オーバレイネットワークの並びの連続した一画を占める空仮想ノードプールを構成し、
上記空の仮想ノードは、該空仮想ノードプールから選択するものであることを特徴とする。
Configuring an empty virtual node pool in which the entire empty virtual nodes occupy a continuous sequence of the overlay network in the overlay network;
The empty virtual node is selected from the empty virtual node pool.

また、上記各物理ノードにおけるストレージは、ストレージを分割したものであり、その分割は、同じサイズの領域が最多となる分割であるとしてもよい。   Further, the storage in each of the physical nodes is obtained by dividing the storage, and the division may be a division in which the same size area is the largest.

上記所定倍とは、2倍を超え2.08倍以下であることが望ましい。   The predetermined multiple is desirably more than 2 times and 2.08 times or less.

また、上記オーバレイネットワークには、P2P(peer to peer)を用いることができる。   Further, P2P (peer to peer) can be used for the overlay network.

例えば各種測定データを本発明が対象とする範囲検索可能なクラウドストレージに保存することで、データの蓄積が進むに従って各物理ノードの負荷が増加するが、この増加は一様でない場合が多いので、本発明の負荷分散方法を用いて各物理ノードの負荷を分散することができ、ストレージ資源の利用率を高めることができるようになる。また、検索に際しては、例えばCHORD#を用いることができるので、検索は効率的に行うことができる。   For example, by storing various measurement data in the cloud searchable range storage targeted by the present invention, the load on each physical node increases as data accumulation progresses, but this increase is often not uniform, The load of each physical node can be distributed using the load distribution method of the present invention, and the utilization rate of storage resources can be increased. In searching, for example, CHORD # can be used, so that searching can be performed efficiently.

本発明の一例として提案するオーバレイを基にしたストレージシステム構成を示す図である。It is a figure which shows the storage system structure based on the overlay proposed as an example of this invention. スワップ前とスワップ後の物理ノードと仮想ノードの模式図である。It is a schematic diagram of a physical node and a virtual node before and after swapping. (a)はスプリット、(b)はマージ、(c)は再分配の各操作を説明する図である。(A) is a diagram illustrating split operations, (b) is a merge operation, and (c) is a redistribution operation. 負荷分散操作の例を示す図である。It is a figure which shows the example of load distribution operation. ノード間で作業負荷を再バランスさせる基本的なメカニズムとして、リオーダー(Reorder)操作を用いる従来技術の例を示す図である。It is a figure which shows the example of the prior art which uses a reorder (Reorder) operation as a basic mechanism which rebalances a workload between nodes. シミュレーションにおける初期負荷分布の偏り方の3つのパターン(A、B、C)を表す図である。It is a figure showing three patterns (A, B, C) of how to bias the initial load distribution in the simulation. (a)、(b)、(c)は、上記各負荷に対する負荷分散効果の比較を示す。(A), (b), (c) shows the comparison of the load distribution effect with respect to each said load. (a)、(b)、(c)は、上記各負荷に対するデータ移動コストの比較を表す。(A), (b), (c) represents the comparison of the data movement cost with respect to each said load. ダイナミックなシナリオで、各試行においてどのようにデータを削除したかを示す図である。It is a figure which shows how data was deleted in each trial in a dynamic scenario. ダイナミックなシナリオで、(a)は蓄積されたデータ移動コストの比較を示す図、(b)は蓄積されたメッセージ発信コストの比較を示す図、(c)は負荷分散速度の比較を示す図である。In a dynamic scenario, (a) shows a comparison of accumulated data movement costs, (b) shows a comparison of accumulated message transmission costs, and (c) shows a comparison of load distribution rates. is there. ダイナミックなシナリオで、データ挿入についてのシミュレーション結果を示す図で、(a)は蓄積されたデータ移動コストの比較を示す図、(b)は蓄積されたメッセージ発信コストの比較を示す図、(c)は負荷分散速度の比較を示す。FIG. 6 is a diagram showing simulation results for data insertion in a dynamic scenario, where (a) shows a comparison of accumulated data movement costs, (b) shows a comparison of accumulated message transmission costs, and (c) ) Shows a comparison of load distribution rates. 不均質な環境でのシミュレーション結果を示す図で、(a)に負荷分散効果を示し、(b)に、それに対応するデータ移動コストを示す。It is a figure which shows the simulation result in a heterogeneous environment, (a) shows the load distribution effect, (b) shows the data movement cost corresponding to it. 仮想ノードの総数mを求める具体例を示す図である。It is a figure which shows the specific example which calculates | requires the total number m of a virtual node.

本発明の範囲検索可能なクラウドストレージにおける負荷分散方法を適用する例には、オーバレイを基にした記憶システムアーキテクチャを持ったクラウドストレージがある。
ここで、N個の記憶ノードからなる一組の大規模な分散クラウドストレージを考える。Nまでの基数をnとする。各々の物理ノードを複数の仮想ノードに区切り、すべての仮想ノードのセットをVとする(Vの仮想ノード数はm)。物理ノードpiの容量をciとし、仮想ノードvjの負荷をljとする。物理ノードの容量は任意でありえるが、仮想ノードの容量は決められた値である。
An example of applying the load distribution method in the cloud searchable range storage of the present invention is a cloud storage having a storage system architecture based on overlay.
Consider a set of large-scale distributed cloud storage consisting of N storage nodes. Let the radix up to N be n. Each physical node is divided into a plurality of virtual nodes, and a set of all virtual nodes is set to V (the number of virtual nodes of V is m). Let the capacity of the physical node p i be c i and the load of the virtual node v j be l j . The capacity of the physical node can be arbitrary, but the capacity of the virtual node is a predetermined value.

分散した状態で範囲検索を行えるようにするために、すべての仮想ノードでChord#オーバレイを構成する。本明細書では、「オーバレイノード」と「仮想ノード」は、交換可能である。Chord#は、範囲検索可能な分散データ構造である。Chord#ネットワークでは、すべてのオーバレイノードは2つのリンクで連なることによるリングで接続されており、リングにおけるオーバレイノードの各位置はそのノードが担当する範囲によって決められている。
データ検索を速めるために、各々のオーバレイノードは、複数のレベル(スキップリストにおけるレベル)で短絡路を提供するフィンガーテーブル(finger table)を持っている。一般に、そのフィンガーテーブルで第iフィンガーを計算するために、オーバレイノードは、第(i−1)フィンガーのリモートノードに、さらにその第(i−1)フィンガーがどれを参照しているかを尋ねる。つまり、次式の様にレベルiのフィンガーは、次に低いレベルi−1のフィンガーポインターに設定されている。初期値として、フィンガーは直接的な後続点を指す。
In order to perform a range search in a distributed state, a Chord # overlay is configured with all virtual nodes. In this specification, “overlay node” and “virtual node” are interchangeable. Chord # is a distributed data structure capable of range search. In the Chord # network, all overlay nodes are connected by a ring formed by connecting two links, and each position of the overlay node in the ring is determined by a range in which the node is responsible.
To expedite data retrieval, each overlay node has a finger table that provides a short circuit at multiple levels (levels in the skip list). In general, to calculate the i-th finger in its finger table, the overlay node asks the remote node of the (i-1) th finger and which (i-1) th finger is referring to. That is, the finger of level i is set to the finger pointer of the next lower level i-1 as in the following equation. As an initial value, the finger points to a direct successor.

Chord#を使うために、データ項のキー空間を連続的に連なるように分割して、各々の分割を仮想ノードに割り当てる。また、ここでは、仮想ノードは、そのキーとして、その分割の下境界を採用し、分割全体で、その担当範囲の下境界を採用する。また、データ項目を保存するために、すべての仮想ノードを使うわけではない。つまり、一部の仮想ノードを空にしておく。具体的には、仮想ノードのセットVを、サブセットVEとVNEに分けるが、サブセットVEは、すべて空の仮想ノードを含み、サブセットVNEはすべての空でない仮想ノードを含む。 In order to use Chord #, the key space of the data term is divided so as to be continuous, and each division is assigned to a virtual node. Here, the virtual node adopts the lower boundary of the division as the key, and adopts the lower boundary of the assigned range for the entire division. Also, not all virtual nodes are used to store data items. That is, some virtual nodes are left empty. Specifically, the set V of virtual nodes is divided into subsets V E and V NE , where subset V E includes all empty virtual nodes and subset V NE includes all non-empty virtual nodes.

さらに、空の仮想ノードには、空でない仮想ノードから区別をするために、空でない仮想ノードには決して使われないキーと範囲を割り当てる。例えば、(−1、0)間の実数はデータ項目のキーとしてまた空で無い仮想ノードとしては、決して使われないと仮定する。
図1に、本発明の一例として提案するオーバレイを基にしたストレージシステム構成を示す。この例の場合は、すべての空の仮想ノードが隣接する領域に配置されるようになる。この領域を空仮想ノードプール(EVNP:empty virtual nodes pool)と呼ぶ。
図1では、仮想ノードが属する物理ノードを区別できるようにするために、描画線幅を変えている。同じ線幅の仮想ノードは、同じ物理ノードに保存される。各々の物理ノードには、空でない仮想ノード(円)と空の仮想ノード(星形多角形)とからなる複数がある。
In addition, empty virtual nodes are assigned keys and ranges that are never used for non-empty virtual nodes to distinguish them from non-empty virtual nodes. For example, assume that a real number between (-1, 0) is never used as a key for a data item or as a non-empty virtual node.
FIG. 1 shows a storage system configuration based on an overlay proposed as an example of the present invention. In the case of this example, all empty virtual nodes are arranged in adjacent areas. This area is called an empty virtual nodes pool (EVNP).
In FIG. 1, the drawing line width is changed so that the physical node to which the virtual node belongs can be distinguished. Virtual nodes having the same line width are stored in the same physical node. Each physical node includes a plurality of non-empty virtual nodes (circles) and empty virtual nodes (star polygons).

本発明の目的を実現するための方法の1つは、データ項目を仮想ノードに割り当てるための負荷分散アルゴリズムを設計することで、任意の物理ノードPi(iは、1から物理ノードの数Nまで)について、その容量ciに比例したデータ項目の全体の負荷を管理するようにするものである。形式的には、物理ノードPiに属する仮想ノードのサブセットVi(∈V、Vはすべての仮想ノードのセット)は、以下の数2が最小化されるように、仮想ノードごとに実際の負荷を調整する。ここで、仮想ノードvjの負荷をljとする。物理ノードの容量は任意でありえるが、仮想ノードの容量は所定の一定値である。ここで、Σは、その添え字のすべての要素についての和を表すものとする。 One method for realizing the object of the present invention is to design a load balancing algorithm for assigning data items to virtual nodes, so that any physical node Pi (i is from 1 to the number N of physical nodes). ) for, and is to manage the overall load on the data item in proportion to its capacity c i. Formally, the subset V i of virtual nodes belonging to the physical node Pi (∈V, V is the set of all virtual nodes) is the actual load for each virtual node so that the following equation 2 is minimized. Adjust. Here, the load of the virtual node v j is assumed to be l j . The capacity of the physical node can be arbitrary, but the capacity of the virtual node is a predetermined constant value. Here, Σ represents the sum of all the elements of the subscript.

上記数式の第2項は、物理ノードPiの期待される負荷とみなすことができる。過剰負荷の物理ノードと過少負荷の物理ノードの間で負荷のバランスをとる基本的な考え方は、過少負荷の物理ノードの空の仮想ノードに過剰負荷の物理ノードの空でない仮想ノードからデータを移動するスワップ(Swap)を行う。 The second term of the above formula can be regarded as the expected load of the physical node P i . The basic idea of balancing the load between overloaded physical nodes and underloaded physical nodes is to move data from non-empty virtual nodes of overloaded physical nodes to empty virtual nodes of underloaded physical nodes Swap is performed.

しかし、仮想ノードの負荷が任意であるならば、システムは非常に非効率になる場合がある。ほんの少しのデータ項目だけを保存している多くの仮想ノードがあるとすると、過剰負荷の物理ノードから過少負荷の物理ノードへのデータの移動は、それらのほんの少しのデータ項目ごとを移動する多数回のスワップ操作が必要になることが分かる。
これに加えて、空でない仮想ノードにほんの少しのデータ項目だけを保存することで、オーバレイネットワークは非効率な利用となり物理資源を浪費することになる。
However, if the load on the virtual node is arbitrary, the system can become very inefficient. Given a large number of virtual nodes that store only a few data items, moving data from an overloaded physical node to an underloaded physical node is a large number that moves through those few data items. It can be seen that one swap operation is required.
In addition, by storing only a few data items in a non-empty virtual node, the overlay network becomes inefficient use and wastes physical resources.

これらの理由から、本発明では、仮想ノードの負荷に許容範囲を設定して、常に負荷を適度な状態に保つことを行う。具体的には、ここでは上記許容範囲の下限lbと上限ubを導入する。そこで、ub=2×lb + εとするが、ε(>0)は、小さい実数である。
常に仮想ノードviの負荷は、lb≦li<ubを満たさなければいけない。さもなければ、後述の負荷を調整する操作が発動される。
仮想ノードの負荷の範囲が与えられれば、以下の様に実用的に便利な数3の近似を得ることができる。絶対値記号は、集合については仮想ノード数を表し、数値については絶対値を表す。
For these reasons, in the present invention, an allowable range is set for the load of the virtual node, and the load is always kept in an appropriate state. Specifically, the lower limit lb and the upper limit ub of the allowable range are introduced here. Therefore, although ub = 2 × lb + ε, ε (> 0) is a small real number.
The load on the virtual node v i must always satisfy lb ≦ l i <ub. Otherwise, an operation for adjusting the load described later is activated.
Given the range of virtual node loads, a practically convenient approximation of Equation 3 can be obtained as follows. The absolute value symbol represents the number of virtual nodes for the set, and the absolute value for the numerical value.

|VNE|/|V|をμとすると、μは、Chord#オーバレイネットワークでの、すべての空でない仮想ノード数とすべての仮想ノード数の比を示す。また、任意の物理ノードPiについては、それの空でない仮想ノード数のすべての仮想ノード数に対する比をμiとする。
ここで、閾値パラメータλ∈(0、1)を導入する。もし、μiがμ(1+λ)より大きいならば、それは過剰負荷と解釈し、また、μiがμ(1−λ)より小さいならば、それは過少負荷と解釈する。
過少負荷の物理ノードは、何もする必要がないが、過剰負荷の物理ノードからの要請を待つことになる。
If | V NE | / | V | is μ, μ represents the ratio of the number of all non-empty virtual nodes to the number of all virtual nodes in the Chord # overlay network. For an arbitrary physical node P i , the ratio of the number of non-empty virtual nodes to the number of all virtual nodes is μ i .
Here, a threshold parameter λε (0, 1) is introduced. If μ i is greater than μ (1 + λ), it is interpreted as an overload, and if μ i is less than μ (1-λ), it is interpreted as an underload.
An underloaded physical node does not need to do anything, but waits for a request from an overloaded physical node.

物理ノードが過少負荷、通常負荷あるいは過剰負荷のどの状態にあるのかについては、μiとμを比較することによって行うことができる。μを推定する前に、ここでは、仮想ノードの総数mを計算するための方法を最初に導入する。これはμを推定するために必要である。この際、Chord#の特徴を用いることによって、mを計算する。 Whether the physical node is underloaded, normal loaded or overloaded can be determined by comparing μ i and μ. Before estimating μ, here we first introduce a method for calculating the total number m of virtual nodes. This is necessary to estimate μ. At this time, m is calculated by using the feature of Chord #.

任意の物理ノードが仮想ノードのvjを含むと仮定する。また、vjは左隣にレベル−0のオーバレイノードvkがあるとする。上記物理ノードは、vjをして右隣ノードにvk.keyの問合わせを送らせる。この問合わせは通常の問合わせとして取り扱われ、中間のオーバレイノードはChord#プロトコルに従って正確にそれを転送する。この問合わせと通常の問合わせの唯一の違いは、問い合わせメッセージにあり、どのオーバレイレベルに各中間ノードがその問い合わせを転送するかを記録したセグメントが埋め込まれているということである。そのセグメントにおけるそのセットを、LSと記す。その問い合わせがvkに転送された後に、vkは単にvjにそれを転送する。その問合わせを受け取った後に、次の方程式に従って、vjはmを次のように計算する: Assume that any physical node contains the virtual node v j . Further, it is assumed that v j has an overlay node v k of level-0 on the left side. The physical node is v j and v k . Send a key inquiry. This query is treated as a normal query and the intermediate overlay node forwards it exactly according to the Chord # protocol. The only difference between this query and a regular query is that it is in the query message and has an embedded segment that records which overlay level each intermediate node forwards the query to. The set in the segment is denoted LS. After the inquiry has been transferred to v k, v k is to simply transfer it to the v j. After receiving the query, v j calculates m according to the following equation:

図13に例を示す。仮想ノード74がmを計算する場合を仮定する。仮想ノード74は、キー79についての問い合わせを送るが、このキーはレベル0で左隣のオーバレイノードのキーである。その問合わせは、そのレベル3で隣の-0.5ノードに転送される。-0.5ノードはそのレベル2で隣のノード92に問合わせを転送し、そして、ノード92はそのレベル1で隣のノード85に問合わせを転送する。ノード79はレベル0でノード85の右隣りであるので、問合わせはレベル0に転送される。この例では、LS = 3、2、1、0であり、m=23+22+21+20+1で16である。 An example is shown in FIG. Assume that virtual node 74 calculates m. Virtual node 74 sends a query for key 79, which is the key of the overlay node on the left at level 0. The query is forwarded to the next -0.5 node at level 3. The -0.5 node forwards the query to the adjacent node 92 at its level 2, and the node 92 forwards the query to the adjacent node 85 at its level 1. Since node 79 is level 0 and right next to node 85, the query is forwarded to level 0. In this example, LS = 3, 2, 1, 0 , and 16 with m = 2 3 +2 2 +2 1 +2 0 +1.

mが分かると、物理ノードは、サンプリングを基にした方法で、独立してμを推定することができる。(1)具体的には、物理ノードはランダムにその中の仮想ノードを選んで、それを所定のTTL(Time To Live:生存時間)(少なくともO(log m))をつけてサンプル−要請メッセージを送出させる。(2)パケットを受けた全ノードは、フィンガーテーブルからランダムに隣のリンクを選び、パケットを転送して、TTLを減らす。(3)経路に沿ったあらゆるオーバレイノードはランダムに隣のリンクを選んで、それを転送し、TTLを減らす。(4)TTLが無くなったノードは、サンプルを返送する。
この方法で、メッセージを送る物理ノードは、一様分布に従った仮想ノードのサンプリングを得ることができる。
Once m is known, the physical node can estimate μ independently in a sampling-based manner. (1) Specifically, a physical node randomly selects a virtual node, adds a predetermined TTL (Time To Live) (at least O (log m)), and a sample-request message Is sent out. (2) All nodes that have received the packet randomly select an adjacent link from the finger table, forward the packet, and reduce TTL. (3) Every overlay node along the path will randomly pick the next link, forward it, and reduce TTL. (4) The node that has run out of TTL returns a sample.
In this way, the physical node sending the message can obtain a sampling of virtual nodes according to a uniform distribution.

この理由は以下の通りである。
Chord#のようなトポロジーは、エキスパンダであるので、Chord#におけるTTLはO(log m)のランダムウォークについて一様分布に収束する。
サンプリングが一様分布に従っていれば、μを推定することは、基本的な母集団比率評価問題になることがよく知られている。仮想ノードのサンプリングのセットをS(|S|=s)とし、次の様にブール変数aiを導入する。
The reason is as follows.
Since a topology such as Chord # is an expander, TTL in Chord # converges to a uniform distribution for a random walk of O (log m).
It is well known that if sampling follows a uniform distribution, estimating μ becomes a basic population ratio evaluation problem. A sampling set of virtual nodes is S (| S | = s), and a Boolean variable a i is introduced as follows.

μの評価値をμ^(^はμの上)とすると、 If the evaluation value of μ is μ ^ (^ is above μ),

であり、その期待値は、次のようになる。 The expected value is as follows.

また、これから、μ^がμの偏りの無い評価であることは明らかである。 Also, it is clear from this that μ で あ is an evaluation with no bias of μ.

物理ノードPiが過剰負荷にあることが見出された時に、スワッププロセスを開始する。図2に、スワップ前とスワップ後のシステムを示す。
具体的には、
(A)まず、空でない仮想ノードvjをランダムに選ぶ。
(B)そして、(−1、0)にある乱数Kを発生させ、そして、仮想ノードvjからChord#オーバレイネットワークにKを検索させる。Chord#の検索アルゴリズムによると、キーKの空の仮想ノードがあれば、そのノードはvjへ返答する。キーKの空の仮想ノードが存在しない場合は、キーKに最も近いキーの空の仮想ノードがvjへ返答する。
(C)返答する空の仮想ノードがvkであるとする。もし、vkが通常負荷(過少でも過剰でもない負荷)または過少負荷の物理ノードにある場合は、仮想ノードvjは仮想ノードvkへすべてのデータ項目を渡す。そうでない場合は、仮想ノードvjは新しいK∈(−1、0)を発生させ、再びKの検索を行う。
(D)このプロセスを、仮想ノードvjが通常負荷または過少負荷の物理ノードから空の仮想ノードを見つけるまで繰り返す。
(E)データ伝送に加えて、仮想ノードvjと仮想ノードvkが、そのキー、担当範囲、隣接ノードの情報を交換する。
(F)スワップ操作の最後に交換された情報をもったオーバレイネットワークでの位置を交換する。
When the physical node P i is found to be overloaded, it starts the swap process. FIG. 2 shows the system before and after swapping.
In particular,
(A) First, a non-empty virtual node v j is randomly selected.
(B) Then, the random number K in (−1, 0) is generated, and the Ch # overlay network is searched for K from the virtual node v j . According to the Chord # search algorithm, if there is an empty virtual node with key K, that node responds to v j . If there is no empty virtual node with key K, the empty virtual node with the key closest to key K replies to v j .
(C) It is assumed that the empty virtual node to be returned is v k . If v k is in a normal node (a load that is neither underload nor overload) or an underloaded physical node, virtual node v j passes all data items to virtual node v k . Otherwise, the virtual node v j generates a new Kε (−1, 0) and searches for K again.
(D) This process is repeated until virtual node v j finds an empty virtual node from a normal or underloaded physical node.
(E) In addition to data transmission, the virtual node v j and the virtual node v k exchange information on the key, the assigned range, and adjacent nodes.
(F) Exchange the position in the overlay network with the information exchanged at the end of the swap operation.

次に、空でない仮想ノードの負荷の調節について、説明する。
負荷分散の枠組みを理解するための要点は、空でない仮想ノードの負荷を[lb、ub)の範囲に保つことである。この目的のため、3つの操作を導入する:スプリット(split)、マージ(Merge)、及び再分配(Redistribute)である。
スプリット操作は、仮想ノードvjについてデータ入力によって負荷ljが上限ubに達するときにトリガーされる。スプリット操作を行うためには、仮想ノードvjは、最初に、空の仮想ノードを見つけなければならない。
jと同じ物理ノードに空の仮想ノードvkがあるならば、vjはスプリット要請をvkに送信する。さもなければ、vjは(−1、0)内の乱数(Kとする)を発生させる。Chord#オーバレイネットワークでKの検索を行う。
キーKによる空の仮想ノードが存在するかどうかにかかわらず、空の仮想ノードのどれかがvjへ返答する。返答した仮想ノードがvkであるとすると、vjはその負荷の半分(すなわちlb+ε/2)をvkに割り振る。
実際には、vjはより大きなキーのデータ項目かより小さなキーのデータ項目をvkに動かすことができるが、汎用性を失わずに、ここでは、vjはより大きなキーのデータ項目をvkに動かすものとすることができる。
データ項目伝送に加えて、vjは右隣のノード情報もvkに送って、Chord#オーバレイのスキップリストにおけるレベル0で、その右隣はvkであるようにする。
Next, adjustment of the load of a non-empty virtual node will be described.
The key to understanding the load balancing framework is to keep the load of non-empty virtual nodes in the range [lb, ub). For this purpose, three operations are introduced: split, merge, and redistribute.
The split operation is triggered when the load l j reaches the upper limit ub due to data input for the virtual node v j . In order to perform the split operation, the virtual node v j must first find an empty virtual node.
v If the same physical node j an empty virtual node v k, v j sends a split request to the v k. Otherwise, v j generates a random number (denoted K) in (−1, 0). Search for K in the Chord # overlay network.
Regardless of whether there is an empty virtual node with key K, one of the empty virtual nodes replies to v j . If the returned virtual node is v k , v j allocates half of its load (ie lb + ε / 2) to v k .
In practice, v j can move a larger key data item or a smaller key data item to v k , but without loss of versatility, here v j is a larger key data item. It can be moved to v k .
In addition to the data item transmission, v j also sends the right neighbor information to v k so that it is level 0 in the Chord # overlay skip list and its right neighbor is v k .

するとvkが空でない仮想ノードになるので、それはオーバレイネットワークでの元の位置から離れて、キーにはデータ項目のキーの下限を使って、vjの右隣で再びオーバレイネットワークに参加する。 Since v k is now a non-empty virtual node, it leaves the original position in the overlay network and rejoins the overlay network right next to v j , using the lower bound of the data item's key as the key.

他の操作のマージ及び再分配は、ljがデータ削除により上記lb未満なったとき、トリガーされる。マージ及び再分配がトリガーされるかどうかは、vjの2つのレベル0のオーバレイネットワーク上の隣のノードに依存する。
(イ)どちらかの隣のノード、例えばvkが、lj+lk<ubなる条件を満たすとき、マージ操作がトリガーされ、vjはvkからのすべてのデータ項目を吸収する。この結果を受けて、vjは通常のものになり、そして、vkは空になる。まず、vkはオーバレイネットワークから離れ、区間(−1、0)間のランダムなキーを発生し、再びオーバレイネットワークに加わる。そのオーバレイネットワーク上の新しい位置は、上記EVNPである。
(ロ)他方、レベル0のオーバレイネットワークのvjの両隣りの仮想ノードが、ub−lj以上のデータ項目数を持っているとき、vjは、lb−lj個のデータ項目をどちらかの隣のノードにそれが下限lbになるまで受け渡すことを要請することができる。これは、再分配と呼ばれる。再分配の後に、両方の2つの仮想ノードは、通常負荷の仮想ノードになる。
スプリット、マージ、及び再分配で、あらゆる空でない仮想ノードの負荷はlbとubとの間に留めることができる。これらすべての3つの操作は、ローカルな共同作業でありグローバル情報なしで行われる。
The merge and redistribution of other operations is triggered when l j is less than lb due to data deletion. Whether merging and redistribution is triggered depends on the neighboring nodes on the two level 0 overlay networks of v j .
(B) When either neighbor node, for example v k , satisfies the condition l j + l k <ub, a merge operation is triggered and v j absorbs all data items from v k . Upon receiving this result, v j becomes normal and v k becomes empty. First, v k leaves the overlay network, generates a random key during the interval (−1, 0), and joins the overlay network again. The new location on the overlay network is the EVNP.
(B) On the other hand, when the virtual nodes on both sides of v j in the level 0 overlay network have the number of data items equal to or greater than ub−l j , v j indicates which of the lb−l j data items. The next node can be requested to deliver until it reaches the lower limit lb. This is called redistribution. After redistribution, both two virtual nodes become normal load virtual nodes.
With split, merge, and redistribution, any non-empty virtual node load can be kept between lb and ub. All three of these operations are local collaborations and are performed without global information.

まず、本実施例におけるオーバレイネットワーク例は以下の様に構成されたものである。各々の物理ノードは、複数の同一の容量の仮想ノードを設定できるようにパーティション分割が行われており、また、各々の仮想ノードには、それぞれの担当範囲が割り当てられている。その担当範囲に基づいて、範囲検索可能なP2Pネットワークがこれらの仮想ノードで構成される。具体的には、各仮想ノードが隣のノードに繋がっているようにする。また、各々の仮想ノードにも検索を速めるためになんらかの長いリンクを設ける。データ項目を保存するために、すべての仮想ノードを使うというわけではない。データの格納には一部の仮想ノードを使い、他の仮想ノードは空仮想ノードにしておく。空でない仮想ノードには、データ項目として使われていない範囲のキーを割り当てる。例えば、データ項目が常にプラスであるとき、区間(−1、0)間の値を空の仮想ノードに割り当てる。   First, the overlay network example in the present embodiment is configured as follows. Each physical node is partitioned so that a plurality of virtual nodes having the same capacity can be set, and a respective assigned range is assigned to each virtual node. Based on the assigned range, a P2P network capable of range search is configured with these virtual nodes. Specifically, each virtual node is connected to an adjacent node. Each virtual node is also provided with some long link to speed up the search. Not all virtual nodes are used to store data items. Some virtual nodes are used for data storage, and other virtual nodes are empty virtual nodes. Non-empty virtual nodes are assigned keys that are not used as data items. For example, when the data item is always positive, a value between the intervals (−1, 0) is assigned to an empty virtual node.

各々の物理ノードには、複数の空でない仮想ノードと空の仮想ノードがあるとする。このとき、次のようにすると過剰負荷の物理ノードと過小負荷の物理ノード間での負荷の均衡の再調整を行うことができる。
例えば、過剰負荷の物理ノードには空でない仮想ノードがあり、そして、過少負荷の物理ノードには空の仮想ノードがあるとする。この場合、空でない仮想ノードからすべてのその負荷を空の仮想ノードの方へ移す。そして、オーバレイネットワーク上でそれらの位置関係を交換する。この操作はスワップ(Swap)に当たる。
Each physical node has a plurality of non-empty virtual nodes and empty virtual nodes. At this time, the load balance between the overloaded physical node and the underloaded physical node can be readjusted as follows.
For example, assume that an overloaded physical node has a non-empty virtual node and an underloaded physical node has an empty virtual node. In this case, all the load is transferred from the non-empty virtual node to the empty virtual node. Then, the positional relationship is exchanged on the overlay network. This operation is equivalent to a swap.

局所的な負荷調整については、スプリット(Split)、マージ(Merge)、及び再分配(Redistribute)の3操作で行う。この際、空でない仮想ノードにデータ項目の上限ubと下限lbを導入する。また、ubはlbの2倍強、例えば2.08、とする。これらubとlbは、負荷調整のトリガーとなる指標である。   The local load adjustment is performed by three operations of split, merge, and redistribute. At this time, the upper limit ub and the lower limit lb of the data item are introduced to the non-empty virtual node. Also, ub is slightly more than twice lb, for example, 2.08. These ub and lb are indexes serving as triggers for load adjustment.

スプリットは、図3(a)に示すように、データ挿入でデータ項目がub達するときには、例えば、その仮想ノードを2つにスプリット(分裂)させる。具体的には、同じ物理ノード内で空の仮想ノード見出し、データの半分をその方へ移す。これで、空の仮想ノードは空でなくなる。そして、オーバレイネットワーク上で位置を変える。同じ物理ノード内で空の仮想ノードが見つからない場合は、上記の様に、負の乱数Kをキーに持つ仮想ノードを検索し、その検索に応答した仮想ノードに、上記の様に、データの半分を移す。
マージは、図3(b)に示すように、オーバレイネットワークの隣接する2つの仮想ノードのデータ項目の和がubより少ない場合は、1つの仮想ノードが他の仮想ノードのデータ項目を吸収する。そして、空になった仮想ノードはその位置を去り、空仮想ノードプールに再加入する。
また、再分配は、図3(c)に示すように、隣接する2つのノードの個々のデータ項目は両方ともubより少ないが、そのデータ項目の和がubより大きい場合は、データ項目の多い方から少ない方へデータ項目を移す。
これら3つの操作で、どの仮想ノードにおいても、lbとubの間にデータ項目を留めることが出来る。
As shown in FIG. 3A, when the data item reaches ub by data insertion, for example, the split splits the virtual node into two (split). Specifically, in the same physical node, an empty virtual node heading and half of the data are moved to that direction. Now the empty virtual node is no longer empty. Then, the position is changed on the overlay network. If an empty virtual node is not found in the same physical node, a virtual node having a negative random number K as a key is searched as described above, and the virtual node responding to the search is searched for data as described above. Transfer half.
In the merge, as shown in FIG. 3B, when the sum of data items of two adjacent virtual nodes in the overlay network is less than ub, one virtual node absorbs data items of other virtual nodes. Then, the virtual node that has become empty leaves its position and rejoins the empty virtual node pool.
Further, as shown in FIG. 3C, the redistribution has both individual data items of two adjacent nodes smaller than ub, but when the sum of the data items is larger than ub, there are many data items. Move data items from one to the few.
With these three operations, data items can be kept between lb and ub in any virtual node.

図4は負荷均等化操作の例を示す図である。この例では、過剰負荷ノードから過小負荷ノードへ負荷移動を行う。   FIG. 4 is a diagram illustrating an example of a load equalization operation. In this example, the load is moved from the overload node to the underload node.

図2は、本実施例の場合にも当たり、スワップ操作をオーバレイネットワークの観点からみた図である。この図2において、物理ノードAは過剰負荷であり、物理ノードBは過少負荷であるとする。物理ノードAにある仮想ノード11から物理ノードBにある空の仮想ノードの1つにデータを移動する。データ移動後に、隣接ノード情報、探索キーおよびオーバレイネットワークにおける位置を上記ノード間で交換する。   FIG. 2 shows the swap operation from the viewpoint of the overlay network. In FIG. 2, it is assumed that the physical node A is overloaded and the physical node B is underloaded. Data is moved from the virtual node 11 in the physical node A to one of the empty virtual nodes in the physical node B. After the data movement, the adjacent node information, the search key, and the position in the overlay network are exchanged between the nodes.

本発明のパフォーマンスを評価するために、Java(登録商標)でシミュレータを開発した。また、本発明の方法に加えて、比較のために、(A)一様な環境や(B)不均質な環境で定評のあるLoReC(LOad REbalancing for distributed file systems in Clouds、非特許文献1)を実装した。
上記シミュレータによる計算機シミュレーションで、負荷分散効果、データ移動コスト、メッセージ発信コストと負荷分散速度を評価した。
In order to evaluate the performance of the present invention, a simulator was developed in Java (registered trademark). For comparison, in addition to the method of the present invention, LoReC (LOad REbalancing for distributed file systems in Clouds, Non-Patent Document 1) has a reputation in a uniform environment and (B) a heterogeneous environment. Was implemented.
In the computer simulation by the simulator, the load distribution effect, data movement cost, message transmission cost and load distribution speed were evaluated.

(A) 一様な環境でのシミュレーション
結果における最初のセット、一様な環境から得られたものである。
一様な環境では、容量が1000で同一で、1000台の物理ノードを使用した。各々の物理ノードは、20の仮想ノードを包含している。シミュレーションは次の2種類のシナリオで行った。
(イ)静的シナリオでは、偏った初期負荷分布の3つのパターンを仮定して、それぞれ負荷分散操作を行った。
負荷分散操作の間、データ挿入と削除は、起きていない。
静的シナリオで、スプリット、マージ、及び再分配はほとんど起こらず、スワップに集中することができた。
(ロ)ダイナミックなシナリオでは、その負荷の削減(同様に増加)を続けた。データ撹拌の間、すべての負荷分散操作がトリガーされ、実際の環境に近い状態での評価をすることができた。
(A) Simulation in a uniform environment The first set of results, obtained from a uniform environment.
In a uniform environment, 1000 physical nodes were used with the same capacity of 1000. Each physical node contains 20 virtual nodes. The simulation was performed in the following two types of scenarios.
(A) In the static scenario, load distribution operations were performed assuming three patterns of uneven initial load distribution.
During the load balancing operation, no data insertion and deletion has occurred.
In the static scenario, splits, merges, and redistributions rarely occurred and could be concentrated on swaps.
(B) In dynamic scenarios, we continued to reduce (also increase) the load. During the data agitation, all load balancing operations were triggered, allowing us to evaluate the actual environment.

図6は、初期負荷分布の偏り方の3つのパターンを表す。負荷に対するCDF(Cumulative Distribution Function:累積分布関数)を表す。物理ノードで最も小さな負荷は200で、最大の負荷は800である。負荷Bでは、大部分のノードは軽負荷となっており、ごく一部のノードだけに多大な負荷がかかっている。負荷Cでは、大部分のノードは多大な負荷が掛かった状態となっており、ごく一部だけが軽負荷となっている。負荷Aの位置は、負荷Bと負荷Cの間である。図7(a)、7(b)と7(c)が各負荷に対する負荷分散効果の比較を示す。
本発明の方法では、少数の過少負荷されたノードが存在する間、ほとんど過剰負荷のノードが存在しない。
これは、従来の方法(LoReC)では過剰負荷のノードと過小負荷のノードがいくつか残ることに対して、本発明の優れた点である。この違いの主因は、再配列(REORDER)の使い方の違いにある。従来の方法の様に、REORDERで、軽負荷のノードが、過剰負荷のノードを救済する場合、その前にすべてのそのデータ項目を隣のノードの方へ動かさなければならない。しかし、軽負荷のノードからデータ項目を受け取った後に、隣の軽負荷のノードが助けられるべき過剰負荷のノードより多大負荷になるならば、REORDER操作は意味がない。しかも、この場合、更なる負荷分散は行われない。
FIG. 6 shows three patterns of how the initial load distribution is biased. It represents CDF (Cumulative Distribution Function) with respect to load. The smallest load in a physical node is 200, and the largest load is 800. In the load B, most of the nodes are light loads, and only a small part of the nodes are heavily loaded. In the load C, most nodes are in a state where a great load is applied, and only a small part is lightly loaded. The position of the load A is between the load B and the load C. 7 (a), 7 (b) and 7 (c) show a comparison of the load distribution effect for each load.
In the method of the present invention, there are few overloaded nodes while there are a few underloaded nodes.
This is an advantage of the present invention in that the conventional method (LoReC) has several overloaded and underloaded nodes. The main reason for this difference is the difference in the use of REORDER. As with conventional methods, with REORDER, if a lightly loaded node rescues an overloaded node, all its data items must be moved to the next node before that. However, after receiving a data item from a lightly loaded node, a REORDER operation is meaningless if the adjacent lightly loaded node becomes more heavily loaded than the overloaded node to be assisted. In addition, no further load distribution is performed in this case.

図8(a)はデータ移動コストの比較を表す。図8(b)はメッセージ発信コストの比較を表す。そして、図8(c)は負荷分散速度の比較を表す。本発明の方法やLoReCが定期的に行われると想定している。したがって、これらの速度を負荷分散操作の回数で比較する。負荷分散操作がより少ない回数の方が、より速いと思われる。これらの図から、本発明の方法の方が、重要なデータ移動コストとメッセージ発信コストを節約することができて、LoReCより速く終わることができることが分かる。   FIG. 8A shows a comparison of data movement costs. FIG. 8B shows a comparison of message transmission costs. FIG. 8C shows a comparison of load distribution rates. It is assumed that the method and LoReC of the present invention are performed periodically. Therefore, these speeds are compared with the number of load balancing operations. A smaller number of load balancing operations seems to be faster. From these figures, it can be seen that the method of the present invention can save significant data movement costs and messaging costs, and can finish faster than LoReC.

静的シナリオに加えて、データ撹拌したシミュレーションも行った。ロードバランスされた範囲検索可能システムに600のデータ項目があると仮定した。それから、偏った方法ですべてのノードからデータ項目を削除したが、より多くのデータ項目がより少ないノードから削除された、また、より少ないデータ項目がより多くのノードから削除された。各試行におけるデータの削除は、図9に示す関数に従っている。図10(a)は蓄積されたデータ移動コストの比較を示し、図10(b)は蓄積されたメッセージ発信コストの比較を示す。そして、図10(c)は負荷分散速度の比較を表す。   In addition to the static scenario, simulations with mixed data were also performed. Assume that there are 600 data items in a load balanced range searchable system. Then, the data items were deleted from all nodes in a biased manner, but more data items were deleted from fewer nodes and fewer data items were deleted from more nodes. The deletion of data in each trial follows the function shown in FIG. FIG. 10A shows a comparison of accumulated data movement costs, and FIG. 10B shows a comparison of accumulated message transmission costs. FIG. 10C shows a comparison of load distribution rates.

静的シナリオのように、速度を負荷分散操作数で比較した。LoReCでは、「REORDER」の数を数え、本発明の方法については、スワップの数を数えた。スプリット、マージ、及び再分配については数えていない。これらは負荷変動でトリガーされるからである。
さらに、上記3つの操作の処理時間は、スワップの期間より非常に短いと思われる。静的シナリオでの結果と同様に、本発明の方法は、データ削除に対して、LoReCに比べて著しい改善を示す。
同様に、データ挿入についてのシミュレーションを行った。各々のノードに200のデータ項目があってロードバランスを図った範囲検索可能システムの設定とした。それから、偏った方法でデータ項目をすべてのノードに挿入した。試行ごとのデータ挿入は、図9に従った方法である。図11(a)、(b)と(c)にデータ削除の場合と同様の結果を示す。
As in the static scenario, the speed was compared with the number of load balancing operations. In LoReC, the number of “REORDER” was counted, and in the method of the present invention, the number of swaps was counted. Splits, merges, and redistributions are not counted. This is because they are triggered by load fluctuations.
Furthermore, the processing time of the above three operations seems to be much shorter than the swap period. Similar to the results in the static scenario, the method of the present invention shows a significant improvement over LoReC for data deletion.
Similarly, a simulation for data insertion was performed. Each node has 200 data items, and the range searchable system is set to load balance. Then, the data items were inserted into all nodes in a biased manner. The data insertion for each trial is a method according to FIG. FIGS. 11A, 11B, and 11C show the same results as in the case of data deletion.

(B) 不均質な環境でのシミュレーション
本発明の方法が仮想ノードに基づいて、それは本質的に不均一な環境をサポートしており、一様な環境での働きとほとんど違いを示さない。このため、記述を簡略化するために、その一部の結果だけを以下に示す。
シミュレーションにおいて、物理ノードの容量がジップ(Zipf)分布であると仮定した。その容量の最大と最小は、それぞれ5000と500である。容量に対する負荷の比率は、[0.2、0.8]間のもう一つのジップ分布に従うとした。図12(a)に負荷分散効果を示し、図12(b)に、それに対応するデータ移動コストを示す。
これらの図から、データ移動コストについては、本発明によってLoReCと同様な負荷分散効果を得るには、LoReCによるデータ移動コストのわずか1%でよいことが分かる。
(B) Simulation in a heterogeneous environment Based on virtual nodes, the method of the present invention supports an essentially heterogeneous environment and shows little difference from working in a uniform environment. For this reason, in order to simplify the description, only some results are shown below.
In the simulation, it is assumed that the capacity of the physical node is a Zipf distribution. The maximum and minimum capacity are 5000 and 500, respectively. The load to capacity ratio was assumed to follow another zip distribution between [0.2, 0.8]. FIG. 12 (a) shows the load distribution effect, and FIG. 12 (b) shows the corresponding data movement cost.
From these figures, it can be seen that the data movement cost is only 1% of the data movement cost by LoReC in order to obtain the same load distribution effect as LoReC according to the present invention.

本発明の具体的な例としては次の例を挙げることが出来る。まず、データの蓄積に際しては、インターネットに接続され分散した場所に配置された各種センサー、例えば各家庭に設置されたIoTデバイスのセンサーや車両からモバイルネットワークや間歇的に接続されるネットワークを介して接続されたセンサーから、測定データを本発明が対象とする範囲検索可能なクラウドストレージに保存する。データの蓄積が進むに従って、各物理ノードの負荷が増加するが、この増加は一様でない場合が多いので、本発明の負荷分散方法を用いて、各物理ノードの負荷を分散する。これにより、ストレージ資源の利用率を高めることができるようになる。また、検索に際しては、例えばCHORD#を用いて検索することができるので、検索は効率的に行うことができる。
従って、本発明は、範囲検索可能なクラウドストレージにデータを蓄積することができるシステムがあれば、どのようなシステムとも組み合わせて用いることが容易にできることが明らかである。
The following examples can be given as specific examples of the present invention. First, when accumulating data, it is connected via various sensors that are connected to the Internet and arranged at distributed locations, such as sensors of IoT devices installed in each home, mobile networks or networks that are intermittently connected from vehicles. The measured data is stored in a cloud storage that can be searched by the present invention from the sensor that has been selected. As the accumulation of data proceeds, the load on each physical node increases. However, this increase is often not uniform, and therefore the load on each physical node is distributed using the load distribution method of the present invention. As a result, the utilization rate of storage resources can be increased. Further, since the search can be performed using, for example, CHORD #, the search can be performed efficiently.
Therefore, it is apparent that the present invention can be easily used in combination with any system as long as there is a system capable of storing data in a cloud storage capable of range search.

Claims (6)

複数のストレージと該ストレージと組み合わされたプロセッサとメモリを含めて構成された物理ノードの複数が接続されたネットワーク上に構成される範囲検索可能なクラウドストレージにおいて上記物理ノードの負荷分散を図る方法であって、
上記範囲検索可能なクラウドストレージを、上記ストレージによる共通の容量値の仮想ストレージと該仮想ストレージが係属するプロセッサによる仮想プロセッサとメモリが構成要素となる仮想ノードの複数が接続されたオーバレイネットワーク上に形成し、
データ蓄積においては、上記範囲検索可能なクラウドストレージにキーバリュー(key-value)型データを蓄積し、
検索においては、上記仮想ノードを所定のキーバリューについて検索し、
各仮想ノードのデータ蓄積量に負荷分散のための下限と該下限の所定倍で仮想ノードの容量となる上限とを設け、
(1)第1仮想ノードに新たなデータを追加しようとする場合に、追加によるデータ量が上記上限以上の場合は、前記追加によるデータ量について、上記検索可能なクラウドストレージから選択した空仮想ノードを第2仮想ノードとして、第1仮想ノードから第2仮想ノードに上記上限の半分の分量のデータを振り分けると共に、この振り分けによる新たな順に上記オーバレイネットワーク上の仮想ノードの並びを更新することを特徴とする、範囲検索可能なクラウドストレージにおける負荷分散方法。
A method for distributing the load of the physical nodes in a cloud storage that can be searched in a range configured on a network to which a plurality of physical nodes including a plurality of storages and a processor and a memory combined with the storages are connected. There,
The range searchable cloud storage is formed on an overlay network in which a virtual storage having a common capacity value by the storage, a virtual processor by a processor to which the virtual storage is associated, and a plurality of virtual nodes having a memory as a constituent element are connected. And
In data storage, key-value type data is stored in cloud storage that can be searched in the above range,
In the search, the virtual node is searched for a predetermined key value,
A lower limit for load distribution and an upper limit that becomes the capacity of the virtual node at a predetermined multiple of the lower limit are set in the data storage amount of each virtual node
(1) When adding new data to the first virtual node, if the amount of added data is greater than or equal to the upper limit, an empty virtual node selected from the searchable cloud storage for the added data amount As the second virtual node, the data of half the upper limit is distributed from the first virtual node to the second virtual node, and the arrangement of the virtual nodes on the overlay network is updated in a new order by this distribution. A load balancing method in cloud storage that allows range search.
上記クラウドストレージを構成する物理ノードから選択された第1物理ノードと第2物理ノードについて、
上記物理ノードの空でない仮想ノード数の全体の仮想ノード数に対する比をμとし、所定の閾値パラメータλ(∈(0、1))を用いて、
(1)第1物理ノードに属する仮想ノードにおける空でないノード数の第1物理ノードに属する仮想ノード数の比μ1と、第2物理ノードに属する上記仮想ノード数対する空でない仮想ノード数の比μ2について、μ1(1+λ)が上記μより大きく、μ2(1−λ)が上記μより小さいときに、
(2)第1物理ノードに属する空でない仮想ノードから第2物理ノードに属する空の仮想ノードへの、保持データに関するスワップを行い、
(3)上記オーバレイネットワーク上のノードの並びを更新することを特徴とする請求項1に記載の範囲検索可能なクラウドストレージにおける負荷分散方法。
Regarding the first physical node and the second physical node selected from the physical nodes constituting the cloud storage,
The ratio of the number of non-empty virtual nodes of the physical node to the total number of virtual nodes is μ, and using a predetermined threshold parameter λ (∈ (0, 1)),
(1) and the virtual node number ratio mu 1 belonging to the first physical node number of nodes is not empty in the virtual node belonging to the first physical node, the number of virtual nodes is not empty against the above number of virtual nodes which belong to the second physical node For the ratio μ 2 , when μ 1 (1 + λ) is larger than μ and μ 2 (1−λ) is smaller than μ,
(2) Swap the retained data from the non-empty virtual node belonging to the first physical node to the empty virtual node belonging to the second physical node,
(3) The range distribution searchable cloud storage load distribution method according to claim 1, wherein the arrangement of nodes on the overlay network is updated.
上記範囲検索可能なクラウドストレージにおける上記のキーバリューについての検索は、コード#アルゴリズムに従った検索であることを特徴とする請求項1あるいは2に記載の範囲検索可能なクラウドストレージにおける負荷分散方法。 The load distribution method in the range searchable cloud storage according to claim 1 or 2, wherein the search for the key value in the range searchable cloud storage is a search according to a code # algorithm. 上記オーバレイネットワークにおいて空仮想ノードの全体が上記オーバレイネットワークの並びの連続した一画を占める空仮想ノードプールを構成し、
上記空の仮想ノードは、該空仮想ノードプールから選択するものであることを特徴とする請求項1から3のいずれか1つに記載の範囲検索可能なクラウドストレージにおける負荷分散方法。
Configuring an empty virtual node pool in which the entire empty virtual nodes occupy a continuous sequence of the overlay network in the overlay network;
4. The load distribution method in a range searchable cloud storage according to claim 1, wherein the empty virtual node is selected from the empty virtual node pool. 5.
上記各物理ノードにおけるストレージは、ストレージを分割したものであり、その分割は、同じサイズの領域の数が最多となる分割であることを特徴とする請求項1から4のいずれか1つに記載の範囲検索可能なクラウドストレージにおける負荷分散方法。   The storage in each of the physical nodes is obtained by dividing the storage, and the division is a division in which the number of areas of the same size is the largest. Load balancing method in cloud storage that can be searched in any range. 上記所定倍は、2倍を超え2.08倍以下であることを特徴とする請求項1から5のいずれか1つに記載の範囲検索可能なクラウドストレージにおける負荷分散方法。   6. The load distribution method in cloud storage capable of range search according to claim 1, wherein the predetermined multiple is more than two and not more than 2.08 times.
JP2015194688A 2015-09-30 2015-09-30 Load balancing method in cloud storage with range search Active JP6566822B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015194688A JP6566822B2 (en) 2015-09-30 2015-09-30 Load balancing method in cloud storage with range search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015194688A JP6566822B2 (en) 2015-09-30 2015-09-30 Load balancing method in cloud storage with range search

Publications (2)

Publication Number Publication Date
JP2017068666A JP2017068666A (en) 2017-04-06
JP6566822B2 true JP6566822B2 (en) 2019-08-28

Family

ID=58494853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015194688A Active JP6566822B2 (en) 2015-09-30 2015-09-30 Load balancing method in cloud storage with range search

Country Status (1)

Country Link
JP (1) JP6566822B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750701B2 (en) * 2019-09-30 2023-09-05 Chioccoli Llc Systems and methods for connected computation in network constrained systems
CN116264574A (en) * 2022-11-28 2023-06-16 中移(苏州)软件技术有限公司 Cloud storage load balancing method, device, equipment and storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5719323B2 (en) * 2012-02-28 2015-05-13 日本電信電話株式会社 Distributed processing system, dispatcher and distributed processing management device

Also Published As

Publication number Publication date
JP2017068666A (en) 2017-04-06

Similar Documents

Publication Publication Date Title
KR101928529B1 (en) Code Distributed Hash Table based MapReduce System and Method
US8849749B2 (en) Load balancing in parallel database systems using multi-reordering
AU2014212780B2 (en) Data stream splitting for low-latency data access
Hassanzadeh-Nazarabadi et al. Decentralized utility-and locality-aware replication for heterogeneous DHT-based P2P cloud storage systems
CN106790324A (en) Content distribution method, virtual server management method, cloud platform and system
CN104065568A (en) A Routing Method for Web Server Cluster
Pandurangan et al. DEX: self-healing expanders
CN107798106A (en) A kind of URL De-weight methods in distributed reptile system
Azari et al. A data replication algorithm for groups of files in data grids
JP6566822B2 (en) Load balancing method in cloud storage with range search
Chung et al. The load rebalancing problem in distributed file systems
Majcherczyk et al. SwarmMesh: A distributed data structure for cooperative multi-robot applications
Khanli et al. FRDT: footprint resource discovery tree for grids
JP2013235515A (en) Data distribution management system, apparatus, method and program
Chahal et al. Pay-as-you-train: Efficient ways of serverless training
Shi et al. Smart shuffling in MapReduce: a solution to balance network traffic and workloads
Soltani et al. A LOAD BALANCING ALGORITHM BASED ON REPLICATION AND MOVEMENT OF DATA ITEMS FOR DYNAMIC STRUCTURED P2P SYSTEMS
Rupprecht et al. Dynamic load balancing in data grids by global load estimation
Cao et al. Load-balancing schemes for a hierarchical peer-to-peer file search system
Wang et al. Application of consistent hash based on virtual node in traffic big data
Nwe et al. Performance analysis of key-value stores with consistent replica selection approach
JP2016157367A (en) Distributed processing system
Tavuseh et al. Optimization of resources discovery in grid computing using bloom filter
Deelman et al. Simulating spatially explicit problems on high performance architectures
Wang et al. Balanced partition scheme for distributed caching systems to solve load imbalance problems

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20151029

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190628

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: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190730

R150 Certificate of patent or registration of utility model

Ref document number: 6566822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250