区間をキーとして保持する分散KVSの効率的な実現法
-
Upload
kota-abe -
Category
Technology
-
view
1.090 -
download
2
description
Transcript of 区間をキーとして保持する分散KVSの効率的な実現法
区間をキーとして保持する分散KVSの効率的な実現法
大阪市立大学大学院 創造都市研究科 岩崎章彦 安倍広多
石橋勇人 松浦敏雄
F-06
はじめに
分散KVS( Key- Val ue St or e) とは
分散KVS
get( 1 56) → A
Keyは単一の値
417 B→871 Y→
156 A→324 R→
Key → Val ue
膨大なデータを扱う大規模分散システム
Google, Amazon, Facebook
など
例:セッションログ管理
← Cさん
← Bさん
1時 4時
2時 7時
5時 8時← Aさん
4 時 5時
← Dさん
区間を持ったデータを扱うことは難しい!
分散KVS上で
例:セッションログ管理
1時 4時
2時 7時
5時 8時
4 時 5時分散KVSのキーは単一の値だから. . .
← Cさん
← Bさん
← Aさん
← Dさん
区間を持ったデータを扱うことは難しい!
分散KVS上で
例:セッションログ管理
1時
2時
5時
4時 5時Key
← Cさん
← Bさん
← Aさん
← Dさん
区間を持ったデータを扱うことは難しい!
分散KVS上で
例:セッションログ管理
1時
2時
5時
4時 5時
3時~6時にログインしていた人を検索したい
← Cさん
← Bさん
← Aさん
← Dさん
区間を持ったデータを扱うことは難しい!
分散KVS上で
例:セッションログ管理
1時
2時
5時
4時 5時検索されない
3時~6時にログインしていた人を検索したい
← Cさん
← Bさん
← Aさん
← Dさん
区間を持ったデータを扱うことは難しい!
分散KVS上で
本研究の目的
区間をキーとして扱える効率的な分散KVSの構成法を提案すること
関連研究
Range Key Ski p Gr aph
区間をキーとして扱える構造化オーバーレイネットワーク
Range Key 包含キー+
L0
L1
L2
L3
Ski p Gr aph がベース
1時 4時
2時 7時
5時 8時
4 時 5時
Range Key Ski p Gr aph
包含キーをたどって検索
Range Key
3時~6時にログインしていた人を検索したい
包含キー
Range Key Ski p Gr aph
問題点
(2)データの冗長性について考慮されていない
(1)領域計算量や挿入・削除のコストが最悪O( n)
n: Range Keyの数
※最悪の場合の例
提案手法
提案手法の流れ
研究の目的「区間をキーとして扱える 効率的な分散KVSの構成法を提案すること」
(アイディア) ・区間を2次元平面上の1 点で表現
区間に対する範囲検索を 2次元平面上の範囲検索に置き換える
・多数の区間( 点) を分散管理するためにZnet を用いる
例:セッションログ管理
← Cさん
← Bさん
1時 4時
2時 7時
5時 8時← Aさん
4 時 5時
← Dさん
( 1) 区間を2次元平面上の1点で表現
例えば,Aさんの場合
y
x下限値をXとする
上限値をYとする
( 1) 区間を2次元平面上の1点で表現
A( 4, 5)
4
5
Aさんがログインしていた区間[4,5]
y
x
D( 1, 4)
下限値をXとする
上限値をYとする
( 1) 区間を2次元平面上の1点で表現
← Aさん
← Bさん
← Cさん
A( 4, 5)
C( 2, 7)
B( 5, 8)
← Dさん
y
x
D( 1, 4)
下限値をXとする
上限値をYとする
( 1) 区間を2次元平面上の1点で表現
A( 4, 5)
C( 2, 7)
B( 5, 8) y ≧ x
3時~6時に
ログインしていた人を検索したい
← Cさん
← Bさん
1時 4時
2時 7時
5時 8時← Aさん
4 時 5時
← Dさん
( 2 ) 区間に対する範囲検索
3時~6時に
ログインしていた人を検索したい
← Cさん
← Bさん
1時 4時
2時 7時
5時 8時← Aさん
4 時 5時
← Dさん
( 2 ) 区間に対する範囲検索
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索する場合
3時~6時に
ログインしていた人を検索したい
← Cさん
← Bさん
1時 4時
2時 7時
5時 8時← Aさん
4 時 5時
← Dさん
( 2 ) 区間に対する範囲検索
②指定した検索範囲と重なりがある区間 ( 点 ) を検索する場合
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
3 ≦ x
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6 6y ≦
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6
y ≧ x
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6
検索領域
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6 この2次元平面上を検索すると...
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
①指定した検索範囲に真に含まれる区間 ( 点 ) を検索
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6区間に対する範囲検索
↓2次元平面上の
範囲検索に置き換え可能
y
x
D( 1, 4)
A( 4, 5)
C( 2, 7)
B( 5, 8)
3 時 ~ 6時
← Aさん
← Bさん← Cさん
← Dさん
3
6
②指定した検索範囲に重なりがある区間 ( 点 ) を検索
提案手法の流れ
研究の目的「区間をキーとして扱える 効率的な分散KVSの構成法を提案すること」
(アイディア) ・区間を2次元平面上の1 点で表現
区間に対する範囲検索を 2次元平面上の範囲検索に置き換える
・多数の区間( 点) を分散管理するためにZnet を用いるここまで説明終了
・検索ホップ数:O( log m) m: Znetに参加している物理ノード数
多数の区間 ( 点 ) の分散管理方法Znet: 多次元データを効率よく分散管理するための
構造化オーバーレイネットワーク
・複数のノードにデータを冗長配置
・空間充填曲線(Z 曲線) Ski p Graphy
x L0
L1
L2
L3
+
y
x
空間充填曲線(Z曲線)
0 1 2 3 4 5 6 7
0
1
2
3
4
5
6
7
・・・
・・・
Z曲線は2次元空間を埋め尽くす
2次元情報を1次元上で管理する
y
x
[ Znet ] 負荷分散処理
A
B
C D
E F
G
物理ノードA B C D
E F G
ノード挿入時高負荷なノードの
担当領域を分割,担当する
負荷の平準化
y
x
A B
C D
E F
G
A B C D E F G
Z 曲線 + Ski p Gr aph
y
x
A B
C D
E F
G
検索範囲
A B C D E F G
Z 曲線 + Ski p Gr aph
y
x
A B
C D
E F
G
A B C D E F000 100 010 001 011 110
A
B
A
B
AC
L0
L1
L2
L3
C
C
D
D
D
E
E
E
G111
F G
G
GF
F
検索範囲 Ski p Gr aph
Z 曲線 + Ski p Gr aph
考察
提案手法とRange Key Ski p Gr aph との比較
※ 登録するデータ数を n , 物理ノード数を m とする.
比較項目 RKS G 提案手法
挿入・削除のメッセージ数
最悪O(n) O( log m)
1レコードあたりの領域計算量
最悪O(n) O(1)
冗長性 なし あり
おわりに
本研究では、・区間をキーとして扱える 効率的な分散KVSの構成法を提案した .
・区間を2次元平面上の1 点で表現した.
区間に対する範囲検索を 2次元平面上の範囲検索に置き換えた.
・ 多数の区間( 点) を分散管理するためにZnet を用いた.
・今後の課題 ・提案手法の実装および定量的な評価 ・関連研究との性能比較を行う