Monitoring Streams - A New Class of Data Management Applications (2002)

December 11, 2021

常時発生するセンサー情報などのストリームデータの監視にむいたDBMS, Auroraの設計の解説。 既存のDBMSは人の行動で起きるトランザクションを想定している。 一方、ストリームデータは、人の能動的な活動によらず絶えず発生し、異常値があればアラートを出す必要がある。 また、時系列に長期的なデータをとり、リアルタイムに応答するために不要なデータを切り捨て負荷を下げる必要もある。 Auroraは、以上のストリーミング、トリガー、不正確なデータ、リアルタイム性の4特性を扱えるモデルとして、ストリームデータの出力元をソース、ノードをストリームデータの計算、シンクをアプリケーションとするDAGで抽象化されたアーキテクチャをもつ。 ノードが計算には、ストリームをウィンドウに区切る、フィルタ、リサンプリングなどの8つがある。 DAGで表せる計算をAurora内部で実行し、その結果が接続するアプリケーションにわたる。

AuroraのDAGにあるのは、以下に図示するように、ストリームデータのソースや計算に限らない。 図中のbは計算のノードにあたる。 DAGは動的に変更することもでき、変更で追加、削除される黒い点、connection pointは、DAGを分岐させるだけでなく、ストレージにノード時点の計算結果をキャッシュする。 a 出力の種類であるcontinuous query, view, ad-hoc queryは、別の名前がついているが、DAG内部の仕組みに違いはない。 continous queryは、一度処理されたデータを再び再処理する必要のないリアルタイム処理に使われる。 viewはアプリケーションが接続されていない状態であり、ad-hoc queryはconnection pointにいつでも接続できる出力先で、connection pointにキャッシュされたデータのみを参照できる。

QOSは、応答時間、負荷を下げるために落としたデータ量、処理したデータ量の3つにもとづき、Auroraはこれを最適化する。 具体的には、計算ノードを結合したり、順番を入れ替えたりする。

論文をこちらからダウンロードできます。 画像は論文から引用されています。