(57)【要約】【課題】頻繁にアクセスするデータをキャッシュからなるべく追い出さないようにして、頻繁にアクセスするデータのキャッシュヒット率を維持する。【解決手段】アプリケーション８は、アクセス要求を行う毎に、アクセス要求の種類に従ったキャッシュ制御方式を指定し、データ管理装置５は、指定されたキャッシュ制御方式に従ってキャッシュ８の制御を行う。キャッシュ８に保持されるデータは、使用された時間順に管理され、データ管理装置５は、キャッシュ制御方式が、頻繁にアクセスされるデータに対するものであり、データをキャッシュから追い出されにくいように制御するものである場合、使用したデータをキャッシュの最も最近の時間位置に保持させ、また、キャッシュ制御方式が、頻繁にはアクセスされないデータに対するものである場合、使用したデータをキャッシュの時間的に古い予め定めた時間位置に保持させる。【選択図】      図１
2006350633.tif 000002
【特許請求の範囲】
【請求項１】
計算機のアプリケーション実行により、外部記憶装置内のデータを主記憶装置のキャッシュに保持する制御を行うデータ管理方法において、前記アプリケーションは、アクセス要求を行う毎に、アクセス要求の種類に従ったキャッシュ制御方式を指定し、キャッシュの制御を行うデータ管理装置は、指定されたキャッシュ制御方式に従ってキャッシュの制御を行うことを特徴とするデータ管理方法。
【請求項２】
前記キャッシュに保持されるデータは、使用された時間順に管理され、前記データ管理装置は、前記キャッシュ制御方式が、頻繁にアクセスされるデータに対するものであり、データをキャッシュから追い出されにくいように制御するものである場合、使用したデータをキャッシュの最も最近の時間位置に保持し、また、前記キャッシュ制御方式が、頻繁にはアクセスされないデータに対するものである場合、使用したデータをキャッシュの時間的に古い予め定めた時間位置に保持するようにキャッシュの制御を行うことを特徴とする請求項１記載のデータ管理方法。
【請求項３】
前記頻繁にアクセスされるデータに対するアクセス制御方式がＬＲＵ方式であり、前記頻繁にはアクセスされないデータに対するアクセス制御方式が非ＬＲＵ方式であることを特徴とする請求項１または２記載のデータ管理方法。
【請求項４】
計算機のアプリケーション実行により、外部記憶装置内のデータを主記憶装置のキャッシュに保持する制御を行うデータ管理装置を備えるデータ管理システムにおいて、前記アプリケーションは、アクセス要求を行う毎に、アクセス要求の種類に従ったキャッシュ制御方式を指定し、前記データ管理装置は、指定されたキャッシュ制御方式に従ってキャッシュの制御を行うことを特徴とするデータ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理方法及びデータ管理システムに係り、特に、外部記憶装置に保持されているファイルデータやデータベースのデータを主記憶装置のキャッシュに保持するために使用して好適なデータ管理方法及びデータ管理システムに関する。
【背景技術】
【０００２】
外部記憶装置に保持されているファイルデータやデータベースのデータを主記憶装置のキャッシュに保持するための管理に関する従来技術として、例えば、特許文献１等に記載された技術が知られている。
【０００３】
特許文献１に記載の従来技術は、外部記憶装置に保持されているファイルデータやデータベースのデータを主記憶装置のキャッシュに読み込むため、すでにキャッシュに読み込まれているデータのいずれかを追い出すものである。このとき、どのデータをキャッシュに残すかの判断基準が必要であり、前述の従来技術は、この判断基準として、特に使用頻度の高いデータをキャッシングするため、ログインするユーザ毎に使用頻度の高いデータに高い優先度を設定し、そのようなデータを高い確率でキャッシュに残すようなキャッシュ管理を行っている。具体的には、ユーザ名とユーザが頻繁にアクセスするデータとを対応づけて記録するアクセス頻度データベースを持ち、キャッシュのデータコピーに優先度を設定している。
【特許文献１】特開平７−９３２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した従来技術は、使用頻度の高いデータを少量に参照や更新を行う場合、キャッシュから優先度の低いデータを追い出し、頻繁にアクセスするデータを追い出さないようにすることができ、データのアクセスに対して高い確率でキャッシュからアクセスすることができるものである。しかし、データに対する作業は多種多様であり、異なるデータにアクセスする別の作業を行うような場合、前述した従来技術は、以前の使用頻度の高いデータに高い優先度が設定してあるため、優先度の設定の変化に対応することができず、使用しないデータがキャッシュから追い出されないので、アクセスするデータに対するキャッシュ容量が少なくなってしまい、データのアクセスに対して頻繁にキャッシュからの追出しの処理と外部記憶装置のデータをキャッシュに取り込む処理とが行われ、システムの性能が劣化してしまうという問題点を生じてしまう。
【０００５】
また、前述した従来技術は、使用頻度の低いデータを対象とした大量の検索や更新が行われると、キャッシュの容量が有限であるため、高い優先度をもつデータであってもキャッシュから追い出されることに対処することができず、キャッシュ領域から追い出されて、再びキャッシュ領域に読み込まれるまでの間、外部記憶装置に直接読み込みが発生してしまい、システム全体の性能を劣化させてしまうという問題点を有している。
【０００６】
本発明の目的は、前述した従来技術の問題点を解決し、アクセスするデータの作業内容毎に対処することができ、頻繁にアクセスしているデータを定常的にキャッシュ上に残し、アクセスの高速化を図ることができるデータ管理方法及びデータ管理システムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明によれば前記目的は、計算機のアプリケーション実行により、外部記憶装置内のデータを主記憶装置のキャッシュに保持する制御を行うデータ管理方法において、前記アプリケーションが、アクセス要求を行う毎に、アクセス要求の種類に従ったキャッシュ制御方式を指定し、キャッシュの制御を行うデータ管理装置が、指定されたキャッシュ制御方式に従ってキャッシュの制御を行うことにより達成される。
【０００８】
また、前記目的は、計算機のアプリケーション実行により、外部記憶装置内のデータを主記憶装置のキャッシュに保持する制御を行うデータ管理装置を備えるデータ管理システムにおいて、前記アプリケーションが、アクセス要求を行う毎に、アクセス要求の種類に従ったキャッシュ制御方式を指定し、前記データ管理装置が、指定されたキャッシュ制御方式に従ってキャッシュの制御を行うことにより達成される。
【発明の効果】
【０００９】
本発明によれば、頻繁にアクセスするデータをキャッシュからなるべく追い出さないようにして、頻繁にアクセスするデータのキャッシュヒット率を維持することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明によるデータ管理方法及びデータ管理システムの実施形態を図面により詳細に説明する。
【００１１】
図１は本発明の一実施形態によるデータ管理システムの構成を示すブロック図である。図１において、１は計算機、２は外部記憶装置、３は主記憶装置、４はアプリケーション、５はデータ管理装置、６はアクセス要求制御部、７はキャッシュ管理制御部、８はキャッシュ、９はデータ領域である。
【００１２】
本発明の実施形態によるデータ管理システムは、図１に示すように、アプリケーション４が実行される計算機１と、アプリケーション４の実行によりアクセスされる外部記憶装置２とにより構成される。計算機１は、その主記憶装置３上にアプリケーション４と、アプリケーション４からの要求を受け付けてデータアクセス要求を行うデータ管理装置５と、共用メモリとしてのキャッシュ８とが格納されている。データ管理装置５は、アクセス要求制御部６とキャッシュ管理制御部７とにより構成され、キャッシュ８を通して外部記憶装置２上のデータ領域９をアクセスする。
【００１３】
前述において、計算機１は、よく知られているように、主記憶装置３の他に、ＣＰＵを備えて構成され、本発明の実施形態でのデータ管理装置５を構成するアクセス要求制御部６とキャッシュ管理制御部７とは、外部記憶装置２に格納されたアプリケーションプログラムを主記憶装置３にロードして、ＯＳの下でＣＰＵに実行させることにより実現することができる。
【００１４】
前述したように構成される本発明の実施形態において、アプリケーション４は、処理アクセス毎に、データ管理装置５に対して外部記憶装置２上に割り当てられれたデータ領域９を要求する。その際、アプリケーション４は、処理アクセス毎にキャッシュ制御方式を示すキャッシュ管理コードを設定し、このキャッシュ管理コードをもデータ管理装置５に渡す。データ管理装置５のアクセス要求制御部６は、アプリケーション４からのデータアクセス要求を解析し、その解析結果に基づいてキャッシュ管理制御部７に対してデータを要求する。キャッシュ管理制御部７は、キャッシュ８上に要求されたデータがあれば、そのデータを読み出して要求元に送信し、要求されたデータがキャッシュ８上にない場合、外部記憶装置２からデータ領域９のデータを読み出してキャッシュ８に書き込むと共に、そのデータを要求元に送信する。その際、キャッシュ管理制御部７は、アプリケーション４からの処理アクセス毎に指定されたキャッシュ管理コードで示されるキャッシュ制御方式に基づいてキャッシュ８へのデータの格納位置を決定する。
【００１５】
図２は本発明の実施形態において、アプリケーションからのアクセス要求に対して要求されたデータを返送するまでの処理動作を説明するフローチャートであり、次に、これについて説明する。
【００１６】
（１）計算機１内のアプリケーション４がデータ管理装置５にデータアクセス要求を行うと、データ管理装置５内のアクセス要求制御部６は、データアクセス要求を解析し、その結果に基づいて、対象となるデータをキャッシュ管理制御部７に要求する。アクセスを要求を受けたキャッシュ管理制御部７は、データアクセス制御処理を行い、要求されたデータがキャッシュ８に読み込み済みであるか否かを判定する（ステップＳ１）。
【００１７】
（２）ステップＳ１の判定で、要求されたデータがキャッシュ８に読み込み済みであった場合、キャッシュ管理制御部７は、指定されたキャッシュ制御方式での処理を行って、キャッシュ上の再書き込み位置（再格納位置）の決定を行い、対象のデータをキャッシュ８から読み込んで結果をアプリケーション４に返送する（ステップＳ２、Ｓ３）。
【００１８】
（３）ステップＳ１の判定で、要求されたデータがキャッシュ８に読み込み済みでなかった場合、キャッシュ管理制御部７は、外部記憶装置２のデータ領域９からデータを読み込み、指定されたキャッシュ制御方式による処理を行ってキャッシュ８上の追い出すデータの位置、外部記憶装置２のデータ領域９から読み込んだデータのキャッシュ８への書き込み位置（格納位置）の決定を行う（ステップＳ４、Ｓ５）。
【００１９】
（４）その後、キャッシュ管理制御部７は、外部記憶装置２のデータ領域９から読み込んだデータをキャッシュ８のステップＳ５の処理で決定した位置に書き込んでキャッシュ８を更新すると共に、保持したデータをもとに結果をアプリケーション４に返送する（ステップＳ６、Ｓ７）。
【００２０】
前述した本発明の実施形態での処理によれば、アプリケーションからのアクセス要求を、要求毎に指定されたキャッシュ管理方式で処理することができ、この処理により、要求が一時的にデータを参照する場合であっても適切なキャッシュ管理方式をアプリケーションが設定することにより、有限なキャッシュを効率よく割り当てることが可能となり、使用頻度の高いデータを、高い確率でキャッシュ領域に残すようなキャッシュの制御を行うことができる。この結果、キャッシュ領域を効率的に使用することができるので、頻繁にアクセスするデータを、定常的にキャッシュ上に残しておくことができデータアクセスの高速化を図ることができる。
【００２１】
図３は処理アクセス毎の異なるキャッシュ制御方式によりキャッシュを使用する例について説明する図である。図３に示す例では、アプリケーション４が、少量のデータを参照する業務の場合で、該当データが定常的にキャッシュ上に残っていてアクセス処理の高速化を図ることを期待するキャッシュ制御方式をＬＲＵ方式とし、逆に、データを全件処理するケース等の業務の場合で、キャッシュ上にデータが読み込まれてもそれを再利用することが求められないキャッシュ制御方式を非ＬＲＵ方式として指定することができるものとしている。
【００２２】
そして、計算機１上でアプリケーション４のアクセス要求ａ１０によるＬＲＵ方式のデータアクセスと、アプリケーション４のアクセス要求ｂ１１による非ＬＲＵ方式のデータアクセスが実行されており、キャッシュ８は、これらのアクセス要求ａ１０、ｂ１１で共用されているものとする。
【００２３】
図４は異なるキャッシュ制御方式によりキャッシュを共用する場合のキャッシュ内のデータの並びとキャッシュ管理制御部７における処理の概要とを説明する図であり、次に、図４を参照して、キャッシュ８内のデータの並び、キャッシュ管理制御部の制御により、有限なキャッシュ領域を異なるキャッシュ制御方式で有効に使用することができることを説明する。なお、以下では、キャッシュ制御方式として、ＬＲＵ方式、非ＬＲＵ方式を例に挙げて説明する。
【００２４】
まず、キャッシュ８内のデータの並びについて説明する。キャッシュ８内に格納されるデータのブロックは、最新１、最新２、……、最古３、最古２、最古１の順で使用された時間順に管理される。このため、各データのブロックは、その格納位置（キャッシュ内のデータ格納アドレス）の情報が図４に矢印で示すように順にチェーンにより接続されて管理される。そして、図４に示す例では、最古３〜最古１のデータブロックの格納位置が非ＬＲＵ方式で使用されるキャッシュ領域であるとして設定され、最新１〜最古１までの全てのデータブロックの格納位置がＬＲＵ方式で使用することができるものとして設定されている。
【００２５】
なお、チェーンにより接続されて管理されるのは、データブロックの格納位置を示すアドレスだけでよく、実際のデータは、キャッシュ８内のどの位置に格納されていてもよい。また、キャッシュ内の各データブロックには、そのデータが最も最近に利用されたときのキャッシュ制御方式が難であったかを示すために、非ＬＲＵ方式で使用されたデータに非ＬＲＵフラグを付与しておくものとする。
【００２６】
キャッシュ管理制御部７は、ＬＲＵ方式で制御を行う場合、キャッシュに格納されている最古キャッシュデータ、図４に示す例では、最古１のデータを吐き出していき、また、外部記憶装置２からデータを読み込んで書き込む場合も、キャッシュ領域からデータを読み出す場合も、そのデータを常に最新のキャッシュ位置、図４に示す例では、最新１の位置に格納する。これにより、該当データが定常的にキャッシュ８上に残っていていく。
【００２７】
また、キャッシュ管理制御部７は、非ＬＲＵ方式で制御を行う場合、キャッシュに格納されている最古キャッシュデータ、図４に示す例では、最古１のデータを吐き出していき、また、外部記憶装置２からデータを読み込んで書き込む場合も、キャッシュ領域からデータを読み出す場合も、そのデータを非ＬＲＵ方式で使用するキャッシュ領域の最新のキャッシュ位置、図４に示す例では、最古３の位置に格納する。但し、キャッシュ領域から読み出すデータに前述した非ＬＲＵフラグなく、そのデータがＬＲＵ方式でキャッシュに書き込まれたものであった場合、そのデータは、最新のキャッシュ位置、図４に示す例では、最新１の位置に格納される。これにより、ＬＲＵ方式で使用しているキャッシュ上のデータは、非ＬＲＵ方式で使用された場合にも、キャッシュから吐き出されないようにすることができる。
【００２８】
図５はキャッシュ管理制御部での処理動作を説明するフローチャートであり、次に、これについて説明する。
【００２９】
（１）キャッシュ管理制御部は、アクセス要求を受け取ると、アプリケーションにより指定されるキャッシュ管理コードがＬＲＵ方式を指定しているか、非ＬＲＵ方式を指定しているかを判定する（ステップＳ８）。
【００３０】
（２）ステップＳ８の判定で、アクセス要求ａ１０が指定するＬＲＵ方式が指定されていた場合、要求データがキャッシュに読み込み済みか否かを判定し、要求データがキャッシュに読み込み済みの場合、対応データのキャッシュの格納位置の情報を最新の位置、すなわち、図４の最新１の位置に移動させる（ステップＳ９、Ｓ１０）。
【００３１】
（３）ステップＳ９の判定で、要求データがキャッシュに読み込み済みでなかった場合、外部記憶装置からデータを読み込み、最古のデータがあるキャッシュ位置のデータ、図４の最古１のデータを追い出し、読み込んだデータをキャッシュの最新の位置、図４の最新１の位置に書き込む（ステップＳ１１〜Ｓ１３）。
【００３２】
（４）ステップＳ１０、Ｓ１３及び後述するステップＳ１８の処理の後、対象キャッシュ情報に非ＬＲＵフラグがあれば、その非ＬＲＵフラグを削除し、キャッシュ上の要求されたデータをアプリケーションに返送する（ステップＳ１４、Ｓ１５）。
【００３３】
ＬＲＵ方式の場合の処理は、前述したように行われて、読み込むデータのキャッシュが常に最新の位置に移動されるため、頻繁にアクセスするデータに対するキャッシュの追い出しが起きず、キャッシュを維持することができる。
【００３４】
（５）ステップＳ８の判定で、アクセス要求ｂ１１が指定する非ＬＲＵ方式が指定されていた場合、要求データがキャッシュに読み込み済みか否かを判定し、要求データがキャッシュに読み込み済みの場合、対象データのキャッシュ情報に非ＬＲＵフラグが設定されているか否かを判定する（ステップＳ１６、Ｓ１７）。
【００３５】
（６）ステップＳ１７の判定で、対象データのキャッシュ情報に非ＬＲＵフラグが設定されていなかった場合、そのデータは、以前にＬＲＵ方式で利用された頻繁にアクセスするデータであるため、データのキャッシュを最新の位置、図４で説明した最新１の位置に移動し、その後、前述したステップＳ１４からの処理に移行する（ステップＳ１８）。
【００３６】
（７）ステップＳ１７の判定で、対象データのキャッシュ情報に非ＬＲＵフラグが設定されていた場合、そのデータは、以前に非ＬＲＵ方式で読み込まれたデータであり、再読み込みされる可能性の少ないデータであるので、そのデータのキャッシュ位置を非ＬＲＵ方式で使用されるキャッシュ領域の最も新しい位置、図４に示す最古３の位置に移動する（ステップＳ１９）。
【００３７】
（８）ステップＳ１６の判定で、要求データがキャッシュに読み込み済みでなかった場合、外部記憶装置からデータを読み込み、最古のデータがあるキャッシュ位置、図４の最古１の位置のデータを追い出し、読み込んだデータをキャッシュの非ＬＲＵ方式で使用されるキャッシュ領域の最も新しい位置、図４に示す最古３の位置に書き込む（ステップＳ２０〜Ｓ２２）。
【００３８】
（９）ステップＳ１９、Ｓ２２の処理の後、対象キャッシュ情報に非ＬＲＵフラグを再設定し、キャッシュ上の要求されたデータをアプリケーションに返送する（ステップＳ２３、Ｓ２４）。
【００３９】
前述したように、本発明の実施形態での非ＬＲＵ方式による制御の場合の処理は、ＬＲＵ方式の制御でキャッシュ内に書き込まれたデータを常に最新の位置に移動させるため、頻繁にアクセスされるデータがキャッシュから追い出されることがなく、キャッシュを維持することができる。また、非ＬＲＵ方式の制御でキャッシュ内に書き込まれたデータは、非ＬＲＵ方式で使用されるキャッシュ領域の最も新しい位置に移動させられるので、最小のキャッシュ容量を使用して非ＬＲＵ方式によるアクセスが行われることになり、頻繁にアクセスするデータがキャッシュから追い出されることがないようにキャッシュを維持することができる。
【００４０】
前述した本発明の実施形態での処理は、プログラムにより構成し、計算機が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【００４１】
前述した本発明の実施形態によれば、アクセス要求を行う毎に動作するキャッシュ制御方式を変更することができるため、データをキャッシュ領域からなるべく追い出さないようにして、頻繁にアクセスするデータのキャッシュヒット率を維持することができる。また、一時的に全件のデータを参照する場合等では、頻繁にアクセスする対象にならないように、データをキャッシュに読み込んでいくため、頻繁にアクセスするデータをキャッシュから追い出すようなことを防ぐことができる。
【００４２】
前述した本発明の実施形態は、キャッシュ内に格納されるデータのブロックをアドレスによりチェーン管理するとして説明したが、本発明は、キャッシュ内に格納されるデータのブロックを時刻管理し、古い書込みデータを破棄していくＬＲＵ方式を行っている場合にも、同様に管理することができる。
【００４３】
また、本発明は、従来技術により説明した特許文献１に記載のように、優先度が設定される制御の場合にも適用することができる。すなわち、この場合、非優先度が設定された制御の場合、キャッシュに読み込まれているデータは優先度をそのまま維持ししてキャッシュに残し、キャッシュに読み込まれていないデータは優先度を強制的に非優先を示す０に設定してそのデータをキャッシュに書き込むようにすればよい。また、高い優先度が設定された制御の場合、キャッシュに読み込まれているデータで優先度０であれば優先度の再設定を行い、キャッシュに読み込まれていないデータには、既存通り優先度を設定してキャッシュに書き込むようにすればよい。
【００４４】
前述したように、本発明は、種々のキャッシュ管理制御に対しても適用することができ、頻繁にアクセスするデータのキャッシュからの追い出しが起きないように、キャッシュを維持することができる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態によるデータ管理システムの構成を示すブロック図である。
【図２】本発明の実施形態において、アプリケーションからのアクセス要求に対して要求されたデータを返送するまでの処理動作を説明するフローチャートである。
【図３】処理アクセス毎の異なるキャッシュ制御方式によりキャッシュを使用する例について説明する図である。
【図４】異なるキャッシュ制御方式によりキャッシュを共用する場合のキャッシュ内のデータの並びとキャッシュ管理制御部７における処理の概要とを説明する図である。
【図５】キャッシュ管理制御部での処理動作を説明するフローチャートである。
【符号の説明】
【００４６】
１  計算機
２  外部記憶装置
３  主記憶装置
４  アプリケーション
５  データ管理装置
６  アクセス要求制御部
７  キャッシュ管理制御部
８  キャッシュ
９  データ領域
１０  アクセス要求ａ
１１  アクセス要求ｂ
【図１】
2006350633.tif 000003
【図２】
2006350633.tif 000004
【図３】
2006350633.tif 000005
【図４】
2006350633.tif 000006
【図５】
2006350633.tif 000007