(57)【特許請求の範囲】
【請求項１】
ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出して前記ホストに転送する情報処理システムであって、
前記処理対象データが存在する前記記憶媒体を示す位置情報を取得する取得手段と、
前記複数の記憶媒体間に定められる優先順位であって、前記複数の記憶媒体に格納された前記処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理手段と、
前記位置情報及び前記テーブルに基づいて前記処理対象データを読み出す処理手段と、を備え、
前記処理対象データは、文字列の検索対象となるデータであり、
前記複数の記憶媒体は、第１の記憶媒体と第２の記憶媒体とを含み、
前記処理手段は、前記第２の記憶媒体よりも読み出し速度の速い前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する文字列の検索処理を優先的に実行する、情報処理システム。
【請求項２】
前記処理手段は、前記位置情報及び前記テーブルに基づいて、前記複数の記憶媒体に格納されている前記処理対象データに対して前記複数の記憶媒体ごとに異なる読み出し処理を実行する、請求項１に記載の情報処理システム。
【請求項３】
前記第２の記憶媒体はストレージディスクであり、前記第１の記憶媒体は前記ストレージディスクよりも読み出し速度の速いキャッシュメモリであり、
前記処理手段は、前記キャッシュメモリに前記処理対象データの一部のみが格納されている場合、前記処理対象データの前記一部について前記キャッシュメモリからの読み出し処理を実行し、前記処理対象データのうち前記処理対象データの前記一部以外について前記ストレージディスクからの読み出し処理を実行する、請求項１または２に記載の情報処理システム。
【請求項４】
前記処理手段は、前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記転送にかかる時間が短いデータである前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する読み出し処理を優先的に実行する、請求項１に記載の情報処理システム。
【請求項５】
前記処理手段は、前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記処理対象データの前記一部について前記第１の記憶媒体からの読み出し処理を実行し、前記処理対象データの前記一部に対する前記文字列の検索処理が完了した後に、前記処理対象データのうち前記処理対象データの前記一部以外について前記第２の記憶媒体からの読み出し処理を実行する、請求項１に記載の情報処理システム。
【請求項６】
ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出して前記ホストに転送する情報処理方法であって、
前記処理対象データが存在する前記記憶媒体を示す位置情報を取得する取得ステップと、
前記複数の記憶媒体間に定められる優先順位であって、前記複数の記憶媒体に格納された前記処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理ステップと、
前記位置情報及び前記テーブルに基づいて前記処理対象データを読み出す処理ステップと、を含み、
前記処理対象データは、文字列の検索対象となるデータであり、
前記複数の記憶媒体は、第１の記憶媒体と第２の記憶媒体とを含み、
前記処理ステップでは、前記第２の記憶媒体よりも読み出し速度の速い前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する文字列の検索処理を優先的に実行する、情報処理方法。
【請求項７】
前記処理ステップでは、前記位置情報及び前記テーブルに基づいて、前記複数の記憶媒体に格納されている前記処理対象データに対して前記複数の記憶媒体ごとに異なる読み出し処理を実行する、請求項６に記載の情報処理方法。
【請求項８】
前記第２の記憶媒体はストレージディスクであり、前記第１の記憶媒体は前記ストレージディスクよりも読み出し速度の速いキャッシュメモリであり、
前記処理ステップでは、前記キャッシュメモリに前記処理対象データの一部のみが格納されている場合、前記処理対象データの前記一部について前記キャッシュメモリからの読み出し処理を実行し、前記処理対象データのうち前記処理対象データの前記一部以外について前記ストレージディスクからの読み出し処理を実行する、請求項６または７に記載の情報処理方法。
【請求項９】
前記処理ステップでは、前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記転送にかかる時間が短いデータである前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する読み出し処理を優先的に実行する、請求項６に記載の情報処理方法。
【請求項１０】
前記処理ステップでは、前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記処理対象データの前記一部について前記第１の記憶媒体からの読み出し処理を実行し、前記処理対象データの前記一部に対する前記文字列の検索処理が完了した後に、前記処理対象データのうち前記処理対象データの前記一部以外について前記第２の記憶媒体からの読み出し処理を実行する、請求項６に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
一般的な情報処理システムにおいて、キャッシュ技術は広く利用されている。キャッシュ技術とは、アクセスに時間がかかるデータを、高速にアクセスできる記憶装置に保持することによって平均的なアクセス時間を短縮する技術である。キャッシュ技術では、キャッシュの利用効率を高めるために、先読みやダイレクトアクセスなどの方法が用いられている。
【０００３】
先読みは、ファイルの先頭から順番にアクセスするような状況で有効とされている。しかし、例えば、順次アクセスを開始した時点で当該ファイルの末尾のデータが既にキャッシュに存在していた場合、ファイルの先頭のデータがキャッシュに読み込まれることによって末尾のデータがキャッシュから削除されてしまうことがある。すなわち、当該末尾のデータは後に再度アクセスされることが分かっているデータであるにもかかわらずキャッシュから削除されてしまう。これはページキャッシュの利用効率を下げることとなり、処理性能に悪影響を与える。
【０００４】
ダイレクトアクセスは、キャッシュを回避する方法である。キャッシュが存在しているデータに対してダイレクトアクセスを実行すると、キャッシュ上のデータと二次記憶装置上のデータとの整合性を取るための処理が発生する。そのため、他のアプリケーションと共有されているデータに対してダイレクトアクセスを実行すると、既にキャッシュ上にデータが存在していたダーティなデータの書き出しや破棄の処理が発生する。その結果、他のアプリケーションのページキャッシュの利用効率を下げ、処理性能に悪影響を与える。
【０００５】
キャッシュ技術に関しては、以下の特許文献がある。特許文献１には、キャッシュが存在すれば、キャッシュ領域からアプリケーションが使用する記憶領域にデータを転送し、存在しなければ、記憶装置内の未格納データをキャッシュ領域の格納ブロックに順次転送すると共に、未格納データに含まれる転送データをアプリケーションが使用する所定の記憶領域に転送する技術が開示されている。特許文献２には、キャッシュが存在すればキャッシュメモリから読み出し、キャッシュが存在しなければメインメモリから読み出す技術が開示されている。特許文献３には、サーバ上のフラッシュメモリドライブをキャッシュとして使用し、頻繁にアクセスされる領域を記憶システム内のより高い階層に移動し、アクセス性能を向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１２２６３４
【特許文献２】特開２０１３−１７４９９７
【特許文献３】特開２０１３−２２２４５７
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１乃至３に開示されている技術には次の問題点があった。すなわち、特許文献１乃至３に開示されている技術は、キャッシュミスが発生してからの動作に関する技術にすぎない。そのため、依然としてキャッシュの利用効率を改善することができず、アプリケーションの処理性能を向上させることができないという問題があった。
【０００８】
本発明の目的は、上述の課題を解決する情報処理システム及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の情報処理システムは、ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出してホストに転送する情報処理システムであって、処理対象データが存在する記憶媒体を示す位置情報を取得する取得手段と、複数の記憶媒体間に定められる優先順位であって、複数の記憶媒体に格納された処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理手段と、位置情報及びテーブルに基づいて処理対象データを読み出す処理手段と、を備える。処理対象データは、文字列の検索対象となるデータである。前記複数の記憶媒体は、第１の記憶媒体と第２の記憶媒体とを含む。前記処理手段は、前記第２の記憶媒体よりも読み出し速度の速い前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する文字列の検索処理を優先的に実行する。
【００１０】
本発明の情報処理方法は、ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出してホストに転送するステップと、処理対象データが存在する記憶媒体を示す位置情報を取得する取得ステップと、複数の記憶媒体間に定められる優先順位であって、複数の記憶媒体に格納された処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理ステップと、位置情報及びテーブルに基づいて処理対象データを読み出す処理ステップと、を含む。処理対象データは、文字列の検索対象となるデータである。前記処理ステップでは、前記第２の記憶媒体よりも読み出し速度の速い前記第１の記憶媒体に前記処理対象データの一部のみが格納されている場合、前記第１の記憶媒体に格納されている前記処理対象データの前記一部に対する文字列の検索処理を優先的に実行する。
【発明の効果】
【００１１】
本発明によれば、キャッシュの利用効率を改善し、アプリケーションの処理性能を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態にかかる情報処理システム１０００の構成を示す図である。
【図２】第１の実施形態にかかる情報処理システム１０００の動作を説明する図である。
【図３】第２の実施形態にかかる情報処理システム２０００の構成を示す図である。
【図４】第２の実施形態にかかる情報処理システム２０００の動作を説明する図である。
【図５】第３の実施形態にかかる情報処理システム３０００の構成を示す図である。
【図６】第３の実施形態にかかる情報処理システム３０００の動作を説明する図である。
【図７】第４の実施形態にかかる情報処理システム４０００の構成を示す図である。
【図８】第４の実施形態にかかる情報処理システム４０００の動作を説明する図である。
【発明を実施するための形態】
【００１３】
［第１の実施形態］
図１は、第１の実施形態にかかる情報処理システム１０００の構成を示す図である。
【００１４】
情報処理システム１０００は、ホスト（図示せず）からの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出してホストに転送する情報処理システムである。また、情報処理システム１０００は、取得手段１０、管理手段１１及び処理手段１２を備える。
【００１５】
本実施形態では、読み出し速度の異なる複数の記憶媒体を記憶媒体２０及び２１として説明する。記憶媒体２０及び２１は、例えばハードディスクと、当該ハードディスクよりも読み出し速度の速いキャッシュメモリである。
【００１６】
取得手段１０は、処理対象データが存在する記憶媒体を示す位置情報を取得する。
【００１７】
管理手段１１は、複数の記憶媒体２０、２１間に定められる優先順位であって、複数の記憶媒体２０、２１に格納された処理対象データの読み出し処理の優先順位を定めるテーブルを管理する。優先順位は、例えば、読み出し速度の速いキャッシュメモリに格納されている処理対象データから優先的に読み出すように定められる。
【００１８】
処理手段１２は、取得手段１０が取得した位置情報及び管理手段１１が管理するテーブルに基づいて処理対象データを読み出す。
【００１９】
図２は、情報処理システム１０００の動作を説明するフローチャートである。
【００２０】
管理手段１１は、記憶媒体２０及び２１間に定められる優先順位であって、記憶媒体２０及び２１に格納された処理対象データの読み出し処理の優先順位を定めるテーブルを管理している（ステップＳ１）。取得手段１０は、処理対象データが存在する記憶媒体を示す位置情報を取得する（ステップＳ２）。処理手段１２は、取得手段１０が取得した位置情報及び管理手段１１が管理するテーブルに基づいて処理対象データを読み出す（ステップＳ３）。
【００２１】
第１の実施形態にかかる情報処理システム１０００では、管理手段１１が記憶媒体２０及び２１間に定められる優先順位であって、記憶媒体２０及び２１に格納された処理対象データの読み出し処理の優先順位を定めるテーブルを管理している。そして、取得手段１０は、処理対象データの読み出し処理に先立って処理対象データが存在する記憶媒体を示す位置情報を取得する。処理手段１２は、取得手段１０が取得した位置情報及び管理手段１１が管理するテーブルに基づいて処理対象データを読み出すため、キャッシュミスの回数を減らすことができる。その結果、キャッシュの利用効率を改善し、アプリケーションの処理性能を向上させることができる。
【００２２】
上記説明ではキャッシュメモリ及びハードディスクの２つの記憶媒体を例として説明した。しかし、一般的にマルチティアストレージと呼ばれている、ハードディスクドライブ／ソリッドステートドライブ／ダイナミック・ランダム・アクセス・メモリという構成にも本発明を適用することができる。
【００２３】
［第２の実施形態］
業務アプリケーションを含むデータベースシステムあるいはファイルサーバシステムのバックエンドにおいてデータのバックアップ処理を実行するケースを考える。ここで、業務アプリケーションとは、会社等の業務を行ううえで業務の一部をコンピューター処理するものをいう。業務アプリケーションを含むデータベースシステムあるいはファイルサーバシステムのバックエンドにおいてデータのバックアップ処理を実行する際、当該バックアップ処理が発生させるＩ／Ｏ（Input/Output）によって大量のデータがキャッシュに読み込まれる。その結果、業務アプリケーションの使用しているデータが、キャッシュから押し出されて削除されてしまうことがある。これにより、業務アプリケーションの性能が低下してしまう。一方で、バックアップ処理において、キャッシュを経由しないダイレクトＩ／Ｏを用いれば、バックアップ処理によってキャッシュにデータが読み込まれることはない。しかし、全データに対してダイレクトＩ／Ｏを行うと、キャッシュされていたデータのディスクへの書き出しや読み込みが必要以上に行われるため、やはり業務アプリケーションの性能が低下してしまう。
【００２４】
第２の実施形態にかかる情報処理システムは、バックアップ処理に関するキャッシュの効率低下についての上述した課題を解決する。
【００２５】
図３は、第２の実施形態にかかる情報処理システム２０００の構成を示す図である。
【００２６】
情報処理システム２０００は、ビジネスアプリケーション１０１、バックアップアプリケーション１０３、取得手段１０４、管理手段１０５、キャッシュメモリ１０６、ストレージディスク１０７及びバックアップストレージディスク１０８を含んで構成される。
【００２７】
ビジネスアプリケーション１０１は、業務アプリケーションである。
【００２８】
バックアップアプリケーション１０３は、格納領域１０９、一時保存領域１１０及び処理手段１１２を備える。バックアップアプリケーション１０３は、ファイル１０２を指定して取得手段１０４（後述）を呼び出す。
【００２９】
ファイル１０２は、バックアップの対象となるファイルである。ファイル１０２は、ページオフセット位置(図３におけるファイル１０２内の点線箱内の数字に相当)を有する。ファイル１０２のデータは、キャッシュメモリ１０６（後述）及び／又はストレージディスク１０７（後述）に格納されている。ＯＳ（Operating System）は、ビジネスアプリケーション１０１からのアクセスに応じて、ファイル１０２のデータの配置を更新する。すなわち、ファイル１０２のデータがキャッシュメモリ１０６に格納されている（ページキャッシュが存在する）か、あるいはストレージディスク１０７にのみ格納されている（ページキャッシュが存在しない）かを更新する。
【００３０】
格納領域１０９は、ページキャッシュの存在情報（ページキャッシュ存在情報）を格納する領域である。ページキャッシュ存在情報は、例えばページキャッシュの有無を示す二値であり、ビットマップとして保存される。この場合、ビットマップの各ビットはページオフセット位置に対応する。
【００３１】
一時保存領域１１０は、バックアップ処理中にデータを一時保存するための領域である。
【００３２】
処理手段１１２は、第１の実施形態における処理手段１２に対応する構成である。処理手段１１２は、格納領域１０９が保持するページキャッシュ存在情報（ビットマップ）のページオフセット位置（各ビット）をチェックしてキャッシュメモリ１０６に格納されているデータを特定する。また、処理手段１１２は、キャッシュメモリ１０６に格納されているデータに対して、バッファードＩ／Ｏを用いてバックアップストレージディスク１０８（後述）への書き出し処理を実行する。また、キャッシュメモリ１０６に格納されていないデータに対して、ダイレクトＩ／Ｏを用いてストレージディスク１０７から一時保存領域１１０への読み込み処理を実行する。そして、一時保存領域１１０に読み込まれたデータに対して、ダイレクトＩ／Ｏを用いてバックアップストレージディスク１０８への書き出しを実行する。
【００３３】
取得手段１０４は、第１の実施形態における取得手段１０に対応する構成である。取得手段１０４は、ページキャッシュ存在情報を取得する。取得手段１０４は、例えばビジネスアプリケーション１０１からカーネルの処理を呼び出すシステムコールとして実装される。取得手段１０４は、カーネル内で管理手段１０５（後述）に対してページキャッシュの存在を問い合わせる。そして、取得手段１０４は、キャッシュメモリ１０６に格納されているデータのページオフセット位置を、バックアップアプリケーション１０３の格納領域１０９に格納する。図３では、灰色の箱によってデータが存在することを表している。
【００３４】
管理手段１０５は、第１の実施形態における管理手段１１に対応する構成である。ファイル１０２のデータがキャッシュメモリ１０６に格納されている（ページキャッシュが存在する）場合、データのページオフセット位置とページキャッシュのメモリ内アドレスとの対応を管理する。
【００３５】
キャッシュメモリ１０６は、バックアップ対象のファイルのデータをページキャッシュとして格納するキャッシュメモリである。キャッシュメモリ１０６は、ストレージディスク１０７（後述）よりも読み出し速度が速いものとする。
【００３６】
ストレージディスク１０７は、バックアップ対象のファイルのデータを格納するストレージである。
【００３７】
バックアップストレージディスク１０８は、バックアップデータを格納するストレージである。
【００３８】
第２の実施形態にかかる情報処理システム２０００の動作について、図３及び４を用いて説明する。
【００３９】
バックアップアプリケーション１０３がビジネスアプリケーション１０１の静止点を取ってバックアップ処理を開始する（ステップＳ２０１）。バックアップアプリケーション１０３は、取得手段１０４に対して対象ファイル１０２のページキャッシュ存在情報の取得を要求する（ステップＳ２０２）。取得手段１０４は、管理手段１０５からページキャッシュ存在情報を取得し、取得したページキャッシュ存在情報をバックアップアプリケーション１０３の格納領域１０９に格納する(ステップＳ２０３)。その後、バックアップアプリケーション１０３の処理手段１１２は、格納領域１０９に格納されているページキャッシュ存在情報のページオフセット位置をチェックしてキャッシュメモリ１０６に格納されているデータを特定する(ステップＳ２０４)。処理手段１１２は、キャッシュメモリ１０６に格納されているデータに対して、バッファードＩ／Ｏを用いてバックアップストレージディスク１０８への書き出し処理を実行する(ステップＳ２０５)。その後、キャッシュメモリ１０６に格納されていないデータに対して、ダイレクトＩ／Ｏを用いてストレージディスク１０７から一時保存領域１１０への読み込み処理を実行する(ステップＳ２０６)。続いて、一時保存領域１１０に読み込まれたデータに対して、ダイレクトＩ／Ｏを用いてバックアップストレージディスク１０８への書き出しを実行し(ステップＳ２０７)、処理を終了する(ステップＳ２０８)。
【００４０】
第２の実施形態にかかる情報処理システム２０００では、稼動中のシステムのバックエンドで行われるバックアップ処理において、ページキャッシュの存在情報に応じてバックアップ方法を分岐させる。これにより、ビジネスアプリケーションの性能に悪影響を及ぼすことなく、バックアップ処理を効率良く実施することができる。
【００４１】
［変形例１］
上記の説明では、ページキャッシュが存在するデータを優先的にバックアップ処理の対象としている。しかし、ファイル１０２のデータ列の先頭から順にページキャッシュの存在の有無を判定し、その都度バッファードＩ／Ｏを用いるかダイレクトＩ／Ｏを用いるかを選択する態様とすることもできる。
【００４２】
［第３の実施形態］
インデックス等を用いない単純な文字列検索処理では、ファイルのデータ列の先頭から順番に検索処理が進んでいく。そのため、データ列の途中にページキャッシュの存在しないページ、あるいはアクセスにかかる時間の長いページがあると、その都度リードを発行してＩ／Ｏ待ちをする必要があり、検索処理に膨大な時間を要するという問題があった。そこで、本実施形態では、当該問題を解決する手段について説明する。
【００４３】
図５は、第３の実施形態にかかる情報処理システム３０００の構成を示す図である。
【００４４】
情報処理システム３０００は、文字列検索アプリケーション３０１、取得手段３０４、キャッシュメモリ３０６、ストレージディスク３０７及び管理手段３０８を含む。
【００４５】
文字列検索アプリケーション３０１は、データ管理手段３０２及び検索処理実行手段３０３を備える。文字列検索アプリケーション３０１は、取得手段３０４を用いてカーネル内処理を呼び出し、ページキャッシュ情報の問い合わせや検索対象ファイル３０５のデータの非同期リード処理を実行する。
【００４６】
データ管理手段３０２は、格納領域３０９、格納領域３１０、格納領域３１１及び格納領域３１２を有する。
【００４７】
格納領域３０９は、検索対象データを格納する領域である。
【００４８】
格納領域３１０、３１１、３１２には、ファイルのページサイズ単位のオフセット位置を示すデータの配列（データの位置情報）が格納されている。格納領域３１０、３１１、３１２に格納されている位置情報は、検索処理実行手段３０３が検索処理を実行する際に参照される。
【００４９】
格納領域３１０は、取得手段３０４が取得したデータの位置情報を格納する領域である。取得手段３０４がデータの位置情報を取得するたびに格納領域３１０に位置情報が格納される。
【００５０】
格納領域３１１は、通算の取得済みデータの位置情報を格納する領域である。取得手段３０４が繰り返しデータの位置情報を取得し、その都度格納領域３１０に位置情報が格納される場合、通算でどのデータを取得済みか知る必要がある。そのため、格納領域３１０とは別の格納領域３１１において、通算の取得済みデータの位置情報を管理する。
【００５１】
格納領域３１２は、取得済みデータの位置情報を格納する領域である。領域手段３１２に格納される情報は、データ管理手段３０２が取得手段３０４を呼び出す際の入力となる。そのため、格納領域３１２には、格納領域３１１の情報がコピーされる。
【００５２】
検索処理実行手段３０３は、データ管理手段３０２からの検索指示を受けて検索処理を実行する。
【００５３】
取得手段３０４は、キャッシュメモリ３０６に格納されているデータ及び当該データの位置情報を取得する。
【００５４】
検索対象ファイル３０５のデータは、キャッシュメモリ３０６及び／又はストレージディスク３０７に格納されている。
【００５５】
管理手段３０８は、検索対象ファイル３０５のデータがキャッシュメモリ３０６に格納されている場合に、データのファイルオフセットとキャッシュメモリ３０６のメモリ内アドレスの対応を管理する。
【００５６】
本実施形態にかかる情報処理手段３０００の動作について、図５及び６を用いて説明する。
【００５７】
検索処理が開始すると(ステップＳ４０１)、文字列検索アプリケーション３０１内のデータ管理手段３０２は、検索対象ファイル３０５に対して取得手段３０４を呼び出す(ステップＳ４０２)。次に、取得手段３０４は、カーネル内の処理として、キャッシュメモリ３０６に格納されているデータの存在を管理手段３０８に問い合わせる。取得手段３０４は、キャッシュメモリ３０６に格納されているデータを格納領域３０９にコピーし、今回コピーされたデータの位置情報を格納領域３１０の配列に格納する(ステップＳ４０３)。今回コピーされなかったデータに相当する配列要素にはＮＵＬＬ値が格納される。格納領域３１１に格納される位置情報は、取得手段３０４によりコピーされたデータの位置情報が格納領域３１０に格納された後に毎回更新される。すなわち、格納領域３１０内の非ＮＵＬＬ値の配列要素の位置情報のみ格納領域３１１の同じ配列要素にコピーされる(ステップＳ４０４)。その後、検索実行手段３０３は、格納領域３１１の通算の取得データの位置情報と格納領域３０９の取得済みデータとを用いて検索文字列の検索処理を実行する(ステップＳ４０５)。次に、検索にヒットしたかどうかを確認し(ステップＳ４０６)、検索にヒットした場合は(ステップＳ４０６でｙeｓ)、検索の結果を格納する(ステップＳ４０７)。続いて、検索対象ファイル３０５の全データに対する検索処理が完了したか否か、すなわち、格納領域３１１内の配列の全ての要素に位置情報が格納されているか否かを判別する(ステップＳ４０８)。全データに対する検索処理が完了している、すなわち、格納領域３１１内の配列の全ての要素に位置情報が格納されている場合は(ステップＳ４０８でｙeｓ)、処理を終了する(ステップＳ４１１)。全データに対する検索処理が完了していない場合は(ステップＳ４０８でｎo)、未取得のデータを非同期リードするためのＩ／Ｏをストレージディスク３０７に対して発行する(ステップＳ４０９)。未取得のデータは、格納領域３１１に格納されている位置情報から把握される。その後、格納領域３１２内の配列に格納領域３１１の位置情報をコピーする(ステップＳ４１０)。そして、再度データ及び位置情報を取得して検索処理を繰り返す。この繰り返し処理において、前回のサイクルから時間が経過しているため非同期リードによりページキャッシュの状態が変更していると想定される。前回のデータ取得処理により取得されたデータは格納領域３０９に保持されているため、毎回の検索処理は更新されたデータに対して行われる。
【００５８】
第３の実施形態にかかる情報処理システム３０００では、検索対象ファイルのデータがキャッシュメモリに格納されているか否かを事前に調べ、キャッシュメモリに格納されているデータから優先的に検索する。これにより、検索処理に要する時間を短縮することができる。特に、ある種の文字列検索ではファイルに指定した文字列が少なくとも一つ存在するかどうかが分かれば良いという状況、すなわち、ヒットした文字列の位置や出現回数には関心がない状況が存在する。このような状況では、キャッシュメモリに格納されているデータに検索文字列が含まれていた場合にＩ／Ｏを行う必要がない。そのため、ファイル全行の逐次検索よりも検索処理に要する時間を短縮することができる。
【００５９】
［第４の実施形態］
本実施形態では、第３の実施形態にかかる情報処理システム３０００を、仮想環境やクラウド環境など、ストレージが多層に渡るシステムに拡張する態様について説明する。
【００６０】
図７は、本実施形態にかかる情報処理システム４０００の構成を示す図である。情報処理システム４０００は、文字列検索アプリケーション５０１、取得手段５０３、第１層ストレージ５０４、第２層ストレージ５０５、第Ｎ層ストレージ５０６、第１層ストレージのデバイスドライバ５０７、第２層ストレージのデバイスドライバ５０８及び第Ｎ層ストレージのデバイスドライバ５０９を含んで構成される。
【００６１】
ファイル５０２は、検索対象ファイルである。ファイル５０２のデータは、Ｎ層からなるストレージ５０４、５０５及び５０６のうち少なくとも一以上のストレージに格納されている。
【００６２】
文字列検索アプリケーション５０１は、格納領域５１０、第１層ストレージ上のデータ位置情報格納領域（格納領域）５１１、第２層ストレージ上のデータ位置情報格納領域（格納領域）５１２及び第Ｎ層ストレージ上のデータ位置情報格納領域（格納領域）５１３を備える。
【００６３】
格納領域５１０は、検索対象のデータを格納する領域である。
【００６４】
格納領域５１１、５１２及び５１３は、各層のストレージが格納するデータの位置情報を格納する領域である。
【００６５】
取得手段５０３は、各層のストレージのデバイスドライバ５０７、５０８及び５０９（後述）を介して検索対象のデータを取得し、文字列検索アプリケーション５０１の格納領域５１１、５１２及び５１３に格納する。
【００６６】
ストレージ５０４、５０５及び５０６は、検索対象のデータを格納する領域であり、多層に構成されている。典型的な例としては、第１層がページキャッシュ、第２層がストレージキャッシュ、第３層がストレージディスク、という構成がある。システムによっては、ネットワークストレージやクラウドストレージなどを含むことがある。
【００６７】
デバイスドライバ５０７、５０８及び５０９は、各層のストレージに対応して設けられ、ＯＳあるいはアプリケーションからストレージにアクセスするためのデバイスドライバである。
【００６８】
本実施形態にかかる情報処理システム４０００の動作について、図７及び図８を用いて説明する。
【００６９】
文字列検索アプリケーション５０１の処理を開始すると（ステップＳ５０１）、文字列検索アプリケーション５０１は、検索対象ファイル５０２に対して取得手段５０３を呼び出す（ステップＳ５０２）。取得手段５０３は、デバイスドライバ５０７、５０８及び５０９を介して検索対象データの位置情報を取得し、文字列検索アプリケーション５０１の各層のストレージに対応する格納領域５１１、５１２及び５１３に格納する（ステップＳ５０３）。また、第１層ストレージ(例えばページキャッシュ)等データ転送先に近い位置にデータが格納されている場合は、取得したデータを格納領域５１０にコピーする（ステップＳ５０４）。そして、文字列検索アプリケーション５０１の処理を終了する（ステップＳ５０５）。
【００７０】
本実施形態にかかる情報処理システム４０００によれば、各層のストレージに対応する格納領域５１１、５１２及び５１３を参照することにより、あるデータがどのストレージに保存されているかを知ることができる。また、あるデータへのアクセス時間に関する指標を得ることができる。また、ページキャッシュに未読み込みのデータに対する非同期リードを発行する際に効果を奏する。すなわち、どのデータに対して非同期リードを発行するかを判断する際に、最も浅い層にあるデータ、すなわちアクセス時間が短いと期待されるデータに対して優先的にリードを発行することができる。
【００７１】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて他の変形例、応用例を含むことは言うまでもない。上記の実施形態の一部又は全部は、以下のようにも記載されうるが、以下には限られない。
（付記１）
ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出して前記ホストに転送する情報処理システムであって、
前記処理対象データが存在する前記記憶媒体を示す位置情報を取得する取得手段と、
前記複数の記憶媒体間に定められる優先順位であって、前記複数の記憶媒体に格納された前記処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理手段と、
前記位置情報及び前記テーブルに基づいて前記処理対象データを読み出す処理手段と、を備える情報処理システム。
（付記２）
前記処理手段は、前記位置情報及び前記テーブルに基づいて、前記複数の記憶媒体に格納されている前記処理対象データに対して前記複数の記憶媒体ごとに異なる読み出し処理を実行する、付記１に記載の情報処理システム。
（付記３）
前記複数の記憶媒体はストレージディスク及び当該ストレージディスクよりも読み出し速度の速いキャッシュメモリであり、
前記処理手段は、前記処理対象データが前記キャッシュメモリに格納されている場合前記キャッシュメモリからの読み出し処理を実行し、前記処理対象データが前記キャッシュメモリに格納されていない場合前記ストレージディスクからの読み出し処理を実行する、付記１または２に記載の情報処理システム。
（付記４）
前記処理対象データは、検索対象となるデータであり、
前記処理手段は、前記複数の記憶媒体のうち読み出し速度の速い記憶媒体に格納されている前記処理対象データに対する検索処理を優先的に実行する、付記１または２に記載の情報処理システム。
（付記５）
前記処理手段は、前記位置情報及び前記テーブルに基づいて、前記転送にかかる時間が短いデータに対する読み出し処理を優先的に実行する、付記４に記載の情報処理システム。
（付記６）
ホストからの要求に応じて、読み出し速度の異なる複数の記憶媒体から処理対象データを読み出して前記ホストに転送するステップと、
前記処理対象データが存在する前記記憶媒体を示す位置情報を取得する取得ステップと、
前記複数の記憶媒体間に定められる優先順位であって、前記複数の記憶媒体に格納された前記処理対象データの読み出し処理の優先順位を定めるテーブルを管理する管理ステップと、
前記位置情報及び前記テーブルに基づいて前記処理対象データを読み出す処理ステップと、を含む情報処理方法。
（付記７）
前記処理ステップでは、前記位置情報及び前記テーブルに基づいて、前記複数の記憶媒体に格納されている前記処理対象データに対して前記複数の記憶媒体ごとに異なる読み出し処理を実行する、付記６に記載の情報処理方法。
（付記８）
前記複数の記憶媒体はストレージディスク及び当該ストレージディスクよりも読み出し速度の速いキャッシュメモリであり、
前記処理ステップでは、前記位置情報及び前記テーブルに基づいて、前記処理対象データが前記キャッシュメモリに格納されている場合前記キャッシュメモリからの読み出し処理を実行し、前記処理対象データが前記キャッシュメモリに格納されていない場合前記ストレージディスクからの読み出し処理を実行する、付記６または７に記載の情報処理方法。
（付記９）
前記処理対象データは、検索対象となるデータであり、
前記処理ステップでは、前記複数の記憶媒体のうち読み出し速度の速い記憶媒体に格納されている前記処理対象データに対する検索処理を優先的に実行する、付記６または７に記載の情報処理方法。
（付記１０）
前記処理ステップでは、前記位置情報及び前記テーブルに基づいて、前記転送にかかる時間が短いデータに対する読み出し処理を優先的に実行する、付記９に記載の情報処理方法。
【符号の説明】
【００７２】
１０、１０４、３０４、５０３  取得手段
１１、１０５、３０８  管理手段
１２、１１２  処理手段
２０、２１  記憶媒体
１０６、３０６  キャッシュメモリ
１０１  ビジネスアプリケーション
１０２、３０５、５０２  ファイル
１０３  バックアップアプリケーション
１０７、３０７  ストレージディスク
１０８  バックアップストレージディスク
１０９、３０９、３１０、３１１、３１２、５１０、５１１、５１２、５１３  格納領域
１１０  一時保存領域
３０１、５０１  文字列検索アプリケーション
３０２  データ管理手段
３０３  検索処理実行手段
５０４  第１層ストレージ
５０５  第２層ストレージ
５０６  第Ｎ層ストレージ
５０７  第１層ストレージのデバイスドライバ
５０８  第２層ストレージのデバイスドライバ
５０９  第Ｎ層ストレージのデバイスドライバ
１０００、２０００、３０００、４０００  情報処理システム
【図１】
0006743358.tif 000002
【図２】
0006743358.tif 000003
【図３】
0006743358.tif 000004
【図４】
0006743358.tif 000005
【図５】
0006743358.tif 000006
【図６】
0006743358.tif 000007
【図７】
0006743358.tif 000008
【図８】
0006743358.tif 000009