2009年7月27日月曜日

DSMS のベンチマーク

Linear Road: A Stream Data Management Benchmark, VLDB 2004
http://www.cs.brandeis.edu/~linearroad/

Aurora (Brandeis 大学、ブラウン大学、MIT の共同DSMSプロジェクト)と STREAM (スタンフォードのDSMSプロジェクト)のストリーム処理システムのベンチマークシステム。

渋滞度や事故に応じた課金体系(混んでいるときに通行すれば高くなる)を採用する高速道路課金システムをシミュレート。RDBMS (System X と製品名を隠している)と Aurora とを比較し、Aurora が5倍程度、性能を発揮。(STREAMのデータはなし)

チャレンジは以下のとおり。

(1) 入力は?
ただ単にランダムではいけないこと。車などの動きをシミュレーション
--> MITSIM (MIT Traffic Simulator) という交通シミュレーターを使用
(2) 性能比較のメトリックスをどうするか?
クエリが Continuous であるため Completion time ではなく、Response Time と スループット(処理したクエリ数)を用いる
--> L-Rating というスコア(レスポンスタイムとスループット)を導入
(3) Validation をどうするか? 
ベンチマークとして、同じクエリに対して、その時々の状況(混雑度)によって出力となる料金が異なる。よって、ベンチマーク自体、
   ひとつのクエリに対して、複数の料金を返す
(4) 現在、Continuous Query は存在しない
--> 特定のクエリ言語を作るのではなく、フォーマルに predicate calculus を使用

各車両からは位置情報を30秒に1回、 1%の確率でクエリをシステムに発行。(その中で50%は account balance, 10% は 1日の合計料金、40%
は目的地までの時間)

DSMS はそれら常に到着するデータを受信し、以下の処理を実行
(1) あるセグメント上に車が何台存在するか、平均速度はどのくらいかを1分ごとに計測
(2) 事故も見地リアルタイムに渋滞度、事故度を判定
(3) クエリ(セグメントの統計及び事故の状況を見て料金や目的地に到着するまでの時間)を処理し、各車両に伝える

Linear Road はあくまでベンチマークの仕様。論文では、Aurora と System X (RDBMS の製品)を用いて Linear Road を実装。System X では、300行のクエリとコードからなる Stored Procedure として実装。

0 件のコメント:

コメントを投稿