(57)【要約】【課題】キャッシュヒット率を向上させる。【解決手段】複数の情報資源を記憶するストレージ装置と、検索条件を含む検索要求を受信し、前記検索条件に該当する情報資源に関する情報を一つ以上含む情報資源一覧情報を検索結果として送信する検索計算機と、に接続される制御計算機であって、前記複数の情報資源の少なくとも一つが格納されるキャッシュメモリを備え、前記検索計算機から前記情報資源一覧情報を受信し、前記受信した情報資源一覧情報に基づいて、前記情報資源ごとにキャッシュ優先度を算出し、前記算出されたキャッシュ優先度に基づいて、前記キャッシュメモリに格納される一つ以上の情報資源を決定し、前記決定された一つ以上の情報資源を前記キャッシュメモリに格納することを特徴とする。【選択図】図２
2008305225.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報資源を記憶するストレージ装置と、検索条件を含む検索要求を受信し、前記検索条件に該当する情報資源に関する情報を一つ以上含む情報資源一覧情報を検索結果として送信する検索計算機と、に接続される制御計算機であって、
前記複数の情報資源の少なくとも一つが格納されるキャッシュメモリを備え、
前記検索計算機から前記情報資源一覧情報を受信し、
前記受信した情報資源一覧情報に基づいて、前記情報資源ごとにキャッシュ優先度を算出し、
前記算出されたキャッシュ優先度に基づいて、前記キャッシュメモリに格納される一つ以上の情報資源を決定し、
前記決定された一つ以上の情報資源を前記キャッシュメモリに格納することを特徴とする制御計算機。
【請求項２】
更に、前記情報資源へアクセスする一つ以上のクライアント計算機に接続され、
前記検索要求を前記クライアント計算機から受信し、
前記受信した検索要求を、前記検索計算機に転送し、
前記受信した前記情報資源一覧情報を、前記受信した検索要求の送信元のクライアント計算機に転送することを特徴とする請求項１に記載の制御計算機。
【請求項３】
更に、前記情報資源へアクセスし、前記検索計算機に前記検索要求を送信する一つ以上のクライアント計算機に接続され、
前記検索計算機から前記クライアント計算機に検索結果として送信される前記情報資源一覧情報を、前記検索計算機から受信することを特徴とする請求項１に記載の制御計算機。
【請求項４】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に含まれる回数を、前記情報資源ごとに算出し、
前記算出された回数に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項１に記載の制御計算機。
【請求項５】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に最後に含まれてからの経過時間を、前記情報資源ごとに算出し、
前記算出された経過時間に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項１に記載の制御計算機。
【請求項６】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に含まれる回数を、前記情報資源ごとに算出し、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に最後に含まれてからの経過時間を、前記情報資源ごとに算出し、
前記算出された回数及び経過時間に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項１に記載の制御計算機。
【請求項７】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、前記検索条件との関連性が高い順で含むことを特徴とする請求項１に記載の制御計算機。
【請求項８】
更に、ストレージ装置に記憶されるデータをファイルとして提供するファイルシステムを備え、
前記情報資源は、前記ファイルシステムによって提供されるファイル又は前記ファイルを一つ以上含むディレクトリであることを特徴とする請求項１に記載の制御装置。
【請求項９】
複数の情報資源を記憶するストレージ装置に接続される制御計算機と、前記制御計算機に接続される検索計算機と、を備える計算機システムであって、
前記検索計算機は、
検索条件を含む検索要求を受信し、
前記検索条件に該当する情報資源を検索し、
前記検索された情報資源に関する情報を一つ以上含む情報資源一覧情報を検索結果として送信し、
前記制御計算機は、
前記複数の情報資源の少なくとも一つが格納されるキャッシュメモリを備え、
前記検索計算機から前記情報資源一覧情報を受信し、
前記受信した情報資源一覧情報に基づいて、前記情報資源ごとにキャッシュ優先度を算出し、
前記算出されたキャッシュ優先度に基づいて、前記キャッシュメモリに格納される一つ以上の情報資源を決定し、
前記決定された一つ以上の情報資源を前記キャッシュメモリに格納することを特徴とする計算機システム。
【請求項１０】
前記制御計算機は、
前記情報資源へアクセスする一つ以上のクライアント計算機に接続され、
前記検索要求を前記クライアント計算機から受信し、
前記受信した検索要求を、前記検索計算機に転送し、
前記受信した前記情報資源一覧情報を、前記受信した検索要求の送信元のクライアント計算機に転送することを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記制御計算機及び前記検索計算機は、前記情報資源へアクセスする一つ以上のクライアント計算機に接続され、
前記検索計算機は、
前記検索要求を前記クライアント計算機から受信し、
前記検索された情報資源に関する情報を一つ以上含む情報資源一覧情報を、前記クライアント計算機及び前記制御計算機に送信することを特徴とする請求項９に記載の計算機システム。
【請求項１２】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記制御計算機は、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に含まれる回数を、前記情報資源ごとに算出し、
前記算出された回数に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項９に記載の計算機システム。
【請求項１３】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記制御計算機は、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に最後に含まれてからの経過時間を、前記情報資源ごとに算出し、
前記算出された経過時間に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項９に記載の計算機システム。
【請求項１４】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、所定の規則によって決定された順で含み、
前記制御計算機は、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に含まれる回数を、前記情報資源ごとに算出し、
前記受信した情報資源一覧情報において前記情報資源に関する情報が所定の順位以内に最後に含まれてからの経過時間を、前記情報資源ごとに算出し、
前記算出された回数及び経過時間に基づいて、前記情報資源ごとにキャッシュ優先度を算出することを特徴とする請求項９に記載の計算機システム。
【請求項１５】
前記情報資源一覧情報は、前記検索条件に該当する情報資源に関する情報を、前記検索条件との関連性が高い順で含むことを特徴とする請求項９に記載の計算機システム。
【請求項１６】
前記制御計算機は、ストレージ装置に記憶されるデータをファイルとして提供するファイルシステムを備え、
前記情報資源は、前記ファイルシステムによって提供されるファイル又は前記ファイルを一つ以上含むディレクトリであることを特徴とする請求項９に記載の計算機システム。
【請求項１７】
複数の情報資源を記憶するストレージ装置と、検索条件を含む検索要求を受信し、前記検索条件に該当する情報資源に関する情報を一つ以上含む情報資源一覧情報を検索結果として送信する検索計算機と、に接続され、前記複数の情報資源の少なくとも一つが格納されるキャッシュメモリを備える制御計算機におけるアクセス制御方法であって、
前記検索計算機から前記情報資源一覧情報を受信する処理と、
前記受信した情報資源一覧情報に基づいて、前記情報資源ごとにキャッシュ優先度を算出する処理と、
前記算出されたキャッシュ優先度に基づいて、前記キャッシュメモリに格納される一つ以上の情報資源を決定する処理と、
前記決定された一つ以上の情報資源を前記キャッシュメモリに格納する処理と、を含むことを特徴とするアクセス制御方法。
【請求項１８】
前記制御計算機は、前記情報資源へアクセスする一つ以上のクライアント計算機に接続され、
前記アクセス制御方法は、更に、
前記検索要求を前記クライアント計算機から受信する処理と、
前記受信した検索要求を、前記検索計算機に転送する処理と、
前記受信した前記情報資源一覧情報を、前記受信した検索要求の送信元のクライアント計算機に転送する処理と、を含むことを特徴とする請求項１７に記載のアクセス制御方法。
【請求項１９】
前記制御計算機は、前記情報資源へアクセスし、前記検索計算機に前記検索要求を送信する一つ以上のクライアント計算機に接続され、
前記情報資源一覧情報を受信する処理は、前記検索計算機から前記クライアント計算機に検索結果として送信される前記情報資源一覧情報を、前記検索計算機から受信することを特徴とする請求項１７に記載のアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及び検索計算機に接続される制御計算機に関し、特に、情報資源へのアクセスを制御する技術に関する。
【背景技術】
【０００２】
近年、計算機システムの高性能化及び低価格化によって、様々な用途で計算機システムが利用されている。これに伴い、計算機システムに保存される情報資源の量が爆発的に増大している。計算機システムに格納される情報資源の可用性を高めるためには、情報資源に対するアクセス性能を高める技術が重要性を増している。
【０００３】
また、近年では、膨大な情報資源の中から、取得したい情報を抽出するための検索技術が広がっている。検索技術では、検索サーバが、計算機システムに格納されている情報資源のインデックス情報を管理している。ユーザは、取得したい情報資源に関する検索キーワードなどの検索条件を指定する。すると、クライアントマシンは、指定された検索条件を含む検索要求を検索サーバに送信する。検索サーバは、クライアントマシンから検索要求を受信すると、インデックス情報に基づいて、受信した検索要求に対する検索結果リストを作成する。そして、検索サーバは、作成した検索結果リストをクライアントマシンに応答する。なお、検索結果リストは、検索された情報資源の識別子及びアクセス先情報等を含む。クライアントマシンは、検索結果リストを受信する。その後、クライアントマシンは、受信した検索結果リストに含まれるアクセス先情報を利用して、情報資源にアクセスする。
【０００４】
また、情報資源に対するアクセスを高速化するキャッシュ制御技術が知られている。キャッシュ制御技術では、情報資源管理サーバは、検索結果リストに含まれる識別子によって識別される情報資源をキャッシュメモリに先読みをする。これによって、キャッシュヒット率を向上する。キャッシュヒット率は、アクセスを要求された情報資源が、キャッシュメモリに格納されている確率である。
【０００５】
例えば、キャッシュ制御技術については、特許文献１に開示されている。特許文献１に開示された技術では、情報資源管理サーバは、検索ログ及びダウンロードログに基づいて、予想ダウンロードリストを生成する。そして、情報資源管理サーバは、生成したダウンロードリストに基づいて、キャッシュメモリに格納される情報資源を更新する。
【特許文献１】特開２００６−８５５６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された技術では、検索でヒットしたすべての情報資源がキャッシュメモリへ先読みされる。そのため、検索条件との関連性が相対的に低い情報資源までもが、キャッシュメモリに先読みされてしまう。つまり、アクセスされる可能性が低い情報資源までもが、キャッシュメモリに先読みされてしまう。そのため、キャッシュヒット率が低くなり、平均レスポンスタイムが長大化するという問題が生じる。
【０００７】
本発明は、前述した問題点に鑑みてなされたものであって、キャッシュヒット率を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の代表的な形態は、複数の情報資源を記憶するストレージ装置と、検索条件を含む検索要求を受信し、前記検索条件に該当する情報資源に関する情報を一つ以上含む情報資源一覧情報を検索結果として送信する検索計算機と、に接続される制御計算機であって、前記複数の情報資源の少なくとも一つが格納されるキャッシュメモリを備え、前記検索計算機から前記情報資源一覧情報を受信し、前記受信した情報資源一覧情報に基づいて、前記情報資源ごとにキャッシュ優先度を算出し、前記算出されたキャッシュ優先度に基づいて、前記キャッシュメモリに格納される一つ以上の情報資源を決定し、前記決定された一つ以上の情報資源を前記キャッシュメモリに格納することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な形態によれば、キャッシュヒット率が向上する。
【発明を実施するための最良の形態】
【００１０】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の計算機システムの構成のブロック図である。
【００１１】
計算機システムは、ネットワーク１、ファイルサーバ１００、ファイル格納装置２００、検索サーバ３００、Ｉｎｄｅｘ情報格納装置４００及びクライアントマシン５００を備える。
【００１２】
なお、ファイルサーバ１００、ファイル格納装置２００、検索サーバ３００、Ｉｎｄｅｘ情報格納装置４００及びクライアントマシン５００は、それぞれ一台ずつが図示されているが、当該計算機システムに複数台備わっていてもよい。
【００１３】
ネットワーク１は、ファイルサーバ１００、検索サーバ３００及びクライアントマシン５００を相互に接続する。また、ファイルサーバ１００とファイル格納装置２００とが、接続されている。更に、検索サーバ３００とＩｎｄｅｘ情報格納装置４００とが、接続されている。
【００１４】
ファイルサーバ１００は、ファイル共有サービスをクライアントマシン５００に提供する計算機である。そのため、ファイルサーバ１００は、ファイル格納装置２００に格納されているデータを、情報資源であるファイル２０１としてクライアントマシン５００に提供する。なお、ファイルサーバ１００については、図２で詳細を説明する。
【００１５】
ファイル格納装置２００は、ファイル２０１が格納されるストレージ装置である。例えば、ファイル格納装置２００は、ディスクドライブ及びディスクディスクコントローラを備えるストレージ装置である。なお、ファイル格納装置２００は、ファイル２０１を記憶できれば、いかなるものであってもよい。
【００１６】
検索サーバ３００は、検索サービスをクライアントマシン５００に提供する計算機である。なお、検索サーバ３００については、図３で詳細を説明する。
【００１７】
Ｉｎｄｅｘ情報格納装置４００は、Ｉｎｄｅｘ情報４０１が格納されるストレージ装置である。例えば、Ｉｎｄｅｘ情報格納装置４００は、ディスクドライブ及びディスクディスクコントローラを備えるストレージ装置である。なお、Ｉｎｄｅｘ情報格納装置４００は、Ｉｎｄｅｘ情報４０１を記憶できれば、いかなるものであってもよい。
【００１８】
Ｉｎｄｅｘ情報４０１は、ファイルサーバ１００によって管理されるファイル２０１のメタデータに相当する。具体的には、Ｉｎｄｅｘ情報４０１は、ファイル２０１の識別子であるファイル名、ファイル２０１の格納場所を示すファイルパス名及びファイル２０１と関連性が高い検索キーワードに関する情報などを含む。
【００１９】
クライアントマシン５００は、ファイル共有サービス及び検索サービスの提供を受ける計算機である。なお、クライアントマシン５００については、図４で詳細を説明する。
【００２０】
図２は、本発明の第１の実施の形態の計算機システムに備わるファイルサーバ１００の構成のブロック図である。
【００２１】
ファイルサーバ１００は、プロセッサ１１０、メモリ１２０、外部記憶装置インタフェース（外部記憶装置Ｉ／Ｆ）１４０、ネットワークインタフェース（ネットワークＩ／Ｆ）１５０及びバス１６０を備える。
【００２２】
外部記憶装置Ｉ／Ｆ１４０は、ファイル格納装置２００に接続されるインタフェースである。ネットワークＩ／Ｆ１５０は、ネットワーク１を介して検索サーバ３００及びクライアントマシン５００に接続されるインタフェースである。バス１６０は、プロセッサ１１０、メモリ１２０、外部記憶装置Ｉ／Ｆ１４０及びネットワークＩ／Ｆ１５０を相互に接続する。
【００２３】
プロセッサ１１０は、メモリ１２０に記憶されるプログラムを実行することによって、各種処理を行う。
【００２４】
メモリ１２０は、プロセッサ１１０によって実行されるプログラム及びプロセッサ１１０によって必要とされる情報などを記憶する。具体的には、メモリ１２０は、外部記憶装置Ｉ／Ｆ制御プログラム１２１、ネットワークＩ／Ｆ制御プログラム１２２、ファイルシステム制御プログラム１２３、検索ＡＰ連携プログラム１２５、キャッシュ候補管理表１２６、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７及びキャッシュ利用可能総サイズ１２８を記憶する。また、メモリ１２０の一部は、キャッシュメモリ１３１として使用される。
【００２５】
キャッシュメモリ１３１は、ファイルシステム制御プログラム１２３によって管理されるすべてのファイル２０１のうちの一部又は全部を一時的に記憶する。つまり、キャッシュメモリ１３１には、ファイル２０１が先読みされる。これによって、ファイル２０１へのアクセスに対するレスポンスタイムが短縮される。
【００２６】
外部記憶装置Ｉ／Ｆ制御プログラム１２１は、外部記憶装置Ｉ／Ｆ１４０を制御する。ネットワークＩ／Ｆ制御プログラム１２２は、ネットワークＩ／Ｆ１５０を制御する。
【００２７】
ファイルシステム制御プログラム１２３は、ファイルシステムを制御する。つまり、ファイルシステム制御プログラム１２３は、ファイル格納装置２００に格納されているファイル２０１を管理する。なお、ファイルシステム制御プログラム１２３は、キャッシュメモリ制御サブプログラム１２４を含む。キャッシュメモリ制御サブプログラム１２４は、キャッシュメモリ１３１を管理する。
【００２８】
検索ＡＰ連携プログラム１２５は、検索サーバ３００に備わる検索ＡＰ３２４と連携する。なお、検索ＡＰ連携プログラム１２５は、検索ＡＰプロキシ制御サブプログラム１２９及び検索ＡＰ連携キャッシュ制御サブプログラム１３０を含む。
【００２９】
検索ＡＰプロキシ制御サブプログラム１２９は、検索要求をクライアントマシン５００から受信し、受信した検索要求を、検索サーバ３００に備わる検索ＡＰ３２４に転送する。すると、検索ＡＰプロキシ制御サブプログラム１２９は、転送した検索要求に対する検索結果リストを、検索サーバ３００に備わる検索ＡＰ３２４から受信する。そして、検索ＡＰプロキシ制御サブプログラム１２９は、受信した検索結果リストを、クライアントマシン５００に備わる検索要求サブプログラム５２６に転送する。
【００３０】
検索ＡＰプロキシ制御サブプログラム１２９が検索結果リストを受信した場合に、検索ＡＰ連携キャッシュ制御サブプログラム１３０は、検索ＡＰプロキシ制御サブプログラム１２９が受信した検索結果リストに基づいて、キャッシュ候補管理表１２６を更新する。また、検索ＡＰ連携キャッシュ制御サブプログラム１３０は、キャッシュ候補管理表１２６に基づいて、キャッシュ対象ファイルを決定する。
【００３１】
キャッシュ対象ファイルは、キャッシュメモリ１３１に先読みされるファイル２０１である。そのため、キャッシュメモリ制御サブプログラム１２４は、検索ＡＰ連携キャッシュ制御サブプログラム１３０によって決定されたキャッシュ対象ファイルを、キャッシュメモリ１３１に先読みする。一方、キャッシュメモリ制御サブプログラム１２４は、検索ＡＰ連携キャッシュ制御サブプログラム１３０によって決定されたキャッシュ対象ファイル以外のファイルを、キャッシュメモリ１３１から削除する。
【００３２】
キャッシュ候補管理表１２６は、キャッシュ候補ファイルを管理する。なお、キャッシュ候補ファイルは、キャッシュ対象ファイルの候補となるファイルである。なお、キャッシュ候補管理表１２６については、図５で詳細を説明する。
【００３３】
キャッシュ候補フィルタリング用検索ヒット順位下限値１２７は、検索結果リストにおいてファイル２０１を上位ヒットと判定する順位の下限値である。そのため、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７は、整数となる。なお、検索ＡＰ連携プログラム１２５は、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７の変更指示を受けると、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７を変更する。
【００３４】
キャッシュ利用可能総サイズ１２８は、メモリ１２０の容量のうち、キャッシュメモリ１３１として利用可能な容量を示す。そのため、キャッシュ利用可能総サイズ１２８は、キャッシュメモリ１３１に先読みされるファイルの数を決定するために使用される。なお、検索ＡＰ連携プログラム１２５は、キャッシュ利用可能総サイズ１２８の変更指示を受けると、キャッシュ利用可能総サイズ１２８を変更する。
【００３５】
図３は、本発明の第１の実施の形態の計算機システムに備わる検索サーバ３００の構成のブロック図である。
【００３６】
検索サーバ３００は、プロセッサ３１０、メモリ３２０、外部記憶装置インタフェース（外部記憶装置Ｉ／Ｆ）３４０、ネットワークインタフェース（ネットワークＩ／Ｆ）３５０及びバス３６０を備える。
【００３７】
外部記憶装置Ｉ／Ｆ３４０は、Ｉｎｄｅｘ情報格納装置４００に接続されるインタフェースである。ネットワークＩ／Ｆ３５０は、ネットワーク１を介してファイルサーバ１００及びクライアントマシン５００に接続されるインタフェースである。バス３６０は、プロセッサ３１０、メモリ３２０、外部記憶装置Ｉ／Ｆ３４０及びネットワークＩ／Ｆ３５０を相互に接続する。
【００３８】
プロセッサ３１０は、メモリ３２０に記憶されるプログラムを実行することによって、各種処理を行う。
【００３９】
メモリ３２０は、プロセッサ３１０によって実行されるプログラム及びプロセッサ３１０によって必要とされる情報などを記憶する。具体的には、メモリ３２０は、外部記憶装置Ｉ／Ｆ制御プログラム３２１、ネットワークＩ／Ｆ制御プログラム３２２、ＤＢＭＳ３２３及び検索アプリケーションプログラム（検索ＡＰ）３２４を記憶する。
【００４０】
外部記憶装置Ｉ／Ｆ制御プログラム３２１は、外部記憶装置Ｉ／Ｆ３４０を制御する。ネットワークＩ／Ｆ制御プログラム３２２は、ネットワークＩ／Ｆ３５０を制御する。
【００４１】
ＤＢＭＳ３２３は、Ｉｎｄｅｘ情報４０１を管理するためのプログラムである。なお、Ｉｎｄｅｘ情報４０１は、ＤＢＭＳ３２３以外で管理されてもよい。
【００４２】
検索ＡＰ３２４は、検索に関する各種処理を行う。なお、検索ＡＰ３２４は、Ｉｎｄｅｘ作成制御サブプログラム３２５及び検索要求応答制御サブプログラム３２６を含む。
【００４３】
Ｉｎｄｅｘ作成制御サブプログラム３２５は、ファイル２０１のＩｎｄｅｘ情報４０１を作成する。
【００４４】
検索要求応答制御サブプログラム３２６は、検索要求を受信する。すると、検索要求応答制御サブプログラム３２６は、Ｉｎｄｅｘ情報４０１に基づいて、受信した検索要求に応じた検索を行うことによって、検索結果リストを作成する。そして、検索要求応答制御サブプログラム３２６は、検索要求の送信元に、作成した検索結果リストを返信する。
【００４５】
ネットワークファイルサービスクライアント制御プログラム３２７は、検索対象となるファイル２０１の情報を、ファイルサーバ１００に備わるファイルシステム制御プログラム１２３から取得する。
【００４６】
図４は、本発明の第１の実施の形態の計算機システムに備わるクライアントマシン５００の構成のブロック図である。
【００４７】
クライアントマシン５００は、プロセッサ５１０、メモリ５２０、外部記憶装置インタフェース（外部記憶装置Ｉ／Ｆ）５４０、ネットワークインタフェース（ネットワークＩ／Ｆ）５５０及びバス５６０を備える。
【００４８】
外部記憶装置Ｉ／Ｆ５４０は、外部記憶装置（図示省略）に接続されるインタフェースである。なお、外部接続装置は、プログラムを含む各種情報を記憶する。ネットワークＩ／Ｆ５５０は、ネットワーク１を介してファイルサーバ１００及び検索サーバ３００に接続されるインタフェースである。バス５６０は、プロセッサ５１０、メモリ５２０、外部記憶装置Ｉ／Ｆ５４０及びネットワークＩ／Ｆ５５０を相互に接続する。
【００４９】
プロセッサ５１０は、メモリ５２０に記憶されるプログラムを実行することによって、各種処理を行う。
【００５０】
メモリ５２０は、プロセッサ５１０によって実行されるプログラム及びプロセッサ５１０によって必要とされる情報などを記憶する。具体的には、メモリ５２０は、外部記憶装置Ｉ／Ｆ制御プログラム５２１、ネットワークＩ／Ｆ制御プログラム５２２、ファイルシステム制御プログラム５２３、クライアントアプリケーションプログラム（クライアントＡＰ）５２４及びネットワークファイルサービスクライアント制御プログラム５２７を記憶する。
【００５１】
外部記憶装置Ｉ／Ｆ制御プログラム５２１は、外部記憶装置Ｉ／Ｆ５４０を制御する。ネットワークＩ／Ｆ制御プログラム５２２は、ネットワークＩ／Ｆ５５０を制御する。
【００５２】
ファイルシステム制御プログラム５２３は、ファイルシステムを制御するための処理を行う。
【００５３】
クライアントＡＰ５２４は、ファイルサーバ１００及び検索サーバ３００にアクセスする。なお、クライアントＡＰ５２４は、ファイルアクセスサブプログラム５２５及び検索要求サブプログラム５２６を含む。
【００５４】
ファイルアクセスサブプログラム５２５は、ファイルサーバ１００に備わるファイルシステム制御プログラム１２３にアクセスする。
【００５５】
検索要求サブプログラム５２６は、ファイルサーバ１００に備わる検索ＡＰプロキシ制御サブプログラム１２９を介して、検索サーバ３００に備わる検索ＡＰ３２４にアクセスする。
【００５６】
具体的には、検索要求サブプログラム５２６は、検索サーバ３００に備わる検索ＡＰ３２４ではなく、ファイルサーバ１００に備わる検索ＡＰプロキシ制御サブプログラム１２９に、検索要求を送信する。ファイルサーバ１００に備わる検索ＡＰプロキシ制御サブプログラム１２９は、受信した検索要求を、検索サーバ３００に備わる検索ＡＰ３２４に転送する。すると、検索ＡＰプロキシ制御サブプログラム１２９は、転送した検索要求に対する検索結果リストを、検索サーバ３００に備わる検索ＡＰ３２４から受信する。そして、検索ＡＰプロキシ制御サブプログラム１２９は、受信した検索結果リストを、クライアントマシン５００に備わる検索要求サブプログラム５２６に転送する。検索要求サブプログラム５２６は、検索結果リストを受信し、受信した検索結果リストを出力する。
【００５７】
ネットワークファイルサービスクライアント制御プログラム５２７は、ファイルサーバ１００に備わるファイルシステム制御プログラム１２３にアクセスするための処理を行う。
【００５８】
図５は、本発明の第１の実施の形態のファイルサーバ１００に記憶されるキャッシュ候補管理表１２６の構成図である。
【００５９】
キャッシュ候補管理表１２６は、キャッシュフラグ１２６１、ファイルパス名１２６２、サイズ１２６３、上位ヒット累積数１２６４及び上位ヒット最終日時１２６５を含む。
【００６０】
ファイルパス名１２６２は、ファイルサーバ１００によって管理されるファイルが格納されている位置を示す。
【００６１】
キャッシュフラグ１２６１は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルがキャッシュメモリ１３１に先読みされているか否かを示す。例えば、当該ファイルがキャッシュメモリ１３１に先読みされている場合、キャッシュフラグ１２６１は「１」を示す。一方、当該ファイルがキャッシュメモリ１３１に先読みされていない場合、キャッシュフラグ１２６１は「０」を示す。
【００６２】
サイズ１２６３は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルの大きさを示す。
【００６３】
上位ヒット累積数１２６４は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルが上位ヒットと判定された回数である。具体的には、上位ヒット累積数１２６４は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルが、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７以内の順位でヒットした回数である。
【００６４】
上位ヒット最終日時１２６５は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルが上位ヒットと最後に判定された日時である。具体的には、上位ヒット最終日時１２６５は、当該レコードのファイルパス名１２６２に対応する位置に格納されているファイルが、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７以内の順位で最後にヒットした日時である。
【００６５】
次に、本発明の第１の実施の形態のファイルサーバ１００がファイルをキャッシュメモリ１３１に先読みする処理の概要を、図６〜図１０を参照して説明する。
【００６６】
ファイルサーバ１００のプロセッサ１１０は、検索キーワードを含む検索要求をクライアントマシン５００から受信し、受信した検索要求を検索サーバ３００に転送する。すると、ファイルサーバ１００のプロセッサ１１０は、検索結果リスト（図６）を検索サーバ３００から受信する。そして、ファイルサーバ１００のプロセッサ１１０は、受信した検索結果リストを、クライアントマシン５００に転送する。
【００６７】
図６は、本発明の第１の実施の形態の検索結果リストの説明図である。
【００６８】
検索結果リストは、ファイル名を含む。ファイル名は、当該検索要求に含まれる検索キーワードに関連するファイルの識別子である。また、検索結果リストでは、当該検索要求に含まれる検索キーワードとの関連性の高さに基づいて、ファイルに順位（検索ヒット順位）が付されている。なお、検索結果リストでは、いかなる方法で、ファイルに検索ヒット順位が付されていてもよい。
【００６９】
また、検索結果リストには、当該検索要求に含まれる検索キーワードに関連するファイルに関するいかなる情報が含まれていてもよい。例えば、検索結果リストには、当該検索要求に含まれる検索キーワードに関連するファイルが格納されている位置を示すファイルパス名が含まれていてもよい。
【００７０】
更に、ファイルサーバ１００のプロセッサ１１０は、受信した検索結果リストに基づいて、キャッシュ対象ファイルを決定する。ここでは、ファイルサーバ１００のプロセッサ１１０が、受信した三つの検索結果リストに基づいて、キャッシュ対象ファイルを決定する場合を説明する。
【００７１】
図７は、本発明の第１の実施の形態の検索結果リストに含まれるファイル名の説明図である。
【００７２】
本説明図は、それぞれの検索結果リストに含まれるファイル名を、検索ヒット順で示す。本説明図では、１つ目の検索結果リストが、２６個のファイル名を含む。また、２つ目の検索結果リストが、１０個のファイル名を含む。また、３つめの検索結果リストが、３個のファイル名を含む。
【００７３】
ファイルサーバ１００のプロセッサ１１０は、３つの検索結果リストのそれぞれから、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７以内の順位が付されたファイルのファイル名を抽出する。
【００７４】
ここでは、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７を「３」とする。この場合、ファイルサーバ１００のプロセッサ１１０は、３つの検索結果リストのそれぞれから、３位以内の順位が付されたファイルのファイル名を抽出する。なお、ファイルサーバ１００のプロセッサ１１０は、抽出したファイル名によって識別されるファイルを、上位ヒットと判定する。
【００７５】
図８は、本発明の第１の実施の形態の上位ヒットファイルの説明図である。
【００７６】
本説明図は、ファイルサーバ１００のプロセッサ１１０によって上位ヒットと判定されたファイル（上位ヒットファイル）のファイル名を示す。つまり、本説明図は、検索結果リストにおいて３位以内の順位が付されたファイルのファイル名を示す。
【００７７】
次に、ファイルサーバ１００のプロセッサ１１０は、抽出したファイル名によって識別されるファイルに関する情報に基づいて、キャッシュ候補管理表１２６を更新する。
【００７８】
また、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６に基づいて、整列リスト（図９）を作成する。
【００７９】
図９は、本発明の第１の実施の形態の整列リストの説明図である。
【００８０】
整列リストは、キャッシュ候補管理表１２６のファイルパス名１２６２に対応する位置に格納されているファイルのファイル名を含む。更に、整列リストは、それぞれのファイルに関する各種情報を含んでいてもよい。例えば、整列リストは、当該ファイルの上位ヒット累積回数及び当該ファイルのサイズを含む。
【００８１】
また、整列リストでは、キャッシュ優先度の高いファイルから順に、ファイル名が並んでいる。なお、キャッシュ優先度は、どのファイルがキャッシュメモリ１３１に先読みされるかを決定するための値である。なお、ファイルサーバ１００は、キャッシュ候補管理表１２６の上位ヒット累積数１２６４及び上位ヒット最終日時１２６５の少なくとも一方に基づいて、キャッシュ優先度を算出する。また、ファイルサーバ１００は、算出したキャッシュ優先度が高いファイルから順に、キャッシュメモリ１３１に先読みする。
【００８２】
ここでは、キャッシュ優先度が上位ヒット累積回数である場合を説明する。この場合、整列リストでは、上位ヒット累積回数が大きいファイルから順に、ファイル名が並んでいる。ファイルＣの上位ヒット累積回数の「３」が最大のため、整列リストの最上位のファイル名は、「Ｃ」となる。同様に、本説明図の整列リストでは、「Ｃ」、「Ａ」、「Ｐ」、「Ｂ」、「Ｘ」の順にファイル名が並ぶ。
【００８３】
次に、ファイルサーバ１００のプロセッサ１１０は、作成した整列リストに含まれるファイル名を、上位から順番に一つずつ選択する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したファイル名によって識別されるファイルのサイズを、順番に加算する。このとき、ファイルサーバ１００のプロセッサ１１０は、キャッシュ利用可能総サイズ１２８を超える直前まで、ファイルのサイズを順番に加算する。
【００８４】
ここでは、キャッシュ利用可能総サイズ１２８が「６０００バイト」の場合を説明する。この場合、ファイルサーバ１００のプロセッサ１１０は、ファイル名「Ｃ」によって識別されるファイルのサイズ、ファイル名「Ａ」によって識別されるファイルのサイズ及びファイル名「Ｐ」によって識別されるファイルのサイズを加算することによって、合計値の「６０００バイト」を算出する。すると、算出された合計値とキャッシュ利用可能総サイズ１２８とが一致する。よって、算出された合計値に、ファイル名「Ｂ」によって識別されるファイルのサイズ又はファイル名「Ｘ」によって識別されるファイルのサイズのいずれが加算されても、キャッシュ利用可能総サイズ１２８を超えてしまう。
【００８５】
そのため、ファイルサーバ１００のプロセッサ１１０は、ファイル名「Ｃ」によって識別されるファイル、ファイル名「Ａ」によって識別されるファイル及びファイル名「Ｐ」によって識別されるファイルを、キャッシュ対象ファイルとして決定する。
【００８６】
図１０は、本発明の第１の実施の形態のキャッシュ対象ファイルの説明図である。
【００８７】
キャッシュ対象ファイルは、キャッシュメモリ１３１に先読みされるファイル２０１である。ここでは、ファイルサーバ１００のプロセッサ１１０は、ファイル名「Ｃ」によって識別されるファイル、ファイル名「Ａ」によって識別されるファイル及びファイル名「Ｐ」によって識別されるファイルを、キャッシュメモリ１３１に先読みする。
【００８８】
次に、本発明の第１の実施の形態のファイルサーバ１００の処理の詳細について説明する。
【００８９】
図１１は、本発明の第１の実施の形態のファイルサーバ１００によって実行されるキャッシュ候補管理表更新処理のフローチャートである。
【００９０】
ファイルサーバ１００のプロセッサ１１０は、検索キーワードを含む検索要求をクライアントマシン５００から受信すると、当該キャッシュ候補管理表更新処理を実行する。
【００９１】
まず、ファイルサーバ１００のプロセッサ１１０は、受信した検索要求を、検索サーバ３００に転送する（Ｓ１１）。
【００９２】
検索サーバ３００のプロセッサ３１０は、ファイルサーバ１００から検索要求を受信する。すると、検索サーバ３００のプロセッサ３１０は、Ｉｎｄｅｘ情報４０１を検索する。これによって、検索サーバ３００のプロセッサ３１０は、受信した検索要求の条件に合致する検索結果リストを作成する。なお、検索サーバ３００のプロセッサ３１０による検索結果リストの作成方法は、従来と同様であり、いかなる方法であってもよい。検索結果リストは、検索要求に含まれる検索キーワードと関連性の高いファイルのファイル名の一覧を含む。また、検索結果リストでは、当該検索要求に含まれる検索キーワードとの関連性の高さに基づいて、ファイルに順位（検索ヒット順位）が付されている。そして、検索結果リストでは、検索ヒット順位に従って、ファイル名が並ぶ。
【００９３】
次に、検索サーバ３００のプロセッサ３１０は、作成した検索結果リストを、ファイルサーバ１００に送信する。
【００９４】
ファイルサーバ１００のプロセッサ１１０は、検索結果リストを検索サーバ３００から受信する（Ｓ１２）。
【００９５】
すると、ファイルサーバ１００のプロセッサ１１０は、受信した検索結果リストから、キャッシュ候補フィルタリング用検索ヒット順位下限値１２７以内の順位が付されたファイル（上位ヒットファイル）のファイル名を抽出する。
【００９６】
次に、ファイルサーバ１００のプロセッサ１１０は、抽出した上位ヒットファイルのファイル名のすべてをステップＳ１４において選択したか否かを判定する（Ｓ１３）。
【００９７】
上位ヒットファイルのファイル名のすべてを選択した場合、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１２において受信した検索結果リストを、ステップＳ１１において受信した検索要求の送信元のクライアントマシンに転送する（Ｓ１９）。そして、ファイルサーバ１００のプロセッサ１１０は、当該キャッシュ候補管理表更新処理を終了する。
【００９８】
一方、上位ヒットファイルのファイル名のいずれか一つでも選択していない場合、ファイルサーバ１００のプロセッサ１１０は、抽出した上位ヒットファイルのファイル名の中から、選択してない一つのファイル名を選択する（Ｓ１４）。つまり、ファイルサーバ１００のプロセッサ１１０は、抽出した上位ヒットファイルのファイル名のすべてを、一つずつ順番に選択する。
【００９９】
次に、ファイルサーバ１００のプロセッサ１１０は、選択したファイル名によって識別されるファイルに関する情報が、キャッシュ候補管理表１２６に格納されているか否かを判定する（Ｓ１５）。
【０１００】
当該ファイルに関する情報がキャッシュ候補管理表１２６に格納されている場合、ファイルサーバ１００のプロセッサ１１０は、選択したファイル名によって識別されるファイルに関するレコードを、キャッシュ候補管理表１２６から選択する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードの上位ヒット累積数１２６４に「１」を加算する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードの上位ヒット最終日時１２６５に、現在の時刻を格納する（Ｓ１６）。
【０１０１】
そして、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１３に戻り、処理を繰り返す。
【０１０２】
一方、当該ファイルに関する情報がキャッシュ候補管理表１２６に格納されていない場合、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６に新たなレコードを作成する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードに、選択したファイル名によって識別されるファイルに関する情報を格納する。
【０１０３】
具体的には、ファイルサーバ１００のプロセッサ１１０は、新たなレコードのキャッシュフラグ１２６１に、「０」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードのファイルパス名１２６２に、選択したファイル名によって識別されるファイルが格納されている位置を示すファイルパス名を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードの上位ヒット累積数１２６４に、「１」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードの上位ヒット最終日時１２６５に、現在の時刻を格納する（Ｓ１７）。
【０１０４】
そして、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１３に戻り、処理を繰り返す。
【０１０５】
なお、ステップＳ１３において、ファイルサーバ１００のプロセッサ１１０は、受信した検索結果リストから、上位ヒットファイルのファイル名でなく、上位ヒットファイルのファイルパス名を抽出してもよい。この場合、ファイルサーバ１００のプロセッサ１１０は、抽出した上位ヒットファイルのファイルパス名のすべてを、一つずつ順番に選択する。
【０１０６】
次に、ファイルサーバ１００のプロセッサ１１０は、選択したファイルパス名とキャッシュ候補管理表１２６のファイルパス名１２６２とが一致するレコードが、キャッシュ候補管理表に存在するか否かを判定する。これによって、ファイルサーバ１００のプロセッサ１１０は、選択したファイルパス名に対応する位置に格納されているファイルに関する情報が、キャッシュ候補管理表１２６に格納されているか否かを判定する（Ｓ１５）。
【０１０７】
当該ファイルに関する情報がキャッシュ候補管理表１２６に格納されている場合、ファイルサーバ１００のプロセッサ１１０は、選択したファイルパス名とキャッシュ候補管理表１２６のファイルパス名１２６２とが一致するレコードを、キャッシュ候補管理表１２６から選択する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードの上位ヒット累積数１２６４に「１」を加算する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードの上位ヒット最終日時１２６５に、現在の時刻を格納する（Ｓ１６）。
【０１０８】
そして、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１３に戻り、処理を繰り返す。
【０１０９】
一方、当該ファイルに関する情報がキャッシュ候補管理表１２６に格納されていない場合、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６に新たなレコードを作成する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードに、選択したファイルパス名に対応する位置に格納されているファイルに関する情報を格納する。
【０１１０】
具体的には、ファイルサーバ１００のプロセッサ１１０は、新たなレコードのキャッシュフラグ１２６１に、「０」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードのファイルパス名１２６２に、選択したファイルパス名を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードの上位ヒット累積数１２６４に、「１」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、新たなレコードの上位ヒット最終日時１２６５に、現在の時刻を格納する（Ｓ１７）。
【０１１１】
そして、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１３に戻り、処理を繰り返す。
【０１１２】
図１２は、本発明の第１の実施の形態のファイルサーバ１００によって実行されるキャッシュ更新処理のフローチャートである。
【０１１３】
ファイルサーバ１００のプロセッサ１１０は、所定の周期などで、当該キャッシュ更新処理を実行する。
【０１１４】
まず、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６のレコードごとに、キャッシュ優先度を算出する（Ｓ２１）。つまり、ファイルサーバ１００のプロセッサ１１０は、ファイルごとに、キャッシュ優先度を算出する。キャッシュ優先度は、どのファイルがキャッシュメモリ１３１に先読みされるかを決定するための値である。本実施の形態では、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６に基づいてキャッシュ優先度を算出するが、いかなる方法でキャッシュ優先度を算出してもよい。
【０１１５】
具体的には、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６の上位ヒット累積数１２６４及び上位ヒット最終日時１２６５の少なくとも一方に基づいて、キャッシュ優先度を算出する。ここでは、キャッシュ優先度を算出する方法を三つ説明する。
【０１１６】
第１の方法では、キャッシュ候補管理表１２６の上位ヒット累積数１２６４が利用される。ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６の上位ヒット累積数１２６４が大きいほど、キャッシュ優先度を高くする。この場合、ファイルサーバ１００のプロセッサ１１０は、上位ヒット累積数１２６４が多いファイルを優先的にキャッシュメモリ１３１に先読みできる。
【０１１７】
第２の方法では、キャッシュ候補管理表１２６の上位ヒット最終日時１２６５が利用される。ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６の上位ヒット最終日時１２６５から現在時刻までの経過時間が短いほど、キャッシュ優先度を高くする。この場合、ファイルサーバ１００のプロセッサ１１０は、直近に上位ヒットしたファイルを優先的にキャッシュメモリ１３１に先読みできる。
【０１１８】
第３の方法では、キャッシュ候補管理表１２６の上位ヒット累積数１２６４及び上位ヒット最終日時１２６５が利用される。ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６の上位ヒット累積数１２６４が大きいほど、キャッシュ優先度を高くする。更に、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６の上位ヒット最終日時１２６５から現在時刻までの経過時間が短いほど、キャッシュ優先度を高くする。例えば、ファイルサーバ１００のプロセッサ１１０は、数式１を用いて、キャッシュ優先度Ｐを算出する。
【０１１９】
Ｐ＝ｆ（Ａ）／ｇ（Ｂ）  ・・・（数式１）
なお、Ａは、上位ヒット累積数１２６４である。また、Ｂは、上位ヒット最終日時１２６５から現在までの経過時間である。また、ｆ（Ａ）及びｇ（Ｂ）のそれぞれは、いかなる関数であってもよい。
【０１２０】
次に、ファイルサーバ１００のプロセッサ１１０は、整列リストを作成する（Ｓ２２）。整列リストは、算出されたキャッシュ優先度が高い順に、キャッシュ候補管理表１２６のレコードが並び替えられたものである。そのため、整列リストのレコードの順位は、算出されたキャッシュ優先度順となる。
【０１２１】
なお、キャッシュ優先度が同じレコードの並び順は、任意とする。例えば、キャッシュ優先度が同じレコードがキャッシュ候補管理表１２６に複数存在する場合には、キャッシュ候補管理表１２６のサイズ１２６３が小さい順にレコードが並び替えられる。他には、キャッシュ優先度が同じレコードがキャッシュ候補管理表１２６に複数存在する場合には、ファイル名の辞書順にレコードが並び替えられる。
【０１２２】
次に、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６のレコード数が、上限レコード数より大きいかどうかを判定する（Ｓ２３）。なお、上限レコード数は、予め設定さてれた値である。例えば、上限レコード数は、ファイルサーバ１００のプロセッサ１１０が現実的に管理可能なレコード数又はファイルサーバ１００のプロセッサ１１０が所定の時間内に並び替え可能なレコード数とする。
【０１２３】
キャッシュ候補管理表１２６のレコード数が上限レコード数以下の場合、ファイルサーバ１００のプロセッサ１１０は、そのままステップＳ２５に進む。
【０１２４】
一方、キャッシュ候補管理表１２６のレコード数が上限レコード数より大きい場合、ファイルサーバ１００のプロセッサ１１０は、上限レコード数から、キャッシュ候補管理表１２６のレコード数を減算する。これによって、ファイルサーバ１００のプロセッサ１１０は、超過レコード数を算出する。次に、ファイルサーバ１００のプロセッサ１１０は、作成した整列リストのレコードを、算出した超過レコード数分だけ下から順番に選択する。つまり、ファイルサーバ１００のプロセッサ１１０は、作成した整列リストのレコードを、算出した超過レコード数分だけ、キャッシュ優先度が低い順に選択する。
【０１２５】
次に、ファイルサーバ１００のプロセッサ１１０は、整列リストから選択したレコードに対応するレコードを、キャッシュ候補管理表１２６から削除する（Ｓ２４）。これによって、ファイルサーバ１００のプロセッサ１１０は、キャッシュ候補管理表１２６のレコードを、上限レコード数に削減する。そのため、キャッシュ候補管理表１２６によるメモリ１２０の消費量を抑制できる。
【０１２６】
次に、ファイルサーバ１００のプロセッサ１１０は、キャッシュ対象順位算出処理を行う（Ｓ２５）。これによって、ファイルサーバ１００のプロセッサ１１０は、キャッシュメモリ１３１に先読みされるファイルの順位の下限値（キャッシュ対象順位）を算出する。なお、キャッシュ対象順位算出処理については、図１３で詳細を説明する。
【０１２７】
次に、ファイルサーバ１００のプロセッサ１１０は、算出したキャッシュ対象順位以下のすべてのレコードを、整列リストから選択する。次に、ファイルサーバ１００のプロセッサ１１０は、整列リストから選択したレコードに対応するレコードを、キャッシュ候補管理表１２６から選択する。
【０１２８】
次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのキャッシュフラグ１２６１に「０」又は「１」のどちらが格納されているかを判定する。
【０１２９】
キャッシュフラグ１２６１に「０」が格納されている場合、ファイルサーバ１００のプロセッサ１１０は、そのままステップＳ２６に進む。
【０１３０】
一方、キャッシュフラグ１２６１に「１」が格納されている場合、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのキャッシュフラグ１２６１に「０」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのファイルパス名１２６２に対応する位置に格納されているファイルを、キャッシュメモリ１３１から削除する（Ｓ２６）。
【０１３１】
次に、ファイルサーバ１００のプロセッサ１１０は、算出したキャッシュ対象順位以内のすべてのレコードを、整列リストから選択する。次に、ファイルサーバ１００のプロセッサ１１０は、整列リストから選択したレコードに対応するレコードを、キャッシュ候補管理表１２６から選択する。
【０１３２】
次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのキャッシュフラグ１２６１に「０」又は「１」のどちらが格納されているかを判定する。
【０１３３】
キャッシュフラグ１２６１に「１」が格納されている場合、ファイルサーバ１００のプロセッサ１１０は、そのまま当該キャッシュ更新処理を終了する。
【０１３４】
一方、キャッシュフラグ１２６１に「０」が格納されている場合、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのキャッシュフラグ１２６１に「１」を格納する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのサイズ１２６３のキャッシュ領域を、キャッシュメモリ１３１に確保する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのファイルパス名１２６２に対応する位置に格納されているファイルを、確保したキャッシュ領域に先読みする（Ｓ２７）。そして、ファイルサーバ１００のプロセッサ１１０は、当該キャッシュ更新処理を終了する。
【０１３５】
図１３は、本発明の第１の実施の形態のファイルサーバ１００によって実行されるキャッシュ対象順位算出処理のフローチャートである。
【０１３６】
キャッシュ対象順位算出処理は、キャッシュ更新処理（図１２）のステップＳ２５において実行される。
【０１３７】
まず、ファイルサーバ１００のプロセッサ１１０は、変数ｓｉｚｅ及び変数ｃｏｕｎｔを０で初期化する（Ｓ３１）。次に、ファイルサーバ１００のプロセッサ１１０は、整列リストから、以前のステップＳ３２において選択されていないレコードを選択する。次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードの中から、最上位のレコードを選択する（Ｓ３２）。
【０１３８】
次に、ファイルサーバ１００のプロセッサ１１０は、選択したレコードのサイズを、変数ｓｉｚｅに加算する（Ｓ３３）。次に、ファイルサーバ１００のプロセッサ１１０は、加算後の変数ｓｉｚｅが、キャッシュ利用可能総サイズ１２８より大きいかどうかを判定する（Ｓ３４）。
【０１３９】
変数ｓｉｚｅがキャッシュ利用可能総サイズ１２８より大きい場合、ファイルサーバ１００のプロセッサ１１０は、変数ｃｏｕｎｔをキャッシュ対象順位とする（Ｓ３７）。そして、ファイルサーバ１００のプロセッサ１１０は、キャッシュ対象順位算出処理を終了する。
【０１４０】
一方、変数ｓｉｚｅがキャッシュ利用可能総サイズ１２８以下の場合、ファイルサーバ１００のプロセッサ１１０は、変数ｃｏｕｎｔに「１」を加算する（Ｓ３５）。
【０１４１】
次に、ファイルサーバ１００のプロセッサ１１０は、整列リストに含まれるすべてのレコードを、ステップＳ３２において選択したか否かを判定する。
【０１４２】
整列リストに含まれるレコードのいずれか一つでも選択していない場合、ファイルサーバ１００のプロセッサ１１０は、ステップＳ３２に戻り、処理を繰り返す。
【０１４３】
一方、整列リストに含まれるすべてのレコードを選択している場合、ファイルサーバ１００のプロセッサ１１０は、変数ｃｏｕｎｔをキャッシュ対象順位とする（Ｓ３７）。そして、ファイルサーバ１００のプロセッサ１１０は、キャッシュ対象順位算出処理を終了する。
【０１４４】
本実施の形態では、ファイルサーバ１００は、ファイル単位で、キャッシュメモリ１３１に情報資源を先読みした。しかしながら、ファイル以外の単位又は種類で、キャッシュメモリ１３１に情報資源が先読みされてもよい。例えば、ディレクトリ単位、ファイルシステム単位、固定ブロック単位又はボリューム単位で、キャッシュメモリ１３１に情報資源が先読みされてもよい。
【０１４５】
本実施の形態によれば、ファイルサーバ１００は、検索サーバ３００による検索結果リストに基づいてキャッシュメモリ１３１にファイルを先読みする。つまり、ファイルサーバ１００は、検索結果リストに基づいて、アクセスされる可能性の高いファイルを特定する。具体的には、ファイルサーバ１００は、検索された累積回数及び最後に検索されてからの経過時間に基づいて、アクセスされる可能性の高いファイルを特定する。そして、ファイルサーバ１００は、アクセスされる可能性が高いファイルをキャッシュメモリ１３１に先読みする。このため、キャッシュヒット率が向上するので、計算機システム全体の平均レスポンスタイムを短縮できる。
【０１４６】
なお、ファイルサーバ１００は、特定の検索結果リストに基づくのではなく、すべての検索結果リストに基づいて、先読みするファイルを決定する。そのため、複数のクライアントマシン５００から多数の検索要求が発行される場合であっても、ファイルサーバ１００は、計算機システム全体においてアクセスされる可能性が高いファイルを、キャッシュメモリ１３１に先読みできる。
【０１４７】
以上のように、本発明の第１の実施の形態について説明したが、本発明は、第１の実施の形態に限定されることはなく、その趣旨を逸脱しない範囲内で種々の構成を取ることができる。
【０１４８】
次に、第１の実施の形態の変形例を説明する。
【０１４９】
第１の実施の形態では、クライアントマシン５００は、ファイルサーバ１００を介して検索サーバ３００に検索要求を送信した。一方、第１の実施の形態の変形例では、クライアントマシン５００は、検索サーバ３００に検索要求を直接送信する。
【０１５０】
図１４は、本発明の第１の実施の形態の変形例の計算機システムの構成のブロック図である。
【０１５１】
第１の実施の形態の変形例では、検索サーバ３００のメモリ３２０に連携エージェントプログラム３２８が記憶される。第１の実施の形態の変形例の計算機システムのそれ以外の構成は、第１の実施の形態の計算機システムの構成（図１）と同一である。同一の構成には同一の番号を付すことによって、説明を省略する。
【０１５２】
連携エージェントプログラム３２８は、検索ＡＰ３２４からクライアントマシン５００に送信される検索結果リストを取得する。そして、連携エージェントプログラム３２８は、取得した検索結果リストを、ファイルサーバ１００に送信する。
【０１５３】
この場合、ファイルサーバ１００が、クライアントマシン５００から検索要求を受信する必要がなくなる。そのため、クライアントマシン５００は、検索要求を、ファイルサーバ１００でなく、通常通り、検索サーバ３００に送信すればよい。これによって、クライアントマシン５００における設定変更操作を減らすことができる。
【０１５４】
第１の実施の形態の変形例の計算機システムの処理は、キャッシュ候補管理表更新処理を除き、第１の実施の形態の計算機システムの処理（図１２及び図１３）と同一である。同一の処理については説明を省略する。
【０１５５】
図１５は、本発明の第１の実施の形態の変形例のファイルサーバ１００によって実行されるキャッシュ候補管理表更新処理のフローチャートである。
【０１５６】
ファイルサーバ１００のプロセッサ１１０は、検索結果リストを検索サーバ３００から受信すると（Ｓ１１２）、当該キャッシュ候補管理表更新処理を実行する。
【０１５７】
次に、ファイルサーバ１００のプロセッサ１１０は、ステップＳ１３からステップＳ１７を実行する。なお、ステップＳ１３からステップＳ１７は、第１の実施の形態のキャッシュ候補管理表更新処理（図１１）に含まれるものと同一なので、説明を省略する。
【０１５８】
上位ヒットファイルのファイル名のすべてを選択したとステップＳ１３で判定した場合、ファイルサーバ１００のプロセッサ１１０は、当該キャッシュ候補管理表更新処理の終了を検索サーバ３００に通知する（Ｓ１１９）。そして、ファイルサーバ１００のプロセッサ１１０は、当該キャッシュ候補管理表更新処理を終了する。
【０１５９】
なお、ステップＳ１１９は、ステップＳ１１２において検索結果リストを受信した直後に実行されてもよい。
【０１６０】
以上のように第１の実施の形態の変形例によれば、クライアントマシン５００が検索サーバ３００に検索要求を直接送信する場合であっても、キャッシュヒット率を向上できる。
【図面の簡単な説明】
【０１６１】
【図１】本発明の第１の実施の形態の計算機システムの構成のブロック図である。
【図２】本発明の第１の実施の形態の計算機システムに備わるファイルサーバの構成のブロック図である。
【図３】本発明の第１の実施の形態の計算機システムに備わる検索サーバの構成のブロック図である。
【図４】本発明の第１の実施の形態の計算機システムに備わるクライアントマシンの構成のブロック図である。
【図５】本発明の第１の実施の形態のファイルサーバに記憶されるキャッシュ候補管理表１２６の構成図である。
【図６】本発明の第１の実施の形態の検索結果リストの説明図である。
【図７】本発明の第１の実施の形態の検索結果リストに含まれるファイル名の説明図である。
【図８】本発明の第１の実施の形態の上位ヒットファイルの説明図である。
【図９】本発明の第１の実施の形態の整列リストの説明図である。
【図１０】本発明の第１の実施の形態のキャッシュ対象ファイルの説明図である。
【図１１】本発明の第１の実施の形態のファイルサーバによって実行されるキャッシュ候補管理表更新処理のフローチャートである。
【図１２】本発明の第１の実施の形態のファイルサーバによって実行されるキャッシュ更新処理のフローチャートである。
【図１３】本発明の第１の実施の形態のファイルサーバによって実行されるキャッシュ対象順位算出処理のフローチャートである。
【図１４】本発明の第１の実施の形態の変形例の計算機システムの構成のブロック図である。
【図１５】本発明の第１の実施の形態の変形例のファイルサーバによって実行されるキャッシュ候補管理表更新処理のフローチャートである。
【符号の説明】
【０１６２】
１    ネットワーク
１００    ファイルサーバ
１１０    プロセッサ
１２０    メモリ
１２１    外部記憶装置Ｉ／Ｆ制御プログラム
１２２    ネットワークＩ／Ｆ制御プログラム
１２３    ファイルシステム制御プログラム
１２４    キャッシュメモリ制御サブプログラム
１２５    検索ＡＰ連携プログラム
１２６    キャッシュ候補管理表
１２７    キャッシュ候補フィルタリング用検索ヒット順位下限値
１２８    キャッシュ利用可能総サイズ
１２９    検索ＡＰプロキシ制御サブプログラム
１３０    検索ＡＰ連携キャッシュ制御サブプログラム
１３１    キャッシュメモリ
１４０    外部記憶装置インタフェース
１５０    ネットワークインタフェース
１６０    バス
２００    ファイル格納装置
２０１    ファイル
３００    検索サーバ
３１０    プロセッサ
３２０    メモリ
３２１    外部記憶装置Ｉ／Ｆ制御プログラム
３２２    ネットワークＩ／Ｆ制御プログラム
３２３    ＤＢＭＳ
３２４    検索アプリケーションプログラム
３２５    Ｉｎｄｅｘ作成制御サブプログラム
３２６    検索要求応答制御サブプログラム
３２７    ネットワークファイルサービスクライアント制御プログラム
３２８    連携エージェントプログラム
３４０    外部記憶装置インタフェース
３５０    ネットワークインタフェース
３６０    バス
４００    Ｉｎｄｅｘ情報格納装置
５００    クライアントマシン
５１０    プロセッサ
５２０    メモリ
５２１    外部記憶装置Ｉ／Ｆ制御プログラム
５２２    ネットワークＩ／Ｆ制御プログラム
５２３    ファイルシステム制御プログラム
５２４    クライアントアプリケーションプログラム
５２５    ファイルアクセスサブプログラム
５２６    検索要求サブプログラム
５２７    ネットワークファイルサービスクライアント制御プログラム
５４０    外部記憶装置インタフェース
５５０    ネットワークインタフェース
５６０    バス
【図２】
2008305225.tif 000003
【図３】
2008305225.tif 000004
【図４】
2008305225.tif 000005
【図５】
2008305225.tif 000006
【図１１】
2008305225.tif 000007
【図１２】
2008305225.tif 000008
【図１３】
2008305225.tif 000009
【図１５】
2008305225.tif 000010
【図１】
2008305225.tif 000011
【図６】
2008305225.tif 000012
【図７】
2008305225.tif 000013
【図８】
2008305225.tif 000014
【図９】
2008305225.tif 000015
【図１０】
2008305225.tif 000016
【図１４】
2008305225.tif 000017