(57)【要約】【課題】ウィンドウ演算を含むストリーム分析処理においてリアルタイムの分析を実現すること。【解決手段】ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存部と、中間状態をメモリからハードディスクに退避させる退避部と、ハードディスクに退避した中間状態がストリーム分析装置におけるウィンドウを外れる第１時間前に、中間状態を前記ハードディスクからメモリに書き戻す書き戻し部と、を備える。【選択図】  図１
2018163560.tif 000002
【特許請求の範囲】
【請求項１】
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存手段と、
前記中間状態を前記メモリからハードディスクに退避させる退避手段と、
前記ハードディスクに退避した前記中間状態が前記ストリーム分析装置におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻し手段と、
を備えるデータ管理装置。
【請求項２】
前記退避手段は、第２時間ごとに前記中間状態を前記メモリからハードディスクに退避させる請求項１に記載のデータ管理装置。
【請求項３】
時間を基にしたウィンドウ演算において、前記保存手段、前記退避手段および前記書き戻し手段は、ウィンドウサイズを前記第２時間で分割した時間内の分析対象データを分析した結果を前記中間状態とする請求項２に記載のデータ管理装置。
【請求項４】
前記書き戻し手段は、前記ハードディスクへ退避させた前記中間状態のうち最も古く生成された最古中間状態の記憶領域を保持する保持手段を有し、該最古中間状態の生成時刻が前記ウィンドウサイズから前記第１時間以後までの間である場合に、該最古中間状態を前記ハードディスクから前記メモリに書き戻す請求項３に記載のデータ管理装置。
【請求項５】
前記保持手段は、前記中間状態が前記ハードディスクに退避された順序を記憶し、前記書き戻し手段は、最初に退避された中間状態を前記最古中間状態とする請求項４に記載のデータ管理装置。
【請求項６】
第３時間ごとに、前記ハードディスクから前記メモリに書き戻した前記中間状態を、前記ストリーム分析処理装置に出力する出力手段をさらに備える請求項１乃至５のいずれか１項に記載のデータ管理装置。
【請求項７】
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存ステップと、
前記中間状態を前記メモリからハードディスクに退避させる退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
を含むデータ管理方法。
【請求項８】
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存ステップと、
前記中間状態を前記メモリからハードディスクに退避させる退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
をコンピュータに実行させるデータ管理プログラム。
【請求項９】
ウィンドウ演算においてデータを分析するストリーム分析手段と、
前記ストリーム分析手段が新規の分析対象データを分析した中間状態をメモリに保存する保存手段と、
前記中間状態を前記メモリからハードディスクに退避する退避手段と、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻し手段と、
を備え、
前記ストリーム分析手段は、前記ハードディスクから前記メモリに書き戻した前記中間状態を用いて前記ウィンドウ演算を更新するストリーム処理システム。
【請求項１０】
ウィンドウ演算においてデータを分析するストリーム分析ステップと、
前記ストリーム分析ステップにおいて新規の分析対象データを分析した中間状態をメモリに保存する保存ステップと、
前記中間状態を前記メモリからハードディスクに退避する退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
を含み、
前記ストリーム分析ステップにおいて、前記ハードディスクから前記メモリに書き戻した前記中間状態を用いて前記ウィンドウ演算を更新するストリーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム処理システム、ストリーム処理方法、データ管理装置、データ管理方法およびデータ管理プログラムに関する。
【背景技術】
【０００２】
上記技術分野においては、ストリーム分析処理システムによって無限に発生する時刻順データをリアルタイムに分析することができる。あらかじめ分析ルールをシステムに登録しておくことにより、システムはデータ発生と同時に分析ルールを実行しリアルタイムに分析結果を出力する。
【０００３】
ここで、リアルタイムな分析を実現するため、このような分析の中間状態は小容量かつアクセスが高速なメモリに保存される。また、メモリ資源が枯渇した場合には、分析中間状態は大容量かつ低速なハードディスクに退避される。特に、時間を基にしたウィンドウ演算では、一定時間内に発生するデータ数が予測困難である場合、メモリ資源使用量が発生データ数に依存するため、システム設計段階でハードディスクへの退避を避けることが困難である。
【０００４】
メモリからハードディスクへデータを退避させる方法の一例として、非特許文献１においては、メモリに保存されているデータの内、参照されてから最も長い時間が経ったデータを低速な記憶デバイスであるハードティスクへ退避させる方法が示されている。メモリ使用量が高くなると、メモリ内に保存されているデータの中から参照されてから最も長い時間が経過したデータを検索し、当該データをメモリからハードディスクに退避する。また、ハードディスクに退避されたデータがアクセスされると、当該データをメモリに書き戻す。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＪＨ  Ｈｅｎｎｅｓｙ  ａｎｄ  ＤＡ  Ｐａｔｔｅｒｓｏｎ，  “Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ａ  ｑｕａｎｔｉｔａｔｉｖｅ  ａｐｐｒｏａｃｈ”，  Ｍｏｒｇａｎ  Ｋａｕｆｍａｎ，  １９９６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記文献に記載の技術をストリーム分析処理のウィンドウ演算におけるメモリからハードディスクへの分析中間状態の退避に用いた場合、ウィンドウ内の分析中間状態を示す順序付リストの先頭データは古いデータであるため参照されてからの時間が長いので、ハードディスクに退避されている。そして、ウィンドウ範囲から外れる際の処理で順序付リストの先頭データをアクセスしようとした場合、メモリに書き戻されてないのでメモリに無い場合が多い。その結果、ウィンドウ範囲から外れたデータに基づく処理をするためには、そのデータを低速なハードディスクからメモリに読み出す必要があり、このメモリへの読み込み時間によって分析処理が遅延し、リアルタイムでの分析が困難となる。
【０００７】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係るデータ管理装置は、
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存手段と、
前記中間状態を前記メモリからハードディスクに退避させる退避手段と、
前記ハードディスクに退避した前記中間状態が前記ストリーム分析装置におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻し手段と、
を備える。
【０００９】
上記目的を達成するため、本発明に係るデータ管理方法は、
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存ステップと、
前記中間状態を前記メモリからハードディスクに退避させる退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
を含む。
【００１０】
上記目的を達成するため、本発明に係るデータ管理プログラムは、
ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させる保存ステップと、
前記中間状態を前記メモリからハードディスクに退避させる退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
をコンピュータに実行させる。
【００１１】
上記目的を達成するため、本発明に係るストリーム処理システムは、
ウィンドウ演算においてデータを分析するストリーム分析手段と、
前記ストリーム分析手段が新規の分析対象データを分析した中間状態をメモリに保存する保存手段と、
前記中間状態を前記メモリからハードディスクに退避する退避手段と、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻し手段と、
を備え、
前記ストリーム分析手段は、前記ハードディスクから前記メモリに書き戻した前記中間状態を用いて前記ウィンドウ演算を更新する。
【００１２】
上記目的を達成するため、本発明に係るストリーム処理方法は、
ウィンドウ演算においてデータを分析するストリーム分析ステップと、
前記ストリーム分析ステップにおいて新規の分析対象データを分析した中間状態をメモリに保存する保存ステップと、
前記中間状態を前記メモリからハードディスクに退避する退避ステップと、
前記ハードディスクに退避した前記中間状態がストリーム分析処理におけるウィンドウを外れる第１時間前に、前記中間状態を前記ハードディスクから前記メモリに書き戻す書き戻しステップと、
を含み、
前記ストリーム分析ステップにおいて、前記ハードディスクから前記メモリに書き戻した前記中間状態を用いて前記ウィンドウ演算を更新する。
【発明の効果】
【００１３】
本発明によれば、ウィンドウ演算を含むストリーム分析処理においてリアルタイムの分析を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係るデータ管理装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係るデータ管理装置を含むストリーム処理システムの構成を示すブロック図である。
【図２Ｂ】本発明の第２実施形態に係るデータ管理装置の動作概要を示す図である。
【図３Ａ】本発明の第２実施形態に係るデータ管理装置の機能構成を示すブロック図である。
【図３Ｂ】本発明の第２実施形態に係るデータ管理用パラメータ保存部の構成を示す図である。
【図４Ａ】本発明の第２実施形態に係るデータ管理装置の順序付きリスト通知保存処理の動作手順を示すシーケンス図である。
【図４Ｂ】本発明の第２実施形態に係るデータ管理装置のデータ保存処理の動作手順を示すシーケンス図である。
【図４Ｃ】本発明の第２実施形態に係るデータ管理装置の時間マージン前の処理の動作手順を示すシーケンス図である。
【図４Ｄ】本発明の第２実施形態に係るデータ管理装置の更新時間間隔毎の処理の動作手順を示すシーケンス図である。
【図４Ｅ】本発明の第２実施形態に係るデータ管理装置のウィンドウ外データの出力処理の動作手順を示すシーケンス図である。
【図５】本発明の第２実施形態に係る順序付リスト情報保存部の構成を示す図である。
【図６】本発明の第２実施形態に係る新規データアドレス保存部の構成を示す図である。
【図７】本発明の第２実施形態に係るハードディスク内データアドレス保存部の構成を示す図である。
【図８】本発明の第２実施形態に係るウィンドウ外データアドレス保存部の構成を示す図である。
【図９】本発明の第２実施形態に係るデータ管理装置のハードウェア構成を示すブロック図である。
【図１０】本発明の第２実施形態に係るデータ管理装置の処理手順を示すフローチャートである。
【図１１Ａ】本発明の第２実施形態に係る順序付きリスト通知保存処理の手順を示すフローチャートである。
【図１１Ｂ】本発明の第２実施形態に係るデータ保存処理の手順を示すフローチャートである。
【図１１Ｃ】本発明の第２実施形態に係る時間マージン前の処理手順を示すフローチャートである。
【図１１Ｄ】本発明の第２実施形態に係る更新時間間隔毎の処理手順を示すフローチャートである。
【図１１Ｅ】本発明の第２実施形態に係るウィンドウ外データの出力処理の手順を示すフローチャートである。
【図１２】本発明の第３実施形態に係る順序付リスト情報保存部の構成を示す図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１６】
［第１実施形態］
本発明の第１実施形態としてのデータ管理装置１００について、図１を用いて説明する。データ管理装置１００は、ストリーム分析装置が分析した中間状態を管理する装置である。
【００１７】
図１に示すように、データ管理装置１００は、保存部１０１と、退避部１０２と、書き戻し部１０３と、を含む。保存部１０１は、ストリーム分析装置１１０が新規の分析対象データを分析した中間状態をメモリ１２０に保存させる。退避部１０２は、中間状態をメモリ１２０からハードディスク１３０に退避させる。書き戻し部１０３は、ハードディスク１３０に退避した中間状態がストリーム分析装置１１０におけるウィンドウを外れる第１時間前に、中間状態をハードディスク１３０からメモリ１２０に書き戻す。
【００１８】
本実施形態によれば、ハードディスクに退避した中間状態がウィンドウを外れる前にメモリに書き戻すことにより、ウィンドウ演算を含むストリーム分析処理においてリアルタイムの分析を実現することができる。
【００１９】
［第２実施形態］
次に、本発明の第２実施形態に係るデータ管理装置およびデータ管理装置を含むストリーム処理システムについて説明する。本実施形態に係るストリーム処理システムは、発生するデータをリアルタイムに分析するシステムに係り、データ管理装置は、特に分析の中間状態を管理する装置に関する。
【００２０】
本実施形態においては、ストリーム分析装置が新規の分析対象データを分析した中間状態をメモリに保存させ、更新時間間隔ＡＴごとに、中間状態を前記メモリからハードディスクに退避させる。そして、ハードディスクに退避した中間状態がストリーム分析装置におけるウィンドウを外れる読出時間マージンＭＴ前に、中間状態をハードディスクからメモリに書き戻す。そして、ストリーム分析装置におけるウィンドウを外れる中間状態をメモリからアクセス可能とすることにより、ストリーム分析処理においてリアルタイムの分析を実現する。
【００２１】
時間を基にしたウィンドウ演算においては、ウィンドウサイズを更新時間間隔ＡＴで分割した時間内の分析対象データを分析した結果を中間状態とする。そして、ハードディスクへ退避させた中間状態のうち最も古く生成された最古中間状態の記憶領域を保持し、最古中間状態の生成時刻がウィンドウサイズから読出時間マージンＭＴ以後までの間である場合に、この最古中間状態をハードディスクからメモリに書き戻す。なお、中間状態がハードディスクに退避された順序が記憶されており、最古中間状態は、最初に退避された中間状態とする。
【００２２】
また、データ出力時間間隔ＯＴごとに、ハードディスクからメモリに書き戻した中間状態を、ストリーム分析処理装置に出力する。
【００２３】
《前提技術の説明》
最初に、本実施形態の特徴を明瞭にするため、その前提となる技術について説明する。
【００２４】
ストリーム分析処理システムによって無限に発生する時刻順データをリアルタイムに分析することができる。あらかじめ分析ルールを分析処理システムに登録しておくことにより、分析処理システムはデータ発生と同時に分析ルールを実行しリアルタイムに分析結果を出力する。
【００２５】
ストリーム分析処理システムにおいて、発生データ間の相関を分析するための処理としてウィンドウ演算がある。ウィンドウ演算は一定数のデータもしくは一定時間内に発生したデータに対して処理を行う演算であり、処理するデータの集合はウィンドウと呼ばれる。また、データ数を基にしたウィンドウ演算における処理対象データ数、時間を基にしたウィンドウ演算における分析対象となるデータの時間はウィンドウサイズと呼ばれる。時間を基にしたウィンドウ演算のために、ストリーム分析処理システムはウィンドウ範囲内の全データの、分析対象フィールドおよびデータの生成時間を保持する必要がある。
【００２６】
（ウィンドウ演算の例）
ウィンドウ演算の例として、「１０秒間で事象Ａおよび事象Ｂが発生したか否か」を分析する例がある。これをリアルタイム分析するため、１０秒前から現時点までに発生した事象Ａまたは事象Ｂであるデータのフィールドおよび生成時刻をウィンドウとして全て保持しておき、ウィンドウ内に事象Ａのデータと事象Ｂのデータがともに存在することをチェックする。
【００２７】
リアルタイムなウィンドウ演算を実施するため、一般的なストリーム分析処理システムではウィンドウ内の全データを一括して分析するのではなく、ウィンドウに加わったデータおよびウィンドウから外れたデータに対してのみ分析処理を実施する。ウィンドウに加わったデータとは新規に発生したデータである。一方、ウィンドウから外れたデータを管理するため、ストリーム分析処理システムはデータを分析中間状態として順序付リストに蓄積する。時間を基にしたウィンドウ演算の場合はデータを順序付リストの先頭データの発生時刻がウィンドウサイズより以前となれば、先頭データがウィンドウから外れる。
【００２８】
「１０秒間で事象Ａおよび事象Ｂが発生したか否か」を分析する例をこの方法で分析する場合、事象Ａ、事象Ｂが１０秒前から現時点までで発生した数を示す表を用いて分析を行う。新規に発生したデータに対しては、新規発生データが事象Ａである場合は表の事象Ａが発生した回数を１増加させ、事象Ａおよびデータ生成時刻を記載したデータを順序付リストに追記する。新規発生データが事象Ｂである場合は表の事象Ｂが発生した回数を１増加させ、事象Ｂおよびデータ生成時刻を記載したデータを順序付リストに追記する。さらに表をチェックし、事象ＡおよびＢの発生回数が０でなければ、１０秒間で事象Ａおよび事象Ｂが発生したことを示す。なお、到着データがその他の事象の場合には何もしない。
【００２９】
一方、順序付リストの先頭データを参照し、先頭データがウィンドウを外れた場合、つまり、先頭データの生成時刻が現在時刻よりウィンドウサイズ以前であれば、当該データの事象をチェックする。当該データが事象Ａである場合、表の事象Ａが発生した回数を１減少させ、当該データが事象Ｂである場合、表の事象Ｂが発生した回数を１減少させる。さらに、順序付リストから当該データを削除する。これによって当該分析を効率的に実施することができる。
【００３０】
リアルタイムな分析を実現するため、このような分析の中間状態は小容量かつアクセスが高速なメモリに保存される。また、メモリ資源が枯渇した場合には、分析中間状態は大容量かつ低速なハードディスクに退避される。特に時間を基にしたウィンドウ演算では、一定時間内に発生するデータ数が予測困難である場合、メモリ資源使用量がこれに依存するため、システム設計段階でハードディスクへの退避を避けることが困難である。
【００３１】
メモリからハードディスクへデータを退避させる方法として、非特許文献１では、メモリに保存されているデータの内、参照されてから最も長い時間が経ったデータを低速な記憶デバイスへ退避させる方法が示されている。メモリ使用量が高くなると、メモリ内に保存されているデータの中から参照されてから最も長い時間が経過したデータを検索し、当該データをメモリからハードディスクに退避する。また、ハードディスクに退避されたデータにアクセスされると、当該データをメモリに書き戻す。
【００３２】
（前提技術の課題）
しかし、この方式をウィンドウ演算におけるメモリからハードディスクへの分析中間状態退避に用いた場合、順序付リストの先頭データは古いデータであるため参照されてからの時間が長く、ハードディスクに退避される。また、ウィンドウ範囲から外れる際にのみアクセスされるため、メモリに書き戻されず、ウィンドウ範囲から外れる際にメモリに保存されていない。この結果、低速なハードディスクからウィンドウ範囲から外れたデータをメモリに読み出す必要があり、このメモリへの読み込み時間によって分析処理が遅延し、リアルタイムでの分析が困難となる。
【００３３】
《本実施形態の説明》
本実施形態においては、ストリーム処理の時間を基にしたウィンドウ演算において、メモリからハードディスクへのデータ退避を行いつつ、ウィンドウ範囲から外れるデータをメモリに保存する。これにより、ウィンドウ範囲から外れるデータの読み込み時間を高速にさせ、リアルタイムな分析を実現させるシステムおよび方法を提供する。
【００３４】
《ストリーム処理システム》
（構成）
図２Ａは、本実施形態に係るデータ管理装置２１０を含むストリーム処理システム２００の構成を示すブロック図である。
【００３５】
図２Ａおいて、ストリーム処理システム２００は、ストリーム分析装置２０１と、データ管理装置２１０と、メモリ２２０と、ハードディスク２３０と、を備える。
【００３６】
ストリーム分析装置２０１は、タスクＴi（ｉ＝０〜ｎ）を実行してストリームデータを分析して分析結果を出力すると共に、各タスクＴiの分析の中間状態をウィンドウ形式で保存するようにデータ管理装置２１０に指示する。
【００３７】
データ管理装置２１０は、タスクＴiからの順序付リストＬi（ｉ＝０〜ｎ）についての情報通知およびデータ記録要求に基づき、メモリ２２０またはハードディスク（以下、ＨＤＤとも記載する）２３０にデータを配置し、順序付リストＬiのアドレスＡi（ｉ＝０〜ｎ）を記録する。タスクからの順序付リスト情報通知は、順序付リストＬiのＩＤおよび順序付リストＬiのウィンドウサイズＷＳi（ｉ＝０〜ｎ）で構成される。また、データ記録要求は、順序付リストＬiのＩＤおよびこれに追加するデータＤで構成される。一方、データ管理装置２１０は、タスクＴiからの順序付リストＬiのデータ読み出し要求に基づき、配置アドレスＡi（ｉ＝０〜ｎ）を参照することによりメモリ２２０から順序付リストＬiの最古データを読み出し、タスクＴiに送信する。タスクＴiからの順序付リストＬiからのデータ読み出し要求は、順序付リストＬのＩＤで構成される。
【００３８】
（動作概要）
図２Ｂは、本実施形態に係るデータ管理装置２１０の動作概要を示す図である。図２Ｂを参照しながら、本実施形態の動作概要を説明する。
【００３９】
本実施形態によれば、順序付リストＬiを複数の分割順序付リストＤＬij（ｉ＝０〜ｎ、ｊ＝１〜ｍ）をハードディスク２３０に配置するかメモリ２２０に配置するかを動的に決定する。そのため、分割順序付リストＤＬijのアドレスＤＡijを管理する。分割順序付リストＤＬijは一定の更新時間間隔ＡＴに発生したデータを順序付で保持する。分割順序付リストＤＬi1は現時刻から更新時間間隔ＡＴ時間前までに発生したデータを保持し、分割順序付リストＤＬijは(ＡＴ×（ｊ−１）)時間前から(ＡＴ×ｊ)時間前までに発生したデータを保持する。分割順序付リストＤＬijの数ｍはウィンドウサイズＷＳiを更新時間間隔ＡＴで除すことにより得られる。
【００４０】
ここで、データがウィンドウ範囲から外れる読み出し時間マージンＭＴ時間前において、新規到着データは、蓄積するためメモリ２２０のＤＬi0に保存され、ＤＬik（ｋ＝２〜ｍ）はハードディスク２３０に退避され、ＤＬimはウィンドウサイズ外となるデータを保存しているためメモリ２２０に保存された状態にする。このため、ウィンドウ範囲から外れる次の更新時間より読み出し時間マージンＭＴ時間前に、ハードディスク２３０に退避された最も古い分割順序付リストＤＬimのデータを、メモリ２２０に書き戻す。そして、更新時間間隔ＡＴごとに、ＤＬi0に保存された新規到着データを先頭の分割順序付リストＤＬi1に移動し、メモリ２２０保存しておいた先頭の分割順序付リストＤＬi1をハードディスク２３０にＤＬi2として退避する。これにより、順序付リストＬiにおいてウィンドウ範囲から外れるデータを事前にアクセスが高速なメモリ２２０に配備し、高速に読み出しを行うことが可能となる。
【００４１】
《データ管理装置の構成》
図３Ａは、本実施形態に係るデータ管理装置２１０の機能構成を示すブロック図である。
【００４２】
図３に示すように、本実施形態によるデータ管理装置２１０は、順序付リスト情報受付部３２１と、順序付リスト情報管理部３２２と、順序付リスト情報保存部３２３と、データ保存要求受付部３２４と、データ配置決定部３２５と、アドレス管理部３２６と、を有する。さらに、データ管理装置２１０は、新規データアドレス保存部３２７と、ハードディスク内データアドレス保存部３２８と、ウィンドウ外データアドレス保存部３２９と、メモリ入出力部３３０と、ハードディスク入出力部３３１と、データ出力部３３２と、データ管理用パラメータ保存部３３３と、を有する。
【００４３】
（データ管理用パラメータ保存部）
図３Ｂは、本実施形態に係るデータ管理用パラメータ保存部３３３の構成を示す図である。
【００４４】
本実施形態において、データ管理用パラメータ保存部３３３としては、更新時間間隔ＡＴと、読出時間マージンＭＴと、データ出力時間間隔ＯＴと、を保存する。更新時間間隔ＡＴおよびデータ出力間隔ＯＴはウィンドウサイズより十分小さな値であればよく、例えば１秒程度を設定する。また、読み出し時間マージンＭＴはハードディスクの読み出し性能に依存するが、例えば数百ｍｓ程度を設定する。なお、これら数値はその一例であって、限定されるものではない。また、データ管理用パラメータも、上記パラメータに限定されない。
【００４５】
《データ管理装置の動作シーケンス》
以下、図４Ａ〜図４Ｅを参照いて、本実施形態の図３Ａに示したデータ管理装置２１０の動作シーケンスを説明する。なお、図４Ａ〜図４Ｅはデータ管理装置２１０の動作シーケンスを説明するための一例であり、これに限定されるわけではなく、特に図４Ａ〜図４Ｅの動作シーケンスを組み合わせても、シーケンス順序を変更してもよい。
【００４６】
（順序付リスト情報の取得処理）
図４Ａは、本実施形態に係るデータ管理装置２１０の順序付きリスト通知保存処理の動作手順を示すシーケンス図である。
【００４７】
順序付リスト情報受付部３２１は、タスクＴiからの順序付リスト情報通知を受け、順序付リストＬiについてのウィンドウサイズＷＳiおよびタスクＴiのＩＤを、順序付リスト情報管理部３２２に通知する（Ｓ４０１）。通知を受けた順序付リスト情報管理部３２２は、順序付リストＬiのウィンドウサイズＷＳiおよびタスクＴiのＩＤを、順序付リスト情報保存部３２３に保存する（Ｓ４０２）。
【００４８】
（順序付リスト情報保存部）
図５に、本実施形態に係る順序付リスト情報保存部３２３の構成を示す。順序付リスト情報保存部３２３は、順序付リストＬiのＩＤ５０１に対応付けて、ウィンドウサイズＷＳi５０２およびタスクＴiのＩＤ５０３を保存する。
【００４９】
（データの保存処理）
図４Ｂは、本実施形態に係るデータ管理装置２１０のデータ保存処理の動作手順を示すシーケンス図である。
【００５０】
データ保存要求受付部３２４は、タスクＴiからのデータＤの保存要求を受け取り（Ｓ４１１）、順序付リストＬiとデータＤとをデータ配置決定部３２５に通知する（Ｓ４１２）。通知を受けたデータ配置決定部３２５は、順序付リストＬiの新規到着データアドレス要求をアドレス管理部３２６に送信し（Ｓ４１３）、これを受けたアドレス管理部３２６は、分割順序付リストＤＬi0のアドレスＤＡi0を新規データアドレス保存部３２７から読み込み、データ配置決定部３２５に通知する（Ｓ４１４）。
【００５１】
（新規データアドレス保存部）
図６に、本実施形態に係る新規データアドレス保存部３２７の構成を示す。新規データアドレス保存部３２７は、順序付リストＬiのＩＤ６０１に対応付けて、分割順序付リストＤＬi0のアドレスＤＡi0６０２を保存する。
【００５２】
取得した分割順序付リストＤＬi0のアドレスＤＡi0が空である場合（Ｓ４１５のＹＥＳ）、データ配置決定部３２５は新規にアドレスを取得し（Ｓ４１６）、アドレス管理部３２６に通知する（Ｓ４１７）。なお、新規アドレスの取得は、新規データＤのメモリに対する保存がＯＳ(Operating System)を経由して行われる時に、ＯＳより取得される。アドレス管理部３２６は、通知されたアドレスを新規データアドレス保存部３２７に分割順序付リストＤＬi0のアドレスＤＡi0として保存する（Ｓ４１８）。取得した分割順序付リストＤＬi0のアドレスＤＡi0が空でない場合（Ｓ４１５のＮＯ）、新規にアドレスを取得しない。
【００５３】
データ配置決定部３２５は、取得したアドレスＤＡi0の分割順序付リストＤＬi0にデータＤを保存するよう、メモリ入出力部３３０に要求する（Ｓ４１９）。メモリ入出力部３３０は、メモリ２２０のアドレスＤＡi0にデータＤを保存する（Ｓ４２０−Ｓ４２１）。
【００５４】
（時間マージンＭＴ前のメモリへの書き戻し処理）
図４Ｃは、本実施形態に係るデータ管理装置２１０の時間マージン前の処理の動作手順を示すシーケンス図である。この処理は、最古中間状態データがウィンドウ範囲から外れる更新時間間隔ＡＴ毎の次の更新処理から、読み出し時間マージンＭＴ時間前に実行される。
【００５５】
データ配置決定部３２５は、次の更新処理から読み出し時間マージンＭＴ時間前に、順序付リストＬiのハードディスク２３０内にある分割順序付リストＤＬimのアドレスＤＡimをアドレス管理部３２６に要求する（Ｓ４３１）。アドレス管理部３２６は、ハードディスク内データアドレス保存部３２８から分割順序付リストＤＬimのアドレスＤＡimを取得し、データ配置決定部３２５に通知する（Ｓ４３２）。
【００５６】
（ハードディスク内データアドレス保存部）
図７に、本実施形態に係るハードディスク内データアドレス保存部３２８の構成を示す。ハードディスク内データアドレス保存部３２８は、分割順序付リストＤＬijのＩＤ７０１に対応付けて、開始アドレスＤＡijを保存する。
【００５７】
データ配置決定部３２５は、受け取った分割順序付リストＤＬimのアドレスＤＡimが空であるか否かを確認する（Ｓ４３３）。分割順序付リストＤＬimのアドレスＤＡimが空でない場合（Ｓ４３３のＮＯ）、データ配置決定部３２５は、ハードディスク入出力部３３１に分割順序付リストＤＬimのアドレスＤＡimのデータ読み出しを要求する（Ｓ４３４）。ハードディスク入出力部３３１は、ハードディスク２３０のアドレスＤＡimから分割順序付リストＤＬimを読み出し、データ配置決定部３２５に通知する（Ｓ４３５）。
【００５８】
これを受けた、データ配置決定部３２５は、ハードディスク２３０から読み出した分割順序付リストＤＬimの保存を、メモリ入出力部３３０に要求する（Ｓ４３６）。要求を受けたメモリ入出力部３３０は、分割順序付リストＤＬimをメモリ２２０に保存する（Ｓ４３７）。メモリ２２０は、保存したアドレスをメモリ入出力部３３０に通知し、メモリ入出力部３３０は、通知されたアドレスを分割順序付リストＤＬimのアドレスＤＡimとしてデータ配置決定部３２５に通知する（Ｓ４３８）。
【００５９】
通知を受けたデータ配置決定部３２５は、分割順序付リストＤＬimの保存先アドレスＤＡimの保存をアドレス管理部３２６に要求する（Ｓ４３９）。これを受けたアドレス管理部３２６は、ウィンドウ外データアドレス保存部３２９に、順序付リストＬiのウィンドウ外データのアドレスＤＡimを保存する（Ｓ４４０）。
【００６０】
（ウィンドウ外データアドレス保存部）
図８は、本実施形態に係るウィンドウ外データアドレス保存部３２９の構成を示す。ウィンドウ外データアドレス保存部３２９は、順序付リストＬiのＩＤ８０１に対応付けて、開始アドレスＡimを保存する。
【００６１】
さらに、データ配置決定部３２５は、アドレス管理部３２６にハードディスク内データアドレス更新要求を送信する（Ｓ４４１）。アドレス更新要求を受け取ったアドレス管理部３２６は、ハードディスク内データアドレス保存部３２８を参照し、ハードディスク内データアドレス保存部３２８に保存にされている分割順序付リストＤＬijのアドレスＤＡijを、アドレスＤＡi(j+1)に更新する（Ｓ４４２）。なお、分割順序付リストＤＬimのアドレスＤＡimが空である場合（Ｓ４３３のＹＥＳ）、ステップＳ４４１に進む。
【００６２】
上記の分割順序付リストＤＬimのハードディスク２３０からメモリ２２０への書き戻し、ハードディスク内データアドレス更新処理を、全ての順序付リストＬiに対して実施する。
【００６３】
（更新時間間隔ＡＴ毎のウィンドウ更新）
図４Ｄは、本実施形態に係るデータ管理装置２１０の更新時間間隔ＡＴ毎の処理の動作手順を示すシーケンス図である。
【００６４】
上記の分割順序付リストＤＬimのハードディスク２３０からメモリ２２０への書き戻し、ハードディスク内データアドレス更新処理を全ての順序付リストＬiに対して実施してから、読み出し時間マージンＭＴ時間後（すなわち、更新時刻に）、データ配置決定部３２５は、分割順序付リストＤＬi1のアドレスＤＡi1からのデータ読み出し要求を、メモリ入出力部３３０に送信する（Ｓ４５１）。分割順序付リストＤＬi1のアドレスＤＡi1からのデータ読み出し要求を受けたメモリ入出力部３３０は、分割順序付リストＤＬi1をメモリ２２０から読み出し、データ配置決定部３２５に通知する（Ｓ４５２）。これを受けたデータ配置決定部３２５は、メモリ入出力部３３０に分割順序付リストＤＬi1の削除要求を送信する（Ｓ４５３）。削除要求を受けたメモリ入出力部３３０は、メモリ２２０から分割順序付リストＤＬi1を削除する（Ｓ４５４）。
【００６５】
データ配置決定部３２５は、アドレス管理部３２６に新規データ保存アドレス要求を送信する（Ｓ４５５）。新規データアドレス要求を受け取ったアドレス管理部３２６は、新規データアドレス保存部３２７を参照し、順序付リストＬiの新規データを保存している分割順序付リストＤＬi0のアドレスＤＡi0をデータ配置決定部３２５に通知する（Ｓ４５６）。分割順序付リストＤＬi0のアドレスＤＡi0の通知を受けたデータ配置決定部３２５は、分割順序付リストＤＬi0のアドレスＤＡi0からのデータ読み出し要求を、メモリ入出力部３３０に送信する（Ｓ４５７）。分割順序付リストＤＬi0のアドレスＤＡi0からのデータ読み出し要求を受けたメモリ入出力部３３０は、分割順序付リストＤＬi0をメモリ２２０から読み出し、データ配置決定部３２５に通知する（Ｓ４５８）。これを受けたデータ配置決定部３２５は、読出した分割順序付リストＤＬi0のアドレスＤＡi0からのデータを分割順序付リストＤＬi1のアドレスＤＡi1に保存するように、メモリ入出力部３３０に要求する（Ｓ４５９）。メモリ入出力部３３０は、読出した分割順序付リストＤＬi0のアドレスＤＡi0からのデータを分割順序付リストＤＬi1のアドレスＤＡi1のメモリ２２０に保存する（Ｓ４６０）。すなわち、分割順序付リストＤＬi0のアドレスＤＡi0に一時保存していた新規データを、分割順序付リストＤＬi1のアドレスＤＡi1に移動する。また、データ配置決定部３２５は、新規データアドレス削除要求をアドレス管理部３２６に送信し、これを受けたアドレス管理部３２６は、順序付リストＬiの分割順序付リストＤＬi0のアドレスＤＡi0を新規データアドレス保存部３２７から削除する（Ｓ４６１）。
【００６６】
同時に、データ配置決定部３２５は、読出した分割順序付リストＤＬi1を分割順序付リストＤＬi2とし、分割順序付リストＤＬi2の保存要求をハードディスク入出力部３３１に送信する（Ｓ４６２）。分割順序付リストＤＬi2の保存要求を受けたハードディスク入出力部３３１は、分割順序付リストＤＬi2をハードディスク２３０に保存し（Ｓ４６３）、保存した分割順序付リストＤＬi2のアドレスＤＡi2を、データ配置決定部３２５に通知する（Ｓ４６４）。これを受けたデータ配置決定部３２５は、分割順序付リストＤＬi2のアドレスＤＡi2を保存するようアドレス管理部３２６に要求する（Ｓ４６５）。要求を受けたアドレス管理部３２６は、ハードディスク内データアドレス保存部３２８に、分割順序付リストＤＬi2のアドレスＤＡi2を保存する（Ｓ４６６）。
【００６７】
上記の順序付リストＬiへの新規データの保存、元の最新データのメモリ２２０からハードディスク２３０への退避および新規データアドレス削除処理を、全ての順序付リストＬiに対して実施する。
【００６８】
（データ出力処理）
図４Ｅは、本実施形態に係るデータ管理装置２１０のウィンドウ外データの出力処理の動作手順を示すシーケンス図である。
【００６９】
本処理において、データ出力部３３２は、順序付リストＬiのウィンドウ外データをタスクＴiに出力する。このため、データ出力部３３２は、データ出力時間間隔ＯＴごとにアドレス管理部３２６に順序付リストＬiのウィンドウ外データアドレス要求を送信する（Ｓ４７１）。順序付リストＬiのウィンドウ外データアドレス要求を受けたアドレス管理部３２６は、ウィンドウ外データアドレス保存部３２９から順序付リストＬiのウィンドウ外データアドレスＤＡimを取得し、データ出力部３３２に通知する（Ｓ４７２）。
【００７０】
通知を受けたデータ出力部３３２は、順序付リストＬiのウィンドウ外データを含む分割順序付リストＤＬimのアドレスＤＡimのデータをメモリ２２０から読み出すようメモリ入出力部３３０に要求する（Ｓ４７３）。要求を受けたメモリ入出力部３３０は、メモリ２２０から分割順序付リストＤＬimのアドレスＤＡimのデータを取得し、受け取ったデータを分割順序付リストＤＬimとしてデータ出力部３３２に送信する（Ｓ４７４）。
【００７１】
また、データ出力部３３２は、順序付リスト情報管理部に順序付リストＬiの出力タスクＴiのＩＤを要求する（Ｓ４７５）。要求を受けた順序付リスト情報管理部３２２は、順序付リスト情報保存部３２３から順序付リスト情報リストＬiの出力先タスクＴiのＩＤを取得し、取得した出力先タスクＴiのＩＤをデータ出力部３３２に通知する（Ｓ４７６）。
【００７２】
データ出力部３３２は、メモリ入出力部３３０より受け取った分割順序付リストＤＬimの、先頭データからウィンドウ外データとなったデータを検索し（Ｓ４７７）、ウィンドウ外となったデータを順序付リスト情報管理部３２２より受け取った出力先タスクＴiにウィンドウ外データとして通知する（Ｓ４７８）。さらに、データ出力部３３２は、メモリ入出力部３３０に分割順序付リストＤＬimからウィンドウ外データとなったデータの数ＮＥＤをメモリ２２０から削除するよう要求する（Ｓ４７９）。メモリ入出力部３３０は、受け取ったウィンドウ外データとなったデータ数ＮＥＤだけ、メモリ２２０の分割順序付リストＤＬimの先頭からデータを削除する（Ｓ４８０）。
【００７３】
上記のウィンドウ外データの出力およびウィンドウ外データのメモリ２２０からの削除を、全ての順序付リストＬiに対して実施する。
【００７４】
《データ管理装置のハードウェア構成》
図９は、本実施形態に係るデータ管理装置２１０のハードウェア構成を示すブロック図である。
【００７５】
図９で、ＣＰＵ９１０は演算制御用のプロセッサであり、プログラムを実行することで図３Ａの機能構成部を実現する。ＣＰＵ９１０は複数のプロセッサを有し、異なるプログラムやモジュール、タスク、スレッドなどを並行して実行してもよい。ＲＯＭ９２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。ネットワークインタフェース９３０は、データ管理装置２１０が、ネットワークを介して、ストリーム分析装置２０１や、システム構成によってはメモリ２２０やハードティスク２３０などとの通信を制御する。
【００７６】
ＲＡＭ９４０は、ＣＰＵ９１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。なお、本実施形態においては、ＲＡＭ９４０がメモリ２２０として使用されるが、メモリ２２０をＲＡＭ９４０と別途に設けてもよい。ＲＡＭ９４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。タイマデータ９４１は、現在の時刻のデータである。更新時刻データ９４２は、更新時間間隔ＡＴ毎の時刻のデータであり、次の更新時刻を示す。書戻時刻データ９４３は、次の更新時刻より読出時間マージン前の時刻のデータであり、ウィンドウ外となる中間状態のハードディスク２３０からメモリ２２０への書き戻し時刻を示す。出力時刻データ９４４は、データ出力時間間隔ＯＴ毎の時刻のデータであり、次のウィンドウ外となった中間状態のストリーム分析装置２０１への出力時刻を示す。ウィンドウデータ９４５は、タスクＴi毎のウィンドウ内の中間状態を記憶する。分析中間状態受信データ９４６は、ストリーム分析装置２０１がストリームデータから分析して送信した中間状態を受信したデータである。ハードディスク退避データ９４７は、更新時間間隔ＡＴ毎の更新時刻に、メモリ２２０からハードディスク２３０に退避するデータである。メモリ書戻データ９４８は、次の更新時刻にウィンドウ外となる中間状態を読出時間マージン前の時刻に、ハードディスク２３０からメモリ２２０に書き戻したデータである。
【００７７】
ストレージ９５０は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。データ管理用パラメータ保存部３３３は、図３Ｂに示したデータ管理装置２１０がデータ管理用に使用するパラメータの保存部である。順序付リスト情報保存部３２３は、図５に示したストリーム分析装置２０１の各タスクからデータ管理装置２１０に送信された順序付リスト情報の保存部である。新規データアドレス保存部３２７は、図６に示したストリーム分析装置２０１の各タスクからデータ管理装置２１０に送信された新規データ（分析中間状態）を保存するアドレスの保存部である。ハードディスク内データアドレス保存部３２８は、図７に示したデータ管理装置２１０がハードディスク２３０に保存したウィンドウデータのアドレスの保存部である。ウィンドウ外データアドレス保存部３２９は、図８に示したデータ管理装置２１０がハードディスク２３０からメモリ２２０に書き戻したウィンドウ外データのアドレスの保存部である。
【００７８】
ストレージ９５０には、以下のプログラムが格納される。データ管理装置制御プログラム９５１は、データ管理装置２１０の全体を制御するためのプログラムである。順序付リスト情報制御モジュール９５２は、順序付リスト情報の保存および参照を制御するモジュールである。データ保存制御モジュール９５３は、ストリーム分析装置２０１の各タスクからデータ管理装置２１０に送信された新規データ（分析中間状態）の保存を制御するモジュールである。メモリアクセスデータ準備モジュール９５４は、ハードディスク２３０に退避しているデータの内でウィンドウ外となるデータをメモリ２２０に書き戻す処理を制御するモジュールである。ウィンドウ更新制御モジュール９５５は、更新時間間隔ＡＴごとに、ウィンドウ内のデータの新規データへの更新と、古いデータのメモリ２２０からハードディスク２３０への退避とを制御するモジュールである。ウィンドウ外データ出力制御モジュール９５６は、ウィンドウ外となってメモリ２２０に書き戻されたデータのストリーム分析装置２０１への出力を制御するモジュールである。ディスク入出力制御モジュール９５７は、入出力インタフェース９６０を介して接続されたハードディスク２３０でのデータ退避あるいはハードディスク２３０からのデータ読み出しを制御するモジュールである。
【００７９】
入出力インタフェース９６０は、接続されたハードディスク２３０とのインタフェースを行なう。なお、本実施形態において、ハードディスク２３０は入出力インタフェース９６０を介して接続された例を示すが、ネットワークインタフェース９３０を介して接続されてもよい。
【００８０】
なお、図９のＲＡＭ９４０やストレージ９５０には、データ管理装置２１０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【００８１】
《データ管理装置の処理手順》
図１０は、本実施形態に係るデータ管理装置２１０の処理手順を示すフローチャートである。このフローチャートは、図９のＣＰＵ９１０がＲＡＭ９４０を使用して実行し、図３Ａの機能構成部を実現する。
【００８２】
データ管理装置２１０は、ステップＳ１０１１において、ストリーム分析装置２０１からの順序付リスト情報の受信か否かを判定する。順序付リスト情報の受信であれば、データ管理装置２１０は、ステップＳ１０１３において、順序付リスト情報取得処理を実行する。順序付リスト情報の受信でなければ、データ管理装置２１０は、ステップＳ１０２１において、ストリーム分析装置２０１からの分析中間状態のデータ保存要求であるか否かを判定する。データ保存要求であれば、データ管理装置２１０は、ステップＳ１０２３において、新規データ保存処理を実行する。
【００８３】
順序付リスト情報の受信でなくデータ保存要求でなければ、データ管理装置２１０は、ステップＳ１０３１において、ウィンドウ外となるデータをハードディスクからメモリに書き戻すタイミングであるか否かを判定する。ハードディスクからメモリに書き戻すタイミングであれば、データ管理装置２１０は、ステップＳ１０３３において、メモリデータ準備処理を実行する。順序付リスト情報の受信でなくデータ保存要求でなくメモリに書き戻すタイミングでなければ、データ管理装置２１０は、ステップＳ１０４１において、新規データをウィンドウ内に入れてウィンドウを更新するタイミングであるか否かを判定する。ウィンドウを更新するタイミングであれば、データ管理装置２１０は、ステップＳ１０４３において、ウィンドウ更新処理を実行する。順序付リスト情報の受信でなくデータ保存要求でなくメモリに書き戻すタイミングでなくウィンドウを更新するタイミングでなければ、データ管理装置２１０は、ステップＳ１０５１において、ウィンドウ外となったデータをストリーム分析装置２０１に出力するタイミングであるか否かを判定する。ウィンドウ外となったデータをストリーム分析装置２０１に出力するタイミングであれば、データ管理装置２１０は、ステップＳ１０５３において、ウィンドウ外データ出力処理を実行する。
【００８４】
（順序付きリスト通知保存処理）
図１１Ａは、本実施形態に係る順序付きリスト通知保存処理（Ｓ１０１３）の手順を示すフローチャートである。このフローチャートは、データ管理装置２１０が、ストリーム分析装置２０１のタスクから順序付リスト情報を受信した場合に実行する。
【００８５】
データ管理装置２１０は、ステップＳ１１１１において、ストリーム分析装置２０１のタスクＴiからの順序付リストＬi、ウィンドウ幅ＷＳiを受信する。そして、データ管理装置２１０は、ステップＳ１１１３において、（Ｌi，ＷＳi，Ｔi）の組を順序付リスト情報保存部３２３に保存する。
【００８６】
（データ保存処理）
図１１Ｂは、本実施形態に係るデータ保存処理（Ｓ１０２３）の手順を示すフローチャートである。このフローチャートは、データ管理装置２１０が、ストリーム分析装置２０１のタスクから新規データを受信した場合に実行する。
【００８７】
データ管理装置２１０は、ステップＳ１１２１において、ストリーム分析装置２０１のタスクから新規データ（分析中間状態）を受信する。データ管理装置２１０は、ステップＳ１１２３において、新規データを保存するメモリ２２０のアドレスを新規データアドレス保存部３２７から取得する。
【００８８】
データ管理装置２１０は、ステップＳ１１２５において、新規データアドレス保存部３２７のアドレスが空であるか否かを判定する。アドレスが空であれば、データ管理装置２１０は、ステップＳ１１２７において、新規アドレスを取得して、ステップＳ１１２９において、取得したアドレスを新規データのアドレスとして新規データアドレス保存部３２７に保存する。
【００８９】
そして、データ管理装置２１０は、ステップＳ１１３１において、取得した新規データアドレスを用いて受信した新規データをメモリ２２０に保存する。
【００９０】
（時間マージンＭＴ前の書き戻し処理）
図１１Ｃは、本実施形態に係る更新時間間隔毎の処理（Ｓ１０３３）の手順を示すフローチャートである。このフローチャートは、データ管理装置２１０が、ウィンドウの最古中間状態がウィンドウから外れる、次の更新時刻の時間マージンＭＴ前に実行する。
【００９１】
データ管理装置２１０は、ステップＳ１１４１において、ハードディスク内データアドレス保存部３２８からＬＤimの開始アドレスＤＡimを取得する。データ管理装置２１０は、ステップＳ１１４３において、開始アドレスＤＡimが空であるか否かを判定する。開始アドレスＤＡimが空であれば、データ管理装置２１０は、ステップＳ１１５３に進んで、ハードディスク内データアドレス保存部３２８の各アドレスを更新する。
【００９２】
開始アドレスＤＡimが空でなければ、データ管理装置２１０は、ステップＳ１１４５において、ハードディスク２３０からＤＬimを読み出して、ステップＳ１１４７において、読み出したＤＬimをメモリ２２０に保存する（書き戻す）。データ管理装置２１０は、ステップＳ１１４９において、メモリ２２０への保存アドレスを取得して、ステップＳ１１５１において、取得した保存アドレスをウィンドウ外データアドレス保存部３２９に保存する。そして、データ管理装置２１０は、ステップＳ１１５３に進んで、ハードディスク内アドレス保存部３２８の各アドレスを更新する。
【００９３】
（更新時間間隔ＡＴ毎の更新処理）
図１１Ｄは、本実施形態に係る時間マージン後の処理（Ｓ１０４３）の手順を示すフローチャートである。このフローチャートは、データ管理装置２１０が、更新時間間隔ＡＴごとに実行する。
【００９４】
データ管理装置２１０は、ステップＳ１１６１において、更新前の最新データ(ＤＬi1)をメモリ２２０から読み出し、保持する。そして、データ管理装置２１０は、ステップＳ１１６３において、更新前の最新データ(ＤＬi1)をメモリ２２０から削除する。
【００９５】
データ管理装置２１０は、ステップＳ１１６５において、新規データアドレス保存部３２７から新規データの保存アドレスを取得する。データ管理装置２１０は、ステップＳ１１６７において、取得した保存アドレスのデータ(ＤＬi0)を読み出し、ステップＳ１１６９において、読み出したデータを更新後の最新データ(ＤＬi1)として、メモリ２２０に保存する。
【００９６】
データ管理装置２１０は、ステップＳ１１７１において、ステップＳ１１６１で読み出した更新前の最新データ(ＤＬi1)をハードディスク２３０にＤＬi2として退避する。そして、データ管理装置２１０は、ステップＳ１１７３において、保存アドレスをハードディスク内アドレス保存部３２８に保存する。
【００９７】
（ウィンドウ外データの出力処理）
図１１Ｅは、本実施形態に係るウィンドウ外データの出力処理（Ｓ１０５３）の手順を示すフローチャートである。このフローチャートは、データ管理装置２１０が、データ出力時間間隔ＯＴごとに、あるいは、ストリーム分析装置２０１からデータ要求があれば、実行する。
【００９８】
データ管理装置２１０は、ステップＳ１１８１において、ウィンドウ外データアドレス保存部３２９からウィンドウ外データアドレス(ＤＡim)を取得する。そして、データ管理装置２１０は、ステップＳ１１８３において、メモリ２２０から取得アドレスのデータを読み出す。
【００９９】
データ管理装置２１０は、ステップＳ１１８５において、順序付リスト情報保存部３２３から読出データの出力タスクのＩＤを取得する。データ管理装置２１０は、ステップＳ１１８７において、読出データ中のウィンドウ外データを検索する。データ管理装置２１０は、ステップＳ１１８９において、ウィンドウ外データをストリーム分析装置２０１の対応タスクに通知する。そして、データ管理装置２１０は、ステップＳ１１９１において、ウィンドウ外データをメモリ２２０から削除する。
【０１００】
本実施形態によれば、更新時間間隔の処理でハードディスクに退避した中間状態がウィンドウを外れる所定時間前にメモリに書き戻してストリーム分析装置に出力することにより、ウィンドウ演算を含むストリーム分析処理においてリアルタイムの分析を実現することができる。例えば、分析中間状態のサイズがメモリサイズを超える場合でも、リアルタイムなウィンドウ演算処理を実現することができる。
【０１０１】
［第３実施形態］
次に、本発明の第３実施形態に係るデータ管理装置およびデータ管理装置を含むストリーム処理システムについて説明する。本実施形態に係るデータ管理装置およびデータ管理装置を含むストリーム処理システムは、上記第２実施形態と比べると、データ管理用パラメータである更新時間間隔ＡＴ、読出時間マージンＭＴおよびデータ出力時間間隔ＯＴの少なくとも１つが外部から設定可能である点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０２】
（順序付リスト情報保存部）
図１２は、本実施形態に係る順序付リスト情報保存部１２２３の構成を示す図である。なお、図１２において、図５と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【０１０３】
順序付リスト情報保存部１２２３は、順序付リストＬiのＩＤ５０１に対応付けて、更新時間間隔ＡＴ１２０４と、読出時間マージンＭＴ１２０５と、データ出力時間間隔ＯＴ１２０６と、の少なくとも１つがタスクＴiや順序付リストＬiの特徴に対応して変更可能に保存する。
【０１０４】
本実施形態によれば、タスクＴiや順序付リストＬiの特徴に対応して、ウィンドウ演算を含むストリーム分析処理においてリアルタイムの分析を、より効率的に実現することができる。
【０１０５】
［他の実施形態］
上記実施形態においては、より高速、高価および小容量の記憶媒体としてメモリを使用し、より低速、廉価および大容量の記憶媒体としてハードディスクを使用して、メモリからハードディスクに退避する例を基に説明したが、記憶媒体の組合せは本実施形態に限定されるものではない。
【０１０６】
また、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０１０７】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現するデータ管理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【図１】
2018163560.tif 000003
【図２Ａ】
2018163560.tif 000004
【図２Ｂ】
2018163560.tif 000005
【図３Ａ】
2018163560.tif 000006
【図３Ｂ】
2018163560.tif 000007
【図４Ａ】
2018163560.tif 000008
【図４Ｂ】
2018163560.tif 000009
【図４Ｃ】
2018163560.tif 000010
【図４Ｄ】
2018163560.tif 000011
【図４Ｅ】
2018163560.tif 000012
【図５】
2018163560.tif 000013
【図６】
2018163560.tif 000014
【図７】
2018163560.tif 000015
【図８】
2018163560.tif 000016
【図９】
2018163560.tif 000017
【図１０】
2018163560.tif 000018
【図１１Ａ】
2018163560.tif 000019
【図１１Ｂ】
2018163560.tif 000020
【図１１Ｃ】
2018163560.tif 000021
【図１１Ｄ】
2018163560.tif 000022
【図１１Ｅ】
2018163560.tif 000023
【図１２】
2018163560.tif 000024