オーバレイ構築ツールキットOverlay Weaver
Download
Report
Transcript オーバレイ構築ツールキットOverlay Weaver
オーバレイ構築ツールキット
Overlay Weaver
首藤一幸、 田中良夫、関口智嗣
論文発表:さだ
概要
ﻪOverlay Weaverの提案
ﻩオーバレイネットワークのフレームワーク
ﻩ一度実装すれば、シミュレータでの実験も、実
環境での動作もできる
ﻩルーティング機能が予め提供されており、オリ
ジナルのアルゴリズムの実装が容易
ﻩSee http://overlayweaver.sourceforge.net/
1. はじめに
ﻪ多くのStructured overlay networkに関する研究
ﻩアルゴリズム:Chord, CAN, Tapestry, Kademlia
ﻩライブラリ:JXTA, Khashmir, Bamboo DHT など
ﻩアプリケーション: BitTorrent
ﻪ多数ノードでの評価が欠かせない
ﻩこれまでシミュレーション用、実環境用と分けて実装す
る必要があった
ﻪOverlay Weaverの提案
ﻩオーバレイネットワークのフレームワーク
ﻩ一度実装すれば、シミュレータでの実験も、実
環境での動作もできる
ﻩルーティング機能が予め提供されており、オリ
ジナルのアルゴリズムの実装が容易
( ﻩChord, Pastry, Tapestry, Kademlia のJava実装
が手に入る)
2. 関連研究
ﻪMACEDON
ﻩ
ﻩ
ﻩ
ﻩ
ﻩ
Cに似た独自の言語でアルゴリズム実装可能
ns用のコードも生成可能
これ自身はエミュレータを持たない
ModelNetを使うと、最大1000ノードまで
後継のMaceもあるが、Pastryしか実装されていない
ﻪp2psim
ﻩC++でアルゴリズム実装可能
ﻩChord, Tapestry, Kademlia, Koordeなどの実装がある
ﻩシミュレータ専用
3. ルーティング共通処理とアルゴ
リズムの分離
ﻪKey-based routing (KBR)
ﻩキーを用いた通信プロトコル
ﻩStructured overlay network に共通の処理
ﻩ層に分離→アルゴリズムが可換に
3.1アルゴリズム側のインタフェース
ﻪJavaによる実装
ﻩIDAddressPair[] closestNodes(ID target, int maxNumber)
ﻯTarget に近いノードを複数返す
ﻩIDAddressPair[] adjustRoot(ID target)
ﻯChord用, closestNodes
ﻩvoid join(IDAddressPair[] route)
ﻯChord用 join
ﻩvoid join(IDAddressPair joiningNode, IDAddressPair lastHop,
boolean isRootNode)
ﻯPastry, Tapestry用 join、これらはjoin時に途中経路のルーティングテーブ
ルを更新する必要があるため
ﻩvoid touch(IDAddressPair from)
ﻯルーティング用メッセージを受け取った時に実行される
ﻩvoid forget(IDAddressPair node)
ﻯ経路表からnodeをはずす
ﻩBigInteger distance(ID to, ID from)
ﻯID同士の距離を返す
3.2 各アルゴリズムによるインタ
フェースの実装
ﻪ対応表
3.3 ルーティング共通処理
ﻪRouting Driverの実装(起動時に変更可)
ﻩIterative routing
ﻩRecursive routing
4. ツールキットの構成
ﻪ
ﻪ
ﻪ
ﻪ
分散環境エミュレータ
シナリオ生成器
メッセージカウンタ
メッセージング可視化ツール
4.1 高レベルサービスとサンプル
アプリケーション
ﻪ高レベルサービス
ﻩDHT
ﻩGroup Manager (マルチキャスト機能の提供)
ﻪアプリケーション
ﻩDHTシェル
ﻩGroup Managerシェル
4.2 エミュレータ
ﻪシナリオをシナリオファイルに記述
ﻩ起動するクラスと引数、その後の指示
ﻩアプリケーションはそれぞれスレッドとして起動する
4.3 メッセージカウンタ
ﻪMessaging Service はメッセージ送受信を
ネットワーク越しに報告可能
ﻪそれを数えるカウンタ
4.4 メッセージング可視化ツール
4.5 各アルゴリズムの実装とパラ
メータ
ﻪ今回提供する実装
ﻩ
ﻩ
ﻩ
ﻩ
Chord
Pastry
Tapestry
Kademlia
5 評価
ﻪ5.1 アルゴリズム実装のコード量
ﻪ5.2 4000ノードのエミュレーション
ﻪ5.3 実ネットワークでの動作確認
5.1 アルゴリズム実装のコード量
ﻪステップ数=空行・コメントを抜いた実際の
コード量
ﻪいずれも数百ステップで実装できた
5.2 4000ノードのエミュレーション
ﻪありふれたPCで、4000ノードのエミュレー
ション
5.3 実ネットワークでの動作確認
ﻪAISTのクラスタマシンを用い、約200台で
動作確認
6 まとめ
ﻪOverlay weaver の設計を述べた
ﻩアルゴリズムの実装が容易
ﻩ4000ノードのエミュレーションが可能
ﻩ約200台での実環境での実験もできた