との統計的距離を

Mercury: Supporting Scalable
Multi-Attribute Range Queries
Ashwin R.Bharambe, Mekesh
Agrawal, Srinivasan Seshan
Computer Science Department
Carnegie Mellon University
Mercury
• distributed systemにおけるrange queryのた
めの効率的検索要求機構
• multi attribute(複数属性)の対応
– wildcardによる検索要求も可能
• load balancingの実現
DHTによるrange queryの限界
• range queryを実装するのに適していない
• rangeのハッシュはrange内の値のハッシュに相関
しない
– value spaceをbucketsに分け、valueとrangeをマップさせ
る
– 分割できないもの ex:)file name
• load balancing難
– bucketsを細かくとる→一部ノードに負荷
– bucketsを大きくとる→検索オーバヘッド
Mercury: Data Model
• Data
–
–
–
–
–
float
float
string
string
int
x-coord
y-coord
player
team
score
type
attribute
= 50
= 100
= “John”
= “topgunz”
= 76
value
Mercury: Data Model
• Query
–
–
–
–
float
float
string
int
x-coord
y-coord
player
score
<
>
=
=
53
34
“J*”
“*”
type attribute operator value
Mercury Routing
• attribute hubという同じattributeを担当する
ノード同士で論理ネットワークを構築
• 同一hubのノードをリング状に並べ接続す
る
Mercury Routing
• attributeのvalueをある閾値で均等に分ける
• リングのそれぞれのノードに領域が連続す
るようにvalueを割り当てる
• queryはリングを周って、必要とするデータ
をvalueの領域を担当するノードから貰う
Mercury Routing
xの0~80
の範囲を
担当とい
う意味
x=100のデータ
を担当するノー
ドはb,
y=200はe
multi attributeを満たすた
めhub間でルーティング
Mercury Routing
• 個々のノードは以下のリンクを保持する
– successor and predecessor link
– K long-distance links (for efficient intra-hub)
– one cross-hub link per hub (for connecting to
other hubs)
Node Join
1. 最低一つのノードの情報を知っている必
要
2. 接続後存在するノードとhubsの情報をリ
ストで貰う
3. 参加するhubをランダムで一つ選択し、そ
のメンバーの一人mにコンタクト
4. 自身をmのpredecessorとしてインストール
し、mのrangeの半分を請け負う
Node Join
1. 参加後、自身のsuccessor mのルーティン
グ情報をコピー(long-distance linksと他の
hubへのlinksを含む)
1. 自身のlong-distanceの設定
2. random-walkしてcross-hub neighborsの検索
Node Departure
• 各ノードが時計周りに連続するノードのリ
ストを保持
• successorが離脱していたらその先のノード
へ転送
• successor/predecessorのlinkを更新
Efficiency in the face of nonuniformity
• 各value領域のquery到達性は一様とは限
らない
• query selectivityとdata popularityという側
面から解決アプローチ
– Random Samplingを利用したhistogramの維持
によってquery selectivityを実現
– システム全体のload averageをhistogramから
算出し、それを利用しdata popularityを実現
Random Sampling
• expanderによるhub overlayの構築
– Linkを跨ぐrandom walk→素早くrandom walkの定常
分布に収束する
• Log nのTTLでsample-requestメッセージを送信
• 各ノードはランダムにリンクを選びメッセージを転
送しTTLを減少させる
• TTLが切れたノードをsampleとして送り返す
Maintaining Approximate
Histograms
• それぞれのノードがrandom samplingから
自らが計測したローカルなシステム統計の
概算を出す
• 各ノードはある一定数サンプリングし、サン
プリングされたノードが前述の概算を返す
Query Selectivity
• ルーティングに利用するqueryのpredicates
を適切に選択する必要
– wildcard predicateによfloodingの低減
• ある特定のbucketのノード数を知る必要
– histogramの情報により可能
Data Popularity and Load
Balancing
• 一部にqueryが集中する領域が存在してし
まう
• システム全体のaverage loadをhistogramか
ら出し、それを基準にノードの負荷を分類
– heavily loaded node
– lightly loaded node
Data Popularity and Load
Balancing
• heavily loaded nodeがlightly loaded nodeに
助けを求める
• lightly loaded nodeがネットワークから一端
離脱しheavily loaded nodeに隣接して再参
加
Evaluation
• Mercury用のシミュレータを実装
• queuing delayまたはpacket lossは考慮しな
い
• 評価のポイントは2つ
– Scalable routing for queries and data records
– Balancing of routing load throughout the
system
リンク構築パターン
• NodeLink
– 理想的なsmall-world overlay
– harmonic distribution on node-link distanceによる構築
• ValueLink
– harmonic distribution on value-link distanceによる構築
• HistoLink
– node-cound histogramによる構築
ValueLink
• Section3.3参照
HistoLink
• Histogramの情報から、n台が存在ノードと
して見積もられる
• [1, n]間の数字value n1がharmonic
probability distributionにより生成
• これがスキップするノード数となりlongdistance link張る
Figure.3
• 基礎をなす既存ネットワークがサンプリン
グ精度に及ぼす影響を示すグラフ
• Y軸がuniform distributionからの統計的距
離
– 統計的距離…A、Bを確率変数とする。 AとB
との統計的距離を∑xはkビットのビット列|Pr(A=x)Pr(B=x)| により定義する。
Figure.4
• Long-distance linkの分布を示すグラフ
Figure.5
• Histogramの正確さを示す
– (a)histogramの平均精度
– (b)各ノードの概算の結果
– (c)パラメータ変更によるrouting performanceの
変化
Figure.5
• Histogramによりパフォーマンスが上がる
がhistogramの精度に依存するため限界あ
り
– (a)と(c)を見比べるとわかる
Figure.6
• Uniform workloadとZipf-skewed workload
によるbasic protocolの評価
• Y軸が平均ホップ数
• HistoLinkの図だけど他の2つも類似
• 対数的に増えるのでスケールすることがい
える
Figure.7
• Long-distance linkの選択を決める
histogramがある場合とない場合のprotocol
の評価
– Node-range distributionとdata distributionは
non-uniform→Zipf-skewedを利用
– ジップ分布…離散型のパレート分布
• http://stat.sci.kagoshimau.ac.jp/~cse/contents/orency2/doc/p411.html
Figure.8
• Load balanceの処理を1周り行うround数と
Load skewのグラフ
Distributed Application Design
• Mercuryを基盤にしてその上にpublishscribeシステムを実装した
• Cadeuceusという2Dシューティングゲームを
アプリケーションとして実装
Publish-Scribe architecture
• 省略