オーバレイ構築ツールキット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台での実環境での実験もできた