(57)【要約】【課題】複数のアプリケーションが大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避する。【解決手段】バッファキャッシュ管理装置５０は、第１の記憶部８０に格納されたデータのブロックデータを、複数のアプリケーションが第２の記憶部７０を介して参照する場合に、アプリケーション毎にブロックデータを第２の記憶部７０に残す優先順位を決定し、その優先順位と、当該アプリケーションの識別子と、当該ブロックデータの識別子と、を関連付けた優先順位管理情報５１０を生成する優先順位管理情報生成部５１と、アプリケーションの何れかがアクセス要求を行う際に、優先順位管理情報５１０を参照し、第２の記憶部７０に複写済であるブロックデータの中で、優先順位が示す値が所定の条件を満たすブロックデータを、第２の記憶部７０から削除する複写削除部５２と、を備える。【選択図】      図７
2015172897.tif 000002
【特許請求の範囲】
【請求項１】
第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成手段と、
前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除手段と、
を備えるバッファキャッシュ管理装置。
【請求項２】
前記複写削除手段は、前記ブロックデータを参照する前記複数のアプリケーションの全てに関して、当該ブロックデータの前記優先順位が示す値が閾値以下である場合に、当該ブロックデータを、前記第二の記憶手段から削除する、
請求項１に記載のバッファキャッシュ管理装置。
【請求項３】
前記優先順位管理情報生成手段は、前記優先順位が示す値を、前記アプリケーションが前記ブロックデータを最後に参照したときからの経過時間が短い順番、あるいは、前記アプリケーションが前記ブロックデータを参照した回数が多い順番に基づいて決定し、何れかの前記アプリケーションが何れかの前記ブロックデータを参照するたびに、前記優先順位が示す値を更新する、
請求項１または２に記載のバッファキャッシュ管理装置。
【請求項４】
前記優先順位管理情報生成手段は、前記優先順位が示す値を、前記ブロックデータが前記第二の記憶手段に複写されてからの経過時間が短い順番に基づいて決定し、何れかの前記ブロックデータが前記第二の記憶手段に格納されるたびに、前記優先順位が示す値を更新する、
請求項１または２に記載のバッファキャッシュ管理装置。
【請求項５】
前記優先順位管理情報生成手段は、個々の前記複数のアプリケーションに関して、前記第二の識別子と、前記優先順位が示す値とを関連付けたレコードを含むエントリを１以上包含する前記優先順位管理情報を生成し、前記複数のアプリケーションの何れかが要求した前記ブロックデータに関する前記第二の識別子及び前記優先順位が示す値を、新たに前記エントリのいずれかに登録する際に、当該アプリケーションに関する前記エントリが全て使用中である場合は、前記エントリの中で前記優先順位が示す値が最も低いエントリを、当該第二の識別子及び当該優先順位が示す値に更新する、
請求項１乃至４のいずれかに記載のバッファキャッシュ管理装置。
【請求項６】
前記第二の記憶手段に格納されている前記ブロックデータを識別可能な前記第二の識別子と、当該第二の識別子が何れかの前記エントリに格納されているか否かを示す情報を関連付けた格納管理情報を生成する格納管理情報生成手段
をさらに備え、
前記複写削除手段は、前記格納管理情報を参照し、前記複数のアプリケーションの少なくとも何れかが要求した前記ブロックデータが前記第二の記憶手段に格納されてない場合に、当該ブロックデータを、前記第一の記憶手段から前記第二の記憶手段に複写し、前記エントリのいずれにも格納されていない前記第二の識別子により識別可能な前記ブロックデータを、前記第二の記憶手段から削除する、
請求項５に記載のバッファキャッシュ管理装置。
【請求項７】
前記複写削除手段は、前記複数のアプリケーションの少なくとも何れかが要求した前記ブロックデータの大きさが閾値以上である場合、前記ブロックデータを複数に分割して、前記第二の記憶手段に格納し、
前記優先順位管理情報生成手段は、分割された前記ブロックデータの各々を識別可能な前記第二の識別子と、当該アプリケーションを識別可能な前記第一の識別子と、前記優先順位が示す値と、を関連付けた前記優先順位管理情報を生成する、
請求項１乃至６のいずれかに記載のバッファキャッシュ管理装置。
【請求項８】
請求項１乃至７のいずれかに記載のバッファキャッシュ管理装置と、前記第一及び第二の記憶装置と、を有するバッファキャッシュ管理システム。
【請求項９】
情報処理装置によって、
第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、  複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成し、
前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する、
バッファキャッシュ管理方法。
【請求項１０】
第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成処理と、
前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除処理と、
をコンピュータに実行させる、バッファキャッシュ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、アプリケーションが参照するデータをバッファキャッシュに読み込んだ後に参照する場合に、係るバッファキャッシュへのデータの読み込み、及び、バッファキャッシュからのデータの削除を制御するバッファキャッシュ管理装置等に関する。
【背景技術】
【０００２】
データベース等の大容量のデータは、通常、大容量の記憶装置である磁気ディスク装置等に格納されている。このような大容量の記憶装置は、格納しているデータへのアクセススピード等の入出力性能が高くない。そのため、アプリケーションが係る大容量の記憶装置へ頻繁にアクセスを行うことは、システム運用上、好ましいことではない。したがって、一般的なコンピュータシステムでは、大容量の記憶装置に格納されたデータの一部を、容量は小さいが入出力性能が高い電子メモリ装置等の記憶装置内に設けられたバッファキャッシュに複写する。そして、このようなコンピュータシステムが実行するアプリケーションは、当該バッファキャッシュに複写されたデータにアクセスするように制御する。近年、ビッグデータ等に対する期待が高まっていることもあり、このような、アプリケーションが大容量のデータにアクセスする際の性能を向上させる技術が、益々重要になってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、クライアントから要求されたファイルが、キャッシュ装置中に存在する確率を高めることによって、クライアントからの要求に迅速に応えられるようにした電子ファイリングシステムが開示されている。
【０００４】
また、特許文献２には、階層化された制御装置のそれぞれに、自制御装置の階層レベルを格納するメモリを設け、データを読み出す際に係るメモリ内の前記階層レベルを読み出し、最上位制御装置でなければ自キャッシュにはデータを格納しない制御を行うようにしたディスク装置が開示されている。
【０００５】
さらに、特許文献３には、複数のシーケンシャルデータ管理用構造体とシーケンシャルデータ管理用リストを備え、多種のシーケンシャルデータに対して、１つのキャッシュ管理リストにより制御して、複雑なアルゴリズムになることを防ぐことにより性能を向上させたディスク装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平09-114712号公報
【特許文献２】特開平10-063576号公報
【特許文献３】特開2004-152173号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
大容量の記憶装置から高性能の記憶装置内に設けられたバッファキャッシュに複写されたデータは、所定の容量分のデータが格納された後は、新たなデータが格納される際に、所定のアルゴリズムに基づいて、バッファキャッシュから削除される。例えばＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムを採用したシステムでは、アプリケーションが最後にアクセスしたときからの経過時間が最も長いデータは、今後アクセスされる可能性が低いデータであるとして、優先的に削除される。
【０００８】
このようなシステムにおいて、バッファキャッシュを共有する複数のアプリケーションの何れかが、大容量の記憶装置に格納された大量のデータにアクセスする場合、係る大量のデータがバッファキャッシュに複写されるとともに、それまでバッファキャッシュに格納されていたデータの多くが削除される。したがって、何れかのアプリケーションが、バッファキャッシュから削除されたデータに対して再度アクセスを行う場合、当該データを大容量の記憶装置からバッファキャッシュに複写する処理が再度発生する。このため、このようなアクセスが頻繁に発生するような場合、システム性能が大きく低下することがある。上述した特許文献１乃至３が開示した技術は、この問題を解決することはできない。
【０００９】
本願発明の主たる目的は、この問題を解決した、バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本願発明に係るバッファキャッシュ管理装置は、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成手段と、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除手段と、を有することを特徴とする。
【００１１】
上記目的を達成する他の見地において、本願発明のバッファキャッシュ管理方法は、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成し、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除することを特徴とする。
【００１２】
また、上記目的を達成する更なる見地において、本願発明に係るバッファキャッシュ管理プログラムは、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成処理と、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除処理と、をコンピュータに実行させることを特徴とする。
【００１３】
更に、本発明は、係るバッファキャッシュ管理プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１４】
本願発明は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することを可能とする。
【図面の簡単な説明】
【００１５】
【図１】本願発明の第１の実施形態に係るバッファキャッシュ管理システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るＤＢサーバ装置のハードウェアの構成を示すブロック図である。
【図３Ａ】本願発明の第１の実施形態に係るバッファキャッシュ管理システムの動作を示すフローチャート（１／２）である。
【図３Ｂ】本願発明の第１の実施形態に係るバッファキャッシュ管理システムの動作を示すフローチャート（２／２）である。
【図４】本願発明の第１の実施形態に係る優先順位管理テーブルの構成例を示す図である。
【図５】本願発明の第１の実施形態に係る格納管理テーブルの構成例を示す図である。
【図６】本願発明の第１の実施形態に係る関係定義テーブルの構成を示すブロック図である。
【図７】本願発明の第２の実施形態に係るバッファキャッシュ管理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、第１の実施形態に係るバッファキャッシュ管理システム１の構成を概念的に示すブロック図である。本実施形態に係るバッファキャッシュ管理システム１は、データベース（Ｄａｔａｂａｓｅ（以下、ＤＢと称する））サーバ装置１０、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ（以下、ＡＰと称する））サーバ装置２０乃至３０、及び、外部記憶装置４０を有している。
【００１８】
ＡＰサーバ装置２０乃至３０は、それぞれ、アプリケーション２１乃至３１を実行している。尚、本実施形態に係るバッファキャッシュ管理システム１が有するＡＰサーバ装置は、２台に限定されるわけではない。バッファキャッシュ管理システム１は、３台以上のＡＰサーバ装置を有してもよいし、あるいは、複数のアプリケーションを実行するＡＰサーバ装置を１台有してもよい。尚、ＡＰサーバ装置２０乃至３０は、それぞれ、複数のアプリケーションを実行してもよい。
【００１９】
外部記憶装置４０は、ＤＢサーバ装置１０に接続された、例えば磁気ディスク装置等の大容量の拡張記憶装置である。外部記憶装置４０は、テーブルスペース４００を格納している。テーブルスペース４００は、データページ４０１−１乃至ｎ（ｎは１以上の整数）を包含している。テーブルスペース４００は、アプリケーション２１乃至３１から参照される。アプリケーション２１乃至３１は、データページ４０１−１乃至ｎを単位として、テーブルスペース４００を参照する。尚、外部記憶装置４０は、ＤＢサーバ装置１０の内部に、内蔵ディスクとして実装されてもよい。また、テーブルスペース４００は、主記憶装置１５における、バッファキャッシュ１００とは異なる領域に格納されてもよい。
【００２０】
ＤＢサーバ装置１０は、アプリケーション２１乃至３１から、テーブルスペース４００への参照要求を受信して、要求されたデータページを、アプリケーション２１乃至３１へ送信する。この際、ＤＢサーバ装置１０は、データページ４０１−１乃至ｎの少なくとも何れかを、外部記憶装置４０から読み出して、読み出したデータページ４０１−ｉ（ｉは１乃至ｎのいずれかの整数）を、データページコピー１０１−ｉとして、主記憶装置１５におけるこれらデータページコピーを格納する領域である、バッファキャッシュ１００に格納する。そして、ＤＢサーバ装置１０は、アプリケーション２１乃至３１から、データページ４０１−ｉに対する参照要求を受信した場合、当該データページに対応するデータページコピーをアプリケーション２１乃至３１へ送信する。
【００２１】
ＤＢサーバ装置１０は、ＤＢＭＳ（Ｄａｔａｂａｓｅ  Ｍａｎｅｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）１１を実行している。ＤＢＭＳ１１は、データベースを管理するソフトウェアであり、アプリケーション２１乃至３１からテーブルスペース４００への参照要求に対する処理全般を行う。
【００２２】
ＤＢＭＳ１１は、優先順位管理情報生成処理１２、格納管理情報生成処理１３、及び、複写削除処理１４を実行する。優先順位管理情報生成処理１２、格納管理情報生成処理１３、及び、複写削除処理１４は、専用のＨＷ（ハードウェア）（電子回路）によっても実現することが可能である。すなわち、ＤＢＭＳ１１は、これらの処理と同等の機能を有するＨＷである、優先順位管理情報生成部、格納管理情報生成部、及び、複写削除処理部を備えたＨＷであるバッファキャッシュ管理装置であってもよい。
【００２３】
本実施形態に係るＤＢサーバ装置１０のハードウェアの構成を図２に例示する。以下に説明する実行環境は、本実施形態だけでなく、後述する各実施形態においても採用可能である。
【００２４】
図２に示す通り、ＤＢサーバ装置１０は、ＣＰＵ９０１、ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、ハードディスク９０４（記憶装置）、外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、及び、入出力インタフェース９０９を備え、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。入出力インタフェース９０９は、例えば、キーボード等の入力装置、モニタ等の出力装置を含む。
【００２５】
そして、ＤＢサーバ装置１０は、優先順位管理情報生成処理１２、格納管理情報生成処理１３、及び、複写削除処理１４をコンピュータプログラムとして提供されたのち、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行する。また、係るコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００２６】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００２７】
優先順位管理情報生成処理１２は、優先順位管理テーブル１２０を生成し、生成した優先順位管理テーブル１２０を、ＤＢサーバ装置１０における主記憶装置１５に格納する。優先順位管理テーブル１２０は、バッファキャッシュ１００に格納されたデータページコピー１０１−１乃至ｎの少なくとも何れかについて、バッファキャッシュ１００に残す際の優先順位を示す情報を格納したテーブルである。優先順位管理情報生成処理１２は、係る優先順位を、アプリケーション２１乃至３１を識別可能な識別子と関連付けて生成する。
【００２８】
優先順位管理テーブル１２０の構成例を図４に示す。優先順位管理テーブル１２０は、アプリケーション２１乃至３１に関する優先順位テーブルである、優先順位管理テーブル１２１乃至１２２を包含している。優先順位管理テーブル１２１は、４つの優先順位管理テーブルエントリ１２１１乃至１２１４を包含している。優先順位管理テーブル１２２は、４つの優先順位管理テーブルエントリ１２２１乃至１２２４を包含している。
本実施形態では、優先順位管理テーブル１２１乃至１２２が包含するエントリ数を４としているため、ＤＢＭＳ１１がアプリケーション毎に管理対象とするデータページの個数は最大で４個までである。そして、ＤＢＭＳ１１は、優先順位管理テーブル１２１乃至１２２に登録されていないデータページに対応するデータページコピーがバッファキャッシュ１００に格納されている場合、当該データページコピーをバッファキャッシュ１００から削除する対象とする。尚、優先順位管理テーブル１２１乃至１２２が包含するエントリ数は４以外であってもよい。優先順位管理情報生成処理１２は、テーブルスペース４００を参照するアプリケーションの数の分だけ、この優先順位管理テーブルを生成する。
【００２９】
これらの優先順位管理テーブルエントリは、それぞれ、アプリケーション２１あるいは３１が参照するデータページ４０１−１乃至ｎの何れかに関して、テーブルスペース４００における開始位置（開始アドレス）及び終了位置（終了アドレス）を示す値を格納している。係る優先順位管理テーブルエントリは、バッファキャッシュ１００における、当該データページに対応するデータページコピーに関する先頭位置（先頭アドレス）を示す値を格納している。係る優先順位管理テーブルエントリは、また、自エントリに隣接するＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）側のエントリを識別可能な識別子、及び、自エントリに隣接するＬＲＵ側のエントリを識別可能な識別子を格納している。すなわち、優先順位管理情報生成処理１２は、各優先順位管理テーブルエントリにおける、ＭＲＵ側及びＬＲＵ側の隣接エントリを識別可能な識別子を更新することにより、ＬＲＵアルゴリズムにおける各優先順位管理テーブルエントリに関する並び順を更新する。
【００３０】
図４に示す例の場合、優先順位管理テーブルエントリ１２１１乃至１２１４は、それぞれ、データページ４０１−１、４０２−２、４０１−４、及び、４０１−３に関する情報を格納している。同様に、優先順位管理テーブルエントリ１２２１乃至１２２２は、それぞれ、データページ４０１−３、及び、４０２−２に関する情報を格納している。尚、優先順位管理テーブルエントリ１２２３及び１２２４は、未使用である。
【００３１】
優先順位管理テーブル１２１に関しては、最もＭＲＵ側にあるエントリは、優先順位管理テーブルエントリ１２１１であり、最もＬＲＵ側にあるエントリは、優先順位管理テーブルエントリ１２１４である。この場合、優先順位管理情報生成処理１２は、優先順位管理テーブルエントリ１２１１に関して、ＭＲＵ側の隣接エントリには何も格納せず、ＬＲＵ側の隣接エントリには、優先順位管理テーブルエントリ１２１２を識別可能な識別子を格納する。優先順位管理情報生成処理１２は、同様に、優先順位管理テーブルエントリ１２１２に関して、ＭＲＵ側の隣接エントリには、優先順位管理テーブルエントリ１２１１を識別可能な識別子を格納し、ＬＲＵ側の隣接エントリには、優先順位管理テーブルエントリ１２１３を識別可能な識別子を格納する。優先順位管理情報生成処理１２は、同様に、優先順位管理テーブルエントリ１２１４に関して、ＭＲＵ側の隣接エントリには、優先順位管理テーブルエントリ１２１３を識別可能な識別子を格納し、ＬＲＵ側の隣接エントリには、何も格納しない。
【００３２】
優先順位管理テーブル１２０が図４に示す状態であるときに、例えば、アプリケーション２１がデータページ４０１−４を参照する要求を発行した場合、優先順位管理情報生成処理１２は、優先順位管理テーブルエントリ１２１３をＭＲＵ側の先頭に移す。優先順位管理情報生成処理１２は、それに伴い、優先順位管理テーブルエントリ１２１１及び１２１２を、それぞれ、ＬＲＵ側に１つずつ移す。これにより、優先順位管理テーブルエントリ１２１１乃至１２１４に関する並び順は、ＭＲＵ側から、優先順位管理テーブルエントリ１２１３、１２１１、１２１２、１２１４となる。
【００３３】
優先順位管理テーブル１２０が図４に示す状態であるときに、例えば、アプリケーション３１がデータページ４０１−１を参照する要求を発行した場合、優先順位管理情報生成処理１２は、未使用である優先順位管理テーブルエントリ１２２３に、データページ４０１−１に関する情報を格納する。そして、優先順位管理情報生成処理１２は、優先順位管理テーブルエントリ１２２３をＭＲＵ側の先頭に移す。優先順位管理情報生成処理１２は、それに伴い、優先順位管理テーブルエントリ１２２１及び１２２２を、それぞれ、ＬＲＵ側に１つずつ移す。これにより、優先順位管理テーブルエントリ１２２１乃至１２１４に関する並び順は、ＭＲＵ側から、優先順位管理テーブルエントリ１２２３、１２２１、１２２２、１２２４となる。
【００３４】
優先順位管理テーブル１２０が図４に示す状態であるときに、例えば、アプリケーション２１がデータページ４０１−５を参照する要求を発行した場合、優先順位管理情報生成処理１２は、ＬＲＵ側の最後尾に位置する優先順位管理テーブルエントリ１２１４を、そのデータページおよびデータページコピーの情報に対応する格納情報テーブルエントリの優先順位管理テーブル１２０への登録状況のところに当該の優先順位管理テーブルについては使用終了であることを記録した上、内容をクリアして未使用のエントリにしたのち、優先順位管理テーブルエントリ１２１４に、データページ４０１−５に関する情報を登録する。そして、優先順位管理情報生成処理１２は、優先順位管理テーブルエントリ１２１４をＭＲＵ側の先頭に移す。優先順位管理情報生成処理１２は、それに伴い、優先順位管理テーブルエントリ１２１１及び１２１３を、それぞれ、ＬＲＵ側に１つずつ移す。これにより、優先順位管理テーブルエントリ１２１１乃至１２１４に関する並び順は、ＭＲＵ側から、優先順位管理テーブルエントリ１２１４、１２１１、１２１２、１２１３となる。
【００３５】
優先順位管理情報生成処理１２は、格納管理情報生成処理１３が生成した格納管理テーブルエントリの値を参照し、個々のデータページの開始位置、終了位置、及び、データページコピーの先頭位置を、優先順位管理テーブルエントリに格納する。
【００３６】
格納管理情報生成処理１３は、格納管理テーブル１３０を生成し、生成した格納管理テーブル１３０を、ＤＢサーバ装置１０における主記憶装置１５に格納する。格納管理テーブル１３０は、バッファキャッシュ１００に格納されたデータページコピーを管理する情報を格納したテーブルである。
【００３７】
格納管理テーブル１３０の構成例を図５に示す。格納管理テーブル１３０は、格納管理テーブルエントリ１３１乃至１３４等を包含している。格納管理情報生成処理１３は、これらの格納管理テーブルエントリを、バッファキャッシュ１００に格納されたデータページコピーごとに生成する。したがって、係る格納管理テーブルエントリは、バッファキャッシュ１００に格納されたデータページコピーの個数分存在する。
【００３８】
これらの格納管理テーブルエントリは、それぞれ、データページコピー１０１−ｉに関して、優先順位管理テーブル１２０への登録状況を示す値を格納している。格納管理情報生成処理１３は、係る登録状況を示す値として、例えば、データページコピー１０１−ｉに関する情報を格納している、優先順位管理テーブルエントリを識別可能な識別子を格納する。
【００３９】
係る格納管理テーブルエントリは、データページコピー１０１−ｉに対応するデータページ４０１−ｉに関する、テーブルスペース４００における開始位置（開始アドレス）及び終了位置（終了アドレス）を示す値を格納している。係る格納管理テーブルエントリは、また、バッファキャッシュ１００における、データページコピー１０１−ｉに関する先頭位置（先頭アドレス）を示す値を格納している。
【００４０】
格納管理情報生成処理１３は、複写削除処理１４が、テーブルスペース４００から、データページ４０１−ｉを、データページコピー１０１−ｉとして、バッファキャッシュ１００に複写した際に、データページコピー１０１−ｉに関する格納管理テーブルエントリを生成する。優先順位管理情報生成処理１２は、当該の格納情報テーブルエントリを参照して、優先順位管理テーブルエントリを登録する。格納管理情報生成処理１３は、複写削除処理１４が、バッファキャッシュ１００から、データページコピー１０１−ｉを削除した際に、データページコピー１０１−ｉに関する格納管理テーブルエントリを削除する。
【００４１】
複写削除処理１４は、アプリケーション２１乃至３１の何れかが、テーブルスペース４００への参照要求を発行した際に、優先順位管理テーブル１２０、及び、格納管理テーブル１３０を参照する。複写削除処理１４は、当該参照要求が指定するデータページ４０１−ｉに対応するデータページコピー１０１−ｉが、格納管理テーブル１３０に登録されていない場合、データページ４０１−ｉを、テーブルスペース４００から読み出す。そして、複写削除処理１４は、読み出したデータページ４０１−ｉを、データページコピー１０１−ｉとして、バッファキャッシュ１００に格納する。
【００４２】
複写削除処理１４は、また、ＤＢＭＳ１１が係る参照要求に対する処理を行った結果、格納管理テーブル１３０における何れかの格納管理テーブルエントリが情報を格納しているデータページコピーに関する情報が、優先順位管理テーブル１２０に登録されていない状態になった場合、当該データページコピーを、バッファキャッシュ１００から削除する。複写削除処理１４は、当該格納管理テーブルエントリにおける優先順位管理テーブル１２０への登録状況が示す値により、当該データページコピーに関する情報が、優先順位管理テーブル１２０に登録されていないことを検出する。
【００４３】
複写削除処理１４は、アプリケーションが参照するデータページ４０１−１乃至ｎの少なくともいずれかのデータサイズが閾値以上である場合、当該データページを複数に分割して、バッファキャッシュ１００に格納する。複写削除処理１４が例えばデータサイズが閾値以上であるデータページを２つに分割した場合は、優先順位管理情報生成処理１２は、２つの優先順位管理テーブルエントリを使用する。この場合、優先順位管理情報生成処理１２は、格納管理情報生成処理１３が生成した格納管理テーブルエントリの値を参照し、個々の分割されたデータページの開始位置、終了位置、及び、データページコピーの先頭位置を、優先順位管理テーブルエントリに格納する。そして、優先順位管理情報生成処理１２は、係る２つの優先順位管理テーブルエントリを、ＭＲＵ側の先頭及び２番目に移す。その後、優先順位管理情報生成処理１２は、分割したデータページを、それぞれ個別のデータページとして処理する。
【００４４】
ＤＢサーバ装置１０は、主記憶装置１５に、関係定義テーブル１４０を記憶している。関係定義テーブル１４０は、バッファキャッシュ管理システム１に関する動作環境を定義する情報であり、ＤＢＭＳ１１、あるいは、システム管理者等により生成される。
【００４５】
関係定義テーブル１４０の構成例を図６に示す。関係定義テーブル１４０は、アクセス元であるアプリケーションを識別可能な識別子と、テーブルスペースを識別可能な識別子と、格納管理テーブルを識別可能な識別子と、優先順位管理テーブルを識別可能な識別子と、を関連付けたレコードを包含している。尚、関係定義テーブル１４０は、これらの識別子を、レコード形式ではなく、配列等により関連付けてもよい。図６に示す例の場合、関係定義テーブル１４０は、例えば、アプリケーション２１がテーブルスペース４００にアクセスする場合、格納管理テーブル１３０及び優先順位管理テーブル１２１に基づきアクセス処理が行われることを示している。ＤＢＭＳ１１は、関係定義テーブル１４０が定義する動作環境に基づいて、係るアクセス処理を行う。
【００４６】
次に図３Ａ乃至３Ｂのフローチャートを参照して、本実施形態に係るバッファキャッシュ管理システム１の動作（処理）について詳細に説明する。
【００４７】
ＤＢＭＳ１１は、アプリケーション２１乃至３１のいずれかから、テーブルスペース４００への参照要求を受信する（ステップＳ１０１）。ＤＢＭＳ１１は、関係定義テーブル１４０を参照することにより、当該参照要求が使用する優先順位管理テーブル、及び、格納管理テーブルを決定する（ステップＳ１０２）。優先順位管理情報生成処理１２は、当該参照要求が要求するデータページが、優先順位管理テーブル１２０に登録されているか否かを確認する（ステップＳ１０３）。
【００４８】
当該データページが優先順位管理テーブル１２０に登録されている場合（ステップＳ１０４でＹｅｓ）、優先順位管理情報生成処理１２は、当該データページに関する優先順位管理テーブルエントリを、ＭＲＵ側の先頭に移し、優先順位管理テーブル１２０を更新する（ステップＳ１０５）。ＤＢＭＳ１１は、参照要求元であるアプリケーションに、バッファキャッシュ１００におけるデータページコピーのデータを送信し（ステップＳ１０６）、全体の処理は終了する。
【００４９】
当該データページが優先順位管理テーブル１２０に登録されていない場合（ステップＳ１０４でＮｏ）、複写削除処理１４は、当該データページが、格納管理テーブル１３０に登録されているか否かを確認する（ステップＳ１０７）。当該データページが、格納管理テーブル１３０に登録されていない場合（ステップＳ１０８でＮｏ）、複写削除処理１４は、当該データページを、テーブルスペース４００からバッファキャッシュ１００へ複写する（ステップＳ１０９）。格納管理情報生成処理１３は、格納管理テーブル１３０に、当該データページに関する情報を登録する（ステップＳ１１０）。当該データページが、格納管理テーブル１３０に登録されている場合（ステップＳ１０８でＹｅｓ）、処理はステップＳ１１１へ進む。
【００５０】
優先順位管理情報生成処理１２は、優先順位管理テーブル１２０において、未使用のエントリがあるか否かを確認する（ステップＳ１１１）。未使用のエントリがある場合（ステップＳ１１２でＹｅｓ）、優先順位管理情報生成処理１２は、当該データページに関する情報を未使用エントリに登録し、格納管理テーブル１３０の当該データページに関するエントリの優先順位管理テーブル１２０への登録状況に使用中であることを記録し、当該エントリをＭＲＵ側の先頭に移し（ステップＳ１１８）、処理はステップＳ１０６へ進む。
【００５１】
未使用のエントリがない場合（ステップＳ１１２でＮｏ）、優先順位管理情報生成処理１２は、格納管理テーブル１３０を参照し、ＬＲＵ側の最後尾に位置するエントリに登録されているデータページが、他のアプリケーションに関する優先順位管理テーブルに登録されているか否かを確認する（ステップＳ１１３）。
【００５２】
係るデータページが登録されている場合（ステップＳ１１４でＹｅｓ）、優先順位管理情報生成処理１２は、優先順位管理テーブル１２０におけるＬＲＵ側の最後尾のエントリを、そのデータページおよびデータページコピーの情報に対応する格納情報テーブルエントリの優先順位管理テーブル１２０への登録状況に使用終了であることを記録した上、内容をクリアして、未使用のエントリとし（ステップＳ１１７）、前述の（ステップＳ１１０の）データページに関する情報を未使用エントリに登録し、当該エントリをＭＲＵ側の先頭に移す（ステップＳ１１８）。
【００５３】
係るデータページが登録されていない場合（ステップＳ１１４でＮｏ）、複写削除処理１４は、当該データページに対応するデータページコピーを、バッファキャッシュ１００から削除する（ステップＳ１１５）。格納管理情報生成処理１３は、格納管理テーブル１３０における、当該データページに関するエントリを削除し（ステップＳ１１６）、処理はステップＳ１１７へ進む。
【００５４】
本実施形態に係るバッファキャッシュ管理システム１は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することができる。その理由は、優先順位管理情報生成処理１２が、アプリケーションごとにデータページに関してバッファキャッシュ１００に残す際の優先順位を管理する優先順位管理テーブル１２０を生成し、複写削除処理１４が、優先順位管理テーブル１２０と格納管理テーブル１３０が示す内容に基づき、バッファキャッシュ１００に登録されたデータページコピーを削除するからである。
【００５５】
複数のアプリケーションが同一のテーブルスペースを参照するようなシステムにおいて、特定のアプリケーションが大量のデータページを参照した場合、通常、他のアプリケーションが過去に参照してバッファキャッシュに格納していたデータページの多くが、バッファキャッシュから削除される。この場合、係る他のアプリケーションは、バッファキャッシュから削除されたデータページを再度バッファキャッシュに読み込む必要があるため、システム性能が低下することになる。
【００５６】
これに対して、本実施形態に係るバッファキャッシュ管理システム１では、優先順位管理情報生成処理１２が、アプリケーションごとに、参照するデータページに関してバッファキャッシュ１００に残す際の優先順位を管理する優先順位管理テーブル１２０を生成する。そして、複写削除処理１４は、優先順位管理テーブル１２０および格納管理テーブル１３０を参照し、何れのアプリケーションに関しても係る優先順位が低く、あるいは優先順位が無く、削除しても問題のないデータページを、バッファキャッシュ１００から削除する。
【００５７】
本実施形態に係る優先順位管理テーブル１２０は、アプリケーションごとに、優先順位管理テーブルエントリを４つ備えている。優先順位管理テーブルエントリに登録されたデータページは、各アプリケーションに関する、優先順位が１位から４位までのデータページであり、当該アプリケーションから再度参照される可能性が高いデータページである。複写削除処理１４は、何れかのアプリケーションに関して優先順位管理テーブル１２０に登録されているデータページについては、バッファキャッシュ１００から削除しない。複写削除処理１４は、ＬＲＵアルゴリズムにより、優先順位管理テーブル１２０に未登録となった（すなわち、優先順位が５位以下となった）データページを、バッファキャッシュ１００から削除する対象とする。したがって、本実施形態に係るバッファキャッシュ管理システム１は、各アプリケーションが参照する可能性が高いデータページがバッファキャッシュ１００から削除されることを回避する。これにより、バッファキャッシュ管理システム１は、特定のアプリケーションが大量のデータページを参照するような場合であっても、テーブルスペースにおけるデータへのアクセス性能の低下を回避できる。
【００５８】
尚、本実施形態では、優先順位管理テーブル１２０は、各エントリがＭＲＵ側及びＬＲＵ側の隣接エントリに関するポインタ等の識別子を格納することにより、エントリ間の優先順位を示しているが、別の方法によりエントリ間の優先順位を示すようにしてもよい。例えば、優先順位管理テーブル１２０は、オフセットあるいは配列等を用いて、係る優先順位を示すようにしてもよい。
【００５９】
また、本実施形態に係る優先順位管理情報生成処理１２は、アプリケーションがデータページを参照したタイミングに関してＬＲＵアルゴリズムを適用することにより係る優先順位を決定しているが、別の基準に基づき、優先順位を決定してもよい。例えば、優先順位管理情報生成処理１２は、アプリケーションがデータページを参照した回数が多い順番に基づいて、係る優先順位を決定してもよい。あるいは、優先順位管理情報生成処理１２は、データページがバッファキャッシュに複写されたタイミングに関してＬＲＵアルゴリズムを適用することにより係る優先順位を決定してもよい。この場合は、優先順位管理情報生成処理１２は、何れかのデータページがバッファキャッシュに格納されるたびに、優先順位管理テーブル１２０を更新する。
【００６０】
さらに、本実施形態に係る複写削除処理１４は、アプリケーションが参照するデータページのデータサイズが閾値以上である場合は、複数のデータページに分割して、バッファキャッシュ１００に複写する。優先順位管理テーブル１２０は、分割後のデータページを管理する。例えば、アプリケーションが、データサイズが大きいデータページにおける一部の領域のみを頻繁に参照するような場合に、このようなデータページ全体がバッファキャッシュ１００に格納され続けることにより、主記憶装置１５に関する利用効率が低下することがある。優先順位管理情報生成処理１２は、データサイズが大きいデータページを分割して管理することにより、アプリケーションからあまり参照されない部分のデータがバッファキャッシュ１００に格納され続けることを防止する。これにより、本実施形態に係るバッファキャッシュ管理システム１は、主記憶装置１５に関する利用効率が低下することを回避できる。
【００６１】
＜第２の実施形態＞
図７は第２の実施形態のバッファキャッシュ管理装置５０の構成を概念的に示すブロック図である。
【００６２】
本実施形態のバッファキャッシュ管理装置５０は、優先順位管理情報生成部５１、及び、複写削除部５２を備えている。
【００６３】
本実施形態では、第１の記憶部８０に格納されたデータ８００の一部であるブロックデータ８０１−１乃至ｎは、第２の記憶部７０に、ブロックデータ７００−１乃至ｎとしてバッファキャッシュ管理装置５０により複写される。そして、複数（例えば２つ）のアプリケーション６０乃至６１は、第２の記憶部７０に複写されたブロックデータ７００−１乃至ｎを参照する。
【００６４】
優先順位管理情報生成部５１は、アプリケーション６０あるいは６１に関してブロックデータ８０１−１乃至ｎを第２の記憶部７０に残す際の優先順位が示す値を、所定の基準に基づき決定する。優先順位管理情報生成部５１は、決定した係る優先順位と、当該アプリケーションを識別可能な第１の識別子と、当該ブロックデータを識別可能な第２の識別子と、を関連付けた優先順位管理情報５１０を生成する。
【００６５】
複写削除部５２は、アプリケーション６０あるいは６１がデータ８００へのアクセス要求を行う際に、優先順位管理情報５１０を参照する。そして、複写削除部５２は、第２の記憶部７０に複写済であるブロックデータ７００−１乃至ｎの中で、係る優先順位が示す値が所定の条件を満たすブロックデータを、第２の記憶部７０から削除する。
【００６６】
本実施形態に係るバッファキャッシュ管理装置５０は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することができる。その理由は、優先順位管理情報生成部５１が、アプリケーションごとにデータページに関して第２の記憶部７０に残す際の優先順位を管理する優先順位管理情報５１０を生成し、複写削除部５２が、優先順位管理情報５１０が示す内容に基づき、第２の記憶部７０に登録されたブロックデータを削除するからである。
【００６７】
尚、優先順位管理情報生成部５１、及び、複写削除部５２は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。この場合のハードウェア環境は、図２に示したＤＢサーバ装置１０と同様である。
【００６８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６９】
１    バッファキャッシュ管理システム
１０    ＤＢサーバ装置
１１    ＤＢＭＳ
１２    優先順位管理情報生成処理
１３    格納管理情報生成処理
１４    複写削除処理
１５    主記憶装置
１００    バッファキャッシュ
１０１−１乃至ｎ    データページコピー
１２０    優先順位管理テーブル
１２１乃至１２２    優先順位管理テーブル
１２１１乃至１２１４    優先順位管理テーブルエントリ
１２２１乃至１２２４    優先順位管理テーブルエントリ
１３０    格納管理テーブル
１３１乃至１３４    格納管理テーブルエントリ
１４０    関係定義テーブル
２０乃至３０    ＡＰサーバ装置
２１乃至３１    アプリケーション
４０    外部記憶装置
４００    テーブルスペース
４０１−１乃至ｎ    データページ
５０    バッファキャッシュ管理装置
５１    優先順位管理情報生成部
５１０    優先順位管理情報
５２    複写削除部
６０乃至６１    アプリケーション
７０    第２の記憶部
７００−１乃至ｎ    ブロックデータ
８０    第１の記憶部
８００    データ
８０１−１乃至ｎ    ブロックデータ
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2015172897.tif 000003
【図２】
2015172897.tif 000004
【図３Ａ】
2015172897.tif 000005
【図３Ｂ】
2015172897.tif 000006
【図４】
2015172897.tif 000007
【図５】
2015172897.tif 000008
【図６】
2015172897.tif 000009
【図７】
2015172897.tif 000010