JP6311370B2 - バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム - Google Patents

バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム Download PDF

Info

Publication number
JP6311370B2
JP6311370B2 JP2014049094A JP2014049094A JP6311370B2 JP 6311370 B2 JP6311370 B2 JP 6311370B2 JP 2014049094 A JP2014049094 A JP 2014049094A JP 2014049094 A JP2014049094 A JP 2014049094A JP 6311370 B2 JP6311370 B2 JP 6311370B2
Authority
JP
Japan
Prior art keywords
priority
block data
management information
storage means
buffer cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014049094A
Other languages
English (en)
Other versions
JP2015172897A (ja
Inventor
浩平 武本
浩平 武本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014049094A priority Critical patent/JP6311370B2/ja
Publication of JP2015172897A publication Critical patent/JP2015172897A/ja
Application granted granted Critical
Publication of JP6311370B2 publication Critical patent/JP6311370B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願発明は、アプリケーションが参照するデータをバッファキャッシュに読み込んだ後に参照する場合に、係るバッファキャッシュへのデータの読み込み、及び、バッファキャッシュからのデータの削除を制御するバッファキャッシュ管理装置等に関する。
データベース等の大容量のデータは、通常、大容量の記憶装置である磁気ディスク装置等に格納されている。このような大容量の記憶装置は、格納しているデータへのアクセススピード等の入出力性能が高くない。そのため、アプリケーションが係る大容量の記憶装置へ頻繁にアクセスを行うことは、システム運用上、好ましいことではない。したがって、一般的なコンピュータシステムでは、大容量の記憶装置に格納されたデータの一部を、容量は小さいが入出力性能が高い電子メモリ装置等の記憶装置内に設けられたバッファキャッシュに複写する。そして、このようなコンピュータシステムが実行するアプリケーションは、当該バッファキャッシュに複写されたデータにアクセスするように制御する。近年、ビッグデータ等に対する期待が高まっていることもあり、このような、アプリケーションが大容量のデータにアクセスする際の性能を向上させる技術が、益々重要になってきている。
このような技術に関連する技術として、特許文献1には、クライアントから要求されたファイルが、キャッシュ装置中に存在する確率を高めることによって、クライアントからの要求に迅速に応えられるようにした電子ファイリングシステムが開示されている。
また、特許文献2には、階層化された制御装置のそれぞれに、自制御装置の階層レベルを格納するメモリを設け、データを読み出す際に係るメモリ内の前記階層レベルを読み出し、最上位制御装置でなければ自キャッシュにはデータを格納しない制御を行うようにしたディスク装置が開示されている。
さらに、特許文献3には、複数のシーケンシャルデータ管理用構造体とシーケンシャルデータ管理用リストを備え、多種のシーケンシャルデータに対して、1つのキャッシュ管理リストにより制御して、複雑なアルゴリズムになることを防ぐことにより性能を向上させたディスク装置が開示されている。
特開平09-114712号公報 特開平10-063576号公報 特開2004-152173号公報
大容量の記憶装置から高性能の記憶装置内に設けられたバッファキャッシュに複写されたデータは、所定の容量分のデータが格納された後は、新たなデータが格納される際に、所定のアルゴリズムに基づいて、バッファキャッシュから削除される。例えばLRU(Least Recently Used)アルゴリズムを採用したシステムでは、アプリケーションが最後にアクセスしたときからの経過時間が最も長いデータは、今後アクセスされる可能性が低いデータであるとして、優先的に削除される。
このようなシステムにおいて、バッファキャッシュを共有する複数のアプリケーションの何れかが、大容量の記憶装置に格納された大量のデータにアクセスする場合、係る大量のデータがバッファキャッシュに複写されるとともに、それまでバッファキャッシュに格納されていたデータの多くが削除される。したがって、何れかのアプリケーションが、バッファキャッシュから削除されたデータに対して再度アクセスを行う場合、当該データを大容量の記憶装置からバッファキャッシュに複写する処理が再度発生する。このため、このようなアクセスが頻繁に発生するような場合、システム性能が大きく低下することがある。上述した特許文献1乃至3が開示した技術は、この問題を解決することはできない。
本願発明の主たる目的は、この問題を解決した、バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラムを提供することである。
本願発明に係るバッファキャッシュ管理装置は、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成手段と、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除手段と、を有することを特徴とする。
上記目的を達成する他の見地において、本願発明のバッファキャッシュ管理方法は、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成し、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除することを特徴とする。
また、上記目的を達成する更なる見地において、本願発明に係るバッファキャッシュ管理プログラムは、第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた優先順位管理情報を生成する優先順位管理情報生成処理と、前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位が示す値が所定の条件を満たすブロックデータを、前記第二の記憶手段から削除する複写削除処理と、をコンピュータに実行させることを特徴とする。
更に、本発明は、係るバッファキャッシュ管理プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
本願発明は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することを可能とする。
本願発明の第1の実施形態に係るバッファキャッシュ管理システムの構成を示すブロック図である。 本願発明の第1の実施形態に係るDBサーバ装置のハードウェアの構成を示すブロック図である。 本願発明の第1の実施形態に係るバッファキャッシュ管理システムの動作を示すフローチャート(1/2)である。 本願発明の第1の実施形態に係るバッファキャッシュ管理システムの動作を示すフローチャート(2/2)である。 本願発明の第1の実施形態に係る優先順位管理テーブルの構成例を示す図である。 本願発明の第1の実施形態に係る格納管理テーブルの構成例を示す図である。 本願発明の第1の実施形態に係る関係定義テーブルの構成を示すブロック図である。 本願発明の第2の実施形態に係るバッファキャッシュ管理装置の構成を示すブロック図である。
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、第1の実施形態に係るバッファキャッシュ管理システム1の構成を概念的に示すブロック図である。本実施形態に係るバッファキャッシュ管理システム1は、データベース(Database(以下、DBと称する))サーバ装置10、アプリケーション(Application(以下、APと称する))サーバ装置20乃至30、及び、外部記憶装置40を有している。
APサーバ装置20乃至30は、それぞれ、アプリケーション21乃至31を実行している。尚、本実施形態に係るバッファキャッシュ管理システム1が有するAPサーバ装置は、2台に限定されるわけではない。バッファキャッシュ管理システム1は、3台以上のAPサーバ装置を有してもよいし、あるいは、複数のアプリケーションを実行するAPサーバ装置を1台有してもよい。尚、APサーバ装置20乃至30は、それぞれ、複数のアプリケーションを実行してもよい。
外部記憶装置40は、DBサーバ装置10に接続された、例えば磁気ディスク装置等の大容量の拡張記憶装置である。外部記憶装置40は、テーブルスペース400を格納している。テーブルスペース400は、データページ401−1乃至n(nは1以上の整数)を包含している。テーブルスペース400は、アプリケーション21乃至31から参照される。アプリケーション21乃至31は、データページ401−1乃至nを単位として、テーブルスペース400を参照する。尚、外部記憶装置40は、DBサーバ装置10の内部に、内蔵ディスクとして実装されてもよい。また、テーブルスペース400は、主記憶装置15における、バッファキャッシュ100とは異なる領域に格納されてもよい。
DBサーバ装置10は、アプリケーション21乃至31から、テーブルスペース400への参照要求を受信して、要求されたデータページを、アプリケーション21乃至31へ送信する。この際、DBサーバ装置10は、データページ401−1乃至nの少なくとも何れかを、外部記憶装置40から読み出して、読み出したデータページ401−i(iは1乃至nのいずれかの整数)を、データページコピー101−iとして、主記憶装置15におけるこれらデータページコピーを格納する領域である、バッファキャッシュ100に格納する。そして、DBサーバ装置10は、アプリケーション21乃至31から、データページ401−iに対する参照要求を受信した場合、当該データページに対応するデータページコピーをアプリケーション21乃至31へ送信する。
DBサーバ装置10は、DBMS(Database Manegement System)11を実行している。DBMS11は、データベースを管理するソフトウェアであり、アプリケーション21乃至31からテーブルスペース400への参照要求に対する処理全般を行う。
DBMS11は、優先順位管理情報生成処理12、格納管理情報生成処理13、及び、複写削除処理14を実行する。優先順位管理情報生成処理12、格納管理情報生成処理13、及び、複写削除処理14は、専用のHW(ハードウェア)(電子回路)によっても実現することが可能である。すなわち、DBMS11は、これらの処理と同等の機能を有するHWである、優先順位管理情報生成部、格納管理情報生成部、及び、複写削除処理部を備えたHWであるバッファキャッシュ管理装置であってもよい。
本実施形態に係るDBサーバ装置10のハードウェアの構成を図2に例示する。以下に説明する実行環境は、本実施形態だけでなく、後述する各実施形態においても採用可能である。
図2に示す通り、DBサーバ装置10は、CPU901、ROM(Read_Only_Memory)902、RAM(Random_Access_Memory)903、ハードディスク904(記憶装置)、外部装置との通信インタフェース905(Interface:以降、「I/F」と称する)、CD−ROM(Compact_Disc_Read_Only_Memory)等の記憶媒体907に格納されたデータを読み書き可能なリーダライタ908、及び、入出力インタフェース909を備え、これらの構成がバス906(通信線)を介して接続された一般的なコンピュータである。入出力インタフェース909は、例えば、キーボード等の入力装置、モニタ等の出力装置を含む。
そして、DBサーバ装置10は、優先順位管理情報生成処理12、格納管理情報生成処理13、及び、複写削除処理14をコンピュータプログラムとして提供されたのち、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行する。また、係るコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ(RAM903)またはハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、CD−ROM等の各種記憶媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体907によって構成されると捉えることができる。
優先順位管理情報生成処理12は、優先順位管理テーブル120を生成し、生成した優先順位管理テーブル120を、DBサーバ装置10における主記憶装置15に格納する。優先順位管理テーブル120は、バッファキャッシュ100に格納されたデータページコピー101−1乃至nの少なくとも何れかについて、バッファキャッシュ100に残す際の優先順位を示す情報を格納したテーブルである。優先順位管理情報生成処理12は、係る優先順位を、アプリケーション21乃至31を識別可能な識別子と関連付けて生成する。
優先順位管理テーブル120の構成例を図4に示す。優先順位管理テーブル120は、アプリケーション21乃至31に関する優先順位テーブルである、優先順位管理テーブル121乃至122を包含している。優先順位管理テーブル121は、4つの優先順位管理テーブルエントリ1211乃至1214を包含している。優先順位管理テーブル122は、4つの優先順位管理テーブルエントリ1221乃至1224を包含している。
本実施形態では、優先順位管理テーブル121乃至122が包含するエントリ数を4としているため、DBMS11がアプリケーション毎に管理対象とするデータページの個数は最大で4個までである。そして、DBMS11は、優先順位管理テーブル121乃至122に登録されていないデータページに対応するデータページコピーがバッファキャッシュ100に格納されている場合、当該データページコピーをバッファキャッシュ100から削除する対象とする。尚、優先順位管理テーブル121乃至122が包含するエントリ数は4以外であってもよい。優先順位管理情報生成処理12は、テーブルスペース400を参照するアプリケーションの数の分だけ、この優先順位管理テーブルを生成する。
これらの優先順位管理テーブルエントリは、それぞれ、アプリケーション21あるいは31が参照するデータページ401−1乃至nの何れかに関して、テーブルスペース400における開始位置(開始アドレス)及び終了位置(終了アドレス)を示す値を格納している。係る優先順位管理テーブルエントリは、バッファキャッシュ100における、当該データページに対応するデータページコピーに関する先頭位置(先頭アドレス)を示す値を格納している。係る優先順位管理テーブルエントリは、また、自エントリに隣接するMRU(Most Recently Used)側のエントリを識別可能な識別子、及び、自エントリに隣接するLRU側のエントリを識別可能な識別子を格納している。すなわち、優先順位管理情報生成処理12は、各優先順位管理テーブルエントリにおける、MRU側及びLRU側の隣接エントリを識別可能な識別子を更新することにより、LRUアルゴリズムにおける各優先順位管理テーブルエントリに関する並び順を更新する。
図4に示す例の場合、優先順位管理テーブルエントリ1211乃至1214は、それぞれ、データページ401−1、402−2、401−4、及び、401−3に関する情報を格納している。同様に、優先順位管理テーブルエントリ1221乃至1222は、それぞれ、データページ401−3、及び、402−2に関する情報を格納している。尚、優先順位管理テーブルエントリ1223及び1224は、未使用である。
優先順位管理テーブル121に関しては、最もMRU側にあるエントリは、優先順位管理テーブルエントリ1211であり、最もLRU側にあるエントリは、優先順位管理テーブルエントリ1214である。この場合、優先順位管理情報生成処理12は、優先順位管理テーブルエントリ1211に関して、MRU側の隣接エントリには何も格納せず、LRU側の隣接エントリには、優先順位管理テーブルエントリ1212を識別可能な識別子を格納する。優先順位管理情報生成処理12は、同様に、優先順位管理テーブルエントリ1212に関して、MRU側の隣接エントリには、優先順位管理テーブルエントリ1211を識別可能な識別子を格納し、LRU側の隣接エントリには、優先順位管理テーブルエントリ1213を識別可能な識別子を格納する。優先順位管理情報生成処理12は、同様に、優先順位管理テーブルエントリ1214に関して、MRU側の隣接エントリには、優先順位管理テーブルエントリ1213を識別可能な識別子を格納し、LRU側の隣接エントリには、何も格納しない。
優先順位管理テーブル120が図4に示す状態であるときに、例えば、アプリケーション21がデータページ401−4を参照する要求を発行した場合、優先順位管理情報生成処理12は、優先順位管理テーブルエントリ1213をMRU側の先頭に移す。優先順位管理情報生成処理12は、それに伴い、優先順位管理テーブルエントリ1211及び1212を、それぞれ、LRU側に1つずつ移す。これにより、優先順位管理テーブルエントリ1211乃至1214に関する並び順は、MRU側から、優先順位管理テーブルエントリ1213、1211、1212、1214となる。
優先順位管理テーブル120が図4に示す状態であるときに、例えば、アプリケーション31がデータページ401−1を参照する要求を発行した場合、優先順位管理情報生成処理12は、未使用である優先順位管理テーブルエントリ1223に、データページ401−1に関する情報を格納する。そして、優先順位管理情報生成処理12は、優先順位管理テーブルエントリ1223をMRU側の先頭に移す。優先順位管理情報生成処理12は、それに伴い、優先順位管理テーブルエントリ1221及び1222を、それぞれ、LRU側に1つずつ移す。これにより、優先順位管理テーブルエントリ1221乃至1214に関する並び順は、MRU側から、優先順位管理テーブルエントリ1223、1221、1222、1224となる。
優先順位管理テーブル120が図4に示す状態であるときに、例えば、アプリケーション21がデータページ401−5を参照する要求を発行した場合、優先順位管理情報生成処理12は、LRU側の最後尾に位置する優先順位管理テーブルエントリ1214を、そのデータページおよびデータページコピーの情報に対応する格納情報テーブルエントリの優先順位管理テーブル120への登録状況のところに当該の優先順位管理テーブルについては使用終了であることを記録した上、内容をクリアして未使用のエントリにしたのち、優先順位管理テーブルエントリ1214に、データページ401−5に関する情報を登録する。そして、優先順位管理情報生成処理12は、優先順位管理テーブルエントリ1214をMRU側の先頭に移す。優先順位管理情報生成処理12は、それに伴い、優先順位管理テーブルエントリ1211及び1213を、それぞれ、LRU側に1つずつ移す。これにより、優先順位管理テーブルエントリ1211乃至1214に関する並び順は、MRU側から、優先順位管理テーブルエントリ1214、1211、1212、1213となる。
優先順位管理情報生成処理12は、格納管理情報生成処理13が生成した格納管理テーブルエントリの値を参照し、個々のデータページの開始位置、終了位置、及び、データページコピーの先頭位置を、優先順位管理テーブルエントリに格納する。
格納管理情報生成処理13は、格納管理テーブル130を生成し、生成した格納管理テーブル130を、DBサーバ装置10における主記憶装置15に格納する。格納管理テーブル130は、バッファキャッシュ100に格納されたデータページコピーを管理する情報を格納したテーブルである。
格納管理テーブル130の構成例を図5に示す。格納管理テーブル130は、格納管理テーブルエントリ131乃至134等を包含している。格納管理情報生成処理13は、これらの格納管理テーブルエントリを、バッファキャッシュ100に格納されたデータページコピーごとに生成する。したがって、係る格納管理テーブルエントリは、バッファキャッシュ100に格納されたデータページコピーの個数分存在する。
これらの格納管理テーブルエントリは、それぞれ、データページコピー101−iに関して、優先順位管理テーブル120への登録状況を示す値を格納している。格納管理情報生成処理13は、係る登録状況を示す値として、例えば、データページコピー101−iに関する情報を格納している、優先順位管理テーブルエントリを識別可能な識別子を格納する。
係る格納管理テーブルエントリは、データページコピー101−iに対応するデータページ401−iに関する、テーブルスペース400における開始位置(開始アドレス)及び終了位置(終了アドレス)を示す値を格納している。係る格納管理テーブルエントリは、また、バッファキャッシュ100における、データページコピー101−iに関する先頭位置(先頭アドレス)を示す値を格納している。
格納管理情報生成処理13は、複写削除処理14が、テーブルスペース400から、データページ401−iを、データページコピー101−iとして、バッファキャッシュ100に複写した際に、データページコピー101−iに関する格納管理テーブルエントリを生成する。優先順位管理情報生成処理12は、当該の格納情報テーブルエントリを参照して、優先順位管理テーブルエントリを登録する。格納管理情報生成処理13は、複写削除処理14が、バッファキャッシュ100から、データページコピー101−iを削除した際に、データページコピー101−iに関する格納管理テーブルエントリを削除する。
複写削除処理14は、アプリケーション21乃至31の何れかが、テーブルスペース400への参照要求を発行した際に、優先順位管理テーブル120、及び、格納管理テーブル130を参照する。複写削除処理14は、当該参照要求が指定するデータページ401−iに対応するデータページコピー101−iが、格納管理テーブル130に登録されていない場合、データページ401−iを、テーブルスペース400から読み出す。そして、複写削除処理14は、読み出したデータページ401−iを、データページコピー101−iとして、バッファキャッシュ100に格納する。
複写削除処理14は、また、DBMS11が係る参照要求に対する処理を行った結果、格納管理テーブル130における何れかの格納管理テーブルエントリが情報を格納しているデータページコピーに関する情報が、優先順位管理テーブル120に登録されていない状態になった場合、当該データページコピーを、バッファキャッシュ100から削除する。複写削除処理14は、当該格納管理テーブルエントリにおける優先順位管理テーブル120への登録状況が示す値により、当該データページコピーに関する情報が、優先順位管理テーブル120に登録されていないことを検出する。
複写削除処理14は、アプリケーションが参照するデータページ401−1乃至nの少なくともいずれかのデータサイズが閾値以上である場合、当該データページを複数に分割して、バッファキャッシュ100に格納する。複写削除処理14が例えばデータサイズが閾値以上であるデータページを2つに分割した場合は、優先順位管理情報生成処理12は、2つの優先順位管理テーブルエントリを使用する。この場合、優先順位管理情報生成処理12は、格納管理情報生成処理13が生成した格納管理テーブルエントリの値を参照し、個々の分割されたデータページの開始位置、終了位置、及び、データページコピーの先頭位置を、優先順位管理テーブルエントリに格納する。そして、優先順位管理情報生成処理12は、係る2つの優先順位管理テーブルエントリを、MRU側の先頭及び2番目に移す。その後、優先順位管理情報生成処理12は、分割したデータページを、それぞれ個別のデータページとして処理する。
DBサーバ装置10は、主記憶装置15に、関係定義テーブル140を記憶している。関係定義テーブル140は、バッファキャッシュ管理システム1に関する動作環境を定義する情報であり、DBMS11、あるいは、システム管理者等により生成される。
関係定義テーブル140の構成例を図6に示す。関係定義テーブル140は、アクセス元であるアプリケーションを識別可能な識別子と、テーブルスペースを識別可能な識別子と、格納管理テーブルを識別可能な識別子と、優先順位管理テーブルを識別可能な識別子と、を関連付けたレコードを包含している。尚、関係定義テーブル140は、これらの識別子を、レコード形式ではなく、配列等により関連付けてもよい。図6に示す例の場合、関係定義テーブル140は、例えば、アプリケーション21がテーブルスペース400にアクセスする場合、格納管理テーブル130及び優先順位管理テーブル121に基づきアクセス処理が行われることを示している。DBMS11は、関係定義テーブル140が定義する動作環境に基づいて、係るアクセス処理を行う。
次に図3A乃至3Bのフローチャートを参照して、本実施形態に係るバッファキャッシュ管理システム1の動作(処理)について詳細に説明する。
DBMS11は、アプリケーション21乃至31のいずれかから、テーブルスペース400への参照要求を受信する(ステップS101)。DBMS11は、関係定義テーブル140を参照することにより、当該参照要求が使用する優先順位管理テーブル、及び、格納管理テーブルを決定する(ステップS102)。優先順位管理情報生成処理12は、当該参照要求が要求するデータページが、優先順位管理テーブル120に登録されているか否かを確認する(ステップS103)。
当該データページが優先順位管理テーブル120に登録されている場合(ステップS104でYes)、優先順位管理情報生成処理12は、当該データページに関する優先順位管理テーブルエントリを、MRU側の先頭に移し、優先順位管理テーブル120を更新する(ステップS105)。DBMS11は、参照要求元であるアプリケーションに、バッファキャッシュ100におけるデータページコピーのデータを送信し(ステップS106)、全体の処理は終了する。
当該データページが優先順位管理テーブル120に登録されていない場合(ステップS104でNo)、複写削除処理14は、当該データページが、格納管理テーブル130に登録されているか否かを確認する(ステップS107)。当該データページが、格納管理テーブル130に登録されていない場合(ステップS108でNo)、複写削除処理14は、当該データページを、テーブルスペース400からバッファキャッシュ100へ複写する(ステップS109)。格納管理情報生成処理13は、格納管理テーブル130に、当該データページに関する情報を登録する(ステップS110)。当該データページが、格納管理テーブル130に登録されている場合(ステップS108でYes)、処理はステップS111へ進む。
優先順位管理情報生成処理12は、優先順位管理テーブル120において、未使用のエントリがあるか否かを確認する(ステップS111)。未使用のエントリがある場合(ステップS112でYes)、優先順位管理情報生成処理12は、当該データページに関する情報を未使用エントリに登録し、格納管理テーブル130の当該データページに関するエントリの優先順位管理テーブル120への登録状況に使用中であることを記録し、当該エントリをMRU側の先頭に移し(ステップS118)、処理はステップS106へ進む。
未使用のエントリがない場合(ステップS112でNo)、優先順位管理情報生成処理12は、格納管理テーブル130を参照し、LRU側の最後尾に位置するエントリに登録されているデータページが、他のアプリケーションに関する優先順位管理テーブルに登録されているか否かを確認する(ステップS113)。
係るデータページが登録されている場合(ステップS114でYes)、優先順位管理情報生成処理12は、優先順位管理テーブル120におけるLRU側の最後尾のエントリを、そのデータページおよびデータページコピーの情報に対応する格納情報テーブルエントリの優先順位管理テーブル120への登録状況に使用終了であることを記録した上、内容をクリアして、未使用のエントリとし(ステップS117)、前述の(ステップS110の)データページに関する情報を未使用エントリに登録し、当該エントリをMRU側の先頭に移す(ステップS118)。
係るデータページが登録されていない場合(ステップS114でNo)、複写削除処理14は、当該データページに対応するデータページコピーを、バッファキャッシュ100から削除する(ステップS115)。格納管理情報生成処理13は、格納管理テーブル130における、当該データページに関するエントリを削除し(ステップS116)、処理はステップS117へ進む。
本実施形態に係るバッファキャッシュ管理システム1は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することができる。その理由は、優先順位管理情報生成処理12が、アプリケーションごとにデータページに関してバッファキャッシュ100に残す際の優先順位を管理する優先順位管理テーブル120を生成し、複写削除処理14が、優先順位管理テーブル120と格納管理テーブル130が示す内容に基づき、バッファキャッシュ100に登録されたデータページコピーを削除するからである。
複数のアプリケーションが同一のテーブルスペースを参照するようなシステムにおいて、特定のアプリケーションが大量のデータページを参照した場合、通常、他のアプリケーションが過去に参照してバッファキャッシュに格納していたデータページの多くが、バッファキャッシュから削除される。この場合、係る他のアプリケーションは、バッファキャッシュから削除されたデータページを再度バッファキャッシュに読み込む必要があるため、システム性能が低下することになる。
これに対して、本実施形態に係るバッファキャッシュ管理システム1では、優先順位管理情報生成処理12が、アプリケーションごとに、参照するデータページに関してバッファキャッシュ100に残す際の優先順位を管理する優先順位管理テーブル120を生成する。そして、複写削除処理14は、優先順位管理テーブル120および格納管理テーブル130を参照し、何れのアプリケーションに関しても係る優先順位が低く、あるいは優先順位が無く、削除しても問題のないデータページを、バッファキャッシュ100から削除する。
本実施形態に係る優先順位管理テーブル120は、アプリケーションごとに、優先順位管理テーブルエントリを4つ備えている。優先順位管理テーブルエントリに登録されたデータページは、各アプリケーションに関する、優先順位が1位から4位までのデータページであり、当該アプリケーションから再度参照される可能性が高いデータページである。複写削除処理14は、何れかのアプリケーションに関して優先順位管理テーブル120に登録されているデータページについては、バッファキャッシュ100から削除しない。複写削除処理14は、LRUアルゴリズムにより、優先順位管理テーブル120に未登録となった(すなわち、優先順位が5位以下となった)データページを、バッファキャッシュ100から削除する対象とする。したがって、本実施形態に係るバッファキャッシュ管理システム1は、各アプリケーションが参照する可能性が高いデータページがバッファキャッシュ100から削除されることを回避する。これにより、バッファキャッシュ管理システム1は、特定のアプリケーションが大量のデータページを参照するような場合であっても、テーブルスペースにおけるデータへのアクセス性能の低下を回避できる。
尚、本実施形態では、優先順位管理テーブル120は、各エントリがMRU側及びLRU側の隣接エントリに関するポインタ等の識別子を格納することにより、エントリ間の優先順位を示しているが、別の方法によりエントリ間の優先順位を示すようにしてもよい。例えば、優先順位管理テーブル120は、オフセットあるいは配列等を用いて、係る優先順位を示すようにしてもよい。
また、本実施形態に係る優先順位管理情報生成処理12は、アプリケーションがデータページを参照したタイミングに関してLRUアルゴリズムを適用することにより係る優先順位を決定しているが、別の基準に基づき、優先順位を決定してもよい。例えば、優先順位管理情報生成処理12は、アプリケーションがデータページを参照した回数が多い順番に基づいて、係る優先順位を決定してもよい。あるいは、優先順位管理情報生成処理12は、データページがバッファキャッシュに複写されたタイミングに関してLRUアルゴリズムを適用することにより係る優先順位を決定してもよい。この場合は、優先順位管理情報生成処理12は、何れかのデータページがバッファキャッシュに格納されるたびに、優先順位管理テーブル120を更新する。
さらに、本実施形態に係る複写削除処理14は、アプリケーションが参照するデータページのデータサイズが閾値以上である場合は、複数のデータページに分割して、バッファキャッシュ100に複写する。優先順位管理テーブル120は、分割後のデータページを管理する。例えば、アプリケーションが、データサイズが大きいデータページにおける一部の領域のみを頻繁に参照するような場合に、このようなデータページ全体がバッファキャッシュ100に格納され続けることにより、主記憶装置15に関する利用効率が低下することがある。優先順位管理情報生成処理12は、データサイズが大きいデータページを分割して管理することにより、アプリケーションからあまり参照されない部分のデータがバッファキャッシュ100に格納され続けることを防止する。これにより、本実施形態に係るバッファキャッシュ管理システム1は、主記憶装置15に関する利用効率が低下することを回避できる。
<第2の実施形態>
図7は第2の実施形態のバッファキャッシュ管理装置50の構成を概念的に示すブロック図である。
本実施形態のバッファキャッシュ管理装置50は、優先順位管理情報生成部51、及び、複写削除部52を備えている。
本実施形態では、第1の記憶部80に格納されたデータ800の一部であるブロックデータ801−1乃至nは、第2の記憶部70に、ブロックデータ700−1乃至nとしてバッファキャッシュ管理装置50により複写される。そして、複数(例えば2つ)のアプリケーション60乃至61は、第2の記憶部70に複写されたブロックデータ700−1乃至nを参照する。
優先順位管理情報生成部51は、アプリケーション60あるいは61に関してブロックデータ801−1乃至nを第2の記憶部70に残す際の優先順位が示す値を、所定の基準に基づき決定する。優先順位管理情報生成部51は、決定した係る優先順位と、当該アプリケーションを識別可能な第1の識別子と、当該ブロックデータを識別可能な第2の識別子と、を関連付けた優先順位管理情報510を生成する。
複写削除部52は、アプリケーション60あるいは61がデータ800へのアクセス要求を行う際に、優先順位管理情報510を参照する。そして、複写削除部52は、第2の記憶部70に複写済であるブロックデータ700−1乃至nの中で、係る優先順位が示す値が所定の条件を満たすブロックデータを、第2の記憶部70から削除する。
本実施形態に係るバッファキャッシュ管理装置50は、複数のアプリケーションが、大容量の記憶装置に格納されたデータを、バッファキャッシュを介して参照する場合に、係るデータへのアクセス性能の低下を回避することができる。その理由は、優先順位管理情報生成部51が、アプリケーションごとにデータページに関して第2の記憶部70に残す際の優先順位を管理する優先順位管理情報510を生成し、複写削除部52が、優先順位管理情報510が示す内容に基づき、第2の記憶部70に登録されたブロックデータを削除するからである。
尚、優先順位管理情報生成部51、及び、複写削除部52は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。この場合のハードウェア環境は、図2に示したDBサーバ装置10と同様である。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
1 バッファキャッシュ管理システム
10 DBサーバ装置
11 DBMS
12 優先順位管理情報生成処理
13 格納管理情報生成処理
14 複写削除処理
15 主記憶装置
100 バッファキャッシュ
101−1乃至n データページコピー
120 優先順位管理テーブル
121乃至122 優先順位管理テーブル
1211乃至1214 優先順位管理テーブルエントリ
1221乃至1224 優先順位管理テーブルエントリ
130 格納管理テーブル
131乃至134 格納管理テーブルエントリ
140 関係定義テーブル
20乃至30 APサーバ装置
21乃至31 アプリケーション
40 外部記憶装置
400 テーブルスペース
401−1乃至n データページ
50 バッファキャッシュ管理装置
51 優先順位管理情報生成部
510 優先順位管理情報
52 複写削除部
60乃至61 アプリケーション
70 第2の記憶部
700−1乃至n ブロックデータ
80 第1の記憶部
800 データ
801−1乃至n ブロックデータ
901 CPU
902 ROM
903 RAM
904 ハードディスク
905 通信インタフェース
906 バス
907 記憶媒体
908 リーダライタ
909 入出力インタフェース

Claims (9)

  1. 第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、過去における前記アプリケーションによる前記ブロックデータへの参照度合いに基づく所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた、所定の順位よりも上位に位置する前記優先順位に関する優先順位管理情報を生成する優先順位管理情報生成手段と、
    前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位管理情報に登録されていない前記第二の識別子が示すブロックデータを、前記第二の記憶手段から削除する複写削除手段と、
    を備えるバッファキャッシュ管理装置。
  2. 前記優先順位管理情報生成手段は、前記優先順位が示す値を、前記アプリケーションが前記ブロックデータを最後に参照したときからの経過時間が短い順番、あるいは、前記アプリケーションが前記ブロックデータを参照した回数が多い順番に基づいて決定し、何れかの前記アプリケーションが何れかの前記ブロックデータを参照するたびに、前記優先順位が示す値を更新する、
    請求項1に記載のバッファキャッシュ管理装置。
  3. 前記優先順位管理情報生成手段は、前記優先順位が示す値を、前記ブロックデータが前記第二の記憶手段に複写されてからの経過時間が短い順番に基づいて決定し、何れかの前記ブロックデータが前記第二の記憶手段に格納されるたびに、前記優先順位が示す値を更新する、
    請求項1に記載のバッファキャッシュ管理装置。
  4. 前記優先順位管理情報生成手段は、個々の前記複数のアプリケーションに関して、前記第二の識別子と、前記優先順位が示す値とを関連付けたレコードを含むエントリを1以上包含する前記優先順位管理情報を生成し、前記複数のアプリケーションの何れかが要求した前記ブロックデータに関する前記第二の識別子及び前記優先順位が示す値を、新たに前記エントリのいずれかに登録する際に、当該アプリケーションに関する前記エントリが全て使用中である場合は、前記エントリの中で前記優先順位が示す値が最も低いエントリを、当該第二の識別子及び当該優先順位が示す値に更新する、
    請求項1乃至のいずれかに記載のバッファキャッシュ管理装置。
  5. 前記第二の記憶手段に格納されている前記ブロックデータを識別可能な前記第二の識別子と、当該第二の識別子が何れかの前記エントリに格納されているか否かを示す情報を関連付けた格納管理情報を生成する格納管理情報生成手段
    をさらに備え、
    前記複写削除手段は、前記格納管理情報を参照し、前記複数のアプリケーションの少なくとも何れかが要求した前記ブロックデータが前記第二の記憶手段に格納されてない場合に、当該ブロックデータを、前記第一の記憶手段から前記第二の記憶手段に複写し、前記エントリのいずれにも格納されていない前記第二の識別子により識別可能な前記ブロックデータを、前記第二の記憶手段から削除する、
    請求項に記載のバッファキャッシュ管理装置。
  6. 前記複写削除手段は、前記複数のアプリケーションの少なくとも何れかが要求した前記ブロックデータの大きさが閾値以上である場合、前記ブロックデータを複数に分割して、前記第二の記憶手段に格納し、
    前記優先順位管理情報生成手段は、分割された前記ブロックデータの各々を識別可能な前記第二の識別子と、当該アプリケーションを識別可能な前記第一の識別子と、前記優先順位が示す値と、を関連付けた前記優先順位管理情報を生成する、
    請求項1乃至のいずれかに記載のバッファキャッシュ管理装置。
  7. 請求項1乃至のいずれかに記載のバッファキャッシュ管理装置と、前記第一及び第二の記憶手段と、を有するバッファキャッシュ管理システム。
  8. 情報処理装置が備える優先順位管理情報生成手段が
    第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、過去における前記アプリケーションによる前記ブロックデータへの参照度合いに基づく所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた、所定の順位よりも上位に位置する前記優先順位に関する優先順位管理情報を生成し、
    前記情報処理装置が備える複写削除手段が、
    前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位管理情報に登録されていない前記第二の識別子が示すブロックデータを前記第二の記憶手段から削除する、
    バッファキャッシュ管理方法。
  9. 第一の記憶手段に格納されたデータの一部であるブロックデータが第二の記憶手段に複写されたのちに、複数のアプリケーションが、前記第二の記憶手段に複写された前記ブロックデータを参照する場合に、個々の前記アプリケーションに関して前記ブロックデータを前記第二の記憶手段に残す際の優先順位が示す値を、過去における前記アプリケーションによる前記ブロックデータへの参照度合いに基づく所定の基準に基づき決定し、決定した前記優先順位と、当該アプリケーションを識別可能な第一の識別子と、当該ブロックデータを識別可能な第二の識別子と、を関連付けた、所定の順位よりも上位に位置する前記優先順位に関する優先順位管理情報を生成する優先順位管理情報生成処理と、
    前記複数のアプリケーションの少なくとも何れかが前記データへのアクセス要求を行う際に、前記優先順位管理情報を参照し、前記第二の記憶手段に複写済である前記ブロックデータの中で、前記優先順位管理情報に登録されていない前記第二の識別子が示すブロックデータを、前記第二の記憶手段から削除する複写削除処理と、
    をコンピュータに実行させる、バッファキャッシュ管理プログラム。
JP2014049094A 2014-03-12 2014-03-12 バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム Active JP6311370B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014049094A JP6311370B2 (ja) 2014-03-12 2014-03-12 バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014049094A JP6311370B2 (ja) 2014-03-12 2014-03-12 バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム

Publications (2)

Publication Number Publication Date
JP2015172897A JP2015172897A (ja) 2015-10-01
JP6311370B2 true JP6311370B2 (ja) 2018-04-18

Family

ID=54260170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014049094A Active JP6311370B2 (ja) 2014-03-12 2014-03-12 バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム

Country Status (1)

Country Link
JP (1) JP6311370B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943687A (en) * 1997-03-14 1999-08-24 Telefonakiebolaget Lm Ericsson Penalty-based cache storage and replacement techniques
JPH10301748A (ja) * 1997-04-23 1998-11-13 Sharp Corp 情報処理装置及び情報処理プログラムを記憶した媒体
JP2001290704A (ja) * 2000-04-06 2001-10-19 Nec Microsystems Ltd マルチプロセス制御装置及びマルチプロセス制御方法
US20110238927A1 (en) * 2008-11-21 2011-09-29 Hiroyuki Hatano Contents distribution device , contents distribution control method, contents distribution control program and cache control device

Also Published As

Publication number Publication date
JP2015172897A (ja) 2015-10-01

Similar Documents

Publication Publication Date Title
US9141621B2 (en) Copying a differential data store into temporary storage media in response to a request
JP4975396B2 (ja) 記憶制御装置及び記憶制御方法
US11392544B2 (en) System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system
JP6343438B2 (ja) コンピュータシステム及びコンピュータシステムのデータ管理方法
Mei et al. SifrDB: A unified solution for write-optimized key-value stores in large datacenter
US20100281077A1 (en) Batching requests for accessing differential data stores
US20130268770A1 (en) Cryptographic hash database
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
US9785547B2 (en) Data management apparatus and method
KR20120090965A (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
KR20150025274A (ko) 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
JP6094267B2 (ja) ストレージシステム
CN107153512B (zh) 一种数据迁移方法和装置
JP2018520420A (ja) ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム
US10282126B2 (en) Information processing apparatus and method for deduplication
US11625187B2 (en) Method and system for intercepting a discarded page for a memory swap
Yao et al. SEALDB: An efficient LSM-tree based KV store on SMR drives with sets and dynamic bands
JP2012168781A (ja) 分散型データストアシステム及び分散型データストアシステムにおけるレコード管理方法
JP2009211496A (ja) 画像形成装置及びアクセス制御方法
WO2011019029A1 (ja) データ処理装置、データ記録方法、データ記録プログラム
US9858204B2 (en) Cache device, cache system, and cache method
KR102063281B1 (ko) 파일에 접근하기 위한 방법과 장치, 및 저장 시스템
JP6311370B2 (ja) バッファキャッシュ管理装置、バッファキャッシュ管理方法、及び、バッファキャッシュ管理プログラム
US9218275B2 (en) Memory management control system, memory management control method, and storage medium storing memory management control program
KR101694299B1 (ko) 클라우드 스토리지의 저장장치를 관리하기 위한 방법 및 메타데이터 서버

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6311370

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150