5. ユビキタスサービスの実現イメージ
PIAXは共通プラットフォームとして機能
Reputation Shopping
Navigation
Sharing ss sta t
Assistant Recommendation
Streaming
Various ubiquitous applications
Agents
g
P2P Overlay
Network
PIAX
Flexible Computing
by Mobile Agents
Scalable Messaging Peer
by P2P Overlay
Profiles
Reputations
Sensors Contents Devices Users
5
13. マルチオーバレイの機構
目的別にオーバレイを追加拡張するための機構
オーバレイを plug-in service として、ローディングと選択を
行う
Discovery Messaging
request with query condition ->
query condition overlay table
qc1 ov A
selector
qc2 ov B
Multi-Overlay qc3 ov C
registration
Overlay A Overlay B Overlay C New Overlay
use use plug-in:
Multi-key call dynamic loading
Skip Graph
call
RPC
13
19. 発見型メソッド呼び出し
Discovery messaging の実現形態
P2Pエージェントの探索とリクエストを同時に行える
メソッド定義
ReturnSet<Object>
R S Obj
discoveryCall(QueryCondition qCond, String method,
Object...
Object args)
呼び出し例
rset = h
t home.discoveryCall(new Rectangle(135.0,
di C ll( R t l (135 0
35.0, 1.0, 1.0), “getScore”, myProfile);
実行時には、クエリ条件がマルチオーバレイ機構に
実行時には クエリ条件がマルチオ バレイ機構に
渡され、適切なオーバレイが選択される
19
22. Skip Graph
Yale大学の J. Aspnes教授の研究による構造化オーバレイ
論文:
J. Aspnes and G. Shah. Skip Graphs. In Proceedings of the 14th
Annual ACM-SIAM Symposium on Discrete Algorithms, Jan.
2003.
基本とするデータ構造は skip list(W. Pugh,1990)というバ
ランス木
ノードは、IDとは別にkeyを持つ
指定された範囲のkeyを持つノードを効率よく探索できる
認知度は低いけど、実はパワフル
範囲探索
任意のkeyを持つオブジェクトをサーチ
任意 を持 オブジ ク を
ALM
PIAXにおいて、中核的な役割を果たしている
PIAXにおいて 中核的な役割を果たしている
22
23. Skip List
ノードはkey順に並ぶ
レベル0のリストには全てのノードが含まれる
レベルi-1に現れるノードはある確率pでレベルiに現れる(こ
こでは簡単のため、p=1/2とします)
通常のバランス木と違い、ノードの追加?削除の際にバラン
通常のバランス木と違い ノ ドの追加 削除の際にバラン
ス化の処理が不要
HEAD TAIL
Level 2
L l 33
Level 1
L l 13 33 48
Level 0
L l 13 21 33 48 75 99
23
24. Skip List を使った検索
上位レベルから下位レベルに降りる形で処理が進む
平均検索時間は、ノード数をNとして、O(log N)
平均検索時間は、 ド数を して、 ( g )
全順序関係が定義できるデータならすべて key として使うこ
とができる(数値、文字列など)。片寄りがあってもよい
HEAD から Key “75” を検索
75
HEAD TAIL
Level 2
L l 33
Level 1
L l 13 33 48
Level 0
L l 13 21 33 48 75 99
24
25. Coffee Break: Skip List
Java 6 から skip list が使えるようになりました
java.util.concurrent.ConcurrentSkipListMap
うれしいことにスレッドセーフ
さらに、SortedMap より強力な NavigableMap が登場し、今
までできなかった次の処理ができるようになりました
ま きなか た次 処理が きるよう なりま た
指定したkey以上の大きさを持つ最小のkeyを取得 等
TreeMap ConcurrentSkipListMap は次のように使い分け
T M とC tSki Li tM
ましょう
TreeMap ConcurrentSkipListMap
get,put,removeのコスト log N log N
バランス処理 要 不要
スレッドセーフ NG OK
メモリ消費のオーバヘッド 3*N+α 6*N+α
25
31. 関連研究 (1)
SkipNet
論文:
N. J. A. Harvey, M. B. Jones, S. Saroiu, M. Theimer, and A.
Wolman, “SkipNet: A scalable overlay network with practical
locality properties,” USITS ’03, 2003.
properties, 03,
DHTが対象とする情報の格納範囲をネットワーク全体で
はなく、近接のサブネットワークに制限
DHTが不得意とするローカリティ制御を実現
Skip B-Tree
論文:
I. Abraham, J. Aspnes, and J. Yuan, “Skip B-trees,” in
Principles of Distributed Systems; 9th International
Conference, OPODIS 2005, Dec. 2005.
B-Tree を導入し、keyをブロック化することで効率化
31
32. 関連研究 (2)
Rainbow Skip Graph
論文:
M. T. Goodrich, M. J. Nelson, and J. Z. Sun, “The rainbow
skip graph: a fault-tolerant constant-degree distributed data
structure,” i Proc. 17th Symp. Discrete Algorithms, pp.
t t in P S Di t Al ith
384–393, Jan 2006.
レベル0のリングをまとめることによって、ノ ドの持つ次
レベル0のリングをまとめることによって ノードの持つ次
数が定数オーダーになることを示した
SkipIndex
論文:
C. Zhang, A. Krishnamurthy, and R. Y. Wang, “Skipindex:
Skipindex:
Towards a scalable peer-to-peer index service for high
dimensional data,” TR-703-04, Princeton University, May
2004.
2004
K-D treeを使うことで、多次元の范囲検索を実現
32
33. 関連研究 (3)
Znet
論文:
Y. Shu, B. C. Ooi, K.-L. Tan, and A. Zhou, “Supporting multi-
dimensional range queries in peer-to-peer systems,” P2P’05,
pp. 173 180 2005.
173–180, 2005
空間充填曲線であるZ-orderingを使うことで、多次元の
范囲検索を実現
33
40. PIAXにおけるオーバレイの関係
LL-Net, DHT, ALM 等は、Multi-key Skip Graph の
機能を使って実装している
経路表は1つで済む
構造化オーバレイのメンテナンスコスト削減につながる
非構造化オーバレイについては別に用意
Discovery Messaging
y g g
LL-Net DHT ALM ???
Multi-key Skip Graph
40
41. LL-Net の4分木による実装
2次元領域を段階的に4分割
得られた 分木を
得られた4分木をベースにルーティングテーブルを構成
ル ティングテ ルを構成
各レベルについて、隣接する3つの領域へのリンクを保持
ルーティングの方法は、Pastryとほぼ同じ
しかし、ピアが一様に分布しない問題が...
B D A B C D
イメージを表示できません。メモリ不足のためにイメージを開く こ とができないか、イメージが
破損している可能性があります。コンピュータ を再起動して再度ファイルを開いてください。
それでも 赤い x が表示される場合は、イメージを削除して挿入してください。
A C ??? ??? ??? ??? ???
41
48. ALM (Application Layer Multicast)
Skip Graphの、指定されたkeyを持つピアにメッセージを
送る機能を利用
1 ピア 1 key だと複数のmulticast groupに参加できなくなるの
ピア,
で、multi-keyが前提となる
スパニングツリーを構成する必要がない
ランデブーポイントを自由に設定できる
ランデブ ポイントを自由に設定できる
経路の障害回避は Skip Graph の方でやってくれる
G
G
rendezvous
Level 2 G
point
G G
Level 1
G
G: group ID
Level 0
L l G G G
00 00 10 10 00 01 11 00
48