Skip Graphをベースとした
              高速な挿入と検索が可能な
               構造化オーバレイの提案


               大阪市立大学大学院 創造都市研究科
               播磨 裕太・安倍 広多
               石橋 勇人・松浦 敏雄


2013/01/25        電子情報通信学会 情報ネットワーク研究会
はじめに
  Peer-to-Peer(P2P)への注目
 ◦  耐故障性
 ◦  負荷分散
 ◦  スケーラビリティ


  オーバレイネットワーク
 ◦  非構造化オーバレイ
 ◦  構造化オーバレイ

                           2
Skip Graph
  構造化オーバーレイの1つ
◦  DHTでは困難な範囲検索・近傍検索が可能

                  範囲検索
                 6以上10以下


    2   5    6     7   9   14



    近傍検索
   5未満で最大
                                3
本研究の目的
  Skip
   Graphをベースとした
 新たな構造化オーバレイの提案
 ◦  ノードの挿入・検索を高速化




                    4
Skip Graphの構造
                        10*
                              5                     9
  Level 2   01*
                  2                                       14
                                   00*
                                         6
                                               1つのリスト内のノード数は1/w
                        1*
                               5                     9
  Level 1   0*平均logw(N)レベル
                  2                      6                14



  Level 0         2           5          6           9    14
メンバシップベクタ         010         101        001        100   011
 (基数w = 2)
                                                                5
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                9
   Level 2   01*
                   2                                  14
                                    00*
                                          6

                         1*
                                5                9
   Level 1   0*
                   2                      6           14



   Level 0         2           5          6      9    14

メンバシップベクタ          010         101        001   100   011   6
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                      9
   Level 2   01*
                   2                                        14
                                    00*
                                          6

                         1*
                                5                      9
   Level 1   0*
                   2                      6                 14



   Level 0         2           5          6     7      9    14

メンバシップベクタ          010         101        001   111   100   011   7
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                      9
   Level 2   01*
                   2                                        14
                                    00*
                                          6
 左に辿ってメンバシップベクタを確認
                         1*
                                5                      9
   Level 1   0*
                   2                       6                14



   Level 0         2           5           6    7      9    14

                   010         101                                8
メンバシップベクタ                                 001   111   100   011
Skip Graphの挿入アルゴリズム
   ノード7を挿入
                         10*
                               5                      9
   Level 2   01*
                   2                                        14
                                    00*
                                          6
さらに左に辿ってメンバシップベクタを確認
                         1*
                                5                      9
   Level 1   0*
                   2                      6                 14



   Level 0         2            5         6     7      9    14

                   010                    001                     9
メンバシップベクタ                      101              111   100   011
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                         9
   Level 2   01*
                   2                                               14
                                    00*
                                                      Level 1に挿入
                                          6

                         1*
                                5               7        9
   Level 1   0*
                   2                      6                        14



   Level 0         2           5          6     7        9         14

メンバシップベクタ          010         101        001   111     100        011   10
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                                5                     9
   Level 2   01*
                   2                                        14
                                    00*
                                          6

                         1*
                                5               7      9
   Level 1   0*
                   2                      6                 14



   Level 0         2            5         6      7     9    14

                   010                    001                     11
メンバシップベクタ                      101              111   100   011
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                       9
   Level 2   01*
                   2                                        14
                                    00*
                                          6

                         1*
                                5               7      9
   Level 1   0*
                   2                      6                 14



   Level 0         2           5          6      7     9    14

メンバシップベクタ          010         101        001               011   12
                                                111   100
Skip Graphの挿入アルゴリズム
  ノード7を挿入
                         10*
                               5                        9
   Level 2   01*
                   2                                         14
                                    00*
                                          6

                         1*
                                5                 7     9
   Level 1   0*
                   2                      6                  14
                                              リスト内にマッチするノードが	
  
                                                 見つからなかった

   Level 0         2           5          6       7     9    14

メンバシップベクタ          010         101        001    111   100   011   13
Skip Graphの挿入アルゴリズム
                                               11*
  ノード7を挿入                                           7
                         10*
                               5                           9
   Level 2   01*                          11から始まるリストを作って挿入終了
                   2                                             14
                                    00*
                                           6

                         1*
                                5                    7      9
   Level 1   0*
                   2                       6                     14



   Level 0         2           5           6         7      9    14

