A static load distribution scheme using a distributed hash table in P 2 P

In distributed computing, when a load is distributed uniformly, the processing time varies with nodes. The whole processing time is dependent on the slowest node. If the load is distributed according to the capability of each node, we can execute more efficient total processing by equalizing the processing time on each node. Considering the influence of transmission delays, we define a “rank” as a metric which indicates the throughput of each node, and determine the “rank” of each node from “ranks” of adjacent nodes. This paper proposes a load distribution scheme that gives information on the processing performance of adjacent nodes to each node by using a distributed hash table and calculates “rank” without using the server. Moreover, when there are a lot of loads, and they are processed by load balancing in large scale networks, the efficiency of system is simulated, and the effectiveness of the load balancing processing is confirmed. Keyword P2P Network,Distributed Computing,Load Balance 1. はじめに ネットワークを介して複数のコンピュータを結ぶ ことで,大規模な計算を高速に行う Grid computing が 注目されている. P2P(peer to peer)による分散コンピ ューティングもその例である. P2P による分散コンピューティングにおいて,隣接 するノードに処理を行わせる時,単純に負荷を均一に 分散させるよりも,各ノードの能力に応じて分散させ れば,全体としてより効率的に処理を実行できると期 待できる. その際,ネットワークの各ノードの転送速 度を考慮して,負荷を分散させれば,より効果的に処 理が行えると期待できる. 本研究の負荷分散方式によって分散コンピューテ ィングを行う目的は,ネットワークを構成する各ノー ドのユーザが,大規模な計算を安価な設備で,より効 率的に,高速に処理が行えるようにすることである. この負荷分散方式の適用により,効率的な処理が行え る例として,ネットワークの各ユーザが,データマイ ニングを行う場合や,大規模な計算(研究データの処 理等)を処理する場合が挙げられる. 本研究は,転送する際に生じるネットワークの転送 遅延の影響を加味し,各ノードの処理時間が均一にな るように,負荷を分散させるための基準となるノード のランク付けの方式を提案する. また,このランク付 けを用いるためのネットワークの構成方法も提案する. 文献 [1]では,このランク計算を superpeer(peer より も処理能力と安定性があるノード)を用いて行った. しかし,この方式だと,サーバ,クライアント型のネ ットワークになってしまい P2Pネットワーク上で行う 利点が少なくなってしまう. そこで,本研究は分散ハ ッシュテーブルを用いることで,各ノードをオーバレ イネットワーク上で結び,各ノードでランク計算を行 うことによって superpeer を必要とせずに負荷分散を 行えるシステムとした. 以降,第 2 章で関連研究について述べ,第 3 章では 本研究で想定するネットワーク構造について述べる. 第 4~6 章で,負荷分散の基準となるノードのランクを 隣接するノードのランクから決定する方式について説 明する. 第 7 章で,大規模ネットワークで多数の負荷 処理がある場合の負荷分散により処理した場合にシス テム全体の効率についてのシミュレーションを行う. 第 8 章でまとめを述べる. 2. 関連研究 2.1. Grid computing Grid computing は,ネットワークに接続された世界 中のコンピュータ資源を活用して,高性能なコンピュ ータの代わりに,大規模な計算を高速に処理する技術 である. 具体的な活用の例として,SETI@home[2]があ る. これは,インターネットに接続されたコンピュー タを活用することで,電波望遠鏡によって受信した, 宇宙からの電波の解析を行い,地球外生命体の発見を 目的とするプロジェクトである. また,医薬分野のたんぱく質の折り畳み予測 [3]や数 学分野の素数発見 [4]等にも用いられている. 2.2. 分散ハッシュテーブル( distributed hash table) 分散ハッシュテーブルは主にP2P上においてサーバ を必要としないでデータの検索を行うシステムを構築 するのに用いられる. その仕組みは,アイテムとノー ド(peer)のそれぞれにハッシュ値を割り当て,アイ テムのハッシュ値に最も近いハッシュ値を持つノード にアイテムを格納する. 検索する際には,欲しいアイ テムのハッシュ値を計算し,近いハッシュ値を持つノ ードに順々に問い合わせることで検索行うシステムで ある. 分散ハッシュテーブルを実現する手法として Chord[5],CAN[6],Kademlia[7],Pastry[8]等がある. 本研究は,分散ハッシュテーブルとして一般的な Chord を用いてネットワークを構成し,各ノードのハ ッシュ値とノードの処理能力と転送能力を対応させる ことで用いている. 2.3. SAN(Storage Area Network)による動的負 荷分散機構 SAN を適用した PC クラスタによる並列データマイ ニングを行う合田らの研究 [9]がある. これは,SAN と いう専用のネットワーク上で,動的負荷分散機構を設 計し,HPA(Hash Partitioned Apriori)によってアソシ エーションルールの抽出を行うものである. その利点 は,構成ノードを動的に投入することにより,CPU パ ワーを増加させることで,CPU バウンドを抑制してい る点にある. また,データが存在しているストレージ デバイスからデータを分割して,未使用のストレージ デバイスにコピーすることにより,並列にアクセスを 行うことを可能にし,ディスク I/O の帯域を拡張する ことで, I/O バウンド時の性能改善を図っている. 本研究は,SAN という専用のネットワークでは無く, LAN もしくは一般的な回線を想定しており,データ転 送速度が遅いという点で異なる. また,構成ノードの CPU パワーを,負荷分散を開始するノードが任意に制 御することができないという点で異なる. 3. ネットワークの構成 文献 [1]では,superpeer を用いたサーバ,クライアン ト型のネットワークを想定していたが,この方式だと P2P ネットワーク上で行う利点が少なくなる. そこで, 本研究におけるネットワーク構造は,図 1 に示すよう に,各ノード(peer)が Chord に基づきオーバレイネ ットワークを構成する. また,実際に負荷分散処理を 行う場合には,ネットワークを構成している各ノード は,Chord によって自身が持つ指示先のノード(隣接 ノード)の情報を利用して負荷処理のネットワークを 構成した後,処理を行う. この負荷処理のネットワー クにおいて負荷処理の実行単位を subpeer と表す. こ の時, subpeer は peer に内包された負荷処理の実行単 位となる.