JP2008506195A - 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 - Google Patents
分散キャッシュ・コヒーレンスを提供するシステムおよび方法 Download PDFInfo
- Publication number
- JP2008506195A JP2008506195A JP2007520522A JP2007520522A JP2008506195A JP 2008506195 A JP2008506195 A JP 2008506195A JP 2007520522 A JP2007520522 A JP 2007520522A JP 2007520522 A JP2007520522 A JP 2007520522A JP 2008506195 A JP2008506195 A JP 2008506195A
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- directory
- access
- request
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
記憶装置ネットワーク上のデータへのアクセスを共有する複数のアクセス・ノードは、ディレクトリ編成キャッシュ所有権スキームを実現する。グローバル・コーディネータとして指定された1つのノードが、アクセス・ノードによる入出力動作に関する情報を記憶するディレクトリ(例えば、テーブルまたは他のデータ構造)を維持する。入出力動作が識別データ上で実行されるとき、他のノードは、要求をグローバル・コーディネータへ送る。ディレクトリ内のそのデータの所有権は最初の要求ノードへ与えられる。ディレクトリ項目が使用されないか、休止している場合、所有権は他のノードへ移転してもよい。分散ディレクトリ編成キャッシュ・コヒーレンスは、リモート・データへの局所化された(キャッシュされた)アクセスを許可することによって、地理的に離れたアクセス・ノード間の帯域幅要件を低減することができる。
Description
本発明は、一般的に、データ記憶装置ネットワーク上で1つまたは複数のデータ記憶装置アクセス・ノードを横切ってデータを共有することに関し、さらに具体的には、データ記憶装置アクセス・ノードの分散ネットワークを横切ってディレクトリ編成キャッシュ・コヒーレンスを提供するシステムおよび方法に関する。
関連出願の相互参照
本出願は、2004年7月7日に出願された米国仮出願第60/586,364号の恩典を主張する。この仮出願は、参照として全体が本明細書に組み入れられる。
本出願は、2004年7月7日に出願された米国仮出願第60/586,364号の恩典を主張する。この仮出願は、参照として全体が本明細書に組み入れられる。
発明の背景
現在の記憶装置ネットワーク、および特に、地理的にリモートのアクセス・ノードおよび記憶装置リソースを含む記憶装置ネットワークにおいて、リソースおよびアクセス・ノード間の帯域幅を維持または低減することが高度に望ましい。したがって、さらに、ホスト・デバイスによって要求されたページへのアクセス速度を多少改善するため、データ・アクセスを局所化することが望ましい。アクセス・ノードでページをキャッシュすることは局所化を提供するが、キャッシュされたデータは、同じデータをキャッシュしているかもしれない他のアクセス・ノードでの修正に関して、コヒーレントに維持されなければならない。しかし、現在の記憶装置ネットワーク・アクセス解決法は、記憶装置ネットワーク・アクセス・ノードでページをローカルにキャッシュする実用的コヒーレンス・メカニズムを提供しない。
現在の記憶装置ネットワーク、および特に、地理的にリモートのアクセス・ノードおよび記憶装置リソースを含む記憶装置ネットワークにおいて、リソースおよびアクセス・ノード間の帯域幅を維持または低減することが高度に望ましい。したがって、さらに、ホスト・デバイスによって要求されたページへのアクセス速度を多少改善するため、データ・アクセスを局所化することが望ましい。アクセス・ノードでページをキャッシュすることは局所化を提供するが、キャッシュされたデータは、同じデータをキャッシュしているかもしれない他のアクセス・ノードでの修正に関して、コヒーレントに維持されなければならない。しかし、現在の記憶装置ネットワーク・アクセス解決法は、記憶装置ネットワーク・アクセス・ノードでページをローカルにキャッシュする実用的コヒーレンス・メカニズムを提供しない。
したがって、上記および他の問題点を克服する効率的なデータ局所化およびキャッシュ・コヒーレンス・システムおよび方法を提供することが望ましい。そのようなシステムおよび方法は、さらに、記憶装置ネットワーク・アクセス・ノード間で、低減された帯域幅の使用またはメッセージング要件を提供すべきである。
発明の簡単な概要
本発明は、データ記憶装置アクセス・ノードの分散ネットワークを横切ってディレクトリ編成キャッシュ・コヒーレンスを実現するシステムおよび方法を提供する。
本発明は、データ記憶装置アクセス・ノードの分散ネットワークを横切ってディレクトリ編成キャッシュ・コヒーレンスを実現するシステムおよび方法を提供する。
本発明によれば、記憶装置ネットワークでデータへのアクセスを共有する複数のアクセス・ノードは、ディレクトリ編成キャッシュ所有権スキームを実行する。グローバル・コーディネータとして指定された1つのノードが、アクセス・ノードによる入出力動作に関する情報を記憶したディレクトリ(例えば、テーブルまたは他のデータ構造)を維持する。他のノードは、識別データ上で入出力動作を実行しようとするとき、要求をグローバル・コーディネータへ送る。ディレクトリ内のそのデータの所有権は、最初の要求ノードへ与えられる。ディレクトリの項目が使用されないか休止していれば、所有権は他のノードへ移転してよい。本発明によれば、分散ディレクトリ編成キャッシュ・コヒーレンスは、リモート・データへの局所化された(キャッシュされた)アクセスを可能にすることによって、地理的に離れたアクセス・ノード間の帯域幅要件を低減することができる。
本発明の1つの局面によれば、トラフィック・スケーラビリティを維持するように、データ記憶装置ネットワークへのアクセスを共有するデータ・アクセス・ノード間で送られるメッセージの数を低減する方法が提供される。本方法は、典型的には、ページ所有権項目のディレクトリを維持することを含む。その場合、項目の所有権は、当初に、項目内のページへのアクセスを要求する最初のアクセス・ノードへ付与され、項目の所有権は高い頻度で項目内のページにアクセスしているノードへ自動的に移転し、ノード間で送られる同期メッセージの数が低減される。
本発明の他の局面によれば、データ記憶装置ネットワーク内でデータへのアクセスを共有する地理的に離れたアクセス・ノード間で帯域幅を低減する方法が提供される。本方法は、典型的には、アクセス・ノードについてローカルにデータをキャッシュし、そのノードのためにそのデータへの局所化されたキャッシュ・アクセスを提供し、ディレクトリ編成所有権スキームを使用してアクセス・ノード間でキャッシュ・データについてデータ・コヒーレンスを維持することを含む。
本発明のさらに他の局面によれば、データ記憶装置ネットワーク内でデータ・アクセス・ノードの分散された集合におけるキャッシュ間のキャッシュ・コヒーレンスを提供する方法は、典型的には、データ記憶装置ネットワークへのアクセスを共有する複数のアクセス・ノードの少なくとも1つの中にディレクトリを維持すること、複数のアクセス・ノードによってアクセスされるデータに関する情報をディレクトリが記憶すること、最初のデータ・アクセス・ノードでホスト・システムからのデータ・アクセス要求を受け取ること、処理されるべきデータをデータ・アクセス要求が識別することを含む。本方法は、さらに、典型的には、最初のアクセス・ノードが、識別されたデータをキャッシュに記憶されているかどうかを決定すること、記憶されていない場合、ディレクトリを使用して、複数のアクセス・ノードの中の他のノードが、識別されたデータのコピーをキャッシュに記憶されているかどうかを決定すること、或るノードが、識別されたデータのコピーをキャッシュに記憶されていれば、識別されたデータを共有するための共有要求の1つをそのノードへ送って、要求しているノードが記憶装置から識別データにアクセスする必要がないようにするか、そのノードのキャッシュに記憶されたデータのコピーを無効にするための無効要求を送ることを含む。
本発明の更なる局面によれば、データ記憶装置ネットワークへのアクセスを共有するデータ・アクセス・ノード間で送られるメッセージの数を低減して、トラフィック・スケーラビリティを維持する方法が提供される。本方法は、典型的には、複数のデータ・アクセス・ノードによってアクセスされるデータに関する情報を記憶するディレクトリを維持すること、データ記憶装置ネットワーク内のデータの1つまたは複数のページを表す項目をディレクトリが含むこと、最初のデータ・アクセス・ノードでホスト・システムからのデータ・アクセス要求を受け取ること、処理されるべきデータをデータ・アクセス要求が識別することを含む。本方法は、さらに、典型的には、グローバルディレクトリコーディネータを使用して、識別されたデータについてディレクトリ項目の所有権を或るノードが有するかどうかを決定すること、ディレクトリ項目の所有権を有するノードが存在しない場合、識別されたデータについてディレクトリ項目の所有権を最初のアクセス・ノードへ付与すること、或るノードが項目の所有権を有する場合、そのノードを最初のノードに識別することを含む。このようにして、最初のノードは、識別されたノードと通信して、入出力要求を処理することができる。
更なる局面によれば、データ記憶装置ネットワークへのアクセスを共有する複数のデータ・アクセス・ノード間のキャッシュ・コヒーレンスを維持するシステムが提供される。システムは、典型的には、データを記憶する記憶装置システム、およびホスト要求に応答して記憶装置システム内のデータにアクセスするように構成された複数のアクセス・ノードを含む。ノードの1つは、典型的には、複数のデータ・アクセス・ノードによってアクセスされるデータに関する情報を記憶するディレクトリ(ディレクトリノード)を維持するように構成される。ディレクトリは、データ記憶装置ネットワーク内のデータの1つまたは複数のページを表す項目を含む。動作において、処理されるべきデータを識別するデータ・アクセス要求をホストから受け取ると、最初のアクセス・ノードは要求をディレクトリノードへ送る。ディレクトリノードは、識別されたデータについてディレクトリ項目の所有権をノードが有するかどうかを決定し、ディレクトリ項目の所有権を有するノードが存在しない場合、ディレクトリノードは、識別されたデータについてディレクトリ項目の所有権を最初のアクセス・ノードへ付与し、或るノードが項目の所有権を有する場合、ディレクトリノードはそのノードを最初のアクセス・ノードに識別する。
図面および特許請求の範囲を含む明細書の残りの部分を参照すると、本発明の他の特徴および利点を理解できるであろう。本発明の更なる特徴および利点、ならびに本発明の様々な態様の構造および動作は、添付の図面に関して下記で詳細に説明される。図面において、同様の符番は同一または機能的に類似した要素を示す。
発明の詳細な説明
1つの態様によれば、ディレクトリマネージャ・モジュールまたはDMGが提供される。DMGは、データ・アクセス・ノードの分散された集合を横切って、共有されたデータについてキャッシュ・コヒーレンス・メカニズムを提供する責任を有する。共有されるデータ・ボリュームからデータをキャッシュしているノードの集合は、共有グループと呼ばれる。一般的に、DMGモジュールは、ノード内のプロセッサまたは他の知能モジュール(例えば、ASIC)上で実行しているソフトウェアを含む。DMGモジュールは、単一のノードの中で実現されるか、複数の相互に通信するノードを横切って分散される。或る局面において、アクセス・ノードは、コントローラ・デバイスまたはブレードとして具体化される。コントローラ・デバイスまたはブレードは、記憶装置ネットワーク、例えば、記憶装置エリア・ネットワーク(SAN)へ通信可能に結合される。これは、記憶装置ネットワーク上に記憶されたデータへのアクセスを可能にする。しかし、アクセス・ノードは、知能ファブリック・スイッチまたは他のネットワーク・デバイス、例えば、ハブ・アダプタとしても具体化可能であることが分かるであろう。局所意識ディレクトリ移行(LCDM)をデータベースへ適用することができるから、DMG機能を有するアクセス・ノードとして動作するように、任意のネットワーク計算ノードを構成することができる(例えば、ネットワーク接続を有するデスクトップ・コンピュータ上で、DMGを実行することができる)。参照として全体が組み入れられる米国特許第6,148,414号は、本発明の局面の実現が特に有用であるコントローラ・デバイスおよびノードを開示している。
1つの態様によれば、ディレクトリマネージャ・モジュールまたはDMGが提供される。DMGは、データ・アクセス・ノードの分散された集合を横切って、共有されたデータについてキャッシュ・コヒーレンス・メカニズムを提供する責任を有する。共有されるデータ・ボリュームからデータをキャッシュしているノードの集合は、共有グループと呼ばれる。一般的に、DMGモジュールは、ノード内のプロセッサまたは他の知能モジュール(例えば、ASIC)上で実行しているソフトウェアを含む。DMGモジュールは、単一のノードの中で実現されるか、複数の相互に通信するノードを横切って分散される。或る局面において、アクセス・ノードは、コントローラ・デバイスまたはブレードとして具体化される。コントローラ・デバイスまたはブレードは、記憶装置ネットワーク、例えば、記憶装置エリア・ネットワーク(SAN)へ通信可能に結合される。これは、記憶装置ネットワーク上に記憶されたデータへのアクセスを可能にする。しかし、アクセス・ノードは、知能ファブリック・スイッチまたは他のネットワーク・デバイス、例えば、ハブ・アダプタとしても具体化可能であることが分かるであろう。局所意識ディレクトリ移行(LCDM)をデータベースへ適用することができるから、DMG機能を有するアクセス・ノードとして動作するように、任意のネットワーク計算ノードを構成することができる(例えば、ネットワーク接続を有するデスクトップ・コンピュータ上で、DMGを実行することができる)。参照として全体が組み入れられる米国特許第6,148,414号は、本発明の局面の実現が特に有用であるコントローラ・デバイスおよびノードを開示している。
図1は、本発明に従った基本ネットワーク構成を示す。図示されるように、複数のネットワーク・クライアント101〜10Nは、複数のアクセス・ノード・デバイス201〜20N(アクセス・ノード)と通信可能に結合される。アクセス・ノードの各々は、プロセッサ・コンポーネント22、例えば、マイクロプロセッサまたは他の知能モジュール、キャッシュ24(例えば、RAMキャッシュ)および/または他のローカル記憶装置、通信ポート(図示されず)およびDMGモジュール26のインスタンスを含む。(一般的に、「N」は、本明細書において、無限の複数を示すために使用され、1つのコンポーネントを参照するときの数「N」は、異なるコンポーネントの数「N」と必ずしも等しくない。例えば、クライアント10の数は図1のアクセス・ノード20の数と等しくないが、等しくてもよい)。各々のクライアント10は、好ましくは、ローカル・ネットワーク接続15を介して1つまたは複数のノード20へ通信可能に結合されるが、クライアントは、特定の応用およびノード20に対する地理的ロケーションに要求される任意の数の接続スキームを介して、ノード20と通信可能に結合されてよい。接続スキームには、例えば、直接有線または無線接続、インターネット接続、任意のローカル・エリア・ネットワーク(LAN)型接続、任意のメトロポリタン・エリア・ネットワーク(MAN)接続、任意の広域ネットワーク(WAN)型接続、VLAN、任意のプロプラエタリ・ネットワーク接続などが含まれる。各々のノード20は、さらに、典型的には、1つまたは複数のAMFを含むか、それらと通信可能に結合され、ネットワーク50、例えば、記憶装置エリア・ネットワーク(SAN)、LAN、WAN、MANなどを介して、1つまたは複数の記憶装置リソース40と通信可能に結合される。記憶装置リソース40の各々は、1つまたは複数のディスク・ドライブを含む。ノード20は、ローカル・ネットワーク接続を介して1つまたは複数の記憶装置リソースへ結合されることが好ましい。ノード20は、相互に物理的に接近して位置するか、1つまたは複数のノードが他のノードからリモートに、例えば、地理的リモートに位置してよい。アクセス・ノード20は、さらに、ネットワーク50および/または他の通信ネットワークまたはメディアを介して、例えば、PCIバスまたはバックボーンまたはファイバーチャネル・ネットワークを介して、またはネットワーク15を介して、他のノードと相互に通信することができる。
本発明によれば、分散キャッシュ・コヒーレンスは、リモート・データへの局所化された(キャッシュされた)アクセスを可能にすることによって地理的に離れたアクセス・ノード間で帯域幅要件を低減するために重要である。1つの局面によれば、データをキャッシュできなければ、データ・アクセスを局所化できないが、リモートのアクセス・ノードでの修正に関してデータをコヒーレントに保持できなければ、データをキャッシュすることは安全でない。DMGの任意の態様はキャッシュ・コヒーレンスの正確度要件を満足させるが、多くの実現方法の高いオーバヘッドは、局所化されたキャッシュ・アクセスの利点を上回る。下記で説明される本発明のLCDM態様は、十分に低いオーバヘッドで、局所化されたキャッシュ・アクセスを実用的で有利にすることを証明した。
DMG内の基本コヒーレンス単位はページ(記憶装置の論理ブロック)であるが、DMGはサブページおよびマルチページでの動作を可能にする。ディレクトリは、ディレクトリ項目の集合であり、各々の項目は特定のページについて分散共有知識を符号化している。同時キャッシュ動作がページ上でアクティブであるとき、ディレクトリ項目は分散リソースへのアクセスをロックおよび同期する。ディレクトリ情報は、影響を受けるノード間で送られるポイントツーポイント・メッセージを介して最新に維持される。DMGキャッシュ・コヒーレンス・メッセージング対話は、リモート・キャッシュからのページを共有できるようにし(例えば、読み出し要求がローカル・キャッシュでミスになったとき)、リモートにキャッシュされたコピーを無効にすることができる(例えば、書き込み要求が前のコピーに取って代わるとき)。
ディレクトリ配置スキームの態様および局所データ・アクセスの利用方法は、下記のセクション1.1で説明される。セクション1.2はメッセージング対話を紹介し、さらに進んでセクション1.3では、1つの態様に従って、どのようにディレクトリでロッキングを利用して同時ページ・アクセスを管理するかを説明する。最後に、セクション1.4は、1つの態様に従って、どのようにロケーション認識ページ共有を使用して地理的に分散したキャッシュ・コヒーレンスのパフォーマンスを改善するかを説明する。
1.1 ディレクトリの配置
1つの局面によれば、キャッシュ・コヒーレンスを調整するため、DMGは、全てのアクティブ・ページに関する情報を追跡する項目を有するディレクトリを維持する。アクティブ・ページは、関連づけられた共有グループ内で少なくとも1つのキャッシュの中に発見されるページである。ディレクトリ項目は、どのノードが、関連づけられたページのコピーを有するかを追跡し、分散ロックを維持してページへの同時アクセスを防ぎ、待ち行列を維持して、ノードがロックを待機している間、動作を直列化する。
1つの局面によれば、キャッシュ・コヒーレンスを調整するため、DMGは、全てのアクティブ・ページに関する情報を追跡する項目を有するディレクトリを維持する。アクティブ・ページは、関連づけられた共有グループ内で少なくとも1つのキャッシュの中に発見されるページである。ディレクトリ項目は、どのノードが、関連づけられたページのコピーを有するかを追跡し、分散ロックを維持してページへの同時アクセスを防ぎ、待ち行列を維持して、ノードがロックを待機している間、動作を直列化する。
1.1.1 専用ディレクトリサーバ
1つの態様によれば、非常に簡単なディレクトリ配置スキームが使用される。そのスキームでは、全体のディレクトリが、共有グループに参加する最初のノードに置かれる。しかし、そのようなディレクトリスキームは、共有グループのサイズに対してスケール良好ではない。一般的に、ディレクトリ配置スキームのパフォーマンスを決定する場合、2つの競争する利益が関係する。所与のページのディレクトリ項目を含むノードのDMG動作は、不必要なメッセージ送信を避けるように最適化可能であり、それによってノード間帯域幅が保存され、動作待ち時間が改善される。しかし、ページのディレクトリノードは、共有グループ内の他のノードからの全ての関連メッセージ・トラフィックを処理しなければならない。
1つの態様によれば、非常に簡単なディレクトリ配置スキームが使用される。そのスキームでは、全体のディレクトリが、共有グループに参加する最初のノードに置かれる。しかし、そのようなディレクトリスキームは、共有グループのサイズに対してスケール良好ではない。一般的に、ディレクトリ配置スキームのパフォーマンスを決定する場合、2つの競争する利益が関係する。所与のページのディレクトリ項目を含むノードのDMG動作は、不必要なメッセージ送信を避けるように最適化可能であり、それによってノード間帯域幅が保存され、動作待ち時間が改善される。しかし、ページのディレクトリノードは、共有グループ内の他のノードからの全ての関連メッセージ・トラフィックを処理しなければならない。
1.1.2 線条分割ディレクトリ配置
他の態様によれば、ディレクトリ項目は、各々の共有グループ内のノードを横切ってラウンドロビン方式で線条に分割される。DMGは、多くの場合、マルチページ動作を処理しなければならないので、線条サイズを十分大きくして、動作の頻繁な分割を回避すべきである。そのような線条分割は容易に実現することができ、最小のパフォーマンス・オーバヘッドを有するが、2つの問題点が、より良好な解決法の発見を望ましくするかもしれない。それらの2つの問題点は、次のとおりである。
1.線条分割は、共有グループ内のノードの全てがデータ・ボリュームの全体に分散されたページをアクティブに共有しているときにのみ機能する。ノードが非アクティブであるか、ノードがページを共有するだけで、ページのディレクトリ項目がリモート・ノード上に存在するならば、パフォーマンスは悪影響を受ける。線条分割ディレクトリ配置が所与の作業負荷へ適合化する方法は存在しない。
2.1つの局面において、線条分割はノードを横切るモジュラス関数を使用して実現されるので、ノードが共有グループに入るか出るならば、ディレクトリ項目を再分散する迅速かつ容易な方法はない。全てのキャッシュを無効にし、最初からディレクトリを作ることが1つの選択肢である。
他の態様によれば、ディレクトリ項目は、各々の共有グループ内のノードを横切ってラウンドロビン方式で線条に分割される。DMGは、多くの場合、マルチページ動作を処理しなければならないので、線条サイズを十分大きくして、動作の頻繁な分割を回避すべきである。そのような線条分割は容易に実現することができ、最小のパフォーマンス・オーバヘッドを有するが、2つの問題点が、より良好な解決法の発見を望ましくするかもしれない。それらの2つの問題点は、次のとおりである。
1.線条分割は、共有グループ内のノードの全てがデータ・ボリュームの全体に分散されたページをアクティブに共有しているときにのみ機能する。ノードが非アクティブであるか、ノードがページを共有するだけで、ページのディレクトリ項目がリモート・ノード上に存在するならば、パフォーマンスは悪影響を受ける。線条分割ディレクトリ配置が所与の作業負荷へ適合化する方法は存在しない。
2.1つの局面において、線条分割はノードを横切るモジュラス関数を使用して実現されるので、ノードが共有グループに入るか出るならば、ディレクトリ項目を再分散する迅速かつ容易な方法はない。全てのキャッシュを無効にし、最初からディレクトリを作ることが1つの選択肢である。
1.1.3 局所意識ディレクトリ移行
本発明の1つの態様によれば、DMGは、適応ディレクトリ配置スキームである局所意識ディレクトリ移行またはLCDMを実現する。線条分割ディレクトリ配置の態様におけるように、LCDMの態様において、ディレクトリ項目は複数ページのチャンクへ分割される。しかし、それらのチャンクの配置または所有権は事前に設定されず、永久的でもない。その代わりに、ディレクトリチャンクの所有権は、それらのページを最も頻繁に使用しているノードへ移行する。局所データ・アクセスを利用して入出力パフォーマンスを改善することに加えて、LCDMは、ノード障害(または、共有グループに付加されるノード)からの迅速な回復を有利に助ける。なぜなら、ディレクトリチャンクを再分散する必要はないからである。1つの態様において、ディレクトリチャンクの所有権は、チャンク内のページにアクセスする最初のノードへ付与される。
本発明の1つの態様によれば、DMGは、適応ディレクトリ配置スキームである局所意識ディレクトリ移行またはLCDMを実現する。線条分割ディレクトリ配置の態様におけるように、LCDMの態様において、ディレクトリ項目は複数ページのチャンクへ分割される。しかし、それらのチャンクの配置または所有権は事前に設定されず、永久的でもない。その代わりに、ディレクトリチャンクの所有権は、それらのページを最も頻繁に使用しているノードへ移行する。局所データ・アクセスを利用して入出力パフォーマンスを改善することに加えて、LCDMは、ノード障害(または、共有グループに付加されるノード)からの迅速な回復を有利に助ける。なぜなら、ディレクトリチャンクを再分散する必要はないからである。1つの態様において、ディレクトリチャンクの所有権は、チャンク内のページにアクセスする最初のノードへ付与される。
1つの態様において、ノードの全てがそれらのキャッシュからチャンク内の全てのページを駆逐した後、ディレクトリチャンクが空であるときにのみ、所有権の持ち主が変わる。共有グループ内の1つのノードがグローバルディレクトリチャンクコーディネータ(「グローバル・コーディネータ」)として指定される。このノードは、ディレクトリ項目の所有権を付与し、ルックアップ・テーブルまたは他の類似のデータ構造を記憶する。これらのルックアップ・テーブルまたは他の類似のデータ構造は、共有グループ内の各々のアクティブ・ページの所有権を識別する。共有グループ内の他のノードは、ルックアップ・テーブルのローカル部分ミラーを維持するが、時にはグローバル・コーディネータを参照する必要がある。グローバル・コーディネータ自身も、ディレクトリ項目の所有者であるか、所有者になってよい。図2は、ディレクトリ所有権の変さらに関連したシナリオを要約する。これは下記で詳細に探究される。
A.ローカル・ノードが、ディレクトリチャンクの所有者が誰であるかを既に知っているとき、入出力動作の前に、所有者を識別または確認する簡単なテーブル・ルックアップが実行される。
B.ローカル・ノードがディレクトリチャンクに最初にアクセスする場合、ローカル・ノードはDIRQUERY_REQメッセージをグローバル・コーディネータ・ノードへ送る。他のノードがチャンクの所有権を既に主張していれば、コーディネータは、チャンクの所有者の地位を含むDIRQUERY_REPLYメッセージで要求者に応答する。次に、要求者はチャンクを所有するアクセス・ノードと通信し、入出力動作を完了する。
C.前のシナリオで、グローバル・コーディネータのルックアップが、問題のディレクトリチャンクを所有しているノードは存在しないことを示すならば、グローバル・コーディネータは、要求者の地位を含むと共に所有権を付与するDIRQUERY_REPLYメッセージで要求者に応答する。地位は、ノードが共有グループに参加した順序を識別する指標である。グローバル・コーディネータのルックアップ・テーブルの中に項目が作られ、他のノードと同期される。
D.チャンク所有者が、もはやディレクトリ項目を有さないとき、それは所有権放棄のRELINQ_REQメッセージをグローバル・コーディネータへ送る。DMGノードがチャンク所有権を放棄した後、新しい要求が元のチャンク所有者へ到着すれば、元のチャンク所有者はDIROWNER_NACKメッセージで要求者へ応答する。これによって、要求者はグローバル・コーディネータへ再質問を行う。放棄の後に、グローバル・コーディネータへ質問した最初のノードが、チャンクの所有権を付与される。
A.ローカル・ノードが、ディレクトリチャンクの所有者が誰であるかを既に知っているとき、入出力動作の前に、所有者を識別または確認する簡単なテーブル・ルックアップが実行される。
B.ローカル・ノードがディレクトリチャンクに最初にアクセスする場合、ローカル・ノードはDIRQUERY_REQメッセージをグローバル・コーディネータ・ノードへ送る。他のノードがチャンクの所有権を既に主張していれば、コーディネータは、チャンクの所有者の地位を含むDIRQUERY_REPLYメッセージで要求者に応答する。次に、要求者はチャンクを所有するアクセス・ノードと通信し、入出力動作を完了する。
C.前のシナリオで、グローバル・コーディネータのルックアップが、問題のディレクトリチャンクを所有しているノードは存在しないことを示すならば、グローバル・コーディネータは、要求者の地位を含むと共に所有権を付与するDIRQUERY_REPLYメッセージで要求者に応答する。地位は、ノードが共有グループに参加した順序を識別する指標である。グローバル・コーディネータのルックアップ・テーブルの中に項目が作られ、他のノードと同期される。
D.チャンク所有者が、もはやディレクトリ項目を有さないとき、それは所有権放棄のRELINQ_REQメッセージをグローバル・コーディネータへ送る。DMGノードがチャンク所有権を放棄した後、新しい要求が元のチャンク所有者へ到着すれば、元のチャンク所有者はDIROWNER_NACKメッセージで要求者へ応答する。これによって、要求者はグローバル・コーディネータへ再質問を行う。放棄の後に、グローバル・コーディネータへ質問した最初のノードが、チャンクの所有権を付与される。
他の態様では、ディレクトリチャンクが空でないときでも、ノード間におけるチャンク所有権の移行を可能にすることによって、LCDMを向上することができる。これによって、入出力アクセス・パターンを綿密に見守ることができ、メッセージング要件を最小にすることによって、DMGのパフォーマンスを改善することができる。しかし、この最適化は、一般的に、次のような或る一定の要件を有する。
1.ディレクトリチャンクの所有権は、チャンクの全体が休止しているときにのみ安全に移動可能である。アクティブなコヒーレンス・トラフィックまたはロックされたページが存在すれば、移動は実行不可能である。
2.空でないチャンクの移動は、新しいチャンク所有者への共有情報の輸送を含む。これは、半自動的に行われなければならず、したがって新しいコヒーレンス要求は、移動の途中で開始されない。
3.チャンク所有権の移転コストはゼロではないから、移転をいつ有効にするかを決定するために使用される発見的方法が非常に重要である。特に、キャッシュの作業負荷について、先行知識が制限されている場合にそうである。
4.ディレクトリチャンク移転の調整は、3つまでのノードを含むことができる。即ち、現在のチャンク所有者、グローバル・コーディネータ、および新しいチャンク所有者である。これは、半自動的移転の仕事を一層困難にする。
1.ディレクトリチャンクの所有権は、チャンクの全体が休止しているときにのみ安全に移動可能である。アクティブなコヒーレンス・トラフィックまたはロックされたページが存在すれば、移動は実行不可能である。
2.空でないチャンクの移動は、新しいチャンク所有者への共有情報の輸送を含む。これは、半自動的に行われなければならず、したがって新しいコヒーレンス要求は、移動の途中で開始されない。
3.チャンク所有権の移転コストはゼロではないから、移転をいつ有効にするかを決定するために使用される発見的方法が非常に重要である。特に、キャッシュの作業負荷について、先行知識が制限されている場合にそうである。
4.ディレクトリチャンク移転の調整は、3つまでのノードを含むことができる。即ち、現在のチャンク所有者、グローバル・コーディネータ、および新しいチャンク所有者である。これは、半自動的移転の仕事を一層困難にする。
1.2 DMGにおける標準入出力パス
1つの態様によれば、データ・アクセス要求、例えば、読み出し要求、書き込み要求、および更新要求について、メッセージ対話がDMGの中で提供される。メッセージ配置を詳細に示すため、シーケンス対話が使用される(図3〜図5を参照)。各々の図において、DMGで処理されなければならない条件の範囲を説明するため、多様なシナリオが探査される。これらの図は、クライアント・キャッシュを含むノード、適切なディレクトリ項目を所有するノード(ディレクトリノード)、および問題のページのコピーを有する全ての他のノードを区別する。多くの場合、注意すべき重要なこととして、これらの実体は同じノードに共存する。各々の役割共有の組み合わせは新しい最適化を導入し、次のように処理される:
単一メンバー共有グループ:単一メンバー共有グループにおいて、ディレクトリは暗黙にのみ存在する。なぜなら、ディレクトリについて追跡すべき所有者情報は存在しないからである。クライアント・キャッシュからの要求は、処理するには平凡で、即時に答えることができる。
クライアント・キャッシュおよびディレクトリの共存:ディレクトリが、DMG要求を行っているノードに対してローカルであるとき、それは2つのメッセージ送信、即ち、開始時における要求および終了時における返答の必要性を除去する。
ディレクトリおよびページ所有者の共存:ディレクトリノードがページ所有者でもあるとき、それはローカルで共有を処理するか、要求を無効にすることができ、余分のメッセージの必要性を除く。
1つの態様によれば、データ・アクセス要求、例えば、読み出し要求、書き込み要求、および更新要求について、メッセージ対話がDMGの中で提供される。メッセージ配置を詳細に示すため、シーケンス対話が使用される(図3〜図5を参照)。各々の図において、DMGで処理されなければならない条件の範囲を説明するため、多様なシナリオが探査される。これらの図は、クライアント・キャッシュを含むノード、適切なディレクトリ項目を所有するノード(ディレクトリノード)、および問題のページのコピーを有する全ての他のノードを区別する。多くの場合、注意すべき重要なこととして、これらの実体は同じノードに共存する。各々の役割共有の組み合わせは新しい最適化を導入し、次のように処理される:
単一メンバー共有グループ:単一メンバー共有グループにおいて、ディレクトリは暗黙にのみ存在する。なぜなら、ディレクトリについて追跡すべき所有者情報は存在しないからである。クライアント・キャッシュからの要求は、処理するには平凡で、即時に答えることができる。
クライアント・キャッシュおよびディレクトリの共存:ディレクトリが、DMG要求を行っているノードに対してローカルであるとき、それは2つのメッセージ送信、即ち、開始時における要求および終了時における返答の必要性を除去する。
ディレクトリおよびページ所有者の共存:ディレクトリノードがページ所有者でもあるとき、それはローカルで共有を処理するか、要求を無効にすることができ、余分のメッセージの必要性を除く。
1.2.1 DMGの読み出し
図3は、読み出しがキャッシュの中でミスとなり、他のノードからのページを共有しようと試みてDMGへ達するときに看取される多様なメッセージ・シーケンスの例を詳細に示す。次の点は、図2における各々のシナリオの詳細な説明を提供する。
A.ディレクトリが、要求されたページについて項目を含まないとき、ディレクトリノードは新しい項目を作成し、要求者を唯一のページ所有者としてマークし、SHARE_NACKメッセージで返答する。これによって、要求者はAMF(「配列管理機能」)へ進み、ディスクからページ・データのコピーを取得するようになる。一般的に、また米国特許第6,148,414号で詳細に説明されるように、AMFは、関連づけられたホスト・システムのために、記憶装置リソース、例えば、ディスクへのアクセスを提供する。例えば、ホストがリソース上で動作を実行するようにAMFへ要求するとき、AMFは、動作されるべきリソースを含む冗長グループの他のAMF共有対照と同期し、リソース上のロックを取得する。AMFは、典型的には、ミスが起こったキャッシュと同じノードに存在するが、リモートのAMFが使用されてよい。
B.ディレクトリのルックアップが、ページのリモート・コピーを発見するならば、DMGは、キャッシュされたコピーを記憶するノード(「共有者」)へSHARE_REQメッセージを送る。共有者は、要求されたページをSHARE_ACKメッセージの中でクライアント・ノードへ直接送り、ディレクトリノードを迂回する。データが送られた通信層から共有者が確認を受け取ると、共有者はREAD_DONEメッセージをディレクトリノードへ送り、待機動作が始まるようにする。
C.前のシナリオで、共有者がページを非同期的に駆逐した後に(下記のセクション1.2.4を参照)、SHARE_REQメッセージが共有者に到着すれば、共有者はSHARE_NACKメッセージでディレクトリノードへ返答する。他の潜在的共有者が存在すれば、ディレクトリノードは後続のSHARE_REQメッセージを送り、通常のように続ける。そうでなければ、他のノードがページを有さない場合、ディレクトリノードはSHARE_NACKメッセージで要求者に返答する。
D.共有者が、そのSHARE_ACKメッセージを要求者へ送った後に、しかしREAD_DONEメッセージをディレクトリノードへ送ることができる前に消滅するならば、ディレクトリノードは、要求者がデータを獲得しなかったと仮定する。次に、ディレクトリノードはREAD_FAILEDメッセージを要求者へ送り、読み出しが失敗したかもしれないことを表示する。読み出しが成功したのであれば、要求者はREAD_FAILED_NACKメッセージでディレクトリノードへ応答する。失敗した場合、ディレクトリノードは、要求者がデータを受け取ったか否かを知る必要があり、それによって、ディレクトリノードは更なる読み出し要求を適正に処理することができる。なぜなら、ディレクトリノードは回復を始める前にシステムを休止状態にして終了するからである。
E.前の例で、共有者が、SHARE_ACKメッセージを要求者へ送ることができる前に消滅するならば、要求者はDMGの終局的READ_FAILEDメッセージに対してREAD_FAILED_ACKメッセージで応答する。
図3は、読み出しがキャッシュの中でミスとなり、他のノードからのページを共有しようと試みてDMGへ達するときに看取される多様なメッセージ・シーケンスの例を詳細に示す。次の点は、図2における各々のシナリオの詳細な説明を提供する。
A.ディレクトリが、要求されたページについて項目を含まないとき、ディレクトリノードは新しい項目を作成し、要求者を唯一のページ所有者としてマークし、SHARE_NACKメッセージで返答する。これによって、要求者はAMF(「配列管理機能」)へ進み、ディスクからページ・データのコピーを取得するようになる。一般的に、また米国特許第6,148,414号で詳細に説明されるように、AMFは、関連づけられたホスト・システムのために、記憶装置リソース、例えば、ディスクへのアクセスを提供する。例えば、ホストがリソース上で動作を実行するようにAMFへ要求するとき、AMFは、動作されるべきリソースを含む冗長グループの他のAMF共有対照と同期し、リソース上のロックを取得する。AMFは、典型的には、ミスが起こったキャッシュと同じノードに存在するが、リモートのAMFが使用されてよい。
B.ディレクトリのルックアップが、ページのリモート・コピーを発見するならば、DMGは、キャッシュされたコピーを記憶するノード(「共有者」)へSHARE_REQメッセージを送る。共有者は、要求されたページをSHARE_ACKメッセージの中でクライアント・ノードへ直接送り、ディレクトリノードを迂回する。データが送られた通信層から共有者が確認を受け取ると、共有者はREAD_DONEメッセージをディレクトリノードへ送り、待機動作が始まるようにする。
C.前のシナリオで、共有者がページを非同期的に駆逐した後に(下記のセクション1.2.4を参照)、SHARE_REQメッセージが共有者に到着すれば、共有者はSHARE_NACKメッセージでディレクトリノードへ返答する。他の潜在的共有者が存在すれば、ディレクトリノードは後続のSHARE_REQメッセージを送り、通常のように続ける。そうでなければ、他のノードがページを有さない場合、ディレクトリノードはSHARE_NACKメッセージで要求者に返答する。
D.共有者が、そのSHARE_ACKメッセージを要求者へ送った後に、しかしREAD_DONEメッセージをディレクトリノードへ送ることができる前に消滅するならば、ディレクトリノードは、要求者がデータを獲得しなかったと仮定する。次に、ディレクトリノードはREAD_FAILEDメッセージを要求者へ送り、読み出しが失敗したかもしれないことを表示する。読み出しが成功したのであれば、要求者はREAD_FAILED_NACKメッセージでディレクトリノードへ応答する。失敗した場合、ディレクトリノードは、要求者がデータを受け取ったか否かを知る必要があり、それによって、ディレクトリノードは更なる読み出し要求を適正に処理することができる。なぜなら、ディレクトリノードは回復を始める前にシステムを休止状態にして終了するからである。
E.前の例で、共有者が、SHARE_ACKメッセージを要求者へ送ることができる前に消滅するならば、要求者はDMGの終局的READ_FAILEDメッセージに対してREAD_FAILED_ACKメッセージで応答する。
1.2.2 DMGの書き込み
書き込み要求が要求ノードからDMGへ達するときのメッセージ・シーケンスは図4で示され、下記で説明される。
A.ディレクトリが、要求されたページについて項目を含まないか、要求者がページの唯一の所有者であることを表示する項目を発見するならば、ディレクトリノードは、WRITE_REPLYメッセージで要求者へ即時に応答する。返答を受け取ると、要求者のキャッシュは、準備を完了すると直ちに、新しく書き込まれるデータのキャッシュへのコミットを許可される。
B.他のノードがキャッシュの中にページのコピーを有することを、問題のページのディレクトリ項目が示すならば、ディレクトリノードはそれら他のノードの各々へINVAL_REQメッセージを送る。一度全てのINVAL_REPLYメッセージがディレクトリノードへ戻されると、ディレクトリノードは上記のように要求者へ返答する。
書き込み要求が要求ノードからDMGへ達するときのメッセージ・シーケンスは図4で示され、下記で説明される。
A.ディレクトリが、要求されたページについて項目を含まないか、要求者がページの唯一の所有者であることを表示する項目を発見するならば、ディレクトリノードは、WRITE_REPLYメッセージで要求者へ即時に応答する。返答を受け取ると、要求者のキャッシュは、準備を完了すると直ちに、新しく書き込まれるデータのキャッシュへのコミットを許可される。
B.他のノードがキャッシュの中にページのコピーを有することを、問題のページのディレクトリ項目が示すならば、ディレクトリノードはそれら他のノードの各々へINVAL_REQメッセージを送る。一度全てのINVAL_REPLYメッセージがディレクトリノードへ戻されると、ディレクトリノードは上記のように要求者へ返答する。
1.2.3 DMGの更新
読み出しと同じように、多数のメッセージング・シナリオが、更新(即ち、サブページ書き込み)要求に応答するDMGの中で可能である。図5は、更新要求のメッセージ・シーケンスの例を示す。これはさらに下記で詳細に説明される。
A.UPDATE_REQメッセージがディレクトリノードに到着したとき、ページについてディレクトリ項目が存在しないか、要求者がページの唯一の所有者であるならば、UPDATE_NACKメッセージが即時に返却される。要求者が既にページのコピーを有するか、いかなるノードにもページのコピーが存在しないとき、UPDATE_NACKメッセージが常にディレクトリの応答である。ノードがページのキャッシュされたコピーを有さない場合、要求者はAMFからページ・データを読み出す。一度要求者のキャッシュがそのサブページ書き込みを完了すると、要求者はUPDATE_DONEメッセージでDMGへ応答する。
B.ページのコピーを所有する要求者に加えて、キャッシュの中にページを有する少なくとも1つのノードが存在することを、ディレクトリ項目が示すならば、ディレクトリノードはUPINV_REQメッセージを他のページ所有者の各々へ送る。一度これらのノードの各々がページの自分のコピーを無効にし、UPINV_REPLYメッセージでディレクトリノードへ応答すると、ディレクトリノードは、上記のようにUPDATE_NACKメッセージを要求者へ送ることによって続ける。
C.要求者がそのキャッシュの中にページのコピーをもたず、ディレクトリ項目が、少なくとも1つの他のノードがページのコピーを有することを示すならば、ディレクトリノードは、ページを最後に書き込んだノードへSHINV_REQメッセージを送り、コピーを保持する他のノードへUPINV_REQメッセージを送る。SHINV_REQメッセージを送られたノードは、SHINV_REPLYメッセージの中でページのコピーをディレクトリノードへ転送することによってページのコピーを共有し、一度その送信が成功裏に完了すると、ローカル・コピーを無効にする。一度全ての返答がディレクトリによって受け取られると、ディレクトリノードは、共有無効標的ノードからのデータと一緒にUPDATE_ACKメッセージを要求者へ送る。
D.前のシナリオで、共有無効標的ノードが、ディレクトリノードからSHINV_REQメッセージを受け取る前にページのコピーを同期的に駆逐したのであれば、標的ノードはSHINV_NACKメッセージで応答する。ディレクトリノードは、ページのコピーと一緒に無効要求を全ての他のノードへ既に送っているから、この時点では、ページのキャッシュされたコピーは存在しないであろう。ディレクトリノードは、UPDATE_NACKメッセージで要求者へ応答する以外に選択肢をもたず(到着する全ての無効返答を待機した後で)、要求者はAMFからページを読み出すことになる。これは素晴らしいことである。なぜなら、ページのコピーを駆逐したノードは、最初にそのコピーをAMFへ一気に送り出すことが必要であったからである。ディレクトリは常に最後の書き手を追跡して、データの完全性を確保する。
E.SHINV_REQメッセージを送った後、ディレクトリノードが、そのメッセージの共有無効標的が消滅したことに気付くならば、ディレクトリノードは他のノードからの無効返答を待機し、UPDATE_FAILEDメッセージを要求者へ送ることによって要求を失敗させる。
読み出しと同じように、多数のメッセージング・シナリオが、更新(即ち、サブページ書き込み)要求に応答するDMGの中で可能である。図5は、更新要求のメッセージ・シーケンスの例を示す。これはさらに下記で詳細に説明される。
A.UPDATE_REQメッセージがディレクトリノードに到着したとき、ページについてディレクトリ項目が存在しないか、要求者がページの唯一の所有者であるならば、UPDATE_NACKメッセージが即時に返却される。要求者が既にページのコピーを有するか、いかなるノードにもページのコピーが存在しないとき、UPDATE_NACKメッセージが常にディレクトリの応答である。ノードがページのキャッシュされたコピーを有さない場合、要求者はAMFからページ・データを読み出す。一度要求者のキャッシュがそのサブページ書き込みを完了すると、要求者はUPDATE_DONEメッセージでDMGへ応答する。
B.ページのコピーを所有する要求者に加えて、キャッシュの中にページを有する少なくとも1つのノードが存在することを、ディレクトリ項目が示すならば、ディレクトリノードはUPINV_REQメッセージを他のページ所有者の各々へ送る。一度これらのノードの各々がページの自分のコピーを無効にし、UPINV_REPLYメッセージでディレクトリノードへ応答すると、ディレクトリノードは、上記のようにUPDATE_NACKメッセージを要求者へ送ることによって続ける。
C.要求者がそのキャッシュの中にページのコピーをもたず、ディレクトリ項目が、少なくとも1つの他のノードがページのコピーを有することを示すならば、ディレクトリノードは、ページを最後に書き込んだノードへSHINV_REQメッセージを送り、コピーを保持する他のノードへUPINV_REQメッセージを送る。SHINV_REQメッセージを送られたノードは、SHINV_REPLYメッセージの中でページのコピーをディレクトリノードへ転送することによってページのコピーを共有し、一度その送信が成功裏に完了すると、ローカル・コピーを無効にする。一度全ての返答がディレクトリによって受け取られると、ディレクトリノードは、共有無効標的ノードからのデータと一緒にUPDATE_ACKメッセージを要求者へ送る。
D.前のシナリオで、共有無効標的ノードが、ディレクトリノードからSHINV_REQメッセージを受け取る前にページのコピーを同期的に駆逐したのであれば、標的ノードはSHINV_NACKメッセージで応答する。ディレクトリノードは、ページのコピーと一緒に無効要求を全ての他のノードへ既に送っているから、この時点では、ページのキャッシュされたコピーは存在しないであろう。ディレクトリノードは、UPDATE_NACKメッセージで要求者へ応答する以外に選択肢をもたず(到着する全ての無効返答を待機した後で)、要求者はAMFからページを読み出すことになる。これは素晴らしいことである。なぜなら、ページのコピーを駆逐したノードは、最初にそのコピーをAMFへ一気に送り出すことが必要であったからである。ディレクトリは常に最後の書き手を追跡して、データの完全性を確保する。
E.SHINV_REQメッセージを送った後、ディレクトリノードが、そのメッセージの共有無効標的が消滅したことに気付くならば、ディレクトリノードは他のノードからの無効返答を待機し、UPDATE_FAILEDメッセージを要求者へ送ることによって要求を失敗させる。
1.2.4 DMGの駆逐
1つの局面によれば、不必要なメッセージ待ち時間を避けるため、ノード・キャッシュがページを駆逐するとき、それは単純に非同期EVICT_REQメッセージをDMGへ送って駆逐を通知する。通知は非同期的であるから、キャッシュはページを駆逐した後に、ページへの要求を受け取るかもしれないが、それらの要求は、上記で詳説した入出力メッセージ・シナリオによって処理される。
1つの局面によれば、不必要なメッセージ待ち時間を避けるため、ノード・キャッシュがページを駆逐するとき、それは単純に非同期EVICT_REQメッセージをDMGへ送って駆逐を通知する。通知は非同期的であるから、キャッシュはページを駆逐した後に、ページへの要求を受け取るかもしれないが、それらの要求は、上記で詳説した入出力メッセージ・シナリオによって処理される。
1.3 DMGのロッキング
DMGの責任の1つは、ページ・データへの複数の同時変更を防止することである。DMGは、複数の読み手が同時にページにアクセスすることを許可する。しかし、複数の書き手は、書き込み要求がディレクトリノードへ到着した順序に直列化される。例えば、FIFO待ち行列またはバッファの中に置かれる。1つの局面によれば、システムのノード上のキャッシュも、ページ・フレームを保存および操作するため、或る直列化またはロッキングを必要とするかもしれない。ノードは、同じページについて同時にキャッシュおよびDMGのロックを保持する必要があるかもしれないので、システムは、好ましくは、デッドロック処理メカニズムを含む。1つの態様によれば、キャッシュ・ロックはDMGロックに従属する。これは、所与のページについてローカルに保持されたキャッシュ・ロックが、そのページ上のDMG動作が受け取られるならば、解放されなければならないことを意味する。
DMGの責任の1つは、ページ・データへの複数の同時変更を防止することである。DMGは、複数の読み手が同時にページにアクセスすることを許可する。しかし、複数の書き手は、書き込み要求がディレクトリノードへ到着した順序に直列化される。例えば、FIFO待ち行列またはバッファの中に置かれる。1つの局面によれば、システムのノード上のキャッシュも、ページ・フレームを保存および操作するため、或る直列化またはロッキングを必要とするかもしれない。ノードは、同じページについて同時にキャッシュおよびDMGのロックを保持する必要があるかもしれないので、システムは、好ましくは、デッドロック処理メカニズムを含む。1つの態様によれば、キャッシュ・ロックはDMGロックに従属する。これは、所与のページについてローカルに保持されたキャッシュ・ロックが、そのページ上のDMG動作が受け取られるならば、解放されなければならないことを意味する。
読み出し要求がディレクトリノードに到着したとき、ページを待機している動作が存在しないこと、およびゼロ以上の読み手が現在アクティブであることをディレクトリ項目が表示する場合、読み出しは即時の進行を許可される。対照的に、書き込みまたは更新要求がディレクトリノードに到着したとき、ページ上でいかなる活動も存在しない場合にのみ、それらの要求は進行することができる。他の状況においては、ディレクトリへの新しい要求は、先行する動作の完了によって活性化されるまでディレクトリ項目の中で待ち行列に入れられる。マルチページ動作については、DMGは、クライアント・ノードへ返答して関連動作の進行を許可する前に、動作についてのロックの全てを増加順序で収集する。DMGがこれらの制約を無視し、順序から外れてマルチページ動作の分割部分についてクライアント・ノードへ応答するならば、デッドロックが起こり得る。
1つの局面によれば、同じページへの複数の同時書き込みの場合に無益な努力を避けるDMG内の1つの最適化は、書き込みの進行を許可する前にロック待機待ち行列をチェックすることを含む。待ち行列の先頭にある書き込みの直後に、任意のノードからの1つまたは複数の書き込みが続くならば、DMGは早期の書き込みを優先的に無効にし、最後の書き込みの即時の進行を許可することができる。同時の書き込みが普通のケースであるとは予期されないので、この最適化の実現は重要でない。
1.4 ロケーションの認識
1つの態様によれば、DMGは、共有グループ内のノードの物理的または論理的接近度に基づいて、そのページ共有戦略を最適化する。1つの局面において、各々のノードのサイトIDが各々の共有グループ内のノードの全てによって記録される。ディレクトリノードが読み出し要求を受け取るとき、ディレクトリノードは最初に読み手と同じ(または物理的に接近した)サイト内のノードがページを有するかどうかを調べる。そうであれば、それは共有要求を最も近いノードへ送る。他の局面では、第2の選択肢として、ディレクトリノード自身によって共有が行われ(ディレクトリノードがキャッシュ内にページを有すると仮定する)、共有要求メッセージの送信を節約する。ディレクトリノードが、キャッシュされた要求ページを有さないならば、任意の他のノードを選択することができる。この場合、サイト間の相対的距離(即ち、ノードが相互に関して近いか、または遠いか)は考慮されない。更新の場合、この同じアルゴリズムがページ共有へも適用される。
1つの態様によれば、DMGは、共有グループ内のノードの物理的または論理的接近度に基づいて、そのページ共有戦略を最適化する。1つの局面において、各々のノードのサイトIDが各々の共有グループ内のノードの全てによって記録される。ディレクトリノードが読み出し要求を受け取るとき、ディレクトリノードは最初に読み手と同じ(または物理的に接近した)サイト内のノードがページを有するかどうかを調べる。そうであれば、それは共有要求を最も近いノードへ送る。他の局面では、第2の選択肢として、ディレクトリノード自身によって共有が行われ(ディレクトリノードがキャッシュ内にページを有すると仮定する)、共有要求メッセージの送信を節約する。ディレクトリノードが、キャッシュされた要求ページを有さないならば、任意の他のノードを選択することができる。この場合、サイト間の相対的距離(即ち、ノードが相互に関して近いか、または遠いか)は考慮されない。更新の場合、この同じアルゴリズムがページ共有へも適用される。
LCDMを含むDMGの局面を実現する命令を含むコードは、コンピュータ読み取り可能メディア、例えば、CD、DVD、ROM、RAMなどに記憶可能であるか、データ・アクセス・ノード・デバイスとの間でネットワーク接続を介して送信可能であることを理解すべきである。
本発明は、例を使用し、特定の態様に関して説明されたが、本発明は、開示された態様に限定されないことを理解すべきである。反対に、当業者に明らかな様々な修正および類似の配列をカバーすることが意図される。したがって、添付の特許請求の範囲は、全てのそのような修正および類似の配列を包含するように最も広い解釈と一致すべきである。
Claims (20)
- ページ所有権項目のディレクトリを維持することによって、トラフィック・スケーラビリティを維持するように、データ記憶装置ネットワークへのアクセスを共有するデータ・アクセス・ノード間で送られるメッセージの数を低減する方法であって、項目の所有権が、最初に、項目内のページへのアクセスを要求する最初のアクセス・ノードへ付与され、項目の所有権が、ノード間で送られる同期メッセージの数を低減するように、より多くの頻度で項目内のページへアクセスするノードへ自動的に移転する方法。
- データ記憶装置ネットワーク内のデータへのアクセスを共有する地理的に離れたアクセス・ノード間の帯域幅を低減する方法であって、以下の段階を含む方法:
アクセス・ノードに対してローカルにデータをキャッシュし、そのノードについてそのデータへの局所化されたキャッシュ・アクセスを提供する段階;および
ディレクトリ編成所有権スキームを使用して、アクセス・ノード間でキャッシュ・データについてデータ・コヒーレンスを維持する段階。 - データ記憶装置ネットワークにおいて、データ・アクセス・ノードの分散された集合の中でキャッシュ間のキャッシュ・コヒーレンスを提供する方法であって、以下の段階を含む方法:
データ記憶装置ネットワークへのアクセスを共有する複数のアクセス・ノードの少なくとも1つにディレクトリを維持し、該ディレクトリが複数のアクセス・ノードによってアクセスされるデータに関する情報を記憶する段階;
最初のデータ・アクセス・ノードで、ホスト・システムからのデータ・アクセス要求を受け取り、該データ・アクセス要求が、処理されるべきデータを識別する段階;
最初のアクセス・ノードが、識別されたデータをキャッシュ内に記憶しているかどうかを決定する段階;および、記憶していない場合、
ディレクトリを使用して、複数のアクセス・ノード内の他のノードが、識別されたデータのコピーをキャッシュ内に記憶しているかどうかを決定する段階;および、
ノードが、識別されたデータのコピーをキャッシュ内に記憶している場合、要求しているノードが、識別されたデータを記憶装置からアクセスする必要がないようにするための、識別されたデータを共有する共有要求、またはそのノードのキャッシュ内に記憶されたデータのコピーを無効にする無効要求、の1つをそのノードに送る段階。 - データ・アクセス要求がデータ読み出し要求であり、ノードが、識別されたデータのコピーをキャッシュ内に記憶していない場合、さらに以下の段階を含む、請求項3記載の方法:
識別されたデータを記憶装置から検索する段階;および
要求しているノードを、識別されたデータの所有者として識別する新しい項目をディレクトリの中に作成する段階。 - データ・アクセス要求が書き込み要求であり、ノードが、識別されたデータのコピーをキャッシュ内に記憶していない場合、さらに以下の段階を含む、請求項3記載の方法:
要求しているノードのキャッシュへ書き込まれるデータをコミットする段階。 - データ・アクセス要求が書き込み要求であり、1つまたは複数の他のノードが、識別されたデータのコピーをキャッシュ内に記憶している場合、識別されたデータのコピーをキャッシュ内に記憶している他のノードへ無効要求を送る段階をさらに含む、請求項3記載の方法。
- データ・アクセス要求が更新要求であり、要求しているノードが、識別されたデータのコピーをキャッシュ内に記憶している場合、および、ここで1つまたは複数の他のノードが、識別されたデータのコピーをキャッシュ内に記憶している場合、識別されたデータのコピーをキャッシュ内に記憶している他のノードへ無効要求を送る段階をさらに含む、請求項3記載の方法。
- データ・アクセス要求が更新要求であり、要求しているノードが、識別されたデータのコピーをキャッシュ内に記憶していない場合、および、ここで1つまたは複数の他のノードが、識別されたデータのコピーをキャッシュ内に記憶している場合、さらに以下の段階を含む、請求項3記載の方法:
最後にデータを書き込んだノードへ共有無効要求を送る段階;および
識別されたデータのコピーをキャッシュ内に記憶している他のノードへ無効要求を送る段階。 - 以下の段階をさらに含む、請求項3記載の方法:
他のノードが、データ・アクセス要求によって識別されたデータの上にディレクトリロックを有するかどうかを決定する段階;
ノードがデータの上にディレクトリロックを有さない場合、識別されたデータの上のディレクトリロックを最初のアクセス・ノードへ付与する段階;および
ノードがデータの上にディレクトリロックを有する場合、ロックを最初のアクセス・ノードへ付与する前に、ロックが解放されるのを待機する段階。 - 所有されないディレクトリ項目が、対応するデータ・ページにアクセスする最初のアクセス・ノードに対してローカルに置かれ、最初のアクセス・ノードがディレクトリ項目の所有権を与えられる、請求項3記載の方法。
- データ・アクセス要求が、データのページ、データのサブページ、またはデータの複数ページの1つを識別する、請求項3記載の方法。
- データ・アクセス要求が、データ読み出し要求、データ書き込み要求、およびデータ更新要求の1つである、請求項3記載の方法。
- トラフィック・スケーラビリティを維持するように、データ記憶装置ネットワークへのアクセスを共有するデータ・アクセス・ノード間で送られるメッセージの数を低減する方法であって、以下の段階を含む方法:
複数のデータ・アクセス・ノードによってアクセスされるデータに関する情報を記憶するディレクトリを維持し、該ディレクトリがデータ記憶装置ネットワーク内のデータの1つまたは複数のページを表す項目を含む段階;
最初のデータ・アクセス・ノードで、ホスト・システムからのデータ・アクセス要求を受け取り、該データ・アクセス要求が、処理されるべきデータを識別する段階;
グローバルディレクトリコーディネータを使用して、ノードが、識別されたデータについてディレクトリ項目の所有権を有するかどうかを決定する段階;
ノードがディレクトリ項目の所有権を有さない場合、識別されたデータについてディレクトリ項目の所有権を最初のアクセス・ノードへ付与する段階;および
ノードが項目の所有権を有する場合、そのノードを最初のノードに識別する段階。 - アクセス・ノードの1つが、グローバルディレクトリコーディネータとして指定され、ここでグローバル・コーディネータがディレクトリ項目の所有権を付与する、請求項13記載の方法。
- データ・アクセス要求が、データ読み出し要求、データ書き込み要求、およびデータ更新要求の1つであり、ここでデータ・アクセス要求が、データのページ、データのサブページ、またはデータの複数ページの1つを識別する、請求項13記載の方法。
- 最初のアクセス・ノードがディレクトリをメモリ内のテーブルとして維持し、ここで決定することが、ディレクトリテーブル内でルックアップを実行することを含む、請求項13記載の方法。
- 項目が現在使用されていない場合、ディレクトリ項目の所有権を現在の所有者から最初のアクセス・ノードへ移転する段階をさらに含む、請求項13記載の方法。
- データ記憶装置ネットワークへのアクセスを共有する複数のデータ・アクセス・ノード間でキャッシュ・コヒーレンスを維持するシステムであって、
データを記憶する記憶装置システムと、
ノードの1つが複数のデータ・アクセス・ノードによってアクセスされるデータに関する情報を記憶するディレクトリ(ディレクトリノード)を維持するように構成され、該ディレクトリがデータ記憶装置ネットワーク内のデータの1つまたは複数のページを表す項目を含む、記憶装置システム内のデータにアクセスするように構成された複数のアクセス・ノードとを含み、
ここで処理されるべきデータを識別するデータ・アクセス要求をホストから受け取ると、最初のアクセス・ノードが要求をディレクトリノードへ送り、ディレクトリノードが、識別されたデータについてディレクトリ項目の所有権をノードが有するかどうかを決定し、ノードがディレクトリ項目の所有権を有さない場合、ディレクトリノードが、識別されたデータについてディレクトリ項目の所有権を最初のアクセス・ノードへ付与し、ノードが項目の所有権を有する場合、ディレクトリノードが、そのノードを最初のアクセス・ノードに識別する、システム。 - 第2のアクセス・ノードが所有権を要求し、ディレクトリ項目が使用されていない場合、識別されたデータについてディレクトリ項目の所有権が第2のアクセス・ノードへ変更される、請求項18記載の方法。
- 1つまたは複数のアクセス・ノードが、他のノードから地理的に離れている、請求項18記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58636404P | 2004-07-07 | 2004-07-07 | |
PCT/US2005/024203 WO2006014573A2 (en) | 2004-07-07 | 2005-07-07 | Systems and methods for providing distributed cache coherence |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008506195A true JP2008506195A (ja) | 2008-02-28 |
Family
ID=35787662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007520522A Pending JP2008506195A (ja) | 2004-07-07 | 2005-07-07 | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7975018B2 (ja) |
EP (1) | EP1782244A4 (ja) |
JP (1) | JP2008506195A (ja) |
CA (1) | CA2572616A1 (ja) |
WO (1) | WO2006014573A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008078887A (ja) * | 2006-09-20 | 2008-04-03 | Nec Corp | I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法 |
JP2009301552A (ja) * | 2008-06-13 | 2009-12-24 | Intel Corp | ディレクトリ型コヒーレンシー・プロトコルでの同時アクセスの最適化 |
JP2012208584A (ja) * | 2011-03-29 | 2012-10-25 | Toshiba Corp | 記憶装置およびプログラム |
JP2013501272A (ja) * | 2009-07-31 | 2013-01-10 | イーエムシー コーポレイション | キャッシング記憶制御装置間でストレージコマンドのキャッシュアウェア・マルチパス分散を用いたデータ処理システム |
JP2015525392A (ja) * | 2012-12-28 | 2015-09-03 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2436382A (en) | 2004-11-15 | 2007-09-26 | Platform Solutions Inc | Distributed shared I/O cache subsystem |
US7386680B2 (en) * | 2005-04-29 | 2008-06-10 | Silicon Graphics, Inc. | Apparatus and method of controlling data sharing on a shared memory computer system |
US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
US7693882B2 (en) * | 2005-10-04 | 2010-04-06 | Oracle International Corporation | Replicating data across the nodes in a cluster environment |
CA2642145C (en) | 2006-02-14 | 2013-09-24 | Yottayotta, Inc. | Systems and methods for obtaining ultra-high data availability and geographic disaster tolerance |
US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US8140772B1 (en) | 2007-11-06 | 2012-03-20 | Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | System and method for maintaining redundant storages coherent using sliding windows of eager execution transactions |
US20090150511A1 (en) * | 2007-11-08 | 2009-06-11 | Rna Networks, Inc. | Network with distributed shared memory |
US20090144388A1 (en) * | 2007-11-08 | 2009-06-04 | Rna Networks, Inc. | Network with distributed shared memory |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8307115B1 (en) * | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
US7996350B2 (en) * | 2008-03-05 | 2011-08-09 | The Boeing Company | Virtual intelligent fabric |
US20090228407A1 (en) * | 2008-03-05 | 2009-09-10 | The Boeing Company | Distributed cognitive architecture |
US8434125B2 (en) | 2008-03-05 | 2013-04-30 | The Boeing Company | Distributed security architecture |
US8103853B2 (en) * | 2008-03-05 | 2012-01-24 | The Boeing Company | Intelligent fabric system on a chip |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
WO2010131373A1 (en) * | 2009-05-15 | 2010-11-18 | Hitachi,Ltd. | Storage subsystem |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8074003B1 (en) | 2009-12-28 | 2011-12-06 | Emc Corporation | Host-based storage controller providing block devices in geographically distributed storage |
US8578204B1 (en) | 2010-12-29 | 2013-11-05 | Emc Corporation | Witness facility for distributed storage system |
US10769021B1 (en) | 2010-12-31 | 2020-09-08 | EMC IP Holding Company LLC | Cache protection through cache |
US8682955B1 (en) | 2010-12-31 | 2014-03-25 | Emc Corporation | Fully automated cloud tiering controlled by an orchestration layer based on dynamic information |
US8689054B1 (en) | 2011-07-29 | 2014-04-01 | Emc Corporation | Increased distance of virtual machine mobility over asynchronous distances |
US8726067B1 (en) | 2011-07-29 | 2014-05-13 | Emc Corporation | Utilizing both application and storage networks for distributed storage over asynchronous distances |
US8726083B1 (en) | 2011-07-29 | 2014-05-13 | Emc Corporation | Synchronized taking of snapshot memory images of virtual machines and storage snapshots |
US8667490B1 (en) | 2011-07-29 | 2014-03-04 | Emc Corporation | Active/active storage and virtual machine mobility over asynchronous distances |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9130991B2 (en) | 2011-10-14 | 2015-09-08 | Silver Peak Systems, Inc. | Processing data packets in performance enhancing proxy (PEP) environment |
WO2013076757A1 (en) | 2011-11-22 | 2013-05-30 | Hitachi, Ltd. | Storage system, storage apparatus and method of controlling storage system |
US8682852B1 (en) | 2012-03-29 | 2014-03-25 | Emc Corporation | Asymmetric asynchronous mirroring for high availability |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US8856257B1 (en) | 2012-06-29 | 2014-10-07 | Emc Corporation | Sending alerts from cloud computing systems |
US8972405B1 (en) | 2012-07-26 | 2015-03-03 | Emc Corporation | Storage resource management information modeling in a cloud processing environment |
US10528262B1 (en) * | 2012-07-26 | 2020-01-07 | EMC IP Holding Company LLC | Replication-based federation of scalable data across multiple sites |
US8832498B1 (en) | 2012-07-30 | 2014-09-09 | Emc Corporation | Scalable codebook correlation for cloud scale topology |
US9852073B2 (en) | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
US9195658B2 (en) | 2012-12-12 | 2015-11-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Managing direct attached cache and remote shared cache |
US9348627B1 (en) | 2012-12-20 | 2016-05-24 | Emc Corporation | Distributed dynamic federation between multi-connected virtual platform clusters |
US9015121B1 (en) | 2013-01-15 | 2015-04-21 | Emc Corporation | Unified virtual machine and data storage snapshots |
US9973215B1 (en) | 2013-01-28 | 2018-05-15 | EMC IP Holding Company LLC | Controlled multipath data packet delivery with forward error correction |
US9805049B1 (en) | 2013-02-15 | 2017-10-31 | EMC IP Holding Company LLC | Migrating applications over asynchronous distances using semi-synchronous acceleration |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9720603B1 (en) * | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
CN104937564B (zh) | 2013-03-28 | 2017-09-12 | 慧与发展有限责任合伙企业 | 组表格的数据冲洗 |
CN104937565B (zh) * | 2013-03-28 | 2017-11-17 | 慧与发展有限责任合伙企业 | 从第一节点到第二节点的地址范围传送 |
US9363163B2 (en) * | 2013-04-22 | 2016-06-07 | Codership Oy | Group communication system arrangement |
US9875292B2 (en) | 2013-05-29 | 2018-01-23 | Codership Oy | Method of synchronizing data within database clusters |
US9736046B1 (en) | 2013-05-30 | 2017-08-15 | EMC IP Holding Company LLC | Path analytics using codebook correlation |
US9602341B1 (en) | 2013-06-19 | 2017-03-21 | EMC IP Holding Company LLC | Secure multi-tenant virtual control server operation in a cloud environment using API provider |
US9336098B2 (en) | 2014-03-19 | 2016-05-10 | Codership Oy | Method of synchronizing data |
US9436564B1 (en) | 2014-03-31 | 2016-09-06 | Emc Corporation | Creating distributed storage during partitions |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9112890B1 (en) | 2014-08-20 | 2015-08-18 | E8 Storage Systems Ltd. | Distributed storage over shared multi-queued storage device |
US9710532B2 (en) | 2014-08-21 | 2017-07-18 | Codership Oy | Method for avoiding conflicts in database cluster |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US9274720B1 (en) | 2014-09-15 | 2016-03-01 | E8 Storage Systems Ltd. | Distributed RAID over shared multi-queued storage devices |
US9519666B2 (en) | 2014-11-27 | 2016-12-13 | E8 Storage Systems Ltd. | Snapshots and thin-provisioning in distributed storage over shared storage devices |
US10078680B2 (en) | 2014-12-17 | 2018-09-18 | Codership Oy | Method for streaming transactions in database cluster |
US9823973B1 (en) | 2014-12-22 | 2017-11-21 | EMC IP Holding Company LLC | Creating consistent snapshots in a virtualized environment |
US9525737B2 (en) * | 2015-04-14 | 2016-12-20 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect |
US9529542B2 (en) | 2015-04-14 | 2016-12-27 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect |
US20160323351A1 (en) | 2015-04-29 | 2016-11-03 | Box, Inc. | Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques |
US9710533B2 (en) | 2015-06-04 | 2017-07-18 | Codership Oy | Efficient buffer pool page pre-fetching for database clusters |
US10496626B2 (en) | 2015-06-11 | 2019-12-03 | EB Storage Systems Ltd. | Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect |
US20170078367A1 (en) * | 2015-09-10 | 2017-03-16 | Lightfleet Corporation | Packet-flow message-distribution system |
US9842084B2 (en) | 2016-04-05 | 2017-12-12 | E8 Storage Systems Ltd. | Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
US10031872B1 (en) | 2017-01-23 | 2018-07-24 | E8 Storage Systems Ltd. | Storage in multi-queue storage devices using queue multiplexing and access control |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10929210B2 (en) | 2017-07-07 | 2021-02-23 | Box, Inc. | Collaboration system protocol processing |
US11470131B2 (en) | 2017-07-07 | 2022-10-11 | Box, Inc. | User device processing of information from a network-accessible collaboration system |
US10685010B2 (en) | 2017-09-11 | 2020-06-16 | Amazon Technologies, Inc. | Shared volumes in distributed RAID over shared multi-queue storage devices |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US10365980B1 (en) | 2017-10-31 | 2019-07-30 | EMC IP Holding Company LLC | Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization |
US10474545B1 (en) | 2017-10-31 | 2019-11-12 | EMC IP Holding Company LLC | Storage system with distributed input-output sequencing |
US10592342B1 (en) | 2018-02-02 | 2020-03-17 | EMC IP Holding Company LLC | Environmental aware witness for active-active storage cluster nodes |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
US11023445B2 (en) * | 2018-07-24 | 2021-06-01 | Sap Se | Optimistic concurrency for collaborative applications |
US11016688B1 (en) * | 2021-01-06 | 2021-05-25 | Open Drives LLC | Real-time localized data access in a distributed data storage system |
US20230229658A1 (en) * | 2022-01-14 | 2023-07-20 | Sentinel Labs Israel Ltd. | Systems and methods for data management and query optimization |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668010A (ja) * | 1992-08-17 | 1994-03-11 | Nippon Telegr & Teleph Corp <Ntt> | 分散キャッシュ管理システム |
JPH06274461A (ja) * | 1993-03-18 | 1994-09-30 | Hitachi Ltd | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
JPH10301880A (ja) * | 1997-04-10 | 1998-11-13 | At & T Corp | スケーラブルネットワークオブジェクトキャッシュ |
JP2001512604A (ja) * | 1997-02-21 | 2001-08-21 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | インターネット上におけるデータキャッシング |
JP2004501431A (ja) * | 2000-05-08 | 2004-01-15 | ヴェリティー インコーポレイテッド | アプリケーションキャッシングシステムおよび方法 |
JP2004505346A (ja) * | 2000-07-25 | 2004-02-19 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法 |
WO2004029834A1 (en) * | 2002-09-27 | 2004-04-08 | International Business Machines Corporation | Method, system, and program for maintaining data in distributed caches |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197146A (en) * | 1989-06-21 | 1993-03-23 | Hewlett-Packard Company | Method for maintaining cache coherence in a multiprocessor computer system |
JP2575543B2 (ja) * | 1990-04-04 | 1997-01-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同時アクセス管理方法 |
US5611070A (en) * | 1990-05-10 | 1997-03-11 | Heidelberger; Philip | Methods and apparatus for performing a write/load cache protocol |
US6247144B1 (en) | 1991-01-31 | 2001-06-12 | Compaq Computer Corporation | Method and apparatus for comparing real time operation of object code compatible processors |
EP0510245A1 (en) * | 1991-04-22 | 1992-10-28 | Acer Incorporated | System and method for a fast data write from a computer system to a storage system |
US5630097A (en) | 1991-06-17 | 1997-05-13 | Digital Equipment Corporation | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses |
US5577204A (en) * | 1993-12-15 | 1996-11-19 | Convex Computer Corporation | Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device |
US5832534A (en) * | 1994-01-04 | 1998-11-03 | Intel Corporation | Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories |
US6049851A (en) * | 1994-02-14 | 2000-04-11 | Hewlett-Packard Company | Method and apparatus for checking cache coherency in a computer architecture |
EP0769171A1 (en) * | 1995-05-05 | 1997-04-23 | Silicon Graphics, Inc. | Page migration in a non-uniform memory access (numa) system |
JP3512910B2 (ja) | 1995-07-06 | 2004-03-31 | 株式会社東芝 | 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 |
US5875456A (en) * | 1995-08-17 | 1999-02-23 | Nstor Corporation | Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array |
US5900015A (en) * | 1996-08-09 | 1999-05-04 | International Business Machines Corporation | System and method for maintaining cache coherency using path directories |
US6073218A (en) | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
US6681239B1 (en) | 1996-12-23 | 2004-01-20 | International Business Machines Corporation | Computer system having shared address space among multiple virtual address spaces |
EP0871128A2 (en) | 1997-04-10 | 1998-10-14 | Digital Equipment Corporation | Method and apparatus for providing a shared data region using shared page tables |
US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US6295584B1 (en) * | 1997-08-29 | 2001-09-25 | International Business Machines Corporation | Multiprocessor computer system with memory map translation |
US6112286A (en) | 1997-09-19 | 2000-08-29 | Silicon Graphics, Inc. | Reverse mapping page frame data structures to page table entries |
US6275953B1 (en) | 1997-09-26 | 2001-08-14 | Emc Corporation | Recovery from failure of a data processor in a network server |
US6192408B1 (en) | 1997-09-26 | 2001-02-20 | Emc Corporation | Network file server sharing local caches of file access information in data processors assigned to respective file systems |
US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US6170044B1 (en) | 1997-12-19 | 2001-01-02 | Honeywell Inc. | Systems and methods for synchronizing redundant controllers with minimal control disruption |
US6286090B1 (en) | 1998-05-26 | 2001-09-04 | Compaq Computer Corporation | Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches |
US6148414A (en) * | 1998-09-24 | 2000-11-14 | Seek Systems, Inc. | Methods and systems for implementing shared disk array management functions |
US6591355B2 (en) | 1998-09-28 | 2003-07-08 | Technion Research And Development Foundation Ltd. | Distributed shared memory system with variable granularity |
US6490661B1 (en) * | 1998-12-21 | 2002-12-03 | Advanced Micro Devices, Inc. | Maintaining cache coherency during a memory read operation in a multiprocessing computer system |
US7010554B2 (en) | 2002-04-04 | 2006-03-07 | Emc Corporation | Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner |
US7266706B2 (en) * | 1999-03-03 | 2007-09-04 | Yottayotta, Inc. | Methods and systems for implementing shared disk array management functions |
US6760756B1 (en) * | 1999-06-23 | 2004-07-06 | Mangosoft Corporation | Distributed virtual web cache implemented entirely in software |
US6574749B1 (en) | 1999-10-29 | 2003-06-03 | Nortel Networks Limited | Reliable distributed shared memory |
US20010049773A1 (en) * | 2000-06-06 | 2001-12-06 | Bhavsar Shyamkant R. | Fabric cache |
US6766360B1 (en) * | 2000-07-14 | 2004-07-20 | Fujitsu Limited | Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture |
US20020059499A1 (en) * | 2000-09-06 | 2002-05-16 | Hudson Michael D. | System and methods for performing last-element streaming |
US6631449B1 (en) * | 2000-10-05 | 2003-10-07 | Veritas Operating Corporation | Dynamic distributed data system and method |
WO2002061525A2 (en) * | 2000-11-02 | 2002-08-08 | Pirus Networks | Tcp/udp acceleration |
US6813522B1 (en) | 2000-12-29 | 2004-11-02 | Emc Corporation | Method of sharing memory in a multi-processor system including a cloning of code and data |
WO2002065275A1 (en) * | 2001-01-11 | 2002-08-22 | Yottayotta, Inc. | Storage virtualization system and methods |
US6961825B2 (en) * | 2001-01-24 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Cache coherency mechanism using arbitration masks |
US20020138698A1 (en) * | 2001-03-21 | 2002-09-26 | International Business Machines Corporation | System and method for caching directory information in a shared memory multiprocessor system |
DE60140859D1 (de) * | 2001-05-01 | 2010-02-04 | Sun Microsystems Inc | Multiprozessorsystem mit gemeinsamem Speicher, welches gemischte Broadcast-Snoop und verzeichnisbasierte Kohärenzprotokolle benutzt |
US6675264B2 (en) * | 2001-05-07 | 2004-01-06 | International Business Machines Corporation | Method and apparatus for improving write performance in a cluster-based file system |
US6829637B2 (en) * | 2001-07-26 | 2004-12-07 | International Business Machines Corporation | Distributed shared memory for server clusters |
US6832297B2 (en) * | 2001-08-09 | 2004-12-14 | International Business Machines Corporation | Method and apparatus for managing data in a distributed buffer system |
US6920485B2 (en) * | 2001-10-04 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Packet processing in shared memory multi-computer systems |
US7194656B2 (en) * | 2001-11-28 | 2007-03-20 | Yottayotta Inc. | Systems and methods for implementing content sensitive routing over a wide area network (WAN) |
US7133905B2 (en) * | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
JP2003323329A (ja) * | 2002-05-07 | 2003-11-14 | Fujitsu Ltd | 分散ファイル管理方法及びプログラム |
US7143412B2 (en) * | 2002-07-25 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimizing performance in a multi-processing system |
JP4257785B2 (ja) * | 2003-04-22 | 2009-04-22 | 株式会社日立製作所 | キャッシュストレージ装置 |
US7136969B1 (en) | 2003-06-17 | 2006-11-14 | Emc Corporation | Using the message fabric to maintain cache coherency of local caches of global memory |
US7240165B2 (en) * | 2004-01-15 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | System and method for providing parallel data requests |
US7395374B2 (en) * | 2004-01-20 | 2008-07-01 | Hewlett-Packard Company, L.P. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US7177987B2 (en) * | 2004-01-20 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | System and method for responses between different cache coherency protocols |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
JP2009501382A (ja) | 2005-07-14 | 2009-01-15 | ヨッタ ヨッタ, インコーポレイテッド | マルチライタシステムにおける書き込み順序忠実性の維持 |
-
2005
- 2005-07-07 EP EP05767801A patent/EP1782244A4/en not_active Withdrawn
- 2005-07-07 WO PCT/US2005/024203 patent/WO2006014573A2/en active Search and Examination
- 2005-07-07 CA CA002572616A patent/CA2572616A1/en not_active Abandoned
- 2005-07-07 US US11/177,924 patent/US7975018B2/en active Active
- 2005-07-07 JP JP2007520522A patent/JP2008506195A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668010A (ja) * | 1992-08-17 | 1994-03-11 | Nippon Telegr & Teleph Corp <Ntt> | 分散キャッシュ管理システム |
JPH06274461A (ja) * | 1993-03-18 | 1994-09-30 | Hitachi Ltd | 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム |
JP2001512604A (ja) * | 1997-02-21 | 2001-08-21 | テレフオンアクチーボラゲツト エル エム エリクソン(パブル) | インターネット上におけるデータキャッシング |
JPH10301880A (ja) * | 1997-04-10 | 1998-11-13 | At & T Corp | スケーラブルネットワークオブジェクトキャッシュ |
JP2004501431A (ja) * | 2000-05-08 | 2004-01-15 | ヴェリティー インコーポレイテッド | アプリケーションキャッシングシステムおよび方法 |
JP2004505346A (ja) * | 2000-07-25 | 2004-02-19 | エス・アール・シィ・コンピューターズ・インコーポレイテッド | 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法 |
WO2004029834A1 (en) * | 2002-09-27 | 2004-04-08 | International Business Machines Corporation | Method, system, and program for maintaining data in distributed caches |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008078887A (ja) * | 2006-09-20 | 2008-04-03 | Nec Corp | I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法 |
JP4501916B2 (ja) * | 2006-09-20 | 2010-07-14 | 日本電気株式会社 | I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法 |
JP2009301552A (ja) * | 2008-06-13 | 2009-12-24 | Intel Corp | ディレクトリ型コヒーレンシー・プロトコルでの同時アクセスの最適化 |
JP2013501272A (ja) * | 2009-07-31 | 2013-01-10 | イーエムシー コーポレイション | キャッシング記憶制御装置間でストレージコマンドのキャッシュアウェア・マルチパス分散を用いたデータ処理システム |
JP2012208584A (ja) * | 2011-03-29 | 2012-10-25 | Toshiba Corp | 記憶装置およびプログラム |
JP2015525392A (ja) * | 2012-12-28 | 2015-09-03 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 |
US9424204B2 (en) | 2012-12-28 | 2016-08-23 | Huawei Technologies Co., Ltd. | Caching method for distributed storage system, a lock server node, and a lock client node |
Also Published As
Publication number | Publication date |
---|---|
WO2006014573A2 (en) | 2006-02-09 |
US7975018B2 (en) | 2011-07-05 |
EP1782244A2 (en) | 2007-05-09 |
WO2006014573A3 (en) | 2008-03-27 |
EP1782244A4 (en) | 2010-01-20 |
US20060031450A1 (en) | 2006-02-09 |
CA2572616A1 (en) | 2006-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008506195A (ja) | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 | |
JP4261487B2 (ja) | キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決 | |
AU2007212685B2 (en) | Adaptive region locking | |
US7890555B2 (en) | File system mounting in a clustered file system | |
CN101127009B (zh) | 供多处理器系统中的高速缓存一致性中使用的转发状态 | |
US8028191B2 (en) | Methods and systems for implementing shared disk array management functions | |
RU2263344C2 (ru) | Неспекулятивное распределенное разрешение конфликтов для протокола когерентности кэш-памяти | |
US7480654B2 (en) | Achieving cache consistency while allowing concurrent changes to metadata | |
US9239789B2 (en) | Method and apparatus for monitor and MWAIT in a distributed cache architecture | |
US20070079075A1 (en) | Providing cache coherency in an extended multiple processor environment | |
AU749592B2 (en) | I/O forwarding in a cache coherent shared disk computer system | |
CN108363641B (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
US10055349B2 (en) | Cache coherence protocol | |
JP4746838B2 (ja) | データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 | |
US20040225922A1 (en) | System and method for request routing | |
JP2004213435A (ja) | 記憶装置システム | |
US6594733B1 (en) | Cache based vector coherency methods and mechanisms for tracking and managing data use in a multiprocessor system | |
KR100745878B1 (ko) | 저장 제어 장치 및 방법, 컴퓨터 프로그램 제품 | |
US20140297966A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus | |
US20170366612A1 (en) | Parallel processing device and memory cache control method | |
US9223799B1 (en) | Lightweight metadata sharing protocol for location transparent file access | |
JP2007188518A (ja) | データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 | |
CN112579479B (zh) | 在维护缓存一致性时维护事务次序的处理器及其方法 | |
JP4028833B2 (ja) | 記憶域コントローラ・ノードのネットワーク内で記憶域のi/o動作を制御する装置、方法及びコンピュータ・プログラム | |
JP2006185335A (ja) | 情報処理装置及びこの情報処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110223 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110907 |