メンバシップベクタ          010         101        001        111   100   011   14
Skip Graphの挿入アルゴリズム
  挿入時間:     O(w * logwn)
  ◦  挿入時間: 挿入時に通信したノード数
  ◦  各レベルで横方向に辿るノード数は平均 w
  ◦  レベルは logwn




   Level 0    2    5     6     7      9    14

メンバシップベクタ    010   101   001   111   100   011

                                                 15
Skip Graphの検索アルゴリズム
                                              11*
  7   →2                                           7
                         10*
                               5                          9
   Level 2   01*
                   2                                            14
                                    00*
                                          6

                         1*
                                5                   7      9
   Level 1   0*
                   2                      6                     14



   Level 0         2           5          6         7      9    14

メンバシップベクタ          010         101        001       111   100   011   16
Skip Graphの検索アルゴリズム
                                              11*
  7   →2                                           7
                         10*
                               5                             9
   Level 2   01*
                   2                                               14
                                    00*
                                          6               Level 2では自分自身し
                                                                 かいない
                         1*
                                5                   7        9
   Level 1   0*
                   2                      6                        14



   Level 0         2           5          6         7        9     14

メンバシップベクタ          010         101        001       111     100   011   17
Skip Graphの検索アルゴリズム
                                              11*
  7   →2                                           7
                         10*
                               5                          9
   Level 2   01*
                   2                                            14
                                    00*
 Level 1において目的のノードに                       6
    近い方へ転送(1hop目)
                         1*
                                5                   7      9
   Level 1   0*
                   2                      6                     14



   Level 0         2           5          6         7      9    14

メンバシップベクタ          010         101        001       111   100   011   18
Skip Graphの検索アルゴリズム
                                              11*
  7   →2                                           7
                         10*
                               5                          9
   Level 2   01*
                   2                                            14
                                    00*
  Level 1において左方向に                         6
転送すると2を飛び越えてしまう
                         1*
                                5                   7      9
   Level 1   0*
                   2                      6                     14



   Level 0         2           5          6         7      9    14

メンバシップベクタ          010         101        001       111   100   011   19
Skip Graphの検索アルゴリズム
                                              11*
  7   →2                                           7
                         10*
                               5                          9
   Level 2   01*
                   2                                            14
                                    00*
                                          6

                          挿入時間:	
  O(w	
  *	
  logw(n))
                         1*
                                5                   7      9
   Level 1   0*
                   2                      6                     14
                                     Level 0において目的のノードが見
                                       つかったので転送(2hop目)

   Level 0         2           5          6         7      9    14

メンバシップベクタ          010         101        001       111   100   011   20
提案手法
  Skip   Graphをベース
 ◦  メンバシップベクタを廃止
 ◦  目標とするリスト数wを導入
    (メンバシップベクタの基数wに相当)


  各レベルで左方向にポインタを複数持つ
 ◦  これを経路表として利用
 ◦  右方向は1ノードのみ(Skip Graphと同様)

                                21
提案手法
    各レベルで左方向最大            r 個のノードへの
    ポインタを持つ                     レベル 近隣ノード集合
                                1   7, 5, 14
     ◦  近隣ノード集合と呼ぶ              0   7, 6, 5
     ◦  r = 3
Level 1       5        7    9                  14

          2       6                 12



          2   5   6    7    9       12         14

Level 0

          ノード9のLevel 0における近隣ノード集合                   22
提案手法(リストID)
    各リストにIDを振る
                              リストID
     ◦  接続先の選択に利用


              5       7   9        14   82
Level 1

          2       6           12        83



          2   5   6   7   9   12   14   80

Level 0


                                        23
提案手法(リストID)
    近隣ノード集合内の各ノードが
    1つ上のレベルで所属するリストIDも保持する

              5       7       9                    14   82
Level 1

          2       6                      12             83



          2   5   6   7       9          12        14   80

Level 0                   レベル 近隣ノード集合
                          1       796, 592, 1496
                          0       782, 683, 582         24
提案手法|挿入アルゴリズム (1)
    ノード9を挿入
     ◦  各レベルの目標リスト数w = 2
     ◦  近隣ノード集合のサイズr = 3
              5       7         14   82
Level 1

          2       6        12        83



          2   5   6   7    12   14   80

