データ・ストリーム管理システム (DSMS) の構成について説明する.
DSMS の構成をもっとも単純化すると下図のように表現することができる. DSMS は外部から 1 個または複数個のデータ・ストリームを入力し,それを記憶部に格納する. 記憶部には複数の種類のメモリがふくまれうる. しかし,たかいスループットが要求されるため,中心となるメモリは DRAM,SRAM などの RAM (ランダム・アクセス・メモリ)である. この点が,ディスクを中心とする データベース管理システム (DBMS) とはおおきくことなっている.
DSMS は外部からクエリを入力してその結果を出力する. DSMS がもつこの機能をクエリ機能 (query function) または質問応答機能とよぶことにする. クエリを入力して結果を出力するという点では DBMS とおなじだが,DBMS とはちがって,クエリを一度入力するとデータの到着にしたがって継続的に結果をかえす 継続的クエリ (continuous query) が中心的なやくわりをはたす.
この構成をフロー情報出力にあてはめると,DSMS は基本的にはエクスポータである. フロー情報出力においてはクエリが陽にあつかわれていないが, どこにどのような情報を出力するかを設定する必要があり, その設定は継続的クエリの一種とみなすことができる. 図におけるクエリ処理部は,出力プロセスだけでなく,IPFIX のモデルにおける計測プロセスもふくむ.
DSMS においては継続的にデータが入力されるため,入力されたデータをすべて保存することはできない. そのため,クエリの対象とならない,ふるいデータは廃棄する必要がる. また通常,高速 メモリは低速メモリとくらべて容量がかぎられるため,高速メモリの内容をふるいほうから圧縮したり 一部を抽出したりするなどして集約し,その結果を低速メモリにうつす必要があるかもしれない. このようにデータを集約する DSMS の機能を集約機能 (aggregation function) とよび,低速メモリ にうつす機能を蓄積機能 (storage function) とよぶことにする.
低速メモリは高速メモリとくらべるとスループットがひくいため,DSMS の最高処理性能を維持する ためには,データ蓄積の際にそのスループットをこえないようにデータの一部を破棄したり,圧縮したりする必要がある. また,DSMS においてはメモリ性能だけでなく CPU 性能が最高処理性能をきめるばあいがある. Arasu ら [Ara 09] はメモリが性能をきめるばあいと CPU が性能をきめるばあいをわけて対策を検 討している.
関連項目
参考文献
- [Ara 09] Arasu, A., Babcock, B., Babu, S., Cieslewicz, J., Datar, M., Ito, K., Motwani, R., Srivastava, U., and Widom, J., “STREAM: The Stanford Data Stream Management System”, in Garofalakis, M., Ge-hrke, J., Rastogi, R., ed., “Data Stream Management: Processing High-speed Data Streams (Data-Centric Systems and Applications)”, Springer-Verlag New York, 2009, http://dbpubs.stanford.edu:8090/pub/2004-20.