(57)【要約】【課題】  本発明はキャッシュメモリを有する記憶装置のキャッシュフラッシュ処理と、上位装置の同期点処理を行うプログラムに関するものであり、従来は、上位装置のプログラムは記憶装置に対してフラッシュ指示ができないという問題があった。【解決手段】  プログラムを実行する計算機と、前記プログラムの実行により送られたデータを格納するキャッシュメモリと該キャッシュメモリに格納されたデータを格納するためのディスク装置とを有する記憶装置とを備えたデータ処理システムを用いる。前記記憶装置は、前記プログラムから送られたデータの格納要求の入力に応じて前記送られたデータを前記キャッシュメモリに記憶する。次に、前記プログラムから送られたフラッシュ要求の入力に応じて前記キャッシュメモリに格納されたデータを前記ディスク装置に格納する。【選択図】  図１
2005316632.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する計算機と、前記プログラムの実行により送られたデータを格納するキャッシュメモリと該キャッシュメモリに格納されたデータを格納するためのディスク装置とを有する記憶装置とを備えたデータ処理システムにおけるキャッシュ制御方法において、
前記記憶装置は、前記プログラムから送られたデータの格納要求の入力に応じて前記送られたデータを前記キャッシュメモリに記憶し、前記プログラムから送られたフラッシュ要求の入力に応じて前記キャッシュメモリに格納されたデータを前記ディスク装置に格納することを特徴とするキャッシュ制御方法。
【請求項２】
前記フラッシュ要求は、前記プログラムの稼動によるトランザクション処理におけるチェックポイントのタイミングで前記プログラムから前記記憶装置へ送信することを特徴とする請求項１記載のキャッシュ制御方法。
【請求項３】
前記データ格納要求と前記フラッシュ要求は、前記キャッシュメモリの領域を特定する領域識別情報を含み、前記データ格納要求が入力されると該データ格納要求の領域識別情報で特定される領域に前記送られたデータを格納し、前記フラッシュ要求が入力されると該データ格納要求の領域識別情報で特定される領域に格納されたデータを前記ディスク装置へ格納することを特徴とする請求項１記載のキャッシュ制御方法。
【請求項４】
前記キャッシュメモリの領域は、データ更新が発生したか否かが管理され、前記フラッシュ要求が入力されると該データ格納要求の領域識別情報で特定される領域に格納されたデータが更新されたものを前記ディスク装置へ格納することを特徴とする請求項３記載のキャッシュ制御方法。
【請求項５】
前記キャッシュメモリの領域識別は、ボリューム識別情報およびセグメント識別情報であることを特徴とする請求項３記載のキャッシュ制御方法。
【請求項６】
プログラムを実行する計算機と、前記プログラムの実行により送られたデータを格納するキャッシュメモリと該キャッシュメモリに格納されたデータを格納するためのディスク装置とを有する記憶装置とを備えたデータ処理システムにおいて、
前記記憶装置は、前記プログラムから送られたデータの格納要求の入力に応じて前記送られたデータを前記キャッシュメモリに記憶する手段と、前記プログラムから送られたフラッシュ要求の入力に応じて前記キャッシュメモリに格納されたデータを前記ディスク装置に格納する手段とを備えたことを特徴とするデータ処理システム。
【請求項７】
前記フラッシュ要求は、前記プログラムの稼動によるトランザクション処理におけるチェックポイントのタイミングで前記プログラムから前記記憶装置へ送信することを特徴とする請求項６記載のデータ処理システム。
【請求項８】
前記データ格納要求と前記フラッシュ要求は、前記キャッシュメモリの領域を特定する領域識別情報を含み、前記データ格納要求が入力されると該データ格納要求の領域識別情報で特定される領域に前記送られたデータを格納し、前記フラッシュ要求が入力されると該データ格納要求の領域識別情報で特定される領域に格納されたデータを前記ディスク装置へ格納することを特徴とする請求項６記載のデータ処理システム。
【請求項９】
前記キャッシュメモリの領域は、データ更新が発生したか否かが管理され、前記フラッシュ要求が入力されると該データ格納要求の領域識別情報で特定される領域に格納されたデータが更新されたものを前記ディスク装置へ格納することを特徴とする請求項８記載のデータ処理システム。
【請求項１０】
前記キャッシュメモリの領域識別は、ボリューム識別情報およびセグメント識別情報であることを特徴とする請求項８記載のデータ処理システム。
【請求項１１】
プログラムを実行する計算機と、前記プログラムの実行により送られたデータを格納するキャッシュメモリと該キャッシュメモリに格納されたデータを格納するためのディスク装置とを有する記憶装置とを備えたデータ処理システムを機能させるデータ処理プログラムにおいて、
前記記憶装置では、前記プログラムから送られたデータの格納要求の入力に応じて前記送られたデータを前記キャッシュメモリに記憶するステップとと、前記プログラムから送られたフラッシュ要求の入力に応じて前記キャッシュメモリに格納されたデータを前記ディスク装置に格納するステップとを有することを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュメモリを有する記憶装置のキャッシュフラッシュ処理を、記憶装置外部のタイミングで実施するキャッシュ制御技術に関する。
【背景技術】
【０００２】
特許文献1で述べられているように、電源が遮断されたタイミングで、ディスク記憶装置を停止するためにディスク記憶装置内のキャッシュメモリの内容を磁気ディスクに強制的にキャッシュをフラッシュするキャッシュ制御方式が開示されている。
【０００３】
【特許文献１】特開平10-254780号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術は、データ処理装置で稼動するプログラムから記憶装置に対してフラッシュ指示ができないという問題があった。
本発明の目的は、記憶装置外部からプログラムの処理のタイミングでキャッシュメモリから記録媒体への書き込みを実施することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、上位装置のアプリケーションプログラムの同期点処理において、記憶装置に付属するキャッシュへのフラッシュ指示をするようにして、アプリケーションの同期点処理とフラッシュ処理を連動させるようにしたものである。
【発明の効果】
【０００６】
本発明によれば、記憶装置外部からプログラムの処理のタイミングでキャッシュメモリから記録媒体への書き込みを実施することが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施例を図面に基づいて詳細に説明する。図１は本発明の一実施例である上位装置と記憶装置の構成を示すブロック図である。本実施例では、上位装置１０と記憶装置１１で構成されており、上位装置１０ではアプリケーションプログラム１００が稼動し、アプリケーションプログラム１００には読出／書込処理部１０１と同期点処理部１０２が割り当てられている。書込／読出処理部１０１は記憶装置１１に読出要求１０３や書込要求１０４を発行する。同期点処理部１０２は記憶装置１１に書込要求１０５やフラッシュ指示１０６を発行する。記憶装置１１にはキャッシュ制御部１１０とキャッシュメモリ１２０と記憶媒体１３０が割り当てられている。キャッシュ制御部１１０はキャッシュ管理テーブル１１７を参照してヒット判定１１３、キャッシュメモリメモリ１２０に対するキャッシュ読出１１３やキャッシュ書込１１４、記憶媒体１３０に対する媒体読出１１５や媒体書込１１６を行う。キャッシュメモリ１２０はボリューム毎の区画１２１に分かれる、更に細分化したＬＵ単位の区画１２２（ＬＵ：論理ユニット）に分かれて、ＬＵ内はＬＢＡ（ＬＢＡ：論理ブロックアドレス）が記憶されている。記憶媒体１３０は複数のボリューム１３１を有する。本実施例ではキャッシュメモリ１２０をボリューム単位の区画１２１やＬＵ単位の区画１２２に分ける実施例を示したが、ボリューム単位の区画１２１やＬＵ単位の区画１２２に分けなくてもよい。ここで説明した各処理部は、プログラムを一例として説明しているが、オブジェクトやプロセス、スレッド、ハードウェアなどで実現しても良い。
【０００８】
データベース管理システムなどでは、障害に備え、定期的にＤＢの整合性を保証する為、稼動中にチェックポイントを取得する。チェックポイントは、システム障害時の再開始処理を行う起点となるデータベースの整合性が保証されたポイントとなる。主にチェックポイントは稼動中に出力したログブロック数がある一定の回数に達した時点に取得する場合が多い。チェックポイント処理では、その時点のデータベースバッファにおける更新が行われたデータベースブロックを記憶装置上に全て書き出す処理が行われる。アプリケーションプログラム１００として、データベース管理システムが利用された場合、フラッシュ指示１０６として上記のチェックポイント処理が効力を発揮する。例えば、データベース管理システムで書き込んだデータを、フラッシュ指示１０６として上記のチェックポイントが発生したタイミングを用いてフラッシュ指示を実施することにより、チェックポイント毎にキャッシュメモリにおけるデータベース管理システムで書き込んだデータがディスクへフラッシュされることになる。このようにすることにより、電源断の発生やシステムを停止する場合に、ディスクへのフラッシュが行われているため、記憶媒体１３０を停止する時間を短縮することが可能となる。
【０００９】
図２は同期点処理部１０２における同期点処理の流れを示す。アプリケーションプログラム１００のメモリに保持され記憶装置１１に未反映の更新データをｗｒｉｔｅ  ｔｈｏｕｇｈモードで書込要求１０４を出し（ステップ２１）、記憶媒体１３０に未反映のキャッシュメモリ１２０上のページを記憶媒体１３０に反映するために記憶装置１１にフラッシュ指示１０５を出し（ステップ２２）、記憶装置１１に当該同期点処理が終了したことを記録する同期点ジャーナルをｗｒｉｔｅ  ｔｈｏｕｇｈモードで記憶装置１１に書込要求１０４を出す（ステップ２３）。
【００１０】
図３はキャッシュ制御部１１０によるフラッシュ指示処理の流れを示す。キャッシュ管理テーブル１１７のファイル管理部５１を走査して最初のファイル５０１の情報を参照し（ステップ３０１）、フラッシュ指示１０５で指定されたボリュームとボリューム５０２が一致する又はボリュームの指定がない条件が成立しなければ次のファイル５０１の走査に戻り、条件が成立すれば次の処理に進み（ステップ３０２）、フラッシュ指示１０５で指定されたＬＵとＬＵ５０３が一致する又はＬＵの指定がない条件が成立しなければ次のファイル５０１の走査に戻り、条件が成立すれば次の処理に進み（ステップ３０３）、モード５０５がｗｒｉｔｅ  ａｆｔｅｒに一致しなければ記憶媒体１３０に反映されているので次のファイル５０１の走査に戻り、モード５０５がｗｒｉｔｅ  ａｆｔｅｒに一致すれば次の処理に進み（ステップ３０４）、キャッシュメモリポインタ５０６がキャッシュ管理エントリ５２を指していなければ次のファイル５０１の走査に戻り、キャッシュメモリポインタ５０６がキャッシュ管理エントリ５２を指していれば次の処理に進む（ステップ３０５）。
【００１１】
次にキャッシュ管理エントリ５３を参照し（ステップ３０６）、当該キャッシュ管理エントリ５３の指すページ５１２が記憶媒体１３０に反映済であれば次のキャッシュ管理エントリ５２の走査に戻り、記憶媒体１３０へ未反映であれば次の処理に進み（ステップ３０７）、当該キャッシュ管理エントリ５３の指すページ５１２を記憶媒体１３０に媒体書込１１６を行って、キャッシュ管理エントリ５３を反映済に変更し（ステップ３０８）、ネクストポインタ５１１があれば次のキャッシュ管理エントリ５２の走査に戻り、ネクストポインタ５１１がなければ次の処理に進み（ステップ３０９）、ファイル管理部５１の全てのファイルを走査していなければ次のファイル５０１の走査に戻り、全てのファイルを走査していればフラッシュ指示処理を終了する（ステップ３１０）。
【００１２】
図４はキャッシュ制御部１１０による書込要求処理の流れを示す。キャッシュ管理テーブル１１７のファイル管理部５１を走査して書込要求１０４で指定されたファイルと一致するファイル５０１を検索してキャッシュポインタ５０６を取得して（ステップ４０１）、書き込みデータと突き合わせて対応するキャッシュ管理エントリ５３を検索し（ステップ４０２）、書き込みデータに対応するキャッシュ管理エントリ５３がヒットすれば次の処理進み、書き込みデータに対応するキャッシュ管理エントリ５３がヒットしなければ（ステップ４０３）、新規キャッシュ管理エントリ５３及びキャッシュメモリページの確保とキャッシュ管理エントリ５３のリストメンテナンスを行い（ステップ４０４）、書込要求１０４時に指定されたモードがｗｒｉｔｅ  ａｆｔｅｒであればステップ４０６の処理に分岐し（ステップ４０５）、書き込みデータをキャッシュメモリ１２０にキャッシュ書込１１４して（ステップ４０６）、キャッシュ管理エントリ５３を未反映５１２に変更し（ステップ４０８）、ステップ４１０の処理に進む。一方、書込要求１０４時に指定されたモードがｗｒｉｔｅ  ｔｈｒｏｕｇｈであればステップ４０７の処理に分岐し（ステップ４０５）、書き込みデータをキャッシュメモリ１２０にキャッシュ書込１１４すると共に記憶媒体１３０に媒体書込１１６を行い（ステップ４０７）、キャッシュ管理エントリ５３を反映済５１２に変更し（ステップ４０９）、ステップ４１０の処理に進む。書き込みデータの全てについてキャッシュ管理エントリ５３と突合せ検索が終っていなければ突合せ検索に戻り、終っていれば次の処理に進み（ステップ４１０）、書込要求１０４時に指定されたモードをモード５０５に設定し（ステップ４１１）、書込要求処理を終了する。
【００１３】
図５はキャッシュ制御部１１０におけるキャッシュ管理テーブル１１７のデータ構造図を示す。キャッシュ管理テーブル１１７はファイル管理部５１とキャッシュ管理部５２からなる。ファイル管理部５１において、ファイル５０１はファイル名を保持し、ボリューム５０２はファイルの格納ボリュームを示し、ＬＵ５０３は格納ＬＵを示し、ＬＢＡ５０４は格納ＬＢＡを示し、モード５０５はファイル書込要求時に記憶媒体１３０とキャッシュメモリ１２０の両方に書き込み動作を行うｗｒｉｔｅ  ｔｈｒｏｕｇｈモードと書込要求時はキャッシュメモリ１２０のみに書き込み、フラッシュ時に記憶媒体１４０に書き込み動作を行うｗｒｉｔｅ  ａｆｔｅｒモードがある。キャッシュポインタ５０６は、当該ファイルで使用しているキャッシュ管理エントリ５３を指すリストの先頭ポインタを保持する。キャッシュ管理部５２は対応するキャッシュページの情報を持つ複数のキャッシュ管理エントリ５３からなる。ネクストポインタ５１１は当該ファイル５０１の次のキャッシュ管理エントリ５３を指す。ページ５１２はキャッシュメモリ１２０内のページを示す。ＬＢＡ５１３は記憶媒体１３０の格納位置を示す。反映済又は未反映５１４は当該キャッシュメモリページが記憶媒体１３０に反映された状態（内容が一致する）であるか、反映されていない状態（内容が不一致）であるかを保持する。
【００１４】
以上によれば、記憶装置のキャッシュメモリの内容が失われる障害発生してもアプリケーションプログラムの同期点までの更新内容が記録媒体に書き込まれていることを保証できるため、障害後のアプリケーションプログラムの回復処理では回復開始地点を正確に決めることができる。
【００１５】
また、アプリケーションプログラムの制御により逐次キャッシュフラッシュが行えるため、大量のキャッシャメモリを有する記憶装置における電源停止時にアプリケーションの制御に因らずにキャッシュに蓄積された大量の更新データのフラッシュ処理より、停止処理に時間を要する問題を回避することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例である上位装置と記憶装置の構成を示すブロック図である。
【図２】本発明の一実施例である上位装置のアプリケーションの同期点処理を示すフローチャートである。
【図３】本発明の一実施例による記憶装置のフラッシュ指示処理を示すフローチャートである。
【図４】本発明の一実施例による記憶装置の書込要求処理を示すフローチャートである。
【図５】本発明の一実施例によるキャッシュ管理テーブルのデータ構造図である。
【符号の説明】
【００１７】
１０  上位装置
１００  アプリケーションプログラム
１０１  読出／書込処理部
１０２  同期点処理部
１１  記憶装置
１１０  キャッシュ制御部
１２０  キャッシュメモリ
１３０  記憶媒体
【図１】
2005316632.tif 000003
【図２】
2005316632.tif 000004
【図３】
2005316632.tif 000005
【図４】
2005316632.tif 000006
【図５】
2005316632.tif 000007