(57)【要約】  選択的なファイルシステムキャッシングを実装する方法である。この方法は、アプリケーションからＩ／Ｏ要求を受信するステップと、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップと、を含み、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。構成可能なキャッシュマップに基づいて、Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与する。次いで、キャッシング決定に従って、Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行する。
2013511091.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションからＩ／Ｏ要求を受信するステップと、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する、ステップと、
前記構成可能なキャッシュマップに基づいて前記Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与するステップと、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行するステップと、
を有する方法。
【請求項２】
前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連するメタデータとして受信される請求項１に記載の方法。
【請求項３】
前記アプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する請求項１に記載の方法。
【請求項４】
前記アプリケーションは、非キャッシュ通知を前記ファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、前記ファイルシステムが前記ダイレクトＩ／Ｏをキャッシングしないようにする請求項１に記載の方法。
【請求項５】
前記アプリケーションは、データベースアプリケーションである請求項１に記載の方法。
【請求項６】
前記アプリケーションは、ＯＤＭに準拠したインターフェイスモジュールを介して前記ファイルシステムとインターフェイスする請求項１に記載の方法。
【請求項７】
前記構成可能なキャッシュマップは、前記ファイルシステムのコマンドラインインターフェイスを介してユーザー定義される請求項１に記載の方法。
【請求項８】
前記構成可能なキャッシュマップは、前記ファイルシステムのＧＵＩインターフェイスを介してユーザー定義される請求項１に記載の方法。
【請求項９】
少なくとも１つのキャッシング決定により、前記ファイルシステムは、ファイルシステムキャッシュ内への先読みキャッシングを実行する請求項１に記載の方法。
【請求項１０】
前記先読みキャッシングは、前記キャッシング決定及び前記構成可能なキャッシュマップに従って実行される請求項９に記載の方法。
【請求項１１】
コンピュータシステムによって実行された場合に前記コンピュータシステムに方法を実行させるコンピュータ実行可能命令がその上部に保存されたコンピュータ可読ストレージ媒体であって、前記方法は、
データベースアプリケーションからＩ／Ｏ要求を受信するステップと、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御し、前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連したメタデータを有する、ステップと、
前記構成可能なキャッシュマップに基づいて、前記Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与するステップと、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行するステップと、
を有する、コンピュータ可読ストレージ媒体。
【請求項１２】
前記データベースアプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１３】
前記データベースアプリケーションは、非キャッシュ通知を前記ファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、前記ファイルシステムが前記ダイレクトＩ／Ｏをキャッシングしないようにする請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１４】
前記データベースアプリケーションは、ＯＤＭに準拠したインターフェイスモジュールを介して前記ファイルシステムとインターフェイスする請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１５】
少なくとも１つのキャッシング決定により、前記ファイルシステムは、ファイルシステムキャッシュ内への先読みキャッシングを実行し、前記先読みキャッシングは、前記キャッシング決定及び前記構成可能なキャッシュマップに従って実行される請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１６】
コンピュータ可読ストレージ媒体に結合されると共にコンピュータ可読コードを実行するプロセッサを有するコンピュータシステムを有し、
前記コンピュータ可読コードは、前記コンピュータシステムに、
データベースアプリケーションからＩ／Ｏ要求を受信させ、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較させ、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御し、且つ、前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連したメタデータを有し、
前記構成可能なキャッシュマップに基づいて前記Ｉ／Ｏ要求のそれぞれを処理させて、キャッシング決定を付与し、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行させる、
データベースコンピュータシステム。
【請求項１７】
前記データベースアプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する請求項１６に記載のコンピュータシステム。
【請求項１８】
前記データベースアプリケーションは、非キャッシュ通知を前記ファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、前記ファイルシステムが前記ダイレクトＩ／Ｏをキャッシングしないようにする請求項１６に記載のコンピュータシステム。
【請求項１９】
少なくとも１つのキャッシング決定により、前記ファイルシステムは、ファイルシステムキャッシュ内への先読みキャッシングを実行し、前記先読みキャッシングは、前記キャッシング決定及び前記構成可能なキャッシュマップに従って実行される請求項１６に記載のコンピュータシステム。
【請求項２０】
前記構成可能なキャッシュマップは、前記ファイルシステムのコマンドラインインターフェイスを介してユーザー定義される請求項１６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタルコンピュータシステムに関する。
【背景技術】
【０００２】
情報はビジネスの原動力である。現代の企業は、自らのビジネスを遂行するために、前例のないほどに、オンラインの、頻繁にアクセスされる、常に変化するデータに依存している。オンライントランザクション処理（ＯｎＬｉｎｅ  ｔｒａｎｓａｃｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ：ＯＬＴＰ）システムは、ビジネスの遂行における重要な部分を構成している。
【０００３】
通常のＯＬＴＰシステムは、トランザクションと、データベースに発生する多数の更新とを適度に且つ簡単に合成する処理を必要としている。ＯＬＴＰ環境におけるデータベースの性能は、データベースアプリケーション及びデータベースアプリケーションをサポートするファイルシステムのＩ／Ｏ速度及びメモリ構成によって大きく左右される。Ｉ／Ｏ性能及びメモリサブシステム性能を改善するための作業が精力的且つ継続的に行われている。
【０００４】
Ｏｒａｃｌｅ  Ｄｉｓｋ  Ｍａｎａｇｅｒ（商標）（ＯＤＭ）は、データベースアプリケーションが使用することができる代替Ｉ／Ｏインターフェイスである。ＯＤＭは、システム呼出し当たり複数のＩ／Ｏ要求することを可能にし、ファイル記述子の管理のオーバーヘッドを低減し、且つ、ファイル管理の意味を改善することにより、標準的なＰＯＳＩＸ  Ｉ／Ｏインターフェイスに比べて改善されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＯＤＭには、潜在的な性能問題が存在する。例えば、ＯＤＭは、ダイレクトＩ／Ｏインターフェイスを提供することにより、ファイルシステムのキャッシュ体系をバイパスしている。このようなダイレクトＩ／Ｏインターフェイスは、特定のＩ／Ｏ要求が（例えば、ファイルのロックメカニズム及び体系を迂回することによって）簡素化されるという利点を有する。しかしながら、ホストファイルシステムによるキャッシングの防止は、その他のタイプのＩ／Ｏ要求に伴う性能上の欠点を有する。その結果、従来のＯＤＭインターフェイスは、デーベース管理者に対して、魅力に欠ける二者択一を強いる可能性がある。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、ファイルシステムのキャッシュ構造をバイパスするダイレクトＩ／Ｏ能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合に、アプリケーションによって行われた特定のＩ／Ｏ要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。この選択的なキャッシュ又は非キャッシュの決定は、Ｉ／Ｏ要求がアプリケーションによって使用される方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。
【０００７】
一実施形態においては、本発明は、選択的なファイルシステムのキャッシングを実現するためのコンピュータに基づいた方法を有する。この方法は、アプリケーションからＩ／Ｏ要求を受信するステップと、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップとを含み、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップに基づいて処理し、キャッシング決定を付与する。次いで、キャッシング決定に従って、選択的なキャッシングがＩ／Ｏ要求のそれぞれに対して実行される。
【０００８】
一実施形態においては、Ｉ／Ｏタイプ及びファイルタイプは、Ｉ／Ｏ要求と関連したメタデータとして受信される。
【０００９】
一実施形態においては、アプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する。
【００１０】
一実施形態においては、アプリケーションは、非キャッシュ通知をファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、ファイルシステムがそのダイレクトＩ／Ｏをキャッシングしないようにする。
【００１１】
一実施形態においては、アプリケーションは、データベースアプリケーションである。
【００１２】
一実施形態においては、アプリケーションは、ＯＤＭに準拠したインターフェイスモジュールを介してファイルシステムとインターフェイスする。
【００１３】
一実施形態においては、構成可能なキャッシュマップは、ファイルシステムのコマンドラインインターフェイスを介してユーザー定義される。
【００１４】
一実施形態においては、構成可能なキャッシュマップは、ファイルシステムのＧＵＩインターフェイスを介してユーザー定義される。
【００１５】
一実施形態においては、少なくとも１つのキャッシング決定により、ファイルシステムは、ファイルシステムのキャッシュ内への先読みキャッシングを実行する。
【００１６】
一実施形態においては、先読みキャッシングは、キャッシング決定及び構成可能なキャッシュマップに従って実行される。
【００１７】
別の実施形態においては、本発明は、コンピュータシステムによって実行された場合にそのコンピュータシステムに方法を実行させるコンピュータ実行可能命令がその上部に保存されたコンピュータ可読ストレージ媒体として実現される。この方法は、データベースアプリケーションからＩ／Ｏ要求を受信するステップと、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップとを含み、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。Ｉ／Ｏタイプ及びファイルタイプは、Ｉ／Ｏ要求と関連したメタデータを構成する。本方法は、構成可能なキャッシュマップに基づいてＩ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与するステップと、キャッシング決定に従ってＩ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行するステップとを更に含む。
【００１８】
別の実施形態においては、本発明は、データベースコンピュータシステムとして実現される。このデータベースコンピュータシステムは、プロセッサを含み、このプロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、コンピュータ可読コードを実行し、このコンピュータ可読コードは、コンピュータシステムに、データベースアプリケーションからＩ／Ｏ要求を受信させ、且つ、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較させる。構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。Ｉ／Ｏタイプ及びファイルタイプは、Ｉ／Ｏ要求と関連したメタデータを構成する。コンピュータシステムは、構成可能なキャッシュマップに基づいてＩ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与する。次いで、コンピュータシステムは、キャッシング決定に従ってＩ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行する。
【００１９】
以上は、概要であり、且つ、従って、必要に応じて、詳細の単純化、一般化、及び省略を含む。従って、当業者は、この概要が、例示を目的としたものに過ぎず、且つ、いかなる方式においても限定を意図したものではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点については、以下に記述される非限定的な詳細な説明から明らかとなろう。
【００２０】
本発明は、限定としてではなく、且つ、一例としてのみ、添付図面の各図に示されており、且つ、これらの図面においては、同一の参照符号によって類似の要素を示している。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態による例示用の演算ノードの図を示す。
【図２】本発明の一実施形態による選択的キャッシング機能の実現に伴う情報及びデータの流れを表す流れ図を示す。
【図３】本発明の一実施形態に従ってアプリケーションから受信されたＩ／Ｏ要求を示す。
【図４】本発明の一実施形態による構成可能なキャッシュマップを示す。
【図５】本発明の一実施形態によるＯＤＭに準拠したコンポーネントとファイルシステムとファイルシステムカーネルの間の関係を表す図を示す。
【図６】本発明の一実施形態によるＯＤＭに準拠したコンポーネントとファイルシステムとファイルシステムカーネルの間のユーザーモードの関係を表す図を示す。
【図７】本発明の一実施形態による構成可能なキャッシュマップを構成するためのコマンドラインインターフェイスを表示するモニタを示す。
【図８】本発明の一実施形態による構成可能なキャッシュマップを構成するためのＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を表示するモニタを示す。
【図９】本発明の一実施形態による選択的なキャッシングプロセスの各ステップのフローチャートを示す。
【図１０】本発明の一実施形態によるモジュールのソフトウェアに基づいたインスタンスを保存するコンピュータ可読ストレージ媒体を示す。
【図１１】一実施形態による例示用のコンピュータシステムを示す。
【発明を実施するための形態】
【００２２】
本発明は、一実施形態との関連において記述されているが、本発明は、本明細書に記述されている特定の形態に限定されることを意図したものではない。むしろ、添付の請求項によって規定された本発明の範囲に合理的に包含されうる代替、変更、及び均等物を含むものと解釈されたい。
【００２３】
以下の詳細な説明には、特定の方法順序、構造、要素、及び接続などの多数の特定の詳細事項が記述されている。しかしながら、これらの及びその他の特定の詳細事項は、本発明の実施形態を実施するために必ずしも利用される必要はないことを理解されたい。その他の状況においては、説明を不必要にわかりにくくすることを回避するために、周知の構造、要素、又は接続については、省略されるか、或いは、詳細な説明が省略されている。
【００２４】
本明細書における「一実施形態」又は「実施形態」に対する参照は、その実施形態との関連において記述されている特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを示すものと解釈されたい。本明細書の様々な場所における「一実施形態において」という表現の出現は、必ずしもそのすべてが同一の実施形態を参照するものではなく、且つ、その他の実施形態を互いに排除する別個の又は代替の実施形態を参照するものでもない。更には、様々な特徴について記述されているが、これらの特徴は、いくつかの実施形態は、有しているが、その他のものは、有していない場合がある。同様に、様々な要件について記述されているが、これらの要件は、いくつかの実施形態には、当て嵌まるが、その他の実施形態には、当て嵌まらない場合がある。
【００２５】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作の手順、ステップ、論理ブロック、処理、及びその他の象徴的表象の観点において提示されている。これらの記述及び表現は、自身の作業の本質をその他の当業者に対して最も効果的に伝達するためにデータ処理分野における当業者が使用する手段である。手順、コンピュータによって実行されるステップ、論理ブロック、プロセスなどは、本明細書においては、且つ、一般的には、望ましい結果をもたらすステップ又は命令の自己一貫性を有するシーケンスであると見なされたい。これらのステップは、物理的な量の物理的な操作を必要とするものである。通常、但し、必須ではないが、これらの量は、コンピュータ可読ストレージ媒体の電気的又は磁気的信号の形態をとり、且つ、コンピュータシステム内において、保存、転送、合成、比較、及びその他の方法によって操作することができる。しばしば、主には一般的な使用を理由として、これらの信号を、ビット、値、要素、シンボル、文字、用語、数値、又はこれらに類似したものとして参照することが便利であることが証明されている。
【００２６】
但し、これらの及び類似の用語のすべては、適切な物理量と関連付けられることを要し、且つ、これらの量に対して適用された簡便なラベルに過ぎないという点に留意されたい。以下の説明から明らかなように、特記されていない限り、本発明の全体を通じて、「処理」又は「アクセス」又は「書込み」又は「保存」又は「移動」又はこれらに類似したものなどの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ並びにその他のコンピュータ可読媒体内において物理的（電子的）な量として表現されたデータを操作し、且つ、これをコンピュータシステムのメモリ又はレジスタ或いはその他の情報の保存、伝送、又は表示装置内において物理的な量として同様に表現されたその他のデータに変換するコンピュータシステム又は類似の電子演算装置の動作及びプロセスを意味していることを理解されたい。
【００２７】
本発明の実施形態は、有利には、ファイルシステムのキャッシュ体系又はキャッシュ構造をバイパスするダイレクトＩ／Ｏ能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合に、アプリケーション（例えば、データベースアプリケーション）によって行われた特定のＩ／Ｏ要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。一実施形態においては、選択的なキャッシュ又は非キャッシュの決定は、アプリケーションから受信される構成設定及びメタデータに基づいている。このメタデータは、Ｉ／Ｏ要求を構成するデータをアプリケーションが処理する方法に関する「ヒント」又は通知を提供する。以下、図１に示されている例示用のファイルシステム演算ノードについて説明することとする。
【００２８】
図１は、本発明の一実施形態による例示用の演算ノード１００の図を示している。図１の実施形態は、マルチボリュームのボリュームセット（例えば、ボリュームセット１１０）にアクセスするコンピュータシステムの一例を示している。ボリュームマネージャ１０６は、通常、マルチボリュームセット１１０を構成するボリュームに対して動作するように構成されている。ボリュームマネージャは、ファイルシステム１０４との関連において動作することにより、ノード１００上において稼働している１つ又は複数のアプリケーション１０２に対してデータの保存及びデータのＩ／Ｏサービスを提供する。図１の実施形態においては、アプリケーション１０２は、その独自のアプリケーションキャッシュデータ構造１１９を含み、且つ、その独自のキャッシング体系及び技法をサポートするように構成されている。ファイルシステムは、その独自のファイルシステムキャッシュ１２０を維持している。演算ノード１００は、コンピュータネットワーク１４０（例えば、ＬＡＮ、ＷＡＮ、インターネットなど）を介して、その他の外部コンピュータ及びその他のネットワークに結合されている。
【００２９】
又、図１は、選択的キャッシングインターフェイス１０５、決定エンジン１１８、構成可能なキャッシュマップ１３０、及びファイルシステムキャッシュ１２０をも示している。
【００３０】
選択的キャッシングインターフェイス１０６は、アプリケーションからＩ／Ｏ要求を受信し、且つ、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較することにより、機能し、この場合に、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。決定エンジン１１８は、構成可能なキャッシュマップに基づいてＩ／Ｏ要求のそれぞれを処理してキャッシング決定を付与することにより、機能する。次いで、キャッシング決定に従って、選択的なキャッシングがＩ／Ｏ要求のそれぞれに対して実行される。
【００３１】
図２は、本発明の一実施形態による選択的キャッシング機能の実現に伴う情報及びデータの流れを示す流れ図を示している。図２に示されているように、データフローの関係は、アプリケーション１０２、選択的キャッシングインターフェイス１０５、決定エンジン１１８及びキャッシュマップ１３０、並びに、ファイルシステム１０４及びファイルシステムキャッシュ１２０に関係するものとして示されている。
【００３２】
前述のように、本発明の実施形態は、ファイルシステムのキャッシュ構造（例えば、ファイルシステムキャッシュ１２０）をバイパスするダイレクトＩ／Ｏ能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合には、アプリケーションによって行われる特定のＩ／Ｏ要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。選択的なキャッシュ又は非キャッシュの決定は、Ｉ／Ｏ要求を処理する方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。このように、アプリケーションは、Ｉ／Ｏ要求から結果的に得られるデータの自身が意図する使用方法を示す「ヒント」をファイルシステムに対して提供する。
【００３３】
図２は、アプリケーション１０２からＩ／Ｏ要求を受信する選択的キャッシングインターフェイス１０５を示している。Ｉ／Ｏ要求は、それぞれの特定のＩ／Ｏ要求のＩ／Ｏタイプ及びファイルタイプを表すメタデータを含む。Ｉ／Ｏ要求がファイルシステム１０４に伝達されるのに伴って、決定エンジン１１８は、Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップ１３０と比較する。
【００３４】
構成可能なキャッシュマップとは、アプリケーション１０２から受信されたＩ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー（例えば、システム管理者）構成可能なコンポーネントである。構成可能なキャッシュマップ１３０に基づいてＩ／Ｏ要求のそれぞれを決定エンジン１１８によって処理し、キャッシング決定を付与する。
【００３５】
次いで、ファイルシステム１０４は、データストレージ１１１のボリュームを伴うＩ／Ｏ要求を処理する。ファイルシステムは、キャッシング決定に従ってＩ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行する。例えば、キャッシュ又は非キャッシュの決定に従って、特定のＩ／Ｏ要求を構成するデータが、ファイルシステムキャッシュ１２０内においてキャッシングされるか、或いは、キャッシングされない。
【００３６】
一実施形態においては、選択的キャッシングインターフェイス１０５は、ＯＤＭに準拠したインターフェイスモジュールを有する。換言すれば、選択的キャッシングインターフェイスは、アプリケーションからは、Ｏｒａｃｌｅ  Ｄｉｓｋ  Ｍａｎａｇｅｒ（ＯＤＭ）として見える。ＯＤＭは、データベースアプリケーション（例えば、Ｏｒａｃｌｅ  １０（商標）など）が使用することができるＩ／Ｏインターフェイスである。これは、アプリケーション１０２がデータベースアプリケーションであるシナリオにおいて特に有用である。
【００３７】
本発明の実施形態は、従来のＯＤＭに伴って発生する問題を解決する。前述のように、選択的キャッシングインターフェイス１０５は、ダイレクトＩ／Ｏインターフェイスをアプリケーションに提供することができ、これにより、ファイルシステムのキャッシュ体系をバイパスする。このようなダイレクトＩ／Ｏインターフェイスは、（例えば、ファイルのロックメカニズム及び体系を迂回することによって）特定の要求が簡素化されるという利点を有する。又、選択的キャッシングインターフェイス１０５は、その他の性能面での利点のいくつか（例えば、Ｉ／Ｏロックの回避）を維持しつつ、ファイルシステムを使用することによって特定のファイルに対するＩ／Ｏ要求のキャッシングを可能にするファイルシステムキャッシング能力をも有する。
【００３８】
一実施形態においては、この選択的なキャッシングは、具体的には、二重キャッシングの問題を回避するように構成されている。この問題は、アプリケーションがその独自のキャッシング体系及びキャッシング仕様を有すると共にアプリケーションがアプリケーションキャッシュ１１９を使用してその独自のキャッシングシステムを実行する状況において発生する。このＩ／Ｏ情報は、ファイルシステムキャッシュ１２０内において重複されるべきではない。例えば、アプリケーションがデータベースアプリケーションである実施形態においては、アプリケーションキャッシュ内においてデータベースアプリケーション自体によってキャッシュされる読取りをファイルシステムキャッシュによってキャッシングするべきではない。このような二重キャッシングを明示的に回避するために、多くのデーベースアプリケーションがＯＤＭやＱＩＯのようなダイレクトＩ／Ｏインターフェイスを利用していることから、これは非常に有用である。その一方で、アプリケーション１０２以外のその他のプロセスは、このようなキャッシングの利点を享受し得ることから、プロセス別のメモリに書き込むためのシーケンシャル読取りに使用されるファイルシステムキャッシングは、ファイルシステム自体の内部においてキャッシングを実行するより適当な候補である。
【００３９】
一実施形態においては、具体的には、特定のＩ／Ｏタイプ及びファイルタイプについて、先読みキャッシングがファイルシステムによって実行される。前述のように、いくつかのプロセス及び／又はアプリケーションがノード１００内において稼働している状況においては、ファイルシステムキャッシングは、性能面における利点をプロセスのそれぞれに対して提供する。このような一実施形態においては、具体的には、ファイルシステムキャッシュを使用し、シーケンシャル先読みキャッシングをファイルシステムによって実行することができる。
【００４０】
選択的キャッシング機能は、Ｃｌｕｓｔｅｒ  Ｆｉｌｅ  Ｓｙｓｔｅｍ上のファイルにも拡張することができることに留意されたい。キャッシュは、ファイルが書き込まれる際に、クラスタの全体を通じて適切に無効化される。
【００４１】
図３は、本発明の一実施形態によるアプリケーションから受信されるＩ／Ｏ要求を示している。図３に示されているように、Ｉ／Ｏ要求３００は、Ｉ／Ｏ要求メタデータ３０１及び要求されたＩ／Ｏデータ３０２を含む。このＩ／Ｏデータ要求３０２に基づいて、ファイルシステムは動作し、ボリューム１１０からデータを読み取るか又はボリューム１１０へデータを書き込む。前述のように、選択的なキャッシュ又は非キャッシュの決定は、アプリケーションがＩ／Ｏ要求を処理する方法に関する通知を提供するアプリケーションから受信されるメタデータに基づいている。アプリケーションは、Ｉ／Ｏ要求から結果的に得られるデータの自身の意図する使用方法について通知する「ヒント」をファイルシステムに提供する。Ｉ／Ｏ要求は、それぞれの特定のＩ／Ｏ要求のＩ／Ｏタイプ及びファイルタイプを表すメタデータ３０１を含む。
【００４２】
図４は、本発明の一実施形態による構成可能なキャッシュマップ４００を示している。前述のように、選択的なキャッシュ又は非キャッシュの決定は、Ｉ／Ｏ要求を処理する方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。これらの構成設定は、構成可能なキャッシュマップによって提供される。
【００４３】
前述のように、構成可能なキャッシュマップとは、アプリケーション１０２から受信されるＩ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー（例えば、システム管理者）構成可能なコンポーネントである。構成可能なキャッシュマップ１３０に基づいてＩ／Ｏ要求のそれぞれを決定エンジン１１８によって処理し、キャッシング決定を付与する。
【００４４】
このマップは、それぞれのファイルタイプごとに、且つ、それぞれのＩ／Ｏタイプごとに（例えば、一実施形態においては、ファイルタイプ及びＩ／Ｏタイプのペアごとに）、Ｉ／Ｏ要求をキャッシングするかどうかをファイルシステムに対して指示することができるという点において、ユーザー構成可能である。アプリケーションがすべてのデータベースプロセスが利用可能な共有メモリ内においてそのデータ自体をキャッシングしていると示唆するタイプペアについては、キャッシングは、無効化されることになろう。キャッシングに加えて、特定のファイルタイプ及びＩ／Ｏタイプのペアについて、先読みキャッシングを条件付きで実行するように、ファイルシステムに対して指示することができる。特定のファイルタイプ及び特定のＩ／Ｏタイプについて、常にキャッシング又は先読みを実行するように、ファイルシステムに対して指示することができる。
【００４５】
図５は、本発明の一実施形態によるＯＤＭに準拠したコンポーネント５０１とファイルシステム１０４とファイルシステムカーネル５１０の間の関係を表す図を示している。図５に示されているように、選択的キャッシングインターフェイスは、ＯＤＭに準拠したコンポーネント５０１として実現される。前述のように、一実施形態においては、選択的キャッシングインターフェイス１０５は、ＯＤＭに準拠したインターフェイスモジュールを有する。ＯＤＭに準拠したコンポーネント５０１は、アプリケーションからは、Ｏｒａｃｌｅ  Ｄｉｓｋ  Ｍａｎａｇｅｒ（ＯＤＭ）として見える。ＯＤＭは、データベースアプリケーション（例えば、Ｏｒａｃｌｅ  １０（商標））が使用することができるＩ／Ｏインターフェイスである。
【００４６】
図５の実施形態においては、ＯＤＭに準拠したコンポーネント５０１は、保護されたカーネル５１０の外部において、アプリケーションのメモリ空間内に存在している。カーネル空間内に存在するファイルシステム１０４とインターフェイスする選択的キャッシングファイルシステムコンポーネント５０２が存在している。従って、Ｉ／Ｏ要求がアプリケーション１０２から到来するのに伴って、ユーザーモードとカーネルモードの間における１回のコンテキスト切替えが存在している。
【００４７】
図６は、本発明の別の実施形態によるＯＤＭに準拠したコンポーネント６０１とファイルシステム１０４とファイルシステムカーネル６１０の間のユーザーモードの関係を表す図を示している。図６に示されているように、ＯＤＭに準拠したコンポーネント６０１と選択的キャッシングファイルシステムコンポーネント６０２は、いずれも、ユーザーモードのコンポーネントとして実現されている。この構成においては、ファイルシステムカーネルを構成するコードを比較的安定した状態において維持することができる。ファイルシステムカーネルのコードは、集中的にデバッグされると共に集中的に試験される傾向を有する。従って、カーネルコードの安定性の維持に対する強いインセンティブが存在している。
【００４８】
図６の実施形態においては、ＯＤＭに準拠したコンポーネント５０１は、保護されたカーネル５１０の外部、アプリケーションのメモリ空間内に存在している。こちらもまた保護されたカーネルの外部に存在しているファイルシステム１０４とインターフェイスする選択的キャッシングファイルシステムコンポーネント５０２が存在している。従って、図５の実施形態と同様に、Ｉ／Ｏ要求がアプリケーション１０２から到来するのに伴って、ユーザーモードとカーネルモードの間における１回のコンテキスト切替えが存在している。
【００４９】
図７は、本発明の一実施形態による構成可能なキャッシュマップを構成するためのコマンドラインインターフェイスを表示するモニタ７００を示している。前述のように、構成可能なキャッシュマップとは、アプリケーション１０２から受信されるＩ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー（例えば、システム管理者など）構成可能なコンポーネントである。このマップは、それぞれのファイルタイプごとに、且つ、それぞれのＩ／Ｏタイプごとに、Ｉ／Ｏ要求を処理する方法について、ファイルシステムに対して指示することができるという点において、ユーザー構成可能である。図７の実施形態においては、この構成をコマンドラインインターフェイスを介して実行している。
【００５０】
図８は、本発明の一実施形態による構成可能なキャッシュマップを構成するためのＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を表示するモニタ８００を示している。構成可能なキャッシュマップの機能は、図７の実施形態において説明したものと実質的に同一である。但し、図８の実施形態は、ユーザー（例えば、システム管理者）がマップとやり取りしてマップを構成することができるＧＵＩ要素を示している。
【００５１】
図９は、本発明の一実施形態による選択的なキャッシングプロセス９００の各ステップのフローチャートを示している。図９に示されているように、プロセス９００は、アプリケーションからのＩ／Ｏ要求を処理する際の選択的なキャッシングプロセスの例示用の動作ステップを示している。
【００５２】
プロセス９００は、ステップ９０１において始まっており、選択的キャッシングインターフェイスがアプリケーションからＩ／Ｏ要求を受信する。ステップ９０２において、決定エンジンは、Ｉ／Ｏ要求を構成可能なキャッシュマップと比較する。前述のように、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。ステップ９０３において、Ｉ／Ｏ要求が決定エンジンによって処理され、キャッシング決定が付与される。前述のように、この決定は、構成可能なキャッシュマップに基づいている。この後に、ステップ９０４において、キャッシング決定に従って、Ｉ／Ｏ要求に対して選択的なキャッシングがファイルシステムによって実行される。ステップ９０５に示されているように、選択的なキャッシングプロセスは、新しいＩ／Ｏ要求がアプリケーションから受信されるのに伴って継続する。
【００５３】
図１０は、本発明の一実施形態によるモジュール１００１〜１００４のソフトウェアに基づいたインスタンスを保存するコンピュータ可読ストレージ媒体を示している。図１０に示されているように、モジュール１００１〜１００４は、アプリケーションからのＩ／Ｏ要求を選択的にキャッシングするためのプロセス（例えば、図９のプロセス９００）を実行することにより、機能する。
【００５４】
Ｉ／Ｏ要求受信モジュール９０１は、コンピュータシステム上において稼働するアプリケーション（例えば、データベースアプリケーション）からＩ／Ｏ要求を受信することにより、機能する。Ｉ／Ｏ比較モジュール９０２は、Ｉ／Ｏ要求を構成可能なキャッシュマップと比較することにより、機能する。前述のように、構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。Ｉ／Ｏキャッシング意思決定モジュール９０３は、Ｉ／Ｏ要求を処理してキャッシング決定を付与することにより、機能する。前述のように、この決定は、構成可能なキャッシュマップに基づいている。選択的キャッシング実行モジュールは、ファイルシステムを介して選択的なキャッシングを実行することにより、機能する。
【００５５】
アプリケーションがデータベースアプリケーションである一実施形態においては、データベースアプリケーションは、ダイレクトＩ／Ｏの利点を享受し、これにより、ファイルシステムのページキャッシュをバイパスすると共に非同期Ｉ／Ｏを実行することができることに留意されたい。これは、書込み集約的なＯＬＴＰ（ｏｎＬｉｎｅ  ｔｒａｎｓａｃｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ）作業負荷の性能を向上させるのに有用である。データウェアハウスアプリケーションは、読取り集約的であり、且つ、従来のＯＤＭの場合には、ファイルシステムのページキャッシングの欠如に起因して問題が発生する可能性がある。しかしながら、本発明の実施形態によれば、ファイルシステムのページキャッシングとデータベースアプリケーションの非同期ダイレクトＩ／Ｏの両方の利点が得られる。
【００５６】
一実施形態においては、選択的なキャッシング機能は、組込み型の先読みインテリジェンス及びライトスルーキャッシュインテリジェンスを有する。一実施形態においては、選択的なＩ／Ｏキャッシングを最適化するために、作業負荷を稼働させ、且つ、統計値を計測しており、この場合に、キャッシングは、ヒット率に応じて、ファイルごとに選択的にターンオフされる。これは、統計値を収集するために実行される。これらの統計値により、システムは、選択的なＩ／Ｏキャッシングアルゴリズムを慎重にチューニングすることができる。又、このプロセスにより、作業負荷が時間に伴って変化した際に選択的なＩ／Ｏキャッシングの最適な性能が維持される。
【００５７】
Ｏｒａｃｌｅ１０ｇ（商標）データベースアプリケーションと共に動作するように構成された特定の一実施形態においては、このデータベースがＩ／Ｏヒントを伝達し、且つ、前述のように、このヒントは、データベースが実行するＩ／Ｏ動作のタイプを通知する。以下、いくつかの例示用のヒントについて説明する。Ｏｒａｃｌｅ１０ｇ（商標）によれば、すべてのＯＤＭ  Ｉ／Ｏ要求がｏｄｍ＿ｉｏｃ構造内にヒントを有する。タイプは、ファイル生成及びファイル識別の際にアプリケーションによって一時的にファイルと関連付けられる。以下の例示用のファイルタイプが規定されている。
【００５８】
ｔｙｐｅｄｅｆ  ｓｗｏｒｄ  ｏｄｍ＿ｆｔ；    ／＊Ｏｒａｃｌｅ（商標）、ファイルタイプ＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＣＴＬ        １  ／＊制御ファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＤＡＴＡ      ２  ／＊データファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＯＬＧ        ３  ／＊オンラインログファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＡＬＧ        ４  ／＊アーカイブログファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＴＲＣ        ５  ／＊トレースファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＴＳＯＲＴ    ６  ／＊一時ソートファイル＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＤＢＫＵＰ    ９  ／＊デーファイルバックアップ片＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＤＩＢＫＵＰ  １０  ／＊データファイル増分バックアップ片＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＡＢＫＵＰ    １１  ／＊アーカイブログバックアップ片＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＤＣＯＰＹ    １２  ／＊データファイルの複写＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＩＮＩＴ      １３  ／＊パーシステント初期化パラメータ＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＦＴ＿ＤＲＣ        １４  ／＊ディザスタリカバリー構成＊／
【００５９】
ファイルタイプから推定することができるヒントうちのいくつかのもの：「Ｉ／ＯからＦＴ＿ＯＬＧ及びＦＴ＿ＡＬＧは、常にシーケンシャルであり、且つ、絶対にサイズ変更することはなく」、且つ、「Ｉ／ＯからＦＴ＿ＴＲＣ及びＦＴ＿ＩＮＩＴは、重要ではない」。Ｉ／Ｏヒントは、ＯＤＭインターフェイスを通過したそれぞれのＩ／Ｏ要求と関連付けられる。動的なキャッシングを利用することができるＩ／Ｏヒントのうちのいくつかのものは、次のとおりである。
【００６０】
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＲＥＤＯＬＯＧ＿ＷＲＩＴＥ      １  ／＊再実行ログ書込み＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＲＥＤＯＬＯＧ＿ＲＥＡＤ        ２  ／＊回復のための再実行ログ読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＡＲＣＨＬＯＧ＿ＲＥＡＤ        ３  ／＊回復のためのアーカイブログ書込み＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＭＩＲＲＯＲ＿ＲＥＡＤ          ５  ／＊エラーの際のブロックの再読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＤＡＴＡ＿ＣＡＣＨＥ＿ＬＯＡＤ  １３  ／＊バッファキャッシュ読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＲＥＡＤ＿ＤＡＴＡ＿ＨＥＡＤＥＲ  １４  ／＊データヘッダ読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＤＡＴＡ＿ＲＥＡＤ＿ＳＥＱ        １６  ／＊プライベートメモリに対するデータファイル読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＲＥＤＯＬＯＧ＿ＡＲＥＡＤ        ３２  ／＊アーカイブのための再実行ログ読取り＊／
＃ｄｅｆｉｎｅ  ＯＤＭ＿ＤＡＴＡＰＵＭＰ                  ３６  ／＊データポンプＩ／Ｏ＊／
【００６１】
性能の理由から、選択的なキャッシングアルゴリズムは、先読みキャッシングをターンオフするための適切なアルゴリズムを有する必要があることに留意されたい。データベースが長時間にわたって稼働している際には、選択的なキャッシングアルゴリズムがヒントを取得し、且つ、データベースを構成するファイルの大部分において先読みキャッシングをターンオンするかなりの可能性が存在する。先読みキャッシングを無効にするための適切なアルゴリズムなしには、余分な先読みキャッシング及びページングに起因し、性能が徐々に低下することになる。
【００６２】
一実施形態においては、先読みキャッシングは、システムが低メモリ状態（例えば、空きメモリ＜合計の２０％）に到達した際に、ターンオフされる。一実施形態においては、先読みキャッシングは、ファイルが過剰な書き込みを受けた際に、ターンオフされる。この理由は、書込みが多数のキャッシュの無効化を結果的にもたらすためである。一実施形態においては、先読みキャッシングは、データファイルの特定の割合を上回るものがキャッシングされた後に、ターンオフされる。
【００６３】
図１１は、一実施形態による例示用のコンピュータシステム１１００を示している。コンピュータシステム１１００は、前述の実施形態のための特定のハードウェアに基づいた及びソフトウェアに基づいた機能のための実行環境を提供する基本的なコンピュータシステムのコンポーネントを示している。例えば、コンピュータシステム１１００は、１つ又は複数のソフトウェアスタック及びソフトウェアモジュールのインスタンスがその上部に生成されるシステムであってよい。コンピュータシステム１１００は、例えば、サーバーコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実現することができる。同様に、コンピュータシステム１１００は、ハンドヘルド型の装置として実現することもできる。コンピュータシステム１１００は、通常、少なくともなんからの形態のコンピュータ可読媒体（例えば、コンピュータ可読ストレージ媒体１１０１）を含む。コンピュータ可読媒体は、コンピュータシステム１１００がアクセスすることができると共に限定を伴うことなしにコンピュータストレージ媒体を含むことができるいくつかの異なるタイプの入手可能な媒体であってよい。
【００６４】
その最も基本的な構成において、コンピュータシステム１１００は、通常、処理装置１１０３と、メモリ１１０１とを含む。使用されるコンピュータシステム１１００の正確な構成及びタイプに応じて、メモリ１１０１は、揮発性（例えば、ＤＲＡＭなど）１１０１ａであるか、不揮発性１１０１ｂ（例えば、ＲＯＭ、フラッシュメモリなど）であるか、又はこれら２つのなんらかの組合せであってよい。同様に、メモリ１１０１は、半導体装置以外の、例えば、磁気ディスクに基づいた媒体、光学媒体、又はこれらに類似したものなどのその他の装置を有することもできる。
【００６５】
更には、コンピュータシステム１１００は、磁気又は光学ディスク又はテープなどのその他の大容量ストレージシステム（例えば、取り外し可能型１１０５及び／又は取り外し不能型１１０７）を含むことができる。同様に、コンピュータシステム１１００は、入力装置１１０９及び／又は出力装置１１１１（ディスプレイなど）を含むこともできる。コンピュータシステム１１００は、有線又は無線媒体を使用した、その他の装置、コンピュータ、ネットワーク、サーバーなどへのネットワーク接続１１１３を更に含む。これらの装置は、いずれも、当技術分野において周知であることから、これらの詳細な説明は不要である。
【００６６】
コンピュータ１１００は、コンピュータシステム１１００の機能が部分的又は全体的にクラウド演算環境を使用して実行される場合のように、多数の分散演算ノードを有する分散コンピュータシステムにより、その機能の一部、大部分、又はすべてを代行させることができることに更に留意されたい。
【００６７】
本明細書において使用されている「ボリューム」という用語は、１つ又は複数のストレージ装置上における任意の規定の量のストレージを意味してもよいことに留意されたい。そのサイズと、それが割り当てられるストレージ装置又は装置と、に加えて、ボリュームは、いくつかの場合においては、その他の属性（例えば、ミラーリング、ストライピング、ＲＡＩＤレベル、スパニング、又は連結などの保護／性能面における特徴）を有してもよい。ボリュームという用語は、例えば、Ｌｉｎｕｘ（商標）、ＩＢＭ  Ｃｏｒｐ．社のＡＩＸ、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社のＳｏｌａｒｉｓなどのＵｎｉｘ（商標）タイプのオペレーティングシステムにおいて使用される論理ボリュームを含んでもよい。又、ボリュームという用語は、例えば、ＶＥＲＩＴＡＳ  Ｓｏｆｔｗａｒｅ  Ｃｏｒｐｏｒａｔｉｏｎ社のＶＥＲＩＴＡＳ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｒ（商標）などの様々なボリュームマネージャソフトウェアによって規定されるボリュームを含んでもよい。ボリュームという用語は、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）及び／又はＤＯＳ（ｄｉｓｋ  ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）オペレーティングシステムにおいて使用されるパーティションを更に含んでもよい。パーティションは、パーティション化されたストレージをディスクドライブ上のその他のストレージから隔離する単一ディスクドライブ上のストレージの１つの分割区画であってよい。パーティションは、プライマリ型であってもよく、或いは、拡張型であってもよい。ボリュームという用語は、ボリュームグループを更に意味してもよい。
【００６８】
説明を目的とした以上の記述内容は、特定の実施形態を参照して記述されている。しかしながら、上述の説明は、本発明のすべてを網羅したり、或いは、開示された形態そのままに本発明を限定することを意図するものではない。以上の教示内容に鑑み、多数の変更及び変形が可能である。本発明の原理とその実際的な用途について最良に説明することにより、想定される特定の使用法に適した様々な変更を伴って当業者が本発明及び様々な実施形態を最良に利用することができるように、実施形態を選択及び説明した。
【図１】
2013511091.tif 000003
【図２】
2013511091.tif 000004
【図３】
2013511091.tif 000005
【図４】
2013511091.tif 000006
【図５】
2013511091.tif 000007
【図６】
2013511091.tif 000008
【図７】
2013511091.tif 000009
【図８】
2013511091.tif 000010
【図９】
2013511091.tif 000011
【図１０】
2013511091.tif 000012
【図１１】
2013511091.tif 000013
【手続補正書】
【提出日】平成24年7月17日(2012.7.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションからＩ／Ｏ要求を受信するステップと、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する、ステップと、
前記構成可能なキャッシュマップに基づいて前記Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与するステップと、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行するステップと、
を有する方法。
【請求項２】
前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連するメタデータとして受信される請求項１に記載の方法。
【請求項３】
前記アプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する請求項１に記載の方法。
【請求項４】
前記アプリケーションは、非キャッシュ通知を前記ファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、前記ファイルシステムが前記ダイレクトＩ／Ｏをキャッシングしないようにする請求項１に記載の方法。
【請求項５】
前記アプリケーションは、データベースアプリケーションである請求項１に記載の方法。
【請求項６】
前記アプリケーションは、ＯＤＭに準拠したインターフェイスモジュールを介して前記ファイルシステムとインターフェイスする請求項１に記載の方法。
【請求項７】
前記構成可能なキャッシュマップは、前記ファイルシステムのコマンドラインインターフェイスを介してユーザー定義される請求項１に記載の方法。
【請求項８】
前記構成可能なキャッシュマップは、前記ファイルシステムのＧＵＩインターフェイスを介してユーザー定義される請求項１に記載の方法。
【請求項９】
少なくとも１つのキャッシング決定により、前記ファイルシステムは、ファイルシステムキャッシュ内への先読みキャッシングを実行する請求項１に記載の方法。
【請求項１０】
前記先読みキャッシングは、前記キャッシング決定及び前記構成可能なキャッシュマップに従って実行される請求項９に記載の方法。
【請求項１１】
コンピュータシステムによって実行された場合に前記コンピュータシステムに方法を実行させるコンピュータ実行可能命令がその上部に保存されたコンピュータ可読ストレージ媒体であって、前記方法は、
データベースアプリケーションからＩ／Ｏ要求を受信するステップと、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御し、前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連したメタデータを有する、ステップと、
前記構成可能なキャッシュマップに基づいて、前記Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与するステップと、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行するステップと、
を有する、コンピュータ可読ストレージ媒体。
【請求項１２】
前記データベースアプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１３】
前記データベースアプリケーションは、非キャッシュ通知を前記ファイルシステムに提供してダイレクトＩ／Ｏを実行し、これにより、前記ファイルシステムが前記ダイレクトＩ／Ｏをキャッシングしないようにする請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１４】
前記データベースアプリケーションは、ＯＤＭに準拠したインターフェイスモジュールを介して前記ファイルシステムとインターフェイスする請求項１１に記載のコンピュータ可読ストレージ媒体。
【請求項１５】
コンピュータ可読ストレージ媒体に結合されると共にコンピュータ可読コードを実行するプロセッサを有するコンピュータシステムを有し、
前記コンピュータ可読コードは、前記コンピュータシステムに、
データベースアプリケーションからＩ／Ｏ要求を受信させ、
前記Ｉ／Ｏ要求のそれぞれを構成可能なキャッシュマップと比較させ、前記構成可能なキャッシュマップは、Ｉ／Ｏタイプ及びファイルタイプに基づいて選択的なキャッシングを制御し、且つ、前記Ｉ／Ｏタイプ及び前記ファイルタイプは、前記Ｉ／Ｏ要求と関連したメタデータを有し、
前記構成可能なキャッシュマップに基づいて、前記Ｉ／Ｏ要求のそれぞれを処理し、キャッシング決定を付与させ、
前記キャッシング決定に従って、前記Ｉ／Ｏ要求のそれぞれに対して選択的なキャッシングを実行させ、前記データベースアプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションＩ／Ｏ要求のアプリケーション指向のキャッシングを実行する、
データベースコンピュータシステム。
【国際調査報告】
2013511091.tif 000014
2013511091.tif 000015
2013511091.tif 000016