FFSA_SDS_090508

リモートメモリを用いたセンサデータストリームの永続化
川島 英之 遠山 元道
今井 倫太 安西 祐一郎
0312006003
浅川 和久
2009/5/6
1
目的
• センサデータストリームを連続的に監視する
アプリケーションに対して、優れた鮮度と永続
性を持つデータを提供する
• 永続化に要する処理負荷を減らし、処理を高
速化する
2009/5/6
2
データ永続化処理の高速化
• リモートホストのメモリを永続化デバイスとす
ることで処理負荷を減らす
• WAL処理を間引いて負荷を減らす(WAL処理
されていないデータは障害時に失われる→補
間により復旧)
WAL(Write Ahead Logging) トランザクションロギングを行うための一般的な手法。
データファイルに書く前に変更分が先立ってロギングされていなければいけない。
ディスクへの書き込み回数が大幅に減る。
2009/5/6
3
提案手法
• リモートホストのメモリを永続化デバイス
• アプリケーションが読まないデータには投機
的なWALを適用(高確率で永続性を与える)
• 読むデータには永続性を保証するWALを適
用(優れた鮮度と永続性を提供)
2009/5/6
4
用語定義(1)
s = <at,v>
s センサデータ
at センサデータがデータベースに到着した時間
v センサデータの値
s read
センサデータを監視する処理であるセンサモニタが読めるs
s unread
センサモニタが読めないs
S
センサデータストリーム Sをsの集合と定義する
S read
s readのみを含むS
S unread
s unreadを含むS
2009/5/6
5
用語定義(2)
p
データベースシステムが電源障害によって停止しても、
データベースシステムに復旧できるsの性質
永続性
p strong
確実に保証されるp
p weak
確率的に保証されるp
p(s)
sに対してpを与える処理
p(s)→p strong p(s)の結果、sにp strongが与えられる
p(s)→p weak
2009/5/6
p(s)の結果、sにp weakが与えられる
6
用語定義(3)
f(rd(s read))
アプリケーションが読みだしたS readの鮮度
小さいほど優れる
f(rd(s read)) = rt(s read) – at(s read)
rd(s read)
センサモニタがs readを読みだす演算
rt(s read)
rd(s read)を行った時刻
2009/5/6
7
p(s)を間引きf(rd(s read))を下げる
•
•
•
•
p(s)を実行しなければマシンの負荷が減
f(rd(s read))は下がる
障害時、p(s)を実行しなかったsは失われる
補間でv(s)をある程度復旧できる可能性があ
る
• v(s)を多数補間すると、類似状況探索が困難
になる(補間値と真値の差が大きくなる)
2009/5/6
8
提案手法
• p(s read) → p strong
• p(s unread) → p weak
を同時に満たすことでWALの処理負荷を減らし
f(rd(s read))を下げる
2009/5/6
9
システム構成
2009/5/6
10
ログパケットの構造
メンバ
説明
ストリームID
識別子
データバッファID
使用中のデータバッファ
データバッファオフセット
データバッファ中のオフセット
ログコマンド
APPEND/RECOVERY/SWITCH
s
pを与えるもの
2009/5/6
11
DBバッファの構造
メンバ
説明
ストリームID
識別子
データバッファID
使用中のデータバッファ
間引きパラメータ
プロトコルを決定するパラメータ
データバッファ0,1
sの配列
排他制御子0,1
データバッファの排他制御子
永続化確認バッファ0,1
p(s)を実行したかを示すバッファ
2009/5/6
12
アペンダスレッド プロトコル
2009/5/6
13
センサモニタ プロトコル
2009/5/6
14
ログバッファの構造
メンバ
説明
ストリームID
識別子
データバッファ0,1
sの配列
受信確認バッファ0,1
sを受信したスレッドのタイプ
TCPフラグまたはUDPフラグ
2009/5/6
15
UDPログサーバ プロトコル
2009/5/6
16
TCPログサーバ プロトコル
2009/5/6
17
修復プロトコル
2009/5/6
18
リカバリ プロトコル
2009/5/6
19
実験
s read
s unread
提案方式
p tcp(s read)を実行
p udp(s unread)を実行する
TCP方式
p tcp(s read)を実行
p (s unread)を実行しない
D-WAL方式 D-WALを実行
p (s unread)を実行しない
D-WAL…ディスクに対してWALを行う
多くのデータベースシステムがこのプロトコルを採用している
同時実行ストリーム数が多い場合に、提案プロトコルは、比較手
法より優れた鮮度を持つデータを提供できた
2009/5/6
20
提案手法の限界点
• アペンドスレッドとログサーバスレッド間のトラ
フィック量
1. ログホストのスレッド処理能力
2. ネットワーク帯域幅
2009/5/6
21