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を分岐させるだけでなく、ストレージにノード時点の計算結果をキャッシュする。
出力の種類であるcontinuous query, view, ad-hoc queryは、別の名前がついているが、DAG内部の仕組みに違いはない。
continous queryは、一度処理されたデータを再び再処理する必要のないリアルタイム処理に使われる。
viewはアプリケーションが接続されていない状態であり、ad-hoc queryはconnection pointにいつでも接続できる出力先で、connection pointにキャッシュされたデータのみを参照できる。
QOSは、応答時間、負荷を下げるために落としたデータ量、処理したデータ量の3つにもとづき、Auroraはこれを最適化する。 具体的には、計算ノードを結合したり、順番を入れ替えたりする。
論文をこちらからダウンロードできます。 画像は論文から引用されています。