(57)【要約】【課題】データベースの負荷が高いためにデータベースへの書込み処理が追いつかない場合、データベースで参照できるデータが古いものになってしまうこと。【解決手段】キュー登録部は、データベースに書込むデータをキューに書込む。負荷状況検知部は、データベースの負荷を検知する。キュー取出部は、キューに記憶された１以上のデータの中から、データベースに書込むためにキューから取り出すデータを、データベースの負荷に基づいて決定する。【選択図】図１
2018132971.tif 000002
【特許請求の範囲】
【請求項１】
データベースに書込むデータの書込順序待ち制御を行うデータベース書込制御装置であって、
前記データを一時的に記憶するキューと、
前記データを前記キューに書込むキュー登録部と、
前記データベースの負荷を検知する負荷状況検知部と、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定するキュー取出部と、
を含むデータベース書込制御装置。
【請求項２】
前記キュー内の前記データのうちの最古のデータを指す先頭位置ポインタを格納する領域と、前記キュー内の前記データのうちの最新のデータを指す取出位置ポインタを格納する領域とを、更に含み、
前記キュー取出部は、前記データベースの負荷に基づいて、前記先頭位置ポインタが指す前記データを取り出すか、前記取出位置ポインタが指す前記データを取り出すかを決定する、
請求項１に記載のデータベース書込制御装置。
【請求項３】
前記キューから取り出した前記データの前記データベースへの書込み要否を、前記データの価値に基づいて決定するデータ破棄判定部を、更に含む、
請求項１または２に記載のデータベース書込制御装置。
【請求項４】
前記データは、センサでセンシングされたデータであり、
前記キューは、センサ毎に存在する、
請求項１乃至３の何れかに記載のデータベース書込制御装置。
【請求項５】
前記キュー取出部が前記センサ毎の前記キューのうちの何れのキューから前記データを取り出すかを決定する対象キュー選択部を、更に含む、
請求項４に記載のデータベース書込制御装置。
【請求項６】
前記キュー取出部は、前記データベースの負荷がより高いほど、より最近に前記キューに書込まれた前記データを優先的に前記キューから取り出す、
請求項１乃至５の何れかに記載のデータベース書込制御装置。
【請求項７】
データベースに書込むデータを一時的に記憶するキューを有するコンピュータが実行するデータベース書込制御方法であって、
前記データを前記キューに書込み、
前記データベースの負荷を検知し、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定する、
データベース書込制御方法。
【請求項８】
データベースに書込むデータを一時的に記憶するキューを有するコンピュータを、
前記データを前記キューに書込むキュー登録部と、
前記データベースの負荷を検知する負荷状況検知部と、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定するキュー取出部と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース書込制御装置、データベース書込制御方法、及びプログラムに関する。
【背景技術】
【０００２】
センシングして得たデータ（以下、センサデータと記す）をサーバ装置へ送信するセンサと、センサデータを記憶するデータベースを有し、センサから受信したセンサデータを上記データベースに登録するサーバ装置とを含むセンサネットワークシステムが提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５０６９８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、センサデータのように時々刻々と発生するデータのトラフィックが一時的に増加する状況に対処可能にするために、データベースに書込む前のデータを一時的に記憶するキューを設けることがある。この場合、サーバ装置は、センサ等から受信したデータをキューに一旦記憶し、データベースへの書込みが可能な状態になると、キューからデータを取り出し、データベースへ書込む。サーバ装置は、キューからデータを取り出す際には、キューに記憶されたデータのうち最も古いデータを取り出す。
【０００５】
しかしながら、サーバ装置が、１以上のデータを記憶するキューから古い順にデータを取り出すという一定の方法で、データベースに書込むためのデータを取り出す構成では、データベースの負荷が高いためにデータベースへの書込み処理が追いつかない場合、データベースで参照できるデータが古いものになってしまう。
【０００６】
本発明の目的は、上述した課題を解決するデータベース書込制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一形態に係るデータベース書込制御装置は、
データベースに書込むデータの書込順序待ち制御を行うデータベース書込制御装置であって、
前記データを一時的に記憶するキューと、
前記データを前記キューに書込むキュー登録部と、
前記データベースの負荷を検知する負荷状況検知部と、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定するキュー取出部と、
を含む。
【０００８】
本発明の他の形態に係るデータベース書込制御方法は、
データベースに書込むデータを一時的に記憶するキューを有するコンピュータが実行するデータベース書込制御方法であって、
前記データを前記キューに書込み、
前記データベースの負荷を検知し、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定する。
【０００９】
本発明の他の形態に係るプログラムは、
データベースに書込むデータを一時的に記憶するキューを有するコンピュータを、
前記データを前記キューに書込むキュー登録部と、
前記データベースの負荷を検知する負荷状況検知部と、
前記キューに記憶された１以上の前記データの中から、前記データベースに書込むために前記キューから取り出すデータを、前記データベースの負荷に基づいて決定するキュー取出部と、
して機能させる。
【発明の効果】
【００１０】
本発明は上述した構成を有することにより、データベースの負荷が高いためにデータベースへの書込み処理が追いつかない場合であっても、データベースで参照できるデータが古いものになるのを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るデータベース書込制御装置の構成例を示す図である。
【図２】本発明の第１の実施形態に係るデータベース書込制御装置における書込待ちキュー領域で管理されるデータ構造の一例を示す図である。
【図３】本発明の第１の実施形態に係るデータベース書込制御装置におけるキュー上で複数のデータをチェーン付けるデータ構造の一例を示す図である。
【図４】本発明の第１の実施形態に係るデータベース書込制御装置におけるキュー登録部の動作の一例を示すフローチャートである。
【図５】本発明の第１の実施形態に係るデータベース書込制御装置におけるキュー取出部の動作の一例を示すフローチャートである。
【図６】本発明の第１の実施形態に係るデータベース書込制御装置におけるキュー取出部の動作の他の例を示すフローチャートである。
【図７】本発明の第２の実施形態に係るデータベース書込制御装置の構成例を示す図である。
【図８】本発明の第２の実施形態に係るデータベース書込制御装置におけるキュー取出部の動作の一例を示すフローチャートである。
【図９】本発明の第３の実施形態に係るデータベース書込制御装置の構成例を示す図である。
【図１０】本発明の第４の実施形態に係るデータベース書込制御装置の構成例を示す図である。
【発明を実施するための形態】
【００１２】
[第１の実施形態]
次に本発明の第１の実施形態について図面を参照して詳細に説明する。
【００１３】
＜本実施形態の概要＞
本実施形態に係るデータベース書込制御装置は、通常時はキューに登録された順にデータをデータベースに書き込む。しかし、データベース書込制御装置は、必要に応じてキューの中間や末尾からデータを取り出し、より新しいデータを優先的にデータベースに書き込む。こうすることで、データベース書込制御装置は、できる限り最新の情報をデータベースから参照可能とする。
【００１４】
＜本実施形態が解決しようとする課題＞
データベースに書込むデータの例に、航空機の位置情報がある。航空機の位置情報は、管制官としては最新のものを把握しておきたい。その理由は、ある程度時間が経過すると、より新しい情報が発生するため、それまでの情報は価値が大きく下がるためである。しかし、航空機の位置情報は、履歴情報として見た場合は、古いものを含めて全てデータベースに記録しておくことが望ましい。
【００１５】
航空機の位置情報のような情報を記録・参照するシステムを構成する場合、大量の情報が発生し、あるいは障害発生等でシステムが縮退の状態になると、書き込みの処理が追いつかず、データベースで参照できる情報が古いものとなる恐れがある。予め発生する情報の最大量を想定した構成にするか、或いは、障害発生に備えて冗長化するといった構成にすると、上記問題は回避できるが、コストがかかるという問題がある。
【００１６】
＜本実施形態による解決手段＞
本実施形態に係るデータベース書込制御装置は、データベースへのデータ書込順序をキューで管理する。データベース書込制御装置は、平時はキューの先頭から順にデータを取り出してデータベースに書き込む。即ち、データベース書込制御装置は、平時はキューに記憶されたデータのうち最も過去にキューに登録されたデータを取り出してデータベースに書込む。しかし、高負荷時等にデータベースへのデータ書き込みが遅延して、最新情報の参照が難しくなることが懸念される場合には、データベース書込制御装置は、より新しいデータを優先してデータベースに書き込むために、キューの中間や末尾からデータを取り出す。これにより、常にできるだけ新しい情報がデータベースから参照可能となる。また、データベース書込制御装置は、後回しにしたデータを最終的にはキューから取り出してデータベースに書き込む。これにより、古い情報を含む全ての情報が履歴情報としてデータベースに記憶される。
【００１７】
＜本実施形態の構成＞
図１は、本実施形態に係るデータベース書込制御装置１００の構成の一例を示す。また図１はデータベース書込制御装置１００を利用して、計測・採取した情報をオペレータに提供するシステムの構成の一例を示す。図１における各矢印は、各センサ部１０１で計測・採取した情報をデータ参照プログラム１１１で参照するまでのデータの流れを示している。
【００１８】
センサ部１０１は、計測・採取された情報をデータ受信部１０２に送信する。例えば、各センサ部１０１は、各航空機に搭載されたレーダやＧＰＳ等を含むものであってよい。各センサ部１０１で採取された航空機の位置情報は、無線通信によってデータ受信部１０２に向けて送信される。上記位置情報は、例えば、航空機の緯度と経度と高度とを含む。また上記位置情報は、採取した時刻、センサ部１０１を特定する情報（以下、センサＩＤと記す）を更に含んでいてよい。以下、航空機の位置情報を「データ」と記す。
【００１９】
データ受信部１０２は、各センサ部１０１から送信されたデータを受信し、データベース書込制御装置１００のキュー登録部１０３へデータ書込要求を送る。データ書込要求は、各センサ部１０１から受信したデータを含む。
【００２０】
データベース書込制御装置１００は、キュー登録部１０３、書込待ちキュー領域１０４、キュー取出部１０５、対象キュー選択手段１０６、及び、負荷状況検知手段１０７を含む。
【００２１】
データ書込要求を受けたキュー登録部１０３は、書込待ちキュー領域１０４にアクセスし、各センサ部１０１のセンサＩＤ毎に設けられたキューの末尾に、データ書込要求に含まれるデータを追加する。
【００２２】
書込待ちキュー領域１０４は、データ書込要求のあったデータを一時的に保持しておく記憶領域である。図２は書込待ちキュー領域１０４で管理されるデータ構造の一例を示したものである。
【００２３】
図２を参照すると、書込待ちキュー領域１０４は、センサＩＤ毎に、キュー制御情報２００およびキュー２１０のペアを有する。
【００２４】
キュー２１０は、複数のデータ２１１をチェーン付けして記憶する領域である。キュー制御情報２００は、センサＩＤ２０１、先頭位置ポインタ２０２、及び取出位置ポインタ２０３で構成される。先頭位置ポインタ２０２は、キュー２１０においてチェーン付けされた複数のデータ２１１の先頭のデータ２１１を指し示すポインタである。平時には、この先頭位置ポインタ２０２が指し示すデータがキュー２１０から取り出される。取出位置ポインタ２０３は、高負荷状況の時に取り出すべきデータ２１１を指し示すポインタである。先頭位置ポインタ２０２、取出位置ポインタ２０３、及びデータ２１１のチェーン付けは、キュー登録部１０３によるデータ２１１の追加、およびキュー取出部１０５によるデータ２１１の取出しに伴って更新される。
【００２５】
図３は、複数のデータ２１１をチェーン付けるデータ構造の一例を示す。図３の例では、３つのデータ２１１−１〜２１１−３がチェーン付けされている。各々のデータ２１１は、センサＩＤ２２１、採取時刻２２２、センシングデータ２２３、前方向ポインタ２２４、及び後方向ポインタ２２５を含む。センサＩＤ２２１と採取時刻２２２とセンシングデータ２２３は、センサ部１０１から送信されたデータを構成する要素である。前方向ポインタ２２４は、チェーン上の１つ前のデータ２１１を指し示すポインタである。後方向ポインタ２２５は、チェーン上の１つ後のデータ２１１を指し示すポインタである。前方向ポインタ２２４と後方向ポインタ２２５は、キュー２１０への登録時にデータ２１１に付加され、キュー２１０からの取出し時に除去される。
【００２６】
図３の例では、３つのデータ２１１−１〜２１１−３のうち、データ２１１−１が最初にキュー２１０に登録され、次にデータ２１１−２がキュー２１０に登録され、最後にデータ２１１−３がキュー２１０に登録された状況を示している。このとき、データ２１１−１を、チェーン付けされた複数のデータ２１１の先頭のデータ、或いは最古のデータと呼ぶ。また、データ２１１−３を、チェーン付けされた複数のデータ２１１の末尾のデータ、或いは最新のデータと呼ぶ。また、データ２１１−２を、チェーン付けされた複数のデータ２１１の中間のデータと呼ぶ。また、データ２１１−２から見てデータ２１１−１を１つ前のデータと呼び、データ２１１−３を１つ後のデータと呼ぶ。先頭のデータ２１１−１以外のデータ２１１−２、２１１−３の前方向ポインタ２２４は、１つ前のデータ２１１−１、２１１−２を指している。先頭のデータ２１１−１の前方向ポインタ２２４は、例えばＮＵＬＬ値である。末尾のデータ２１１−３以外のデータ２１１−１、２１１−２の後方向ポインタ２２５は、１つ後のデータ２１１−２、２１１−３を指している。末尾のデータ２１１−３の後方向ポインタ２２５は、例えばＮＵＬＬ値である。また図３の例では、先頭位置ポインタ２０２は、先頭のデータ２１１−１を指している。また取出位置ポインタ２０３は、末尾のデータ２１１−３を指している。
【００２７】
再び図１を参照すると、対象キュー選択手段１０６は、書込待ちキュー領域１０４内の複数のキュー２１０のうちデータを取り出すキューを選択する。選択の基準は、例えば、データ登録の時間順とすることができる。或いは選択の基準は、センサＩＤ間で予め定められた優先度順とすることができる。或いは選択の基準は、データベース１２０の高負荷時と平時とで相違していてよい。或いは選択の基準は、利用者が構築する図１のシステムの特性に応じて決定した他の基準であってもよい。対象キュー選択手段１０６は、選択したキューをキュー取出部１０５に通知する。
【００２８】
負荷状況検知手段１０７は、データベース１２０の負荷状況を検知する。データベース１２０の負荷状況を検知する方法は、任意である。例えば、負荷状況検知手段１０７は、データベース１２０を構成するハードウェアの要素であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）の使用率を計測し、この計測したＣＰＵ使用率に基づいてデータベース１２０の負荷状況を検知してよい。例えば負荷状況検知手段１０７は、ＣＰＵ使用率が閾値より高ければ「高負荷」、ＣＰＵ使用率が閾値以下であれば「低負荷」（平時）としてよい。或いは負荷状況検知手段１０７は、データベース１２０を構成するハードウェアの要素であるディスク装置のディスク入出力（Ｉ／Ｏ）使用率を計測し、この計測したディスクＩ／Ｏ使用率に基づいてデータベース１２０の負荷状況を検知してよい。例えば負荷状況検知手段１０７は、ディスクＩ／Ｏ使用率が閾値より高ければ「高負荷」、ディスクＩ／Ｏ使用率が閾値以下であれば「低負荷」（平時）としてよい。上記では、ＣＰＵ使用率、ディスクＩ／Ｏ使用率に基づいてデータベース１２０の負荷を検知したが、負荷状況検知手段１０７は、ＣＰＵおよびディスク以外のリソースの使用状況からデータベース１２０の負荷状況を検知してよい。或いは、負荷状況検知手段１０７は、データベース１２０の負荷状況を示すコマンドをオペレータから受信することによって、データベース１２０の負荷状況を検知してよい。或いは負荷状況検知手段１０７は、利用者が構築する図１のシステムの特性に応じて決定した他の方法を使用して、データベース１２０の負荷状況を検知してよい。
【００２９】
キュー取出部１０５は、データベース１２０へのデータの書込みが可能になると、書込待ちキュー領域１０４からデータ２１１を１つ取り出し、データ書込部１０８に対して、取り出したデータ２１１のデータベース１２０への登録を要求する。キュー取出部１０５がデータ２１１を取り出す書込待ちキュー領域１０４内のキュー２１０は、対象キュー選択手段１０６によって選択されたキュー２１０である。また、キュー取出部１０５は、負荷状況検知手段１０７によって検知された負荷状況に基づいて、キュー２１０からデータ２１１を取り出す。即ち、キュー取出部１０５は、データベース１２０が高負荷ならば、取出位置ポインタ２０３が指すデータ２１１を取り出す。またキュー取出部１０５は、データベース１２０が低負荷（平時）ならば、先頭位置ポインタ２０２が指すデータ２１１を取り出す。
【００３０】
データベース１２０は、データ書込部１０８、複数の記憶装置１０９、及びデータ読取部１１０を含む。データ書込部１０８は、キュー取出部１０５からのデータ書込要求を受けて、データを記憶装置１０９に書き込む。記憶装置１０９は、データを実際に格納する記憶領域である。記憶装置１０９は、本例では複数存在するが、最低１つあればよい。データ読取部１１０は、記憶装置１０９にアクセスし、書き込まれているデータを取得して、データ参照プログラム１１１に渡す。
【００３１】
データ参照プログラム１１１は、データベース１２０を参照するプログラムである。データ参照プログラム１１１は、データ読取部１１０から受け取ったデータを加工して図示しない出力装置から出力する。例えばデータ参照プログラム１１１は、受け取ったデータに基づいてグラフや航跡図等を作成してディスプレイに表示する。
【００３２】
＜本実施形態の動作＞
図４は、キュー登録部１０３の動作の一例を示すフローチャートである。キュー登録部１０３は、データ受信部１０２からデータ登録要求を受信すると、図４に示す動作を行う。先ずキュー登録部１０３は、データ受信部１０２からのデータ登録要求に含まれるセンサＩＤに対応するキュー２１０が、既に書込待ちキュー領域１０４に存在するか否かを確認する（Ｅ０１）。存在しない場合、キュー登録部１０３は、データ登録要求に含まれるセンサＩＤに対応するキュー制御情報２００とキュー２１０のペアを生成し、キュー２１０にデータ登録要求に含まれるデータ２１１を登録して終了する（Ｅ０２）。
【００３３】
一方、データ登録要求に含まれるセンサＩＤに対応するキュー２１０が存在する場合、キュー登録部１０３は、そのキュー２１０の末尾にデータ登録要求に含まれるデータ２１１を登録する（Ｅ０３）。また、キュー登録部１０３は、予め定められた取出位置更新ルールに基づいてキュー制御情報２００の取出位置ポインタ２０３の更新の要否を判断し、必要ならば取出位置ポインタ２０３を、今回登録したデータ２１１を指すように更新する。取出位置更新ルールは、例えば以下のものが考えられる。
（Ａ）キュー登録部１０３は、データを登録する都度、登録した最新のデータを指し示すように、取出位置ポインタ２０３を更新する。
（Ｂ）キュー登録部１０３は、データをｎ個（ｎは２以上の正の整数）登録する毎に、登録した最新のデータを指し示すように、取出位置ポインタ２０３を更新する。例えば、キュー２１０にデータを５つ登録すると、最後に登録したデータを指し示すように取出位置ポインタ２０３を更新し、その後、４つのデータを登録する際には取出位置ポインタ２０３は更新しない。
（Ｃ）キュー登録部１０３は、上記ＡあるいはＢの判断を、センサＩＤ毎に行う。即ち、キュー登録部１０３は、特定のセンサＩＤに対応するキュー２１０ならば上記Ａのルールを適用し、特定のセンサＩＤ以外に対応するキュー２１０ならば上記Ｂのルールを適用する。
但し、取出位置ポインタ２０３を更新するルールは上記の例に限定されない。キュー登録部１０３は、利用者が構築する図１のシステムの特性に応じて決定した他のルールに基づいて、取出位置ポインタ２０３の更新の要否を判断してよい。
【００３４】
図５はキュー取出部１０５の動作の一例を示すフローチャートである。キュー取出部１０５は、例えば、データ書込部１０８が現在書込んでいるデータの書込みを終了し、次のデータの書込みが可能になった旨の通知をデータ書込部１０８から受信すると、図５に示す動作を行う。
【００３５】
先ずキュー取出部１０５は、対象キュー選択手段１０６の選択に従って、データ２１１を取り出す対象のキュー２１０を決定する（Ｄ０１）。次にキュー取出部１０５は、負荷状況検知手段１０７による検知結果に基づいて、データベース１２０が高負荷状態か否かを判断する（Ｄ０２）。
【００３６】
キュー取出部１０５は、平時であれば（データベース１２０が高負荷でなければ）、選択されたキュー２１０のキュー制御情報２００内の先頭位置ポインタ２０２が指すデータ２１１を取り出す（Ｄ０３）。次にキュー取出部１０５は、先頭位置ポインタ２０２を上記取り出したデータ２１１の１つ後のデータ２１１を指すように更新する（Ｄ０４）。次にキュー取出部１０５は、上記取り出したデータ２１１の書込みをデータ書込部１０８に要求する（Ｄ０５）。
【００３７】
一方、キュー取出部１０５は、高負荷状態であれば、選択されたキュー２１０のキュー制御情報２００内の取出位置ポインタ２０３が指すデータ２１１を取り出す（Ｄ０６）。次にキュー取出部１０５は、取出位置ポインタ２０３を更新する（Ｄ０７）。例えばキュー取出部１０５は、取り出したデータ２１１の後ろに１以上のデータがあれば、取り出したデータ２１１の１つ以上後ろのデータ２１１を指すように取出位置ポインタ２０３を更新する。またキュー取出部１０５は、取り出したデータ２１１の後ろにデータがなければ、取り出したデータ２１１の１つ前のデータ２１１があればそれを指すように取出位置ポインタ２０３を更新する。次にキュー取出部１０５は、上記取り出したデータ２１１の書込みをデータ書込部１０８に要求する（Ｄ０５）。
【００３８】
図６は、キュー取出部１０５の動作の他の例を示すフローチャートである。図６では、図５に示すステップＤ０１とステップＤ０２の順序が入れ替わっている。図６を参照すると、キュー取出部１０５は、先ずデータベース１２０が高負荷状態か否かを判断する（Ｄ０２）。次にキュー取出部１０５は、平時（高負荷でない時）であれば、対象キュー選択手段１０６によって平時の選択の基準で選択されたキュー２１０を取り出し対象のキューに決定する（Ｄ０１Ａ）。そしてキュー取出部１０５は、図５のステップＤ０３〜Ｄ０５と同様の処理を行う。他方、キュー取出部１０５は、高負荷時であれば、対象キュー選択手段１０６によって高負荷時の選択の基準で選択されたキュー２１０を取り出し対象のキューに決定する（Ｄ０１Ｂ）。そしてキュー取出部１０５は、図５のステップＤ０６、Ｄ０７、Ｄ０８と同様の処理を行う。
【００３９】
＜本実施形態の効果＞
本実施形態によれば、データベース１２０の高負荷時には、キュー２１０上のより新しく発生したデータのデータベース１２０への書き込みが優先されるため、データ参照の際はできるだけ最新のデータをデータベース１２０から得ることができる。
【００４０】
データベース１２０への書き込みが後回しにされたキュー２１０上のデータは、一時的にはデータベース１２０から参照できない状態となる。しかし、キュー２１０上の新しいデータから順に書込まれるか、平時に戻った際に古いデータから順に書き込まれるため、最終的には全てのデータがデータベース１２０から参照可能となる。
【００４１】
[第２の実施形態]
図７は、本発明の第２の実施形態に係るデータベース書込制御装置１００Ａの構成の一例を示す。本実施形態に係るデータベース書込制御装置１００Ａは、図１に示したデータベース書込制御装置１００と比較して、データ破棄判定手段１１２を更に含んでいる点で、データベース書込制御装置１００と相違し、それ以外はデータベース書込制御装置１００と同じである。
【００４２】
データ破棄判定手段１１２は、キュー２１０から取り出したデータ２１１のデータベース１２０への書込み要否を、そのデータ２１１の価値に基づいて決定する。データ２１１の価値に基づいて書込み要否を判断する基準は、例えば以下のようなものが考えられる。
（Ａ）データ破棄判定手段１１２は、キュー２１０への登録時刻が一定時間以上古いデータは価値が充分に低いと判断して書込み不要と決定し、それ以外のデータは書込み要と決定する。この場合、キュー登録部１０３は、データ２１１に登録時刻を付与してキュー２１０に記憶する。データ破棄判定手段１１２は、データ２１１に付与された登録時刻と現在時刻とを比較して、登録時刻が一定時間以上古いデータか否かを判断する。
（Ｂ）データ破棄判定手段１１２は、その時点で特に注視する必要のないセンサのデータであって値が予測の範囲内であるデータは価値が充分に低いと判断して書込み不要と決定し、それ以外のデータは書込み要と決定する。データ破棄判定手段１１２は、その時点で特に注視する必要のないセンサのデータか否かは、例えば、注視する必要のある旨がオペレータからのコマンドで指定されたセンサのデータか否かに基づいて判断する。また、データ破棄判定手段１１２は、予測の範囲内であるデータか否かは、例えば、それ以前にキュー２１０に登録されたデータに基づいて補間等によって算出した推定値と当該データの値との誤差が一定値以内ならば予測可能なデータ、それ以外は予測不可能なデータと決定する。
【００４３】
図８は、データ破棄判定手段１１２の判断内容によってデータ書込要求の発生の有無を決定するキュー取出部１０５の動作を示すフローチャートである。図８は、ステップＤ０８、Ｄ０９が追加されている点で、図５と相違し、それ以外は図５と同じである。
【００４４】
図８を参照すると、キュー取出部１０５は、データベース１２０の高負荷時（Ｄ０２でＹｅｓ）、キュー２１０から取り出したデータ２１１のデータベース１２０への書込み要否を、データ破棄判定手段１１２を使用して判定する（Ｄ０８）。そして、キュー取出部１０５は、書込み不要であれば、そのデータについて書込み要求をデータ書込部１０８に送ることなく、破棄する（Ｄ０９）。一方、書込みが必要ならば、キュー取出部１０５は、そのデータについて書込み要求をデータ書込部１０８に送る（Ｄ０５）。
【００４５】
このように本実施形態によれば、キュー２１０から取り出したデータ２１１の価値に基づいてデータベース１２０に書込む必要性を判断し、書込む必要性のないデータの書込み要求は発生させることなくデータを破棄する。これによって、データベース１２０への書き込みが後回しにされたデータについて、その後にデータベース１２０に書き込む必要が無いと判断できる場合には、そのデータの書き込み要求は発生させることなく破棄することができる。その結果、データベース１２０への書き込み量を抑止し、最低限残しておきたいデータの書き込みにリソースを割くことが可能となる。
【００４６】
また本実施形態によれば、高負荷でない平時は、キュー２１０から取り出したデータの全てをデータベース１２０に書込むことができる。但し、本発明の他の実施形態として、高負荷時および平時に関係無く、キュー２１０から取り出したデータのデータベース１２０への書込み要否をデータ破棄判定手段１１２において常に判断するようにしてもよい。
【００４７】
［第３の実施形態］
図９は、本発明の第３の実施形態に係るデータベース書込制御装置１００Ｂのブロック図である。本実施形態に係るデータベース書込制御装置１００Ｂを構成するコンピュータ装置３００は、ＣＰＵ５１、メモリ３０２、プログラムおよびデータを格納するハードディスク等の記録装置３０３、およびネットワーク接続用のＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４を含む。また、コンピュータ装置３００は、バス３０５を介して入力装置３０６および出力装置３０７に接続されている。
【００４８】
ＣＰＵ３０１は、オペレーティングシステムを動作させてコンピュータ装置３００の全体を制御する。また、ＣＰＵ３０１は、例えばドライブ装置などに装着された記録媒体３０８からプログラムやデータを読み出し、メモリ３０２に格納してもよい。また、ＣＰＵ３０１は、図１に示すデータ受信部１０２、キュー登録部１０３、キュー取出部１０５、対象キュー選択手段１０６、負荷状況検知手段１０７、データ書込部１０８、データ読取部１１０、データ参照プログラム１１１、図７のデータ破棄判定手段１１２として機能し、プログラムに基づいて各種の処理を実行する。ＣＰＵ３０１は、複数のＣＰＵによって構成されてもよい。
【００４９】
メモリ３０２は、例えば、ランダムアクセスメモリ（ＲＡＭ）等である。メモリ３０２の一部は、書込み待ちキュー領域１０４として使用される。記録装置３０３は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記録装置３０３の一部は、データベース１２０の記憶装置１０９として使用される。記録媒体３０８は、不揮発性記憶装置であり、そこにＣＰＵ３０１が実行するプログラムを記録する。記録媒体３０８は、記録装置３０３の一部であってもよい。また、プログラムは、通信網に接続されている図示しない外部コンピュータからＩ／Ｆ３０４を介してダウンロードされてもよい。
【００５０】
入力装置３０６は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置３０６は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネルでもよい。出力装置３０７は、例えばディスプレイで実現され、出力を確認するために用いられる。
【００５１】
以上のように、本実施形態に係るデータベース書込制御装置１００Ｂは、図９に示されるハードウェア構成とプログラムとによって実現される。ただし、ハードウェア構成は、図９に示す構成に限定されない。例えば、入力装置３０６、出力装置３０７は、インターフェース３０４を介して外付けされるものでもよい。
【００５２】
また、コンピュータ装置３００は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【００５３】
［第４の実施形態］
図１０を参照すると、本発明の第４の実施形態に係るデータベース書込制御装置１００Ｃは、データベース４１０に書込むデータ４１１の書込順序待ち制御を行う装置である。データベース書込制御装置１００Ｃは、キュー４０１、キュー登録部４０２、負荷状況検知部４０３、及びキュー取出部４０４を含む。
【００５４】
キュー４０１は、データ４１１を一時的に記憶する機能を有する。キュー登録部４０２は、データ４１１をキュー４０１に書込む機能を有する。負荷状況検知部４０３は、データベース４１０の負荷を検知する機能を有する。キュー取出部４０４は、キュー４０１に記憶された１以上のデータ４１１の中から、データベース４１０に書込むためにキュー４０１から取り出すデータを、データベース４１０の負荷に基づいて決定する機能を有する。
【００５５】
このように構成されたデータベース書込制御装置１００Ｃは、以下のように動作する。先ず、データベース４１０に書込むデータ４１１がデータベース書込制御装置１００Ｃに入力されると、キュー登録部４０２は、そのデータ４１１をキュー４０１に書込む。
【００５６】
一方、データベース４１０にデータを書込む場合、先ず、負荷状況検知部４０３は、データベース４１０の負荷を検知する。次に、キュー取出部４０４は、キュー４０１に記憶された１以上のデータ４１１の中から、データベース４１０に書込むためにキュー４０１から取り出すデータを、データベース４１０の負荷に基づいて決定する。
【００５７】
このように本実施形態によれば、データベース４１０の負荷が高いためにデータベース４１０への書込み処理が追いつかない場合であっても、データベース４１０で参照できるデータが古いものになるのを防止することができる。その理由は、キュー取出部４０４は、キュー４０１に記憶された１以上のデータ４１１の中から、データベース４１０に書込むためにキュー４０１から取り出すデータを、データベース４１０の負荷に基づいて決定するためである。
【００５８】
［その他の実施形態］
上述した実施形態では、負荷状況検知手段１０７は、データベース１２０の負荷状況を高負荷と平時とに区分したが、３つ以上に区分して検知してもよい。例えば、負荷状況検知手段１０７は、ＣＰＵ使用率やディスクＩ／Ｏ使用率等のリソースの使用率が第１の閾値以上であればデータベース１２０は最大負荷であり、第１の閾値より小さな第２の閾値未満であればデータベース１２０は最小負荷であり、第２の閾値以上、第１の閾値未満であれば中間負荷であると検知してよい。そして、キュー取出部１０５は、データベース１２０が最大負荷であれば、キュー２１０の末尾のデータを取り出し、最小負荷であればキュー２１０の先頭のデータを取り出し、中間負荷であれば、キュー２１０の末尾と先頭との中間のデータを取り出すように構成されていてよい。
【００５９】
上述した実施形態では、データベースに書込むデータを、センサ部で検出された航空機の位置情報としたが、航空機の位置情報以外のセンサデータ、例えば温度、湿度、風速等を検出するセンサのセンシングデータをデータベースに書込む場合にも本発明は適用可能である。
【産業上の利用可能性】
【００６０】
本発明は、センサで計測・採取されたデータをデータベースに書込むシステム全般に利用でき、特に航空管制における航空機の位置情報を照会・蓄積するシステムに利用できる。
【符号の説明】
【００６１】
１００…データベース書込制御装置
１００Ａ…データベース書込制御装置
１００Ｂ…データベース書込制御装置
１００Ｃ…データベース書込制御装置
１０１…センサ部
１０２…データ受信部
１０３…キュー登録部
１０４…書込待ちキュー領域
１０５…キュー取出部
１０６…対象キュー選択手段
１０７…負荷状況検知手段
１０８…データ書込部
１０９…記憶装置
１１０…データ読取部
１１１…データ参照プログラム
１１２…データ破棄判定手段
２００…キュー制御情報
２０１…センサＩＤ
２０２…先頭位置ポインタ
２０３…取出位置ポインタ
２１０…キュー
２２１…センサＩＤ
２２２…採取時刻
２２３…センシングデータ
２２４…前方向ポインタ
２２５…後方向ポインタ
３００…コンピュータ装置
３０１…ＣＰＵ
３０２…メモリ
３０３…記録装置
３０４…インターフェース
３０５…バス
３０６…入力装置
３０７…出力装置
３０８…記録媒体
４０１…キュー
４０２…キュー登録部
４０３…負荷状況検知部
４０４…キュー取出部
４１０…データベース
４１１…データ
【図１】
2018132971.tif 000003
【図２】
2018132971.tif 000004
【図３】
2018132971.tif 000005
【図４】
2018132971.tif 000006
【図５】
2018132971.tif 000007
【図６】
2018132971.tif 000008
【図７】
2018132971.tif 000009
【図８】
2018132971.tif 000010
【図９】
2018132971.tif 000011
【図１０】
2018132971.tif 000012