(57)【特許請求の範囲】
【請求項１】
情報を格納するデータ記憶装置、利用者の情報へのアクセス履歴や利用者の情報を用いてデータ記憶装置内の情報から利用者にとって必要となるものを予測する複数のキャッシュ予測装置、キャッシュ予測装置により予測された情報を記憶する一つ、または複数の予測キャッシュ記憶装置、利用者から要求があった情報をキャッシュするためのキャッシュ記憶装置、利用者からの検索要求を受けキャッシュ記憶装置、予測キャッシュ記憶装置、データ記憶装置を適切に検索し、その検索結果を利用者へ戻すキャッシュ管理装置、キャッシュ管理装置の指示により予測キャッシュ記憶装置からキャッシュ記憶装置へ情報を移動させるデータ移動装置からなり、
前記キャッシュ予測装置は、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、キャッシュ記憶装置の内容と一つまたは複数の予測キャッシュ記憶装置の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報がキャッシュされているならば、予測した情報を予測キャッシュ記憶装置に挿入せず、いずれのキャッシュ記憶装置にも登録されていない場合に予測キャッシュ記憶装置に予測したデータを挿入する機能とを持つ装置である
ことを特徴とするキャッシュシステム。
【請求項２】
前記請求項１におけるキャッシュ記憶装置は、情報を格納することが可能かつ、検索式またはその他のアクセス手段により条件を満たす複数の情報を取り出すことが可能な記憶装置である
請求項１に記載のキャッシュシステム。
【請求項３】
前記請求項１における予測キャッシュ記憶装置は、情報を格納することが可能かつ、検索式またはその他のアクセス手段により条件を満たす複数の情報を取り出すことが可能な装置である
請求項１に記載のキャッシュシステム。
【請求項４】
前記請求項３における予測キャッシュ記憶装置は、さらに利用者から要求された情報をキャッシュできる上限の容量と予測された情報をキャッシュする上限の容量を定めることができる記憶装置であり、予測された情報をキャッシュする領域は情報を予測する装置の数に分割することができ、分割したそれぞれの領域に対してキャッシュできる上限の容量を定めることが可能な装置である
請求項３に記載のキャッシュシステム。
【請求項５】
前記請求項１〜４におけるキャッシュ管理装置は、利用者から要求された情報がキャッシュ記憶装置か予測キャッシュ記憶装置のいずれかに存在するかを調べ、いずれかのキャッシュに存在した場合、その情報を利用者へ返し、いずれのキャッシュにも存在しない場合、利用者から要求された情報をデータ記憶装置から検索し、その結果を利用者へ返す機能を持つ装置である
請求項１から請求項４のうちのいずれか１項に記載のキャッシュシステム。
【請求項６】
前記請求項５におけるキャッシュ管理装置はさらに、利用者から要求された情報がキャッシュ記憶装置か予測キャッシュ記憶装置のいずれかに存在するかを調べ、いずれのキャッシュにも要求された情報が存在しない場合、データ記憶装置から要求されたデータを検索し、キャッシュ記憶装置にその情報をキャッシュする機能を持つ装置である
請求項５に記載のキャッシュシステム。
【請求項７】
前記請求項５〜６におけるキャッシュ管理装置はさらに、利用者から要求された情報がキャッシュ記憶装置か予測キャッシュ記憶装置のいずれかに存在するかを調べ、予測キャッシュ記憶装置に要求された情報が存在した場合、データ移動装置に対し、その情報を予測キャッシュ記憶装置からキャッシュ記憶装置に移動させる指示を出す機能を持つ装置である
請求項５または請求項６に記載のキャッシュシステム。
【請求項８】
前記請求項１〜７におけるキャッシュ予測装置はさらに、予測した情報を予測キャッシュ記憶装置へ挿入する機能を持つ装置である
請求項１から請求項７のうちのいずれか１項に記載のキャッシュシステム。
【請求項９】
前記請求項１〜８におけるデータ移動装置は、指定された情報を予測キャッシュ記憶装置からキャッシュ記憶装置に移動させる機能を持つ装置である
請求項１から請求項８のうちのいずれか１項に記載のキャッシュシステム。
【請求項１０】
前記請求項９におけるデータ移動装置はさらに、利用者から要求された情報が予測キャッシュ記憶装置に存在する場合に、要求された情報を予測キャッシュ記憶装置からキャッシュ記憶装置に移動させる装置である
請求項９に記載のキャッシュシステム。
【請求項１１】
情報を格納するデータ記憶装置、利用者の情報へのアクセス履歴や利用者の情報を用いてデータ記憶装置内の情報から利用者にとって必要となるものを予測する複数のキャッシュ予測装置、キャッシュ予測装置により予測された情報と、利用者から要求があった情報をキャッシュするためのキャッシュ記憶装置、利用者からの検索要求を受けキャッシュ記憶装置、データ記憶装置を適切に検索し、その検索結果を利用者へ戻すキャッシュ管理装置を備え、
前記キャッシュ記憶装置は、情報を格納することが可能であり、かつ、検索式またはその他のアクセス手段により条件を満たす複数の情報を取り出すことが可能であり、さらに、利用者から要求された情報を記録する「キャッシュ領域」とキャッシュ予測装置により予測された情報を記録する「予測キャッシュ領域」とに任意の容量で分割することが可能な記憶装置であり、
キャッシュ管理装置の指示により予測キャッシュ領域からキャッシュ領域へ情報を移動させるデータ移動装置を備え、
前記キャッシュ予測装置は、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、キャッシュ領域の内容と一つまたは複数の予測キャッシュ領域の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報がキャッシュされているならば、予測した情報を予測キャッシュ領域に挿入せず、いずれのキャッシュ領域にも登録されていない場合に予測キャッシュ領域に予測したデータを挿入する機能を持つ装置である
ことを特徴とするキャッシュシステム。
【請求項１２】
前記請求項１１におけるキャッシュ記憶装置はさらに、キャッシュ予測装置により予測された情報を記録する「予測キャッシュ領域」をキャッシュ予測装置の数だけ任意の容量で分割することが可能な装置である
請求項１１に記載のキャッシュシステム。
【請求項１３】
前記請求項１１〜１２におけるキャッシュ管理装置は、利用者から要求された情報がキャッシュ領域か予測キャッシュ領域のいずれかに存在するかを調べ、いずれかのキャッシュに存在した場合、その情報を利用者へ返し、いずれのキャッシュにも存在しない場合、利用者から要求された情報をデータ記憶装置から検索し、その結果を利用者へ返す機能を持つ装置である
請求項１１または請求項１２に記載のキャッシュシステム。
【請求項１４】
前記請求項１３におけるキャッシュ管理装置はさらに、利用者から要求された情報がキャッシュ領域か予測キャッシュ領域のいずれかに存在するかを調べ、いずれのキャッシュにも要求された情報が存在しない場合、データ記憶装置から要求されたデータを検索し、キャッシュ領域にその情報をキャッシュする機能を持つ装置である
請求項１３に記載のキャッシュシステム。
【請求項１５】
前記請求項１３〜１４におけるキャッシュ管理装置はさらに、利用者から要求された情報がキャッシュ領域か予測キャッシュ領域のいずれかに存在するかを調べ、予測キャッシュ領域に要求された情報が存在した場合、データ移動装置に対し、その情報を予測キャッシュ領域からキャッシュ領域に移動させる指示を出す機能を持つ装置である
請求項１３または請求項１４に記載のキャッシュシステム。
【請求項１６】
前記請求項１１〜１５におけるキャッシュ予測装置はさらに、予測した情報を予測キャッシュ領域へ挿入する機能を持つ装置である
請求項１１から請求項１５のうちのいずれか１項に記載のキャッシュシステム。
【請求項１７】
前記請求項１１〜１６におけるデータ移動装置は、指定された情報を予測キャッシュ領域からキャッシュ領域に移動させる機能を持つ装置である
請求項１１から請求項１６のうちのいずれか１項に記載のキャッシュシステム。
【請求項１８】
前記請求項１７におけるデータ移動装置はさらに、利用者から要求された情報が予測キャッシュ領域に存在する場合に、要求された情報を予測キャッシュ領域からキャッシュ領域に移動させる装置である
請求項１７に記載のキャッシュシステム。
【請求項１９】
情報を記憶するデータ記憶装置と、利用者にとって必要となる情報を任意の手段で予測する複数のキャッシュ予測装置と、クライアントのキャッシュ記憶装置にどの情報がキャッシュされているかを記憶するサーバ側キャッシュ記憶装置と、クライアントの予測キャッシュ記憶装置にどの情報がキャッシュされているかを記憶するサーバ側予測キャッシュ記憶装置と、クライアントからの検索要求を受け、データ記憶装置を検索し結果をクライアントに返すデータ管理装置と、クライアントからクライアントでキャッシュしている情報の一覧を受け、クライアントのキャッシュ情報とサーバ側のキャッシュ情報を一致させるキャッシュ同期装置と、データ管理装置の指示によりサーバ側予測キャッシュ記憶装置からサーバ側キャッシュ記憶装置へ情報を移動させるデータ移動装置と、からなり、
前記キャッシュ予測装置は、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、サーバ側キャッシュ記憶装置の内容と一つまたは複数のサーバ側予測キャッシュ記憶装置の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報が存在するならば、予測した情報をサーバ側予測キャッシュ記憶装置に挿入せず、いずれのキャッシュ記憶装置にも存在しない場合にサーバ側予測キャッシュ記憶装置に予測したデータを挿入する機能を持つ装置である
ことを特徴とするサーバ。
【請求項２０】
前記請求項１９におけるデータ管理装置は、端末から要求された情報がサーバ側キャッシュ記憶装置かサーバ側予測キャッシュ記憶装置のいずれかに存在するかを調べ、いずれのキャッシュにも存在しない場合、端末から要求された情報をデータ記憶装置から検索し、その情報を通信路を用いて端末に送信する機能を持つ装置である
請求項１９に記載のサーバ。
【請求項２１】
前記請求項２０におけるデータ管理装置はさらに、端末から要求された情報がサーバ側キャッシュ記憶装置かサーバ側予測キャッシュ記憶装置のいずれかに存在するかを調べ、いずれのキャッシュにも存在しない場合、端末から要求された情報をデータ記憶装置から検索し、その情報をサーバ側キャッシュ記憶装置に挿入する機能を持つ装置である
請求項２０に記載のサーバ。
【請求項２２】
前記請求項２０〜２１におけるデータ管理装置はさらに、端末から要求された情報がサーバ側キャッシュ記憶装置かサーバ側予測キャッシュ記憶装置のいずれかに存在するかを調べ、どちらかのキャッシュにも存在した場合、その情報が既に端末にキャッシュされていることを通知する機能を持つ装置である
請求項２０または請求項２１に記載のサーバ。
【請求項２３】
前記請求項１９におけるキャッシュ同期装置は、端末から端末のクライアント側予測キャッシュ記憶装置にキャッシュされている情報の一覧またはIDを受信し、端末のクライアント側予測キャッシュ記憶装置とサーバ側予測キャッシュ記憶装置とにおいて、キャッシュしている情報に不一致があるか調べ、不一致がある場合には、サーバ側予測キャッシュ記憶装置にキャッシュされている情報をクライアント側予測キャッシュ記憶装置にキャッシュされている情報に一致させる機能を持つ装置である
請求項１９に記載のサーバ。
【請求項２４】
前記請求項２３におけるキャッシュ同期装置はさらに、端末から端末のクライアント側キャッシュ記憶装置にキャッシュされている情報の一覧またはIDを受信し、端末のクライアント側キャッシュ記憶装置とサーバ側キャッシュ記憶装置とにおいて、キャッシュしている情報に不一致があるか調べ、不一致がある場合には、サーバ側キャッシュ記憶装置にキャッシュされている情報をクライアント側キャッシュ記憶装置にキャッシュされている情報に一致させる機能を持つ装置である
請求項２３に記載のサーバ。
【請求項２５】
前記請求項１９〜２４におけるキャッシュ予測装置はさらに、予測した情報をサーバ側予測キャッシュ記憶装置へ挿入する機能を持つ装置である
請求項１９から請求項２４のうちのいずれか１項に記載のサーバ。
【請求項２６】
前記請求項１９〜２５におけるキャッシュ予測装置はさらに、サーバ側予測キャッシュ記憶装置に挿入した情報を通信路を用いて端末に送信する機能を持つ装置である
請求項１９から請求項２５のうちのいずれか１項に記載のサーバ。
【請求項２７】
前記請求項１９におけるデータ移動装置は、サーバ側予測キャッシュ記憶装置内の指示された情報をサーバ側キャッシュ記憶装置に移動させる機能を持つ装置である
請求項１９に記載のサーバ。
【請求項２８】
前記請求項１９におけるデータ移動装置はさらに、端末から要求された情報がサーバ側予測キャッシュ記憶装置内に存在する場合、その情報をサーバ側予測キャッシュ記憶装置に移動させる機能を持つ装置である
請求項１９に記載のサーバ。
【請求項２９】
前記請求項１９〜２８におけるサーバ側キャッシュ記憶装置とサーバ側予測キャッシュ記憶装置は、情報を格納することが可能かつ、検索式またはその他のアクセス手段により条件を満たす複数の情報を取り出すことが可能な装置である
請求項１９から請求項２８のうちのいずれか１項に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュ用データ管理構造にキャッシュすることで、以後のアクセス時に高速にアクセスできるキャッシュ方法、そのシステムおよびそのプログラムに関する。
【背景技術】
【０００２】
従来のキャッシュシステムの方式を述べる。従来のキャッシュシステムはデータを記憶するデータベースやディスクなどのデータ記憶装置と、データ記憶装置から読みだしたデータをキャッシュするためのキャッシュ記憶装置、読みだしたデータがすでにキャッシュされているか、また、データの要求がされた際にデータがすでにキャッシュされているかを調べ、キャッシュされていればキャッシュデータをキャッシュされていなければデータ記憶装置から要求されたデータを検索するといった処理を実行するキャッシュ管理装置から構成されている（図１）。
【０００３】
このような構成を有する従来のキャッシュシステムの動作を以下に述べる。
前提としてデータ記憶装置にはすべてのデータが格納されており、キャッシュ記憶装置にはデータ記憶装置内のデータのうち高い頻度でアクセスするデータを記録しておく。容量についてもキャッシュ記憶装置に対しデータ記憶装置は十分に大きい。また検索速度の面では、キャッシュ記憶装置はデータ記憶装置より高速にデータの検索ができる。
【０００４】
利用者またはシステムがキャッシュ管理装置に検索要求を出す。検索要求には、データ記憶装置から情報を取り出すために必要な固有の番号(ID)または検索条件式を含んでいる。また、データ記憶装置中のデータにはそのデータを特定するための固有の番号(ID)が割り当てられている。キャッシュ管理装置は検索要求を受けると、キャッシュ記憶装置に対し検索要求で要求されたIDのデータがキャッシュ記憶装置内に保存されているか問い合わせる。
【０００５】
キャッシュ記憶装置内に要求されたIDのデータがある場合はそのデータをキャッシュ記憶装置から取り出し検索結果として検索要求元へ返す。キャッシュ記憶装置内に要求されたIDのデータが無い場合はデータ記憶装置に対し検索を実行する。データ記憶装置内に要求したIDのデータが存在した場合、データ記憶装置から要求したIDのデータを取り出す。取り出したデータは検索要求元へ検索結果として返すとともに、キャッシュ記憶装置へ投入する。
【０００６】
次回以降、同じIDで検索要求がなされた場合、キャッシュ管理モジュールはキャッシュ記憶装置を確認することでデータ記憶装置を検索することなく高速にデータを読み出すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記システムにおける問題は、要求されたデータをデータ記憶装置から取り出し、キャッシュするだけでなく、利用者にとって必要となるデータを予測し、予測されたデータをあらかじめキャッシュする場合に起こる。
【０００８】
利用者にとって必要となるデータの予測方式は1つとは限らない。データの種類、キャッシュの全容量、データの利用状況に応じて数種類の予測方式を組み合わせて利用する必要がある。この際、個々の予測方式が個別に予測すると、キャッシュするデータが重複する問題がある。また、数種類の予測方式のうち予測性能の高いものも、低いものも同等に扱われるという問題もある。本発明は、複数の予測したデータをキャッシュする方式と、要求されたデータをキャッシュする方式を組み合わせ、キャッシュデータの重複をなくし安定した性能を出す方式、およびプログラムである。
【０００９】
本発明の目的は、複数の予測したデータをキャッシュする方式と、要求されたデータをキャッシュする方式を組み合わせ、キャッシュデータの重複をなくし、性能を安定させる方式、ならびにシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の複数キャッシュ組み合わせシステムは、データを記憶するデータ記憶装置、利用者のデータアクセス履歴やデータ記憶装置の内容を参照し、利用者にとって必要なデータを予測する複数のキャッシュ予測装置、予測されたデータをキャッシュするための予測キャッシュ記憶装置、利用者が要求したデータをキャッシュするためのキャッシュ記憶装置、予測キャッシュ記憶装置からキャッシュ記憶装置へデータを移し替えるためのデータ移動装置、利用者からの検索要求を受け、キャッシュ記憶装置、予測キャッシュ記憶装置、データ記憶装置を検索し要求されたデータを検索結果として返すキャッシュ管理装置を備え、キャッシュ予測装置が、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、キャッシュ記憶装置の内容と一つまたは複数の予測キャッシュ記憶装置の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報がキャッシュされているならば、予測した情報を予測キャッシュ記憶装置に挿入せず、いずれのキャッシュ記憶装置にも登録されていない場合に予測キャッシュ記憶装置に予測したデータを挿入する機能とを持つ装置であることを特徴とする。
また、本発明によるキャッシュシステムは、情報を格納するデータ記憶装置、利用者の情報へのアクセス履歴や利用者の情報を用いてデータ記憶装置内の情報から利用者にとって必要となるものを予測する複数のキャッシュ予測装置、キャッシュ予測装置により予測された情報と、利用者から要求があった情報をキャッシュするためのキャッシュ記憶装置、利用者からの検索要求を受けキャッシュ記憶装置、データ記憶装置を適切に検索し、その検索結果を利用者へ戻すキャッシュ管理装置を備え、キャッシュ記憶装置が、情報を格納することが可能であり、かつ、検索式またはその他のアクセス手段により条件を満たす複数の情報を取り出すことが可能であり、さらに、利用者から要求された情報を記録する「キャッシュ領域」とキャッシュ予測装置により予測された情報を記録する「予測キャッシュ領域」とに任意の容量で分割することが可能な記憶装置であり、キャッシュ管理装置の指示により予測キャッシュ領域からキャッシュ領域へ情報を移動させるデータ移動装置を備え、キャッシュ予測装置が、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、キャッシュ領域の内容と一つまたは複数の予測キャッシュ領域の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報がキャッシュされているならば、予測した情報を予測キャッシュ領域に挿入せず、いずれのキャッシュ領域にも登録されていない場合に予測キャッシュ領域に予測したデータを挿入する機能を持つ装置であることを特徴とする。
また、本発明によるサーバは、情報を記憶するデータ記憶装置と、利用者にとって必要となる情報を任意の手段で予測する複数のキャッシュ予測装置と、クライアントのキャッシュ記憶装置にどの情報がキャッシュされているかを記憶するサーバ側キャッシュ記憶装置と、クライアントの予測キャッシュ記憶装置にどの情報がキャッシュされているかを記憶するサーバ側予測キャッシュ記憶装置と、クライアントからの検索要求を受け、データ記憶装置を検索し結果をクライアントに返すデータ管理装置と、クライアントからクライアントでキャッシュしている情報の一覧を受け、クライアントのキャッシュ情報とサーバ側のキャッシュ情報を一致させるキャッシュ同期装置と、データ管理装置の指示によりサーバ側予測キャッシュ記憶装置からサーバ側キャッシュ記憶装置へ情報を移動させるデータ移動装置と、からなり、キャッシュ予測装置が、利用者が要求するであろう情報を任意の手段を用いて予測する機能と、サーバ側キャッシュ記憶装置の内容と一つまたは複数のサーバ側予測キャッシュ記憶装置の内容を参照し、いずれかのキャッシュにキャッシュ予測装置により予測された情報が存在するならば、予測した情報をサーバ側予測キャッシュ記憶装置に挿入せず、いずれのキャッシュ記憶装置にも存在しない場合にサーバ側予測キャッシュ記憶装置に予測したデータを挿入する機能を持つ装置であることを特徴とする。
【００１１】
このような構成を採用し、複数のキャッシュ予測装置と利用者が要求したデータをキャッシュするキャッシュ管理装置とキャッシュ記憶装置を組み合わせることにより本発明の目的を達成することができる。
【発明の効果】
【００１２】
本発明の第一の効果は、複数のキャッシュ予測装置を組み合わせることにより、安定したデータの予測とキャッシュができることにある。その理由は、複数の予測方式を組み合わせ利用者のデータアクセス状況やデータの内容から利用者が必要とするデータを予測できるためである。
【００１３】
第二の効果は、複数のキャッシュ予測装置にキャッシュデータの重複が起こらないことにある。その理由は、本方式では個々のキャッシュ予測装置は他のキャッシュ予測装置がキャッシュしたデータと利用者が要求したデータをキャッシュするキャッシュデータを参照し、同じデータを複数キャッシュしない。これにより、複数のキャッシュで重複したデータのキャッシュを避けることができる。
【００１４】
第三の効果として、予測性能の高い予測キャッシュ方式の利用割合を増やす効果がある。その理由は、予測されたキャッシュデータにヒットした場合、ヒットしたデータをキャッシュ予測装置の予測キャッシュ記憶装置からアプリケーションのキャッシュに移すことにより、予測キャッシュ記憶装置に空きができるためである。このため、予測成功率の高い予測キャッシュ記憶装置は空き領域が増え、さらに別のデータを予測してキャッシュに格納できるためである。
【発明を実施するための最良の形態】
【００１５】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図２を参照すると、本発明の形態はプログラム制御により動作する、データを記憶するデータ記憶装置。利用者のアクセス履歴やデータ記憶装置の内容を参照し、利用者が必要とするデータを予測し、データ記憶装置から取得するキャッシュ予測装置。キャッシュ予測装置により取得されたデータを記録する予測キャッシュ記憶装置。利用者に要求されたデータをキャッシュするキャッシュ記憶装置。利用者からのデータ要求を受け、キャッシュ記憶装置、予測キャッシュ記憶装置、データ記憶装置を適切に検索し、その結果を返すキャッシュ管理装置。予測キャッシュ記憶装置からキャッシュ記憶装置にデータを移すデータ移動装置。以上から構成されている。
【００１６】
これらの装置の動作は以下のとおりである。データ記憶装置はシステムにより管理されているデータを記憶しているものとする。データ記憶装置は、キャッシュ予測装置、またはキャッシュ管理装置から要求されたデータを検索し要求元に伝達することができる。本実施例では、データ記憶装置にはRDBMSを用いているがこれに限らない。また、キャッシュ予測装置、キャッシュ管理装置により要求される時の検索条件式には任意の検索式を用いることができる。
【００１７】
キャッシュ予測装置は利用者のデータアクセス履歴や、データ記憶装置内のデータから利用者が必要とするデータを予測し、データ記憶装置から取り出し、予測キャッシュ記憶装置にキャッシュする。キャッシュ予測装置は任意の個数配置できる。また、キャッシュ予測装置はキャッシュ記憶装置と予測キャッシュ記憶装置を検索し、予測したデータがすでにキャッシュされているか確認し同じデータを複数キャッシュしない仕組みを持つ。また、予測キャッシュ記憶装置は個々のキャッシュ予測装置ごとに上限となる容量があらかじめ定められており、一つの予測装置であらかじめ定められた容量以上のデータを予測してキャッシュすることはできない。
【００１８】
本発明は、データを予測しキャッシュする複数の方式と利用者の要求したデータをキャッシュする方式を組み合わせるためのものであり、キャッシュ予測装置の具体的な予測方法はどのようなものでも構わない。
【００１９】
予測キャッシュ記憶装置はキャッシュ予測装置により予測されたデータを管理するための装置である。キャッシュ予測装置にてキャッシュされるデータを管理するために任意のデータ管理構造（具体的にはハッシュ構造や木構造、リスト構造が挙げられるがこれらに留まらない）を用いるが、データの取り出しには主キーを指定したデータ要求以外にキャッシュされているデータの内容と一致するデータを要求する検索条件式も用いることができる。予測キャッシュ記憶装置内のキャッシュデータはキャッシュ管理装置とキャッシュ予測装置により検索される。  キャッシュ記憶装置は利用者により要求されたデータをキャッシュするための記憶装置である。キャッシュ記憶装置はデータ移動装置、もしくはキャッシュ管理装置によりデータを挿入される。キャッシュ記憶装置、予測キャッシュ記憶装置にてキャッシュされるデータを管理するために任意のデータ管理構造（具体的にはハッシュ構造や木構造、リスト構造が挙げられるがこれらに留まらない）を用いるが、本実施例ではLRUを用いている。また、データの取り出しには主キーを指定したデータ要求以外にキャッシュされているデータの内容と一致するデータを要求する検索条件式も用いることができる。キャッシュ記憶装置内のキャッシュデータはキャッシュ管理装置とキャッシュ予測装置により検索される。
【００２０】
データ移動装置はキャッシュ予測装置により予測されたデータが利用者により要求されたとき、すなわち、予測されたデータが実際に利用されたとき、そのデータを予測キャッシュ記憶装置からキャッシュ記憶装置に移し替える処理をする装置である。予測したデータが利用者に要求されたかの検出はキャッシュ管理装置でされ、移動装置に対してデータの移動を指示する。
【００２１】
キャッシュ管理装置は利用者からの検索要求を受け取り、検索要求に対する検索結果を利用者に返す。キャッシュ管理装置はデータの検索要求を受けると、キャッシュ記憶装置と予測キャッシュ記憶装置を検索し要求されたデータがキャッシュされているか調べる。データがキャッシュされていれば、キャッシュされているデータを取り出し、利用者へ返す。いずれのキャッシュ記憶装置にもデータがキャッシュされていなければ、データ記憶装置を検索し検索結果を利用者へ返す。また、キャッシュ管理装置は要求されたデータを利用者へ返したのち、そのデータがデータ記憶装置にあるデータならば、データをキャッシュ記憶装置に挿入しキャッシュする。一方データがキャッシュ記憶装置に存在した場合はキャッシュ記憶装置で用いられているデータ管理構造に従う。たとえば、データ管理構造にLRUを用いている場合はキャッシュヒットしたデータをリストの先頭に移動させるといった処理や、アクセスがあったことを示すフラグを立てるといった処理を実行する。また、要求されたデータが予測キャッシュにキャッシュされていた場合、キャッシュ管理装置はデータ移動装置に対し予測キャッシュ記憶装置内にあるキャッシュヒットしたデータをキャッシュ記憶装置に移動させる指示を出す。
【００２２】
次に、図３のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００２３】
まず利用者もしくはアプリケーションからデータが要求される（ステップS1,S2）。データが要求されるとキャッシュ管理装置は要求されたデータがキャッシュ記憶装置にあるか検索する（ステップS3）。キャッシュ記憶装置は利用者に要求されたデータがキャッシュされているか検索する。要求されたデータがキャッシュされている場合は、キャッシュ記憶装置のデータ管理構造に対して処理の必要がある場合は処理を実行する（ステップS5）。例えば、キャッシュ記憶装置のデータ管理構造にLRUを用いていた場合はキャッシュレコードにフラグを立てる処理や該当するレコードをリストの先頭に移動させるといった処理である。その後、該当するデータを利用者に返す（ステップS14）。
【００２４】
要求されたデータがキャッシュ記憶装置にキャッシュされていない場合は、キャッシュ管理装置は予測キャッシュ記憶装置に要求されたデータがキャッシュされているか検索する（ステップS7）。予測キャッシュ記憶装置に要求されたデータが存在する場合は該当するデータをキャッシュ記憶装置に移動させる。この処理はデータ移動装置によりなされる。また、該当するデータを利用者に返す（ステップS14）。
【００２５】
要求されたデータがキャッシュ記憶装置にも予測キャッシュ記憶装置にもキャッシュされていない場合、キャッシュ管理装置はデータ記憶装置に要求されたデータがあるかを検索する(ステップ10)。データ記憶装置内に要求されているデータがあれば、そのデータをキャッシュ記憶装置に投入しキャッシュする（ステップS12）。また、該当するデータを利用者に返す。一方データ記憶装置に該当するデータがなかった場合は該当するデータが無い旨のメッセージまたは検索結果である空集合を利用者に返す（ステップS13）。
【００２６】
利用者に検索結果を返したのち、キャッシュ予測装置は検索されたデータや検索履歴をもとに、次に必要となるデータを予測する（ステップS15）。ステップS15により予測されたデータをデータ記憶装置から取り出し、予測キャッシュ記憶装置に記録してキャッシュする（ステップS16）。ステップS15,S16の処理はキャッシュ予測装置の数だけ実行される。
【００２７】
また、システム起動時には図４のフローチャートが実行され、必要となるデータを予測して予測キャッシュ記憶装置にキャッシュする。
【００２８】
図10は電子メールをキャッシュするシステムにおいて、本発明を用いて複数のキャッシュを組み合わせた場合の性能を測定した結果である。本方式の性能は、最も良い予測キャッシュ方式である受信時間に着目した予測キャッシュ方式と同等の性能を示している。このことから情報をキャッシュする場合において、本キャッシュ組み合わせ方式を用いることで最も性能の良い予測方式と同等の性能が得られる。このため本方式は上記実現例において有用であるといえる。また、他の予測方式が高い性能を得るデータにおいても同じアルゴリズムで高い性能を得ることができる。
【実施例１】
【００２９】
次に、具体的な実施例を用いて本発明を実施するための別の形態の動作を説明する。
図５を参照すると、本発明の別の実施例の形態はプログラム制御により動作する、データを記憶するデータ記憶装置。利用者のアクセス履歴やデータ記憶装置の内容を参照し、利用者が必要とするデータを予測し、データ記憶装置から取得するキャッシュ予測装置。キャッシュ予測装置により取得されたデータを記録するクライアント側予測キャッシュ記憶装置。利用者に要求されたデータをキャッシュするクライアント側キャッシュ記憶装置。利用者からのデータ要求を受けキャッシュ記憶装置、予想キャッシュ記憶装置、データ記憶装置を適切に検索し、その結果を返すキャッシュ管理装置。予測キャッシュ記憶装置からキャッシュ記憶装置にデータを移すデータ移動装置。サーバでクライアントにどのデータがキャッシュされているのかを判断するため、クライアントにキャッシュされているデータの一覧を記憶しておくサーバ側キャッシュ記憶装置とサーバ側予測キャッシュ記憶装置。データを送受信するための通信路。以上から構成されている。
【００３０】
これらの装置の動作は以下のとおりである。
データ記憶装置はシステムにより管理されているデータを記憶しているものとする。データ記憶装置は、キャッシュ予測個装置、またはキャッシュ管理装置から要求されたデータを検索し要求元に伝達することができる。本実施例では、データ記憶装置にはRDBMSを用いている。しかし、RDBMS以外のデータ記憶装置を利用することも可能である。また、キャッシュ予測装置、キャッシュ管理装置により要求される時の検索条件式には任意の検索式を用いることができる。
【００３１】
キャッシュ予測装置は先の実施例で記述したものと同様であるが、予測したデータを通信路を利用しクライアントに送信できる点と、サーバ側の予測キャッシュ記憶装置にどのデータをクライアントにキャッシュさせたかを記録できる機能を持つ。
【００３２】
クライアント側予測キャッシュ記憶装置とサーバ側予測キャッシュ記憶装置はキャッシュ予測装置により予測されたデータを管理するための装置である。構造や機能は先に述べた実施例の予測キャッシュ記憶装置と同様である。
【００３３】
クライアント側キャッシュ記憶装置とサーバ側キャッシュ記憶装置は利用者により要求されたデータをキャッシュするための記憶装置である。構造や機能は先に述べた実施例のキャッシュ記憶装置と同じである。
【００３４】
データ移動装置はキャッシュ予測装置により予測されたデータが利用者により要求されたとき、すなわち、予測されたデータが実際に利用されたとき、そのデータをクライアント側予測キャッシュ記憶装置からクライアント側キャッシュ記憶装置に移し替える処理をする装置である。予測したデータが利用者に要求されたかの検出はキャッシュ管理装置でされ、移動装置に対してデータの移動を指示する。
【００３５】
キャッシュ管理装置は利用者からの検索要求を受け取り、検索要求に対する検索結果を利用者に返す。キャッシュ管理装置の機能や動作は先の実施例と同様である。
【００３６】
次に、図６のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。まず、利用者もしくはアプリケーションからデータが要求される（ステップS1,S2）。データが要求されるとキャッシュ管理装置は要求されたデータがクライアント側キャッシュ記憶装置にあるか検索する（ステップS3）。クライアント側キャッシュ記憶装置は利用者に要求されたデータがキャッシュされているか検索する。要求されたデータがキャッシュされている場合は、キャッシュ記憶装置のデータ管理構造に対して処理の必要がある場合は処理を実行する（ステップS5）。例えば、キャッシュ記憶装置のデータ管理構造にLRUを用いていた場合はキャッシュレコードにフラグを立てる処理や該当するレコードをリストの先頭に移動させるといった処理である。その後、該当するデータを利用者に返す（ステップS14）。
【００３７】
要求されたデータがクライアント側キャッシュ記憶装置にキャッシュされていない場合は、キャッシュ管理装置はクライアント側予測キャッシュ記憶装置に要求されたデータがキャッシュされているか検索する（ステップS6）。クライアント側予測キャッシュ記憶装置に要求されたデータが存在する場合は該当するデータをキャッシュ記憶装置に移動させる。この処理はデータ移動装置によりなされる(ステップS8)。また、該当するデータを利用者に返す（ステップS14）
【００３８】
要求されたデータがクライアント側キャッシュ記憶装置にもクライアント側予測キャッシュ記憶装置にもキャッシュされていない場合、キャッシュ管理装置はサーバに対し検索要求を送信し、データ記憶装置に要求されたデータがあるかを検索する(ステップS9)。
【００３９】
データ記憶装置内に要求されているデータがあれば、そのデータをサーバ側キャッシュ記憶装置に投入する（ステップS11）。また、そのデータをクライアントに送信する（ステップS12）。クライアントが検索結果を受け取ると、キャッシュ管理装置は、その受け取ったデータをクライアント側キャッシュ記憶装置に記録する（ステップS13）。その後、検索結果のデータの内容を利用者に返す。
【００４０】
データ記憶装置に該当するデータがなかった場合は該当するデータが無い旨のメッセージまたは検索結果である空集合を利用者に返す（ステップS15）。  利用者に検索結果を返したのち、キャッシュ予測装置は検索されたデータや検索履歴をもとに、次に必要となるデータを予測する（ステップS16）。ステップS16により予測されたデータをデータ記憶装置から取り出し、サーバ側の予測キャッシュ記憶装置に記録する（ステップS17）。このとき、サーバ側の予測キャッシュ記憶装置とサーバ側のキャッシュ記憶装置を参照し、予測されたデータが既にクライアントにキャッシュされているか確認する。クライアントにすでにキャッシュされているデータならばステップS19でクライアントに送信しない。この処理をすることでサーバとクライアント間の無駄な通信を削減できる。なお、ステップS16,S17の処理はキャッシュ予測装置の数だけ実行される。予測されたデータはクライアントに送信しクライアント側の予測キャッシュ記憶装置に書き込む（ステップS19）。
【００４１】
また、システム起動時には必要となるデータを予測して予測キャッシュ記憶装置にキャッシュする。
【００４２】
また、本実現例では、サーバとクライアントのキャッシュ内容が一致しているか定期的に確認する必要がある。この動作を図７のフローチャートを参照して説明する。まず、クライアントは定期的にクライアント側予測キャッシュ記憶装置に記録されているすべての情報のIDと（ステップS1）、クライアント側キャッシュ記憶装置に記録されているすべての情報のIDを取得する（ステップS2）。次に、取得したすべてのIDをサーバに送信する（ステップS3）。このID取得と送信処理は定期的に実行されるが、クライアントのデータ移動装置が稼働した直後に常に実行しても良い。ただし、その場合サーバとクライアント間の通信量が増える。サーバはクライアントから受信したIDを用いて、サーバ側予測キャッシュ記憶装置とクライアント予測キャッシュ記憶装置とでキャッシュしている情報が一致しているかを調べる（ステップS4）。サーバとクライアントでキャッシュしている情報に不一致があった場合、サーバ側のキャッシュ内容をクライアント側のキャッシュ内容と一致させる（ステップS6）。同様に、サーバはクライアントから受信したIDを用いて、サーバ側キャッシュ記憶装置とクライアントキャッシュ記憶装置とでキャッシュしている情報が一致しているかを調べ（ステップS7）、一致していなければサーバ側のキャッシュ記憶装置のキャッシュ内容をクライアントのキャッシュ内容と一致させる（ステップS8）。
【実施例２】
【００４３】
本節では第二の実施例を述べる。第二の実施例の装置の構成図を図８に示す。第二の実施例は先に述べた最良の形態と同様の構成である。違いは、最良の形態では複数のキャッシュ予測装置が一つの予測キャッシュ記憶装置を用いる構成であるが、本実施例ではキャッシュ予測装置に対して予測キャッシュ記憶装置が用意されている。本実施例での動作方法や処理の流れ、装置の機能は最良の形態での実現方法と同様である。
【実施例３】
【００４４】
本節では第三の実施例を述べる。第三の実施例の装置の構成図を図９に示す。第三の実施例は先に述べた最良の形態と同様の構成である。違いは、データ移動装置が無く、キャッシュ管理装置がデータ移動装置の機能を持つことである。本実現例ではデータ移動装置がキャッシュ管理装置内にあることで、データ移動装置への指示をせずにデータの移動ができる点や予測キャッシュ記憶装置やデータ記憶装置から取り出したデータをそのままキャッシュ記憶装置に挿入できる特徴を持つ。なお、本実施例での動作方法や処理の流れ、装置の機能は最良の形態での実現方法と同様である。
【実施例４】
【００４５】
本節では第四の実施例を述べる。第四の実施例の装置の構成図を図１０に示す。第四の実施例は先に述べた最良の形態と同様の構成である。違いは、キャッシュ記憶装置が単一の装置にて実現されており、装置内部で予測キャッシュ記憶領域とキャッシュ記憶領域とに分かれている点である。本実現例ではキャッシュ記憶装置が単一の装置であるため、複数のストレージを用意せずに実現できる。なお、本実施例での動作方法や処理の流れ、装置の機能は先に述べた最良の形態での実現方法と同様である。
【産業上の利用可能性】
【００４６】
本発明によれば、利用者に要求されたデータを保持するキャッシュと利用者にとって必要となるデータを予測するキャッシュとを効率よく組み合わせることができる。具体的な応用例としては、携帯電話から必要なデータをサーバから要求する環境において通信の待ち時間を減らすといった用途に適用できる。また、好みのメールや音楽などを事前に取得しキャッシュしておくといった用途にも適用できる。
【図面の簡単な説明】
【００４７】
【図１】従来のキャッシュ方式の形態の構成を示すブロック図である。
【図２】本発明の形態の構成を示すブロック図である。
【図３】本発明を実施するための最良の形態の動作を示す流れ図である。
【図４】本発明を実施するための最良の形態の動作を示す流れ図である。
【図５】サーバとクライアントに分かれている形態の例を示すブロック図である。
【図６】サーバとクライアントに分かれている形態の例での動作を示す流れ図である。
【図７】サーバとクライアントに分かれている形態の例でのキャッシュ内容の同期の動作を示す流れ図である。
【図８】キャッシュ予測装置に対して予測キャッシュ記憶装置が配置されている場合の実施例でのブロック図である。
【図９】キャッシュ管理装置がデータ移動装置の機能を含む場合の実施例でのブロック図である。
【図１０】キャッシュ記憶装置内で予測キャッシュ記憶領域とキャッシュ記憶領域とが分かれている場合の実施例でのブロック図である。
【図１１】本発明を用いて複数のキャッシュを組み合わせた方式の性能評価結果のグラフである。
【図１】
0005163171.tif 000002
【図２】
0005163171.tif 000003
【図３】
0005163171.tif 000004
【図４】
0005163171.tif 000005
【図５】
0005163171.tif 000006
【図６】
0005163171.tif 000007
【図７】
0005163171.tif 000008
【図８】
0005163171.tif 000009
【図９】
0005163171.tif 000010
【図１０】
0005163171.tif 000011
【図１１】
0005163171.tif 000012