Level 0


                                     25
提案手法|挿入アルゴリズム (2)
    ノード9を挿入
     ◦  各レベルの目標リスト数w = 2
     ◦  近隣ノード集合のサイズr = 3
                    5               7                        14          82
Level 1

          2                 6                      12                    83


                                                  7を追加            2削除
          2         5       6       7     9        12        14          80

Level 0       レベル   近隣ノード集合                   レベル 近隣ノード集合
              0     683, 582, 283             0     712, 613, 512, 213
                                                    682 583 282
                                    コピー              13   12   13
                                                                         26
提案手法|挿入アルゴリズム (3)
                             目標リスト数に達しているので
                            リストID82か83のどちらかと接続
    ノード9を挿入
     ◦  各レベルの目標リスト数w = 2
     ◦  近隣ノード集合のサイズr = 3
         ID82のリストを選択
             (乱数で)
               5            7   9                14     82
Level 1

          2         6                   12              83



          2    5    6       7   9       12       14     80

Level 0                             レベル 近隣ノード集合
                レベル1において
              少なくともリストが2つ           0   782, 683, 582
              存在することがわかる                                27
提案手法|挿入アルゴリズム (4)
  1つの近隣ノード集合を参照するだけでは
   リスト数を過小評価する可能性がある
  (リスト数 < w) と判断すると新たにリストを
   作るため,目標リスト数(w)をオーバーする
  より正確なリスト数を得るため,得られたリ
   スト数がw未満ならば,最大k個の近隣ノー
   ド集合を参照
提案手法|挿入アルゴリズム (5)
    ノード9を挿入
     ◦  各レベルの目標リスト数w = 2
                 精度を上げるため近隣ノード集合内で最も
                  遠いノードからも近隣ノード集合を取得
     ◦  近隣ノード集合のサイズr = 3
                 5       6       7          9                14     82
Level 1

          2                                         12              83
     レベル1にリストが少なくとも2つ
      あると判断できるようになった

          2      5       6       7          9       12       14     80

Level 0 レベル リスト数判断用近隣ノード集合                      レベル 近隣ノード集合
           レベル1において,リスト数は
        0 1つしかないと誤判定してしまう 83
             782, 683, 582, 283, 1482, 12       0   782, 683, 582
                                                                    29
挿入アルゴリズムの比較
  Skip   Graph
 ◦  1つずつ辿るため
    挿入に時間がかかる
                        メンバシップベクタ       010       101        001        111   100   011




  提案手法
 ◦  近隣ノード集合を利用し一度にr 個まとめて
    チェックすることで高速化
                2   5      6        7         9         12         14         80


      Level 0
                                        レベル 近隣ノード集合
                                        0           782, 683, 582                     30
提案手法の検索アルゴリズム
                                7                          14        96
    7    → 17
                 5                           9                       92
                     レベル     近隣ノード集合
          2                                           12             94
                     2       14??
                     1 6     592, 1496, 992                     17   93
Level 2
                     0       683, 582, 280

                 5              7            9             14        82
Level 1

          2              6                       12             17   83



          2      5       6      7            9   12        14   17   80

Level 0                                                              31
検索アルゴリズムの比較
  Skip   Graph
 ◦  平均経路表サイズは約2 * logwn


  提案手法
 ◦  近隣ノード集合も経路表として用いる
 ◦  平均経路表サイズは約(r + 1) * logwn
     経路表サイズが大きい分,より高速に目的ノードに
      近づける


                                32
評価(挿入時間)
  提案手法と従来のSkip
           Graphとで
オーバレイネットワークを構成し,挿入時間
の分布を測定
 ◦  ノード数: 10,000
 ◦  Skip Graph
    メンバシップベクタの基数w = 2
 ◦  提案手法
    目標リスト数: w = 2, 4, 8, 16
    近隣ノード集合数: r = w
                               33
実験結果(挿入時間)
             0.3
                             提案手法
                             (w = 16)            Better
            0.25               提案手法
                               (w = 8)               提案手法
             0.2                                     (w = 2)
Frequency




            0.15                    提案手法
                                    (w = 4)

             0.1
                                                                          Skip
            0.05                                                         Graph

              0
                   10   20     30       40      50    60       70   80      90   100
                                             Insertion time                      34
