(57)【要約】【課題】データ要求に対する応答速度を向上させること。【解決手段】第１の記憶部と、前記第１の記憶部に比して高速にアクセス可能な第２の記憶部と、前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御する制御部と、前記第２の記憶部に格納されたデータを用いてデータ要求に応答する応答部とを備える情報管理装置。【選択図】図１
2014006666.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶部と、
前記第１の記憶部に比して高速にアクセス可能な第２の記憶部と、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御する制御部と、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答する応答部と、
を備える情報管理装置。
【請求項２】
請求項１記載の情報管理装置であって、
前記応答部は、
前記データ要求が要求するデータを前記第２の記憶部から第３の記憶部にコピーすると共に、該第３の記憶部に格納されたデータを用いて前記データ要求に応答し、
前記データ要求を受け付けてから一定期間の間に他のデータ要求を受け付けた場合において、先のデータ要求と後のデータ要求が共通するデータを要求するとき、前記後のデータ要求に対する応答が終了するまでの間、該共通するデータを前記第３の記憶部に存続させる、
情報管理装置。
【請求項３】
請求項１又は２記載の情報管理装置であって、
前記第２の記憶部は、前記データ要求の記憶領域として用いられるメモリ装置における前記データ要求の記憶領域とは異なる記憶領域によって実現され、
前記制御部は、前記データ要求の集中程度に基づいて、前記第２の記憶部として用いられる記憶領域のサイズを変更する、
情報管理装置。
【請求項４】
第１の記憶部と、前記第１の記憶部に比して記憶容量が小さく且つ高速アクセス可能な第２の記憶部とを備える情報管理装置に、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御させ、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答させる、
情報管理プログラム。
【請求項５】
第１の記憶部と、前記第１の記憶部に比して記憶容量が小さく且つ高速アクセス可能な第２の記憶部とを備える情報管理装置が、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御し、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答する、
情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報管理装置、情報管理プログラム、及び情報管理方法に関する。
【背景技術】
【０００２】
従来、入出力制御装置とディスクコントローラと磁気ディスク装置をインタフェースバスにより接続し、上位装置からの指示により格納されたデータにアクセスするストレージシステムが知られている。このストレージシステムは、入出力制御装置、ディスクコントローラ、磁気ディスク装置のそれぞれに対してキャッシュメモリを有し、それぞれのキャッシュメモリに格納されるデータの所在を管理する統合キャッシュ管理テーブルを入出力制御装置内に備える。そして、このストレージシステムは、上位装置からのデータの読み出しの際に統合キャッシュ管理テーブルを索引し、キャッシュメモリ内にデータがあればキャッシュメモリからデータを出力し、データがなければ磁気ディスク装置をアクセスしてデータを出力する。
【０００３】
また、記憶装置のデータの一部を保持するキャッシュメモリを備えたコントローラが知られている。このコントローラは、データを先読みする機能を有し、先読み対象のデータが他のコントローラのキャッシュメモリに既に格納されている場合には、他のコントローラのキャッシュメモリに格納されたデータを先読みデータとして先読みテーブルに登録する。そして、このコントローラは、ホストからのリード要求が先読みテーブルに登録されたデータに該当する場合、他のコントローラのキャッシュメモリに格納されているデータをホストへ転送するように制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３５３１２５号公報
【特許文献２】特開２００８−１２３３６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のストレージシステムは、キャッシュメモリ内にデータがない場合に行われる磁気ディスク装置へのアクセスがランダムアクセスとなるため、ディスクのヘッドの移動時間の影響で、応答速度が遅くなる場合がある。
【０００６】
上記コントローラの場合も同様に、先読みが的中した場合に応答速度を向上させることはできるものの、互いに関連性の無いリード要求が連続した場合に、ランダムアクセスにより応答速度が遅くなることを回避することができない。
【０００７】
一つの側面では、本発明は、データ要求に対する応答速度を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
一態様の情報管理装置は、第１の記憶部と、前記第１の記憶部に比して高速にアクセス可能な第２の記憶部と、前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御する制御部と、前記第２の記憶部に格納されたデータを用いてデータ要求に応答する応答部と、を備える。
【発明の効果】
【０００９】
一実施態様によれば、データ要求に対する応答速度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】一実施例に係る情報管理装置１のハードウェア及び機能構成例である。
【図２】情報管理装置１を利用した情報システムの構成例である。
【図３】情報収集装置９０から情報管理装置１にデータが送信される様子を示す図である。
【図４】循環書込制御部１４及びデータ要求に対する応答部１６による処理の内容を説明するための説明図である。
【図５】循環書込領域４４に格納されるデータの推移の一例である。
【図６】循環書込領域４４に格納されるデータの推移の他の例である。
【図７】循環書込制御部１４により実行されるフローチャートの一例である。
【図８】処理中の要求テーブル５２の一例である。
【図９】データ要求に対する応答部１６による処理の流れを示すフローチャートの一例である。
【図１０】データ要求に対応する辞書テーブル５０として格納されるデータの一例である。
【図１１】データ要求に対する応答部１６による処理の流れを示すフローチャートの一例である。
【図１２】データ要求１（データＡ、Ｂ、Ｃ）がなされ、次いでデータ要求２（データＣ、Ｄ、Ｋ）がなされた場合における、各データの変化を例示した図である。
【図１３】参考例の装置において行われる処理の流れを模式的に示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１２】
以下、図面を参照し、本発明の一実施例について説明する。
【００１３】
［構成］
図１は、一実施例に係る情報管理装置１のハードウェア及び機能構成例である。情報管理装置１は、例えば、ＣＰＵ（Central  Processing  Unit）１０と、ドライブ装置２０と、入力装置２２と、表示装置２４と、ＮＩＣ（Network  Interface  Card）２６と、記憶装置３０と、メモリ装置４０とを備える。これらの構成要素は、例えばバスを介して接続されている。
【００１４】
ＣＰＵ１０は、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有する演算処理装置としてのプロセッサである。情報管理装置１は、ＣＰＵ１０が記憶装置３０等に格納されたプログラムをメモリ装置４０等に展開して実行することにより機能する機能ブロックとして、データ要求受付部１２と、循環書込制御部１４と、データ要求に対する応答部１６とを備える。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ＬＳＩ（Large  Scale  Integrated  circuit）、ＩＣ（Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等のハードウェア手段であっても構わない。各機能ブロックの機能については後述する。
【００１５】
ドライブ装置２０は、記憶媒体２８からプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体２８がドライブ装置２０に装着されると、プログラムが記憶媒体２８からドライブ装置２０を介して記憶装置３０等にインストールされる。記憶媒体２８は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型の記憶媒体である。
【００１６】
ＣＰＵ１０が実行するプログラムのインストールは、上記のように記憶媒体２８を用いる他、ＮＩＣ２６及びネットワーク６０を介して他のコンピュータよりダウンロードしてもよい。ネットワーク６０は、インターネット、ＬＡＮ（Local  Area  Network）、無線ネットワーク等である。また、プログラムは、情報管理装置１の出荷時に、予め記憶装置３０やＲＯＭ（Read  Only  Memory）等に格納されていてもよい。
【００１７】
入力装置２２は、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等である。また、表示装置２４は、例えば、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）等の表示装置である。
【００１８】
記憶装置３０は、例えばＨＤＤ（Hard  Disk  Drive）であり、外部から参照される参照対象データ３２を格納している。参照対象データ３２は、複数のデータの集まりである。
【００１９】
メモリ装置４０は、記憶装置３０よりも高速にアクセス可能な装置であり、例えばＲＡＭ（Random  Access  Memory）である。メモリ装置４０には、データ要求格納領域４２、循環書込領域４４、中間領域４６、及び図示しないプログラム格納領域等の領域が設定される。また、メモリ装置４０には、循環書込領域に存在するファイル一覧テーブル４８、データ要求に対応する辞書テーブル５０、処理中の要求テーブル５２等のデータが格納される。
【００２０】
ここで、記憶装置３０とメモリ装置４０の組み合わせについては、上記説明したＨＤＤとＲＡＭの組み合わせに限らず、例えば下記のような種々の組み合わせが考えられる。
・メモリ装置４０：ＲＡＭ            −  記憶装置３０：ＨＤＤ
・メモリ装置４０：ＲＡＭ            −  記憶装置３０：ＤＶＤ
・メモリ装置４０：ＲＡＭ            −  記憶装置３０：ＣＤ
・メモリ装置４０：ＲＡＭ            −  記憶装置３０：Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ
・メモリ装置４０：ＳＳＤ（Solid  State  Drive、又は単にフラッシュメモリ；以下同じ）  −  記憶装置３０：ＨＤＤ
・メモリ装置４０：ＳＳＤ  −  記憶装置３０：ＤＶＤ
・メモリ装置４０：ＳＳＤ  −  記憶装置３０：ＣＤ
・メモリ装置４０：ＳＳＤ  −  記憶装置３０：Ｂｌｕ−ｒａｙ  Ｄｉｓｃ
［利用例等］
図２は、情報管理装置１を利用した情報システムの構成例である。情報管理装置１は、例えばネットワーク６０を介してユーザ端末７０、サーバ８０、及び情報収集装置９０に接続されて利用される。ユーザ端末７０、サーバ８０、及び情報収集装置９０は、それぞれが、例えばＣＰＵ、記憶装置、メモリ装置、ＮＩＣ等を備えるコンピュータである。
【００２１】
ユーザ端末７０は、例えばサーバ８０に対して抽出・分析要求を送信する。抽出条件としては、例えば「１Ｑの売り上げが５０より大きい」等が設定され、リターン式として「事業部」、「部」等が与えられる。サーバ８０は、抽出・分析要求に応じた抽出・分析処理に必要なデータを参照対象データ３２から検索して送信するように、情報管理装置１に要求する（データ要求）。情報管理装置１は、参照対象データ３２からデータ要求に応じたデータを検索してサーバ８０に応答送信する。サーバ８０は、情報管理装置１から受信したデータに基づき抽出・分析処理を行い、処理結果（抽出・分析結果）をユーザ端末７０に送信する。ユーザ端末７０は、受信した抽出・分析結果に対して整形処理等を行い、図示しない表示装置に表示させる。
【００２２】
情報収集装置９０は、記憶装置３０に格納される参照対象データ３２の元データを収集し、情報管理装置１に送信する。図３は、情報収集装置９０から情報管理装置１にデータが送信される様子を示す図である。情報収集装置９０は、記憶装置上で例えばＲＤＢ（Relational  DataBase）９２の形式でデータを管理しており、ＲＤＢ９２の更新ログを使用し、ＲＤＢ９２に格納されたレコードをファイルに変換して情報管理装置１に送信する。ファイルとは、例えばＣＳＶ（Comma  Separated  Values）ファイルやＸＭＬ（Extensible  Markup  Language）ファイルであり、添付ファイルを付加することもできる。情報収集装置９０が収集するデータは、例えばＰＯＳ（Point  Of  Sale）システムの売り上げデータ等の大規模データであり、情報収集装置９０は、例えばデータ更新ログをＣＳＶやＸＭＬファイルに変換したものを、情報管理装置１に送信する。
【００２３】
［循環書込制御、データ要求への応答］
以下、循環書込制御部１４及びデータ要求に対する応答部１６の処理内容について説明する。
【００２４】
（循環書込制御）
図４は、循環書込制御部１４及びデータ要求に対する応答部１６による処理の内容を説明するための説明図である。循環書込制御部１４及びデータ要求に対する応答部１６は、例えば、アプリケーションプログラムにより実現されるデータ要求受付部１２のために処理を行うミドルウェアである。データ要求受付部１２は、サーバ８０からのデータ要求の受付及び管理等を行い、データ要求の内容をデータ要求格納領域４２に格納すると共に、データ要求に対する応答部１６からの応答をサーバ８０に送信する。
【００２５】
以下、記憶装置３０には、参照対象データ３２として複数のデータＡ、Ｂ、Ｃ、…、Ｌが、格納されているものとする。データＢはデータＡの格納されているアドレスよりも後のアドレスに格納され、データＣはデータＢの格納されているアドレスよりも後のアドレスに格納され、…、データＬはデータＫの格納されているアドレスよりも後のアドレスに格納される。また、循環書込領域４４は、データ５個分の記憶領域であるものとする（説明を簡略化するために、各データのサイズは同じ、或いはデータ１個分の記憶領域よりも必ず小さいものとする）。中間領域４６に書込可能なデータ数に特段の制限は無いが、図４では、中間領域４６は、データ４個分の記憶領域であるものとした。
【００２６】
循環書込制御部１４は、記憶装置３０からデータＡ→データＢ→データＣ→…→データＬの順に、すなわちシーケンシャルにデータを読み出し、循環書込領域４４に書き込む。循環書込制御部１４は、循環書込領域４４に空きがあれば循環書込領域４４の空き領域にデータを書き込み、空きがなければ循環書込領域４４に格納されたデータを一つ（例えば最も古いものを）消去して循環書込領域４４にデータを書き込む。すなわち、循環書込領域４４は、記憶装置３０に格納された参照対象データ３２の一部が循環的に格納されるように制御される。循環書込領域に存在するファイル一覧テーブル４８は、循環書込領域４４と同様に循環書込制御部１４によって管理されるデータであり、循環書込領域４４に格納されたデータの例えば識別子のみが格納される（循環書込領域４４にはデータの内容も格納される）。
【００２７】
図５は、循環書込領域４４に格納されるデータの推移の一例である。図５に示すように、時点ｔ１において循環書込領域４４に格納されるデータと、時点ｔ２において循環書込領域４４に格納されるデータは、順序を考慮しなければ同じ内容となっている。そして、時点ｔ１から、時点ｔ２の一つ前の時点までの単位区間において出現するデータの推移が、繰り返し出現することになる。
【００２８】
また、図６は、循環書込領域４４に格納されるデータの推移の他の例である。図６は、空きがなければ循環書込領域４４に格納された先頭のデータを消去し、空き領域に後続のデータを詰める処理が行われた結果を示している。循環書込制御部１４は、図５に示す処理と図６に示す処理のいずれを採用してもよく、他の手法により記憶装置３０から読み出したデータを循環書込領域４４に書き込んでもよい。
【００２９】
図７は、循環書込制御部１４により実行されるフローチャートの一例である。図７に示すフローチャートは、例えば、情報管理装置１が起動したときに開始される。
【００３０】
まず、循環書込制御部１４は、処理中の要求テーブル５２の内容に基づきデータ要求の集中程度を確認し（Ｓ１００）、データ要求の集中程度に基づき循環書込領域４４のサイズを決定する（Ｓ１０２）。循環書込制御部１４は、例えば、データ要求が集中しているときには循環書込領域４４のサイズを小さくし、データ要求が集中していないときには循環書込領域４４のサイズを大きくすることで、メモリ装置４０の全体的な使用領域を一定程度に制限する。データ要求の集中程度は、例えば処理中の要求デーブルに、何回のデータ要求に対応したデータが格納されているかに基づいて算出することができ、循環書込制御部１４は、例えば算出した値が閾値以上である場合に、データ要求が集中していると判定する。
【００３１】
処理中の要求テーブル５２は、データ要求に対する応答部１６によって管理されるテーブルデータであり、データ要求がなされてからデータ出力（応答）が完了するまでの状態にあるデータ要求の明細を示すものである。図８は、処理中の要求テーブル５２の一例である。処理中の要求テーブル５２は、あるデータ要求が受け付けられてから処理終了依頼を受け付けるまでの間、当該データ要求に含まれるデータの後述するデータ要求に対応する辞書テーブル５０におけるＩＤに対応したビット列を列挙したデータである。図８に示すように、処理中の要求テーブル５２では、データ要求の識別子（要求１、２等）に対応し、要求するデータがビット列の形式で表現されている。ビット列において「１」は、該当するデータを要求することを示し、「０」は、該当するデータを要求しないことを示している。各ビット列の桁数は、データ要求に対応する辞書テーブル５０におけるデータのＩＤに対応する。
【００３２】
次に、循環書込制御部１４は、循環書込領域４４に空きが有るか否かを判定する（Ｓ１０４）。循環書込領域４４に空きが無い場合、循環書込制御部１４は、例えば、最も古いデータを循環書込領域４４及び循環書込領域に存在するファイル一覧テーブル４８から消去する（Ｓ１０６）。
【００３３】
そして、循環書込制御部１４は、記憶装置３０からシーケンシャルに読み出したデータを循環書込領域４４の空き領域に書き込むと共に、データの識別子を循環書込領域に存在するファイル一覧テーブル４８の空き領域に書き込み（Ｓ１０８）、Ｓ１０４に戻る。
【００３４】
なお、循環書込制御部１４は、Ｓ１０４〜Ｓ１０８の処理を何回か実行すると、Ｓ１００に戻るような流れで処理を行ってもよい。
【００３５】
（データ要求への応答）
データ要求に対する応答部１６は、循環書込制御部１４によって管理される循環書込領域４４に格納されたデータを用いて、データ要求受付部１２が受け付けたデータ要求に応答する。
【００３６】
データ要求に対する応答部１６の処理は、循環書込制御部１４の処理とは非同期で行われる。すなわち、データ要求に対する応答部１６から循環書込制御部１４に対して、記憶装置３０に格納された参照対象データのうち読み出すデータを指定する動作等は行われない。データ要求に対する応答部１６は、基本的には、データ要求に含まれるデータが循環書込領域４４に格納されるまで待ち、データ要求に含まれるデータが循環書込領域４４に格納されると、循環書込領域４４から必要なデータを読み出してデータ要求元に応答する。
【００３７】
これによって、循環書込制御部１４による記憶装置３０からの読み出しがシーケンシャルに行われることが保証されるため、記憶装置３０におけるヘッドの移動時間の影響で応答速度が遅くなることを回避することができる。
【００３８】
そして、データ要求に含まれるデータが循環書込領域４４に格納されるまで待つ時間は、データ要求が多く集中している状態では、応答に使用されずに消去されるデータが少なくなることにより希薄化される（隠蔽される）ため、全体の平均としては短くなる。
【００３９】
すなわち、複数のデータ要求が同じ時間帯になされた場合、あるデータ要求については待ち時間が長くなるが、他のデータ要求については待ち時間が短くなるといった関係が生じる。この結果、全てのデータ要求についての平均的な待ち時間は、データ要求のそれぞれに対応して記憶装置３０から読み出すデータを指定する形式の装置における、平均的な待ち時間と比較すると短くなる。
【００４０】
従って、本実施例の情報管理装置１は、データ要求が集中した特定の状況下で、データ要求に対する応答速度を向上させることができる。
【００４１】
データ要求に対する応答部１６は、短時間のうちに同じデータが連続して要求されるような場面を考慮し、単にデータ要求に含まれるデータが循環書込領域４４に格納されるのを待つのではなく、中間領域４６を用いて更に効率的な応答を実現する。中間領域４６には、あるデータ要求が受け付けられてから処理終了依頼を受け付けるまでの期間において循環書込領域４４に書き込まれたデータ、或いは前回以前のデータ要求により循環書込領域４４に書き込まれたデータのうち引き継がれるべきデータが格納される。
【００４２】
図９は、データ要求に対する応答部１６による処理の流れを示すフローチャートの一例である。図９に示すフローチャートは、データ要求受付部１２がサーバ８０からデータ要求を受け付けたときに開始される。
【００４３】
まず、データ要求に対する応答部１６は、データ要求に対応する辞書テーブル５０を作成又は参照し、データ要求に対応したビット列を作成する（Ｓ２００）。図１０は、データ要求に対応する辞書テーブル５０として格納されるデータの一例である。データ要求に対応する辞書テーブル５０には、データ要求に対する応答部１６が付与するＩＤに対応付けられて、データの識別子、及び中間領域４６からのデータ消去の可否を判定するための要求カウンタ値が格納される。データ要求に対応する辞書テーブル５０は、例えば、情報管理装置１の起動時にはブランクデータとなっており、新たなデータ要求を受け付けると、データ要求に含まれるデータのそれぞれに対してＩＤを付与するという流れで作成される。
【００４４】
「データ要求に対応したビット列」は、例えばデータ（Ａ、Ｂ、Ｃ）を要求するデータ要求であれば、データ要求に対応する辞書テーブル５０における対応するＩＤが（１、２、３）であるため、「1110  0000  0000  0000」と作成される。また、「データ要求に対応したビット列」は、データ（Ｃ、Ｄ、Ｋ）を要求するデータ要求であれば、データ要求に対応する辞書テーブル５０における対応するＩＤが（３、４、５）であるため、「0011  1000  0000  0000」と作成される。
【００４５】
次に、データ要求に対する応答部１６は、Ｓ２００で作成したビット列と、処理中の要求テーブル５２に含まれる各ビット列とのＡＮＤ（論理和）を求める（Ｓ２０２）。処理中の要求テーブル５２に含まれるビット列が「1110  0000  0000  0000」であり、Ｓ２００で作成したビット列が「0011  1000  0000  0000」であれば、これらのＡＮＤは「0001  0000  0000  0000」となる。この状況において中間領域４６には、「0001  0000  0000  0000」に対応するデータＣが格納されている筈である（理由については図１１、１２を参照）。従って、データ要求に対する応答部１６は、「0001  0000  0000  0000」に対応するデータＣにポインタをつなぎ（Ｓ２０４）、データＣをデータ要求受付部１２に渡す。
【００４６】
次に、データ要求に対する応答部１６は、次回以降に実行される本フローチャートの処理のために、処理中の要求テーブルに、Ｓ２００で作成したビット列を追加する（Ｓ２０６）。
【００４７】
次に、データ要求に対する応答部１６は、データ要求からデータを一つ選ぶ（Ｓ２０８）。Ｓ２０８の処理においてデータ要求に対する応答部１６は、Ｓ２０２で１が立ったビットに対応するデータを除外する。
【００４８】
次に、データ要求に対する応答部１６は、Ｓ２０８で選んだデータが循環書込領域４４に存在するか否かを判定する（Ｓ２１０）。Ｓ２０８で選んだデータが循環書込領域４４に存在する場合、データ要求に対する応答部１６は、当該データを循環書込領域４４から中間領域４６にコピーし（Ｓ２１２）、中間領域４６におけるコピーしたデータにポインタをつなぐ（Ｓ２１４）。これによってデータ要求に対する応答部１６は、データ要求受付部１２にデータを渡す。
【００４９】
Ｓ２０８で選んだデータが循環書込領域４４に存在しない場合、データ要求に対する応答部１６は、データを循環書込領域４４から中間領域４６にコピーして中間領域４６におけるコピーしたデータにポインタをつなぐことを予約する（Ｓ２１６）。データ要求に対する応答部１６は、Ｓ２０８で選んだデータが循環書込領域４４に書き込まれると、上記処理を実行する。
【００５０】
次に、データ要求に対する応答部１６は、データ要求における全てのデータ（Ｓ２０２で１が立ったビットに対応するデータは除外）をチェックしたか否かを判定する（Ｓ２１８）。データ要求に対する応答部１６は、データ要求における全てのデータをチェックしていない場合にはＳ２０８に戻りデータを一つ選び、データ要求における全てのデータをチェックした場合にはＳ２２０に進む。
【００５１】
データ要求における全てのデータをチェックした場合、データ要求に対する応答部１６は、データ要求に対応する辞書テーブル５０における要求カウンタのうち、データ要求に対応するものを１インクリメントし、本フローチャートの１ルーチンを終了する。
【００５２】
サーバ８０は、データ要求に含まれるデータを全て受信すると、該当するデータ要求についての処理終了依頼を情報管理装置１に対して出力する。図１１は、データ要求に対する応答部１６による処理の流れを示すフローチャートの一例である。図１１に示すフローチャートは、例えば、（１）サーバ８０から処理終了依頼を受け付けたとき、又は（２）データ要求に対して全てのデータを送信し且つデータ要求を受け付けたときから所定時間が経過したときの遅い方のタイミングで開始される。なお、図１１に示すフローチャートは、サーバ８０からの処理終了依頼の有無に拘わらず、データ要求に対して全てのデータを送信し且つデータ要求を受け付けたときから所定時間が経過したときに開始されてもよい。
【００５３】
まず、データ要求に対する応答部１６は、要求カウンタにおける処理終了依頼がなされた（或いは全てのデータを送信し且つデータ要求を受け付けたときから所定時間が経過した；以下同じ*）データ要求に対応する部分を１デクリメントする（Ｓ３００）。
【００５４】
次に、データ要求に対する応答部１６は、中間領域４６における、要求カウンタの値が０となったデータを消去する（Ｓ３０２）。
【００５５】
次に、データ要求に対する応答部１６は、処理中の要求テーブル５２から、処理終了依頼がなされたデータ要求*に対応するものを消去する（Ｓ３０４）。
【００５６】
そして、データ要求に対する応答部１６は、中間領域４６におけるポインタを全て切り（Ｓ３０６）、本フローチャートの１ルーチンを終了する。
【００５７】
図９及び図１１に示す処理によって、中間領域４６には、データ要求から処理終了依頼までの間に循環書込領域４４に書き込まれたデータ、或いは前回以前のデータ要求により循環書込領域４４に書き込まれたデータのうち引き継がれるべきデータが格納される。
【００５８】
図１２は、データ要求１（データＡ、Ｂ、Ｃ）がなされ、次いでデータ要求２（データＣ、Ｄ、Ｋ）がなされた場合における、各データの変化を例示した図である。
【００５９】
図１２における時刻ｔ１において、データ要求１が受け付けられると、データ要求１について図９のフローチャートの処理が開始される。この結果、循環書込領域４４から中間領域４６にデータＡ、Ｂ、Ｃがコピーされる（図９のＳ２１２が３データ分の回数実行される）。また、データ要求に対応する辞書テーブル５０には、データＡ、Ｂ、Ｃが登録され（図９のＳ２００）、要求カウンタにそれぞれ１が格納される（図９のＳ２２０）。また、処理中の要求テーブル５２には、データ要求１に対応するものとして、ビット列「1110  0000  0000  0000」が格納される（図９のＳ２００及びＳ２０６）。そして、時刻ｔ１からｔ３の間の任意のタイミングで、データ要求受付部１２にデータＡ、Ｂ、Ｃが渡される。
【００６０】
図１２における時刻ｔ２において、データ要求２が受け付けられると、データ要求２について図９のフローチャートの処理が開始される。この結果、循環書込領域４４から中間領域４６にデータＤがコピーされる（図９のＳ２１２）。また、データ要求に対応する辞書テーブル５０には、データＤ、Ｅが追加登録され（図９のＳ２００）、要求カウンタのデータＣに対応する部分に２が格納され、データＤ、Ｅに対応する部分にそれぞれ１が格納される（図９のＳ２２０）。また、処理中の要求テーブル５２には、データ要求２に対応するものとして、ビット列「0011  1000  0000  0000」が格納される（図９のＳ２００及びＳ２０６）。そして、時刻ｔ２から図示しないデータ要求２についての処理終了依頼を受信するまでの間の任意のタイミングで、データ要求受付部１２にデータＣ、Ｄが渡される。
【００６１】
図１２における時刻３において、データ要求１についての処理終了依頼を受け付けると、データ要求１について図１１のフローチャートが開始される。この結果、データ要求に対応する辞書テーブル５０におけるデータＡ、Ｂ、Ｃについての要求カウンタが１デクリメントされ（図１１のＳ３００）、中間領域４６における要求カウンタの値が０となったデータＡ、Ｂが消去される（図１１のＳ３０２）。また、処理中の要求テーブル５２から、処理終了依頼がなされたデータ要求１に対応するビット列「1110  0000  0000  0000」が消去される。
【００６２】
係る処理によって、所定時間内に連続して要求がなされたデータＣに関しては、少なくとも後のデータ要求２についての処理が終了するまでの間、中間領域４６に残されることになる。この結果、短時間のうちに同じデータが連続して要求された状況において、当該データが循環書込領域に再度格納されるまで待機する必要が無くなり、データ要求に対する応答速度を更に向上させることができる。
【００６３】
［参考例との比較］
なお、本実施例の情報管理装置１は、「記憶装置へのアクセスをランダムに行い、所定時間以内に連続して同じデータが要求された場合に、アクセスを一回で済ませる」という態様の装置と比較しても、上記のような効果を奏することができる。図１３は、参考例の装置において行われる処理の流れを模式的に示す図である。参考例の装置では、図１３の時刻ｔ１１においてデータ要求１（Ａ、Ｂ、Ｃ）がなされ、その後待ち時間Ｔが経過するまでの間にデータ要求２（Ｃ、Ｄ、Ｅ）がなされたとすると、待ち時間Ｔ経過後の時刻ｔ１３に記憶装置へのアクセスが行われる。時刻ｔ１３において記憶装置から読み出されるデータはＡ、Ｂ、Ｃである。その後、データ要求２を受け付けてから待ち時間Ｔ経過した時刻ｔ１４において、記憶装置へのアクセスが行われ、データＥ、Ｆが読み出される。参考例の装置は、データＣについての記憶装置へのアクセスを１回分省略できるものの、ランダムアクセスが発生し、更に、待ち時間Ｔ経過するまでの間、応答を待たなければならない。
【００６４】
これに対し、本実施例の情報管理装置１は、記憶装置３０へのアクセスをシーケンシャルに行うことができる。また、データ要求を受け付けると、処理終了依頼を受け付けるまでの任意のタイミングでデータを渡すことができる。この結果、本実施例の情報管理装置１は、図１３で説明した参考例の装置と比較しても、データ要求に対する応答速度を向上させることができる。
【００６５】
［まとめ］
以上説明した本発明の実施例によれば、データ要求に対する応答部１６の処理が循環書込制御部１４の処理と非同期で行われ、循環書込制御部１４による記憶装置３０からの読み出しがシーケンシャルに行われる。この結果、記憶装置３０におけるヘッドの移動時間の影響で応答速度が遅くなることを回避することができる。
【００６６】
そして、データ要求に含まれるデータが循環書込領域４４に格納されるまで待つ時間は、データ要求が多く集中している状態では、応答に使用されずに消去されるデータが少なくなることにより希薄化される（隠蔽される）ため、全体の平均としては短くなる。
【００６７】
従って、本実施例の情報管理装置１は、データ要求が集中した特定の状況下で、データ要求に対する応答速度を向上させることができる。
【００６８】
また、中間領域４６には、前回以前のデータ要求により循環書込領域４４に書き込まれたデータのうち引き継がれるべきデータが格納される。この結果、短時間のうちに同じデータが連続して要求された状況において、当該データが循環書込領域に再度格納されるまで待機する必要が無くなり、データ要求に対する応答速度を更に向上させることができる。
【００６９】
なお、本実施例における「循環書込制御部１４」は、特許請求の範囲における「制御部」の一例である。
【００７０】
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００７１】
以上の実施形態に関し、さらに以下の項を開示する。
（付記１）
第１の記憶部と、
前記第１の記憶部に比して高速にアクセス可能な第２の記憶部と、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御する制御部と、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答する応答部と、
を備える情報管理装置。
（付記２）
付記１記載の情報管理装置であって、
前記応答部は、
前記データ要求が要求するデータを前記第２の記憶部から第３の記憶部にコピーすると共に、該第３の記憶部に格納されたデータを用いて前記データ要求に応答し、
前記データ要求を受け付けてから一定期間の間に他のデータ要求を受け付けた場合において、先のデータ要求と後のデータ要求が共通するデータを要求するとき、前記後のデータ要求に対する応答が終了するまでの間、該共通するデータを前記第３の記憶部に存続させる、
情報管理装置。
（付記３）
付記１又は２記載の情報管理装置であって、
前記第２の記憶部は、前記データ要求の記憶領域として用いられるメモリ装置における前記データ要求の記憶領域とは異なる記憶領域によって実現され、
前記制御部は、前記データ要求の集中程度に基づいて、前記第２の記憶部として用いられる記憶領域のサイズを変更する、
情報管理装置。
（付記４）
第１の記憶部と、前記第１の記憶部に比して記憶容量が小さく且つ高速アクセス可能な第２の記憶部とを備える情報管理装置に、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御させ、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答させる、
情報管理プログラム。
（付記５）
付記４記載の情報管理プログラムであって、
前記データ要求に応答させる処理において、
前記データ要求が要求するデータを前記第２の記憶部から第３の記憶部にコピーすると共に、該第３の記憶部に格納されたデータを用いて前記データ要求に応答させ、
前記データ要求を受け付けてから一定期間の間に他のデータ要求を受け付けた場合において、先のデータ要求と後のデータ要求が共通するデータを要求するとき、前記後のデータ要求に対する応答が終了するまでの間、該共通するデータを前記第３の記憶部に存続させる、
情報管理プログラム。
（付記６）
付記４又は５記載の情報管理プログラムであって、
前記第２の記憶部は、前記データ要求の記憶領域として用いられるメモリ装置における前記データ要求の記憶領域とは異なる記憶領域によって実現され、
前記制御させる処理において、前記データ要求の集中程度に基づいて、前記第２の記憶部として用いられる記憶領域のサイズを変更させる、
情報管理プログラム。
（付記７）
第１の記憶部と、前記第１の記憶部に比して記憶容量が小さく且つ高速アクセス可能な第２の記憶部とを備える情報管理装置が、
前記第１の記憶部に格納されたデータを順次読み出し、順次読み出した該データを前記第２の記憶部に書き込むことによって、前記第１の記憶部に格納されたデータの一部が循環的に前記第２の記憶部に格納されるように前記第２の記憶部を制御し、
前記第２の記憶部に格納されたデータを用いてデータ要求に応答する、
情報管理方法。
（付記８）
付記７記載の情報管理方法であって、
前記データ要求に応答する処理において、
前記データ要求が要求するデータを前記第２の記憶部から第３の記憶部にコピーすると共に、該第３の記憶部に格納されたデータを用いて前記データ要求に応答し、
前記データ要求を受け付けてから一定期間の間に他のデータ要求を受け付けた場合において、先のデータ要求と後のデータ要求が共通するデータを要求するとき、前記後のデータ要求に対する応答が終了するまでの間、該共通するデータを前記第３の記憶部に存続させる、
情報管理方法。
（付記９）
付記７又は８記載の情報管理方法であって、
前記第２の記憶部は、前記データ要求の記憶領域として用いられるメモリ装置における前記データ要求の記憶領域とは異なる記憶領域によって実現され、
前記制御する処理において、前記データ要求の集中程度に基づいて、前記第２の記憶部として用いられる記憶領域のサイズを変更する、
情報管理方法。
【符号の説明】
【００７２】
１    情報管理装置
１０  ＣＰＵ
１２  データ要求受付部
１４  循環書込制御部
１６  データ要求に対する応答部
２０  ドライブ装置
２２  入力装置
２４  表示装置
２６  ＮＩＣ
３０  記憶装置
３２  参照対象データ
４０  メモリ装置
４２  データ要求格納領域
４４  循環書込領域
４６  中間領域
４８  循環書込領域に存在するファイル一覧テーブル
５０  データ要求に対応する辞書テーブル
５２  処理中の要求テーブル
６０  ネットワーク
７０  ユーザ端末
８０  サーバ
９０  情報収集装置
９２  ＲＤＢ
【図１】
2014006666.tif 000003
【図２】
2014006666.tif 000004
【図３】
2014006666.tif 000005
【図４】
2014006666.tif 000006
【図５】
2014006666.tif 000007
【図６】
2014006666.tif 000008
【図７】
2014006666.tif 000009
【図８】
2014006666.tif 000010
【図９】
2014006666.tif 000011
【図１０】
2014006666.tif 000012
【図１１】
2014006666.tif 000013
【図１２】
2014006666.tif 000014
【図１３】
2014006666.tif 000015