JP2009009599A - 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法 - Google Patents
故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法 Download PDFInfo
- Publication number
- JP2009009599A JP2009009599A JP2008213995A JP2008213995A JP2009009599A JP 2009009599 A JP2009009599 A JP 2009009599A JP 2008213995 A JP2008213995 A JP 2008213995A JP 2008213995 A JP2008213995 A JP 2008213995A JP 2009009599 A JP2009009599 A JP 2009009599A
- Authority
- JP
- Japan
- Prior art keywords
- data item
- node
- dirty
- queue
- failure
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】永続的記憶装置に書込まれることなく多ノードシステムから別のノードへの送信中のダーティデータ項目に応答して、多故障待ち行列からデータ項目についてのエントリを除去することなく、単一故障待ち行列からデータ項目についてのエントリを除去する。永続的記憶装置へ書込み中のダーティデータ項目に応答して両方の待ち行列からデータ項目についてのエントリを除去する。
【選択図】図8
Description
この特許出願は、2001年3月7日に提出された米国仮特許出願第60/274,270号「故障間での一貫性を必要とする分散共有ディスクシステムにおいてディスク書込を行なう方法(“Methods to perform disk writes in a distributed shared disk system needing consistency across failures”)」に関し、当該仮特許出願から優先権を主張しており、その内容はすべてここに引用により援用される。
この発明は、ディスク書込を行なうことに関し、より具体的には、データ項目のダーティバージョンが多数のノードのキャッシュ内に存在することを可能にするシステム内におけるダーティデータ項目の書込調整に関する。
データベースシステム内のスケーラビリティを向上させる1つの手法は、多数のノードが共有記憶装置内のデータを並行して読出し、修正することを可能にすることである。各ノードは、揮発性メインメモリ内のデータを保持するキャッシュを有し、不揮発性共有ディスク記憶装置によってバックアップされる。グローバルロックマネージャ(GLM)または分散ロックマネージャ(DLM)を用いて、ノード間のキャッシュコヒーレンシを維持する。メインメモリの内容を消去するノードの故障からの回復を提供するために、一般的なライトアヘッドロギング(WAL)プロトコルが用いられる。性能上の理由から、各ノードは、変更が記録される専用のリドゥログを有する。ノード故障後に走査される必要のあるリドゥログ内の変更の量を減じるために、チェックポイント前のデータ項目内のすべての変更が不揮発性記憶装置内のデータ項目に再適用されなくてもよいことを保証するインクリメンタルまたは定期的なチェックポイントが通例とられる。
同じノード上または異なるノード上のいずれかで実行しているトランザクション間の並行処理は、グローバルトランザクションページレベルロックまたは行レベルロックによって実現される。トランザクションシステムは、トランザクションによって修正された(ページ/ブロック等の)データ項目が、トランザクションコミット中に安定した記憶装置に書込まれる強制方式、または、リドゥログ内のトランザクションの変更のみがトランザクションコミットにおいて強制される非強制方式のいずれかを用い得る。ページレベルロックを用いる強制方式を用いることは、ブロックが、1つのノードによってのみ(実際には、1つのトランザクションによってのみ)修正され、いずれかのポイントで1つのシステムのキャッシュのみの中でダーティ化され得ることを意味する。すべての他の組合せ(つまり、強制方式での行レベルロック、非強制方式でのページレベルロック、および非強制方式での行レベルロック)では、データ項目は多数のシステム内で修正され得、キャッシュコヒーレンシメカニズムが必要とされる。
トランザクションがコミットすると、トランザクションによって作られた変更を反映するデータは、永続的記憶装置に記憶されなければならない。いくつかのシステムでは、トランザクションによって作られた変更を表わすリドゥレコードは、コミット時に永続的に記憶されなければならないが、修正されるデータ項目自体の実際の書込は、遅延され得る。(1)変更を含み、および(2)永続的に記憶されていないデータ項目が、「ダーティデータ項目」と呼ばれる。一般に、あるノード内に存在するデータ項目がダーティであればあるほど、そのノードが故障した場合、回復時間はより長くなる。したがって、回復時間が許容できないほど長くならないことを確実にするために、ノードは、チェックポイント待ち行列を維持し得る。
データ項目が並行して多数のシステムによって修正され得る場合、安定した共有永続的記憶装置に対する、修正されたデータ項目の書込みを調整するメカニズムが必要とされる。いくつかのシステムでは、この問題は、修正されたデータ項目を1つのノードから別のノードへと転送するための媒体として安定した共有永続的記憶装置を用いることによって、簡素化される。あるノード内でダーティであるデータ項目が、異なるノード内での修正のために必要とされる場合、データ項目は、ダーティ化されたデータ項目を修正することを望むノードにページロックを与える前に、共有永続的記憶装置にまず書込まれる。異なるノードが、修正されたデータ項目の現在のバージョンを読出す必要がある場合、同じ、永続的記憶装置への書込および永続的記憶装置からの読出シーケンスが用いられる。
システムがノード間でデータ項目を転送する媒体として不揮発性記憶装置を用いるシステムでは、異なるノード間でダーティデータ項目の書込を調整する必要はない。各ノードは、ダーティデータ項目を書き出し、さらにはチェックポイントを行なうための従来のメカニズムを用い得る。
おいてのみダーティである。したがって、あるノードが故障した場合は、データベースを回復させるために、そのノードのリドゥログのみが、そのノード内のチェックポイントレコードからそのリドゥログの終わりまで走査されればよい。さらに、多数のノードが故障した場合は、各ノードのリドゥログが、走査され、データベースを回復するように順次適用され得る。つまり、多数のリドゥログからの変更を併合する必要はない。
同じデータ項目の異なるコピーを含み得る多数のキャッシュを備えたシステム内でキャッシュを管理するための技術が提供される。具体的には、このようなデータ項目上で行なわれるディスクへの書込動作を調整して、より古いバージョンのデータ項目がより新しいバージョン上に書込まれないことを確実にし、さらには、故障後の回復に必要とされる処理量を減じるための技術が提供される。多数のキャッシュと協調してデータ項目を永続的記憶装置に書込ませるためにマスタが用いられる、さまざまな方式が提供される。このような方式は、直接書込方式、間接書込方式、オーナーベース方式、および役割ベース方式を含むが、これらに限定されているわけではない。キャッシュに関連したチェックポイントを管理するための技術も提供されており、ここでは、チェックポイントを用いて、故障時に回復ログの処理を開始すべき位置が決定される。
ダーティデータ項目の書込を調整するための方法および装置を記載する。以下の記載においては、説明のため、この発明の完全な理解をもたらすための数々の特定の詳細を記載する。しかしながら、この発明はこれら特定の詳細なしに実施可能であることが明らかであろう。他の場合には、この発明を不必要に不明瞭にすることを避けるために、周知の構造および装置をブロック図の形で示す。
ノード間でデータ項目を転送するための媒体として永続的記憶装置を用いるシステムでは、1つのノードから別のノードへデータ項目を転送する待ち時間は、データベースキャッシュ書込サブシステムを修正して、他のノードが読出または書込しようと待っているデータ項目の書込に対してより高い優先度を与えることで減少され得る。これは、他のノードがダーティデータ項目を読出または修正しようと待っているので、書込まれる必要があるダーティデータ項目のために別個の待ち行列(「ping待ち行列」)を設けることで達成できる。ロックマネージャ(分散ロックマネージャDLMまたはグローバルロックマネージャGLMのいずれかであり得る)が保持ノードにメッセージを送り、保持ノードに対し、データ項目に対するロックをリリースするように頼むと、ダーティデータ項目はオンデマンドでping待ち行列に動かされ得る。
永続的記憶装置にまず記憶されずにキャッシュ間でダーティデータ項目を転送できるシステムでは、正当性およびスケーラビリティのために、異なるノードごとのキャッシュ内のダーティデータ項目の書込を調整する必要がある。正当性は、ノードがチェックポイントを完了(すなわち、故障後にリドゥログから変更が適用される必要があり得る出発点を記録)すると、チェックポイントに先立ちコミットされた変更が入っているあらゆるデータ項目のバージョンが不揮発性永続的記憶装置に書込まれていることを要件とする。さらに2つのノードが同時に永続的記憶装置にデータ項目を書込むことを許されてはならず(なぜならこれらが互いの変更を壊すおそれがあるからである)、ノードはより新しいバー
ジョンの上に、より古いバージョンのデータ項目を書込むことを許されてはならない。
同じデータ項目のダーティバージョンが多数のキャッシュに常駐できるシステム内で、永続的記憶装置へのダーティデータ項目の書込を調整するためのさまざまな技術を提供する。一技術に従うと、調整はデータ項目に割当てられたマスタを使用して実行される。一実施例に従うと、データ項目のダーティバージョンの書込を調整するのに用いられるマスタは、データ項目へのアクセスを支配するロックを管理するように割当てられるのと同じエンティティである。このような実施例では、マスタはロック管理システム、たとえば、分散またはグローバルロック管理システムのいずれかに属するロックマネージャなどの構成要素であるのが典型的であろう。
排他ロックの所有権とともに暗黙に付与されても、または排他ロックの付与とは別に、かつこれとは独立に付与されてもよい。
直接書込方式に従うと、ダーティデータ項目の永続的記憶装置への書込は、データ項目に割当てられたマスタを用いて調整される。具体的に、ダーティデータ項目を永続的記憶装置に書込みたいと望むノードは、データ項目に割当てられたマスタに書込要求メッセージを送る。マスタは(1)要求しているノードに、書込を実行する許可を与えるか、または(2)要求しているノードに記憶されたダーティバージョンと少なくとも同じだけ新しいバージョンを、別のノードが既に永続的記憶装置に書込んだことを、要求しているノードに知らせ得る。
て書込要求待ち行列が入っていることがあり得る。データ項目について受取った書込要求は、書込要求待ち行列に記憶されてマスタにより順次処理される。ここに示す例では、マスタ100はノード3からの書込要求を最初に処理し、一方でノード1からの書込要求は書込要求待ち行列に留まる。マスタ100は、ノード3の書込要求への応答として、V3を永続的記憶装置に書込む許可をノード3に与える書込実行メッセージをノード3に送る。
直接書込方式を用いると、各ノードはノードのチェックポイント待ち行列内の各エントリについて書込要求メッセージを送る。或る場合には、ノードは書込要求への応答として書込実行メッセージを受取ることになる。書込実行メッセージが受取られると、要求しているノードは書込動作を実行しなければならない。他の場合には、要求しているノードは書込要求への応答として書込通知を受取ることになる。書込通知メッセージが受取られる場合には、要求しているノードは書込動作を実行する必要はない。
ある。ロックは望ましくない。複製が可能であれば、現在のデータ項目(すなわちXロックまたはSロック)を有するノードに書込要求を向けることが好ましい。
間接書込方式および直説書込方式のいずれにおいても、データ項目が1つのノードのキ
ャッシュでダーティ化されたにすぎない場合でも、書込要求メッセージがデータ項目のマスタに送られる。多くのデータベースシステムでは、データベースワーキングセットのかなりの部分がノード間で区分化され得るが、これはノード間での内部永続的記憶装置構造の区分化(たとえば各ノードについての別個のデータ項目フリーリスト)、またはノードへのトランザクションのアプリケーションレベルの経路付けのいずれかによって行なわれる。このようなシステムでは、データ項目はただ1つのノードのキャッシュでのみダーティ化されていることが頻繁にある。オーナベースの書込方式では、これらの状況下で書込要求を送る必要性が回避される。
オーナベースの書込方式では、データ項目のオーナが、永続的記憶装置へのデータ項目の書込前にデータ項目のマスタから許可を得る必要性が回避される。しかしながら、2つのノードが同時に永続的記憶装置へのデータ項目の書込を試みる可能性を回避するために、データ項目の現在のオーナがデータ項目を永続的記憶装置に書込んでいる間、データ項目の所有権は変更を許されない。したがって、排他ロックのホルダがオーナと見なされるシステムでは、データ項目の現在のオーナがデータ項目を永続的記憶装置に書込む間、排他ロックは別のノードに転送され得ない。結果として、データ項目を修正したいと望む後続のノードへの修正許可の転送は、データ項目が永続的記憶装置に書込まれるまで遅延される。このような遅延はシステムの全体的な性能を低下させる。加えて、オーナがデータ項目をダーティ化していないかもしれないときでも、データ項目のオーナがそのダーティ待ち行列内にデータ項目をリンクしなければならないことは望ましくない。
つのノードのキャッシュ内でのみ潜在的にダーティであり得る場合、ロック役割は「ローカル」である。したがって、データ項目に対するロックがシステム全体で初めてノードに付与される場合、ロックにはローカルの役割が付与される。役割がローカルであるロックの下でのデータ項目は、マスタの介入なしにロックを保持するノードによって永続的記憶装置から読出され、かつ永続的記憶装置に書込まれ得る。
され得る。現在のバージョンを永続的記憶装置に書込むノードは、ノードがデータ項目に対する排他ロックを保持するという事実に基づき、ノードが現在のバージョンを書込んでいることを判断できる。この例ではV3が現在のバージョンであるため、V3を永続的記憶装置に書込んだ後、ノード3はモードをグローバルからローカルに変換する。
上述のシナリオでは、書込通知メッセージの送信は直ちに該当のノードすべてに対して行われ得る、または送信は該当のノードのうちいくつかまたはすべてに対して遅延され得ることに言及した。一実施例に従うと、永続的記憶装置への書込動作が実行されると、書込通知メッセージは直ちに、実行された書込でカバーされるPIについての書込を要求したノードに対してのみ送られる。たとえば図1でマスタ100はノード1に書込通知メッセージを直ちに送るが、ノード2には送らない。
る際におけるpingメッセージか、の一部として通信され得る。したがって他の該当のノードは、そのPIを書込または交換する必要がある場合、ローカルロックマネージャとのみ通信することでそのPIを破棄できる。
マスタと該当のノードとの間で通信されるメッセージの数を減らす別の技術は、マスタからおよびここへの書込要求メッセージおよび書込通知メッセージをバッチ処理して、より少ない、より大きなメッセージにすることでメッセージの数を減らすことを含む。たとえばノード1が3つのエントリでそのチェックポイント待ち行列を進めようと望む場合、ノード1は、永続的記憶装置に書込まれなければならないすべての3つのデータ項目(およびこれらのそれぞれのバージョン)を識別する単一の書込要求メッセージをマスタ100に送り得る。同様に、完了している永続的記憶装置への書込動作3つに対してノード1が関心を有する場合、マスタ100は、永続的記憶装置に書込まれた3つのデータ項目(およびこれらのそれぞれのバージョン)を識別する単一の書込確認メッセージをノード1に送り得る。
上述のシナリオでは、各ノードのキャッシュは各データ項目について多くとも1つのPIを有すると仮定された。現実には、データ項目についてのいくつかのバージョンが永続的記憶装置に書込まれる前に、データ項目は多数のノードを通じて何回か循環し得る。ダーティデータ項目が別のノードにping outされるたびごとにPIを作成すること、および、ノードのキャッシュ内のダーティまたはチェックポイント待ち行列において異なる位置でいくつかのPIについてエントリがあることは適切であろう。
ポイント待ち行列内の同じ位置に留まらなければならないが、それは、最初のPIが作成された際にデータ項目に対してなされた変更がデータ項目の永続的記憶装置バージョン上に反映されるまで、チェックポイントは完了したと見なされ得ないからである。さらに、ディスクへの書込動作によって併合の最後のバージョンがカバーされるまで、併合したエントリはチェックポイント待ち行列からなくされ得ない。
データ項目のPIが併合される場合、データ項目の或るバージョンが異なるノードで永続的記憶装置に書込まれる際、バージョンは、併合したPIに反映される変更のうちいくつかをカバーするが、すべてをカバーしないことがあり得る。たとえばノードBがデータ項目5のV7を永続的記憶装置に書込む場合、併合したエントリ702のV1およびV6と関連付けられた変更のみがカバーされる。V8と関連付けられた変更はカバーされない。
或るシステムでは、ダーティまたはチェックポイント待ち行列はリンクされたリストとして実現される。リンクされたリストを走査し、待ち行列内の正しい位置に併合エントリを挿入することは、CPU使用に関して不経済となるおそれがある。これを容易するためにメモリ内インデックスが実現可能であるが、これによってデータ項目をチェックポイント待ち行列にリンクする際に余分なオーバーヘッドが生じてしまうであろう。
されそうな場合には、併合動作は実行されない。
チェックポイント待ち行列のヘッドにあるデータ項目がV7に近い時間と関連付けられていれば、既存のエントリと関連付けられたPIがもうすぐ書込まれる(または書込によりカバーされる)であろう可能性は高く、したがって新たなバージョンについて別個のエントリを設けるべきである。逆に、リドゥログにおける最も新しい変更がV7に近い時間に対応し、かつチェックポイント待ち行列のヘッドでのデータ項目がV7よりもずっと早い時間に対応するのであれば、既存のエントリと関連付けられたPIがもうすぐ書込まれる(または書込でカバーされる)可能性は低い。したがって新たなバージョンを既存のエントリに併合すべきである。
上述のように、チェックポイント待ち行列のヘッドにあるエントリは、故障後に回復処理が始まらなければならないリドゥログ内の位置を判断する。正確な回復のためには、クラスタ内のノードがいくつ故障に関与していたかに拘わらず、チェックポイント待ち行列のヘッドでのエントリに対応する場所からリドゥログの処理を始めることが安全である。
と望むノードは、単一ノード故障チェックポイント待ち行列のヘッドにあるエントリに対応するダーティデータ項目を、単に別のノードに転送できる。ダーティデータ項目を受取るノードがデータ項目を要求したことがなかったとしても、ダーティデータ項目の転送はこの目的のために実行され得る。
ビンベースのバッチ方式に従うと、2つの別個のチェックポイント待ち行列、すなわちグローバルにダーティなチェックポイント待ち行列と、ローカルにダーティなチェックポイント待ち行列とがノード内に維持される。ノードのローカルにダーティなチェックポイント待ち行列は、このノードにおいてのみダーティであるデータ項目についてのエントリを含む。ノードのグローバルにダーティなチェックポイント待ち行列は、他のノードでもダーティ化されたデータ項目についてのエントリを含む。
マルチノードシステム内で実行されるディスクへの書込動作を追跡し続けることは重要
である。このような情報はたとえば、チェックポイント待ち行列からなくされ得るのはどのエントリかを判断、およびデータ項目の過去イメージがディスクに書込可能および/またはキャッシュから割当解除(「フラッシュ(flush)」)可能であるかどうかを判断するのに極めて重要である。具体的には、データ項目のより後のバージョンがディスクに既に書込まれていれば、データ項目のバージョンはディスクに書込まれてはならない。さらに、データ項目の最も新しいバージョンがディスクに書込まれた場合、データ項目のPIバージョンはキャッシュからフラッシュされ得る。
上述のシナリオの多くで、各ノードはPIがディスクへの書込動作でカバーされるまでPIを維持するように構成されると仮定した。しかしながら、この発明の一実施例に従うと、このようなPIは維持されない。
ルにダーティなチェックポイント待ち行列を維持する。ローカルにダーティなチェックポイント待ち行列内のエントリと関連付けられたダーティデータ項目は、ディスクへの書込動作でカバーされるまで保持される。しかしながら、グローバルにダーティなチェックポイント待ち行列内のエントリと関連付けられたPIはこの態様で維持される必要はない。
チェックポイントレコードは、このノードでなされた最初の変更のバージョン数と、このノードにおいて1回ダーティ化されたが、その後でping outされて、永続的記憶装置に書込まれていないデータ項目のリストとからなる。一旦pingされるとキャッシュはダーティデータ項目を追跡できなくなるが、一方でマスタにおいてロックをなおオープンのままにしておく(すなわちロックは書込通知があるまでクローズにされない)。
図9は、この発明の実施例が実現され得るコンピュータシステム900を例示したデータ項目の図である。コンピュータシステム900は、情報の通信を行なうためのバス902または他の通信メカニズム、および、情報を処理するための、バス902に結合されるプロセッサ904を含む。コンピュータシステム900はまた、プロセッサ904によって実行されるべき情報および命令の記憶のための、バス902に結合されるランダムアクセスメモリ(RAM)または他の動的記憶装置等のメインメモリ906を含む。メインメモリ906はまた、プロセッサ904によって実行されるべき命令の実行中に一時的数値変数または他の中間情報を記憶するために用いられ得る。コンピュータシステム900はさらに、プロセッサ904のための命令および静的情報を記憶するための、バス902に結合される読出専用メモリ(ROM)908または他の静的記憶装置を含む。磁気永続的記憶装置または光学永続的記憶装置等の記憶装置910が、設けられ、情報および命令を
記憶するためにバス902に結合される。
Claims (14)
- 故障後、どこで回復を開始するかについての情報を管理する方法であって、
多ノードシステムの特定のノードにおいて、
前記ノードの故障の後、回復ログ内のどこで回復を開始するかを示す単一故障待ち行列と、
前記ノードおよび前記多ノードシステムの他の1つ以上のノードの故障の後、前記回復ログ内のどこで回復を開始するかを示す多故障待ち行列との双方を維持するステップと、
永続的記憶装置へ書込中のダーティデータ項目に応答して、前記単一故障待ち行列および前記多故障待ち行列の双方から前記データ項目についてのエントリを除去するステップと、
まず永続的記憶装置に書込まれることなく前記多ノードシステムの別のノードへ送信中のダーティデータ項目に応答して、前記多故障待ち行列から前記データ項目についてのエントリを除去することなく、前記単一故障待ち行列から前記データ項目についてのエントリを除去するステップとを含む、方法。 - ダーティデータ項目を別のノードへ送信して、ダーティデータ項目を要求する他のノードなしで前記単一故障待ち行列からのエントリの除去を可能にするステップをさらに含む、請求項1に記載の方法。
- 単一ノード故障の後、単一故障待ち行列に関連する前記回復ログにおいてある位置から開始する前記回復ログを適用するステップと、
多ノード故障の後、多故障待ち行列に関連する前記回復ログにおいてある位置から開始する前記回復ログを適用するステップとをさらに含む、請求項1に記載の方法。 - 前記単一故障待ち行列および前記多故障待ち行列は、単一の組合された待ち行列によって実現され、
前記多故障待ち行列から前記データ項目についてのエントリを除去することなく、前記単一故障待ち行列から前記データ項目についてのエントリを除去するステップは、前記組合された待ち行列から前記データ項目についてのエントリを除去することなく、前記組合された待ち行列における前記データ項目についてのエントリに印付けることを含む、請求項1に記載の方法。 - 前記単一故障待ち行列および前記多故障待ち行列は2つの別個の待ち行列として実現される、請求項1に記載の方法。
- 故障後、回復するための方法であって、
故障が1つのノードのみに関与するかどうかを判断するステップと、
故障が前記1つのノードのみに関与する場合には、回復ログにおける第1のポイントから開始する前記ノードの回復ログを適用することにより、回復を実行するステップと、
故障が前記1つのノードに加え1つ以上のノードに関与する場合には、回復ログにおける第2のポイントから開始する前記ノードの前記回復ログを適用することにより、回復を実行するステップとを含み、
前記第1のポイントは前記第2のポイントとは異なる、方法。 - 第1のポイントは、少なくとも部分的に、前記ノードによってダーティ化されたどのデータ項目が他のノードのキャッシュ内に存在するかによって決定され、
第2のポイントは、少なくとも部分的に、前記ノードによってダーティ化されたどのデータ項目が持続的に記憶されてきたかによって決定される、請求項6に記載の方法。 - 故障後、回復するための方法であって、
データ項目の特定のバージョンがディスクに書込まれたかどうかが不明瞭な場合には、
前記データ項目を回復させようとせずに、前記特定のバージョンがディスクに書込まれた場合にカバーされるであろう前記データ項目のダーティ化されたキャッシュされたバージョンに印付けるステップと、
前記ダーティ化されたキャッシュされたバージョンのうちの1つをディスクへ書込むように要求がなされた場合に、前記データ項目のどのバージョンが既にディスク上にあるかを判断するステップと、
前記データ項目の前記特定のバージョンが既にディスク上にある場合には、前記ダーティ化されたキャッシュされたバージョンのうちの前記1つをディスクへ書込まないステップとを行なうステップを含む、方法。 - 前記データ項目の前記特定のバージョンがディスク上にまだない場合には、前記データ項目を回復させるステップをさらに含む、請求項8に記載の方法。
- 前記データ項目の前記特定のバージョンが既にディスク上にある場合には、データ項目の前記ダーティ化されたキャッシュされたバージョンを含むノードに、前記ダーティ化されたキャッシュされたバージョンがディスクへの書込動作によりカバーされていることを伝えるステップをさらに含む、請求項8に記載の方法。
- 多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法であって、
前記多数のキャッシュの第1のノードにおけるデータ項目を修正して、修正されたデータ項目を作成するステップと、
前記第1のノードからの修正されたデータ項目を永続的記憶装置に永続的に記憶させることなく、修正されたデータ項目を前記第1のノードから前記多数のキャッシュの第2のノードへ送信するステップと、
前記修正されたデータ項目が前記第1のノードから前記第2のノードへ送信された後、かつ前記第1のノードにおける前記データ項目がディスクへの書込動作によりカバーされる前に、前記第1のノードにおける前記データ項目を破棄するステップと、
前記故障の後、前記多数のキャッシュのすべてに関連する併合されたリドゥログに基づいて、永続的記憶装置上のデータ項目に変更を加えることによって、前記データ項目の現在のバージョンを再構築するステップとを含む、方法。 - 前記多数のキャッシュの各々について、グローバルにダーティなチェックポイント待ち行列、およびローカルにダーティなチェックポイント待ち行列を維持するステップをさらに含み、
グローバルにダーティなチェックポイント待ち行列におけるエントリに関連するグローバルにダーティなデータ項目は、ディスクへの書込動作によりカバーされるまで保持されず、前記方法はさらに、
各キャッシュについて、ローカルにダーティなチェックポイント待ち行列のヘッドにおけるエントリの最初にダーティ化された時間と、グローバルにダーティなチェックポイント待ち行列のヘッドにおけるエントリの最初にダーティ化された時間との低い方に基づいて、チェックポイントを決定するステップと、
前記故障の後、前記キャッシュについて決定されたチェックポイントに基づいて、各キャッシュに関連するリドゥログをどこで処理し始めるかを決定するステップとを含む、請求項11に記載の方法。 - 前記多数のキャッシュの各々について、グローバルにダーティなチェックポイント待ち
行列、およびローカルにダーティなチェックポイント待ち行列を維持するステップをさらに含み、
グローバルにダーティなチェックポイント待ち行列におけるエントリに関連するグローバルにダーティなデータ項目は、ディスクへの書込動作によりカバーされるまで保持されず、前記方法はさらに、
各キャッシュについて、第1の時間を示すローカルにダーティなチェックポイント待ち行列についての1番目のチェックポイントレコードを維持するステップを含み、ここで、第1の時間に先立ってキャッシュ内で現在ダーティであるデータ項目になされたすべての変更は、永続的記憶装置上のデータ項目のバージョン上に記録されており、前記方法はさらに、
各キャッシュについて、グローバルにダーティなチェックポイント待ち行列についての2番目のチェックポイントレコードを維持するステップを含み、第2のチェックポイントレコードは、キャッシュ内で一旦ダーティ化されたもののその後転送されて永続的記憶装置に書込まれていないデータ項目のリストを含み、前記方法はさらに、
前記故障の後、前記キャッシュについての1番目のチェックポイントレコードおよび前記2番目のチェックポイントレコードに基づいて、各キャッシュに関連するリドゥログをどこで処理し始めるかを決定するステップを含む、請求項11に記載の方法。 - リドゥログを処理するステップは、
リドゥログを走査するための開始位置を、1番目のチェックポイントレコードにより決定されるようなリドゥログにおける位置と、2番目のチェックポイントレコードにおけるデータ項目のリストになされた最も初期の変更により決定されるようなログにおける位置との小さい方に基づいて決定するステップと、
回復中、グローバルチェックポイントレコードにより示される位置とローカルチェックポイントレコードにより示される位置との間のリドゥログの部分について、グローバルチェックポイントレコードにおいて識別されたデータ項目に対応するログレコードのみを潜在的なリドゥ用に考慮するステップとを含む、請求項13に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27427001P | 2001-03-07 | 2001-03-07 | |
US10/092,047 US7065540B2 (en) | 1998-11-24 | 2002-03-04 | Managing checkpoint queues in a multiple node system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002572008A Division JP4242155B2 (ja) | 2001-03-07 | 2002-03-07 | 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009009599A true JP2009009599A (ja) | 2009-01-15 |
JP4486689B2 JP4486689B2 (ja) | 2010-06-23 |
Family
ID=40564944
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002572008A Expired - Lifetime JP4242155B2 (ja) | 2001-03-07 | 2002-03-07 | 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置 |
JP2008213995A Expired - Lifetime JP4486689B2 (ja) | 2001-03-07 | 2008-08-22 | 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002572008A Expired - Lifetime JP4242155B2 (ja) | 2001-03-07 | 2002-03-07 | 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置 |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP4242155B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185371A (ja) * | 2018-04-10 | 2019-10-24 | 富士通株式会社 | サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6199808B2 (ja) * | 2014-06-06 | 2017-09-20 | 株式会社東芝 | データベース装置およびデータアクセス方法 |
US10058661B2 (en) | 2014-12-04 | 2018-08-28 | Norton (Waterford) Limited | Inhalation monitoring system and method |
CN110727652B (zh) * | 2018-07-17 | 2023-06-30 | 阿里巴巴集团控股有限公司 | 一种云存储处理系统及其实现数据处理的方法 |
CN113239059B (zh) * | 2021-05-28 | 2024-05-14 | 北京达佳互联信息技术有限公司 | 一种分布式锁的切换方法、装置、服务器和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168730A (ja) * | 1993-12-15 | 1995-07-04 | Toshiba Corp | チェックポイント採取方式 |
JPH096546A (ja) * | 1995-06-19 | 1997-01-10 | Toshiba Corp | ディスク制御システム |
JP3154942B2 (ja) * | 1995-09-11 | 2001-04-09 | 株式会社東芝 | 分散チェックポイント生成方法および同方法が適用される計算機システム |
JP3258228B2 (ja) * | 1996-03-15 | 2002-02-18 | 株式会社東芝 | チェックポイント生成方法 |
JP3120033B2 (ja) * | 1996-03-19 | 2000-12-25 | 株式会社東芝 | 分散メモリ型マルチプロセッサシステム及び故障回復方法 |
JPH09330237A (ja) * | 1996-06-07 | 1997-12-22 | Toshiba Corp | プロセス切り替え装置およびプロセス切り替え方法 |
JP3725318B2 (ja) * | 1997-01-24 | 2005-12-07 | 株式会社東芝 | プロセス状態の管理方法およびプロセス管理装置、並びにこれを行うプログラムを記録した記録媒体 |
-
2002
- 2002-03-07 JP JP2002572008A patent/JP4242155B2/ja not_active Expired - Lifetime
-
2008
- 2008-08-22 JP JP2008213995A patent/JP4486689B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019185371A (ja) * | 2018-04-10 | 2019-10-24 | 富士通株式会社 | サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム |
US11232007B2 (en) | 2018-04-10 | 2022-01-25 | Fujitsu Limited | Server system and method of switching server |
JP7106953B2 (ja) | 2018-04-10 | 2022-07-27 | 富士通株式会社 | サーバ切り替えプログラム、サーバ切り替え方法、及びサーバ切り替えシステム |
Also Published As
Publication number | Publication date |
---|---|
JP2005506598A (ja) | 2005-03-03 |
JP4486689B2 (ja) | 2010-06-23 |
JP4242155B2 (ja) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4293790B2 (ja) | 分散共有ディスクシステムにおけるディスク書込 | |
US7065540B2 (en) | Managing checkpoint queues in a multiple node system | |
US7930278B2 (en) | Methods to perform disk writes in a distributed shared disk system needing consistency across failures | |
AU2002335503A1 (en) | Disk writes in a distributed shared disk system | |
JP3815967B2 (ja) | あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置 | |
CA2440277C (en) | Managing checkpoint queues in a multiple node system | |
AU2002248570A1 (en) | Managing checkpoint queues in a multiple node system | |
JP4486689B2 (ja) | 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法 | |
EP1366420B1 (en) | Disk writes in a distributed shared disk system | |
EP1162538B1 (en) | Transferring a resource from a first cache to a second cache | |
AU2003213536B2 (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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090430 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090603 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091125 |
|
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: 20100309 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100326 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4486689 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140402 Year of fee payment: 4 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |