(57)【特許請求の範囲】
【請求項１】
複数のデータに対してデータ加工処理を並列に実行するデータ加工処理実行部と、
同時に実行することが許容されるデータ加工処理の上限数が同時実行数として示される同時実行数情報を記憶する情報記憶部と、
いずれかのデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定し、前記データ加工処理実行部で実行中のデータ加工処理の数を計数し、前記実行中のデータ加工処理の数と前記同時実行数情報に示される前記同時実行数とを比較し、前記実行中のデータ加工処理の数が前記同時実行数よりも少なければ、前記同時実行数と前記実行中のデータ加工処理の数との差であるデータ加工処理の実行可能残数と当該データの優先順位とを比較し、当該データの優先順位が前記実行可能残数以内の順位であれば、当該データに対するデータ加工処理の実行を許可するデータ加工処理判定部と
を有することを特徴とするデータ処理装置。
【請求項２】
前記情報記憶部は、
複数のテーブルの識別子が示されるとともに、テーブルの識別子ごとに、テーブル内のデータに対して直近に前記データ加工処理実行部によるデータ加工処理が完了した時刻である前回処理時刻が示される前回処理時刻情報を記憶しており、
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データを含んでいるテーブルの前回処理時刻に基づき、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記情報記憶部は、
複数のテーブルの識別子が示されるとともに、テーブルの識別子ごとに、テーブル内のデータに対してデータ加工処理が要求されたが、前記データ加工処理判定部によりデータ加工処理の実行が許可されずにデータ加工処理の実行が見送られた回数である処理見送り回数が示される処理見送り回数情報を記憶しており、
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データを含んでいるテーブルの処理見送り回数に基づき、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
複数のテーブルの識別子が示されるとともに、テーブルの識別子ごとに、テーブル内のデータのうち前記データ加工処理実行部によるデータ加工処理が実行されていないデータのデータ量である未処理データ量が示される未処理データ量情報を記憶しており、
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データを含んでいるテーブルの未処理データ量に基づき、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定することを特徴とする請求項１〜３のいずれかに記載のデータ処理装置。
【請求項５】
複数のテーブルの識別子が示されるとともに、テーブルの識別子ごとに、テーブル内のデータに対して前記データ加工処理実行部によるデータ加工処理が要求される周期である処理要求周期が示される処理要求周期情報を記憶しており、
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データを含んでいるテーブルの処理要求周期に基づき、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定することを特徴とする請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
複数のテーブルの識別子が示されるとともに、テーブルの識別子ごとに、テーブル内のデータに対して前記データ加工処理実行部によるデータ加工処理を完了すべき期限が処理完了期限として示される処理完了期限情報を記憶しており、
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対して前記データ加工処理実行部によるデータ加工処理が要求された際に、当該データを含んでいるテーブルの処理完了期限に基づき、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定することを特徴とする請求項１〜５のいずれかに記載のデータ処理装置。
【請求項７】
前記データ加工処理判定部は、
いずれかのテーブルに含まれるデータに対するデータ加工処理が、当該データを含んでいるテーブルの処理完了期限が過ぎた後も実行されていない場合に、
当該データに対するデータ加工処理の実行を前記データ加工処理実行部に指示することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記データ加工処理実行部は、
第１の記憶領域から読み出されたデータに対してデータ加工処理を実行し、データ加工処理実行後のデータのデータサイズと所定の基準データサイズとを比較し、
データ加工処理実行後のデータのデータサイズが前記基準データサイズ未満であれば、データ加工処理実行後のデータを、前記第１の記憶領域に格納し、
データ加工処理実行後のデータのデータサイズが前記基準データサイズ以上である場合に、データ加工処理実行後のデータを、前記基準データサイズごとに、前記第１の記憶領域と異なる第２の記憶領域に格納することを特徴とする請求項１〜７のいずれかに記載のデータ処理装置。
【請求項９】
前記データ加工処理実行部は、
それぞれが複数のフィールドから構成される複数のレコードにブロック化トランスポーズ変換が行われて生成された、ブロック化トランスポーズド・データに対してデータ加工処理を実行することを特徴とする請求項１〜８のいずれかに記載のデータ処理装置。
【請求項１０】
複数のデータに対してデータ加工処理を並列に実行するデータ加工処理実行ステップと、
同時に実行することが許容されるデータ加工処理の上限数が同時実行数として示される同時実行数情報を所定の記憶領域から読み出す情報読み出しステップと、
いずれかのデータに対して前記データ加工処理実行ステップによるデータ加工処理が要求された際に、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定し、前記データ加工処理実行ステップで実行中のデータ加工処理の数を計数し、前記実行中のデータ加工処理の数と前記同時実行数情報に示される前記同時実行数とを比較し、前記実行中のデータ加工処理の数が前記同時実行数よりも少なければ、前記同時実行数と前記実行中のデータ加工処理の数との差であるデータ加工処理の実行可能残数と当該データの優先順位とを比較し、当該データの優先順位が前記実行可能残数以内の順位であれば、当該データに対するデータ加工処理の実行を許可するデータ加工処理判定ステップとを有することを特徴とするデータ処理方法。
【請求項１１】
複数のデータに対してデータ加工処理を並列に実行するデータ加工処理実行ステップと、
同時に実行することが許容されるデータ加工処理の上限数が同時実行数として示される同時実行数情報を所定の記憶領域から読み出す情報読み出しステップと、
いずれかのデータに対して前記データ加工処理実行ステップによるデータ加工処理が要求された際に、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定し、前記データ加工処理実行ステップで実行中のデータ加工処理の数を計数し、前記実行中のデータ加工処理の数と前記同時実行数情報に示される前記同時実行数とを比較し、前記実行中のデータ加工処理の数が前記同時実行数よりも少なければ、前記同時実行数と前記実行中のデータ加工処理の数との差であるデータ加工処理の実行可能残数と当該データの優先順位とを比較し、当該データの優先順位が前記実行可能残数以内の順位であれば、当該データに対するデータ加工処理の実行を許可するデータ加工処理判定ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータに対してデータ加工処理を並列に実行するデータ処理装置等に関する。
【０００２】
従来のデータベースは、ディスクの利用効率やデータベースのアクセス効率を向上するため、データベースの最適化処理を行っている（例えば特許文献１）。
最適化処理は、例えば、データ圧縮処理といった、データベースに登録されたデータに対する加工処理である。
データベースへデータが登録され、登録されたデータに対する最適化処理が完了した後に、データの参照が可能となる。
【０００３】
また、データベースの最適化処理をスケジューリングするために蓄積量の監視によるタイミング制御やタイマーにより定期的に実行する方法が開示されている（例えば特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１０１０４１号公報
【特許文献２】特開２００６−００４３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２では、データベースの最適化処理タイミングを制御できるが、データベースにおいて複数の最適化処理が同時に発生する場合は、処理の競合により最適化処理性能が低下するという課題がある。
つまり、１つのデータの最適化処理に要する時間は、並行して実行されている最適化処理の数が多くなる程、長くなるため、同時に実行されている最適化処理が多い場合には、各データの最適化処理が長期化してしまう。
また、タイマーによる定期的な実行では、データベースへの登録処理から登録したデータを参照可能となるまでの時間（以降、遅延時間と記述する）に対して最適化処理にかかる時間が無視できない場合は、人手で適切な最適化処理の実行周期を与えることが必要であるが、人手による周期の設定は困難であった。
【０００６】
このように、従来のデータベース最適化方法では、センサデータのようにデータベースへ登録する周期が短く、複数の登録が並列で実行される場合に、最適化処理の影響により遅延時間内に処理を完了するように制御することが困難であった。
つまり、従来のデータベース最適化方法では、同時に実行される最適化処理の数を管理していないため、各データの最適化処理に要する時間を許容範囲内に収めることが困難であった。
【０００７】
本発明は、このような事情に鑑みたものであり、同時に実行されるデータ加工処理の数を管理することを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ処理装置は、
複数のデータに対してデータ加工処理を並列に実行するデータ加工処理実行部と、
同時に実行することが許容されるデータ加工処理の上限数が同時実行数として示される同時実行数情報を記憶する情報記憶部と、
いずれかのデータに対して前記データ加工処理実行部によるデータ加工処理が要求され
た際に、当該データに対して前記データ加工処理を待つデータのリストの中での優先順位を決定し、前記データ加工処理実行部で実行中のデータ加工処理の数を計数し、前記実行中のデータ加工処理の数と前記同時実行数情報に示される前記同時実行数とを比較し、実行中のデータ加工処理の数が前記同時実行数よりも少なければ、前記同時実行数と前記実行中のデータ加工処理の数との差であるデータ加工処理の実行可能残数と当該データの優先順位とを比較し、当該データの優先順位が前記実行可能残数以内の順位であれば、当該データに対するデータ加工処理の実行を許可するデータ加工処理判定部とを有することを特徴とする。
【発明の効果】
【０００９】
本発明では、データの優先順位が実行可能残数以内の順位であれば、新たなデータ加工処理の実行を許可するため、最適化処理の競合を回避して同時に実行されるデータ加工処理の数を常に同時実行数以下に管理することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るデータ管理装置の構成例を示す図。
【図２】実施の形態１に係るデータ管理装置のデータ収集、利用構成を示す図。
【図３】実施の形態１〜４に係るデータ管理装置のハードウェア構成例を示す図。
【図４】実施の形態１に係るデータ格納領域の構造を示す図。
【図５】実施の形態１に係るテーブル管理情報の構造を示す図。
【図６】実施の形態１に係る最適化管理情報の構造を示す図。
【図７】実施の形態１に係るデータ管理装置の動作例を示すフローチャート図。
【図８】実施の形態１に係るデータ管理装置の動作例を示すフローチャート図。
【図９】実施の形態２に係る最適化管理情報の構造を示す図。
【図１０】実施の形態２に係るデータ管理装置の動作例を示すフローチャート図。
【図１１】実施の形態３に係る最適化管理情報の構造を示す図。
【図１２】実施の形態３に係るテーブル管理情報の構造を示す図。
【図１３】実施の形態３に係るデータ管理装置の動作例を示すフローチャート図。
【図１４】実施の形態４に係るデータ管理装置の構成例を示す図。
【図１５】実施の形態４に係るデータ管理装置の動作例を示すフローチャート図。
【発明を実施するための形態】
【００１１】
実施の形態１．
前述のように、従来のデータベース最適化方法では、センサデータのようにデータベースへ登録する周期が短く、複数の登録が並列で実行される場合に、最適化処理の影響により遅延時間内に処理を完了するように制御することが困難であった。
本実施の形態では、遅延時間内に最適化処理を完了させる負荷分散処理を説明する。
【００１２】
図１は、本実施の形態に係るデータ管理装置１の構成例を示す。
データ管理装置１は、データ管理部６、データアクセス部７、最適化処理部２、データ格納領域８から構成される。
最適化処理部２は、最適化処理判定部３、最適化処理実行部４、最適化管理情報記憶部５から構成される。
データ格納領域８は、参照領域９、更新領域１０を有する。
また、データ格納領域８は、テーブル管理情報１１、ブロック管理情報１２を格納する。
アプリケーションプログラム１３は、データ管理装置１に対してデータの追加、更新、削除を要求する上位のプログラムである。
【００１３】
以下、データ管理装置１の構成要素を説明する。
【００１４】
データ管理部６は、アプリケーションプログラム１３とのインタフェースとなる。
【００１５】
データアクセス部７は、データ格納領域８の参照領域９、更新領域１０、テーブル管理情報１１及びブロック管理情報１２にアクセスする。
【００１６】
最適化処理部２において、最適化処理実行部４は、複数のデータに対して最適化処理を並列に実行する。
最適化処理は、例えば、データ圧縮処理といった、データベースに登録されたデータに対する加工処理である。
最適化処理実行部４は、データ加工処理実行部の例に相当する。
【００１７】
最適化管理情報記憶部５は、最適化管理情報５０を記憶する。
最適化管理情報５０には、同時に実行することが許容される最適化処理の上限数が同時実行数として示されている。
最適化管理情報５０は、同時実行数情報の例に相当する。
また、最適化管理情報記憶部５は、情報記憶部の例に相当する。
【００１８】
最適化処理判定部３は、いずれかのデータに対して最適化処理実行部４による最適化処理が要求された際に、最適化処理実行部４で実行中の最適化処理の数を計数し、実行中の最適化処理の数と最適化管理情報５０に示される同時実行数とを比較し、実行中の最適化処理の数が同時実行数よりも少なければ、当該データに対する最適化処理の実行を許可する。
そして、最適化処理判定部３により最適化処理の実行が許可された場合に、最適化処理実行部４は当該データに対する最適化処理を開始する。
【００１９】
データ格納領域８において、参照領域９には、最適化処理実行部４による最適化処理後のデータが格納される。
参照領域９は、第２の記憶領域の例に相当する。
【００２０】
更新領域１０には、最適化処理実行部４による最適化処理前のデータが格納される。
更新領域１０は、第１の記憶領域の例に相当する。
【００２１】
テーブル管理情報１１には、テーブルごとに、テーブル内のブロックの参照領域９における格納場所、更新領域１０における格納場所が示される。
なお、テーブル内の「ブロック」とは、テーブルに対してブロック化トランスポーズ変換が行われて生成されたブロックのことである。
ブロック化トランスポーズ変換については後述する。
なお、ブロック化トランスポーズ変換が行われた後のデータを、ブロック化トランスポーズドファイル形式のデータ又はブロック化トランスポーズド・データという。
【００２２】
ブロック管理情報１２は、各ブロックについての情報である。
【００２３】
図２は、多数の計測機器１７で計測された計測データをデータ管理装置１に蓄積する場合の構成例を示す。
【００２４】
データ収集装置１４は、複数の計測機器１７と接続されており、複数の計測機器１７から計測データを受信する。
データ収集装置１４には、センサデータ収集プログラム１５とアプリケーションプログラム１３が含まれる。
センサデータ収集プログラム１５は、計測機器１７から計測データを収集し、収集した計測データからデータ管理装置１で扱えるデータを生成する。
アプリケーションプログラム１３は、センサデータ収集プログラム１５が生成したデータをデータ管理装置１に登録するよう要求する。
操作端末１８は、アプリケーションプログラム１３を実行する装置である。
データ収集装置１４及び操作端末１８内のアプリケーションプログラム１３は、図１に示すアプリケーションプログラム１３に対応する。
なお、アプリケーションプログラム１３は、図２で示したようにデータ管理装置１と別の装置で動作してもよく、また、データ管理装置１と同じ装置で動作してもよい。
【００２５】
データ管理装置１はコンピュータであり、各要素はプログラムにより処理を実行することができる。
また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
【００２６】
図３は、実施の形態１〜４に係るデータ管理装置１のハードウェア構成例を示す図である。
バスに、演算装置３０１、外部記憶装置３０２、主記憶装置３０３、通信装置３０４が接続されている。
演算装置３０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置３０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスクである。
主記憶装置３０３は、通常ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置３０４は、例えばイーサネット（登録商標）に対応した通信カードである。
プログラムは、通常は外部記憶装置３０２に記憶されており、主記憶装置３０３にロードされた状態で、順次演算装置３０１に読み込まれ処理を行う。
プログラムは、図１に示す「〜部」（「最適化管理情報記憶部５」以外、以下同様）として説明している機能を実現するプログラムである。
また、図１に示すデータ格納領域８は、例えば、外部記憶装置３０２により実現され、最適化管理情報記憶部５は、例えば、主記憶装置３０３により実現される。
更に、外部記憶装置３０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置３０３にロードされ、演算装置３０１はＯＳを実行しながら、図１に示す「〜部」の機能を実現するプログラムを実行する。
また、実施の形態１〜４の説明において、「〜の判断」、「〜の抽出」、「〜の比較」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置３０３にファイルとして記憶されている。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置３０３にファイルとして記憶されてもよい。
【００２７】
なお、図３の構成は、あくまでもデータ管理装置１のハードウェア構成の一例を示すものであり、データ管理装置１のハードウェア構成は図３に記載の構成に限らず、他の構成であってもよい。
例えば、表示ディスプレイ等の出力装置や、マウス・キーボードといった入力装置がバスに接続されていてもよい。
【００２８】
また、データ収集装置１４や操作端末１８もコンピュータである。
つまり、データ収集装置１４や操作端末１８は、図３に示すハードウェア構成を有する。
そして、データ管理装置１、データ収集装置１４、操作端末１８間の通信は通信装置３０４にて行う。
【００２９】
図４は、参照領域９、更新領域１０、テーブル管理情報１１、ブロック管理情報１２の格納形式を示した図である。
【００３０】
データ格納領域８は、特許文献１に記載のブロック化トランスポーズドファイル形式でデータを管理するための領域である。
ここで、図４の参照領域９、更新領域１０、テーブル管理情報１１、ブロック管理情報１２の詳細を説明する前に、図５を参照してブロック化トランスポーズドファイル形式について説明する。
【００３１】
図５は、論理レコード形式４６とグループ４２、ブロック４３の関係を示している。
論理レコード形式４６のテーブルでは、複数のフィールドを行方向にまとめたレコードを複数保持する。
図５ではフィールド数を３としているが、フィールド数はいくつでも構わない。
ブロック化トランスポーズドファイル形式では、論理レコード形式４６の各フィールドを複数行まとめた単位であるブロック４３にて管理する。
ブロック４３ａ（ブロック１１）には３行分のフィールド１、ブロック４３ｂ（ブロック１２）には３行分のフィールド２、ブロック４３ｃ（ブロック１３）には３行分のフィールド３が格納される。
また、ブロック化トランスポーズドファイル形式では、論理レコード形式４６に含まれるフィールドの数分のブロック４３をグルーピングして１つのグループ４２とする。
図５の例では、グループ４２ａには、論理レコード形式４６のフィールド１〜３に対応するブロック４３ａ、４３ｂ、４３ｃが格納される。
【００３２】
図１に示すアプリケーションプログラム１３からは、論理レコード形式４６のテーブルが入力される。
そして、データ管理部６が、論理レコード形式４６のテーブルをブロック化トランスポーズドファイル形式に変換し、データアクセス部７が、ブロック化トランスポーズドファイル形式のデータをデータ格納領域８の更新領域１０に格納する。
その後、最適化処理実行部４により更新領域１０内のブロック化トランスポーズドファイル形式のデータに対して最適化処理が行われ、最適化処理後のデータがデータアクセス部７によりデータ格納領域８内の参照領域９に格納される。
【００３３】
図４に戻り、参照領域９と更新領域１０は、ブロック化トランスポーズドファイル形式の複数のグループ４２を格納する領域であり、物理的な領域に連続して格納されていてもよいし、個別のファイルとして管理されていてもよい。
更新領域１０は、アプリケーションプログラム１３の登録処理、更新処理により複数のブロック４３を保持するグループ４２の追加が行われる領域である。
つまり、更新領域１０は、最適化処理実行部４による最適化処理が行われる前の複数のブロック４３を保持するグループ４２を複数格納するための領域である。
図４の参照領域９は、最適化処理実行部４により最適化された複数のブロック４３を保持するグループ４２を複数格納するための領域である。
【００３４】
ここで、テーブル（論理レコード形式４６のテーブル）と、ブロック４３、グループ４２、更新領域１０及び参照領域９との関係を説明する。
１つのテーブル（論理レコード形式４６のテーブル）のデータは、参照領域９及び更新領域１０のいずれか一方にのみ格納される場合もあれば、参照領域９と更新領域１０に分かれて格納される場合もある。
例えば、あるテーブルの１行目から１００行目のフィールド１〜３がブロック１１〜１３としてまとめられ、ブロック１１〜１３からなるグループ１（グループ４２ａ）に最適化処理が行われると、グループ１（グループ４２ａ）は参照領域９に格納される。
その後、同じテーブルの１０１行目から２００行目のフィールド１〜３がブロックｋ１〜ｋ３としてまとめられ、ブロックｋ１〜ｋ３からなるグループＫ（グループ４２ｃ）に最適化処理が行われないと、グループＫ（グループ４２ｃ）は更新領域１０に格納されたままである。
一方、グループ１（グループ４２ａ）及びグループＫ（グループ４２ｃ）のいずれにも最適化処理が行われない場合は、グループ１（グループ４２ａ）及びグループＫ（グループ４２ｃ）の両者が更新領域１０に格納されたままである。
また、逆に、グループ１（グループ４２ａ）及びグループＫ（グループ４２ｃ）のいずれにも最適化処理が行われた場合は、グループ１（グループ４２ａ）及びグループＫ（グループ４２ｃ）の両者が参照領域９に格納される。
【００３５】
図４のテーブル管理情報１１は、テーブル名２０、参照情報２１、更新情報２２の組の関係を格納する。
テーブル名２０は、テーブルを一意に識別するための名前である。
参照情報２１は、テーブル内のブロックの参照領域９における格納場所を示し、更新情報２２はテーブル内のブロックの参照領域９における格納場所を示す。
参照情報２１、更新情報２２には、例えば、ブロックごとに、参照領域９、更新領域１０の先頭からのオフセットが示される。
なお、参照情報２１、更新情報２２は、テーブル内の各ブロックの格納場所を特定する情報であればどのような情報でも構わない。
【００３６】
図４のブロック管理情報１２は、ブロック番号４４の付加情報４５を格納する。
ブロック番号４４は、ブロック４３に付与されるブロックを一意に識別するための番号である。
付加情報４５は、変換後ブロックサイズやレコード数を保持する。
付加情報４５はブロック４３に付随するものであればどのようなものでも構わない。
【００３７】
図６は、最適化管理情報５０が格納する情報を示した図である。
【００３８】
テーブル名２３は、テーブルを一意に識別するための名前であり、図４に示したテーブル管理情報１１内のテーブル名２０と同様である。
最適化中フラグ２４は、テーブルが最適化中かどうかを識別するための情報であり、「１」が最適化中、「０」が最適化中でないことを示している。
最適化中フラグ２４に格納する情報は最適化中であるか否かの区別ができるものであればどのようなものでもよい。
同時実行数２５は、最適化処理判定部３において最適化処理実行部４を起動するかどうかを判定するために用いられる数値である。
同時実行数２５は、最適化処理実行部４において同時に実行することが許容される最適化処理の上限数であり、実行中の最適化処理の数が同時実行数２５を下回っていれば、最適化処理実行部４が起動される。
同時実行数２５は、アプリケーションプログラム１３が任意のタイミングで変更可能である。
移行基準２６は、最適化処理実行部４が更新領域１０のデータを最適化した後、参照領域９へ移行する際に基準となるデータサイズ（最適化処理後のデータのデータサイズ）を示す。
移行基準２６に示されるデータサイズは、基準データサイズの例に相当する。
参照領域９では、移行基準２６に示されるデータサイズを単位としてデータを管理する。
【００３９】
次に、図７のフローチャートを用いてデータ管理装置１におけるデータ登録処理の動作を説明する。
なお、図７のフローは、アプリケーションプログラム１３からの登録を要求されたデータごとに実施する。
【００４０】
ステップＳ１では、データ管理部６がアプリケーションプログラム１３からの登録要求を受け付け、要求されたグループの登録先となるテーブル名を取得する。
なお、アプリケーションプログラム１３からの登録要求には、登録の対象となるデータ（論理レコード形式４６のデータ）と、登録の対象となるデータが属するテーブルのテーブル名が含まれる。
【００４１】
ステップＳ２では、データアクセス部７が更新領域１０への登録処理を実行する。
ステップＳ２におけるデータ登録処理は、例えば、特許文献１の図６のフローに従う。
なお、ステップＳ２において、論理レコード形式４６のデータがブロック化トランスポーズドファイル形式のデータに変換され、ブロック化トランスポーズドファイル形式のデータが更新領域１０に格納される。
なお、このとき、データアクセス部７は、ブロック化トランスポーズドファイル形式のデータの更新領域１０への格納に合わせて、テーブル管理情報１１及びブロック管理情報１２を更新する。
【００４２】
ステップＳ３では、最適化処理判定部３が最適化管理情報５０の最適化中フラグ２４をすべてのテーブルに対して取得し、最適化処理中のテーブル数を求める。
【００４３】
ステップＳ４では、最適化処理判定部３が最適化管理情報５０の同時実行数２５を取得する。
【００４４】
ステップＳ５では、最適化処理判定部３がステップＳ３において求めた最適化処理中のテーブル数とステップＳ４において取得した同時実行数を比較し、同時実行数よりも最適化処理中のテーブル数が小さい場合はステップＳ６へ進み、最適化処理実行部４が最適化処理を実行し、それ以外の場合はデータ登録処理を完了する。
つまり、最適化処理判定部３は、最適化処理中のテーブル数（つまり、最適化処理実行部４で実行中の最適化処理の数）と同時実行数を比較し、同時実行数よりも最適化処理中のテーブル数が小さい場合に、ステップＳ２で更新領域１０に登録されたデータ（ブロック化トランスポーズドファイル形式のデータ）に対する最適化処理を許可し、それ以外の場合は、ステップＳ２で更新領域１０に登録されたデータに対する最適化処理を保留する。
【００４５】
ステップＳ６では、最適化処理実行部４が、最適化管理情報５０の登録対象テーブルの最適化中フラグを「１」に変更する。
【００４６】
ステップＳ７では、最適化処理実行部４が、更新領域１０のグループを最適化し、参照領域９および更新領域１０へ追加する最適化処理を実行する。
ステップＳ７における最適化処理は、後述する図８のフローに従う。
【００４７】
ステップＳ８では、最適化処理実行部４が、最適化管理情報５０の登録対象テーブルの最適化中フラグを「０」に変更し、データ登録処理を完了する。
【００４８】
このように、アプリケーションプログラム１３からの登録要求によって、ブロック化トランスポーズドファイル形式のデータに対して最適化処理実行部４による最適化処理が要求された際に、最適化処理判定部３は、最適化処理実行部４で実行中の最適化処理の数を計数し、実行中の最適化処理の数と同時実行数とを比較し、実行中の最適化処理の数が同時実行数よりも少なければ、当該データに対する最適化処理の実行を許可し、実行中の最適化処理の数が同時実行数以上であれば、当該データに対する最適化処理の実行を保留する。
【００４９】
なお、最適化処理を保留されたデータは、例えば、登録要求がないタイミングや実施の形態４に示すタイミングにおいて、図７に示すフローとは別のルーチンにより最適化処理を行うことができる。
なお、図７に示すフローとは別のルーチンにより最適化処理を行う場合にも、最適化処理実行部４は、最適化管理情報５０の登録対象テーブルの最適化中フラグを「１」に変更する。
【００５０】
次に、図８のフローチャートを用いて最適化処理実行部４における最適化処理の動作を説明する。
【００５１】
まず、ステップＳ１１では、最適化処理実行部４が更新領域１０のデータから最適化するデータを抽出する。
最適化するデータは、図７のステップＳ２で更新領域１０に格納されたデータである。
【００５２】
ステップＳ１２では、最適化処理実行部４が、抽出したデータを最適化し、最適化されたデータを一時的に保管する。
最適化処理の手順は、例えば、特許文献１の図７のフローに従う。
また、最適化処理は特許文献１に記載の圧縮処理を想定するが、例えば特許文献２に記載の削除レコード最適化処理や暗号化など更新領域のデータ形式が最適化処理により変化するものであれば、どのような処理でも構わない。
【００５３】
ステップＳ１３では、最適化処理実行部４が最適化管理情報５０より移行基準２６を取得する。
【００５４】
ステップＳ１４では、最適化処理実行部４が最適化されたデータが移行基準以上であるかどうかを判定し、移行基準以上であればステップＳ１５に進み、そうでなければステップＳ１７に進む。
【００５５】
ステップＳ１５では、最適化処理実行部４が最適化されたデータのうちの先頭から移行基準２６の大きさだけデータをコピーし、コピーしたデータを参照領域９に追加する。
【００５６】
ステップＳ１６では、最適化処理実行部４が、最適化されたデータから、ステップＳ１５で参照領域９に追加した分のデータを取り除く。
【００５７】
ステップＳ１７では、最適化処理実行部４が、ステップＳ１１で抽出したデータ（最適化前のデータ）を更新領域１０から削除する。
【００５８】
ステップＳ１８では、最適化処理実行部４が、最適化されたデータを更新領域１０に追加する。
【００５９】
つまり、最適化処理後のデータのデータサイズが移行基準未満であれば、ステップＳ１８に示すように、最適化処理後のデータを更新領域１０に格納する。
一方、最適化処理後のデータのデータサイズが移行基準以上である場合は、ステップＳ１５及びＳ１６に示すように、最適化処理後のデータを、移行基準ごとに分割して、参照領域９に格納する。
【００６０】
更新領域１０の最適化されたデータに関しては、最適化済みフラグを用いて特許文献２に記載の実体管理テーブルで管理してもよい。
また、更新領域１０に追加するデータはステップＳ１１で抽出された最適化されていないデータであってもよい。
【００６１】
このように、本実施の形態では、センサデータのような設定された遅延時間の制約下で参照領域９にデータを追加しなければならない状況において、最適化処理の同時実行数の制約を設けることにより遅延時間の平滑化を実現する。
また、移行基準を設けることにより参照領域に追加される最適化処理されたデータ量を一定に保つことが可能であり、参照領域に対するデータアクセスを効率化できる。
【００６２】
以上、本実施の形態では、
現在実行中の最適化処理と同時実行数を比較して最適化処理の実施を判定する手段と、
更新領域のデータを最適化する手段と、
最適化されたデータを移行基準と比較して参照領域への移行を判定する手段と、
最適化されたデータを更新領域から削除し、参照領域に追加する手段と
を有するデータ管理装置を説明した。
【００６３】
また、本実施の形態に係るデータ管理装置は、
参照領域のデータ境界を記録し、データ境界に基づく移行基準を算出する手段を有することを説明した。
【００６４】
また、本実施の形態では、
演算装置と外部記憶装置と主記憶装置を有するデータ管理装置がデータの登録、更新がなされる領域と前述の領域を最適化したデータを格納する領域にデータを格納するデータ管理方法において、
上記データ管理装置がデータを登録すべきテーブルを取得するステップと、
上記データ管理装置がデータを更新領域に登録するステップと、
上記データ管理装置が最適化処理中のテーブルを取得するステップと、
上記データ管理装置が最適化処理の同時実行数を取得するステップと、
上記データ管理装置が最適化処理中のテーブル数と同時実行数を比較するステップと、
上記データ管理装置が最適化処理中のテーブル数を更新するステップと、
上記データ管理装置が更新領域から最適化するデータを取得するステップと、
上記データ管理装置が更新領域の最適化処理を実行するステップと、
上記データ管理装置が最適化されたデータを一時的に記録するステップと、
上記データ管理装置が移行基準を取得するステップと、
上記データ管理装置が最適化されたデータと移行基準を比較するステップと、
上記データ管理装置が最適化されたデータのうち移行基準の大きさだけ参照領域に追加するステップと、
上記データ管理装置が最適化されたデータのうち移行基準の大きさだけ更新領域から削除するステップと、
上記データ管理装置が最適化処理を完了し、最適化処理中のテーブル数を更新するステップと
が行われることを説明した。
【００６５】
また、本実施の形態では、
データを登録すべきテーブルを取得するステップと、
データを更新領域に登録するステップと、
最適化処理中のテーブルを取得するステップと、
最適化処理の同時実行数を取得するステップと、
最適化処理中のテーブル数と同時実行数を比較するステップと、
最適化処理中のテーブル数を更新するステップと、
更新領域から最適化するデータを取得するステップと、
更新領域の最適化処理を実行するステップと、
最適化されたデータを一時的に記録するステップと、
移行基準を取得するステップと、
最適化されたデータと移行基準を比較するステップと、
最適化されたデータのうち移行基準の大きさだけ参照領域に追加するステップと、
最適化されたデータのうち移行基準の大きさだけ更新領域から削除するステップと、
最適化処理を完了し、最適化処理中のテーブル数を更新するステップと
を、コンピュータが実行することにより、前述のコンピュータがデータ管理装置として機能するプログラムを説明した。
【００６６】
なお、本実施の形態では、実行中の最適化処理の数と同時実行数とを比較し、実行中の最適化処理の数が同時実行数よりも少なければ、ブロック化トランスポーズ変換後のデータに対する最適化処理の実行を許可する例を説明した。
しかし、対象とするデータ加工処理は最適化処理に限定する必要はなく、例えば、ブロック化トランスポーズ変換処理を対象としてもよい。
つまり、実行中のブロック化トランスポーズ変換処理の数と同時実行数とを比較し、実行中のブロック化トランスポーズ変換処理の数が同時実行数よりも少なければ、ブロック化トランスポーズ変換処理の実行を許可するようにしてもよい。
【００６７】
実施の形態２．
本実施の形態では、最適化処理の対象となるデータに優先順位を設け、実行中の最適化処理の数と同時実行数とデータごとの優先順位とに基づき、最適化処理の実行を許可するか否かを決定する例を説明する。
【００６８】
図９は、本実施の形態に係る最適化管理情報５０の例を示す。
【００６９】
図９の最適化管理情報５０は最適化中フラグ２４に加えて、前回処理時刻２７、スキップ回数２８、蓄積データ量２９を格納する。
前回処理時刻２７は、テーブルごとに、テーブルに含まれるデータ（グループ）に対して最適化処理が最後に実行された時刻を格納する。
このように、本実施の形態に係る最適化管理情報５０には前回処理時刻が示され、前回処理時刻情報の例に相当する。
スキップ回数２８は、テーブルごとに、テーブルに含まれるデータ（グループ）に対して最適化処理判定部３により最適化処理がスキップされた（見送られた）回数を格納する。
このように、本実施の形態に係る最適化管理情報５０にはスキップ回数（処理見送り回数）が示され、処理見送り回数情報の例に相当する。
蓄積データ量２９は、テーブルごとに、更新領域１０に蓄積されている最適化されていないデータ量を格納する。
このように、本実施の形態に係る最適化管理情報５０には蓄積データ量（未処理データ量）が示され、未処理データ量情報の例に相当する。
なお、同時実行数２５と移行基準２６は図６のものと同様である。
【００７０】
図１０のフローチャートを用いてデータ管理装置１におけるデータ登録処理の動作を説明する。
【００７１】
ステップＳ２１では、データ管理部６がアプリケーションプログラム１３からの登録要求を受け付け、要求されたグループを登録すべきテーブル名を取得する。
【００７２】
ステップＳ２２では、データ管理部６が登録対象テーブルを実行待ちリストに追加する。
【００７３】
ステップＳ２３では、データアクセス部７が更新領域１０への登録処理を実行する。
ステップＳ２３におけるデータ登録処理は、実施の形態１に示した図７のＳ２と同様であり、例えば特許文献１の図６のフローに従う。
【００７４】
ステップＳ２４では、最適化処理判定部３が最適化管理情報５０を更新する。
更新される最適化管理情報５０は、スキップ回数２８および蓄積データ量２９である。
最適化処理判定部３は、登録対象テーブルの現在のスキップ回数２８を取得し、１を加えた値で登録対象テーブルのスキップ回数２８を更新する。
蓄積データ量２９は、登録対象テーブルの現在の蓄積データ量２９を取得し、今回更新領域１０に追加するデータ量を加えた値で登録対象テーブルの蓄積データ量２９で更新する。
【００７５】
ステップＳ２５では、最適化処理判定部３が実行待ちリストに登録されているテーブルの最適化処理優先度を前回処理時刻２７、スキップ回数２８、蓄積データ量２９により求め、登録対象テーブルの優先順位を決定する。
優先順位は高いものから順に１、２、３、・・・とする。
優先順位の決定方法は、例えば、前回処理時刻２７の古い順に登録対象テーブルを並び替え、前回処理時刻２７が同じものはスキップ回数２８の多い順に並び替え、さらにスキップ回数が同じものは蓄積データ量２９の大きい順に並び替え、蓄積データ量２９も同じ場合はテーブルの登録された順に並び替える。
優先順位の決定方法はここで示した方法に限定するものではなく、重複する順位となるテーブルがないような順位付けができればどのような方法でもよい。
【００７６】
ステップＳ２６では、最適化処理判定部３が実行待ちリストから登録対象テーブルを削除する。
【００７７】
ステップＳ２７では、最適化処理判定部３が最適化管理情報５０の最適化中フラグ２４をすべてのテーブルに対して取得し、最適化処理中のテーブル数を求める。
【００７８】
ステップＳ２８では、最適化処理判定部３が最適化管理情報５０の同時実行数２５を取得する。
【００７９】
ステップＳ２９では、最適化処理判定部３が、ステップＳ２７で求めた最適化処理中のテーブル数とステップＳ２８で取得した同時実行数を比較し、同時実行数よりも最適化処理中のテーブル数が小さい場合はステップＳ３０へ進み、それ以外の場合はデータ登録処理を完了する。
【００８０】
ステップＳ３０では、最適化処理判定部３が、ステップＳ２８で取得した同時実行数からステップＳ２７で求めた最適化処理中のテーブル数を引いた値とステップＳ２５で求めた登録対象テーブルの優先順位を比較し、優先順位が等しいか小さい場合はステップＳ３１へ進み、それ以外の場合はデータ登録処理を完了する。
つまり、最適化処理判定部３は、同時実行数と実行中の最適化処理の数との差である最適化処理の実行可能残数と、図１０のフローの対象となっているデータが属するテーブルの優先順位とを比較し、当該データが属するテーブルの優先順位が実行可能残数以内の順位であれば、当該データに対する最適化処理の実行を許可する。
【００８１】
ステップＳ３１では、最適化処理実行部４が、最適化管理情報５０の登録対象テーブルの最適化中フラグを「１」に変更する。
【００８２】
ステップＳ３２では、最適化処理実行部４が、更新領域１０のグループを最適化し参照領域９および更新領域１０へ追加する最適化処理を実行する。
ステップＳ３２における最適化処理は、実施の形態１で示した図８のフローに従う。
【００８３】
ステップＳ３３では、最適化処理実行部４が、最適化管理情報５０の登録対象テーブルの最適化中フラグを「０」に変更する。
【００８４】
ステップＳ３４では、最適化処理実行部４が、最適化管理情報を更新し、データ登録処理を完了する。
更新される最適化管理情報５０は前回処理時刻２７であり、ステップＳ３４の処理が開始された時刻で登録対象テーブルの前回処理時刻２７を更新する。
【００８５】
このように、本実施の形態では、センサデータのような設定された遅延時間の制約下で参照領域９にデータを追加しなければならない状況において、前回処理時刻、スキップ回数、蓄積データ量から得られる最適化処理優先度を用いた最適化処理判定により、最適化処理の競合を回避し各テーブルの遅延時間を平滑化することが可能である。
【００８６】
以上、本実施の形態では、
テーブル単位の前回処理時間を記録し、前回処理時間に基づく最適化処理優先度を算出する手段と、
最適化処理優先度に基づき最適化処理の実施を判定する手段と
を有するデータ管理装置を説明した。
【００８７】
また、本実施の形態では、
テーブル単位の最適化処理がスキップされた回数を記録し、最適化処理がスキップされた回数に基づく最適化処理優先度を算出する手段と、
最適化処理優先度に基づき最適化処理の実施を判定する手段と
を有するデータ管理装置を説明した。
【００８８】
テーブル単位の更新領域に蓄積されたデータ量を記録し、更新領域に蓄積されたデータ量に基づく最適化処理優先度を算出する手段と、
最適化処理優先度に基づき最適化処理の実施を判定する手段と
を有するデータ管理装置を説明した。
【００８９】
また、本実施の形態では、
データ管理装置がデータを登録すべきテーブルを取得するステップと、
データ管理装置が登録対象テーブルを実行待ちリストに登録するステップと、
データ管理装置がデータを更新領域に登録するステップと、
データ管理装置が最適化処理のスキップされたスキップ回数と更新領域に蓄積されている蓄積データ量を更新するステップと、
データ管理装置が前回最適化処理時刻とスキップ回数と蓄積データ量から実行待ちリストの優先順位を決定するステップと、
データ管理装置が登録対象テーブルを実行待ちリストから削除するステップと、
データ管理装置が最適化処理中のテーブルを取得するステップと、
データ管理装置が最適化処理の同時実行数を取得するステップと、
データ管理装置が最適化処理中のテーブル数と同時実行数を比較するステップと、
データ管理装置が最適化処理中のテーブル数を更新するステップと、
データ管理装置が更新領域から最適化するデータを取得するステップと、
データ管理装置が更新領域の最適化処理を実行するステップと、
データ管理装置が最適化されたデータを一時的に記録するステップと、
データ管理装置が移行基準を取得するステップと、
データ管理装置が最適化されたデータと移行基準を比較するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ参照領域に追加するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ更新領域から削除するステップと、
データ管理装置が最適化処理を完了し、最適化処理中のテーブル数を更新するステップと、
データ管理装置が前回処理時刻を最適化処理が完了した時刻で更新するステップと
を有するデータ管理方法を説明した。
【００９０】
実施の形態３．
本実施の形態では、実施の形態２と異なる手順にて優先順位を決定する例を説明する。
【００９１】
図１１は、本実施の形態に係る最適化管理情報５０の例を示す。
【００９２】
本実施の形態に係る最適化管理情報５０は、最適化中フラグ２４、前回処理時刻２７、スキップ回数２８、蓄積データ量２９に加えて更新周期３０を格納する。
更新周期３０は、テーブルに対するデータ登録の周期を表す。
換言すれば、更新周期３０は、テーブル内のデータに対して最適化処理実行部４による最適化処理が要求される周期（処理要求周期）である。
そして、このような更新周期３０が示される本実施の形態に係る最適化管理情報５０は、処理要求周期情報の例に相当する。
【００９３】
図１２は、本実施の形態に係るテーブル管理情報１１の例を示す。
【００９４】
本実施の形態に係るテーブル管理情報１１は、参照情報２１、更新情報２２に加えて許容遅延時間３１を格納する。
許容遅延時間３１は、テーブルに登録したデータが登録処理開始から参照領域９に最適化処理されて追加されるまでの最大遅延時間を表す。
換言すれば、許容遅延時間３１は、テーブル内のデータに対して最適化処理実行部４による最適化処理を完了すべき期限（処理完了期限）である。
そして、このような許容遅延時間３１が示される本実施の形態に係るテーブル管理情報１１は、処理完了期限情報の例に相当する。
なお、許容遅延時間３１はアプリケーションプログラム１３が任意のタイミングで更新可能である。
【００９５】
図１３のフローチャートを用いてデータ管理装置１におけるデータ登録処理の動作を説明する。
【００９６】
ステップＳ４１では、データ管理部６がアプリケーションプログラム１３からの登録要求を受け付け、要求されたグループを登録すべきテーブル名を取得する。
【００９７】
ステップＳ４２では、データ管理部６が今回の登録処理受付時刻を記録する。
【００９８】
ステップＳ４３では、データ管理部６が登録対象テーブルを実行待ちリストに追加する。
【００９９】
ステップＳ４４では、データアクセス部７が更新領域１０への登録処理を実行する。
ステップＳ４４におけるデータ登録処理は、実施の形態１に示した図７のＳ２と同様であり、例えば特許文献１の図６のフローに従う。
【０１００】
ステップＳ４５では、最適化処理判定部３が最適化管理情報５０を更新する。
更新される最適化管理情報５０は、スキップ回数２８、蓄積データ量２９、更新周期３０である。
最適化処理判定部３は、登録対象テーブルの現在のスキップ回数２８を取得し、１を加えた値で登録対象テーブルのスキップ回数２８を更新する。
蓄積データ量２９は、登録対象テーブルの現在の蓄積データ量２９を取得し、今回更新領域１０に追加するデータ量を加えた値で登録対象テーブルの蓄積データ量２９で更新する。
更新周期３０は、ステップＳ４２で記録した今回の登録処理受付時刻と前回処理時刻２７との差分を登録対象テーブルの更新周期リストに追加し、更新周期リストの平均で更新周期３０を更新する。
【０１０１】
ステップＳ４６では、最適化処理判定部３が実行待ちリストに登録されているテーブルの最適化処理優先度を前回処理時刻２７、スキップ回数２８、蓄積データ量２９、更新周期３０、許容遅延時間３１により求め、登録対象テーブルの優先順位を決定する。
優先順位は高いものから順に１、２、３、・・・とする。
許容遅延時間３１と前回処理時刻２７と更新周期３０から最適化処理が可能な残り時間を見積もり、残り時間の少ないテーブルを優先的に処理できる。
スキップ回数２８から最適化処理がスキップされた回数の多いテーブルを優先的に処理できる。
また、蓄積データ量２９から更新領域１０に蓄積されたデータ量より最適化処理時間を見積もり、最適化処理時間の大きいテーブルを優先的に処理できる。
優先順位は、例えば、許容遅延時間３１−（前回処理時刻２７＋更新周期３０）の小さい順に登録対象テーブルを並び替え、同一順位のものはスキップ回数２８の多い順に並び替え、さらに同一順位のものは蓄積データ量２９の大きい順に並び替え、それでも同一順位の場合はテーブルの登録された順に並び替えることで求める。
優先順位の決定方法はここで示した方法に限定するものではなく、重複する順位となるテーブルがないような順位付けができればどのような方法でもよい。
【０１０２】
ステップＳ４７では、最適化処理判定部３が実行待ちリストから登録対象テーブルを削除する。
【０１０３】
ステップＳ４８では、最適化処理判定部３が最適化管理情報５０の最適化中フラグ２４をすべてのテーブルに対して取得し、最適化処理中のテーブル数を求める。
【０１０４】
ステップＳ４９では、最適化処理判定部３が最適化管理情報５０の同時実行数２５を取得する。
【０１０５】
ステップＳ５０では、最適化処理判定部３が、ステップＳ３９で求めた最適化処理中のテーブル数とステップＳ４９で取得した同時実行数を比較し、同時実行数よりも最適化処理中のテーブル数が小さい場合はステップＳ５１へ進み、それ以外の場合はデータ登録処理を完了する。
【０１０６】
ステップＳ５１では、最適化処理判定部３が、ステップＳ４９で取得した同時実行数からステップＳ４８で求めた最適化処理中のテーブル数を引いた値とステップＳ４６で求めた登録対象テーブルの優先順位を比較し、優先順位が等しいか小さい場合はステップＳ５２へ進み、それ以外の場合はデータ登録処理を完了する。
つまり、最適化処理判定部３は、同時実行数と実行中の最適化処理の数との差である最適化処理の実行可能残数と、図１３のフローの対象となっているデータが属するテーブルの優先順位とを比較し、当該データが属するテーブルの優先順位が実行可能残数以内の順位であれば、当該データに対する最適化処理の実行を許可する。
【０１０７】
ステップＳ５２では、最適化処理実行部４が最適化管理情報５０の登録対象テーブルの最適化中フラグを「１」に変更する。
【０１０８】
ステップＳ５３では、最適化処理実行部４が更新領域１０のグループを最適化し参照領域９および更新領域１０へ追加する最適化処理を実行する。
ステップＳ５３における最適化処理は、実施の形態１で示した図８のフローに従う。
【０１０９】
ステップＳ５４では、最適化処理実行部４が最適化管理情報５０の登録対象テーブルの最適化中フラグを「０」に変更する。
【０１１０】
ステップＳ５５では、最適化処理実行部４が最適化管理情報を更新し、データ登録処理を完了する。
更新される最適化管理情報５０は前回処理時刻２７であり、ステップＳ５５の処理が開始された時刻で登録対象テーブルの前回処理時刻２７を更新する。
【０１１１】
このように、本実施の形態では、センサデータのような設定された遅延時間の制約下で参照領域９にデータを追加しなければならない状況において、前回処理時刻、スキップ回数、蓄積データ量、更新周期、許容遅延時間から得られる許容遅延時間までの残り時間を考慮した最適化処理優先度を用いて最適化処理を判定することにより、最適化処理の競合を回避し各テーブルの遅延時間を平滑化することが可能である。
【０１１２】
本実施の形態では、
テーブル単位の更新頻度を記録し、更新頻度に基づく最適化処理優先度を算出する手段と、
最適化処理優先度に基づき最適化処理の実施を判定する手段と
を有するデータ管理装置を説明した。
【０１１３】
また、本実施の形態では、
データ管理装置がデータを登録すべきテーブルを取得するステップと、
データ管理装置が登録を受け付けた時刻を記録するステップと、
データ管理装置が登録対象テーブルを実行待ちリストに登録するステップと、
データ管理装置がデータを更新領域に登録するステップと、
データ管理装置が最適化処理のスキップされたスキップ回数と更新領域に蓄積されている蓄積データ量と更新周期を更新するステップと、
データ管理装置が前回最適化処理時刻とスキップ回数と蓄積データ量と更新周期と許容遅延時間から実行待ちリストの優先順位を決定するステップと、
データ管理装置が登録対象テーブルを実行待ちリストから削除するステップと、
データ管理装置が最適化処理中のテーブルを取得するステップと、
データ管理装置が最適化処理の同時実行数を取得するステップと、
データ管理装置が最適化処理中のテーブル数と同時実行数を比較するステップと、
データ管理装置が最適化処理中のテーブル数を更新するステップと、
データ管理装置が更新領域から最適化するデータを取得するステップと、
データ管理装置が更新領域の最適化処理を実行するステップと、
データ管理装置が最適化されたデータを一時的に記録するステップと、
データ管理装置が移行基準を取得するステップと、
データ管理装置が最適化されたデータと移行基準を比較するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ参照領域に追加するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ更新領域から削除するステップと、
データ管理装置が最適化処理を完了し、最適化処理中のテーブル数を更新するステップと、
データ管理装置が前回処理時刻を最適化処理が完了した時刻で更新するステップと
を有するデータ管理方法を説明した。
【０１１４】
実施の形態４．
図１４は、本実施の形態に係るデータ管理装置１の構成例を示す。
本実施の形態に係るデータ管理装置１は、図１で示した構成に加えて、最適化処理強制部３２、タイマー３３を備える。
【０１１５】
最適化処理強制部３２は、タイマー３３により一定周期で起動され、最適化管理情報５０とテーブル管理情報１１から許容遅延時間３１を超過したテーブルを最適化処理実行部４へ引き渡し、最適化処理を実行させる。
つまり、最適化処理強制部３２は、いずれかのテーブルに含まれるデータに対する最適化処理が、当該データを含んでいるテーブルの許容遅延時間３１（処理完了期限）が過ぎた後も実行されていない場合に、当該データに対する最適化処理の実行を最適化処理実行部４に指示する。
本実施の形態では、最適化処理判定部３とともに最適化処理強制部３２はデータ加工処理判定部の例に相当する。
【０１１６】
図１５のフローチャートを用いてデータ管理装置１における許容遅延時間を超過したテーブルの強制最適化処理の動作を説明する。
【０１１７】
ステップＳ６１では、最適化処理強制部３２が最適化管理情報５０から前回処理時刻２７を取得し、タイマー３３から現在の時刻を取得し、すべてのテーブルについて現在の時刻と前回処理時刻２７の差分から遅延時間を求める。
【０１１８】
ステップＳ６２では、最適化処理強制部３２がテーブル管理情報１１から各テーブルの許容遅延時間３１を取得し、許容遅延時間―遅延時間が負の値となるテーブルのリストを作成する。
【０１１９】
ステップＳ６３では、最適化処理強制部３２がステップＳ６２で作成したテーブルのリストに、いずれかのテーブルが存在するかどうかを確認し、テーブルが存在する場合はステップＳ６４へ進み最適化処理実行部４の最適化処理を実行し、存在しない場合は処理を完了する。
【０１２０】
ステップＳ６４では、最適化処理実行部４が最適化管理情報５０の登録対象テーブルの最適化中フラグを「１」に変更する。
【０１２１】
ステップＳ６５では、最適化処理実行部４が、最適化中フラグが「１」になったグループ（更新領域１０内のデータ）を最適化し、参照領域９および更新領域１０へ追加する最適化処理を実行する。
ステップＳ６５における最適化処理は、実施の形態１で示した図８のフローに従う。
【０１２２】
ステップＳ６６では、最適化処理実行部４が最適化管理情報５０の登録対象テーブルの最適化中フラグを「０」に変更する。
【０１２３】
ステップＳ６７では、最適化処理実行部４が最適化管理情報を更新する。
更新される最適化管理情報５０は前回処理時刻２７であり、ステップＳ６７の処理が開始された時刻で登録対象テーブルの前回処理時刻２７を更新する。
さらに、ステップＳ６２で作成したテーブルのリストから今回処理したテーブルを削除する。
【０１２４】
このように、本実施の形態では、センサデータのような設定された遅延時間の制約下で参照領域９にデータを追加しなければならない状況において、遅延時間を超過したテーブルに対して強制的に最適化処理を実行することにより、大幅な遅延時間超過を抑制する。
【０１２５】
本実施の形態では、
テーブル単位の許容遅延時間を記録し、許容遅延時間を超過したテーブルを強制的に最適化する手段を有するデータ管理装置を説明した。
【０１２６】
また、本実施の形態では、
データ管理装置が前回処理時刻と現在時刻から経過時間を算出するステップと、
データ管理装置が許容遅延時間と経過時間から算出した残り遅延時間を算出し、許容遅延時間を超過したテーブルを超過リストに追加するステップと、
データ管理装置が超過リストに存在するテーブルを確認するステップと、
データ管理装置が最適化処理中のテーブル数を更新するステップと、
データ管理装置が更新領域から最適化するデータを取得するステップと、
データ管理装置が更新領域の最適化処理を実行するステップと、
データ管理装置が最適化されたデータを一時的に記録するステップと、
データ管理装置が移行基準を取得するステップと、
データ管理装置が最適化されたデータと移行基準を比較するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ参照領域に追加するステップと、
データ管理装置が最適化されたデータのうち移行基準の大きさだけ更新領域から削除するステップと、
データ管理装置が最適化処理を完了し、最適化処理中のテーブル数を更新するステップと、
データ管理装置が前回処理時刻を最適化処理が完了した時刻で更新するステップと、
データ管理装置が超過リストから最適化処理を実施したテーブルを削除するステップと
を有するデータ管理方法を説明した。
【符号の説明】
【０１２７】
１  データ管理装置、２  最適化処理部、３  最適化処理判定部、４  最適化処理実行部、５  最適化管理情報記憶部、６  データ管理部、７  データアクセス部、８  データ格納領域、９  参照領域、１０  更新領域、１１  テーブル管理情報、１２  ブロック管理情報、１３  アプリケーションプログラム、１４  データ収集装置、１５  センサデータ収集プログラム、１７  計測機器、１８  操作端末、３２  最適化処理強制部、３３  タイマー、５０  最適化管理情報。
【図１】
0005804970.tif 000002
【図２】
0005804970.tif 000003
【図３】
0005804970.tif 000004
【図４】
0005804970.tif 000005
【図５】
0005804970.tif 000006
【図６】
0005804970.tif 000007
【図７】
0005804970.tif 000008
【図８】
0005804970.tif 000009
【図９】
0005804970.tif 000010
【図１０】
0005804970.tif 000011
【図１１】
0005804970.tif 000012
【図１２】
0005804970.tif 000013
【図１３】
0005804970.tif 000014
【図１４】
0005804970.tif 000015
【図１５】
0005804970.tif 000016