(57)【要約】【課題】効率よく検索することのできるキャッシュ制御装置およびデータベース検索システムを提供するようにする。【解決手段】データを検索する際に使用するデータファイルの使用履歴を記録する履歴情報記録手段と、前記履歴情報記録手段により記録された履歴情報に基づいて使用するデータファイルを推測する推測手段と、前記推測手段により推測されたデータファイルを予めキャッシュするキャッシュ先読み制御手段とを備える構成にする。【選択図】        図１
2004310630.tif 000002
【特許請求の範囲】
【請求項１】
データを検索する際に使用するデータファイルの使用履歴を記録する履歴情報記録手段と、
前記履歴情報記録手段により記録された履歴情報に基づいて使用するデータファイルを推測する推測手段と、
前記推測手段により推測されたデータファイルを予めキャッシュするキャッシュ先読み制御手段と
を備えることを特徴とするキャッシュ制御装置。
【請求項２】
前記推測手段は、データファイルの使用される順序に関連する履歴情報に基づいて使用するデータファイルを推測することを特徴とする請求項１記載のキャッシュ制御装置。
【請求項３】
前記推測手段は、データファイルの使用される時間に関連する履歴情報に基づいて使用するデータファイルを推測することを特徴とする請求項１記載のキャッシュ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データの検索を行うデータベース検索システムにおけるデータをキャッシュするための技術に関するものである。
【０００２】
【従来の技術】
従来のデータベース検索システムのキャッシュ方式では、特開平７−１８２２２０号公報に示されるように、実際にデータの検索が発生した段階でデータがキャッシュされる。したがって、初めて使うデータや最近使っていないデータの場合は、キャッシュ内にデータが存在しないため、そのときにサーバへのアクセスが発生する。
【０００３】
【特許文献１】
特開平７−１８２２２０号公報
【０００４】
【発明が解決しようとする課題】
従来の技術では、初めて使うデータや最近使っていないデータの場合はキャッシュされていないため、キャッシュミスとなり、必ずサーバへのアクセスが発生する。サーバへのアクセスが発生すると検索性能が悪くなってしまうという問題があった。
【０００５】
この発明は上記のような問題点を解決するためになされたもので、効率よく検索することのできるキャッシュ制御装置およびデータベース検索システムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係るキャッシュ制御装置は、データを検索する際に使用するデータファイルの使用履歴を記録する履歴情報記録手段と、前記履歴情報記録手段により記録された履歴情報に基づいて使用するデータファイルを推測する推測手段と、前記推測手段により推測されたデータファイルを予めキャッシュするキャッシュ先読み制御手段とを備えるものである。
【発明の実施の形態】
実施の形態１．
図１は、本実施の形態１における構成図である。
図１において、データベース１を管理するデータベースファイル管理サーバ２と検索サーバ３ａ、３ｂとがネットワーク７ａで接続され、検索サーバ３ａ、３ｂはデータベースファイル管理サーバ２からデータを受け取り、検索を実行する。また、検索サーバ３ａとクライアント６ａ、６ｂとがネットワーク７ｂで接続され、検索サーバ３ｂとクライアント６ｃ、６ｄとがネットワーク７ｃで接続されている。また、検索サーバ３ａはデータをキャッシュするためのキャッシュ４とこのキャッシュ４を制御するキャッシュ制御手段５とを備え、さらにキャッシュ制御手段５は使用データファイル読み込み手段５１と履歴情報記録手段５２と推測手段５３とデータファイル関係情報記録手段５４とキャッシュ先読み制御手段５５とを備える。検索サーバ３ｂも同様の構成を備えるが図示は省略する。
【０００７】
次に動作について説明する。
まず、クライアント６ａが検索サーバ３ａに対して検索要求を行うと、検索サーバ３ａは、このクライアント６ａからの検索要求に必要なデータファイルがキャッシュ４内に存在するか否かを調べ、キャッシュ４内に無ければ、データベースファイル管理サーバ２に必要なデータファイルを要求する。データベースファイル管理サーバ２は、必要に応じてデータベース１にアクセスして、検索サーバ３ａから要求されたデータファイルを検索サーバ３ａに送付する。検索サーバ３ａは、データベースファイル管理サーバ２からデータファイルを受け取ると、このデータファイルを用いてデータを検索し、この検索結果をクライアント６ａに送付する。このとき、同時にデータベースファイル管理サーバから得たデータファイルをキャッシュ４にキャッシュする。
【０００８】
クライアント６ａ（６ｂ）から新たな検索要求があり、キャッシュ４に無いデータファイルが必要な場合、上記と同様に動作し、また、クライアント６ａ（６ｂ）からの検索要求に必要なデータファイルがキャッシュ４に存在する場合、検索サーバ３ａはデータベースファイル管理サーバ２にアクセスすることなく、キャッシュ４から必要なデータファイルを取り出してクライアント６ａ（６ｂ）に送付する。
【０００９】
上記のように動作している間のキャッシュ制御手段５の動作について以下に説明する。キャッシュ制御手段５内の使用データファイル読み込み手段５１は、検索でデータベース上のどのデータファイルが使用されたかをチェックして、その使用履歴情報を履歴情報記録手段５２に書き込む。例えば、クライアント６ａ（６ｂ）からの検索要求に必要なデータファイルがキャッシュ４に存在しない場合、検索サーバ３ａがデータベースファイル管理サーバ２から得たデータファイルをキャッシュ４に書き込む際に、使用したデータファイルをチェックして履歴情報記録手段５２に書き込む。あるいは、クライアント６ａ（６ｂ）からの検索要求に必要なデータファイルがキャッシュ４に存在する場合、キャッシュ４から必要なデータファイルを取り出す際に、使用したデータファイルをチェックして履歴情報記録手段５２に書き込む。
【００１０】
次に、キャッシュ制御手段５内の推測手段５３は、履歴情報記録手段５２から履歴情報を読み込み、その履歴情報に基づいてデータファイルが使用される関係について推測する。推測手段５３は、この推測結果をデータファイル関係情報記録手段５４に書き込む。
図２は、推測手段５３の動作を示すフローチャートである。推測手段５３は、例えば検索終了時、あるいは所定の間隔で起動される。起動されると、推測手段５３は、履歴情報記録装置２２から履歴情報を読み込む（ステップＳ５３１）。推測手段５３は、この履歴情報から使用されたデータファイル間の関係を調べ（ステップＳ５３２）、関係を推測する（ステップＳ５３３）。推測手段５３は、データファイル間の関係が推測可能な場合（ステップＳ５３４でＹＥＳ）、推測した関係を関係情報としてデータファイル関係情報記録手段５４に書き込み（ステップＳ５３５）、処理を終了する。データファイル間の関係が推測できない場合は（ステップＳ５３４でＮＯ）、処理を終了する。
【００１１】
次に、キャッシュ先読み制御手段５５は、データファイル関係情報記録手段５４から関係情報を読み込み、この関係情報に基づいて必要であればデータベースファイル管理サーバ２からデータファイルを読み込んでキャッシュ４にキャッシュする。
図３は、キャッシュ先読み制御手段５５の動作を示すフローチャートである。キャッシュ先読み制御手段５５は、例えば検索発生時、あるいは所定の間隔で起動される。起動されると、キャッシュ先読み制御手段５５は、起動されたときに検索処理が実行中の場合は、そのとき使用しているデータファイルを確認し、起動されたときに検索処理が実行されていない場合は、最近使用されたデータファイルを確認する（ステップＳ５５１）。キャッシュ先読み制御手段５５は、この確認したデータファイルとデータファイル関係情報記録手段５４に記録された関係情報とから、次に使用されるデータファイルを予測（先読み）する（ステップＳ５５２）。キャッシュ先読み制御手段５５は、予測したデータファイルがキャッシュ４内に存在するか否かを調べ、もしキャッシュ４内に存在しなければ（ステップＳ５５３でＹＥＳ）、データベースファイル管理サーバ２からそのデータファイルを得て、キャッシュ４にキャッシュし（ステップＳ５５４）、処理を終了する。
【００１２】
例えば、図４に示すような順番でデータファイルをアクセスする検索が実行される場合について説明する。図４において、左側はデータファイルアクセスの順番を示し、右側はそのときのキャッシュ４の内容を示している。ここでは、キャッシュ４に２つのデータファイルをキャッシュすることができ、キャッシュ４のリプレースはＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）法を使用する場合について説明する。
【００１３】
まず、時刻Ｔ１で、データファイルＡに対する検索が発生する。キャッシュ４内にはデータファイルが無いため、検索サーバ３ａはデータベースファイル管理サーバ２からデータファイルを読み込み、キャッシュ４内にもデータファイルＡをキャッシュする（Ｊ５０１）。時刻Ｔ２で、データファイルＢに対する検索が発生する。キャッシュ４内にデータファイルＢは無いため、検索サーバ３ａはデータベースファイル管理サーバ２からデータファイルＢを読み込み、キャッシュ４内にデータファイルＢをキャッシュする（Ｊ５０２）。時刻Ｔ３で、再びデータファイルＡに対する検索が発生するが、キャッシュ４内にデータファイルＡがあるため、データベースファイル管理サーバ２へのアクセスは発生せず、キャッシュ４内の内容も変更しない（Ｊ５０３）。時刻Ｔ４で、データファイルＢに対する検索が発生するが、この場合もキャッシュ４内にデータファイルＢがあるため、キャッシュ４内の内容も変更しない（Ｊ５０４）。
【００１４】
この時点で、推測手段５３は、ここまでの履歴情報に基づいて、データファイルＡに対する検索が発生した後は、データファイルＢに対する検索が発生すると推測し、このデータファイル関係情報をデータファイル関係情報記録手段５４に書き込む。
【００１５】
時刻Ｔ５で、データファイルＣに対する検索が発生し、検索サーバ３ａはＬＲＵ法に基づいてキャッシュ４内のデータファイルＡをデータファイルＣに置き換える（Ｊ５０５）。時刻Ｔ６で、データファイルＤに対する検索が発生し、キャッシュ４内のデータファイルＢをデータファイルＤに置き換える（Ｊ５０６）。時刻Ｔ７で、再々度データファイルＡに対する検索が発生し、キャッシュ４内のデータファイルＣをデータファイルＡに置き換える（Ｊ５０７）。
【００１６】
このとき、キャッシュ先読み制御手段５５は、データファイル関係情報記録手段５４を参照し、データファイルＡに対する検索が発生した後はデータファイルＢに対する検索があることを予測（先読み）し、実際のデータファイルＢに対する検索が発生する前に、予めデータベースファイル管理サーバ２からデータファイルＢを読み込み、キャッシュ４内にデータファイルＢをキャッシュする（Ｊ５０８）。この後、キャッシュ先読み制御手段５５によるデータファイル関係情報の通り、データファイルＢに対する検索が発生した場合、キャッシュ４内にデータファイルＢをキャッシュ済みのため、データベースファイル管理サーバ２へのアクセスは発生せず、データ検索を効率よく実行できる。
【００１７】
以上説明したように、履歴情報からキャッシュの先読みをして予めキャッシュしておくことにより、データベースファイル管理サーバへのアクセス頻度が減少するため、検索の性能を上げることができ、効率よく検索することができる。
【００１８】
なお、本実施の形態１では、あるデータファイルに対する検索が発生した場合、次にどのデータファイルに対する検索が発生するかを先読みする場合について説明したが、次だけに限られず、いくつか先まで予測して予めキャッシュするようにしてもよい。
【００１９】
実施の形態２．
上記実施の形態１では、検索が発生するデータファイルの順序に基づいてキャッシュする場合について説明したが、本実施の形態２では、検索が発生するデータファイルの検索発生時間に基づいてキャッシュする場合について説明する。
【００２０】
図５は、本実施の形態２における推測手段５３の動作を示すフローチャートである。推測手段５３は、例えば検索終了時、あるいは所定の間隔で起動される。起動されると、推測手段５３は、履歴情報記録手段５２から時間（日付、曜日等を含むデータファイルの検索発生時間）を含む履歴情報を読み込む（ステップＳ５３０１）。推測手段５３は、この履歴情報から使用されたデータファイルと時間との関係を調べ（ステップＳ５３０２）、関係を推測する（ステップＳ５３０３）。推測手段５３は、データファイルと時間との関係が推測可能な場合（ステップＳ５３０４でＹＥＳ）、推測した関係をデータファイル関係情報としてデータファイル関係情報記録手段５４に書き込み（ステップＳ５３０５）、処理を終了する。データファイルと時間との関係が推測できない場合は（ステップＳ５３０４でＮＯ）、処理を終了する。なお、例えば、ここでのデータファイル関係情報としては、対象データファイルと、対象データファイルをキャッシュすべき時間との関係でもよいし、対象データファイルと、対象データファイルが使用される時間との関係でもよい。
【００２１】
図６は、本実施の形態２におけるキャッシュ先読み制御手段５５の動作を示すフローチャートである。キャッシュ先読み制御手段５５は、例えば検索発生時、あるいは所定の間隔で起動される。起動されると、キャッシュ先読み制御手段５５は、データファイル関係情報記録手段５４に記録されたデータファイル関係情報を参照して（ステップＳ５５０１）、現在時が対象時間であるか否かを確認する（ステップＳ５５０２）。現在時が対象時間でなければ（ステップＳ５５０２でＮＯ）、対象時間となるまでこの確認処理を繰り返す。対象時間となった場合（ステップＳ５５０２でＹＥＳ）、次に使用されるデータファイルを予測（先読み）する（ステップＳ５５０３）。キャッシュ先読み制御手段５５は、予測したデータファイルがキャッシュ４内に存在するか否かを調べ、もしキャッシュ４内に存在しなければ（ステップＳ５５０４でＹＥＳ）、データベースファイル管理サーバ２からそのデータファイルを得て、キャッシュ４にキャッシュして（ステップＳ５５０５）、ステップＳ５５０１の処理に戻る。予測したデータファイルがキャッシュ４内に存在するなら（ステップＳ５５０４でＮＯ）、そのままステップＳ５５０１の処理に戻る。これらの処理を繰り返す。なお、例えば、対象データファイルと対象データファイルをキャッシュすべき時間（対象時間）との関係を関係情報としている場合は、上記そのままの処理でよいが、対象データファイルと対象データファイルが使用される時間との関係を関係情報としている場合は、対象データファイルを所望の時間にキャッシュできるよう対象時間等を調整する必要がある。
【００２２】
以上説明したように、検索が発生するデータファイルの検索発生時間に基づいてキャッシュすることにより、毎日ある決まった時間帯に頻繁に使用されるデータファイルがある場合などに、検索の性能を上げることができ、効率よく検索することができる。
【００２３】
なお、本実施の形態２では、次にどのデータファイルに対する検索が発生するかを先読みする場合について説明したが、次だけに限られず、いくつか先まで予測して予めキャッシュするようにしてもよい。
【００２４】
また、本実施の形態２では、現在時が対象時間となるまで確認を繰り返す場合について説明したが、データファイル関係情報記録手段５４に記録された対象時間にキャッシュ先読み制御手段５５を起動してキャッシュするようにしても、同様の効果を得ることができる。
【００２５】
また、実施の形態１の検索が発生するデータファイルの順序に基づいてキャッシュする場合と、本実施の形態２の検索が発生するデータファイルの検索発生時間に基づいてキャッシュする場合とを組み合わせてもよい。
【００２６】
実施の形態３．
上記実施の形態１では、データベースファイル管理サーバ２と検索サーバ３ａとを別々の装置とし、ネットワーク７ａを介して接続する場合について説明したが、図７に示すように、データベースファイル管理サーバの機能と検索サーバの機能とを同一装置データベースファイル管理・検索サーバ８内に備えるようにしてもよい。この場合、データベースファイル管理サーバ２と検索サーバ３ａとの間のデータのやり取りが、データベースファイル管理・検索サーバ８内で直接行われる以外の動作は、実施の形態１と同様である。
【００２７】
実施の形態４．
上記実施の形態１では、検索サーバ３ａ、３ｂとクライアント６ａ〜６ｄとを別々の装置とし、ネットワーク７ｂ、７ｃを介して接続する場合について説明したが、図８に示すように、検索サーバの機能とクライアントの機能とを同一装置検索機能付クライアント９ａ〜９ｄ内に備えるようにしてもよい。この場合、検索機能付クライアント９ａ〜９ｄ内で検索を実行する以外の動作は、実施の形態１と同様である。
【００２８】
【発明の効果】
以上説明したように、データを検索する際に使用するデータファイルの使用履歴を記録する履歴情報記録手段と、前記履歴情報記録手段により記録された履歴情報に基づいて使用するデータファイルを推測する推測手段と、前記推測手段により推測されたデータファイルを予めキャッシュするキャッシュ先読み制御手段とを備えることにより、検索の性能を上げることができる。
【図面の簡単な説明】
【図１】実施の形態１における構成図
【図２】推測手段５３の動作を示すフローチャート
【図３】キャッシュ先読み制御手段５５の動作を示すフローチャート
【図４】データファイルアクセス実行時のキャッシュ内容を示す説明図
【図５】実施の形態２における推測手段５３の動作を示すフローチャート
【図６】実施の形態２におけるキャッシュ先読み制御手段５５の動作を示すフローチャート
【図７】実施の形態３における構成図
【図８】実施の形態４における構成図
【符号の説明】
１  データベース
２  データベースファイル管理サーバ
３ａ、３ｂ  検索サーバ
４  キャッシュ
５  キャッシュ制御手段
６ａ〜６ｄ  クライアント
７ａ〜７ｃ  ネットワーク
８  データベースファイル管理・検索サーバ
９ａ〜９ｄ  検索機能付クライアント
【図１】
2004310630.tif 000003
【図２】
2004310630.tif 000004
【図３】
2004310630.tif 000005
【図４】
2004310630.tif 000006
【図５】
2004310630.tif 000007
【図６】
2004310630.tif 000008
【図７】
2004310630.tif 000009
【図８】
2004310630.tif 000010