評価(検索時間)
  検索時間の分布を取得


  条件は前と同じ




                35
実験結果(検索時間)
            0.35
                           提案手法
                           (w = 16)
             0.3                          Better
            0.25                 提案手法
                                 (w = 8)
Frequency




             0.2                  提案手法
                                  (w = 4)
            0.15
                                            提案手法
             0.1                            (w = 2)
                                                             Skip
            0.05                                            Graph

              0
                   0   5         10         15        20   25       30
                                      Number of hops
                                                                     36
評価(経路表サイズと検索時間の関係)
  提案手法では,rとwを変化させることで
経路表サイズを自由に変更可能

  経路表サイズと検索時間との関係を調べた


  提案手法のパラメータ
◦  w = 2, 4, 8, 16, 32, 64
◦  r = w, 2w, 3w, 4w
                             37
実験結果(経路表サイズと検索時間の関係)
                   10        Skip Graph
                    9
Ave. lookup time




                    8               w=2
                    7
                                             r=w
                    6            w=4
                                                     r = 2w
                    5
                                                            r = 3w
                                   w=8
                    4                                                w = 64
                    3                     w = 16
                                                                              r = 4w
                                                   w = 32
                    2
                        10                                  100                        1000
                                      Routing table size (# of pointers)
                                                                                        38
まとめ
  Skip
   Graphをベースとした
 構造化オーバレイを提案
 ◦  メンバシップベクタを廃止しリストIDを導入
 ◦  近隣ノード集合を導入
 ◦  Skip Graphと比べて経路表サイズを増やし,
    検索時間を短縮
 ◦  経路表サイズが増えているにも関わらず,
    挿入時間も高速化(ただしメッセージ数は増加)
 ◦  経路表サイズはrとwで調整可能
                                39
今後の課題
  他のアルゴリズムとの比較
◦  Skip Tree Graphなど


  リスト数修復アルゴリズムの実装および評価


  ネットワーク距離を考慮した拡張




                       40

Skip Graphをベースとした高速な挿入と検索が可能な構造化オーバレイの提案

  • 1.
    Skip Graphをベースとした 高速な挿入と検索が可能な 構造化オーバレイの提案 大阪市立大学大学院 創造都市研究科 播磨 裕太・安倍 広多 石橋 勇人・松浦 敏雄 2013/01/25 電子情報通信学会 情報ネットワーク研究会
  • 2.
    はじめに   Peer-to-Peer(P2P)への注目 ◦ 耐故障性 ◦  負荷分散 ◦  スケーラビリティ   オーバレイネットワーク ◦  非構造化オーバレイ ◦  構造化オーバレイ 2
  • 3.
    Skip Graph   構造化オーバーレイの1つ ◦ DHTでは困難な範囲検索・近傍検索が可能 範囲検索 6以上10以下 2 5 6 7 9 14 近傍検索 5未満で最大 3
  • 4.
    本研究の目的   Skip Graphをベースとした 新たな構造化オーバレイの提案 ◦  ノードの挿入・検索を高速化 4
  • 5.
    Skip Graphの構造 10* 5 9 Level 2 01* 2 14 00* 6 1つのリスト内のノード数は1/w 1* 5 9 Level 1 0*平均logw(N)レベル 2 6 14 Level 0 2 5 6 9 14 メンバシップベクタ 010 101 001 100 011 (基数w = 2) 5
  • 6.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 9 Level 1 0* 2 6 14 Level 0 2 5 6 9 14 メンバシップベクタ 010 101 001 100 011 6
  • 7.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 7
  • 8.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 左に辿ってメンバシップベクタを確認 1* 5 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 010 101 8 メンバシップベクタ 001 111 100 011
  • 9.
    Skip Graphの挿入アルゴリズム  ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 さらに左に辿ってメンバシップベクタを確認 1* 5 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 010 001 9 メンバシップベクタ 101 111 100 011
  • 10.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* Level 1に挿入 6 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 10
  • 11.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 010 001 11 メンバシップベクタ 101 111 100 011
  • 12.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 011 12 111 100
  • 13.
    Skip Graphの挿入アルゴリズム   ノード7を挿入 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 7 9 Level 1 0* 2 6 14 リスト内にマッチするノードが   見つからなかった Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 13
  • 14.
    Skip Graphの挿入アルゴリズム 11*   ノード7を挿入 7 10* 5 9 Level 2 01* 11から始まるリストを作って挿入終了 2 14 00* 6 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 14
  • 15.
    Skip Graphの挿入アルゴリズム   挿入時間: O(w * logwn) ◦  挿入時間: 挿入時に通信したノード数 ◦  各レベルで横方向に辿るノード数は平均 w ◦  レベルは logwn Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 15
  • 16.
    Skip Graphの検索アルゴリズム 11*   7 →2 7 10* 5 9 Level 2 01* 2 14 00* 6 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 16
  • 17.
    Skip Graphの検索アルゴリズム 11*   7 →2 7 10* 5 9 Level 2 01* 2 14 00* 6 Level 2では自分自身し かいない 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 17
  • 18.
    Skip Graphの検索アルゴリズム 11*   7 →2 7 10* 5 9 Level 2 01* 2 14 00* Level 1において目的のノードに 6 近い方へ転送(1hop目) 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 18
  • 19.
    Skip Graphの検索アルゴリズム 11*   7 →2 7 10* 5 9 Level 2 01* 2 14 00* Level 1において左方向に 6 転送すると2を飛び越えてしまう 1* 5 7 9 Level 1 0* 2 6 14 Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 19
  • 20.
    Skip Graphの検索アルゴリズム 11*   7 →2 7 10* 5 9 Level 2 01* 2 14 00* 6 挿入時間:  O(w  *  logw(n)) 1* 5 7 9 Level 1 0* 2 6 14 Level 0において目的のノードが見 つかったので転送(2hop目) Level 0 2 5 6 7 9 14 メンバシップベクタ 010 101 001 111 100 011 20
  • 21.
    提案手法   Skip Graphをベース ◦  メンバシップベクタを廃止 ◦  目標とするリスト数wを導入 (メンバシップベクタの基数wに相当)   各レベルで左方向にポインタを複数持つ ◦  これを経路表として利用 ◦  右方向は1ノードのみ(Skip Graphと同様) 21
  • 22.
    提案手法  各レベルで左方向最大 r 個のノードへの ポインタを持つ レベル 近隣ノード集合 1 7, 5, 14 ◦  近隣ノード集合と呼ぶ 0 7, 6, 5 ◦  r = 3 Level 1 5 7 9 14 2 6 12 2 5 6 7 9 12 14 Level 0 ノード9のLevel 0における近隣ノード集合 22
  • 23.
    提案手法(リストID)  各リストにIDを振る リストID ◦  接続先の選択に利用 5 7 9 14 82 Level 1 2 6 12 83 2 5 6 7 9 12 14 80 Level 0 23
  • 24.
    提案手法(リストID)  近隣ノード集合内の各ノードが 1つ上のレベルで所属するリストIDも保持する 5 7 9 14 82 Level 1 2 6 12 83 2 5 6 7 9 12 14 80 Level 0 レベル 近隣ノード集合 1 796, 592, 1496 0 782, 683, 582 24
  • 25.
    提案手法|挿入アルゴリズム (1)   ノード9を挿入 ◦  各レベルの目標リスト数w = 2 ◦  近隣ノード集合のサイズr = 3 5 7 14 82 Level 1 2 6 12 83 2 5 6 7 12 14 80 Level 0 25
  • 26.
    提案手法|挿入アルゴリズム (2)   ノード9を挿入 ◦  各レベルの目標リスト数w = 2 ◦  近隣ノード集合のサイズr = 3 5 7 14 82 Level 1 2 6 12 83 7を追加 2削除 2 5 6 7 9 12 14 80 Level 0 レベル 近隣ノード集合 レベル 近隣ノード集合 0 683, 582, 283 0 712, 613, 512, 213 682 583 282 コピー 13 12 13 26
  • 27.
    提案手法|挿入アルゴリズム (3) 目標リスト数に達しているので リストID82か83のどちらかと接続   ノード9を挿入 ◦  各レベルの目標リスト数w = 2 ◦  近隣ノード集合のサイズr = 3 ID82のリストを選択 (乱数で) 5 7 9 14 82 Level 1 2 6 12 83 2 5 6 7 9 12 14 80 Level 0 レベル 近隣ノード集合 レベル1において 少なくともリストが2つ 0 782, 683, 582 存在することがわかる 27
  • 28.
    提案手法|挿入アルゴリズム (4)   1つの近隣ノード集合を参照するだけでは リスト数を過小評価する可能性がある   (リスト数 < w) と判断すると新たにリストを 作るため,目標リスト数(w)をオーバーする   より正確なリスト数を得るため,得られたリ スト数がw未満ならば,最大k個の近隣ノー ド集合を参照
  • 29.
    提案手法|挿入アルゴリズム (5)   ノード9を挿入 ◦  各レベルの目標リスト数w = 2 精度を上げるため近隣ノード集合内で最も 遠いノードからも近隣ノード集合を取得 ◦  近隣ノード集合のサイズr = 3 5 6 7 9 14 82 Level 1 2 12 83 レベル1にリストが少なくとも2つ あると判断できるようになった 2 5 6 7 9 12 14 80 Level 0 レベル リスト数判断用近隣ノード集合 レベル 近隣ノード集合 レベル1において,リスト数は 0 1つしかないと誤判定してしまう 83 782, 683, 582, 283, 1482, 12 0 782, 683, 582 29
  • 30.
    挿入アルゴリズムの比較   Skip Graph ◦  1つずつ辿るため 挿入に時間がかかる メンバシップベクタ 010 101 001 111 100 011   提案手法 ◦  近隣ノード集合を利用し一度にr 個まとめて チェックすることで高速化 2 5 6 7 9 12 14 80 Level 0 レベル 近隣ノード集合 0 782, 683, 582 30
  • 31.
    提案手法の検索アルゴリズム 7 14 96   7 → 17 5 9 92 レベル 近隣ノード集合 2 12 94 2 14?? 1 6 592, 1496, 992 17 93 Level 2 0 683, 582, 280 5 7 9 14 82 Level 1 2 6 12 17 83 2 5 6 7 9 12 14 17 80 Level 0 31
  • 32.
    検索アルゴリズムの比較   Skip Graph ◦  平均経路表サイズは約2 * logwn   提案手法 ◦  近隣ノード集合も経路表として用いる ◦  平均経路表サイズは約(r + 1) * logwn   経路表サイズが大きい分,より高速に目的ノードに 近づける 32
  • 33.
    評価(挿入時間)   提案手法と従来のSkip Graphとで オーバレイネットワークを構成し,挿入時間 の分布を測定 ◦  ノード数: 10,000 ◦  Skip Graph   メンバシップベクタの基数w = 2 ◦  提案手法   目標リスト数: w = 2, 4, 8, 16   近隣ノード集合数: r = w 33
  • 34.
    実験結果(挿入時間) 0.3 提案手法 (w = 16) Better 0.25 提案手法 (w = 8) 提案手法 0.2 (w = 2) Frequency 0.15 提案手法 (w = 4) 0.1 Skip 0.05 Graph 0 10 20 30 40 50 60 70 80 90 100 Insertion time 34
  • 35.
  • 36.
    実験結果(検索時間) 0.35 提案手法 (w = 16) 0.3 Better 0.25 提案手法 (w = 8) Frequency 0.2 提案手法 (w = 4) 0.15 提案手法 0.1 (w = 2) Skip 0.05 Graph 0 0 5 10 15 20 25 30 Number of hops 36
  • 37.
  • 38.
    実験結果(経路表サイズと検索時間の関係) 10 Skip Graph 9 Ave. lookup time 8 w=2 7 r=w 6 w=4 r = 2w 5 r = 3w w=8 4 w = 64 3 w = 16 r = 4w w = 32 2 10 100 1000 Routing table size (# of pointers) 38
  • 39.
    まとめ   Skip Graphをベースとした 構造化オーバレイを提案 ◦  メンバシップベクタを廃止しリストIDを導入 ◦  近隣ノード集合を導入 ◦  Skip Graphと比べて経路表サイズを増やし, 検索時間を短縮 ◦  経路表サイズが増えているにも関わらず, 挿入時間も高速化(ただしメッセージ数は増加) ◦  経路表サイズはrとwで調整可能 39
  • 40.
    今後の課題   他のアルゴリズムとの比較 ◦  SkipTree Graphなど   リスト数修復アルゴリズムの実装および評価   ネットワーク距離を考慮した拡張 40