JP5802983B2 - 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング - Google Patents

構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング Download PDF

Info

Publication number
JP5802983B2
JP5802983B2 JP2012538911A JP2012538911A JP5802983B2 JP 5802983 B2 JP5802983 B2 JP 5802983B2 JP 2012538911 A JP2012538911 A JP 2012538911A JP 2012538911 A JP2012538911 A JP 2012538911A JP 5802983 B2 JP5802983 B2 JP 5802983B2
Authority
JP
Japan
Prior art keywords
cache
requests
type
application
file
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.)
Expired - Fee Related
Application number
JP2012538911A
Other languages
English (en)
Other versions
JP2013511091A (ja
JP2013511091A5 (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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2013511091A publication Critical patent/JP2013511091A/ja
Publication of JP2013511091A5 publication Critical patent/JP2013511091A5/ja
Application granted granted Critical
Publication of JP5802983B2 publication Critical patent/JP5802983B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/303In peripheral interface, e.g. I/O adapter or channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般に、デジタルコンピュータシステムに関する。
情報はビジネスの原動力である。現代の企業は、自らのビジネスを遂行するために、前例のないほどに、オンラインの、頻繁にアクセスされる、常に変化するデータに依存している。オンライントランザクション処理(OnLine transaction processing:OLTP)システムは、ビジネスの遂行における重要な部分を構成している。
通常のOLTPシステムは、トランザクションと、データベースに発生する多数の更新とを適度に且つ簡単に合成する処理を必要としている。OLTP環境におけるデータベースの性能は、データベースアプリケーション及びデータベースアプリケーションをサポートするファイルシステムのI/O速度及びメモリ構成によって大きく左右される。I/O性能及びメモリサブシステム性能を改善するための作業が精力的且つ継続的に行われている。
Oracle Disk Manager(商標)(ODM)は、データベースアプリケーションが使用することができる代替I/Oインターフェイスである。ODMは、システム呼出し当たり複数のI/O要求することを可能にし、ファイル記述子の管理のオーバーヘッドを低減し、且つ、ファイル管理の意味を改善することにより、標準的なPOSIX I/Oインターフェイスに比べて改善されている。
しかしながら、ODMには、潜在的な性能問題が存在する。例えば、ODMは、ダイレクトI/Oインターフェイスを提供することにより、ファイルシステムのキャッシュ体系をバイパスしている。このようなダイレクトI/Oインターフェイスは、特定のI/O要求が(例えば、ファイルのロックメカニズム及び体系を迂回することによって)簡素化されるという利点を有する。しかしながら、ホストファイルシステムによるキャッシングの防止は、その他のタイプのI/O要求に伴う性能上の欠点を有する。その結果、従来のODMインターフェイスは、デーベース管理者に対して、魅力に欠ける二者択一を強いる可能性がある。
本発明の実施形態は、ファイルシステムのキャッシュ構造をバイパスするダイレクトI/O能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合に、アプリケーションによって行われた特定のI/O要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。この選択的なキャッシュ又は非キャッシュの決定は、I/O要求がアプリケーションによって使用される方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。
一実施形態においては、本発明は、選択的なファイルシステムのキャッシングを実現するためのコンピュータに基づいた方法を有する。この方法は、アプリケーションからI/O要求を受信するステップと、I/O要求のそれぞれを構成可能なキャッシュマップと比較するステップとを含み、構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。I/O要求のそれぞれを構成可能なキャッシュマップに基づいて処理し、キャッシング決定を下す。次いで、キャッシング決定に従って、選択的なキャッシングがI/O要求のそれぞれに対して実行される。
一実施形態においては、I/Oタイプ及びファイルタイプは、I/O要求と関連したメタデータとして受信される。
一実施形態においては、アプリケーションは、ファイルシステムキャッシュとは別個のアプリケーションキャッシュ内へのアプリケーションI/O要求のアプリケーション指向のキャッシングを実行する。
一実施形態においては、アプリケーションは、非キャッシュ通知をファイルシステムに提供してダイレクトI/Oを実行し、これにより、ファイルシステムがそのダイレクトI/Oをキャッシングしないようにする。
一実施形態においては、アプリケーションは、データベースアプリケーションである。
一実施形態においては、アプリケーションは、ODMに準拠したインターフェイスモジュールを介してファイルシステムとインターフェイスする。
一実施形態においては、構成可能なキャッシュマップは、ファイルシステムのコマンドラインインターフェイスを介してユーザー定義される。
一実施形態においては、構成可能なキャッシュマップは、ファイルシステムのGUIインターフェイスを介してユーザー定義される。
一実施形態においては、少なくとも1つのキャッシング決定により、ファイルシステムは、ファイルシステムのキャッシュ内への先読みキャッシングを実行する。
一実施形態においては、先読みキャッシングは、キャッシング決定及び構成可能なキャッシュマップに従って実行される。
別の実施形態においては、本発明は、コンピュータシステムによって実行された場合にそのコンピュータシステムに方法を実行させるコンピュータ実行可能命令がその上部に保存されたコンピュータ可読ストレージ媒体として実現される。この方法は、データベースアプリケーションからI/O要求を受信するステップと、I/O要求のそれぞれを構成可能なキャッシュマップと比較するステップとを含み、構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。I/Oタイプ及びファイルタイプは、I/O要求と関連したメタデータを構成する。本方法は、構成可能なキャッシュマップに基づいてI/O要求のそれぞれを処理し、キャッシング決定を下すステップと、キャッシング決定に従ってI/O要求のそれぞれに対して選択的なキャッシングを実行するステップとを更に含む。
別の実施形態においては、本発明は、データベースコンピュータシステムとして実現される。このデータベースコンピュータシステムは、プロセッサを含み、このプロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、コンピュータ可読コードを実行し、このコンピュータ可読コードは、コンピュータシステムに、データベースアプリケーションからI/O要求を受信させ、且つ、I/O要求のそれぞれを構成可能なキャッシュマップと比較させる。構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。I/Oタイプ及びファイルタイプは、I/O要求と関連したメタデータを構成する。コンピュータシステムは、構成可能なキャッシュマップに基づいてI/O要求のそれぞれを処理し、キャッシング決定を下す。次いで、コンピュータシステムは、キャッシング決定に従ってI/O要求のそれぞれに対して選択的なキャッシングを実行する。
以上は、概要であり、且つ、従って、必要に応じて、詳細の単純化、一般化、及び省略を含む。従って、当業者は、この概要が、例示を目的としたものに過ぎず、且つ、いかなる方式においても限定を意図したものではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点については、以下に記述される非限定的な詳細な説明から明らかとなろう。
本発明は、限定としてではなく、且つ、一例としてのみ、添付図面の各図に示されており、且つ、これらの図面においては、同一の参照符号によって類似の要素を示している。
本発明の一実施形態による例示用の演算ノードの図を示す。 本発明の一実施形態による選択的キャッシング機能の実現に伴う情報及びデータの流れを表す流れ図を示す。 本発明の一実施形態に従ってアプリケーションから受信されたI/O要求を示す。 本発明の一実施形態による構成可能なキャッシュマップを示す。 本発明の一実施形態によるODMに準拠したコンポーネントとファイルシステムとファイルシステムカーネルの間の関係を表す図を示す。 本発明の一実施形態によるODMに準拠したコンポーネントとファイルシステムとファイルシステムカーネルの間のユーザーモードの関係を表す図を示す。 本発明の一実施形態による構成可能なキャッシュマップを構成するためのコマンドラインインターフェイスを表示するモニタを示す。 本発明の一実施形態による構成可能なキャッシュマップを構成するためのGUI(graphical user interface)を表示するモニタを示す。 本発明の一実施形態による選択的なキャッシングプロセスの各ステップのフローチャートを示す。 本発明の一実施形態によるモジュールのソフトウェアに基づいたインスタンスを保存するコンピュータ可読ストレージ媒体を示す。 一実施形態による例示用のコンピュータシステムを示す。
本発明は、一実施形態との関連において記述されているが、本発明は、本明細書に記述されている特定の形態に限定されることを意図したものではない。むしろ、添付の請求項によって規定された本発明の範囲に合理的に包含されうる代替、変更、及び均等物を含むものと解釈されたい。
以下の詳細な説明には、特定の方法順序、構造、要素、及び接続などの多数の特定の詳細事項が記述されている。しかしながら、これらの及びその他の特定の詳細事項は、本発明の実施形態を実施するために必ずしも利用される必要はないことを理解されたい。その他の状況においては、説明を不必要にわかりにくくすることを回避するために、周知の構造、要素、又は接続については、省略されるか、或いは、詳細な説明が省略されている。
本明細書における「一実施形態」又は「実施形態」に対する参照は、その実施形態との関連において記述されている特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを示すものと解釈されたい。本明細書の様々な場所における「一実施形態において」という表現の出現は、必ずしもそのすべてが同一の実施形態を参照するものではなく、且つ、その他の実施形態を互いに排除する別個の又は代替の実施形態を参照するものでもない。更には、様々な特徴について記述されているが、これらの特徴は、いくつかの実施形態は、有しているが、その他のものは、有していない場合がある。同様に、様々な要件について記述されているが、これらの要件は、いくつかの実施形態には、当て嵌まるが、その他の実施形態には、当て嵌まらない場合がある。
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作の手順、ステップ、論理ブロック、処理、及びその他の象徴的表象の観点において提示されている。これらの記述及び表現は、自身の作業の本質をその他の当業者に対して最も効果的に伝達するためにデータ処理分野における当業者が使用する手段である。手順、コンピュータによって実行されるステップ、論理ブロック、プロセスなどは、本明細書においては、且つ、一般的には、望ましい結果をもたらすステップ又は命令の自己一貫性を有するシーケンスであると見なされたい。これらのステップは、物理的な量の物理的な操作を必要とするものである。通常、但し、必須ではないが、これらの量は、コンピュータ可読ストレージ媒体の電気的又は磁気的信号の形態をとり、且つ、コンピュータシステム内において、保存、転送、合成、比較、及びその他の方法によって操作することができる。しばしば、主には一般的な使用を理由として、これらの信号を、ビット、値、要素、シンボル、文字、用語、数値、又はこれらに類似したものとして参照することが便利であることが証明されている。
但し、これらの及び類似の用語のすべては、適切な物理量と関連付けられることを要し、且つ、これらの量に対して適用された簡便なラベルに過ぎないという点に留意されたい。以下の説明から明らかなように、特記されていない限り、本発明の全体を通じて、「処理」又は「アクセス」又は「書込み」又は「保存」又は「移動」又はこれらに類似したものなどの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ並びにその他のコンピュータ可読媒体内において物理的(電子的)な量として表現されたデータを操作し、且つ、これをコンピュータシステムのメモリ又はレジスタ或いはその他の情報の保存、伝送、又は表示装置内において物理的な量として同様に表現されたその他のデータに変換するコンピュータシステム又は類似の電子演算装置の動作及びプロセスを意味していることを理解されたい。
本発明の実施形態は、有利には、ファイルシステムのキャッシュ体系又はキャッシュ構造をバイパスするダイレクトI/O能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合に、アプリケーション(例えば、データベースアプリケーション)によって行われた特定のI/O要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。一実施形態においては、選択的なキャッシュ又は非キャッシュの決定は、アプリケーションから受信される構成設定及びメタデータに基づいている。このメタデータは、I/O要求を構成するデータをアプリケーションが処理する方法に関する「ヒント」又は通知を提供する。以下、図1に示されている例示用のファイルシステム演算ノードについて説明することとする。
図1は、本発明の一実施形態による例示用の演算ノード100の図を示している。図1の実施形態は、マルチボリュームのボリュームセット(例えば、ボリュームセット110)にアクセスするコンピュータシステムの一例を示している。ボリュームマネージャ106は、通常、マルチボリュームセット110を構成するボリュームに対して動作するように構成されている。ボリュームマネージャは、ファイルシステム104との関連において動作することにより、ノード100上において稼働している1つ又は複数のアプリケーション102に対してデータの保存及びデータのI/Oサービスを提供する。図1の実施形態においては、アプリケーション102は、その独自のアプリケーションキャッシュデータ構造119を含み、且つ、その独自のキャッシング体系及び技法をサポートするように構成されている。ファイルシステムは、その独自のファイルシステムキャッシュ120を維持している。演算ノード100は、コンピュータネットワーク140(例えば、LAN、WAN、インターネットなど)を介して、その他の外部コンピュータ及びその他のネットワークに結合されている。
又、図1は、選択的キャッシングインターフェイス105、決定エンジン118、構成可能なキャッシュマップ130、及びファイルシステムキャッシュ120をも示している。
選択的キャッシングインターフェイス106は、アプリケーションからI/O要求を受信し、且つ、I/O要求のそれぞれを構成可能なキャッシュマップと比較することにより、機能し、この場合に、構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。決定エンジン118は、構成可能なキャッシュマップに基づいてI/O要求のそれぞれを処理してキャッシング決定を下すことにより、機能する。次いで、キャッシング決定に従って、選択的なキャッシングがI/O要求のそれぞれに対して実行される。
図2は、本発明の一実施形態による選択的キャッシング機能の実現に伴う情報及びデータの流れを示す流れ図を示している。図2に示されているように、データフローの関係は、アプリケーション102、選択的キャッシングインターフェイス105、決定エンジン118及びキャッシュマップ130、並びに、ファイルシステム104及びファイルシステムキャッシュ120に関係するものとして示されている。
前述のように、本発明の実施形態は、ファイルシステムのキャッシュ構造(例えば、ファイルシステムキャッシュ120)をバイパスするダイレクトI/O能力を提供することができる。本発明の実施形態は、条件付きキャッシング能力を実現しており、この場合には、アプリケーションによって行われる特定のI/O要求は、実際には、ファイルシステムのキャッシュ構造を使用することになる。選択的なキャッシュ又は非キャッシュの決定は、I/O要求を処理する方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。このように、アプリケーションは、I/O要求から結果的に得られるデータの自身が意図する使用方法を示す「ヒント」をファイルシステムに対して提供する。
図2は、アプリケーション102からI/O要求を受信する選択的キャッシングインターフェイス105を示している。I/O要求は、それぞれの特定のI/O要求のI/Oタイプ及びファイルタイプを表すメタデータを含む。I/O要求がファイルシステム104に伝達されるのに伴って、決定エンジン118は、I/O要求のそれぞれを構成可能なキャッシュマップ130と比較する。
構成可能なキャッシュマップとは、アプリケーション102から受信されたI/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー(例えば、システム管理者)構成可能なコンポーネントである。構成可能なキャッシュマップ130に基づいてI/O要求のそれぞれを決定エンジン118によって処理し、キャッシング決定を下す
次いで、ファイルシステム104は、データストレージ111のボリュームを伴うI/O要求を処理する。ファイルシステムは、キャッシング決定に従ってI/O要求のそれぞれに対して選択的なキャッシングを実行する。例えば、キャッシュ又は非キャッシュの決定に従って、特定のI/O要求を構成するデータが、ファイルシステムキャッシュ120内においてキャッシングされるか、或いは、キャッシングされない。
一実施形態においては、選択的キャッシングインターフェイス105は、ODMに準拠したインターフェイスモジュールを有する。換言すれば、選択的キャッシングインターフェイスは、アプリケーションからは、Oracle Disk Manager(ODM)として見える。ODMは、データベースアプリケーション(例えば、Oracle 10(商標)など)が使用することができるI/Oインターフェイスである。これは、アプリケーション102がデータベースアプリケーションであるシナリオにおいて特に有用である。
本発明の実施形態は、従来のODMに伴って発生する問題を解決する。前述のように、選択的キャッシングインターフェイス105は、ダイレクトI/Oインターフェイスをアプリケーションに提供することができ、これにより、ファイルシステムのキャッシュ体系をバイパスする。このようなダイレクトI/Oインターフェイスは、(例えば、ファイルのロックメカニズム及び体系を迂回することによって)特定の要求が簡素化されるという利点を有する。又、選択的キャッシングインターフェイス105は、その他の性能面での利点のいくつか(例えば、I/Oロックの回避)を維持しつつ、ファイルシステムを使用することによって特定のファイルに対するI/O要求のキャッシングを可能にするファイルシステムキャッシング能力をも有する。
一実施形態においては、この選択的なキャッシングは、具体的には、二重キャッシングの問題を回避するように構成されている。この問題は、アプリケーションがその独自のキャッシング体系及びキャッシング仕様を有すると共にアプリケーションがアプリケーションキャッシュ119を使用してその独自のキャッシングシステムを実行する状況において発生する。このI/O情報は、ファイルシステムキャッシュ120内において重複されるべきではない。例えば、アプリケーションがデータベースアプリケーションである実施形態においては、アプリケーションキャッシュ内においてデータベースアプリケーション自体によってキャッシュされる読取りをファイルシステムキャッシュによってキャッシングするべきではない。このような二重キャッシングを明示的に回避するために、多くのデーベースアプリケーションがODMやQIOのようなダイレクトI/Oインターフェイスを利用していることから、これは非常に有用である。その一方で、アプリケーション102以外のその他のプロセスは、このようなキャッシングの利点を享受し得ることから、プロセス別のメモリに書き込むためのシーケンシャル読取りに使用されるファイルシステムキャッシングは、ファイルシステム自体の内部においてキャッシングを実行するより適当な候補である。
一実施形態においては、具体的には、特定のI/Oタイプ及びファイルタイプについて、先読みキャッシングがファイルシステムによって実行される。前述のように、いくつかのプロセス及び/又はアプリケーションがノード100内において稼働している状況においては、ファイルシステムキャッシングは、性能面における利点をプロセスのそれぞれに対して提供する。このような一実施形態においては、具体的には、ファイルシステムキャッシュを使用し、シーケンシャル先読みキャッシングをファイルシステムによって実行することができる。
選択的キャッシング機能は、Cluster File System上のファイルにも拡張することができることに留意されたい。キャッシュは、ファイルが書き込まれる際に、クラスタの全体を通じて適切に無効化される。
図3は、本発明の一実施形態によるアプリケーションから受信されるI/O要求を示している。図3に示されているように、I/O要求300は、I/O要求メタデータ301及び要求されたI/Oデータ302を含む。このI/Oデータ要求302に基づいて、ファイルシステムは動作し、ボリューム110からデータを読み取るか又はボリューム110へデータを書き込む。前述のように、選択的なキャッシュ又は非キャッシュの決定は、アプリケーションがI/O要求を処理する方法に関する通知を提供するアプリケーションから受信されるメタデータに基づいている。アプリケーションは、I/O要求から結果的に得られるデータの自身の意図する使用方法について通知する「ヒント」をファイルシステムに提供する。I/O要求は、それぞれの特定のI/O要求のI/Oタイプ及びファイルタイプを表すメタデータ301を含む。
図4は、本発明の一実施形態による構成可能なキャッシュマップ400を示している。前述のように、選択的なキャッシュ又は非キャッシュの決定は、I/O要求を処理する方法に関する通知を提供するアプリケーションから受信される構成設定及びメタデータに基づいている。これらの構成設定は、構成可能なキャッシュマップによって提供される。
前述のように、構成可能なキャッシュマップとは、アプリケーション102から受信されるI/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー(例えば、システム管理者)構成可能なコンポーネントである。構成可能なキャッシュマップ130に基づいてI/O要求のそれぞれを決定エンジン118によって処理し、キャッシング決定を下す
このマップは、それぞれのファイルタイプごとに、且つ、それぞれのI/Oタイプごとに(例えば、一実施形態においては、ファイルタイプ及びI/Oタイプのペアごとに)、I/O要求をキャッシングするかどうかをファイルシステムに対して指示することができるという点において、ユーザー構成可能である。アプリケーションがすべてのデータベースプロセスが利用可能な共有メモリ内においてそのデータ自体をキャッシングしていると示唆するタイプペアについては、キャッシングは、無効化されることになろう。キャッシングに加えて、特定のファイルタイプ及びI/Oタイプのペアについて、先読みキャッシングを条件付きで実行するように、ファイルシステムに対して指示することができる。特定のファイルタイプ及び特定のI/Oタイプについて、常にキャッシング又は先読みを実行するように、ファイルシステムに対して指示することができる。
図5は、本発明の一実施形態によるODMに準拠したコンポーネント501とファイルシステム104とファイルシステムカーネル510の間の関係を表す図を示している。図5に示されているように、選択的キャッシングインターフェイスは、ODMに準拠したコンポーネント501として実現される。前述のように、一実施形態においては、選択的キャッシングインターフェイス105は、ODMに準拠したインターフェイスモジュールを有する。ODMに準拠したコンポーネント501は、アプリケーションからは、Oracle Disk Manager(ODM)として見える。ODMは、データベースアプリケーション(例えば、Oracle 10(商標))が使用することができるI/Oインターフェイスである。
図5の実施形態においては、ODMに準拠したコンポーネント501は、保護されたカーネル510の外部において、アプリケーションのメモリ空間内に存在している。カーネル空間内に存在するファイルシステム104とインターフェイスする選択的キャッシングファイルシステムコンポーネント502が存在している。従って、I/O要求がアプリケーション102から到来するのに伴って、ユーザーモードとカーネルモードの間における1回のコンテキスト切替えが存在している。
図6は、本発明の別の実施形態によるODMに準拠したコンポーネント601とファイルシステム104とファイルシステムカーネル610の間のユーザーモードの関係を表す図を示している。図6に示されているように、ODMに準拠したコンポーネント601と選択的キャッシングファイルシステムコンポーネント602は、いずれも、ユーザーモードのコンポーネントとして実現されている。この構成においては、ファイルシステムカーネルを構成するコードを比較的安定した状態において維持することができる。ファイルシステムカーネルのコードは、集中的にデバッグされると共に集中的に試験される傾向を有する。従って、カーネルコードの安定性の維持に対する強いインセンティブが存在している。
図6の実施形態においては、ODMに準拠したコンポーネント501は、保護されたカーネル510の外部、アプリケーションのメモリ空間内に存在している。こちらもまた保護されたカーネルの外部に存在しているファイルシステム104とインターフェイスする選択的キャッシングファイルシステムコンポーネント502が存在している。従って、図5の実施形態と同様に、I/O要求がアプリケーション102から到来するのに伴って、ユーザーモードとカーネルモードの間における1回のコンテキスト切替えが存在している。
図7は、本発明の一実施形態による構成可能なキャッシュマップを構成するためのコマンドラインインターフェイスを表示するモニタ700を示している。前述のように、構成可能なキャッシュマップとは、アプリケーション102から受信されるI/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御するユーザー(例えば、システム管理者など)構成可能なコンポーネントである。このマップは、それぞれのファイルタイプごとに、且つ、それぞれのI/Oタイプごとに、I/O要求を処理する方法について、ファイルシステムに対して指示することができるという点において、ユーザー構成可能である。図7の実施形態においては、この構成をコマンドラインインターフェイスを介して実行している。
図8は、本発明の一実施形態による構成可能なキャッシュマップを構成するためのGUI(graphical user interface)を表示するモニタ800を示している。構成可能なキャッシュマップの機能は、図7の実施形態において説明したものと実質的に同一である。但し、図8の実施形態は、ユーザー(例えば、システム管理者)がマップとやり取りしてマップを構成することができるGUI要素を示している。
図9は、本発明の一実施形態による選択的なキャッシングプロセス900の各ステップのフローチャートを示している。図9に示されているように、プロセス900は、アプリケーションからのI/O要求を処理する際の選択的なキャッシングプロセスの例示用の動作ステップを示している。
プロセス900は、ステップ901において始まっており、選択的キャッシングインターフェイスがアプリケーションからI/O要求を受信する。ステップ902において、決定エンジンは、I/O要求を構成可能なキャッシュマップと比較する。前述のように、構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。ステップ903において、I/O要求が決定エンジンによって処理され、キャッシング決定が下される。前述のように、この決定は、構成可能なキャッシュマップに基づいている。この後に、ステップ904において、キャッシング決定に従って、I/O要求に対して選択的なキャッシングがファイルシステムによって実行される。ステップ905に示されているように、選択的なキャッシングプロセスは、新しいI/O要求がアプリケーションから受信されるのに伴って継続する。
図10は、本発明の一実施形態によるモジュール1001〜1004のソフトウェアに基づいたインスタンスを保存するコンピュータ可読ストレージ媒体を示している。図10に示されているように、モジュール1001〜1004は、アプリケーションからのI/O要求を選択的にキャッシングするためのプロセス(例えば、図9のプロセス900)を実行することにより、機能する。
I/O要求受信モジュール901は、コンピュータシステム上において稼働するアプリケーション(例えば、データベースアプリケーション)からI/O要求を受信することにより、機能する。I/O比較モジュール902は、I/O要求を構成可能なキャッシュマップと比較することにより、機能する。前述のように、構成可能なキャッシュマップは、I/Oタイプ及びファイルタイプに基づいて選択的なキャッシングを制御する。I/Oキャッシング意思決定モジュール903は、I/O要求を処理してキャッシング決定を下すことにより、機能する。前述のように、この決定は、構成可能なキャッシュマップに基づいている。選択的キャッシング実行モジュールは、ファイルシステムを介して選択的なキャッシングを実行することにより、機能する。
アプリケーションがデータベースアプリケーションである一実施形態においては、データベースアプリケーションは、ダイレクトI/Oの利点を享受し、これにより、ファイルシステムのページキャッシュをバイパスすると共に非同期I/Oを実行することができることに留意されたい。これは、書込み集約的なOLTP(onLine transaction processing)作業負荷の性能を向上させるのに有用である。データウェアハウスアプリケーションは、読取り集約的であり、且つ、従来のODMの場合には、ファイルシステムのページキャッシングの欠如に起因して問題が発生する可能性がある。しかしながら、本発明の実施形態によれば、ファイルシステムのページキャッシングとデータベースアプリケーションの非同期ダイレクトI/Oの両方の利点が得られる。
一実施形態においては、選択的なキャッシング機能は、組込み型の先読みインテリジェンス及びライトスルーキャッシュインテリジェンスを有する。一実施形態においては、選択的なI/Oキャッシングを最適化するために、作業負荷を稼働させ、且つ、統計値を計測しており、この場合に、キャッシングは、ヒット率に応じて、ファイルごとに選択的にターンオフされる。これは、統計値を収集するために実行される。これらの統計値により、システムは、選択的なI/Oキャッシングアルゴリズムを慎重にチューニングすることができる。又、このプロセスにより、作業負荷が時間に伴って変化した際に選択的なI/Oキャッシングの最適な性能が維持される。
Oracle10g(商標)データベースアプリケーションと共に動作するように構成された特定の一実施形態においては、このデータベースがI/Oヒントを伝達し、且つ、前述のように、このヒントは、データベースが実行するI/O動作のタイプを通知する。以下、いくつかの例示用のヒントについて説明する。Oracle10g(商標)によれば、すべてのODM I/O要求がodm_ioc構造内にヒントを有する。タイプは、ファイル生成及びファイル識別の際にアプリケーションによって一時的にファイルと関連付けられる。以下の例示用のファイルタイプが規定されている。
typedef sword odm_ft; /*Oracle(商標)、ファイルタイプ*/
#define ODM_FT_CTL 1 /*制御ファイル*/
#define ODM_FT_DATA 2 /*データファイル*/
#define ODM_FT_OLG 3 /*オンラインログファイル*/
#define ODM_FT_ALG 4 /*アーカイブログファイル*/
#define ODM_FT_TRC 5 /*トレースファイル*/
#define ODM_FT_TSORT 6 /*一時ソートファイル*/
#define ODM_FT_DBKUP 9 /*デーファイルバックアップ片*/
#define ODM_FT_DIBKUP 10 /*データファイル増分バックアップ片*/
#define ODM_FT_ABKUP 11 /*アーカイブログバックアップ片*/
#define ODM_FT_DCOPY 12 /*データファイルの複写*/
#define ODM_FT_INIT 13 /*パーシステント初期化パラメータ*/
#define ODM_FT_DRC 14 /*ディザスタリカバリー構成*/
ファイルタイプから推定することができるヒントうちのいくつかのもの:「I/OからFT_OLG及びFT_ALGは、常にシーケンシャルであり、且つ、絶対にサイズ変更することはなく」、且つ、「I/OからFT_TRC及びFT_INITは、重要ではない」。I/Oヒントは、ODMインターフェイスを通過したそれぞれのI/O要求と関連付けられる。動的なキャッシングを利用することができるI/Oヒントのうちのいくつかのものは、次のとおりである。
#define ODM_REDOLOG_WRITE 1 /*再実行ログ書込み*/
#define ODM_REDOLOG_READ 2 /*回復のための再実行ログ読取り*/
#define ODM_ARCHLOG_READ 3 /*回復のためのアーカイブログ書込み*/
#define ODM_MIRROR_READ 5 /*エラーの際のブロックの再読取り*/
#define ODM_DATA_CACHE_LOAD 13 /*バッファキャッシュ読取り*/
#define ODM_READ_DATA_HEADER 14 /*データヘッダ読取り*/
#define ODM_DATA_READ_SEQ 16 /*プライベートメモリに対するデータファイル読取り*/
#define ODM_REDOLOG_AREAD 32 /*アーカイブのための再実行ログ読取り*/
#define ODM_DATAPUMP 36 /*データポンプI/O*/
性能の理由から、選択的なキャッシングアルゴリズムは、先読みキャッシングをターンオフするための適切なアルゴリズムを有する必要があることに留意されたい。データベースが長時間にわたって稼働している際には、選択的なキャッシングアルゴリズムがヒントを取得し、且つ、データベースを構成するファイルの大部分において先読みキャッシングをターンオンするかなりの可能性が存在する。先読みキャッシングを無効にするための適切なアルゴリズムなしには、余分な先読みキャッシング及びページングに起因し、性能が徐々に低下することになる。
一実施形態においては、先読みキャッシングは、システムが低メモリ状態(例えば、空きメモリ<合計の20%)に到達した際に、ターンオフされる。一実施形態においては、先読みキャッシングは、ファイルが過剰な書き込みを受けた際に、ターンオフされる。この理由は、書込みが多数のキャッシュの無効化を結果的にもたらすためである。一実施形態においては、先読みキャッシングは、データファイルの特定の割合を上回るものがキャッシングされた後に、ターンオフされる。
図11は、一実施形態による例示用のコンピュータシステム1100を示している。コンピュータシステム1100は、前述の実施形態のための特定のハードウェアに基づいた及びソフトウェアに基づいた機能のための実行環境を提供する基本的なコンピュータシステムのコンポーネントを示している。例えば、コンピュータシステム1100は、1つ又は複数のソフトウェアスタック及びソフトウェアモジュールのインスタンスがその上部に生成されるシステムであってよい。コンピュータシステム1100は、例えば、サーバーコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実現することができる。同様に、コンピュータシステム1100は、ハンドヘルド型の装置として実現することもできる。コンピュータシステム1100は、通常、少なくともなんからの形態のコンピュータ可読媒体(例えば、コンピュータ可読ストレージ媒体1101)を含む。コンピュータ可読媒体は、コンピュータシステム1100がアクセスすることができると共に限定を伴うことなしにコンピュータストレージ媒体を含むことができるいくつかの異なるタイプの入手可能な媒体であってよい。
その最も基本的な構成において、コンピュータシステム1100は、通常、処理装置1103と、メモリ1101とを含む。使用されるコンピュータシステム1100の正確な構成及びタイプに応じて、メモリ1101は、揮発性(例えば、DRAMなど)1101aであるか、不揮発性1101b(例えば、ROM、フラッシュメモリなど)であるか、又はこれら2つのなんらかの組合せであってよい。同様に、メモリ1101は、半導体装置以外の、例えば、磁気ディスクに基づいた媒体、光学媒体、又はこれらに類似したものなどのその他の装置を有することもできる。
更には、コンピュータシステム1100は、磁気又は光学ディスク又はテープなどのその他の大容量ストレージシステム(例えば、取り外し可能型1105及び/又は取り外し不能型1107)を含むことができる。同様に、コンピュータシステム1100は、入力装置1109及び/又は出力装置1111(ディスプレイなど)を含むこともできる。コンピュータシステム1100は、有線又は無線媒体を使用した、その他の装置、コンピュータ、ネットワーク、サーバーなどへのネットワーク接続1113を更に含む。これらの装置は、いずれも、当技術分野において周知であることから、これらの詳細な説明は不要である。
コンピュータ1100は、コンピュータシステム1100の機能が部分的又は全体的にクラウド演算環境を使用して実行される場合のように、多数の分散演算ノードを有する分散コンピュータシステムにより、その機能の一部、大部分、又はすべてを代行させることができることに更に留意されたい。
本明細書において使用されている「ボリューム」という用語は、1つ又は複数のストレージ装置上における任意の規定の量のストレージを意味してもよいことに留意されたい。そのサイズと、それが割り当てられるストレージ装置又は装置と、に加えて、ボリュームは、いくつかの場合においては、その他の属性(例えば、ミラーリング、ストライピング、RAIDレベル、スパニング、又は連結などの保護/性能面における特徴)を有してもよい。ボリュームという用語は、例えば、Linux(商標)、IBM Corp.社のAIX、Sun Microsystems社のSolarisなどのUnix(商標)タイプのオペレーティングシステムにおいて使用される論理ボリュームを含んでもよい。又、ボリュームという用語は、例えば、VERITAS Software Corporation社のVERITAS Volume Manager(商標)などの様々なボリュームマネージャソフトウェアによって規定されるボリュームを含んでもよい。ボリュームという用語は、例えば、Microsoft Windows(商標)及び/又はDOS(disk operating system)オペレーティングシステムにおいて使用されるパーティションを更に含んでもよい。パーティションは、パーティション化されたストレージをディスクドライブ上のその他のストレージから隔離する単一ディスクドライブ上のストレージの1つの分割区画であってよい。パーティションは、プライマリ型であってもよく、或いは、拡張型であってもよい。ボリュームという用語は、ボリュームグループを更に意味してもよい。
説明を目的とした以上の記述内容は、特定の実施形態を参照して記述されている。しかしながら、上述の説明は、本発明のすべてを網羅したり、或いは、開示された形態そのままに本発明を限定することを意図するものではない。以上の教示内容に鑑み、多数の変更及び変形が可能である。本発明の原理とその実際的な用途について最良に説明することにより、想定される特定の使用法に適した様々な変更を伴って当業者が本発明及び様々な実施形態を最良に利用することができるように、実施形態を選択及び説明した。

Claims (14)

  1. アプリケーションから複数のI/O要求を受信するステップであって、前記I/O要求のそれぞれは、あらかじめ前記アプリケーションによって生成されたメタデータであって前記I/O要求のI/Oタイプ及びファイルタイプを特定するメタデータを含んでいる、ステップと、
    前記アプリケーションから受信された前記I/O要求のそれぞれの前記メタデータを、構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、受信された前記I/O要求の前記メタデータに含まれている前記I/Oタイプ及び前記ファイルタイプに基づいて選択的なキャッシングを制御し、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの複数のペアと前記複数のペアのそれぞれに対応するキャッシング決定とを含み、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第1のペアがキャッシングされ、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第2のペアがキャッシングされないことを示し、前記メタデータは、前記I/O要求に対応するデータを前記アプリケーションがどのように処理するかを示し、ファイルタイプ及びI/Oタイプの前記複数のペアのうち前記第2のペアは、前記アプリケーションによってアプリケーションキャッシュにキャッシングされるデータに対応する、ステップと、
    前記I/O要求のそれぞれと前記構成可能なキャッシュマップとの比較に基づいて前記I/O要求のそれぞれを処理し、前記I/O要求のそれぞれに対してキャッシュの決定又は非キャッシュの決定を下すステップと、
    前記キャッシュの決定又は前記非キャッシュの決定に従って、前記I/O要求のそれぞれに対して選択的なキャッシングを実行するステップであって、前記I/O要求のうち第1のI/O要求に対して前記キャッシュの決定が下されている場合は、前記第1のI/O要求はファイルシステムキャッシュにキャッシングされ、前記I/O要求のうち第2のI/O要求に対して前記非キャッシュの決定が下されている場合は、前記ファイルシステムキャッシュをバイパスすることによって、前記第2のI/O要求は前記ファイルシステムキャッシュにキャッシングされない、ステップと、
    を有する方法。
  2. 前記アプリケーションは、前記ファイルシステムキャッシュとは別個の前記アプリケーションキャッシュ内へのアプリケーションI/O要求のアプリケーション指向のキャッシングを実行する請求項1に記載の方法。
  3. 前記メタデータは、ダイレクトI/Oが実行されるように、非キャッシュ通知をファイルシステムに提供し、これにより、前記I/O要求のそれぞれと前記構成可能なキャッシュマップとの比較に基づいて、前記ファイルシステムが前記ダイレクトI/Oをキャッシングしないようにする請求項1に記載の方法。
  4. 前記アプリケーションは、データベースアプリケーションである請求項1に記載の方法。
  5. 前記アプリケーションは、ODMに準拠したインターフェイスモジュールを介してファイルシステムとインターフェイスする請求項1に記載の方法。
  6. 前記構成可能なキャッシュマップは、ファイルシステムのコマンドラインインターフェイス及び前記ファイルシステムのGUIインターフェイスの少なくとも1つを介してユーザー定義される請求項1に記載の方法。
  7. 作業負荷稼働を実行するステップであって、キャッシングが前記作業負荷稼働中に選択的に実行される、ステップと、
    前記作業負荷稼働の統計値を算出するステップと、を更に有し、
    前記選択的なキャッシングは、算出された前記統計値に従って実行される請求項1に記載の方法。
  8. 少なくとも1つのキャッシング決定により、ファイルシステムは、前記ファイルシステムキャッシュ内への先読みキャッシングを実行する請求項1に記載の方法。
  9. 前記先読みキャッシングは、前記キャッシング決定及び前記構成可能なキャッシュマップに従って実行される請求項8に記載の方法。
  10. コンピュータシステムによって実行された場合に前記コンピュータシステムに方法を実行させるコンピュータ実行可能命令を含むプログラムであって、前記方法は、
    データベースアプリケーションから複数のI/O要求を受信するステップであって、前記I/O要求のそれぞれは、あらかじめ前記データベースアプリケーションによって生成されたメタデータであって前記I/O要求のI/Oタイプ及びファイルタイプを特定するメタデータを含んでいる、ステップと、
    前記データベースアプリケーションから受信された前記I/O要求のそれぞれの前記メタデータを、構成可能なキャッシュマップと比較するステップであって、前記構成可能なキャッシュマップは、受信された前記I/O要求の前記メタデータに含まれている前記I/Oタイプ及び前記ファイルタイプに基づいて選択的なキャッシングを制御し、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの複数のペアと前記複数のペアのそれぞれに対応するキャッシング決定とを含み、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第1のペアがキャッシングされ、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第2のペアがキャッシングされないことを示し、前記メタデータは、前記I/O要求に対応するデータを前記アプリケーションがどのように処理するかを示し、ファイルタイプ及びI/Oタイプの前記複数のペアのうち前記第2のペアは、前記アプリケーションによってアプリケーションキャッシュにキャッシングされるデータに対応する、ステップと、
    前記I/O要求のそれぞれと前記構成可能なキャッシュマップとの比較に基づいて、前記I/O要求のそれぞれを処理し、前記I/O要求のそれぞれに対してキャッシュの決定又は非キャッシュの決定を下すステップと、
    前記キャッシュの決定又は前記非キャッシュの決定に従って、前記I/O要求のそれぞれに対して選択的なキャッシングを実行するステップであって、前記I/O要求のうち第1のI/O要求に対して前記キャッシュの決定が下されている場合は、前記第1のI/O要求はファイルシステムキャッシュにキャッシングされ、前記I/O要求のうち第2のI/O要求に対して前記非キャッシュの決定が下されている場合は、前記ファイルシステムキャッシュをバイパスすることによって、前記第2のI/O要求は前記ファイルシステムキャッシュにキャッシングされない、ステップと、
    を有する、プログラム。
  11. 前記データベースアプリケーションは、前記ファイルシステムキャッシュとは別個の前記アプリケーションキャッシュ内へのアプリケーションI/O要求のアプリケーション指向のキャッシングを実行する請求項10に記載のプログラム。
  12. 前記データベースのメタデータは、ダイレクトI/Oが実行されるように、非キャッシュ通知をファイルシステムに提供し、これにより、前記I/O要求のそれぞれと前記構成可能なキャッシュマップとの比較に基づいて、前記ファイルシステムが前記ダイレクトI/Oをキャッシングしないようにする請求項10に記載のプログラム。
  13. 前記データベースアプリケーションは、ODMに準拠したインターフェイスモジュールを介してファイルシステムとインターフェイスする請求項10に記載のプログラム。
  14. コンピュータ可読ストレージ媒体に結合されると共にコンピュータ可読コードを実行するプロセッサを有するコンピュータシステムを有し、
    前記コンピュータ可読コードは、前記コンピュータシステムに、
    データベースアプリケーションから複数のI/O要求を受信させ、前記I/O要求のそれぞれは、あらかじめ前記データベースアプリケーションによって生成されたメタデータであって前記I/O要求のI/Oタイプ及びファイルタイプを特定するメタデータを含んでおり、
    前記データベースアプリケーションから受信された前記I/O要求のそれぞれの前記メタデータを、構成可能なキャッシュマップと比較させ、前記構成可能なキャッシュマップは、受信された前記I/O要求の前記メタデータに含まれている前記I/Oタイプ及び前記ファイルタイプに基づいて選択的なキャッシングを制御し、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの複数のペアと前記複数のペアのそれぞれに対応するキャッシング決定とを含み、前記構成可能なキャッシュマップは、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第1のペアがキャッシングされ、ファイルタイプ及びI/Oタイプの前記複数のペアのうち第2のペアがキャッシングされないことを示し、前記メタデータは、前記I/O要求に対応するデータを前記アプリケーションがどのように処理するかを示し、ファイルタイプ及びI/Oタイプの前記複数のペアのうち前記第2のペアは、前記アプリケーションによってアプリケーションキャッシュにキャッシングされるデータに対応し、
    前記I/O要求のそれぞれと前記構成可能なキャッシュマップとの比較に基づいて前記I/O要求のそれぞれを処理させて、前記I/O要求のそれぞれに対してキャッシュの決定又は非キャッシュの決定を下させ、
    前記キャッシュの決定又は前記非キャッシュの決定に従って、前記I/O要求のそれぞれに対して選択的なキャッシングを実行させ、前記I/O要求のうち第1のI/O要求に対して前記キャッシュの決定が下されている場合は、前記第1のI/O要求はファイルシステムキャッシュにキャッシングされ、前記I/O要求のうち第2のI/O要求に対して前記非キャッシュの決定が下されている場合は、前記ファイルシステムキャッシュをバイパスすることによって、前記第2のI/O要求は前記ファイルシステムキャッシュにキャッシングされない、
    データベースコンピュータシステム。
JP2012538911A 2009-11-16 2010-11-09 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング Expired - Fee Related JP5802983B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/619,417 US8825685B2 (en) 2009-11-16 2009-11-16 Selective file system caching based upon a configurable cache map
US12/619,417 2009-11-16
PCT/US2010/056038 WO2011059979A1 (en) 2009-11-16 2010-11-09 Selective file system caching based upon a configurable cache map

Publications (3)

Publication Number Publication Date
JP2013511091A JP2013511091A (ja) 2013-03-28
JP2013511091A5 JP2013511091A5 (ja) 2014-11-20
JP5802983B2 true JP5802983B2 (ja) 2015-11-04

Family

ID=43587553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012538911A Expired - Fee Related JP5802983B2 (ja) 2009-11-16 2010-11-09 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング

Country Status (5)

Country Link
US (2) US8825685B2 (ja)
EP (1) EP2502148B1 (ja)
JP (1) JP5802983B2 (ja)
CN (1) CN102696020B (ja)
WO (1) WO2011059979A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473582B2 (en) * 2009-12-16 2013-06-25 International Business Machines Corporation Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system
US8458239B2 (en) * 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US8495250B2 (en) 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US9158788B2 (en) * 2009-12-16 2015-10-13 International Business Machines Corporation Scalable caching of remote file data in a cluster file system
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
EP2538334B1 (en) * 2011-06-21 2019-08-21 Lantiq Beteiligungs-GmbH & Co.KG Cache streaming system
CN102521260B (zh) * 2011-11-18 2014-04-02 华为技术有限公司 数据预热方法及装置
US10073656B2 (en) 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
JP5870213B2 (ja) * 2012-05-16 2016-02-24 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ転送制御方法
US8984097B1 (en) 2012-05-23 2015-03-17 Symantec Corporation Efficient file replication which preserves the underlying extent structure
US10037279B1 (en) * 2012-06-20 2018-07-31 EMC IP Holding Company LLC Host device caching of a business process data
WO2014015409A1 (en) * 2012-07-24 2014-01-30 Institute Of Computer Science Of The Foundation For Research And Technology - Hellas (Ics-Forth) System and method for implementing ssd-based i/o caches
US9235587B2 (en) 2012-12-31 2016-01-12 Sandisk Technologies Inc. System and method for selectively routing cached objects
US10649961B2 (en) 2012-12-31 2020-05-12 Sandisk Technologies Llc System and method for selectively routing cached objects
CN103544287B (zh) * 2013-10-28 2017-04-19 中国软件与技术服务股份有限公司 一种文件私有缓存建立方法和装置
KR102030517B1 (ko) 2013-12-11 2019-10-10 인텔 코포레이션 분산 저장 시스템에서의 캐시 및 비-캐시 사용
US9483310B2 (en) 2014-04-29 2016-11-01 Bluedata Software, Inc. Associating cache memory with a work process
US9378152B2 (en) 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
CN105830038B (zh) * 2014-06-30 2019-03-05 华为技术有限公司 一种访问存储设备的方法和主机
JP6200100B2 (ja) * 2014-10-03 2017-09-20 株式会社日立製作所 計算機システム
US9866647B2 (en) * 2015-03-26 2018-01-09 Alcatel Lucent Hierarchical cost based caching for online media
JP2016207096A (ja) 2015-04-27 2016-12-08 富士通株式会社 階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラム
CN106940660B (zh) * 2016-01-05 2020-08-14 阿里巴巴集团控股有限公司 缓存的实现的方法和装置
US11113247B1 (en) 2016-05-10 2021-09-07 Veritas Technologies Llc Routing I/O requests to improve read/write concurrency
CN107870872B (zh) * 2016-09-23 2021-04-02 伊姆西Ip控股有限责任公司 用于管理高速缓存的方法和设备
CN106528927B (zh) * 2016-09-29 2019-07-30 京微齐力(北京)科技有限公司 输入输出i/o工艺映射方法和装置
CN108874615A (zh) * 2017-05-16 2018-11-23 惠州市德赛西威汽车电子股份有限公司 一种车载多媒体系统性能检测装置及检测方法
US10824562B2 (en) * 2018-01-09 2020-11-03 Hossein Asadi Reconfigurable caching
CN110688329B (zh) * 2019-09-06 2021-08-10 无锡江南计算技术研究所 一种可同时支持多套Cache数据私有段动态设置的方法
US20230083798A1 (en) * 2021-09-14 2023-03-16 International Business Machines Corporation Maintaining metadata from a catalog in a repository to return to requests for the metadata

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399503A (en) * 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4408273A (en) * 1980-05-27 1983-10-04 International Business Machines Corporation Method and means for cataloging data sets using dual keyed data sets and direct pointers
JPH0664536B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末サブシステムの制御方法
US5097533A (en) * 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5301295A (en) * 1991-05-22 1994-04-05 Analog Devices, Inc. Data processor apparatus and method with selective caching of instructions
CA2121852A1 (en) * 1993-04-29 1994-10-30 Larry T. Jost Disk meshing and flexible storage mapping with enhanced flexible caching
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US6092149A (en) * 1997-05-28 2000-07-18 Western Digital Corporation Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
US6098149A (en) * 1997-06-13 2000-08-01 Emc Corporation Method and apparatus for extending commands in a cached disk array
US6012104A (en) * 1997-10-24 2000-01-04 International Business Machines Corporation Method and apparatus for dynamic extension of channel programs
US6219693B1 (en) * 1997-11-04 2001-04-17 Adaptec, Inc. File array storage architecture having file system distributed across a data processing platform
US6044415A (en) * 1998-02-27 2000-03-28 Intel Corporation System for transferring I/O data between an I/O device and an application program's memory in accordance with a request directly over a virtual connection
JPH11345164A (ja) 1998-06-03 1999-12-14 Sony Corp 情報処理装置
US6301640B2 (en) * 1998-07-02 2001-10-09 Lucent Technologies, Inc. System and method for modeling and optimizing I/O throughput of multiple disks on a bus
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6463509B1 (en) * 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6453321B1 (en) * 1999-02-11 2002-09-17 Ibm Corporation Structured cache for persistent objects
US6421761B1 (en) * 1999-11-09 2002-07-16 International Business Machines Corporation Partitioned cache and management method for selectively caching data by type
JP3710351B2 (ja) * 2000-03-17 2005-10-26 三菱電機株式会社 データ処理装置
JP4068798B2 (ja) * 2000-10-31 2008-03-26 株式会社日立製作所 記憶サブシステム及びi/oインタフェースの制御方法ならびに情報処理システム
US6687765B2 (en) * 2001-01-16 2004-02-03 International Business Machines Corporation System, method, and computer program for explicitly tunable I/O device controller
US6721814B1 (en) * 2001-05-15 2004-04-13 Emc Corporation System and method of improving host performance characteristics by intelligent shift of data caching from host to cache-enabled mass storage subsystem
US6754734B2 (en) * 2001-12-18 2004-06-22 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database
US7113937B2 (en) * 2001-12-18 2006-09-26 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US7159025B2 (en) * 2002-03-22 2007-01-02 Microsoft Corporation System for selectively caching content data in a server based on gathered information and type of memory in the server
US7043614B2 (en) * 2002-07-11 2006-05-09 Veritas Operating Corporation Storage services and systems
US6981112B2 (en) * 2002-08-26 2005-12-27 International Business Machines Corporation Dynamic cache disable
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
JP4252828B2 (ja) 2003-03-19 2009-04-08 株式会社日立製作所 キャッシュ制御方法、ノード装置、プログラム
US7493450B2 (en) * 2003-04-14 2009-02-17 Hewlett-Packard Development Company, L.P. Method of triggering read cache pre-fetch to increase host read throughput
US7836261B2 (en) * 2004-01-12 2010-11-16 International Business Machines Corporation Managing caching of data on a client
US20050246501A1 (en) * 2004-04-30 2005-11-03 Intel Corporation Selective caching systems and methods
US7493465B2 (en) * 2004-05-17 2009-02-17 Oracle International Corporation Method and system for extended memory with user mode input/output operations
US7831642B1 (en) * 2004-09-30 2010-11-09 Symantec Operating Corporation Page cache management for a shared file
US7228388B2 (en) * 2004-11-19 2007-06-05 International Business Machines Corporation Enabling and disabling cache bypass using predicted cache line usage
JP4779012B2 (ja) * 2005-04-25 2011-09-21 ネットアップ,インコーポレイテッド 瞬時ボリューム復元のためのオン・デマンドでデータを復元するシステム、および方法
US7756909B2 (en) * 2005-04-29 2010-07-13 Microsoft Corporation Configuration profiles for output cached pages
US7383392B2 (en) * 2005-05-31 2008-06-03 Hewlett-Packard Development Company, L.P. Performing read-ahead operation for a direct input/output request
US8001538B2 (en) * 2005-12-07 2011-08-16 Microsoft Corporation Software accessible cache metadata
US7685367B2 (en) * 2006-03-08 2010-03-23 Microsoft Corporation Multi-cache cooperation for response output caching
US7640395B2 (en) * 2006-03-30 2009-12-29 Intel Corporation Maintaining write ordering in a system
US7996623B2 (en) * 2006-06-30 2011-08-09 Seagate Technology Llc Read ahead storage control
JP4767127B2 (ja) * 2006-08-10 2011-09-07 株式会社日立製作所 ファイルサーバ、計算機システム及びファイルの先読み方法。
JP2008090378A (ja) * 2006-09-29 2008-04-17 Seiko Epson Corp ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
US8224813B2 (en) * 2006-10-20 2012-07-17 Oracle International Corporation Cost based analysis of direct I/O access
US20080184003A1 (en) * 2007-01-30 2008-07-31 Kabushiki Kaisha Toshiba Data transmission control apparatus and data transmission control method
NZ579740A (en) 2007-02-08 2011-12-22 Aspenbio Pharma Inc Compositions and methods including expression and bioactivity of bovine follicle stimulating hormone
US7730265B1 (en) * 2007-03-06 2010-06-01 Oracle America, Inc. Starvation-avoiding unbounded transactional memory
US7856530B1 (en) * 2007-10-31 2010-12-21 Network Appliance, Inc. System and method for implementing a dynamic cache for a data storage system
US20090150511A1 (en) * 2007-11-08 2009-06-11 Rna Networks, Inc. Network with distributed shared memory
US8255627B2 (en) * 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing

Also Published As

Publication number Publication date
CN102696020B (zh) 2016-06-29
US8825685B2 (en) 2014-09-02
EP2502148A1 (en) 2012-09-26
JP2013511091A (ja) 2013-03-28
CN102696020A (zh) 2012-09-26
US9529814B1 (en) 2016-12-27
EP2502148B1 (en) 2018-07-04
WO2011059979A1 (en) 2011-05-19
US20110119228A1 (en) 2011-05-19

Similar Documents

Publication Publication Date Title
JP5802983B2 (ja) 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング
US9495294B2 (en) Enhancing data processing performance by cache management of fingerprint index
US8447943B2 (en) Reduction of I/O latency for writable copy-on-write snapshot function
JP6270827B2 (ja) データ・マイグレーションのための方法、システム、およびコンピュータ・プログラム
US9779026B2 (en) Cache bypass utilizing a binary tree
US9229870B1 (en) Managing cache systems of storage systems
JP2004127294A (ja) 仮想記憶システムおよびその動作方法
US20110078682A1 (en) Providing Object-Level Input/Output Requests Between Virtual Machines To Access A Storage Subsystem
US20090144496A1 (en) Fast accessible compressed thin provisioning volume
US20130219122A1 (en) Multi-stage cache directory and variable cache-line size for tiered storage architectures
CN107656834B (zh) 用于基于事务日志恢复主机访问的系统和方法及存储介质
JP2005276208A (ja) 通信リンク接続の永久メモリシステム
JP4222917B2 (ja) 仮想記憶システムおよびその動作方法
US9229637B2 (en) Volume copy management method on thin provisioning pool of storage subsystem
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
US9471252B2 (en) Use of flash cache to improve tiered migration performance
US11372778B1 (en) Cache management using multiple cache memories and favored volumes with multiple residency time multipliers
US11789822B1 (en) Implementation of fast and reliable metadata operations
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US11397528B2 (en) Consistent IO performance on undefined target devices in a cascaded snapshot environment
US11188425B1 (en) Snapshot metadata deduplication
TW201418984A (zh) 保護碟資料完整性的方法及實現其之電腦程式產品
US11372761B1 (en) Dynamically adjusting partitioned SCM cache memory to maximize performance
US11379382B2 (en) Cache management using favored volumes and a multiple tiered cache memory
CN114546711A (zh) 一种Linux系统下的卷级快照实现方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140924

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20141003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150609

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: 20150804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150806

R150 Certificate of patent or registration of utility model

Ref document number: 5802983

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees