JP3815967B2 - あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 - Google Patents
あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 Download PDFInfo
- Publication number
- JP3815967B2 JP3815967B2 JP2000531781A JP2000531781A JP3815967B2 JP 3815967 B2 JP3815967 B2 JP 3815967B2 JP 2000531781 A JP2000531781 A JP 2000531781A JP 2000531781 A JP2000531781 A JP 2000531781A JP 3815967 B2 JP3815967 B2 JP 3815967B2
- Authority
- JP
- Japan
- Prior art keywords
- resource
- cache
- copy
- node
- version
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 161
- 230000008859 change Effects 0.000 claims description 98
- 238000011084 recovery Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 35
- 238000012546 transfer Methods 0.000 claims description 35
- 230000002085 persistent effect Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 25
- 230000000717 retained effect Effects 0.000 claims description 19
- 238000012790 confirmation Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000013475 authorization Methods 0.000 claims description 3
- 238000013459 approach Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 6
- 239000003607 modifier Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- APOYTRAZFJURPB-UHFFFAOYSA-N 2-methoxy-n-(2-methoxyethyl)-n-(trifluoro-$l^{4}-sulfanyl)ethanamine Chemical compound COCCN(S(F)(F)F)CCOC APOYTRAZFJURPB-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/913—Multimedia
- Y10S707/915—Image
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の分野】
この発明は、あるノードがデータストアからデータを要求するとき要求されたデータの最も最近のバージョンが別のノードのキャッシュ内にあるときことに関連付けられるペナルティを低減するための技術に関する。
【0002】
【発明の背景】
スケーラビリティを向上させるため、データベースシステムの中には、(各々が別個に稼動する)2つ以上のデータベースサーバがディスクメディア上に記憶されるなど、共有の記憶装置に同時にアクセスすることを可能にするものがある。各データベースサーバは、ディスクブロックなどの、共有資源をキャッシュするためのキャッシュを有する。そのようなシステムをここではパラレルサーバシステムと呼ぶ。
【0003】
パラレルサーバシステムに関連付けられる問題の1つに、「ピング」と呼ばれるものの可能性がある。あるサーバのキャッシュ内にある資源のバージョンが異なったサーバのキャッシュに与えられなければならないとき、ピングは起きる。したがって、ピングが起きるのは、データベースサーバAがそのキャッシュ内の資源xを変更した後、データベースサーバBが資源xの変更を要求するときである。データベースサーバAおよびBは、典型的には、異なったノード上で稼動するが、場合によっては同じノード上で稼動することもあり得る。
【0004】
ピングを処理するアプローチの1つを、ここでは「ディスク介入」アプローチと呼ぶ。ディスク介入アプローチは、中間的記憶装置としてディスクを使用して2つのキャッシュ間で資源の最新バージョンを転送する。したがって、上記の例では、ディスク介入アプローチは、データベースサーバ1が資源Xのそのキャッシュバージョンをディスクに書込み、データベースサーバ2がこのバージョンをディスクからそのキャッシュへと検索することを必要とする。ディスク介入アプローチは、資源のサーバ間転送ごとに2ディスクI/Oを必要とするので、パラレルサーバシステムのスケーラビリティが制限される。具体的には、ピングを処理するために必要とされるディスクI/Oは、比較的不経済で時間がかかり、システムに加えられるデータベースサーバの数が多ければ多いほど、ピングの数も多くなる。
【0005】
しかしながら、ディスク介入アプローチは、単一のデータベースサーバの障害からの比較的効率よい復旧を提供する、というのもそのような復旧が必要とするのは障害の発生したデータベースサーバの復旧(再実行)ログを適用するだけであるからである。障害の発生したデータベースサーバの再実行ログを適用すると、障害の発生したデータベースサーバ上のトランザクションが障害の発生したサーバのキャッシュ内の資源に加えた、かかわった変更はすべて確実に復旧される。復旧の間の再実行ログの使用は、1997年1月21日出願の「復旧可能オブジェクト内のキャッシングデータ」(“CACHING DATA IN RECOVERABLE OBJECTS”)と題する米国特許出願連続番号第08/784,611号に詳細に記載される。
【0006】
ディスク介入アプローチを採用するパラレルサーバシステムは、典型的には、資源アクセスおよび変更に関するグローバルな調停のすべてが分散ロックマネージャー(DLM)によって行なわれる場合のプロトコルを使用する。例示的DLMの動作は、1996年6月24日出願の「ロックキャッシングのための方法および装置」(“METHOD AND APPARATUS FOR LOCK CACHING”)と題する米国特許出願連続番号第08/669,689号に詳細に記載され、その内容はここに引用により援用される。
【0007】
典型的な分散ロックマネージャーシステムでは、任意の所与の資源に属する情報は、資源に対応するロックオブジェクト内に記憶される。各ロックオブジェクトは、単一のノードのメモリ内に記憶される。ロックオブジェクトが記憶されているノード上にあるロックマネージャーは、そのロックオブジェクトおよびそれがカバーする資源のマスタと呼ばれる。
【0008】
ピングを処理するためにディスク介入アプローチを採用するシステムでは、ピングは、さまざまなロックが関係する通信においてDLMを必要とする。具体的には、データベースサーバ(「要求サーバ」)が資源のアクセスを必要とするとき、データベースサーバは、それが適切なモード、すなわち、読出の場合には共有され、書込の場合には排他的であるモードにロックされた所望の資源を有するかどうかをチェックする。もし要求データベースサーバが正しいモードにロックされた所望の資源を有していなければ、または、資源に全くロックがされていなければ、要求サーバは、資源のマスタに要求を送信して特定のモードのロックを獲得する。
【0009】
要求データベースサーバによってなされた要求は、資源の現在の状態と競合することがある(たとえば、別のデータベースサーバが資源に対する排他的なロックを現在保持している可能性がある)。もし競合がなければ、資源のマスタは、ロックを許可し許可を登録する。競合の場合には、資源のマスタは、競合解決プロトコルを開始する。資源のマスタは、競合するロックを保持するデータベースサーバ(「ホルダ」)に、下位の互換性のあるモードにそのロックをダウングレードするよう命令する。
【0010】
不幸にも、もしホルダ(たとえば、データベースサーバA)が所望の資源の更新された(「ダーティ」)バージョンをそのキャッシュ内に現在持っていなければ、それはそのロックを即座にダウングレードできない。そのロックをダウングレードするために、データベースサーバAは、「ハードピング」プロトコルと呼ばれるものを経る。ハードピングプロトコルに従って、データベースサーバAは、ディスクに書込まれるべき更新に関連付けられる再実行ログを強制し、資源をディスクに書込み、そのロックをダウングレードし、データベースサーバAが完了したことをマスタに通知する。通知を受取ると、マスタは、ロック許可を登録し、要求されたロックが許可されたことを要求サーバに通知する。この時点で、要求サーバBは、ディスクからそのキャッシュ内に資源を読出す。
【0011】
上述したとおり、ディスク介入アプローチによっては、あるデータベースサーバによって更新された資源(「ダーティ資源」)を別のデータベースサーバに直接発送することはできない。そのような直接発送は、復旧に関連する問題のために、実行可能性がないと考えられる。たとえば、資源がデータベースサーバAで変更されてから、データベースサーバBに直接発送されたと仮定する。データベースサーバBでも、資源は変更され、データベースサーバAに発送し返される。データベースサーバAで、資源は3度目に変更される。各サーバが、別のサーバに資源を送る前にすべての再実行ログをディスクに記憶することによって、受信側が先の変更可能となると仮定する。
【0012】
3度目の更新の後に、データベースサーバAがだめになったと仮定する。データベースサーバAのログは、穴のあいた資源への変更のレコードを含む。具体的には、サーバAのログは、データベースサーバBによってなされたこれらの変更を含んでいない。正確には、サーバBによってなされた変更は、データベースサーバBのログ内に記憶されている。この時点で、資源を復旧するために、2つのログは適用される前にマージされなければならない。このログマージ動作は、もし実現されれば、障害の発生しなかったデータベースサーバを含む、データベースサーバの総数に比例して時間および資源を必要とするであろう。
【0013】
上述したディスク介入アプローチは、障害の後の復旧ログのマージに関連付けられる問題を回避するが、簡単で効率のよい復旧を支持する定常状態のパラレルサーバシステムの性能にペナルティを科す。直接発送アプローチは、ディスク介入アプローチに関連付けられるオーバーヘッドを回避するが、障害の発生した場合に複雑で非スケーラブルな復旧動作を伴う。
【0014】
以上に基づいて、復旧動作の複雑性または持続時間を激しく増大させることなしに、ピングに関連付けられるオーバーヘッドを低減するためのシステムおよび方法を提供することが明らかに望まれる。
【0015】
【発明の概要】
最初に資源をディスクに書込むことなしに、あるデータベースサーバのキャッシュから別のデータベースサーバのキャッシュへと資源を転送するための方法および装置が提供される。データベースサーバ(要求者)が資源を変更したい場合、要求者は資源の現在のバージョンを要求する。現在のバージョンを有するデータベースサーバ(ホルダ)は現在のバージョンを要求者に直接発送する。バージョンを発送すると、ホルダは資源を変更する許可を失うが、メモリ内に資源のコピーを引続き保持する。資源の保持されたバージョンまたはその後のバージョンがディスクに書込まれると、ホルダは資源の保持されたバージョンを廃棄することができる。他の態様では、ホルダは保持されたバージョンを廃棄しない。サーバ障害の場合には、障害の発生したサーバの再実行ログ内の変更のあったすべての資源の先のコピーを、必要に応じて、障害の発生したサーバの再実行ログを適用するための開始点として使用する。この技術を用いて、単一のサーバ障害(障害の最もよくある形態)は、資源へアクセスしていなかったさまざまなデータベースサーバの復旧ログをマージする必要なしに、復旧される。
【0016】
この発明は、同じ参照番号が同様の要素を指している添付の図面に例として示されるが、これに限定されるものでない。
【0017】
【好ましい発明の詳細な説明】
ピングに関連付けられるオーバーヘッドを低減するための方法および装置を記載する。以下の記載では、説明のため、この発明を完全に理解するために、多くの具体的な詳細を述べる。しかしながら、この発明がこれらの具体的な詳細なしに実施可能であることは当業者には明らかであろう。他のデータベースサーバでは、この発明を不要にわかりにくくすることを避けるために、周知の構造および装置がブロック図の形で示される。
【0018】
機能概要
この発明のある局面に従うと、最初にディスクに記憶することなしに、データベースサーバ間で直接資源の更新されたバージョンを発送することによってピングを処理し、これによってディスク介入アプローチに関連付けられるI/Oオーバーヘッドを回避する。さらに、単一の場合の障害復旧に関連付けられる問題は、資源が別のキャッシュに転送されたとしても、変更された資源またはその何らかのサクセサがディスクに書込まれるまで資源の変更されたバージョンがキャッシュ内で置換されることを防ぐことによって、回避される。
【0019】
説明のため、キャッシュ内で置換不可能である資源のコピーを、ここでは「留められた」資源と呼ぶ。留められた資源を置換可能にする動作を、資源を「解放する」と呼ぶ。
【0020】
MおよびWロックアプローチ
この発明のある局面に従うと、資源に対する変更許可とディスクへの書込許可とは分離される。したがって、キャッシュからディスクへ資源の更新されたバージョンを書込む許可を有するデータベースサーバが、必ずしも資源を更新する許可を有するとは限らない。逆に、資源のキャッシュされたバージョンを変更する許可を有するデータベースサーバが、そのキャッシュされたバージョンをディスクに書込む許可を有するとは限らない。
【0021】
ある実施例に従うと、許可のこの分離は、特殊なロックを使用することによって実施される。具体的には、資源を変更する許可は、「M」ロックによって与えられるであろうし、ディスクに資源を書込む許可は、「W」ロックによって与えられるであろう。しかしながら、ここに記載するようなMロックおよびWロックの使用は、資源の転送されたバージョンが、その資源またはそのサクセサがディスクに書込まれるまでキャッシュ内で置換されることを防ぐためのメカニズムの1つにすぎないことが注目される。
【0022】
図2を参照すると、この発明のある実施例に従って、MロックおよびWロックを使用するデータシステムにおいてピングに応答して実行されるステップを示す。ステップ200で、資源を変更したいデータベースサーバは、資源のマスタ(すなわち、資源のロックを管理するデータベースサーバ)にMロックを要求する。ステップ202で、マスタは、資源のMロックを現在保持するデータベースサーバ(「ホルダ」)に、2つのサーバを接続する通信チャネル(「相互接続」)を介する直接転送によって、Mロックを資源のそのキャッシュされたバージョンとともに転送するよう命令する。
【0023】
ステップ204で、ホルダは、資源の現在のバージョンおよびMロックを要求者に送る。ステップ206で、ホルダは、Mロックの転送をマスタに通知する。ステップ208で、マスタは、資源のロック情報を更新して要求者がMロックを現在保持していることを示す。
【0024】
PI資源
Mロックのホルダは、必ずしもWロックを有しているとは限らず、このためそのキャッシュ内に含まれる資源のバージョンをディスクに書出す許可を有していない可能性がある。したがって、転送データベースサーバ(すなわち、Mロックを最後に保持していたデータベースサーバ)は、未来のある時点でそのバージョンをディスクに書出すよう要求される可能性があるので、資源のそのバージョンをダイナミックメモリに留め続ける。転送データベースサーバ内に留まる資源のバージョンは、もし受信データベースサーバが資源のそのコピーを変更すれば、古くなる。転送データベースサーバは、受信データベースサーバ(またはそのサクセサ)が資源をいつ変更するかわかっているとは限らないので、転送データベースサーバは資源のコピーを送信した時点から、その保持されたバージョンを「古い可能性のあるデータ」として扱う。資源のそのような古い可能性のあるバージョンを、ここではパストイメージ資源(PI資源)と呼ぶ。
【0025】
PI資源の解放
資源のキャッシュされたバージョンが解放された後、これは新しいデータで上書される可能性がある。典型的には、資源のダーティバージョンは、資源をディスクに書込むことによって解放され得る。しかしながら、キャッシュ内にPI資源を有するデータベースサーバが必ずしも、PI資源をディスクに記憶する権利を持っているとは限らない。これらの状況下でPI資源を解放するためのある技術が、図3に示される。
【0026】
図3を参照すると、データベースサーバがそのキャッシュ内のPI資源を解放したいとき、これはWロックの要求を分散ロックマネージャー(DLM)に送信する。ステップ302で、DLMは次に、要求データベースサーバ、または、資源のより新しいバージョン(サクセサ)をそのキャッシュ内に有する何らかのデータベースサーバに、資源をディスクに書出すよう命令する。こうして、資源をディスクに書込むよう命令されたデータベースサーバは、ダブルロックを許可される。ダブルロックを許可されたデータベースサーバか資源をディスクに書込んだ後、データベースサーバはWロックを解放する。
【0027】
次に、DLMは、すべてのデータベースサーバにメッセージを送信して書出された資源のバージョンを示し(ステップ304)、この結果、資源のこれ以前のPIバージョンはすべて解放可能となる(ステップ306)。たとえば、ディスクに書込まれたバージョンが時間T10で変更されたと仮定する。それより前の時間T5で最後に変更された資源のバージョンを有するデータベースサーバは、ここで、これが記憶されているバッファを他のデータのために使用することができるであろう。しかしながら、それより後の時間T11で変更されたバージョンを有するデータベースサーバは、資源のそのバージョンをそのメモリ内に保持し続けなければならないであろう。
【0028】
MおよびWロックアプローチの下でのピング管理
この発明のある実施例に従って、図1を参照して記載するように、MおよびWロックアプローチを実現化してピングを処理してもよい。図1を参照すると、4つのデータベースサーバA、B、CおよびDのブロック図が示され、これらのサーバはすべて特定の資源を含むデータベースへのアクセスを有している。例示される時点では、データベースサーバA、BおよびCはすべて、資源のバージョンを有する。データベースサーバAのキャッシュ内に保持されるバージョンは、資源の最も最近に変更されたバージョンである(時間T10で変更された)。データベースサーバBおよびCに保持されるバージョンは、資源のPIバージョンである。データベースサーバDは、資源のマスタである。
【0029】
この時点で、別のデータベースサーバ(「要求者」)が資源を変更したいと仮定する。要求者は、マスタに変更ロックを要求する。マスタは、要求者からの競合する要求のために、データベースサーバAにコマンドを送信してロック(「BAST」)をダウンコンバートする。ダウンコンバートコマンドに応答して、資源の現在のイメージ(クリーンまたはダーティのいずれでも)が、データベースサーバAから要求者に、資源を変更する許可とともに発送される。こうして発送された許可は、資源をディスクに書込む許可を含んでいない。
【0030】
データベースサーバAがMロックを要求者に送ると、データベースサーバAはそのMロックを「保持」ロック(「Hロック」)にダウングレードする。Hロックは、データベースサーバAが留められたPIコピーを保持していることを示す。Hロックの所有権は、オーナーにPIコピーをそのバッファキャッシュ内に維持することを強制するが、PIコピーをディスクに書込むいかなる権利もそのデータベースサーバに与えない。同じ資源に対して複数の同時的Hホルダがあり得るが、一度に資源の書込ができるデータベースサーバは1以下であり、したがって資源のWロックを保持することのできるデータベースサーバはたった1つである。
【0031】
資源を発送するより前に、データベースサーバAはログが確実に強制されるようにする(すなわち、データベースサーバAによって資源になされた変更について生成された復旧ログが永続的に記憶されるようにする)。変更許可を送ることによって、データベースサーバAは、資源を変更する自らの権利を失う。資源のコピー(発送の時点ではそうであったような)は、発送データベースサーバAになおも維持されている。資源の発送の後に、データベースサーバA内に保持される資源のコピーは、PI資源である。
【0032】
優遇書込
データベースサーバがダーティ資源を別のデータサーバに直接発送した後、資源の保持されたコピーは留められたPI資源となり、解放されるまでそのバッファを別の資源に使用することはできない。PI資源を含むバッファをここでは、PIバッファと呼ぶ。これらのバッファは、データベースサーバのキャッシュ内に有効な空間を占有しており、やがては他のデータのために再利用されなければならない。
【0033】
バッファキャッシュ内のPIバッファ(古くなったまたはチェックポイントされた)を置換するために、ここでは「優遇書込」と呼ぶ新しいディスク書込プロトコルを採用する。優遇書込プロトコルに従って、データベースサーバが資源をディスクに書込む必要があるとき、データベースサーバは要求をDLMに送信する。DLMは、ディスクに書込まれるべき資源のバージョンを選択し、選択されたバージョンを有するデータベースサーバを見つけ、書込要求を開始したデータベースサーバに代わって、そのデータベースサーバにディスクへの資源の書込をさせる。資源をディスクに実際に書込むデータベースサーバは、資源の最新の軌跡に依存して、書込を要求したデータベースサーバであっても、または、らかの他のデータベースサーバであってもよい。
【0034】
資源の選択されたバージョンをディスクに書込むことによって、ディスクに書込まれた選択されたバージョンと同じ古さまたはそれよりも古い、クラスタのすべてのバッファキャッシュ内の資源のPIバージョンはすべて解放される。ディスクに書込まれるべきバージョンを選択するために使用される規準を、以下により詳細に記載する。しかしながら、選択されたバージョンは、マスタに知られている最新のPIバージョンか、または、資源のカレントバージョン(「CURR」)のいずれかであり得る。カレントバージョン以外のバージョンを選択する利点の1つは、この別のバージョンの選択によって現在のコピーが妨害されることなく変更可能となることである。
【0035】
PI資源を保持しているデータベースサーバは、資源のWロックを獲得しているならば、そのPIコピーを書出すことができる。資源の書込は、さまざまなデータベースサーバ間でのCURR資源イメージの移動から切離される。
【0036】
効率的要因
資源を別のデータベースサーバに発送するたびにPIコピーを書込む必要はない。したがって、資源を永続的に記憶する目的は、ディスクコピーを十分最近のものにしておくことと、バッファキャッシュ内の置換不可能な資源の数を妥当なものにしておくこととである。さまざまな要因が、上述した優遇書込プロトコルを採用するシステムの効率性を決定する。具体的には、
(1) ディスクにダーティ資源を書込むことによって起きるI/O動作を最低限にすることと、
(2) 資源のディスクバージョンを十分に現在のものにしておくことによって障害後の復旧動作を迅速化することと、
(3) 留められたPI資源でバッファキャッシュがオーバーフローすることを防ぐこととが望まれる。
【0037】
第1の規準を最大化すると第2および第3の規準に否定的影響が及び、その逆もまたある。したがって、トレードオフが必要である。この発明のある実施例に従うと、総IO経費に対する制御と併せてチェックポイントのさまざまな技術(臨時的継続的チェックポイントと混合されたLRU)を組合せるセルフチューニングアルゴリズムを使用してもよい。
【0038】
最新書込アプローチ
上述した優遇書込プロトコルの代替を、ここでは最新書込アプローチと呼ぶ。最新書込アプローチに従うと、すべてのデータベースサーバが、そのPI資源をディスクに書込む許可を有する。しかしながら、そうする前に、データベースサーバは資源のディスクベースのコピーに対するロックを獲得する。ロックを獲得した後、データベースサーバは、ディスクバージョンを、これが書込みたいPIバージョンと比較する。もしディスクバージョンの方が古ければ、PIバージョンがディスクに書込まれる。もしディスクバージョンの方が新しければ、PIバージョンは廃棄されてもよく、それが占有していたバッファは再利用可能である。
【0039】
優遇書込プロトコルと違って、最新書込アプローチは、データベースサーバが、自己のPIバージョンをディスクに書込むことによって、またはディスクバージョンの方がより新しいことを決定することによって、自己のPIバージョンを解放可能にする。しかしながら、最新書込アプローチは、ディスクベースのコピーのロックに対する競合を増大させ、優遇書込アプローチでは起きなかったであろうディスクI/Oを招く可能性がある。
【0040】
許可ストリング
典型的なDLMは、限られた数のロックモードを使用することによって資源へのアクセスを管理し、ここではモードは互換性があるか競合しているかのいずれかである。ある実施例に従うと、資源へのアクセスを管理するメカニズムは、ロックモードを異なった種の許可および義務の集合と代用するよう拡張される。許可および義務は、たとえば、資源を書込み、資源を変更し、キャッシュ内の資源を維持するなどの許可を含んでもよい。具体的な許可および義務を以下により詳細に記載する。
【0041】
ある実施例に従うと、許可および義務は、許可ストリングに符号化される。多くの許可は資源自体にではなく資源のバージョンに相関するので、許可ストリングは資源バージョン数によって増大するであろう。もし2つの異なった許可ストリングが、資源の同じバージョン(たとえば、変更のための現在バージョンまたは書込のためのディスクアクセス)に対する同じ排他的許可を要求するならば、これらは競合する。そうでなければこれらは互換性がある。
【0042】
許可転送を使用する同時実行性
上述したとおり、資源があるデータベースサーバで変更され、別のデータベースサーバによってさらなる変更を要求されると、マスタは、資源のカレントコピー(CURRコピー)を保持するデータベースサーバに、そのMロック(変更する権利)を資源のCURRコピーとともに他のデータベースサーバに送るように命令する。重要なことには、Mロックの要求はマスタに送信されるが、許可は何らかの他のデータベースサーバ(先のMロックホルダ)によってなされる。この三者間メッセージングモデルは、ロック要求が最初にアドレスされたロックマネージャーを含むデータベースサーバからロック要求に対する応答が期待される、従来の双方向通信とはかなり異なる。
【0043】
この発明のある実施例に従うと、資源のCURRコピーのホルダ(たとえば、データベースサーバA)がMロックを別のデータサーバに送ると、データベースサーバAは、Mロックが転送されたことをマスタに通知する。しかしながら、データベースサーバAは、マスタが通知を受取ったという確認を待つことなく、そのような確認を受取る前にCURRコピーおよびMロックを送信する。待たないことによって、マスタとデータベースサーバAとの間の往復通信は転送に遅延をもたらすことなく、これによってプロトコルレイテンシがかなり節約される。
【0044】
許可は許可の現在ホルダから許可の要求者に直接転送されるので、マスタが常に、ロック許可の正確な全体像を知っているとは限らない。むしろ、マスタは、任意の所与の時間でのロックの正確な位置についてではなく、Mロックの軌跡についてのみ、「これを最近保持した」データベースサーバについてのみ知っている。ある実施例に従うと、この「レージーな」通知方式は、Mロックに適用可能であるが、Wロック、Xロック、またはSロック(またはその対応物)には適用可能でない。ロック方式のさまざまな実施例を以下により詳細に記載する。
【0045】
障害復旧
この発明のコンテクストにおいては、サーバに関連付けられるキャッシュがアクセス不可能となった場合、データベースサーバに障害が発生したという。ここに記載する技術を用いるダーティ資源の直接のサーバ間発送を採用するデータシステムは、単一サーバの障害に応答して復旧ログをマージする必要性を回避する。ある実施例に従って、単一のサーバの障害は、図4に示すとおり処理される。図4を参照して、単一のデータベースサーバに障害が発生すると、復旧プロセスは、障害の発生したデータベースサーバのキャッシュ内に保持される各資源について、以下のステップを実行する。
【0046】
(ステップ400) 資源の最新バージョンを保持するデータベースサーバをを決定し、
(ステップ402) ステップ400で決定されたデータベースサーバが障害の発生したデータベースサーバでなければ、(ステップ404)決定されたデータベースサーバは資源のそのキャッシュされたバージョンをディスクに書込み、(ステップ406)資源のPIバージョンはすべて解放される。このバージョンは、資源に加えられた、かかわった変更(障害の発生したデータベースサーバによってなされたものを含む)を有するため、いかなるデータベースサーバの復旧ログも適用される必要がない。
【0047】
もしステップ402で決定されたデータベースサーバが障害の発生したデータベースサーバであれば、(ステップ408)資源の最新PIバージョンを保持するデータベースサーバは、資源のそのキャッシュされたバージョンをディスクに書出し、(ステップ410)先のPIバージョンはすべて解放される。ディスクに書出されたバージョンは、障害の発生したデータベースサーバ以外のすべてのデータサーバによって資源に加えられたかかわった変更を有する。障害の発生したデータベースサーバの復旧ログを適用して(ステップ412)障害の発生したデータベースサーバによって加えられたかかわった変更を復旧する。
【0048】
代替的に、資源の最新PIバージョンを、ディスク上ではなくキャッシュ内の現在のバージョンを復旧するための開始点として使用してもよい。具体的には、障害の発生したデータベースサーバの復旧ログから適切なレコードを、キャッシュ内にある最新PIバージョンに直接適用して、最新PIバージョンを保持するデータベースサーバのキャッシュ内のカレントバージョンを再構築してもよい。
【0049】
複数のデータベースサーバの障害
複数のサーバ障害の場合に、最新PIコピーもいかなるCURRコピーも生き残らなかったとき、資源になされた変更が障害の発生したデータベースサーバの複数のログにわたって広がっていることが起こり得る。この状況下では、障害の発生したデータベースサーバのログはマージされなければならない。しかしながら、すべてのデータベースサーバのログではなく、障害の発生したデータベースサーバのログのみがマージされなければならない。したがって、復旧のために必要とされる作業量は、構成全体のサイズにではなく障害の程度に比例する。
【0050】
どの障害の発生したデータベースサーバが資源を更新したかを決定することが可能なシステムにおいては、資源を更新した障害の発生したデータベースサーバのログのみがマージされ適用される必要がある。同様に、どの障害の発生したデータベースサーバが、資源の永続的に記憶されたバージョンの後に資源を更新したかを決定することのできるシステムにおいては、資源の永続的に記憶されたバージョンの後に資源を更新した、障害の発生したデータベースサーバのログのみがマージされ適用される必要がある。
【0051】
例示的動作
説明のために、例示的な一連の資源転送を図1を参照して記載する。一連の転送の間、資源は複数のデータベースサーバでアクセスされる。具体的には、資源がクラスタノードに沿って発送され変更されると、データベースサーバの1つでのチェックポイントによってこの資源の物理的I/Oが起こる。
【0052】
再び図1を参照すると、4つのデータベースサーバ、A、B、CおよびDがある。データベースサーバDが資源のマスタである。まずデータベースサーバCが資源を変更する。データベースサーバCは資源バージョン8を有する。この時点で、データベースサーバCは、この資源に対するMロック(排他的変更権)も有する。
【0053】
この時点で、データベースサーバBが、データベースサーバCが現在保持している資源を変更したいと仮定する。データベースサーバBは、資源のMロックの要求(1)を送信する。データベースサーバDは、資源に関連付けられるモディファィアキュー上に要求を置き、
(a) 変更許可(Mロック)をデータベースサーバBに送り、
(b) 資源の現在イメージをデータベースサーバBに送信し、
(c) データベースサーバCのMロックをHロックにダウングレードするよう、データベースサーバCに命令する(メッセージ2:BAST)。
【0054】
このダウングレード動作の後に、Cは、そのバッファキャッシュ内に資源のそのバージョン(PIコピー)を維持させられる。
【0055】
データベースサーバCは、要求された動作を実行し、新しい変更に対してログをさらに強制してもよい。加えて、データベースサーバCは、これが動作を実行したこと(AST)をマスタにレージーに通知する(3AckM)。この通知は、データベースサーバCがバージョン8を維持していることもマスタに知らせる。データベースサーバCは、マスタからの確認を待たない。従って、データベースサーバBは、マスタがそれを知る前に、Mロックを得ることが可能である。
【0056】
一方で、データベースサーバAもまた資源を変更することを決定したとする。データベースサーバAは、メッセージ(4)をデータベースサーバDに送信する。このメッセージは、データベースサーバCからデータベースサーバDへの非同期の通知の前に、到着し得る。
【0057】
データベースサーバD(マスタ)は、(Bがこれを得て変更した後に)資源をデータベースサーバAに送るよう、データベースサーバB、すなわちこの資源の最新と知られているモディファィアにメッセージ(5)を送信する。なお、データベースサーバDは、資源がそこにあるのかまだなのかを知らない。しかし、データベースサーバDは、資源がやがてBに到着することは知っている。
【0058】
データベースサーバBが資源を得て意図された変更をした後(現在Bは資源のバージョン9を有している)、これは自己のロックをHにダウングレードし、データベースサーバAに、資源のカレントバージョン(「CURR資源」)をMロックとともに送信する(6)。データベースサーバBはまた、レージーな通知(6AckM)をマスタに送信する。
【0059】
この資源はデータベースサーバAで変更されつつあるが、データベースサーバCでのチェックポイントメカニズムが、資源をディスクに書込むことを決定したとする。上記の非同期の事象に関しては、3AckMおよび6AckMの両方が既にマスタに到着していると仮定する。チェックポイント動作に応答して実行された動作を図5を参照して示す。
【0060】
図5を参照すると、データベースサーバCは、書込権限を含まない、バージョン8に対するHロックを保持しているので、データベースサーバCは、メッセージ1をマスタ(D)に送信してそのバージョンについてのW(書込)ロックを要求する。この時点ではもう、マスタは、(確認が到着したと仮定して)資源がデータベースサーバAに発送されたことを知っている。データベースサーバDは、資源書込の命令とともに、(非請求の)WロックをデータベースサーバAに送信する(2BastW)。
【0061】
一般的な場合においては、この命令は、送信通知が到着している最新のデータベースサーバへ(または、最新であると知られている送信者から資源を受取ると考えられるデータベースサーバへ)送られる。データベースサーバAは、資源のそのバージョンを書込む(3)。データベースサーバによって書込まれた資源は、資源のバージョン10である。このときまでに、もしさらなる要求者が資源を要求していれば、資源のカレントコピーはどこか他にあるであろう。ディスクは、書込が完了したとき確認する(4AckW)。
【0062】
書込が完了すると、データベースサーバAは、データベースサーバDに、バージョン10が現在ディスク上にあるという情報を与える(5AckW)。データベースサーバAは、(これは最初には要求していなかった)そのWロックを自発的にダウングレードする。
【0063】
マスタ(D)はデータベースサーバCに行って、要求されたWロックを許可する代わりに、書込が完成したことをCに通知する(6)。マスタは、現在のディスクバージョン数を全てのPIコピーのホルダに知らせ、これによってCでのこれ以前のPIコピーはすべて解放可能となる。このシナリオでは、データベースサーバCは、10より古いPIコピーを有していないので、これはデータベースサーバCのロックをNULLにダウンコンバートする。
【0064】
マスタはまた、確認メッセージをデータベースサーバBに送信してデータベースサーバBに10より以前のそのPIコピーを解放するよう命令する(7AckW(10))。
【0065】
分散ロックマネージャ
従来のDLM論理と対照的に、ここに記載する直接発送技術を実現するシステムでのマスタは、データベースサーバでのロック状態について不完全な情報を有することがある。ある実施例に従うと、資源のマスタは、以下の情報およびデータ構造を維持する。
【0066】
(1) (変更または共有アクセスのいずれかのための)CURRコピー要求者のキュー(キューの長さの上限は、クラスタ内のデータベースサーバの数である)。このキューをここでは、カレント要求キュー(CQ)と呼ぶ。
【0067】
(2) 資源が別のCURR要求者に送信されると、送信側はレージーに(これが確認を待たないという意味では非同期に)マスタに事象について通知する。マスタは、最新のいくつかの送信者を追跡し続ける。これがCQ上のポインタである。
【0068】
(3) ディスク上の最新資源バージョンのバージョン数。
(4) Wロック許可およびW要求キュー。
【0069】
ある実施例に従うと、W許可は同期する。すなわち、これはマスタによってのみ許可され、マスタは、この資源についてのクラスタ内の書込要求者が1以下であることを確実にする。マスタが次の許可を出すことができるのは、先の書込が完了しWロックが解放されたと通知された後のみである。もし2以上のモディファィアがあれば、Wロックは書込の持続時間の間与えられ、書込の後に自発的に解放される。もしモディファィアが1つだけであれば、モディファィアはW許可を維持可能である。
【0070】
(5) そのそれぞれの資源バージョン数を備えるHロックホルダのリスト。これは、バッファキャッシュ内のPIコピーについての情報を(おそらく不完全であるが)与える。
【0071】
ディスクウォームアップ
ここに記載する直接発送は、資源のバッファキャッシュイメージとディスクイメージとのライフサイクルを大きく引き離すので、復旧の際にこのギャップを埋める必要がある。ある実施例に従うと、DLM復旧とバッファキャッシュ復旧との間に、復旧の新しいステップが加えられる。この新しい復旧ステップをここでは「ディスクウォームアップ」と呼ぶ。
【0072】
通常のキャッシュ動作の間、資源のマスタは、(キャッシュ復旧に先行する)DLM復旧の際に、資源の位置とPIコピーおよびCURRコピーの利用可能性とについておおよそしか知らないが、資源のマスタは、生き残ったデータベースサーバのバッファキャッシュ内の最新PIおよびCURRコピーの利用可能性について完全な情報を収集する。資源のマスタが、(もし障害より前に資源が障害の発生したデータベースサーバ上にマスタされていれば)新しいマスタであっても生き残ったマスタであっても、これは当てはまる。
【0073】
情報を収集した後、マスタは、どのデータベースサーバが資源の最新コピーを所有しているかを知る。「ディスクウォームアップ」段では、マスタは、資源のこの最新コピー(もし利用可能であればCURR、および、もしCURRコピーが障害の発生したデータベースサーバとともに消失していれば最新PIコピー)のオーナーにWロックを発行する。次に、マスタは、このデータベースサーバに、資源をディスクに書込むよう命令する。書込が完了すると、すべての他のデータベースサーバは、そのHロックをNULLロックに変換する(なぜなら書込まれたコピーが最新の利用可能なものであるからである)。これらのロックがコンバートされた後、キャッシュ復旧は通常通り続行可能である。
【0074】
ディスクウォームアップ段の間、いくつかの最適化が可能である。たとえば、もし最新イメージが復旧を実行するデータベースサーバのバッファキャッシュ内にあれば、資源は必ずしもディスクに書込まれる必要はない。
【0075】
ロックベース方式の代替
データベースサーバ間での資源のダーティコピーを直接発送するためのさまざまな技術を、特殊なタイプのロック(Mロック、WロックおよびHロック)使用するロッキング方式をコンテクストとして記載した。具体的には、これらの特殊ロックを使用して、(1)資源のカレントバージョンを有するサーバのみが資源を変更することと、(2)資源の同じバージョンまたはより新しいバージョンがディスクに書込まれるまで、すべてのサーバが資源のそのPIバージョンを維持することと、(3)資源のディスクベースのバージョンが資源のより古いバージョンによって重ね書きされないこととを確実にする。
【0076】
しかしながら、ロックベースのアクセス制御方式は、この発明が実施可能であるコンテクストの1つにすぎない。たとえば、任意のさまざまなアクセス制御方式を用いてこれらの同じ3つの規則を実施してもよい。したがって、この発明は、特定のタイプのアクセス制御方式に限定されるものではない。
【0077】
たとえば、ロックをベースとして資源へのアクセスを管理する代わりに、アクセスは、トークンによって管理されてもよく、この場合各トークンが特定のタイプの許可を表わす。特定の資源のためのトークンが、上述した3つの規則が確実に実施されるように、パラレルサーバ間で転送されてもよい。
【0078】
同様に、規則は、状態ベースの方式を用いて実施され得る。状態ベースの方式では、資源のバージョンは、事象に応答して状態を変化させ、バージョンの状態がそのバージョンに対して実行可能である動作のタイプを決定する。たとえば、データベースサーバは、その「現在の」状態での資源のカレントバージョンを受取る。現在の状態は、資源の変更および資源のディスクへの書込を可能とする。データベースサーバが資源のカレントバージョンを別のノードに転送すると、保持されているバージョンは「PI書込可能」状態に変る。PI書込可能状態では、バージョンは、(1)変更不可能であり、(2)量ね書き不可能であるが、(3)ディスクへの書込は可能である。資源の任意のバージョンがディスクに書込まれると、ディスクに書込まれたバージョンと同じまたはそれよりも古い、PI書込可能状態にあるバージョンのすべてが、「PI解放」状態に置かれる。PI解放状態では、バージョンは量ね書き可能であるが、ディスクへの書込または変更は不可能である。
【0079】
ハードウェア概要
図6は、この発明の実施例が実現可能であるコンピュータシステム600を示すブロック図である。コンピュータシステム600は、情報を受け渡しするためのバス602または他の通信メカニズムと、バス602に結合され情報を処理するためのプロセッサ604とを含む。コンピュータシステム600はまた、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置などの主メモリ606を含み、これはバス602に結合されプロセッサ604によって実行されるべき命令および情報を記憶する。主メモリ606はまた、プロセッサ604によって実行されるべき命令の実行の間、一時的変数または他の中間情報を記憶するために使用され得る。コンピュータシステム600は、リードオンリメモリ(ROM)608または他の静的記憶装置をさらに含み、これはバス602に結合され静的情報およびプロセッサ604のための命令を記憶する。磁気ディスクまたは光学ディスクなどの記憶装置610が設けられこれはバス602に結合され情報および命令を記憶する。
【0080】
コンピュータシステム600は、バス602を介して陰極線管(CRT)などのディスプレイ612に結合されもよく、これはコンピュータユーザに情報を表示する。英数字および他のキーを含む入力デバイス614は、バス602に結合されプロセッサ604に情報およびコマンド選択を与える。ユーザ入力デバイスの別のタイプは、マウス、トラックボールまたはカーソル方向キーなどのカーソルコントロール616であって、これは方向情報およびコマンド選択をプロセッサ604に与え、かつ、ディスプレイ612上のカーソルの動きを制御する。この入力デバイスは典型的には、第1の軸(たとえばx)および第2の軸(たとえばy)の、2軸での2自由度を有し、これによってデバイスは画面での位置を特定することが可能となる。
【0081】
この発明は、ピングに関連付けられるオーバーヘッドを低減するコンピュータシステム600の使用に関する。この発明のある実施例に従うと、ピングに関連付けられるオーバーヘッドは、プロセッサ604が主メモリ606に含まれる1つ以上の命令の1つ以上のシーケンスを実行することに応答して、コンピュータシステム600によって低減される。そのような命令は、記憶装置610などの、別のコンピュータ読出可能媒体から主メモリ606に読出されてもよい。主メモリ606内に含まれる命令のシーケンスを実行することによって、プロセッサ604はここに記載するプロセスステップを実行する。代替の実施例では、ハードワイア回路をソフトウェア命令の代わりにまたはこれと組合せて使用してこの発明を実現してもよい。したがって、この発明の実施例は、ハードウェア回路およびソフトウェアの特定の組合せに限定されない。
【0082】
ここに用いる「コンピュータ読出可能媒体」という言葉は、プロセッサ604に命令を与えて実行させることに関与する任意の媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むがこれに限られるものではない、多くの形態を取ってもよい。不揮発性媒体は、たとえば、記憶装置610などの、光学ディスクまたは磁気ディスクを含む。揮発性媒体は、主メモリ606などの、ダイナミックメモリを含む。伝送媒体は、バス602を含むワイアを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体はまた、電波および赤外データ通信の間生成されるものなど、音波または光波の形態を取ってもよい。
【0083】
コンピュータ読出可能媒体の通常の形態は、たとえば、フロッピー、フレキシブルディスク、ハードディスク、磁気テープ、またはその他の磁気媒体、CD−ROM、その他の光学媒体、パンチカード、紙テープ、孔のパターンを備えるその他の物理的媒体、RAM、PROMおよびEPROM、FLASH−EPROM、その他のメモリチップまたはカートリッジ、以下に記載する搬送波、またはコンピュータが読出可能なその他の媒体の形態を含む。
【0084】
コンピュータ読出可能媒体のさまざまな形態は、1つ以上の命令の1つ以上のシーケンスをプロセッサ604に搬送して実行することにかかわり得る。たとえば、命令は最初に、遠隔コンピュータの磁気ディスク上に担持されてもよい。遠隔コンピュータは、命令をそのダイナミックメモリにロードし、モデムを使用して電話線を介して命令を送信することができる。コンピュータシステム600にローカルなモデムは、電話線上のデータを受信し、赤外送信器を使用してデータを赤外信号に変換することができる。赤外検出器は赤外信号で搬送されるデータを受信可能であり、適切な回路がデータをバス602上に与えることができる。バス602は、データを主メモリ606に搬送し、プロセッサ604はそこから命令を検索し実行する。主メモリ606によって受取られた命令は、プロセッサ604によって実行される前またはその後に、記憶装置610上にオプションとして記憶されてもよい。
【0085】
コンピュータシステム600は、1つ以上の記憶装置(たとえばディスクドライブ655)がコンピュータシステム600と1つ以上の他のCPU(たとえばCPU651)の両方にアクセス可能である、共有ディスクシステムに属する。例示のシステムでは、ディスクドライブ655への共有アクセスは、システムエリアネットワーク653によって与えられる。しかしながら、さまざまなメカニズムを代替的に使用して共有アクセスを与えてもよい。
【0086】
コンピュータシステム600はまた、バス602に結合される通信インターフェイス618を含む。通信インターフェイス618は、双方向のデータ通信を与え、これはネットワークリンク620に結合し、ネットワークリンクはローカルネットワーク622に接続される。たとえば、通信インターフェイス618は、統合サービスデジタル網(ISDN)カードまたはモデムであってもよく対応するタイプの電話線にデータ通信接続を与える。別の例として、通信インターフェイス618は、互換性のあるLANにデータ通信接続を与えるローカルエリアネットワーク(LAN)カードであってもよい。ワイアレスリンクが実現されてもよい。いかなるそのような実現化例でも、通信インターフェイス618は、さまざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電磁波信号または光学信号を送信し受信する。
【0087】
ネットワークリンク620は、典型的には、1つ以上のネットワークを介して他のデータデバイスにデータ通信を与える。たとえば、ネットワークリンク620は、ローカルネットワーク622を介してホストコンピュータ624またはインターネットサービスプロバイダ(ISP)626によって動作するデータ装置に接続してもよい。ISP626は、現在通常「インターネット」628と呼ばれるワールドワイドパケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク622とインターネット628とはどちらも、デジタルデータストリームを搬送する電気信号、電磁波信号または光学信号を使用する。さまざまなネットワークを通る信号と、ネットワークリンク620上および通信インターネット618を通る信号とは、デジタルデータをコンピュータシステム600へかつそこから搬送するものであるが、情報を転送する搬送波の例示的形態である。
【0088】
コンピュータシステム600は、ネットワーク、ネットワークリンク620および通信インターフェイス618を介して、プログラムコードを含め、メッセージを送信しデータを受信することが可能である。インターネットの例では、サーバ630は、インターネット628、ISP626、ローカルネットワーク622および通信インターフェイス618を介して、アプリケーションプログラムのために要求されたコードを伝送可能である。
【0089】
受信されたコードは、受信されたときにプロセッサ604によって実行されてもよいし、かつ/または記憶装置610または他の不揮発性装置に記憶されて後に実行されてもよい。このようにして、コンピュータシステム600は、搬送波の形でアプリケーションコードを獲得可能である。
【0090】
複数のデータベースサーバが共通の永続性記憶装置へのアクセスを有するときに生じるピングを参照してピングを処理するための技術が記載されるが、この技術はこのコンテクストに限定されるのではない。具体的には、これらの技術は、あるキャッシュに関連付けられるプロセスが現在のバージョンが他のキャッシュ内に位置する資源を要求する可能性のあるいかなる環境に適用されてもよい。そのような環境は、たとえば、異なったノード上のテキストサーバが同じテキスト材料へのアクセスを有するような環境、異なったノード上のメディアサーバが同じビデオデータへのアクセスを有するような環境、などを含む。
【0091】
ここに記載する技術を用いてピングを処理すれば、資源のデータベースサーバ間の転送は効率よくなるので、動作可能時間性能は、データベースサーバの数およびデータベースサーバあたりのユーザの増加にあわせて増大する。加えて、この技術によって、データベースサーバの数の増加にあわせて増大する単一のデータベースサーバの障害(障害の最もよくあるタイプ)からの効率的な復旧が得られる。
【0092】
重要なことには、ここに記載する技術は、ディスク介入によってではなく、IPCトランスポートを介して資源を送信することによってピングを処理する。したがって、ピングをもたらす、資源についてのディスクI/Oは、かなり解消される。同期I/Oを伴うのは、これがログ強制のために必要とされる場合においてのみである。加えて、ディスクI/Oはチェックポイントおよびバッファキャッシュ置換のために生じるが、そのようなI/Oは、クラスタにわたるバッファ発送を減速させることはない。
【0093】
ここに記載する直接発送技術はまた、ピングによって生じるコンテクスト切換の数を低減させるようにもなる。具体的には、プロトコルの関与者(要求者およびホルダ)とマスタとの間の往復メッセージのシーケンスは、要求者、マスタ、ホルダ、要求者からなる通信トライアングルによって代用される。
【図面の簡単な説明】
【図1】 資源の最新バージョンのキャッシュからキャッシュへの転送を例示するブロック図である。
【図2】 この発明の実施例に従ってディスク介入なしにあるキャッシュから別のキャッシュへ資源を伝送するステップを例示するフローチャートである。
【図3】 この発明の実施例に従って、資源のパストイメージを解放するステップを例示するフローチャートである。
【図4】 この発明の実施例に従って単一のデータベースサーバの障害の後に復旧するステップを例示するフローチャートである。
【図5】 この発明の実施例に従ってチェックポイントサイクルを例示するブロック図である。
【図6】 この発明の実施例が実現可能であるコンピュータシステムのブロック図である。
Claims (190)
- 第1のキャッシュから第2のキャッシュへ資源を転送するための方法であって、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するステップと、
資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するステップとを含む、方法。 - 前記第1のキャッシュは第1のデータベースサーバによって維持されるキャッシュであり、前記第2のキャッシュは第2のデータベースサーバによって維持されるキャッシュである、請求項1に記載の方法。
- 前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にするステップと、
前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐステップとをさらに含む、請求項1に記載の方法。 - 前記第2のコピーを前記第2のキャッシュに転送した後に、前記第1のコピーの開放の許可の要求を送信するステップと、
前記要求に応答して、前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステップと、
前記サクセサが永続的に記憶されたことに応答して、前記第1のコピーが開放可能であることを示すメッセージを送信するステップとをさらに含む、請求項1に記載の方法。 - 前記第1のコピーの開放の許可の要求を送信するステップは、送信側プロセスによって実行され、
前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステップは、送信側プロセス以外のプロセスが前記資源の前記第1のコピーのサクセサを記憶するようにするステップを含む、請求項4に記載の方法。 - 前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するステップは、
前記第1のコピーを永続的に記憶しようとする前に、前記資源の永続的に記憶されたコピーが前記第1のコピーより最近のものであるかどうか決定するステップと、
もし前記永続的に記憶されたコピーが前記第1のコピーより最近のものであれば、前記第1のコピーを永続的に記憶することなしに前記第1のコピーを開放するステップと、
もし前記永続的に記憶されたコピーが前記第1のコピーより最近のものでなければ、前記第1のコピーを永続的に記憶するステップとを含む、請求項1に記載の方法。 - 変更許可を、第1のキャッシュに関連付けられる送信側プロセスから第2のキャッシュに関連付けられる受信側プロセスに、前記資源の前記第2のコピーとともに転送するステップをさらに含む、請求項3に記載の方法。
- 前記資源にアクセスする許可はマスタによって管理され、
前記変更許可を前記受信側プロセスに転送するステップは、前記変更許可の前記受信側プロセスへの転送についての確認を前記マスタから受信するより前に実行される、請求項7に記載の方法。 - 変更許可を、前記第1のキャッシュに関連付けられる送信側プロセスから前記第2のキャッシュに関連付けられる受信側プロセスに、前記資源の第2のコピーとともに転送するステップをさらに含み、
前記資源にアクセスする許可はマスタによって管理され、
前記変更許可を前記受信側プロセスに転送するステップは、前記変更許可の前記受信側プロセスへの転送の確認を前記マスタが受信するより前に実行される、請求項1に記載の方法。 - 前記第2のキャッシュに関連付けられる受信側プロセスが前記資源の要求を前記資源のマスタに送信するステップと、
前記受信側プロセスからの前記要求に応答して、前記資源の前記マスタが前記第1のキャッシュに関連付けられる送信側プロセスにメッセージを送信するステップと、
前記送信側プロセスが前記マスタからの前記メッセージに応答して、前記第2のコピーを前記受信側プロセスに転送するステップとをさらに含む、請求項1に記載の方法。 - 前記第2のコピーを前記第2のキャッシュに転送するステップの後に、
前記第1のキャッシュに関連付けられる送信側プロセスが、ロックマネージャにロックを要求するステップを含み、前記ロックは前記資源をディスクに書込む許可は与えるが前記資源を変更する許可は与えず、さらに、
前記ロックマネージャが、前記第1のコピーと少なくとも同じほど最近である前記資源のバージョンを有するプロセスを選択するステップと、
前記ロックマネージャが、前記ロックを前記選択されたプロセスに与えるステップと、
前記選択されたプロセスが、前記資源の前記バージョンをディスクに書込むステップとをさらに含む、請求項1に記載の方法。 - 前記資源のバージョンがディスクに書込まれるのに応答して、前記ロックマネージャが前記バージョンよりも古い前記資源のすべてのバージョンが開放されるようにするステップをさらに含む、請求項11に記載の方法。
- 前記資源のダーティコピーを保持するキャッシュの障害の後に、
前記障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、
資源の最新パストイメージをディスクに書込むステップと、
資源の以前のすべてのパストイメージを開放するステップと、
前記障害の発生したキャッシュの復旧ログを適用して資源の最新バージョンを再構築するステップとをさらに含む、請求項1に記載の方法。 - もし前記障害の発生したキャッシュが資源の最新バージョンを保持していなかったならば、
資源の最新バージョンをディスクに書込むステップと、
資源のすべてのパストイメージを開放するステップとをさらに含む、請求項13に記載の方法。 - 前記資源のダーティバージョンを保持する複数のキャッシュの障害の後に、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
前記障害の発生したキャッシュの復旧ログをマージし適用して資源の最新バージョンを再構築するステップをさらに含む、請求項1に記載の方法。 - 複数のキャッシュが1つ以上の共有されるディスクからの資源のダーティバージョンを保持するシステムにおいてデータを管理する方法であって、
前記複数のキャッシュのうち1つのキャッシュが、前記複数のキャッシュのうち別のキャッシュにある資源のダーティバージョンを要求するとき、前記資源のダーティバージョンが存在するキャッシュから、前記ダーティバージョンを、前記ダーティバージョンを要求するキャッシュに、前記ダーティバージョンを最初に永続的に記憶することなしに転送するステップと、
前記複数のキャッシュの各キャッシュに対して別々の復旧ログを維持するステップと、
前記複数のキャッシュのうち1つのキャッシュに障害が発生したとき、前記障害の発生したキャッシュを、前記障害の発生したキャッシュに関連付けられた復旧ログに基づいて、前記複数のキャッシュのうちの他のキャッシュの前記別々の復旧ログを検査することなしに、復旧させるステップとを含む、方法。 - 前記複数のキャッシュの各キャッシュは、複数のデータベースサーバの別々のデータベースサーバによって維持されるキャッシュである、請求項16に記載の方法。
- 前記ダーティバージョンが存在するキャッシュは第1のキャッシュであり、
前記第1のキャッシュ内の資源のダーティバージョンは資源の第1のコピーであり、
前記ダーティバージョンを要求するキャッシュは第2のキャッシュであり、
前記ダーティバージョンを転送するステップは、前記資源の第2のコピーを前記第2のキャッシュに転送することにより実行され、
前記方法はさらに、
前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にするステップと、
前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐステップとをさらに含む、請求項16に記載の方法。 - 複数のノードによって共有される資源を管理するための方法であって、
前記複数のノードのうち第1のノードの第1のキャッシュ内で前記資源を変更して前記資源の変更されたバージョンを作成するステップと、
前記第1のノードに障害が発生したときにどこで作業を開始するかを示す、前記第1のノードについてのチェックポイントを維持するステップと、
前記第1のキャッシュから永続的記憶装置に前記変更されたバージョンを最初に永続的に記憶することなしに、前記第1のキャッシュ内に前記変更されたバージョンの第1のコピーを保持する一方で、前記変更されたバージョンの第2のコピーを前記第1のキャッシュから前記複数のノードのうち第2のノードの第2のキャッシュに転送するステップと、
前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記チェックポイントを進めるステップとを含む、方法。 - 前記変更されたバージョンの前記第1のコピーまたはそのサクセサが永続的に記憶されるまで、前記第1のキャッシュ内に前記変更されたバージョンの少なくとも1つのコピーを保持するステップをさらに含む、請求項19に記載の方法。
- 前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記第1のノードで前記資源を開放するステップを含む、請求項19に記載の方法。
- 第1のキャッシュから第2のキャッシュへ資源を転送するための方法であって、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから前記第2のキャッシュへと転送するステップと、
前記資源の第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のコピーが前記第1のキャッシュ内で置換されることを防ぐステップとを含む、方法。 - 命令の1つ以上のシーケンスを搬送して第1のキャッシュから第2のキャッシュへ資源を転送するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するステップと、
資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するステップとを実行する、コンピュータ読出可能媒体。 - 前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にするステップと、
前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐステップとを実行するための命令のシーケンスをさらに含む、請求項23に記載のコンピュータ読出可能媒体。 - 前記第2のコピーを前記第2のキャッシュに転送した後に前記第1のコピーの開放の許可の要求を送信するステップと、
前記要求に応答して、前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステップと、
前記サクセサが永続的に記憶されたことに応答して、前記第1のコピーが置換可能であることを示すメッセージを送信するステップとを実行するための命令のシーケンスをさらに含む、請求項23に記載のコンピュータ読出可能媒体。 - 前記第1のコピーの開放の許可の要求を送信するステップは送信側プロセスによって実行され、
前記第1のコピーまたはそのサクセサが永続的に記憶されるようにするステップは、前記送信側プロセス以外のプロセスが前記資源の前記第1のコピーのサクセサを記憶するようにするステップを含む、請求項25に記載のコンピュータ読出可能媒体。 - 前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するステップは、
前記第1のコピーを永続的に記憶しようとする前に、前記資源の永続的に記憶されたコピーは前記第1のコピーより最近のものであるかどうか決定するステップと、
もし前記永続的に記憶されたコピーが前記第1のコピーより最近のものであれば、前記第1のコピーを永続的に記憶することなしに、前記第1のコピーを開放するステップと、
もし前記永続的に記憶されたコピーが前記第1のコピーよりも最近のものでなければ、前記第1のコピーを永続的に記憶するステップとを含む、請求項23に記載のコンピュータ読出可能媒体。 - 変更許可を、前記第1のキャッシュに関連付けられる送信側プロセスから前記第2のキャッシュに関連付けられる受信側プロセスに、前記資源の前記第2のコピーとともに転送するステップを実行するための命令のシーケンスをさらに含む、請求項24に記載のコンピュータ読出可能媒体。
- 前記資源にアクセスする許可はマスタによって管理され、
前記変更許可を受信側プロセスに転送するステップは、前記変更許可の前記受信側プロセスへの転送についての確認を前記マスタから受信するより前に実行される、請求項28に記載のコンピュータ読出可能媒体。 - 変更許可を、前記第1のキャッシュに関連付けられる送信側プロセスから前記第2のキャッシュに関連付けられる受信側プロセスに、前記資源の第2のコピーとともに転送するステップを実行するための命令のシーケンスをさらに含み、
前記資源にアクセスする許可はマスタによって管理され、
前記変更許可を前記受信側プロセスに転送するステップは、前記変更許可の前記受信側プロセスへの転送の確認を前記マスタが受信するより前に実行される、請求項23に記載のコンピュータ読出可能媒体。 - 前記第2のキャッシュに関連付けられる受信側プロセスが前記資源の要求を前記資源のマスタに送信するステップと、
前記受信側プロセスからの前記要求に応答して、前記資源の前記マスタが前記第1のキャッシュに関連付けられる送信側プロセスにメッセージを送信するステップと、
前記送信側プロセスが前記マスタからの前記メッセージに応答して、前記第2のコピーを前記受信側プロセスに転送するステップとを実行するための命令のシーケンスをさらに含む、請求項23に記載のコンピュータ読出可能媒体。 - 前記第2のコピーを前記第2のキャッシュに転送するステップの後に、
前記第1のキャッシュに関連付けられる送信側プロセスが、ロックマネージャにロックを要求するステップを実行するための命令のシーケンスをさらに含み、前記ロックは前記資源をディスクに書込む許可は与えるが前記資源を変更する許可は与えず、さらに、
前記ロックマネージャが、前記第1のコピーと少なくとも同じほど最近である前記資源のバージョンを有するプロセスを選択するステップと、
前記ロックマネージャが、前記ロックを前記選択されたプロセスに与えるステップと、
前記選択されたプロセスが、前記資源の前記バージョンをディスクに書込むステップとを実行するための命令のシーケンスを含む、請求項23に記載のコンピュータ読出可能媒体。 - 前記資源の前記バージョンがディスクに書込まれるのに応答して、前記ロックマネージャが前記バージョンよりも古い前記資源のすべてのバージョンが開放されるようにするステップを実行するための命令のシーケンスをさらに含む、請求項32に記載のコンピュータ読出可能媒体。
- 前記資源のダーティコピーを保持するキャッシュの障害の後に、
前記障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、
資源の最新パストイメージをディスクに書込むステップと、
資源の以前のすべてのパストイメージを開放するステップと、
前記障害の発生したキャッシュの復旧ログを適用して資源の最新バージョンを再構築するステップとを実行するための命令のシーケンスをさらに含む、請求項23に記載のコンピュータ読出可能媒体。 - もし前記障害の発生したキャッシュが資源の最新バージョンを保持していなかったならば、
資源の最新バージョンをディスクに書込むステップと、
資源のすべてのパストイメージを開放するステップとを実行するための命令のシーケンスをさらに含む、請求項34に記載のコンピュータ読出可能媒体。 - 前記資源のダーティバージョンを保持する複数のキャッシュの障害の後に、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
前記障害の発生したキャッシュの復旧ログをマージし適用して資源の最新バージョンを再構築するステップとを実行するための命令のシーケンスをさらに含む、請求項23に記載のコンピュータ読出可能媒体。 - 前記第1のキャッシュ内に資源の第1のコピーを保持するための命令は、第1のデータベースサーバによって維持される第1のキャッシュ内に資源の第1のコピーを保持するための命令を含み、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するための命令は、前記第1のデータベースサーバによって維持される前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに資源の第2のコピーを前記第1のデータベースサーバによって維持される第1のキャッシュから第2のデータベースサーバによって維持される第2のキャッシュへと転送するための命令を含み、
資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するための命令は、資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のデータベースサーバによって維持される前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するための命令を含む、請求項23に記載のコンピュータ読出可能媒体。 - 命令を搬送し、複数のキャッシュが1つ以上の共有されるディスクからの資源のダーティバージョンを保持するシステムにおいてデータを管理するためのコンピュータ読出可能媒体であって、前記命令は、
前記複数のキャッシュのうち1つのキャッシュが、前記複数のキャッシュのうち別のキャッシュにある資源のダーティバージョンを要求するとき、前記資源のダーティバージョンが存在するキャッシュから、前記ダーティバージョンを、前記ダーティバージョンを要求するキャッシュに、前記ダーティバージョンを最初に永続的に記憶することなしに転送するステップと、
前記複数のキャッシュの各キャッシュに対して別々の復旧ログを維持するステップと、
前記複数のキャッシュのうち1つのキャッシュに障害が発生したとき、前記障害の発生したキャッシュを、前記障害の発生したキャッシュに関連付けられた復旧ログに基づいて、前記複数のキャッシュのうちの他のキャッシュの前記別々の復旧ログを検査することなしに、復旧させるステップとを実行するための命令を含む、コンピュータ読出可能媒体。 - 前記複数のキャッシュの各キャッシュは、複数のデータベースサーバの別々のデータベースサーバによって維持されるキャッシュである、請求項38に記載のコンピュータ読出可能媒体。
- 前記ダーティバージョンが存在するキャッシュは第1のキャッシュであり、
前記第1のキャッシュ内の資源のダーティバージョンは資源の第1のコピーであり、
前記ダーティバージョンを要求するキャッシュは第2のキャッシュであり、
前記ダーティバージョンを転送するステップは、前記資源の第2のコピーを前記第2のキャッシュに転送することにより実行され、
前記コンピュータ読出可能媒体はさらに、
前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にするステップと、
前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐステップとを実行するための命令をさらに含む、請求項38に記載のコンピュータ読出可能媒体。 - 命令の1つ以上のシーケンスを搬送して複数のノードが共有する資源を管理するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記複数のノードのうち第1のノードの第1のキャッシュ内で前記資源を変更して前記資源の変更されたバージョンを作成するステップと、
前記第1のノードに障害が発生したときにどこで作業を開始するかを示す、前記第1のノードについてのチェックポイントを維持するステップと、
前記第1のキャッシュから永続的記憶装置に前記変更されたバージョンを最初に永続的に記憶することなしに、前記第1のキャッシュ内に前記変更されたバージョンの第1のコピーを保持する一方で、前記変更されたバージョンの第2のコピーを前記第1のキャッシュから前記複数のノードのうち第2のノードの第2のキャッシュに転送するステップと、
前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記チェックポイントを進めるステップと実行する、コンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記変更されたバージョンの前記第1のコピーまたはそのサクセサが永続的に記憶されるまで、前記第1のキャッシュ内に前記変更されたバージョンの少なくとも1つのコピーを保持するステップを実行するようにする命令をさらに含む、請求項41に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記第1のノードで前記資源を開放するステップを実行するようにする命令をさらに含む、請求項41に記載のコンピュータ読出可能媒体。 - 命令の1つ以上のシーケンスを搬送して第1のキャッシュから第2のキャッシュへ資源を転送するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから前記第2のキャッシュへと転送するステップと、
前記資源の第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のコピーが前記第1のキャッシュ内で置換されることを防ぐステップとを実行する、コンピュータ読出可能媒体。 - 資源を転送するためのシステムであって、
第1のキャッシュを有するノードを含み、前記第1のキャッシュは、1つ以上の他のノードに含まれる1つ以上の他のキャッシュのうち第2のキャッシュに通信可能に結合され、
前記ノードは、前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを第1のキャッシュから第2のキャッシュへと転送するように構成され、
前記ノードは、資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のキャッシュ内に資源の少なくとも1つのコピーを保持するように構成される、システム。 - 前記ノードは第1のデータベースサーバであり、前記1つ以上の他のノードのうち少なくとも1つのノードは前記第2のキャッシュを含む第2のデータベースサーバである、請求項45に記載のシステム。
- 前記ノードは、前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にするように構成され、
前記ノードは、前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐように構成される、請求項45に記載のシステム。 - 前記ノードは、前記第2のコピーを前記第2のキャッシュに転送した後に、前記第1のコピーの開放の許可の要求をマスタノードに送信するように構成され、
前記ノードは、前記要求に応答して、前記マスタノードが前記第1のコピーまたはそのサクセサが永続的に記憶されるようにした後に、前記第1のコピーが開放可能であることを示すメッセージを前記マスタノードから受信するように構成される、請求項45に記載のシステム。 - 前記ノードは、前記第1のコピーの開放の許可の要求を送信するように構成される送信側プロセスを含み、
前記送信側プロセス以外のプロセスは前記資源の前記第1のコピーのサクセサを記憶する、請求項48に記載のシステム。 - 前記ノードは、前記第1のキャッシュ内に資源の少なくとも1つのコピーを、
前記第1のコピーを永続的に記憶しようとする前に、前記資源の永続的に記憶されたコピーが前記第1のコピーより最近のものであるかどうか決定し、
もし前記永続的に記憶されたコピーが前記第1のコピーより最近のものであれば、前記第1のコピーを永続的に記憶することなしに前記第1のコピーを開放し、
もし前記永続的に記憶されたコピーが前記第1のコピーより最近のものでなければ、前記第1のコピーを永続的に記憶することにより、保持するように構成される、請求項45に記載のシステム。 - 前記ノードは、変更許可を、第1のキャッシュに関連付けられる送信側プロセスから第2のキャッシュに関連付けられる受信側プロセスに、前記資源の前記第2のコピーとともに転送するように構成される、請求項47に記載のシステム。
- 前記資源にアクセスする許可はマスタノードによって管理され、
前記ノードは、前記変更許可の前記受信側プロセスへの転送についての確認を前記第1のノードが前記マスタノードから受信するより前に、前記変更許可を受信側プロセスに転送するように構成される、請求項51に記載のシステム。 - 前記ノードは、変更許可を、前記第1のキャッシュに関連付けられる送信側プロセスから前記第2のキャッシュに関連付けられる受信側プロセスに、前記資源の前記第2のコピーとともに転送するように構成され、
前記資源へのアクセス許可はマスタによって管理され、
前記変更許可の前記受信側プロセスへの転送は、前記変更許可の前記受信側プロセスへの転送の確認を前記マスタが受信するより前に実行される、請求項45に記載のシステム。 - 前記ノードは前記第1のキャッシュに関連付けられる送信側プロセスを含み、前記送信側プロセスは、前記第2のキャッシュに関連付けられる受信側プロセスから前記資源の要求を受信したマスタノードからメッセージを受信するように構成され、
前記送信側プロセスは、前記マスタノードからの前記メッセージに応答して、前記第2のコピーを前記受信側プロセスに転送する、請求項45に記載のシステム。 - 前記ノードは、前記第2のコピーが前記第2のキャッシュに転送された後にロックマネージャにロックを要求するように構成され、前記ロックは前記資源をディスクに書込む許可は与えるが前記資源を変更する許可は与えず、
前記ロックマネージャは、前記第1のコピーと少なくとも同じほど最近である前記資源のバージョンを有するプロセスを選択し前記ロックを前記選択されたプロセスに与えて、前記選択されたプロセスが前記資源の前記バージョンをディスクに書込むようにする、請求項45に記載のシステム。 - 前記資源の前記バージョンがディスクに書込まれるのに応答して、前記ロックマネージャが、前記バージョンよりも古い前記資源のすべてのバージョンが開放されるようにする、請求項55に記載のシステム。
- 前記資源のダーティコピーを保持するキャッシュの障害の後に、障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定するように構成されるマスタノードを含み、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、マスタノードは、資源の最新パストイメージをディスクに書込み、資源の以前のすべてのパストイメージを開放し、前記障害の発生したキャッシュの復旧ログを適用して資源の最新バージョンを再構築するように構成される、請求項45に記載のシステム。 - 前記マスタノードは、もし前記障害の発生したキャッシュが資源の最新バージョンを保持していなかったならば、資源の最新バージョンをディスクに書込み資源のすべてのパストイメージを開放するように構成される、請求項57に記載のシステム。
- 前記資源のダーティバージョンを保持する複数のキャッシュの障害の後に、前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定し、もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、前記障害の発生したキャッシュの復旧ログをマージし適用して資源の最新バージョンを再構築するように構成されるマスタノードをさらに含む、請求項45に記載のシステム。
- 1つ以上の共有されるディスクからの資源のダーティバージョンを保持する複数のキャッシュの間でデータを管理するためのシステムであって、
前記複数のキャッシュのうち1つのキャッシュを含むノードを含み、前記複数のキャッシュの各キャッシュに対して別々の復旧ログが維持され、前記複数のキャッシュのうち別のキャッシュが前記キャッシュ内に存在する資源のダーティバージョンを要求し、前記ノードは、前記ダーティバージョンを永続的に記憶することなしに前記ダーティバージョンを他のキャッシュに転送するように構成され、前記システムはさらに、
前記複数のキャッシュのうち障害の発生したキャッシュを、前記障害の発生したキャッシュに関連付けられた復旧ログに基づいて、前記複数のキャッシュのうち他のキャッシュの前記別々の復旧ログを検査することなしに、復旧するように構成されたマスタノードを含む、システム。 - 前記複数のキャッシュの各キャッシュは、複数のデータベースサーバの別々のデータベースサーバによって維持されるキャッシュである、請求項60に記載のシステム。
- 前記ダーティバージョンが存在するキャッシュは第1のキャッシュであり、
前記第1のキャッシュ内の資源のダーティバージョンは資源の第1のコピーであり、
前記ダーティバージョンを要求するキャッシュは第2のキャッシュであり、
ノードは、資源の第2のコピーを第2のキャッシュに転送することにより資源のダーティバージョンを転送するように構成され、
第1のノードは、前記第2のコピーを前記第2のキャッシュに転送するよりも前に前記資源の前記第1のコピーが前記第1のキャッシュ内で変更されることを可能にし、
前記第1のノードは、前記第2のコピーを前記第2のキャッシュに転送した後に前記資源の前記第1のコピーが変更されることを防ぐように構成される、請求項60に記載のシステム。 - 複数のノードによって共有される資源を管理するためのシステムであって、
第1のキャッシュを有するノードを含み、前記第1のキャッシュは、1つ以上の他のノードに含まれる1つ以上の他のキャッシュのうちの第2のキャッシュに通信可能に結合され、
前記ノードは、
前記ノードの第1のキャッシュ内で前記資源を変更して前記資源の変更されたバージョンを作成し、
前記ノードに障害が発生したときにどこで作業を開始するかを示す、前記ノードについてのチェックポイントを維持し、
前記第1のキャッシュから永続的記憶装置に前記変更されたバージョンを最初に永続的に記憶することなしに、前記第1のキャッシュ内に前記変更されたバージョンの第1のコピーを保持する一方で、前記変更されたバージョンの第2のコピーを前記第1のキャッシュから第2のキャッシュに転送し、
前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記チェックポイントを進めるように構成される、システム。 - 前記ノードはさらに、
前記変更されたバージョンの前記第1のコピーまたはそのサクセサが永続的に記憶されるまで、前記第1のキャッシュ内に前記変更されたバージョンの少なくとも1つのコピーを保持するように構成される、請求項63に記載のシステム。 - 前記ノードはさらに、
前記複数のノードのうち別のノードが、前記変更されたバージョンと少なくとも同じほど最近のものである前記資源のバージョンを永続的に記憶したことが示されることに応答して、前記第1のノードで前記資源を開放するように構成される、請求項63に記載のシステム。 - 資源を転送するためのシステムであって、
第1のキャッシュを有するノードを含み、前記第1のキャッシュは、1つ以上の他のノードに含まれる1つ以上の他のキャッシュのうち第2のキャッシュに通信可能に結合され、
前記ノードは、前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから前記第2のキャッシュへと転送するように構成され、
前記ノードは、資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第1のコピーが前記第1のキャッシュ内で置換されることを防ぐように構成される、システム。 - 資源のダーティバージョンを保持する1つ以上のキャッシュの障害の後に前記資源の復旧を管理するための方法であって、
障害の発生しなかった複数のキャッシュの各キャッシュにおいて資源のどのバージョンが保持されているのかを決定するステップと、
前記複数のキャッシュから、前記障害の発生しなかった複数のキャッシュ内の資源の他のいずれかのバージョンと少なくとも同じほど最近である資源の特定のバージョンを識別するステップと、
前記資源の特定のバージョンがディスクに書込まれるようにするステップとを含む、方法。 - 前記資源の特定のバージョンは資源の現在のコピーである、請求項67に記載の方法。
- 前記資源の特定のバージョンは資源のパストイメージコピーである、請求項67に記載の方法。
- 前記資源のパストイメージコピーは、資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項69に記載の方法。
- 前記資源のパストイメージコピーは、前記障害の発生しなかった複数のキャッシュに現在保持されている資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項70に記載の方法。
- 資源の最新バージョンがディスクに書込まれた後、前記複数のキャッシュが資源のパストイメージを開放するようにするステップをさらに含む、請求項67に記載の方法。
- 前記決定するステップ、識別するステップおよびディスクに書込まれるようにするステップは、ロックマネージャによって実行される、請求項67に記載の方法。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の前に前記資源のマスタに指定された、生き残ったマスタである、請求項73に記載の方法。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の後に前記資源のマスタに指定された、新しいマスタである、請求項73に記載の方法。
- 資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるための方法であって、
前記障害の発生した複数のキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生した複数のキャッシュのいずれかが資源の最新バージョンを保持していたならば、
障害の発生したキャッシュのサブセットを決定するステップを含み、前記障害の発生したキャッシュのサブセットは、永続的に記憶された資源のバージョンに続いて前記資源を更新した、障害の発生したキャッシュのみを含み、さらに、
前記障害の発生したキャッシュのサブセットの復旧ログをマージし適用して資源の最新バージョンを再構築するステップを含む、方法。 - 命令の1つ以上のシーケンスを搬送して資源のダーティバージョンを保持する1つ以上のキャッシュの障害の後に前記資源の復旧を管理するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
障害の発生しなかった複数のキャッシュの各キャッシュにおいて資源のどのバージョンが保持されているのかを決定するステップと、
前記複数のキャッシュから、前記障害の発生しなかった複数のキャッシュ内の資源の他のいずれかのバージョンと少なくとも同じほど最近である資源の特定のバージョンを識別するステップと、
前記資源の特定のバージョンがディスクに書込まれるようにするステップとを実行する、コンピュータ読出可能媒体。 - 前記資源の特定のバージョンは資源の現在のコピーである、請求項77に記載のコンピュータ読出可能媒体。
- 前記資源の特定のバージョンは資源のパストイメージコピーである、請求項77に記載のコンピュータ読出可能媒体。
- 前記資源のパストイメージコピーは、資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項79に記載のコンピュータ読出可能媒体。
- 前記資源のパストイメージコピーは、前記障害が発生しなかった複数のキャッシュに現在保持されている資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項80に記載のコンピュータ読出可能媒体。
- 1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
資源の最新バージョンがディスクに書込まれた後、前記複数のキャッシュが資源のパストイメージを開放するようにするステップを実行するようにする命令をさらに含む、請求項77に記載のコンピュータ読出可能媒体。 - 前記命令の1つ以上のシーケンスが実行されると、前記1つ以上のプロセッサは、ロックマネージャに、前記決定するステップ、識別するステップおよび書込まれるようにするステップを実行させる、請求項77に記載のコンピュータ読出可能媒体。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の前に前記資源のマスタに指定された、生き残ったマスタである、請求項83に記載のコンピュータ読出可能媒体。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の後に前記資源のマスタに指定された、新しいマスタである、請求項83に記載のコンピュータ読出可能媒体。
- 命令の1つ以上のシーケンスを搬送して資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるためコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップを実行し、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
障害の発生したキャッシュのサブセットを決定するステップを実行し、前記障害の発生したキャッシュのサブセットは、永続的に記憶された資源のバージョンに続いて前記資源を更新した、障害の発生したキャッシュのみを含み、さらに、
前記障害の発生したキャッシュのサブセットの復旧ログをマージし適用して資源の最新バージョンを再構築するステップを実行する、コンピュータ読出可能媒体。 - 資源のダーティバージョンを保持する1つ以上のキャッシュの障害の後に前記資源の復旧を管理するための装置であって、前記装置は、
障害の発生しなかった複数のキャッシュの各キャッシュにおいて資源のどのバージョンが保持されているのかを決定し、
前記複数のキャッシュから、前記障害の発生しなかった複数のキャッシュ内の資源の他のいずれかのバージョンと少なくとも同じほど最近である資源の特定のバージョンを識別し、
前記資源の特定のバージョンがディスクに書込まれるようにするように構成される、装置。 - 前記資源の特定のバージョンは資源の現在のコピーである、請求項87に記載の装置。
- 前記資源の特定のバージョンは資源のパストイメージコピーである、請求項87に記載の装置。
- 前記資源のパストイメージコピーは、資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項89に記載の装置。
- 前記資源のパストイメージコピーは、前記障害の発生しなかった複数のキャッシュに現在保持されている資源の他のいずれかのパストイメージコピーと少なくとも同じほど最近のものである、請求項90に記載の装置。
- 前記装置はさらに、資源の最新バージョンがディスクに書込まれた後、前記複数のキャッシュが資源のパストイメージを開放するように構成される、請求項87に記載の装置。
- 前記装置はロックマネージャである、請求項87に記載の装置。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の前に前記資源のマスタに指定された、生き残ったマスタである、請求項93に記載の装置。
- 前記ロックマネージャは、前記1つ以上のキャッシュの障害の後に前記資源のマスタに指定された、新しいマスタである、請求項93に記載の装置。
- 資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるための装置であって、前記装置は、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定し、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
障害の発生したキャッシュのサブセットを決定し、前記障害の発生したキャッシュのサブセットは、永続的に記憶された資源のバージョンに続いて前記資源を更新した、障害の発生したキャッシュのみを含み、さらに、
前記障害の発生したキャッシュのサブセットの復旧ログをマージし適用して資源の最新バージョンを再構築するように構成される、装置。 - 資源のダーティコピーを保持する第1のキャッシュの障害の後に前記資源を復旧させるための方法であって、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送するステップと、
前記障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、前記障害の発生したキャッシュの復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するステップとを含む、方法。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項97に記載の方法。
- 前記資源の以前のバージョンは第3のキャッシュ内の資源のパストイメージである、請求項97に記載の方法。
- 前記第3のキャッシュ内の資源の前記パストイメージは、障害の発生しなかった複数のキャッシュのうちいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項99に記載の方法。
- 前記障害の発生したキャッシュの復旧ログは、永続的記憶装置に前記資源の以前のバージョンを最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項99に記載の方法。
- 資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるための方法であって、
第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送するステップと、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
前記障害の発生したキャッシュの復旧ログをマージするステップと、
前記マージされた復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するステップとを含む、方法。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項102に記載の方法。
- 前記資源の以前のバージョンは、前記障害の発生した複数のキャッシュに含まれない第3のキャッシュ内の資源のパストイメージである、請求項102に記載の方法。
- 前記第3のキャッシュ内の資源の前記パストイメージは、前記障害の発生した複数のキャッシュに含まれないいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項104に記載の方法。
- 前記マージされた復旧ログは、永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項104に記載の方法。
- 命令の1つ以上のシーケンスを搬送して資源のダーティコピーを保持する第1のキャッシュの障害の後に前記資源を復旧させるためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送するステップと、
前記障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、前記障害の発生したキャッシュの復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するステップとを実行する、コンピュータ読出可能媒体。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項107に記載のコンピュータ読出可能媒体。
- 前記資源の以前のバージョンは第3のキャッシュ内の資源のパストイメージである、請求項107に記載のコンピュータ読出可能媒体。
- 前記第3のキャッシュ内の資源の前記パストイメージは、障害の発生しなかった複数のキャッシュのうちいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項109に記載のコンピュータ読出可能媒体。
- 前記障害の発生したキャッシュの復旧ログは、永続的記憶装置に前記資源の以前のバージョンを最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項109に記載のコンピュータ読出可能媒体。
- 命令の1つ以上のシーケンスを搬送し、資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送するステップと、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定するステップと、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
前記障害の発生したキャッシュの復旧ログをマージするステップと、
前記マージされた復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するステップとを実行する、コンピュータ読出可能媒体。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項112に記載のコンピュータ読出可能媒体。
- 前記資源の以前のバージョンは、前記障害の発生した複数のキャッシュに含まれない第3のキャッシュ内の資源のパストイメージである、請求項112に記載のコンピュータ読出可能媒体。
- 前記第3のキャッシュ内の資源の前記パストイメージは、前記障害の発生した複数のキャッシュに含まれないいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項114に記載のコンピュータ読出可能媒体。
- 前記マージされた復旧ログは、永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項114に記載のコンピュータ読出可能媒体。
- 資源のダーティコピーを保持する第1のキャッシュの障害の後に前記資源を復旧させるための装置であって、前記装置は、
前記第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送し、
前記障害の発生したキャッシュが資源の最新バージョンを保持していたかどうかを決定し、
もし前記障害の発生したキャッシュが資源の最新バージョンを保持していたならば、前記障害の発生したキャッシュの復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するように構成される、装置。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項117に記載の装置。
- 前記資源の以前のバージョンは第3のキャッシュ内の資源のパストイメージである、請求項117に記載の装置。
- 前記第2のキャッシュ内の資源の前記パストイメージは、障害の発生しなかった複数のキャッシュのうちいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項119記載の装置。
- 前記障害の発生したキャッシュの復旧ログは、永続的記憶装置に前記資源の以前のバージョンを最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項119に記載の装置。
- 資源のダーティバージョンを保持する複数のキャッシュの障害の後に前記資源を復旧させるための装置であって、前記装置は、
第1のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第1のキャッシュ内に資源の第1のコピーを保持する一方で資源の第2のコピーを前記第1のキャッシュから第2のキャッシュへと転送し、
前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたかどうかを決定し、
もし前記障害の発生したキャッシュのいずれかが資源の最新バージョンを保持していたならば、
前記障害の発生したキャッシュの復旧ログをマージし、
前記マージされた復旧ログを資源の以前のバージョンに適用して資源の最新バージョンを再構築するように構成される、装置。 - 前記資源の以前のバージョンはディスク上に永続的に記憶される、請求項122に記載の装置。
- 前記資源の以前のバージョンは、前記障害の発生した複数のキャッシュに含まれない第3のキャッシュ内の資源のパストイメージである、請求項122に記載の装置。
- 前記第3のキャッシュ内の資源の前記パストイメージは、前記障害の発生した複数のキャッシュに含まれないいずれかのキャッシュ内に現在保持されている資源の他のいずれかのパストイメージと少なくとも同じほど最新のものである、請求項124に記載の装置。
- 前記マージされた復旧ログは、永続的記憶装置に前記資源を最初に永続的に記憶することなしに、前記第3のキャッシュ内の資源の以前のバージョンに適用される、請求項124に記載の装置。
- 複数のノードが使用する資源を管理するための方法であって、
前記複数のノードのうち第1のノードから資源の要求を受信するステップを含み、前記第1のノードは第1のキャッシュを含み、さらに、
前記複数のノードのうち第2のノードを識別するステップを含み、前記第2のノードは資源の第1のコピーを有する第2のキャッシュを含み、さらに、
前記第2のノードが、前記第2のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、資源の第2のコピーを前記第2のキャッシュから前記第1のキャッシュに転送するようにするステップと、
資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第2のキャッシュ内に資源の少なくとも1つのコピーが保持されるようにするステップとを含む、方法。 - 前記第1のノードは第1のデータベースサーバであり、前記第2のノードは第2のデータベースサーバである、請求項127に記載の方法。
- 前記複数のノードのうち第3のノードからさらに許可の要求を受信するステップをさらに含み、前記第3のノードは第3のキャッシュ内において資源の第3のコピーを含み、前記許可は前記第3のノードが前記資源をディスクに書込むことを許可するが前記第3のノードが前記資源を変更することは許可せず、さらに、
前記複数のノードのうち第4のノードを識別するステップを含み、前記第4のノードは第4のキャッシュ内において資源の第4のコピーを含み、前記第4のコピーは前記第3のコピーと少なくとも同じほど最近のものであり、さらに、
前記第4のノードが前記第4のコピーをディスクに書込むようにするステップを含む、請求項127に記載の方法。 - 前記第4のノードが前記第4のコピーをディスクに書込むことに応答して、前記第4のコピーよりも古い前記資源のすべてのコピーが開放されるようにするステップをさらに含む、請求項129に記載の方法。
- 前記第4のノードは前記第3のノードである、請求項129に記載の方法。
- 前記第4のノードは前記第3のノードでない、請求項129に記載の方法。
- 前記資源の前記第4のコピーは資源のパストイメージである、請求項129に記載の方法。
- 前記資源のパストイメージは、前記複数のノードが現在保持している資源の他のいずれかのパストイメージと少なくとも同じほど最近のものである、請求項133に記載の方法。
- 前記資源の前記第4のコピーは資源のカレントバージョンである、請求項129に記載の方法。
- 前記第4のノードが前記第4のコピーをディスクに書込むようにするステップは、
前記第4のノードに、前記第4のノードが前記第4のコピーをディスクに書込むことを許可するさらなる許可を与えるステップを含み、前記さらなる許可は前記第4のノードが前記第4のコピーを変更することを許可しない、請求項129に記載の方法。 - 前記第4のノードに与えられる前記さらなる許可は、前記第4のノードが前記第4のコピーをディスクに書込むことを許可する書込ロックであり、前記書込ロックは、前記第4のノードが前記第4のコピーを変更することは許可しない、請求項136に記載の方法。
- 前記第4のノードに与えられる前記さらなる許可は、前記第4のノードが前記第4のコピーをディスクに書込むことを許可する書込トークンであり、前記書込トークンは、前記第4のノードが前記第4のコピーを変更することは許可しない、請求項136に記載の方法。
- 前記第4のノードが前記第4のコピーをディスクに書込むようにするステップは、
状態を前記第4のコピーに関連付けるステップを含み、前記状態は前記第4のノードが前記第4のコピーをディスクに書込むことを許可する、請求項129に記載の方法。 - 前記要求を受信する前に、前記第2のノードに、前記第2のノードが前記第1のコピーを変更することを許可する第1の許可を与えるステップをさらに含み、前記第1の許可は前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、さらに、
前記第2のノードが前記第2のコピーを前記第1のキャッシュに転送するようにする前に、前記第2のノードに、前記第2のノードが前記第2のコピーを保持することを要求する第2の許可を与えるステップを含み、前記第2の許可は前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項127に記載の方法。 - 前記第2のノードに与えられる前記第1の許可は、前記第2のノードが前記第1のコピーを変更することを許可する変更ロックであり、
前記変更ロックは前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、
前記第2の許可は前記第2のノードが前記第2のコピーを保持することを要求する保持ロックであり、
前記保持ロックは前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項140に記載の方法。 - 前記第2のノードに与えられる前記第1の許可は、前記第2のノードが前記第1のコピーを変更することを許可する変更トークンであり、
前記変更トークンは前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、
前記第2の許可は前記第2のノードが前記第2のコピーを保持することを要求する保持トークンであり、
前記保持トークンは前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項140に記載の方法。 - 前記要求を受信する前に、前記第1のコピーを、前記第2のノードが前記第1のコピーを変更することを許可しかつ前記第2のノードが前記第1のコピーをディスクに書込むことを許可する第1の状態と関連付けるステップと、
前記第2のノードが前記第2のコピーを前記第1のキャッシュに転送するようにする前に、前記第1のコピーを、前記第2のノードが前記第1のコピーをディスクに書込むことを許可する第2の状態と関連付けるステップとをさらに含み、前記第2の状態は前記第2のノードが前記第1のコピーを変更または上書きすることを許可しない、請求項127に記載の方法。 - 前記第1の状態は、前記第2のノードが前記第1のコピーを変更することを許可しかつ前記第2のノードが前記第1のコピーをディスクに書込むことを許可する現在の状態であり、
前記第2の状態は、前記第2のノードが前記第1のコピーをディスクに書込むことを許可するパストイメージ書込可能状態であり、前記パストイメージ書込可能状態は前記第2のノードが前記第1のコピーを変更または上書きすることを許可しない、請求項143に記載の方法。 - 前記第2のノードが変更許可を前記第2のノードから前記第1のノードに転送するようにするステップをさらに含む、請求項127に記載の方法。
- 前記第2のノードから、前記第2のノードが前記変更許可を前記第1のノードに転送したというメッセージを受信するステップをさらに含む、請求項145に記載の方法。
- 前記第2のノードが前記変更許可を前記第1のノードに転送したという前記メッセージは、前記第2のノードが前記変更許可を前記第1のノードに転送した後に受信される、請求項146に記載の方法。
- 前記第1のノードが前記変更許可を保持していることを示すデータを記憶するステップをさらに含む、請求項146に記載の方法。
- 複数のノードの共有資源を管理するための方法であって、
前記共有資源に変更許可を与えるのとは別に、前記共有資源に書込許可を与えるステップを含み、
前記書込許可を保持することは、前記書込許可を保持するノードが、ディスクに、前記書込許可を保持するノードのキャッシュに保持される共有資源のコピーを書込むことを許可し、前記書込許可を保持することは、前記書込許可を保持するノードが、前記書込許可を保持するノードのキャッシュに保持される共有資源のコピーを変更することは許可せず、
前記変更許可を保持することは、前記変更許可を保持するノードが、前記変更許可を保持するノードのキャッシュに保持される共有資源のコピーを変更することを許可し、前記変更許可を保持することは、前記変更許可を保持するノードが、前記変更許可を保持するノードのキャッシュに保持される共有資源のコピーを書込むことは許可しない、方法。 - 前記共有資源についての前記書込許可は前記複数のノードのうち1つのノードのみに時を選ばず与えられ、前記共有資源についての前記変更許可は前記複数のノードのうち1つのノードのみに時を選ばず与えられる、請求項149に記載の方法。
- 前記書込許可および前記変更許可は前記複数のノードのうち異なるノードによって保持される、請求項149に記載の方法。
- 前記書込許可および前記変更許可は前記複数のノードのうち同一のノードによって保持される、請求項149に記載の方法。
- 前記共有資源に前記書込許可を与えるのとは別にかつ前記共有資源に前記変更許可を与えるのとは別に、前記共有資源に保持許可を与えるステップをさらに含み、
前記保持許可を保持することは、前記保持許可を保持するノードが、前記保持許可を保持するノードのキャッシュに保持される資源のコピーを保持することを要求する、請求項149に記載の方法。 - 前記複数のノードのうち1組のノードの各ノードに対し、前記共有資源に前記書込許可を与えるのとは別にかつ前記共有資源に前記変更許可を与えるのとは別に、前記共有資源に保持許可を与えるステップをさらに含み、
前記保持許可を保持することは、前記保持許可を保持する1組のノードの各ノードが、前記保持許可を保持する1組のノードの各ノードのキャッシュに保持される共有資源のコピーを保持することを要求する、請求項149に記載の方法。 - 前記保持許可を保持することは、前記保持許可を保持するノードが、前記保持許可を保持するノードのキャッシュに保持される共有資源のコピーまたはそのサクセサが永続的に記憶されるまで、前記保持許可を保持するノードのキャッシュに保持される共有資源のコピーを保持することを要求する、請求項153に記載の方法。
- 命令の1つ以上のシーケンスを搬送して複数のノードが使用する資源を管理するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記複数のノードのうち第1のノードから資源の要求を受信するステップを実行し、前記第1のノードは第1のキャッシュを含み、さらに、
前記複数のノードのうち第2のノードを識別するステップを実行し、前記第2のノードは資源の第1のコピーを有する第2のキャッシュを含み、さらに、
前記第2のノードが、前記第2のキャッシュから永続的記憶装置に前記資源を最初に永続的に記憶することなしに、資源の第2のコピーを前記第2のキャッシュから前記第1のキャッシュに転送するようにするステップと、
資源の前記第1のコピーまたはそのサクセサが永続的に記憶されるまで前記第2のキャッシュ内に資源の少なくとも1つのコピーが保持されるようにするステップとを実行する、コンピュータ読出可能媒体。 - 前記第1のノードは第1のデータベースサーバであり、前記第2のノードは第2のデータベースサーバである、請求項156に記載のコンピュータ読出可能媒体。
- 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記複数のノードのうち第3のノードからさらに許可の要求を受信するステップを実行するようにする命令をさらに含み、前記第3のノードは第3のキャッシュ内において資源の第3のコピーを含み、前記許可は前記第3のノードが前記資源をディスクに書込むことを許可するが前記第3のノードが前記資源を変更することは許可せず、さらに、
前記複数のノードのうち第4のノードを識別するステップを実行するようにする命令を含み、前記第4のノードは第4のキャッシュ内において資源の第4のコピーを含み、前記第4のコピーは前記第3のコピーと少なくとも同じほど最近のものであり、さらに、
前記第4のノードが前記第4のコピーをディスクに書込むようにするステップを実行するようにする命令を含む、請求項156に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記第4のノードが前記第4のコピーをディスクに書込むことに応答して、前記第4のコピーよりも古い前記資源のすべてのコピーが開放されるようにするステップを実行するようにする命令をさらに含む、請求項158に記載のコンピュータ読出可能媒体。 - 前記第4のノードは前記第3のノードである、請求項158に記載のコンピュータ読出可能媒体。
- 前記第4のノードは前記第3のノードでない、請求項158に記載のコンピュータ読出可能媒体。
- 前記資源の前記第4のコピーは資源のパストイメージである、請求項158に記載のコンピュータ読出可能媒体。
- 前記資源のパストイメージは、前記複数のノードが現在保持している資源の他のいずれかのパストイメージと少なくとも同じほど最近のものである、請求項162に記載のコンピュータ読出可能媒体。
- 前記資源の前記第4のコピーは資源のカレントバージョンである、請求項158に記載のコンピュータ読出可能媒体。
- 前記第4のノードが前記第4のコピーをディスクに書込むようにするための命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記第4のノードに、前記第4のノードが前記第4のコピーをディスクに書込むことを許可するさらなる許可を与えるステップを実行するようにする命令を含み、前記さらなる許可は前記第4のノードが前記第4のコピーを変更することを許可しない、請求項158に記載のコンピュータ読出可能媒体。 - 前記第4のノードに与えられる前記さらなる許可は、前記第4のノードが前記第4のコピーをディスクに書込むことを許可する書込ロックであり、前記書込ロックは、前記第4のノードが前記第4のコピーを変更することは許可しない、請求項165に記載のコンピュータ読出可能媒体。
- 前記第4のノードに与えられる前記さらなる許可は、前記第4のノードが前記第4のコピーをディスクに書込むことを許可する書込トークンであり、前記書込トークンは、前記第4のノードが前記第4のコピーを変更することは許可しない、請求項165に記載のコンピュータ読出可能媒体。
- 前記第4のノードが前記第4のコピーをディスクに書込むようにするための命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
状態を前記第4のコピーに関連付けるステップを実行するようにする命令を含み、前記状態は前記第4のノードが前記第4のコピーをディスクに書込むことを許可する、請求項158に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記要求を受信する前に、前記第2のノードに、前記第2のノードが前記第1のコピーを変更することを許可する第1の許可を与えるステップを実行するようにする命令をさらに含み、前記第1の許可は前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、さらに、
前記第2のノードが前記第2のコピーを前記第1のキャッシュに転送するようにする前に、前記第2のノードに、前記第2のノードが前記第2のコピーを保持することを要求する第2の許可を与えるステップを実行するようにする命令を含み、前記第2の許可は前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項156に記載のコンピュータ読出可能媒体。 - 前記第2のノードに与えられる前記第1の許可は、前記第2のノードが前記第1のコピーを変更することを許可する変更ロックであり、
前記変更ロックは前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、
前記第2の許可は前記第2のノードが前記第2のコピーを保持することを要求する保持ロックであり、
前記保持ロックは前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項169に記載のコンピュータ読出可能媒体。 - 前記第2のノードに与えられる前記第1の許可は、前記第2のノードが前記第1のコピーを変更することを許可する変更トークンであり、
前記変更トークンは前記第2のノードが前記第1のコピーをディスクに書込むことは許可せず、
前記第2の許可は前記第2のノードが前記第2のコピーを保持することを要求する保持トークンであり、
前記保持トークンは前記第2のノードが前記第2のコピーを変更することを許可せずかつ前記第2のノードが前記第2のコピーをディスクに書込むことを許可しない、請求項169に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記要求を受信する前に、前記第1のコピーを、前記第2のノードが前記第1のコピーを変更することを許可しかつ前記第2のノードが前記第1のコピーをディスクに書込むことを許可する第1の状態と関連付けるステップと、
前記第2のノードが前記第2のコピーを前記第1のキャッシュに転送するようにする前に、前記第1のコピーを、前記第2のノードが前記第1のコピーをディスクに書込むことを許可する第2の状態と関連付けるステップとを実行するようにする命令をさらに含み、前記第2の状態は前記第2のノードが前記第1のコピーを変更または上書きすることを許可しない、請求項156に記載のコンピュータ読出可能媒体。 - 前記第1の状態は、前記第2のノードが前記第1のコピーを変更することを許可しかつ前記第2のノードが前記第1のコピーをディスクに書込むことを許可する現在の状態であり、
前記第2の状態は、前記第2のノードが前記第1のコピーをディスクに書込むことを許可するパストイメージ書込可能状態であり、前記パストイメージ書込可能状態は前記第2のノードが前記第1のコピーを変更または上書きすることを許可しない、請求項172に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記第2のノードが変更許可を前記第2のノードから前記第1のノードに転送するようにするステップを実行するようにする命令をさらに含む、請求項156に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記第2のノードから、前記第2のノードが前記変更許可を前記第1のノードに転送したというメッセージを受信するステップを実行するようにする命令をさらに含む、請求項174に記載のコンピュータ読出可能媒体。 - 前記第2のノードが前記変更許可を前記第1のノードに転送したという前記メッセージは、前記第2のノードが前記変更許可を前記第1のノードに転送した後に受信される、請求項175に記載のコンピュータ読出可能媒体。
- 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記第1のノードが前記変更許可を保持していることを示すデータを記憶するステップを実行するようにする命令をさらに含む、請求項175に記載のコンピュータ読出可能媒体。 - 命令の1つ以上のシーケンスを搬送して複数のノードの共有資源を管理するためのコンピュータ読出可能媒体であって、前記命令の1つ以上のシーケンスが1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサは、
前記共有資源に変更許可を与えるのとは別に、前記共有資源に書込許可を与えるステップを実行し、
前記書込許可を保持することは、前記書込許可を保持するノードが、ディスクに、前記書込許可を保持するノードのキャッシュに保持される共有資源のコピーを書込むことを許可し、前記書込許可を保持することは、前記書込許可を保持するノードが、前記書込許可を保持するノードのキャッシュに保持される共有資源のコピーを変更することは許可せず、
前記変更許可を保持することは、前記変更許可を保持するノードが、前記変更許可を保持するノードのキャッシュに保持される共有資源のコピーを変更することを許可し、前記変更許可を保持することは、前記変更許可を保持するノードが、前記変更許可を保持するノードのキャッシュに保持される共有資源のコピーを書込むことは許可しない、コンピュータ読出可能媒体。 - 前記共有資源についての前記書込許可は前記複数のノードのうち1つのノードのみに時を選ばず与えられ、前記共有資源についての前記変更許可は前記複数のノードのうち1つのノードのみに時を選ばず与えられる、請求項178に記載のコンピュータ読出可能媒体。
- 前記書込許可および前記変更許可は前記複数のノードのうち異なるノードによって保持される、請求項178に記載のコンピュータ読出可能媒体。
- 前記書込許可および前記変更許可は前記複数のノードのうち同一のノードによって保持される、請求項178に記載のコンピュータ読出可能媒体。
- 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記共有資源に前記書込許可を与えるのとは別にかつ前記共有資源に前記変更許可を与えるのとは別に、前記共有資源に保持許可を与えるステップを実行するようにする命令をさらに含み、
前記保持許可を保持することは、前記保持許可を保持するノードが、前記保持許可を保持するノードのキャッシュに保持される資源のコピーを保持することを要求する、請求項178に記載のコンピュータ読出可能媒体。 - 前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサが、
前記複数のノードのうち1組のノードの各ノードに対し、前記共有資源に前記書込許可を与えるのとは別にかつ前記共有資源に前記変更許可を与えるのとは別に、前記共有資源に保持許可を与えるステップを実行するようにする命令をさらに含み、
前記保持許可を保持することは、前記保持許可を保持する1組のノードの各ノードが、前記保持許可を保持する1組のノードの各ノードのキャッシュに保持される共有資源のコピーを保持することを要求する、請求項178に記載のコンピュータ読出可能媒体。 - 前記保持許可を保持することは、前記保持許可を保持するノードが、前記保持許可を保持するノードのキャッシュに保持される共有資源のコピーまたはそのサクセサが永続的に記憶されるまで、前記保持許可を保持するノードのキャッシュに保持される共有資源のコピーを保持することを要求する、請求項182に記載のコンピュータ読出可能媒体。
- 複数のノードの共有資源を管理するためのシステムであって、
前記共有資源に変更許可を与えるのとは別に、前記共有資源に書込許可を与えるためのメカニズムを含み、
前記書込許可は、前記書込許可を保持するノードが、ディスクに、前記書込許可を保持するノードのキャッシュに保持される資源のコピーを書込むことを許可し、前記書込許可は、前記書込許可を保持するノードが、前記書込許可を保持するノードのキャッシュに保持される資源のコピーを変更することは許可せず、
変更許可は、前記変更許可を保持するノードが,前記変更許可を保持するノードのキャッシュに保持される資源のコピーを変更することを許可し、前記変更許可は、前記変更許可を保持するノードが、前記変更許可を保持するノードのキャッシュに保持される資源のコピーを書込むことは許可しない、システム。 - 前記メカニズムはさらに、前記複数のノードに書込許可を1つのみ1度だけ与え、前記複数のノードに変更許可を1つのみ1度だけ与えるように構成される、請求項185に記載のシステム。
- 前記メカニズムはさらに保持許可を与えるように構成され、前記保持許可は、前記保持許可を保持するノードが、前記保持許可を保持するノードの第3のキャッシュに保持される資源の第3のコピーを保持することを要求する、請求項185に記載のシステム。
- 前記保持許可は、前記保持許可を保持するノードが、前記資源の第3のコピーまたはそのサクセサが永続的に記憶されるまで前記資源の第3のコピーを保持することを要求する、請求項187に記載のシステム。
- 前記メカニズムはさらに複数の保持許可を与えるように構成され、前記複数の保持許可の各保持許可は、前記複数のノードのうち1つのノードに与えられ、各保持許可は、前記複数の保持許可のうち1つを保持するノードが、前記複数の保持許可のうち1つを保持するノードのキャッシュに保持される資源の別のコピーを保持することを要求する、請求項185に記載のシステム。
- 前記複数の保持許可の各保持許可は、前記複数の保持許可のうち1つを保持するノードが、資源の他のコピーを、前記資源の他のコピーまたはそのサクセサが永続的に記憶されるまで保持することを要求する、請求項189に記載のシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7458798P | 1998-02-13 | 1998-02-13 | |
US60/074,587 | 1998-02-13 | ||
US09/199,120 US6353836B1 (en) | 1998-02-13 | 1998-11-24 | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US09/199,120 | 1998-11-24 | ||
PCT/US1999/002965 WO1999041664A1 (en) | 1998-02-13 | 1999-02-12 | Method and apparatus for transferring data from the cache of one node to the cache of another node |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002503846A JP2002503846A (ja) | 2002-02-05 |
JP2002503846A5 JP2002503846A5 (ja) | 2005-12-22 |
JP3815967B2 true JP3815967B2 (ja) | 2006-08-30 |
Family
ID=26755827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000531781A Expired - Lifetime JP3815967B2 (ja) | 1998-02-13 | 1999-02-12 | あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 |
Country Status (8)
Country | Link |
---|---|
US (7) | US6353836B1 (ja) |
EP (1) | EP1055173B1 (ja) |
JP (1) | JP3815967B2 (ja) |
AU (1) | AU768747B2 (ja) |
CA (1) | CA2320240C (ja) |
DE (6) | DE69929095T2 (ja) |
HK (5) | HK1032642A1 (ja) |
WO (1) | WO1999041664A1 (ja) |
Families Citing this family (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574654B1 (en) | 1996-06-24 | 2003-06-03 | Oracle Corporation | Method and apparatus for lock caching |
AU2007202588B2 (en) * | 1998-02-13 | 2008-11-06 | Oracle International Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US7930278B2 (en) | 1998-02-13 | 2011-04-19 | Oracle International Corporation | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US6353836B1 (en) | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
AU2003213536B2 (en) * | 1998-02-13 | 2007-05-10 | Oracle International Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US7065540B2 (en) * | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
US6633891B1 (en) | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
US7003721B1 (en) * | 1999-06-15 | 2006-02-21 | Microsoft Corporation | Safe save method of HTML files using recovery files including a list with temporary and final names for replacement files |
US6405219B2 (en) | 1999-06-22 | 2002-06-11 | F5 Networks, Inc. | Method and system for automatically updating the version of a set of files stored on content servers |
US6609126B1 (en) | 2000-11-15 | 2003-08-19 | Appfluent Technology, Inc. | System and method for routing database requests to a database and a cache |
US6961728B2 (en) * | 2000-11-28 | 2005-11-01 | Centerboard, Inc. | System and methods for highly distributed wide-area data management of a network of data sources through a database interface |
US6965893B1 (en) | 2000-12-20 | 2005-11-15 | Oracle International Corporation | Techniques for granting shared locks more efficiently |
US6850938B1 (en) | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
WO2002073416A2 (en) * | 2001-03-07 | 2002-09-19 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
US6772363B2 (en) * | 2001-03-12 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Fast failover database tier in a multi-tier transaction processing system |
US7107319B2 (en) * | 2001-05-31 | 2006-09-12 | Oracle Corporation | Method and apparatus for reducing latency and message traffic during data and lock transfer in a multi-node system |
US7076510B2 (en) * | 2001-07-12 | 2006-07-11 | Brown William P | Software raid methods and apparatuses including server usage based write delegation |
US7325064B2 (en) * | 2001-07-17 | 2008-01-29 | International Business Machines Corporation | Distributed locking protocol with asynchronous token prefetch and relinquish |
US6721851B2 (en) * | 2001-08-07 | 2004-04-13 | Veritas Operating Corporation | System and method for preventing sector slipping in a storage area network |
US7363447B1 (en) | 2001-08-07 | 2008-04-22 | Symantec Operating Corporation | System and method for providing safe data movement using third party copy techniques |
US6820114B2 (en) * | 2001-09-27 | 2004-11-16 | Sap Aktiengesellschaft | Identifying object suppliers in a network |
US7496645B2 (en) * | 2001-10-18 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Deployment of business logic software and data content onto network servers |
US7028300B2 (en) * | 2001-11-13 | 2006-04-11 | Microsoft Corporation | Method and system for managing resources in a distributed environment that has an associated object |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US20030105871A1 (en) * | 2001-11-13 | 2003-06-05 | Microsoft Corporation, | Method and system for modifying lock properties in a distributed environment |
US7406519B2 (en) * | 2001-11-13 | 2008-07-29 | Microsoft Corporation | Method and system for locking resources in a distributed environment |
US8086579B1 (en) * | 2002-01-22 | 2011-12-27 | Oracle International Corporation | Semantic response to lock requests to reduce coherence overhead in multi-node systems |
US20030188096A1 (en) * | 2002-03-15 | 2003-10-02 | Otto Lehner | Distributing access rights to mass storage |
CA2377649C (en) * | 2002-03-20 | 2009-02-03 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic cluster database architecture |
US7181452B1 (en) * | 2002-04-04 | 2007-02-20 | Ncr Corp. | Locking mechanism using predefined locks for aggregate materialized views in a database system |
US6988165B2 (en) * | 2002-05-20 | 2006-01-17 | Pervasive Software, Inc. | System and method for intelligent write management of disk pages in cache checkpoint operations |
US7448077B2 (en) * | 2002-05-23 | 2008-11-04 | International Business Machines Corporation | File level security for a metadata controller in a storage area network |
US6981104B2 (en) * | 2002-07-12 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Method for conducting checkpointing within a writeback cache |
US20040019660A1 (en) * | 2002-07-24 | 2004-01-29 | Sandhya E. | Lock holding multi-threaded processes for distibuted data systems |
US7093230B2 (en) * | 2002-07-24 | 2006-08-15 | Sun Microsystems, Inc. | Lock management thread pools for distributed data systems |
US7565406B2 (en) * | 2002-07-24 | 2009-07-21 | Sun Microsystems, Inc. | Last thread lock management for multi-threaded process and distributed data systems |
US8095657B2 (en) * | 2002-07-24 | 2012-01-10 | Oracle America, Inc. | First thread lock management for distributed data systems |
EP1540527B1 (en) * | 2002-09-09 | 2007-08-29 | Sap Ag | Method and system for moving data objects using locks |
US7756813B2 (en) * | 2002-09-09 | 2010-07-13 | Sap Ag | Electronic data structure for controlling access to data objects using locks |
US7653667B2 (en) * | 2002-09-09 | 2010-01-26 | Sap Ag | Methods and systems for data moving using locks |
US7457933B2 (en) * | 2002-09-09 | 2008-11-25 | Sap Ag | Methods and systems for archiving data |
US20060149696A1 (en) * | 2002-09-09 | 2006-07-06 | Thorsten Pferdekaemper | Method and systems for controlling access to a data object by means of locks |
US7693881B2 (en) * | 2002-09-09 | 2010-04-06 | Sap Ag | Methods and systems for moving data using locks |
US7707184B1 (en) * | 2002-10-09 | 2010-04-27 | Netapp, Inc. | System and method for snapshot full backup and hard recovery of a database |
US7451359B1 (en) | 2002-11-27 | 2008-11-11 | Oracle International Corp. | Heartbeat mechanism for cluster systems |
DE10256148A1 (de) * | 2002-11-29 | 2004-06-17 | Basf Ag | Gegenstand der vorliegenden Erfindung sind Zusammensetzungen enthaltend mindestens ein Copolymer (A) und mindestens ein Copolymer (B) sowie deren Verwendung in kosmetischen Zubereitungen |
US7822612B1 (en) | 2003-01-03 | 2010-10-26 | Verizon Laboratories Inc. | Methods of processing a voice command from a caller |
US7281050B2 (en) * | 2003-04-08 | 2007-10-09 | Sun Microsystems, Inc. | Distributed token manager with transactional properties |
US7124131B2 (en) * | 2003-04-29 | 2006-10-17 | International Business Machines Corporation | Discipline for lock reassertion in a distributed file system |
US7039773B2 (en) | 2003-04-29 | 2006-05-02 | Oracle International Corporation | Method and mechanism for efficient implementation of ordered records |
US7376744B2 (en) | 2003-05-09 | 2008-05-20 | Oracle International Corporation | Using local locks for global synchronization in multi-node systems |
US7447786B2 (en) * | 2003-05-09 | 2008-11-04 | Oracle International Corporation | Efficient locking of shared data that is accessed for reads in a cluster database |
US7139772B2 (en) | 2003-08-01 | 2006-11-21 | Oracle International Corporation | Ownership reassignment in a shared-nothing database system |
US7343432B1 (en) * | 2003-09-19 | 2008-03-11 | Emc Corporation | Message based global distributed locks with automatic expiration for indicating that said locks is expired |
US7324995B2 (en) * | 2003-11-17 | 2008-01-29 | Rackable Systems Inc. | Method for retrieving and modifying data elements on a shared medium |
US7447710B2 (en) * | 2003-12-11 | 2008-11-04 | Sybase, Inc. | Database system providing self-tuned parallel database recovery |
US7299378B2 (en) | 2004-01-15 | 2007-11-20 | Oracle International Corporation | Geographically distributed clusters |
US7421562B2 (en) * | 2004-03-01 | 2008-09-02 | Sybase, Inc. | Database system providing methodology for extended memory support |
US20050251495A1 (en) * | 2004-05-06 | 2005-11-10 | Bea Systems, Inc. | System and method for unified file management |
US7428733B2 (en) * | 2004-05-13 | 2008-09-23 | Bea Systems, Inc. | System and method for custom module creation and deployment |
US7814484B2 (en) * | 2004-05-14 | 2010-10-12 | Bea Systems, Inc. | System and method for web application extensibility |
US8181162B2 (en) * | 2004-06-14 | 2012-05-15 | Alcatel Lucent | Manager component for checkpoint procedures |
JP2006004031A (ja) * | 2004-06-16 | 2006-01-05 | Hitachi Ltd | データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム |
US7809690B2 (en) * | 2004-07-13 | 2010-10-05 | Oracle International Corporation | Performance metric-based selection of one or more database server instances to perform database recovery |
US8688662B2 (en) * | 2004-09-28 | 2014-04-01 | International Business Machines Corporation | Copy on access to locked objects |
US7567986B2 (en) * | 2004-10-07 | 2009-07-28 | Microsoft Corporation | Method and system for limiting resource usage of a version store |
US8566326B2 (en) * | 2004-11-05 | 2013-10-22 | Oracle International Corporation | High-performance log-based processing |
US7506202B1 (en) | 2005-02-08 | 2009-03-17 | Symantec Operating Corporation | Compression of temporal dimension in a temporal storage device |
US7631021B2 (en) * | 2005-03-25 | 2009-12-08 | Netapp, Inc. | Apparatus and method for data replication at an intermediate node |
US7209990B2 (en) * | 2005-04-05 | 2007-04-24 | Oracle International Corporation | Maintain fairness of resource allocation in a multi-node environment |
US7752625B2 (en) * | 2005-06-17 | 2010-07-06 | International Business Machines Corporation | Caching resources requested by applications |
US7596712B1 (en) * | 2006-03-23 | 2009-09-29 | Network Appliance, Inc. | Method and system for efficiently accessing a storage redundancy group |
CA2652115C (en) * | 2006-05-12 | 2015-11-17 | Goldengate Software, Inc. | Apparatus and method for read consistency in a log mining system |
US20080034053A1 (en) * | 2006-08-04 | 2008-02-07 | Apple Computer, Inc. | Mail Server Clustering |
US7788243B2 (en) * | 2006-09-08 | 2010-08-31 | Sybase, Inc. | System and methods for optimizing data transfer among various resources in a distributed environment |
US8156082B2 (en) * | 2006-10-06 | 2012-04-10 | Sybase, Inc. | System and methods for temporary data management in shared disk cluster |
US7831772B2 (en) * | 2006-12-12 | 2010-11-09 | Sybase, Inc. | System and methodology providing multiple heterogeneous buffer caches |
GB0625330D0 (en) * | 2006-12-20 | 2007-01-24 | Ibm | System,method and computer program product for managing data using a write-back cache unit |
JP2008276456A (ja) * | 2007-04-27 | 2008-11-13 | Hitachi Software Eng Co Ltd | ファイル管理システム及び方法、並びに携帯端末装置 |
US8195610B1 (en) * | 2007-05-08 | 2012-06-05 | IdeaBlade, Inc. | Method and apparatus for cache management of distributed objects |
US8914565B2 (en) * | 2007-06-08 | 2014-12-16 | Sap Ag | Locking or loading an object node |
US7975025B1 (en) | 2008-07-08 | 2011-07-05 | F5 Networks, Inc. | Smart prefetching of data over a network |
US20100082560A1 (en) * | 2008-09-19 | 2010-04-01 | Sony Computer Entertainment America Inc. | Software change management, configuration substitution and remote administration of datacenters |
US20100088270A1 (en) * | 2008-10-03 | 2010-04-08 | Carsten Ziegler | Data versioning concept including time dependency and active and inactive states |
US8429134B2 (en) * | 2009-09-08 | 2013-04-23 | Oracle International Corporation | Distributed database recovery |
US8510334B2 (en) * | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
US8527460B2 (en) * | 2010-02-19 | 2013-09-03 | Jason Laurence Noble | Method for carrying out database version control |
US9026510B2 (en) * | 2011-03-01 | 2015-05-05 | Vmware, Inc. | Configuration-less network locking infrastructure for shared file systems |
JP5772458B2 (ja) * | 2011-09-29 | 2015-09-02 | 富士通株式会社 | データ管理プログラム、ノード、および分散データベースシステム |
US9342411B2 (en) | 2012-10-22 | 2016-05-17 | International Business Machines Corporation | Reducing memory overhead of highly available, distributed, in-memory key-value caches |
US9146877B2 (en) * | 2012-11-29 | 2015-09-29 | Infinidat Ltd. | Storage system capable of managing a plurality of snapshot families and method of snapshot family based read |
US9311014B2 (en) | 2012-11-29 | 2016-04-12 | Infinidat Ltd. | Storage system and methods of mapping addresses of snapshot families |
US9330055B2 (en) * | 2013-06-04 | 2016-05-03 | International Business Machines Corporation | Modular architecture for extreme-scale distributed processing applications |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
JP5800058B2 (ja) * | 2014-05-26 | 2015-10-28 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
US10599630B2 (en) | 2015-05-29 | 2020-03-24 | Oracle International Corporation | Elimination of log file synchronization delay at transaction commit time |
US10698829B2 (en) | 2015-07-27 | 2020-06-30 | Datrium, Inc. | Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration |
US10169138B2 (en) | 2015-09-22 | 2019-01-01 | Walmart Apollo, Llc | System and method for self-healing a database server in a cluster |
US10394817B2 (en) | 2015-09-22 | 2019-08-27 | Walmart Apollo, Llc | System and method for implementing a database |
US10268744B2 (en) * | 2015-09-22 | 2019-04-23 | Walmart Apollo, Llc | System for maintaining consistency across a decentralized database cluster and method therefor |
US10083201B2 (en) * | 2015-09-22 | 2018-09-25 | Walmart Apollo, Llc | System for maintaining consistency across a decentralized database cluster and method therefor |
US10116736B2 (en) | 2015-09-22 | 2018-10-30 | Walmart Apollo, Llc | System for dynamically varying traffic routing modes in a distributed cluster and method therefor |
KR101758558B1 (ko) * | 2016-03-29 | 2017-07-26 | 엘에스산전 주식회사 | 에너지 관리 서버 및 그를 갖는 에너지 관리 시스템 |
US9971645B2 (en) | 2016-08-23 | 2018-05-15 | Seagate Technology Llc | Auto-recovery of media cache master table data |
US10223272B2 (en) | 2017-04-25 | 2019-03-05 | Seagate Technology Llc | Latency sensitive metadata object persistence operation for storage device |
US10459810B2 (en) | 2017-07-06 | 2019-10-29 | Oracle International Corporation | Technique for higher availability in a multi-node system using replicated lock information to determine a set of data blocks for recovery |
US11126505B1 (en) * | 2018-08-10 | 2021-09-21 | Amazon Technologies, Inc. | Past-state backup generator and interface for database systems |
US11188516B2 (en) | 2018-08-24 | 2021-11-30 | Oracle International Corproation | Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point |
US11334445B2 (en) * | 2018-10-19 | 2022-05-17 | Oracle International Corporation | Using non-volatile memory to improve the availability of an in-memory database |
JP7335966B2 (ja) * | 2019-02-05 | 2023-08-30 | カーサシステムズ インコーポレイテッド | ネットワーク関連付け情報を回復するための方法及び装置 |
US11593309B2 (en) * | 2020-11-05 | 2023-02-28 | International Business Machines Corporation | Reliable delivery of event notifications from a distributed file system |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3039168A1 (de) | 1980-10-16 | 1982-05-13 | Agfa-Gevaert Ag, 5090 Leverkusen | Fotografisches material, herstellungsverfahren sowie verfahren zur herstellung fotografischer bilder |
EP0348628A3 (en) * | 1988-06-28 | 1991-01-02 | International Business Machines Corporation | Cache storage system |
US5193162A (en) * | 1989-11-06 | 1993-03-09 | Unisys Corporation | Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities |
US5297269A (en) | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5261069A (en) | 1990-08-13 | 1993-11-09 | Hewlett-Packard Company | Method of maintaining consistency of cached data in a database system |
US5287473A (en) | 1990-12-14 | 1994-02-15 | International Business Machines Corporation | Non-blocking serialization for removing data from a shared cache |
US5276835A (en) | 1990-12-14 | 1994-01-04 | International Business Machines Corporation | Non-blocking serialization for caching data in a shared cache |
JPH0827755B2 (ja) | 1991-02-15 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データの単位を高速度でアクセスする方法 |
US5280611A (en) | 1991-11-08 | 1994-01-18 | International Business Machines Corporation | Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type |
US5630124A (en) | 1993-12-06 | 1997-05-13 | International Business Machines Corporation | System and method for assuring atomicity of distributed update requests in a parallel database |
JPH08185359A (ja) | 1994-10-31 | 1996-07-16 | Toshiba Corp | メモリサブシステム |
US5680576A (en) | 1995-05-05 | 1997-10-21 | Silicon Graphics, Inc. | Directory-based coherence protocol allowing efficient dropping of clean-exclusive data |
JP3085899B2 (ja) | 1995-06-19 | 2000-09-11 | 株式会社東芝 | マルチプロセッサシステム |
JPH0926910A (ja) | 1995-07-11 | 1997-01-28 | Canon Inc | 情報処理装置及びその方法及び情報処理システム及びその制御方法 |
US5903910A (en) * | 1995-11-20 | 1999-05-11 | Advanced Micro Devices, Inc. | Method for transferring data between a pair of caches configured to be accessed from different stages of an instruction processing pipeline |
US5832516A (en) | 1997-01-21 | 1998-11-03 | Oracle Corporation | Caching data in recoverable objects |
US5966706A (en) * | 1997-02-19 | 1999-10-12 | At&T Corp | Local logging in a distributed database management computer system |
US6067550A (en) | 1997-03-10 | 2000-05-23 | Microsoft Corporation | Database computer system with application recovery and dependency handling write cache |
US5933849A (en) | 1997-04-10 | 1999-08-03 | At&T Corp | Scalable distributed caching system and method |
US5987477A (en) * | 1997-07-11 | 1999-11-16 | International Business Machines Corporation | Parallel file system and method for parallel write sharing |
US6256712B1 (en) | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
US5924096A (en) * | 1997-10-15 | 1999-07-13 | Novell, Inc. | Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand |
US6279084B1 (en) | 1997-10-24 | 2001-08-21 | Compaq Computer Corporation | Shadow commands to optimize sequencing of requests in a switch-based multi-processor system |
US6052758A (en) * | 1997-12-22 | 2000-04-18 | International Business Machines Corporation | Interface error detection and isolation in a direct access storage device DASD system |
US6353836B1 (en) | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
-
1998
- 1998-11-24 US US09/199,120 patent/US6353836B1/en not_active Expired - Lifetime
-
1999
- 1999-02-12 DE DE69929095T patent/DE69929095T2/de not_active Expired - Lifetime
- 1999-02-12 DE DE69917333T patent/DE69917333T2/de not_active Expired - Lifetime
- 1999-02-12 JP JP2000531781A patent/JP3815967B2/ja not_active Expired - Lifetime
- 1999-02-12 CA CA002320240A patent/CA2320240C/en not_active Expired - Lifetime
- 1999-02-12 DE DE69918470T patent/DE69918470T2/de not_active Expired - Lifetime
- 1999-02-12 DE DE69901291T patent/DE69901291T2/de not_active Expired - Lifetime
- 1999-02-12 EP EP99906927A patent/EP1055173B1/en not_active Expired - Lifetime
- 1999-02-12 DE DE69917342T patent/DE69917342T2/de not_active Expired - Lifetime
- 1999-02-12 WO PCT/US1999/002965 patent/WO1999041664A1/en active IP Right Grant
- 1999-02-12 AU AU26723/99A patent/AU768747B2/en not_active Expired
- 1999-02-12 DE DE69939226T patent/DE69939226D1/de not_active Expired - Lifetime
-
2001
- 2001-04-25 HK HK01102941A patent/HK1032642A1/xx not_active IP Right Cessation
- 2001-04-25 HK HK04104594A patent/HK1061724A1/xx not_active IP Right Cessation
- 2001-04-25 HK HK02101306.5A patent/HK1039812B/zh not_active IP Right Cessation
- 2001-04-25 HK HK02103044.8A patent/HK1041535B/zh not_active IP Right Cessation
- 2001-04-25 HK HK02103043.9A patent/HK1041534B/zh not_active IP Right Cessation
- 2001-06-27 US US09/894,636 patent/US6564230B2/en not_active Expired - Lifetime
- 2001-06-27 US US09/894,521 patent/US6507853B2/en not_active Expired - Lifetime
- 2001-06-27 US US09/894,635 patent/US6564234B2/en not_active Expired - Lifetime
- 2001-06-27 US US09/894,757 patent/US6609136B2/en not_active Expired - Lifetime
- 2001-06-27 US US09/894,640 patent/US6567827B2/en not_active Expired - Lifetime
- 2001-06-27 US US09/894,325 patent/US6411968B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3815967B2 (ja) | あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 | |
US7296039B2 (en) | Managing checkpoint queues in a multiple node system | |
US7200623B2 (en) | Methods to perform disk writes in a distributed shared disk system needing consistency across failures | |
US20110173169A1 (en) | Methods To Perform Disk Writes In A Distributed Shared Disk System Needing Consistency Across Failures | |
AU2002248570B2 (en) | Managing checkpoint queues in a multiple node system | |
EP1366420B1 (en) | Disk writes in a distributed shared disk system | |
EP1176509B1 (en) | Managing recovery of data after failure of one or more caches | |
AU2007202589B2 (en) | Method and apparatus for transferring data from the cache of one node to the cache of another node | |
EP1408408B1 (en) | Managing a resource used by a plurality of nodes | |
AU2003213536B2 (en) | Method and apparatus for transferring data from the cache of one node to the cache of another node | |
CA2448050C (en) | Method and apparatus for transferring data from the cache of one node to the cache of another node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040728 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040728 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050913 |
|
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: 20060530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060606 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120616 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130616 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S802 | Written request for registration of partial abandonment of right |
Free format text: JAPANESE INTERMEDIATE CODE: R311802 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |