JPH10116259A - 2ノード分散型コンピュータ・システムにおけるクオラム機構 - Google Patents

2ノード分散型コンピュータ・システムにおけるクオラム機構

Info

Publication number
JPH10116259A
JPH10116259A JP9144026A JP14402697A JPH10116259A JP H10116259 A JPH10116259 A JP H10116259A JP 9144026 A JP9144026 A JP 9144026A JP 14402697 A JP14402697 A JP 14402697A JP H10116259 A JPH10116259 A JP H10116259A
Authority
JP
Japan
Prior art keywords
node
shared
failure
tie
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9144026A
Other languages
English (en)
Inventor
Hossein Moiin
ホセイン・モイイン
Ottalingam Satyanarayanan
オッタリンガム・ティー・サトヤナラヤナン
Angelo Pruscino
アンジェロ・プルスチーノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10116259A publication Critical patent/JPH10116259A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership

Abstract

(57)【要約】 (修正有) 【課題】 2ノード分散型コンピュータ・システムにお
いて障害を発生したノードが共有資源の予約を放棄する
ことを必要としないクオラム機構を提供する。 【解決手段】 障害を発生した分散型コンピュータ・シ
ステムの各ノードは、クオラム・コントローラとして指
定された2つの共有記憶装置の予約を成功させることに
よるクオラムを達成する競争を行う。分散型コンピュー
タ・システムの正常動作の間、クオラム・コントローラ
の各々は、各ノードに関連付けられ、これによって予約
されている。分散型コンピュータ・システムの障害検出
に応答したクオラムのための競争の間、障害を発生して
いない各ノードは、他のノードに関連するクオラム・コ
ントローラを強制的に予約する。1つのノードが双方の
クオラム・コントローラに対する予約を保持した場合、
このノードはクオラムを獲得したことになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散型コンピュー
タ・システムにおけるフォールト・トレランス(fault t
olerance)に関し、更に特定すれば、障害を発生した分
散型コンピュータ・システムにおいて、2つのノードの
どちらが共有資源に対する排他的アクセスを有するのか
を判定するための特に堅牢な(robust)機構に関するもの
である。
【0002】
【従来の技術】今日のコンピュータによって実行される
タスクの複雑性は急速な成長を続けている。したがっ
て、コンピュータ・アプリケーションやデータベースが
多数のコンピュータに分散される分散型コンピュータ・
システムの重要性が、劇的に高まりつつある。
【0003】分散型コンピュータ・システムでは、当該
分散型コンピュータ・システムを構成する通常「ノー
ド」または「ホスト」と呼ばれる多数のコンピュータ
が、分散型データベースを集合的に格納する記憶装置へ
のアクセスを共有する。分散型コンピュータ・システム
の構成物が障害を発生すると、分散型データベースの信
頼性の低下、劣化(corruption)を生じ、したがって分散
型データベースに格納されている貴重で恐らくは交換が
できない情報を失うという潜在的な危険性を生ずる可能
性がある。以下にその代表的な例をあげる。
【0004】分散型コンピュータ・システムの2つのノ
ードが正常に動作し続けているが、これら2つのノード
間で共有記憶装置へのアクセスを調整する通信リンクが
障害を発生したと仮定する。データベースへの共用アク
セスは調整できないにも拘わらず、2つのノードの各々
は分散型データベースへのアクセスを継続する可能性が
ある。双方のノードが分散型データベースにアクセスし
つづける場合、分散型データベースは劣化する可能性が
非常に高くなり、その結果貴重な情報が簡単に失われる
可能性がある。これは、一般的に「スプリット・ブレイ
ン(split-brain)」問題として知られている。
【0005】以下の例は、スプリット・ブレインの問題
をより詳細に例示するものである。2台の別個のコンピ
ュータを用いて、分散型データベースにおける銀行の記
録を維持すると仮定する。更に、単一の口座へのアクセ
スを有する2人の人がその口座にほぼ同時に預金すると
仮定する。この場合、各預金トランザクションは、2台
のコンピュータの各々によって分散型データベースに記
録される。更にまた、これら2台のコンピュータ間の通
信が全て不可能になっていると仮定する。各コンピュー
タは口座の現残高、例えば、200ドルを探し出し、次
いで以前の残高と預金額、例えば、一方の人によって5
00ドル、他方の人によって100ドル、との和を新た
な残高として格納する。これらのコンピュータが異なる
時点において分散型データベースにアクセスするのであ
れば、各預金が正確に分散型データベースに記録される
可能性がある。しかしながら、各コンピュータがほぼ同
時に現残高を探し出すとすると、各々が現残高を200
ドルと判定し、記録されている残高を700ドルまたは
300ドルのいずれかと置き換える。したがって、新た
な残高は、どちらのコンピュータが最後に新たな残高を
記録したかに応じて、700ドルまたは300ドルのい
ずれかとなり、預金の損失は検出されないままとなる。
しかしながら、これらのコンピュータの内一方のみが分
散型データベースへのアクセスを許可されている場合、
いずれかの預金が記録されなかったことがわかり、矯正
動作を取ることができる。
【0006】以上に示した例では、単一のトランザクシ
ョンに関する実際の情報が失われたことになる。状況に
よっては、例えば、分散型データベースの様々なレコー
ドの位置に関する情報のような、分散型データベースに
格納されている情報の相互関係に関する情報を失う可能
性もある。このような情報が失われた場合、分散型デー
タベースの大部分が検索不能となる。したがって、スプ
リット・ブレインの問題は、分散型データベースでは重
要な問題であり、回避しなければならない。
【0007】スプリット・ブレインの問題には、一般的
に2種類の解決法がある。即ち、2ノード分散型コンピ
ュータ・システムに関わる解決法と、2つよりも多いノ
ードを有する分散型コンピュータ・システムに関わる解
決法である。後者の部類では、通信リンクが障害を発生
すると、結果として、互いに通信が不可能となる2群の
ノードが生じる。従来の解決法の1つに、共有資源、例
えば、共有記憶装置へのアクセスを、分散型コンピュー
タ・システムのノードの単純過半数(simple majority)
を含む群に付与するというものがある。共有記憶装置に
対してこのようなアクセスを有する群のことを、一般的
に「クオラム(quorum):議決定数を有するもの」と呼ん
でいる。各群は、当該群のノード数を判定することがで
き、一方の群のみが、分散型コンピュータ・システムの
単純過半数を有することができる。過半数未満しか含ま
ない群は、自発的に共有資源のアクセスを放棄する。各
群が正確に分散型コンピュータ・システムのノードの半
分ずつを有する場合、問題は2ノード分散型コンピュー
タ・システムに関わるスプリット・ブレイン問題と類似
したものとなり、それに対する解決法が通常用いられ
る。
【0008】2ノード分散型コンピュータ・システムで
は、スプリット・ブレイン問題は、2つのノードにでき
るだけ多くの共有資源を予約する競争を行わせることに
よって解決することができる。この競争のことを、一般
的に、クオラムのための競争(race for quorum)と呼ん
でいる。各ノードは共有記憶装置全てを予約しようとす
る。あるノードが全共有記憶装置の単純過半数を予約す
ることに成功した場合、そのノードはクオラムを獲得
し、全共有装置へのアクセスを獲得する。逆に、あるノ
ードが全共有記憶装置の単純過半数を予約できなかった
場合、そのノードは自発的にいずれの共有記憶装置への
アクセスをも放棄する。このように、2ノード分散型コ
ンピュータ・システムの一方のノードが障害を発生した
場合、残りのノードは共有記憶装置の過半数を首尾良く
予約し、この共有記憶装置にアクセスすることによっ
て、分散型データベースの管理を継続する。加えて、2
ノード分散型コンピュータ・システムの2つのノード間
の全通信リンクが障害を発生した場合、これら2つのノ
ードは共有記憶装置を予約する競争を行い、クオラムの
ための競争に勝利したノードが、共有記憶装置にアクセ
スすることによって、分散型データベースの管理を継続
し、クオラムのための競争に負けたノードは自発的にあ
らゆる共有記憶装置へのアクセスをも放棄することによ
り、分散型データベースの劣化を回避する。
【0009】
【発明が解決しようとする課題】共有記憶装置の予約を
競争パラメータとして使用することは、このような共有
記憶装置の予約が、このような共有記憶装置に対するア
クセスの必要な部分である場合、現実が不可能となる。
例えば、2ノード分散型コンピュータ・システムの一方
のノードが障害を発生した場合、障害ノードによって保
持されていた予約が放棄されない場合がある。その結
果、障害を発生していない残りのノードが共有記憶装置
の過半数を予約できず、したがって通常に動作を継続で
きない、即ち、残りのノードがクオラムのための競争に
敗れたとの誤解の下に、共有記憶装置へのアクセスを自
発的に放棄する可能性がある。このような問題は、単一
の共有記憶装置をクオラム・コントローラとして指定
し、それを予約することがクオラムための競争に勝利す
ることを意味する、従来の分散型コンピュータ・システ
ムにおいては更に可能性が高くなる。障害を発生したノ
ードがクオラム・コントローラの予約を保持し、放棄し
損なう可能性がある。障害を発生していないノードがク
オラムを達成できないと、分散型コンピュータ・システ
ムが障害を発生するが、残りのノードはこのようなこと
が起こらなければ通常では正常に動作を続けることがで
きるので、このような障害は不要である。障害がソフト
ウエア関連である場合、例えば、ノードのオペレーティ
ング・システムが障害を発生したり、あるいは分散型デ
ータベースにアクセスしたり管理するコンピュータ・プ
ロセスが障害を発生した場合、障害を発生したノードが
装置の予約を維持する可能性がある。オペレーティング
・システムが障害を発生した場合、保持されている装置
の予約を放棄した状態にノードを修復するには、通常人
間の相互作用が必要となる。オペレーティング・システ
ム以外のコンピュータ・プロセスが障害を起こした場
合、この障害はオペレーティング・システムによって検
出されないままになる可能性がある。
【0010】したがって、当業界において未解決の課題
として残っているのは、障害を発生したノードが共有記
憶装置の予約を放棄することを必要としないクオラム機
構である。
【0011】
【課題を解決するための手段】本発明によれば、障害を
発生した分散型コンピュータ・システムの各ノードは、
クオラム・コントローラとして指定された2つの共有記
憶装置の予約を成功させることによってクオラムを達成
しようとする競争を行う。分散型コンピュータ・システ
ムの正常動作の間、各クオラム・コントローラはそれぞ
れのノードに関連付けられ、それによって予約されてい
る。分散型コンピュータ・システムにおいて障害が検出
されたことに応答してクオラムのための競争が行われる
と、障害を発生していない各ノードは強制的に、他方の
ノードに対応するクオラム・コントローラを予約する。
1つのノードが双方のクオラム・コントローラの予約を
同時に保持した場合、そのノードはクオラムを獲得した
ことになる。他のノードが同一の記憶装置に対して有効
な予約を保持していても、共有記憶装置の強制的予約は
必ず行われる。したがって、障害を発生したノードが当
該ノードのクオラム・コントローラに対する予約を放棄
しなくても、他方のノードがクオラムを獲得する妨げに
はならない。
【0012】強制的に他方のノードのクオラム・コント
ローラを予約する前に、各ノードは、そのノード自体に
対応するクオラム・コントローラの予約を保持し続けて
いることを確認する。あるノードが当該ノード自体に関
連するクオラム・コントローラの予約をもはや保持して
いない場合、そのノードはクオラムのための競争に敗れ
たことになる。なぜなら、他方のノードが既に前者のノ
ードに関連するクオラム・コントローラを強制的に予約
しているからである。このように、本発明によれば、障
害発生ノードによって保持されている共有記憶装置の予
約を当該障害発生ノードが放棄しなくとも、障害を発生
した分散型コンピュータ・システムの独立したノードに
よって、クオラムが効率的かつ効果的に決定される。
【0013】あるノードが他方のノードのクオラム・コ
ントローラを強制的に予約したが、当該ノード自体のク
オラム・コントローラに対する有効な予約をもはや保持
していない場合、クオラムのための競争は引き分けに終
わる。引き分けという結果に対しては、分散型コンピュ
ータ・システムのノード双方が動作状態であるに相違な
い。したがって、一方のノードが共有記憶装置の予約を
放棄し損なうという可能性はない。このために、第2の
クオラムのための競争を用いて分散型コンピュータ・シ
ステムのノード間の引き分けを解決する。この第2のク
オラムのための競争の前に、各ノードはあらゆるクオラ
ム・コントローラに対する全ての予約を放棄し、いずれ
のノードもクオラム・コントローラを予約していない状
態とする。第2のクオラムのための競争では、各ノード
は所定のシーケンスでクオラム・コントローラの内選択
された一方を予約しようとする。選択されたクオラム・
コントローラの予約に成功したノードが第2のクオラム
のための競争に勝利し、共有記憶装置のいずれにもアク
セスすることが可能となる。他方のノードはクオラムを
獲得できなかったと判断し、あらゆる共有記憶装置への
アクセスを自発的に放棄する。
【0014】第2のクオラムのための競争では強制予約
を使用するので、一方のノードがクオラム・コントロー
ラに対する予約を放棄しなくとも、他方のノードがクオ
ラムを獲得する妨げにはならず、したがって、分散型コ
ンピュータ・システムの共有記憶装置へのその後のアク
セスの妨げにもならない。したがって、本発明は、障害
を発生した分散型コンピュータ・システムにおいて、従
来技術の機構と比較して、格段にロバスト性を高めかつ
障害に強い機構を提示するものである。加えて、各ノー
ドは正常動作の間クオラム・コントローラを予約してい
るので、クオラムのための競争の間にこのような予約を
失うことは、他方のノードが強制的にそのクオラム・コ
ントローラを予約しており、したがって動作状態にある
ことを示す。その結果、第1のクオラムのための競争が
引き分けに終わった場合、クオラムを解決するために、
各ノードがクオラム・コントローラの予約を放棄するこ
とを必要とする第2のクオラムのための競争を用いるこ
とができる。
【0015】
【発明の実施の形態】本発明によれば、2ノード分散型
コンピュータ・システム100の2台の共有記憶装置、
例えば、共有記憶装置112A,112B(図2)がク
オラム・コントローラに指定され、新規なクオラム獲得
プロセスにおいて使用される。これについては以下でよ
り詳細に説明する。端的に言えば、分散型コンピュータ
・システム100のノード100A,100Bの各々
は、 他方のノードの障害を検出し、クオラム獲得プロ
セスを実行して、ノード100A,100Bのどちらが
クオラムを獲得したか、したがってどちらが共有記憶装
置112A〜112Dに対するアクセスを得て動作し続
けることができるのかについての同意を形成する。各ノ
ードは、正常動作の間、クオラム・コントローラの各1
つを予約している。ノードは双方のクオラム・コントロ
ーラを予約することによって1つのクオラムを獲得す
る。また、ノードは強制予約を用いることによって、通
常は他方のノードに予約されているクオラム・コントロ
ーラを予約する。これについては以下でより詳細に説明
する。一方のノードが同一記憶装置に対して有効な予約
を保持している場合でも、共有記憶装置の強制予約は必
ず行われるので、障害発生ノードが他方のノードのクオ
ラム獲得を妨げるのを防止する。
【0016】本発明の評価は、2ノード分散型コンピュ
ータ・システム100(図1)のハードウエアおよびソ
フトウエア構成物についての以下の説明によって、容易
に得られよう。分散型コンピュータ・システム100
は、ノード100A,100Bを含む。ノード100
A,100Bは直接的に互いに類似しているので、以下
のノード100Aに関する説明はノード100Bにも等
しく適用可能である。
【0017】ノード100Aは、1つ以上のプロセッサ
102Aを含み、これらの各々は、バス106Aを通じ
てメモリ104Aからコンピュータ命令を読み出し、読
み出したコンピュータ命令を実行する。読み出したコン
ピュータ命令を実行する際、各プロセッサ102Aは、
バス106を通じて、メモリ104ならびに共有記憶装
置112A〜112Dのいずれかおよび全てに対して、
データの読み出しおよびデータの書き込みを行う。メモ
リ104は、あらゆるタイプのコンピュータ・メモリを
含むことができ、限定する訳ではないが、ランダムにア
クセス可能なメモリ(RAM)、リード・オンリ・メモ
リ(ROM)、ならびに磁気および/または光ディスク
のような磁気および/または光記憶媒体を使用する記憶
装置を含む。共有記憶装置112A〜112Dは各々記
憶装置または記憶装置のアレイであり、同時に2台以上
のコンピュータに結合することができる。図1に示すよ
うに、共有記憶装置112A〜112Dは、ノード10
0Aのバス106Aおよびノード100Bのバス106
Bに結合されている。共有記憶装置112A〜112D
の各々は、ノード110A,110Bの各々によって単
一装置としてアクセスされるが、共有記憶装置112A
〜112Dの各々は記憶装置のアレイとすることができ
る。例えば、共有記憶装置112A〜112Dのいずれ
かは、カリフォルニア州マウンテン・ビューのSun Micr
osystems社から入手可能なSPARC記憶アレイとすること
ができる。
【0018】共有記憶装置112A〜112Dの各々
は、ノード100AまたはノードBのいずれかによって
予約することができる。例えば、プロセッサ102Aの
いずれかはバス106を通じて共有記憶装置112Cに
制御信号を発行し、これによって記憶装置112Cを予
約することができる。制御信号に応答して、共有記憶装
置112Cは、共有記憶装置112Cが既に予約されて
いるか否かについて判定を行う。これは、共有記憶装置
112Cの物理状態、例えば、共有記憶装置112Cの
レジスタ内において表わされる、現予約ホルダーのフラ
グまたは識別状態で表わされる。共有記憶装置112C
が現在予約されていない場合、共有記憶装置112Cは
その物理的状態を変化させて、共有記憶装置112Cが
現在ノード100Aによって予約されていることを示
す。逆に、共有記憶装置112Cが現在予約されている
場合、共有記憶装置112Cはバス106を通じてプロ
セッサ102Aに、試行された予約は拒絶されたことを
示す信号を送る。
【0019】加えて、各プロセッサ102Aは、ネット
ワーク・アクセス装置108Aに制御信号を発行し、ネ
ットワーク110を通じてノード100Aのネットワー
ク・アクセス装置108Aとノード100Bのネットワ
ーク・アクセス装置108Bとの間で、ネットワーク・
アクセス装置108Aに従来のようにデータを転送させ
ることができる。一実施例では、ネットワーク110は
公知のイーサネット(Ethernet)ネットワークであり、ネ
ットワークアクセス装置108A,108Bは従来のイ
ーサネット・コントローラ回路である。
【0020】図2に分散型コンピュータ・システム10
0を簡略化した形態で示す。ノード100A内部で実行
されるのは次のコンピュータ・プロセスである。(i)分
散型データベース・スーパバイザ(distributed databas
e supervisor)202A、(ii)オペレーティング・シス
テム204A、(iii)分散型アプリケーション206
A。同様に、分散型データベース・スーパバイザ202
B、オペレーティング・システム204B、および分散
型アプリケーション206Bはノード100B内部で実
行され、それぞれ、分散型データベース・スーパバイザ
202A、オペレーティング・システム204A、およ
び分散型アプリケーション206Aと直接的に類似す
る。したがって、分散型データベース・スーパバイザ2
02A、オペレーティング・システム204A、および
分散型アプリケーション206Aに関する以下の説明
は、それぞれ、分散型データベース・スーパバイザ20
2B,オペレーティング・システム204B、および分
散型アプリケーション206Bにも等しく適用可能であ
る。
【0021】分散型アプリケーション206Aは分散型
アプリケーション206Bと協同して、共有メモリ装置
112A〜112Dの1つ以上に格納されている分散型
データベースを管理する。分散型アプリケーション20
6Aは、分散型データベースに対してデータの格納およ
びデータの読み出しを行うことによって、更にデータベ
ース内のメタデータを維持することによって、分散型デ
ータベースを管理する。メタデータとは、一般的に、デ
ータベース内の実データ(substantive data)の構造を表
わす、データベース内のデータのことを意味し、多くの
場合、データベースに格納されている実データ間の相互
関係を表わす。一実施例では、分散型データベース20
6Aは、カリフォルニア州、レッドウッド・ショアのOr
acle社から入手可能なOracle Parallel Serverである。
【0022】分散型データベースのいずれかのデータ、
例えば、分散型データベースの特定のデータ・ブロック
にアクセスする前に、分散型アプリケーション206A
は、分散型データベース・スーパバイザ202Aから、
この特定のデータ・ブロックに対する排他的アクセスを
要求する。分散型データベース・スーパバイザ202A
は、この特定のデータ・ブロックに対する排他的アクセ
スを獲得するために分散型データベース・スーパバイザ
202Bと調整を行い、分散型アプリケーション206
Aへの回答信号を通じて、分散型アプリケーション20
6Aがこの特定のデータ・ブロックに対して排他的アク
セスが得られるか否かを標示する。分散型アプリケーシ
ョン206Aが特定のデータ・ブロックに対する排他的
アクセスの獲得に成功した場合、分散型アプリケーショ
ン206Aは特定のデータ・ブロックにデータを格納す
ることができ、したがってノード100Bによる同時ア
クセスや分散型データベースの劣化の危険性はない。
【0023】分散型データベース・スーパバイザ202
Aは、分散型データベース・スーパバイザ202Bと通
信および協同して、分散型アプリケーション206Aに
対して、共有記憶装置112A〜112Dに格納されて
いる指定のデータ・ブロックに対する排他的アクセスを
獲得および放棄させる。分散型データベース・スーパバ
イザ202A,202Bは通信リンク210を通じて通
信する。通信リンク210は、ネットワーク・アクセス
装置108A〜108B(図1)およびネットワーク1
10を含む。ノード100B(図2)または通信リンク
210が障害を発生した場合、分散型データベース・ス
ーパバイザ202A(図2)はその障害を検出し、その
障害をオペレーティング・システム204Aに報告す
る。分散型データベース・スーパバイザ202Aによる
障害検出については、以下で詳細に説明する。
【0024】通信リンク210またはノード100Bの
障害検出に応答して、分散型データベース・スーパバイ
ザ202Aは、論理流れ図300(図3)に示すステッ
プにしたがって、クオラムを獲得しようとする。分散型
データベース・スーパバイザ202A(図2)が論理流
れ図300(図3)にしたがってクオラムの獲得に成功
した場合、分散型データベース・スーパバイザ202A
(図2)は、(i)分散型データベース・スーパバイザ2
02Bはもはや共有記憶装置112A〜112Dのいず
れにもアクセスできないと仮定し、(ii)分散型アプリケ
ーション206Aに共有記憶装置112A〜112Dに
アクセスし続けることを許す。逆に、分散型データベー
ス・スーパバイザ202Aが論理流れ図300(図3)
にしたがってクオラムを獲得できなかった場合、分散型
データベース・スーパバイザ202A(図2)は、(i)
ノード100Bは障害を発生しておらず、クオラムを獲
得したと仮定し、(ii)排他的アクセスを保証することが
できないので、共有記憶装置112A〜112Dに対す
るアクセスを分散型アプリケーション206Aに付与す
ることを自発的に放棄する。
【0025】論理流れ図300(図3)による処理は、
共有記憶装置112A〜112D(図2)の各1つが、
ノード100A,100Bの各々に対して、クオラム・
コントローラとして指定されていることを想定してい
る。例えば、共有記憶装置112Aはノード100Aの
クオラム・コントローラとして指定することができ、共
有記憶装置112Bはノード100Bのクオラム・コン
トローラとして指定することができる。通常、以下の基
準を満たす限り、あらゆる共有記憶装置を分散型コンピ
ュータ・システム100(図1)の1つのノードのクオ
ラム・コントローラとして指定することができる。第1
に、物理的に異なる共有記憶装置を、各ノードに対する
クオラム・コントローラとして指定しなければならな
い。第2に、特定のノードに対するクオラム・コントロ
ーラは、当該ノードの正常動作の間、このノードに予約
されなくてはならない。第3に、各ノードに対するクオ
ラム・コントローラは、分散型コンピュータ・システム
100のノードによって物理的に共有されなければなら
ない。ここに記載する代表例では、(i)共有記憶装置1
12A,112Bは物理的に異なる装置であり、(ii)共
有記憶装置112A,112Bは、ノード100A,1
00Bの正常動作の間、夫々ノード100A,100B
によって予約され、(iii)共有記憶装置112A,11
2Bは、物理的にノード100A,100Bによって共
有される。したがって、共有記憶装置112A,112
Bをそれぞれノード100A,100Bに対するクオラ
ム・コントローラとして指定することは、適切な指定で
ある。
【0026】更に、論理流れ図300(図3)による処
理は、ノード100A(図2),100Bのクオラム・
コントローラが順序付けられていることを想定してい
る。ノード100A,100B双方がクオラム・コント
ローラの特定の順序付けに対して同意している限り、ク
オラム・コントローラの特定の順序は特に重要ではな
い。この代表例では、共有記憶装置112Aが最初のク
オラム・コントローラであり、共有記憶装置112Bは
2番目のクオラム・コントローラである。クオラム・コ
ントローラの順序付けは、クオラムのための最初の競争
が引き分けに終わった場合に、クオラムのための第2の
競争を行うために用いられるが、これについては以下で
より詳細に説明する。
【0027】通信リンク210の障害の場合、ノード1
00A,100B各々が障害を検出した際に、これら双
方が独立して論理流れ図300(図3)のステップを実
行することを覚えておくと、論理流れ図300(図3)
の以下の説明を理解する上で役立つであろう。論理流れ
図300(図3)は、ノード100Aに関して説明す
る。ノード100Bによる論理流れ図300(図3)の
処理は、以下に説明するノード100A(図2)による
論理流れ図300(図3)の処理と直接類似するもので
ある。
【0028】ステップ302ないし308(図3)は、
ノード100A(図2)と100B間のクオラムのため
の競争を表わす。ステップ302(図3)において、論
理流れ図300による処理が開始される。ステップ30
2において、分散型データベース・スーパバイザ202
A(図2)は、ノード100Aに代わって、分散型デー
タベース・スーパバイザ202Aが実行されるノード、
即ち、ノード100Aのクオラム・コントローラを予約
する。分散型データベース・スーパバイザ202Aによ
る共有記憶装置の予約は、従来からのものであり公知で
あるが、完全な理解のために簡単に説明する。
【0029】分散型データベース・スーパバイザ202
Aは、プロセッサ102A(図1)を通じてコンピュー
タ命令を発行することによって、共有記憶装置112A
〜112Dのいずれか1つ、例えば、共有記憶装置11
2Cを予約する。このコンピュータ命令を実行すること
によって、共有記憶装置112Cに、ノード100Aに
よる共有記憶装置112Cの予約を要求する信号を送
る。共有記憶装置112Cが予約されていない場合、共
有記憶装置112Cはその物理的状態を予約状態に変化
させ、この予約状態において、記憶装置112Cは、プ
ロセッサ102Aを通じて、共有記憶装置112Cがノ
ード100Aによって予約されることを示す信号を分散
型データベース・スーパバイザ202Aに送る。逆に、
予約要求信号がプロセッサ102Aから受信されたとき
に共有記憶装置112Cが予約されている場合、共有記
憶装置112Cは、プロセッサ102Aを通じて、共有
記憶装置112Cに要求された予約が拒絶されたことを
示す信号を分散型データベース・スーパバイザ202A
に送る。本実施例では、予約はノードによって保持され
るので、分散型データベース・スーパバイザ202Aは
ノード100Aに代わって予約を要求する。
【0030】分散型データベース・スーパバイザ202
Aとの関係において、ノード100Aのクオラム・コン
トローラを「ローカル・クオラム・コントローラ」と呼
ぶ。この代表例では、ローカル・クオラム・コントロー
ラは共有記憶装置112Aである。多くの場合、ステッ
プ302(図3)は無処理(null operation)である。即
ち、プロセッサ102A(図1)が何も行わないステッ
プである。なぜなら、ノード100A(図2)は通常ロ
ーカル・クオラム・コントローラを予約してあるからで
ある。ステップ302(図3)から、処理は検査ステッ
プ304に移り、分散型データベース・スーパバイザ2
02A(図2)は、ローカル・クオラム・コントローラ
の予約が成功したか否かについて判定を行う。以下でよ
り詳細に論ずるが、分散型データベース・スーパバイザ
202A(図2)がステップ302(図3)を実行する
前に、分散型データベース・スーパバイザ202Bが後
に説明するステップ308(図3)を実行した場合、ロ
ーカル・クオラム・コントローラの予約ができない可能
性がある。このような状況の下では、分散型データベー
ス・スーパバイザ202B(図2)がクオラムのための
競争に勝利し、共有記憶装置112A〜112Dにアク
セスすることができる。
【0031】分散型データベース・スーパバイザ202
Aがローカル・クオラム・コントローラの予約に失敗し
た場合、処理は検査ステップ304(図3)からステッ
プ306に移り、分散型データベース・スーパバイザ2
02A(図2)は処理を中断する。ステップ306(図
3)を論理流れ図400(図4)としてより詳細に示
す。この論理流れ図はステップ402において開始され
る。ステップ402において、分散型データベース・ス
ーパバイザ202A(図2)は、ノード100Aによっ
て保持されている、共有記憶装置112A〜112Dの
予約を全て放棄する。処理はステップ404(図4)に
移り、分散型データベース・スーパバイザ202A(図
4)は、分散型アプリケーション206A(図2)から
の共有記憶装置112A〜112Dのいずれへのアクセ
スも拒否する。ステップ404(図4)の後、論理流れ
図400による処理、即ち、ステップ306(図3)は
終了する。ステップ306の後、論理流れ図300によ
る処理は終了し、分散型データベース・スーパバイザ2
02A(図2)はクオラムのための競争に敗れたことに
なる。
【0032】検査ステップ304(図3)において、分
散型データベース・スーパバイザ202A(図2)が、
ノード100Aによるローカル・クオラム・コントロー
ラ即ちこの代表例では共有記憶装置112Aの予約が成
功したと判定した場合、処理はステップ308(図3)
に移る。ステップ308において、分散型データベース
・スーパバイザ202A(図2)は、ノード100Aに
代わって、分散型データベース・スーパバイザ202A
が実行していないノード、即ち、ノード100Bのクオ
ラム・コントローラを強制的に予約する。分散型データ
ベース・スーパバイザ202Aとの関係において、ノー
ド100Bのクオラム・コントローラを「リモート・ク
オラム・コントローラ」と呼ぶ。この代表例では、リモ
ート・クオラム・コントローラは共有記憶装置112B
のことである。通常、既に他のコンピュータ・プロセス
によって予約されている装置を予約しようとしても、不
可能である。しかしながら、強制予約は、他のノードに
よって保持され続けている装置の以前の予約には無関係
に、達成される予約である。強制予約は公知であり、共
通アクセス方法(CAM:Common Access Method)委員会によ
って確立された小型コンピュータ直列インターフェース
3(SCSI-3)標準の一部である。
【0033】このように、ノード100B自体または分
散型データベース・スーパバイザ202Bが障害を発生
した場合、即ち、ノード100Bまたは分散型データベ
ース・スーパバイザ202Bが現在動作不能の場合、分
散型データベース・スーパバイザ202Aは、ステップ
302(図3)および308において、ノード100A
のために双方のクオラム・コントローラを予約する。分
散型データベース・スーパバイザ202B(図2)がそ
のローカル・クオラム・コントローラ、例えば、共有記
憶装置112Bのノード100Bの予約を放棄し損ねた
場合でも、これは行われる。その理由は、分散型データ
ベース・スーパバイザ202Aは、ノード100Aに代
わって、ノード100Bのローカル・クオラム・コント
ローラを強制的に予約するからである。したがって、分
散型コンピュータ・システム100(図1)の一方のノ
ードが障害を発生したときに、共有記憶装置の予約を放
棄できなくても、分散型コンピュータ・システム100
が障害を発生するという結果には至らず、残りの動作状
態にあるノードがクオラムを獲得することができる。分
散型データベース・スーパバイザ202B(図2)のロ
ーカル・クオラム・コントローラは分散型データベース
202Aのリモート・クオラム・コントローラであり、
分散型データベース・スーパバイザ202Bのリモート
・クオラム・コントローラは分散型データベース・スー
パバイザ202Aのローカル・クオラム・コントローラ
であることは認められよう。
【0034】ノード100Bおよび分散型データベース
・スーパバイザ202Bが動作し続ける場合、ステップ
302ないし308(図3)は、双方のクオラム・コン
トローラの予約の競争を表わす。検査ステップ304に
関して既に述べたように、分散型データベース・スーパ
バイザ202A(図2)がノード100Aの代わりにそ
のローカル・クオラム・コントローラの予約に失敗する
可能性がある。このような予約に失敗するのは、分散型
データベース・スーパバイザ202A(図2)によるス
テップ302の実行の前に、分散型データベース・スー
パバイザ202B(図2)がステップ308(図3)を
実行し、強制的にそのリモート・クオラム・コントロー
ラ、即ち、分散型データベース・スーパバイザ202A
(図2)のローカル・クオラム・コントローラを予約す
る場合である。このような状況では、先により詳細に説
明したように、分散型データベース・スーパバイザ20
2Bがクオラムのための競争に勝利し、分散型データベ
ース・スーパバイザ202Aはステップ306(図3)
において処理を中断する(abort)。
【0035】分散型データベース・スーパバイザ202
A(図2)がステップ302(図3)ないし308にお
けるクオラムのための競争に勝利した場合、ノード10
0A(図2)は、ローカル・クオラム・コントローラお
よびリモート・クオラム・コントローラの双方、例え
ば、共有記憶装置112A,112B双方を予約したこ
とになる。逆に、分散型データベース・スーパバイザ2
02Aがクオラムのための競争に敗れた場合、ノード1
00Bはローカルおよびリモート・クオラム・コントロ
ーラ双方を予約し、分散型データベース・スーパバイザ
202Aによる処理は、ステップ306(図3)の実行
の後終了する。
【0036】分散型データベース・スーパバイザ202
A(図2),202B間のクオラムのための競争が引き
分けに終わった場合、即ち、分散型データベース・スー
パバイザ202A,202Bがステップ302ないし3
08(図3)、特にステップ308、をほぼ同時に実行
した場合、ノード100A,100Bの各々はリモート
・クオラム・コントローラは予約してあるが、ローカル
・クオラム・コントローラは予約していない。この代表
例では、このような引き分けの結果、共有記憶装置11
2B(図2)はノード100Aによって予約され、共有
記憶装置112Aはノード100Bによって予約され
る。ステップ310ないし312(図3)において、分
散型データベース・スーパバイザ202A(図2)はこ
のような引き分けを検査し、分散型データベース・スー
パバイザ202Bも別個に独立してステップ310ない
し312(図3)を実行する。
【0037】ステップ310において、分散型データベ
ース・スーパバイザ202A(図2)は、ノード100
Aに代わって、そのローカル・クオラム・コントローラ
を予約しようとする。検査ステップ312(図3)にお
いて、分散型データベース・スーパバイザ202A(図
2)は、ステップ310(図3)で試行した予約が成功
したか否かについて判定を行う。ローカル・クオラム・
コントローラの予約が成功した場合、分散型データベー
ス・スーパバイザ202A(図2)は、クオラムのため
の競争に勝利したことになり、論理流れ図300(図
3)による処理は終了する。分散型データベース・スー
パバイザ202A(図2)がクオラムのための競争に勝
利した場合、分散型データベース・スーパバイザ202
Aは、分散型アプリケーション206Aによる共有記憶
装置112A〜112Dのいずれかへのアクセス要求を
付与することができる。検査ステップ312(図3)に
おいて、分散型データベース・スーパバイザ202A
(図2)が、ステップ310(図3)で試行した予約が
失敗であったと判定した場合、分散型データベース・ス
ーパバイザ202A(図2)は、ステップ302ないし
308(図3)のクオラムのための競争が引き分けに終
わったと判定し、処理は検査ステップ312からステッ
プ314に移る。
【0038】ステップ314ないし324は、分散型デ
ータベース・スーパバイザ202A(図2),202B
がクオラムのための第2の競争に参加する、引き分け解
消機構(tie-breaking mechanism)を表わす。ステップ3
14(図3)が実行されるのは、クオラムのための最初
の競争が引き分けに終わったときのみであるので、分散
型データベース・スーパバイザ202A(図2),20
2Bは、分散型データベース・スーパバイザ202A,
202B双方が動作状態にあり、検出された障害は通信
リンク210にあると仮定する。したがって、クオラム
のための第2の競争は、共有記憶装置112A〜112
Dの予約機構を、クオラムのための第2の競争の仲裁機
構(arbitration mechanism)として使用することができ
る。ステップ314(図3)において、分散型データベ
ース・スーパバイザ202A(図2)は、ノード100
Aにリモート・クオラム・コントローラに対する予約を
放棄させて、ノード100Aがもはやいずれのクオラム
・コントローラも予約していない状態にする。同様に分
散型データベース・スーパバイザ202Bによる独立し
たステップ314(図3)の実行により、分散型データ
ベース・スーパバイザ202Bは、ノード100Bにそ
のリモート・クオラム・コントローラを放棄させ、ノー
ド100Bがもはやいずれのクオラム・コントローラも
予約していない状態にする。処理はステップ314(図
3)からステップ316に移る。
【0039】ステップ316において、分散型データベ
ース・スーパバイザ202A(図2)は、ランダムに選
択された量の時間だけ待つ。具体的には、分散型データ
ベース・スーパバイザ202Aは、所定の時間範囲内の
時間量を表わす乱数を発生し、分散型データベース・ス
ーパバイザ202Aは、そのランダムに選択された量の
時間の間動作不能状態となる。待つべき時間量は不規則
に発生される数に従うので、分散型データベース・スー
パバイザ202A,202Bが待つ時間量は異なる可能
性があり、したがって、それぞれ独立して実行するステ
ップ316(図3)が異なる時点で終了する可能性があ
る。
【0040】処理はステップ318に移り、分散型デー
タベース・スーパバイザ202A(図2)は、ノード1
00Aの代わりに、第1クオラム・コントローラを予約
しようとする。上述のように、クオラム・コントローラ
は順序付けられており、双方の分散型データベース・ス
ーパバイザ202A,202Bにおいて同じ順序付けを
有する。したがって、分散型データベース・スーパバイ
ザ202A(図2),202Bによって同様にかつ別個
に実行されるステップ318(図3)において、分散型
データベース・スーパバイザ202Aおよび分散型デー
タベース・スーパバイザ202B双方は、同じクオラム
・コントローラ、即ち、同じ共有記憶装置を予約しよう
とする。この例では、共有記憶装置112Aが第1クオ
ラム・コントローラである。
【0041】ステップ318(図3)から、処理はステ
ップ320に移り、分散型データベース・スーパバイザ
202A(図2)は、ステップ318(図3)において
試行した予約が成功であったか否かについて判定を行
う。試行した予約が失敗であった場合、分散型データベ
ース・スーパバイザ202A(図2)はクオラムのため
の第2の競争に敗れたことになり、処理はステップ30
6(図3)に移り、先により詳細に説明したように、分
散型データベース・スーパバイザ202A(図2)は処
理を中断する。逆に、分散型データベース・スーパバイ
ザ202Aが検査ステップ320(図3)において、ス
テップ318において試行した予約が成功したと判定し
た場合、処理はステップ322に移る。この時点では、
分散型データベース・スーパバイザ202A(図2)
は、分散型データベース・スーパバイザ202Aがクオ
ラムを獲得したことを確認することができない。分散型
データベース・スーパバイザ202A,202Bは独立
して、しかも恐らく異なる速度で実行するので、分散型
データベース・スーパバイザ202Aは、以下で説明す
る、分散型データベース・スーパバイザ202Bによる
ステップ322の実行よりも前に、ステップ308(図
3)を実行する可能性がある。このような状況では、ノ
ード100Bは第2クオラム・コントローラ、例えば、
共有記憶装置112Bを予約してあり、したがって分散
型データベース・スーパバイザ202Aは、ノード10
0Aに代わって、双方のクオラム・コントローラを予約
することができず、そのためクオラムを獲得することが
できない。
【0042】ステップ322において、分散型データベ
ース・スーパバイザ202A(図2)は、第2のクオラ
ム・コントローラを予約しようとする。この代表例の場
合、第2のクオラム・コントローラとは、共有記憶装置
112Bのことである。ステップ322(図3)から、
処理は検査ステップ324に移り、分散型データベース
・スーパバイザ202A(図2)はステップ322(図
3)で試行した予約が成功したか否かについて判定を行
う。試行した予約が失敗した場合、分散型データベース
・スーパバイザ202A(図2)はクオラムのための第
2の競争に敗れたことになり、処理はステップ306
(図3)に移り、先により詳細に説明したように、分散
型データベース・スーパバイザ202A(図2)はその
処理を中断する。このような状況では、分散型データベ
ース・スーパバイザ202Bは、ステップ316ないし
324(図3)の処理実行を進め、クオラムの獲得に成
功する。逆に、分散型データベース・スーパバイザ20
2A(図2)が検査ステップ324(図3)において、
ステップ322で試行した予約が成功であったと判断し
た場合、分散型データベース・スーパバイザ202A
(図2)はクオラムのための第2の競争に勝利したこと
になり、論理流れ図300(図3)による処理は終了す
る。上述のように、分散型データベース・スーパバイザ
202A(図2)がクオラムのための競争に勝利した場
合、分散型データベース・スーパバイザ202Aは、共
有記憶装置112Aないし112Dのいずれかへのアク
セスを分散型アプリケーション206Aに付与する。
【0043】このように、論理流れ図300(図3)の
ステップによって、分散型データベース・スーパバイザ
202A(図2),202Bは分散型データベース・ス
ーパバイザ202A,202Bのどちらがクオラムを獲
得するのかに関して、独立して同意に達することができ
るため、障害を起こしたノードが障害の間の予約を放棄
しなくても、共有記憶装置112A〜112Dへのアク
セスを得ることができる。したがって、本発明は、従来
技術の機構に対して、2ノード分散型コンピュータ・シ
ステムのフォールト・トレランスの大幅な改善を表わす
ものである。
【0044】障害検出 上述のように、分散型データベース・スーパバイザ20
2A(図2)は、ノード100Bまたは通信リンク21
0のいずれかの障害を検出する。完全な理解のために、
分散型データベース・スーパバイザ202Aによる分散
型コンピュータ・システム100の障害発見について簡
単に説明する。分散型データベース・スーパバイザ20
2Aは、通常従来の方法で、例えば、所定の時間量の間
分散型データベース・スーパバイザ202Bからメッセ
ージが受信されないことを観察することによって、障害
を検出する。例えば、分散型データベース・スーパバイ
ザ202Aは、分散型データベース・スーパバイザ20
2Bに、分散型データベース・スーパバイザ202Bの
ステータスを表わすデータを含む信号を用いて応答する
ように、分散型データベース・スーパバイザ202Bに
命令するステータス要求信号を送るように構成される。
分散型データベース・スーパバイザ202Aがステータ
ス要求信号を送ってから所定の時間量以内、例えば、1
秒以内に分散型データベース・スーパバイザ202Bか
らこのようなデータを受信しない場合、分散型データベ
ース・スーパバイザ202Aによって障害が想定され
る。あるいは、分散型データベース・スーパバイザ20
2Bは、所定間隔例えば1秒毎に、分散型データベース
・スーパバイザ202Bのステータスを表わす信号を分
散型データベース・スーパバイザ202Aに送るように
構成することも可能である。所定の時間期間、例えば、
所定間隔の2ないし3倍の期間にこのような信号を受信
しなかった場合、分散型データベース・スーパバイザ2
02Aは、通信リンク210またはノード100Bの障
害として解釈する。
【0045】これまでの記載は例示的なものであり、限
定を意味するのではない。したがって、本発明は、特許
請求の範囲およびその均等物の全範囲によってのみ完全
に規定されるものである。
【図面の簡単な説明】
【図1】本発明による2ノード分散型コンピュータ・シ
ステムのブロック図。
【図2】図1の2ノード分散型コンピュータシステムの
ブロック図であり、分散型コンピュータ・システムの各
ノードにおいて実行するコンピュータ・プロセスを示す
図。
【図3】障害状態においてどちらのノードがクオラムを
獲得するのかについて、各ノードによって行われる判定
を示す論理流れ図。
【図4】クオラムが獲得されないと判定された場合に、
図1および図2の分散型コンピュータ・システムのノー
ドが実行する処理の論理流れ図。
【符号の説明】
100 2ノード分散型コンピュータ・システム 100A,100B ノード 102A,102B プロセッサ 106A,106B バス 104A,104B メモリ 108A,108B ネットワーク・アクセス装置 110 ネットワーク 112A〜112D 共有記憶装置 202A,202B 分散型データベース・スーパバ
イザ 204A,204B オペレーティング・システム 206A,206B 分散型アプリケーション 210 通信リンク
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America (72)発明者 オッタリンガム・ティー・サトヤナラヤナ ン アメリカ合衆国カリフォルニア州94539, フレモント,サウス・モーレイ・ストリー ト 43919 (72)発明者 アンジェロ・プルスチーノ アメリカ合衆国カリフォルニア州94040, マウンテン・ヴュー,オルテガ・アヴェニ ュー 550,アパートメント エイ106

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】分散型コンピュータ・システムの少なくと
    も2つのノードの内一方に、該分散型コンピュータ・シ
    ステムの共有資源への排他的アクセスを付与する方法で
    あって、前記分散型コンピュータ・システムは、少なく
    とも2つの予め選択された共有装置を含み、各ノードは
    障害処理手段(fault handler)を含み、かつ当該ノード
    が前記共有資源への排他的アクセスを有するか否かを特
    定する状態を有し、前記方法は、 前記分散型コンピュータ・システムにおいて障害状態を
    検出するステップと、 障害状態を検出した場合、 障害状態がない場合に前記障害処理手段の前記ノードに
    よって少なくとも1つが予約されていない、前記予め選
    択された共有装置の全てを予約しようとするステップ
    と、 前記障害処理手段が前記予め選択された共有装置全ての
    予約に成功した場合、前記ノードが前記共有資源に対す
    る排他的アクセスを有することを前記ノードの状態に指
    定させるステップと、前記障害処理手段が前記予め選択
    された共有装置の全ての予約に失敗した場合、前記ノー
    ドは前記共有資源への排他的アクセスを有していないこ
    とを前記ノードの状態に指定させるステップと、を前記
    障害処理手段の各々に実行させるステップと、から成る
    ことを特徴とする方法。
  2. 【請求項2】請求項1記載の方法において、前記障害処
    理手段の各々は、前記障害状態が検出されたとき、更
    に、 前記ノードが前記予め選択された共有装置の少なくとも
    1つの共有装置の予約に成功し、前記予め選択された共
    有装置の少なくとも1つの他の共有装置の予約に失敗し
    た場合、引き分け状態を検出するステップを実行するこ
    とを特徴とする方法。
  3. 【請求項3】請求項2記載の方法において、前記分散型
    コンピュータ・システムは、引き分け解消装置として予
    め決められている共有装置を含み、 前記障害処理手段は、引き分け状態が検出されたとき、
    更に、 前記引き分け解消装置を予約しようとするステップと、 前記障害処理手段が前記引き分け解消装置の予約に成功
    した場合、前記ノードが前記共有資源に対する排他的ア
    クセスを有することを、前記ノードの状態に指定させる
    ステップと、 前記障害処理手段が前記引き分け解消装置の予約に失敗
    した場合、前記ノードは前記共有資源に対する排他的ア
    クセスを有さないことを、前記ノードの状態に指定させ
    るステップと、を実行することを特徴とする方法。
  4. 【請求項4】請求項3記載の方法において、前記引き分
    け解消装置は前記予め選択された共有装置の1つである
    ことを特徴とする方法。
  5. 【請求項5】請求項3記載の方法において、前記分散型
    コンピュータ・システムは、前記第1の引き分け解消装
    置とは異なる、第2の引き分け解消装置として予め決め
    られている共有装置を含み、 前記障害処理手段の各々は、前記障害処理手段による前
    記第1の引き分け解消装置の予約が成功したとき、更
    に、 前記第2の引き分け解消装置を予約しようとするステッ
    プと、 前記障害処理手段が前記第2の引き分け解消装置の予約
    に成功した場合、前記ノードが前記共有資源に対して排
    他的アクセスを有することを、前記ノードの状態に指定
    させるステップと、 前記障害処理手段が前記第2の引き分け解消装置の予約
    に失敗した場合、前記ノードは前記共有資源に対する排
    他的アクセスを有さないことを、前記ノードの状態に指
    定させるステップと、を実行することを特徴とする方
    法。
  6. 【請求項6】請求項5記載の方法において、前記第2の
    引き分け解消装置は、前記予め選択された共有装置の1
    つであることを特徴とする方法。
  7. 【請求項7】請求項1記載の方法であって、更に、 前記2ノード分散型コンピュータ・システムの各ノード
    に対して、前記予め選択された共有装置のローカル共有
    装置を指定するステップを含み、 前記予約しようとするステップは、 前記障害処理手段の前記ノードのローカル共有装置を予
    約しようとするステップと、 前記障害処理手段が前記障害処理手段の前記ノードのロ
    ーカル共有装置の予約に成功した場合、前記障害処理手
    段の前記ノードのローカル共有装置以外の少なくとも1
    つの予め選択された共有装置を強制的に予約するステッ
    プと、から成ることを特徴とする方法。
  8. 【請求項8】コンピュータ・プログラム生産物であっ
    て、 分散型コンピュータ・システムの少なくとも2つのノー
    ドの内の一方に、該分散型コンピュータ・システムの共
    有資源に対する排他的アクセスを付与するためのコンピ
    ュータ読み取り可能なコードが埋め込まれたコンピュー
    タ使用可能媒体であって、前記分散型コンピュータ・シ
    ステムは少なくとも2つの予め選択された共有装置を含
    み、各ノードは障害処理手段(fault handler)を含み、
    該ノードが前記共有資源への排他的アクセスを有するか
    否かを特定する状態を有し、前記コンピュータ使用可能
    媒体は、 前記分散型コンピュータ・システムにおいて障害状態を
    検出するように構成された障害検出モジュールと、 前記障害検出モジュールに動作的に結合された障害処理
    モジュールであって、 障害状態を検出した場合、 障害状態がない場合に前記障害処理手段の前記ノードに
    よって少なくとも1つが予約されていない、前記予め選
    択された共有装置の全てを予約しようとするステップ
    と、 前記障害処理モジュールが前記予め選択された共有装置
    全ての予約に成功した場合、前記ノードが前記共有資源
    に対する排他的アクセスを有することを前記ノードの状
    態に指定させるステップと、前記障害処理手段が前記予
    め選択された共有装置の全ての予約に失敗した場合、前
    記ノードは前記共有資源への排他的アクセスを有してい
    ないことを前記ノードの状態に指定させるステップと、
    を実行するように構成された前記障害処理モジュール
    と、から成ることを特徴とするコンピュータ・プログラ
    ム生産物。
  9. 【請求項9】請求項8記載のコンピュータ・プログラム
    生産物において、前記障害処理モジュールは、前記障害
    状態が検出されたとき、更に、 前記ノードが前記予め選択された共有装置の少なくとも
    1つの共有装置の予約に成功し、前記予め選択された共
    有装置の少なくとも1つの他の共有装置の予約に失敗し
    た場合、引き分け状態を検出するステップを実行するよ
    うに構成されていることを特徴とするコンピュータ・プ
    ログラム生産物。
  10. 【請求項10】請求項9記載のコンピュータ・プログラ
    ム生産物において、前記障害処理モジュールは、引き分
    け状態が検出されたとき、更に、 前記分散型コンピュータ・システムの共有引き分け解消
    装置を予約しようとするステップと、 前記障害処理モジュールが前記共有引き分け解消装置の
    予約に成功した場合、前記ノードが前記共有資源に対す
    る排他的アクセスを有することを、前記ノードの状態に
    指定させるステップと、 前記障害処理モジュールが前記共有引き分け解消装置の
    予約に失敗した場合、前記ノードは前記共有資源に対す
    る排他的アクセスを有さないことを、前記ノードの状態
    に指定させるステップと、を実行するように構成されて
    いることを特徴とするコンピュータ・プログラム生産
    物。
  11. 【請求項11】請求項10記載のコンピュータ・プログ
    ラム生産物において、前記共有引き分け解消装置は前記
    予め選択された共有装置の1つであることを特徴とする
    コンピュータ・プログラム生産物。
  12. 【請求項12】請求項10記載のコンピュータ・プログ
    ラム生産物において、 前記障害処理モジュールは、前記障害処理モジュールに
    よる前記共有引き分け解消装置の予約が成功したとき、
    更に、 前記第1の共有引き分け解消装置とは異なる第2の共有
    引き分け解消装置を予約しようとするステップと、 前記障害処理モジュールが前記第2の引き分け解消装置
    の予約に成功した場合、前記障害処理手段の前記ノード
    が前記共有資源に対して排他的アクセスを有すること
    を、前記障害処理手段の前記ノードに指定させるステッ
    プと、 前記障害処理モジュールが前記第2の引き分け解消装置
    の予約に失敗した場合、前記障害処理手段の前記ノード
    は前記共有資源に対する排他的アクセスを有さないこと
    を、前記障害処理手段の前記ノードに指定させるステッ
    プと、を実行することを特徴とするコンピュータ・プロ
    グラム生産物。
  13. 【請求項13】請求項12記載のコンピュータ・プログ
    ラム生産物において、前記第2の引き分け解消装置は、
    前記予め選択された共有装置の1つであることを特徴と
    するコンピュータ・プログラム生産物。
  14. 【請求項14】請求項8記載のコンピュータ・プログラ
    ム生産物において、前記障害処理モジュールは、少なく
    とも、 前記予め選択された共有装置のローカル共有装置を予約
    しようとするステップと、 前記障害処理モジュールが前記ローカル共有装置の予約
    に成功した場合、前記ローカル共有装置以外の少なくと
    も1つの予め選択された共有装置を強制的に予約するス
    テップと、を実行することによって、前記予約しようと
    するステップを実行するように構成されていることを特
    徴とするコンピュータ・プログラム生産物。
  15. 【請求項15】共有資源と少なくとも2つのノードとを
    含む分散型コンピュータ・システムにおいて障害から回
    復するための装置であって、 前記分散型コンピュータ・システムの前記ノードの選択
    された1つに対応し、該分散型コンピュータ・システム
    の障害状態を検出する障害検出器と、 (i)前記障害検出器に動作的に結合され、(ii)前記選択
    されたノードが前記共有資源に対する排他的アクセスを
    有するか否かを指定する状態を有する障害処理手段であ
    って、(iii)前記障害状態の検出時に、(a)障害状態
    がない場合に前記選択されたノードによって少なくとも
    1つが予約されていない、前記予め選択された共有装置
    の全てを予約しようとし、(b)前記障害処理手段が前
    記予め選択された共有装置全ての予約に成功した場合、
    前記選択されたノードが前記共有資源に対する排他的ア
    クセスを有することを前記障害処理手段の状態に指定さ
    せ、(c)前記障害処理手段が前記予め選択された共有
    装置の全ての予約に失敗した場合、前記ノードは前記共
    有資源への排他的アクセスを有していないことを前記障
    害処理手段の状態に指定させる前記障害処理手段と、か
    ら成ることを特徴とする装置。
  16. 【請求項16】請求項15記載の装置において、前記障
    害状態時に、前記障害処理手段が前記予め選択された共
    有装置の少なくとも1つの予約に成功し、前記予め選択
    された共有装置の少なくとも1つの他の共有装置の予約
    に失敗した場合、前記障害処理手段は引き分け状態を検
    出することを特徴とする装置。
  17. 【請求項17】請求項16記載の装置において、該障害
    処理手段は、前記障害処理手段が引き分け状態を検出し
    たとき、(i) 前記分散型コンピュータ・システムの共有
    引き分け解消装置を予約しようとし、(ii)(a) 前記障害
    処理手段が前記共有引き分け解消装置の予約に成功した
    場合、前記選択されたノードが前記共有資源に対する排
    他的アクセスを有することを、前記障害処理手段の状態
    に指定させ、(b)前記障害処理手段が前記共有引き分け
    解消装置の予約に失敗した場合、前記選択されたノード
    は前記共有資源に対する排他的アクセスを有さないこと
    を、前記障害処理手段の状態に指定させることを特徴と
    する装置。
  18. 【請求項18】請求項17記載の装置において、前記共
    有引き分け解消装置は前記予め選択された共有装置の1
    つであることを特徴とする装置。
  19. 【請求項19】請求項17記載の装置において、前記障
    害処理モジュールは、前記障害処理手段による前記共有
    引き分け解消装置の予約が成功したとき、(i) 前記第1
    の共有引き分け解消装置とは異なる第2の共有引き分け
    解消装置を予約しようとし、(ii)(a)前記障害処理手段
    が前記第2の引き分け解消装置の予約に成功した場合、
    前記選択されたノードが前記共有資源に対して排他的ア
    クセスを有することを、前記障害処理手段の状態に指定
    させ、(b)前記障害処理手段が前記第2の引き分け解消
    装置の予約に失敗した場合、前記選択されたノードは前
    記共有資源に対する排他的アクセスを有さないことを、
    前記障害処理手段の状態に指定させることを特徴とする
    装置。
  20. 【請求項20】請求項19記載の装置において、前記第
    2の引き分け解消装置は、前記予め選択された共有装置
    の1つであることを特徴とする装置。
  21. 【請求項21】請求項15記載の装置において、前記障
    害処理手段は、(i)前記予め選択された共有装置のロー
    カル共有装置を予約しようとし、(ii)前記障害処理手段
    が前記ローカル共有装置の予約に成功した場合、少なく
    とも1つの前記ローカル共有装置を強制的に予約するこ
    とによって、前記予め選択された共有装置の全てを予約
    しようとすることを特徴とする装置。
  22. 【請求項22】分散型コンピュータ・システムであっ
    て、 少なくとも2つの予め選択された共有装置を含む共有資
    源と、 少なくとも2つのノードであって、各々前記予め選択さ
    れた共有装置の各々と動作的に結合され、前記各ノード
    は、 少なくとも1つのプロセッサと、 前記少なくとも1つのプロセッサに動作的に結合された
    ネットワーク・アクセス装置であって、これを通じて、
    前記少なくとも1つのプロセッサが前記少なくとも2つ
    のノードの他方の少なくとも1つのプロセッサとの通信
    を可能にする前記ネットワークアクセス装置と、 前記ノードが前記少なくとも2つのノードの少なくとも
    1つの他のノードとの通信がもはや不可能となった障害
    状態を検出する障害検出器と、 (i)前記障害検出器に動作的に結合され、(ii)前記ノー
    ドが前記共有資源に対する排他的アクセスを有するか否
    かを指定する状態を有する障害処理手段であって、(ii
    i)前記障害状態の検出時に、(a)障害状態がない場合
    に前記選択されたノードによって少なくとも1つが予約
    されていない、前記予め選択された共有装置の全てを予
    約しようとし、(b)前記障害処理手段が前記予め選択
    された共有装置全ての予約に成功した場合、前記ノード
    が前記共有資源に対する排他的アクセスを有することを
    前記障害処理手段の状態に指定させ、(c)前記障害処
    理手段が前記予め選択された共有装置全ての予約に失敗
    した場合、前記ノードは前記共有資源への排他的アクセ
    スを有していないことを前記障害処理手段の状態に指定
    させる前記障害処理手段と、から成ることを特徴とする
    分散型コンピュータ・システム。
  23. 【請求項23】請求項22記載の分散型コンピュータ・
    システムにおいて、前記障害状態時に、前記障害処理手
    段が前記予め選択された共有装置の少なくとも1つの予
    約に成功し、前記予め選択された共有装置の少なくとも
    1つの他の共有装置の予約に失敗した場合、各ノードの
    前記障害処理手段は引き分け状態を検出することを特徴
    とする分散型コンピュータ・システム。
  24. 【請求項24】請求項23記載の分散型コンピュータ・
    システムにおいて、該障害処理手段は、前記障害処理手
    段が引き分け状態を検出したとき、(i) 前記分散型コン
    ピュータ・システムの共有引き分け解消装置を予約しよ
    うとし、(ii)(a) 前記障害処理手段が前記共有引き分け
    解消装置の予約に成功した場合、前記ノードが前記共有
    資源に対する排他的アクセスを有することを、前記障害
    処理手段の状態に指定させ、(b)前記障害処理手段が前
    記共有引き分け解消装置の予約に失敗した場合、前記ノ
    ードは前記共有資源に対する排他的アクセスを有さない
    ことを、前記障害処理手段の状態に指定させることを特
    徴とする分散型コンピュータ・システム。
  25. 【請求項25】請求項24記載の分散型コンピュータ・
    システムにおいて、前記共有引き分け解消装置は前記予
    め選択された共有装置の1つであることを特徴とする分
    散型コンピュータ・システム。
  26. 【請求項26】請求項24記載の分散型コンピュータ・
    システムにおいて、前記ノードの1つの前記障害処理手
    段による前記共有引き分け解消装置の予約が成功したと
    き、前記ノードの前記障害処理手段は、(i) 前記第1の
    共有引き分け解消装置とは異なる第2の共有引き分け解
    消装置を予約しようとし、(ii)(a)前記ノードの前記障
    害処理手段が前記第2の引き分け解消装置の予約に成功
    した場合、前記ノードが前記共有資源に対して排他的ア
    クセスを有することを、前記障害処理手段の状態に指定
    させ、(b)前記ノードの前記障害処理手段が前記第2の
    引き分け解消装置の予約に失敗した場合、前記ノードは
    前記共有資源に対する排他的アクセスを有さないこと
    を、前記障害処理手段の状態に指定させることを特徴と
    する分散型コンピュータ・システム。
  27. 【請求項27】請求項26記載の分散型コンピュータ・
    システムにおいて、前記第2の引き分け解消装置は、前
    記予め選択された共有装置の1つであることを特徴とす
    る分散型コンピュータ・システム。
  28. 【請求項28】請求項22記載の分散型コンピュータ・
    システムにおいて、各ノードの前記障害処理手段は、
    (i)前記ノードに対してローカルである前記予め選択さ
    れた共有装置の選択された1つを予約しようとし、(ii)
    前記障害処理手段が前記選択された共有装置の予約に成
    功した場合、前記選択された共有装置以外の前記予め選
    択された共有装置の少なくとも1つを強制的に予約する
    ことによって、前記予め選択された共有装置の全てを予
    約しようとすることを特徴とする分散型コンピュータ・
    システム。
  29. 【請求項29】(i)コンピュータ読み取り可能媒体上に
    記憶され、(ii)コンピュータにより実行可能であり、(i
    ii)少なくとも1つのモジュールを含み、一方該モジュ
    ールの各々は前記コンピュータによって実行される少な
    くとも1つの機能を遂行するように構成されている前記
    モジュールを含むコード分散システムであって、 少なくとも2つのノードと、少なくとも2つの予め選択
    された共有装置を含む共有資源とを含む分散型コンピュ
    ータ・システムにおいて障害状態を検出するように構成
    された障害検出モジュールと、 (i)前記少なくとも2つのノードの選択された1つに対
    応し、(ii)前記障害検出モジュールに動作的に結合され
    た障害処理モジュールであって、(iii)障害状態が検出
    されたときに、 障害状態がない場合に前記障害処理モジュールの前記ノ
    ードによって少なくとも1つが予約されていない、前記
    予め選択された共有装置の全てを予約しようとし、 前記障害処理モジュールが前記予め選択された共有装置
    全ての予約に成功した場合、前記選択されたノードが前
    記共有資源に対する排他的アクセスを有することを前記
    選択されたノードの状態に指定させ、 前記障害処理モジュールが前記予め選択された共有装置
    全ての予約に失敗した場合、前記選択されたノードは前
    記共有資源への排他的アクセスを有していないことを前
    記選択されたノードの状態に指定させる前記障害処理モ
    ジュールと、から成ることを特徴とするシステム。
  30. 【請求項30】請求項29記載のシステムにおいて、前
    記障害処理モジュールは、障害状態が検出されたとき、 前記障害処理モジュールが、前記選択されたノードに対
    して、前記予め選択された共有装置の少なくとも1つの
    予約に成功し、前記選択されたノードに対して、前記予
    め選択された共有装置の少なくとも1つの他の共有装置
    の予約に失敗した場合、引き分け状態を検出することを
    特徴とするシステム。
  31. 【請求項31】請求項30記載のシステムにおいて、前
    記障害処理モジュールは、引き分け状態が検出されたと
    き、更に、 前記選択されたノードに対して、前記分散型コンピュー
    タ・システムの共有引き分け解消装置を予約しようとす
    るステップと、 前記障害処理モジュールが前記共有引き分け解消装置の
    予約に成功した場合、前記選択されたノードが前記共有
    資源に対する排他的アクセスを有することを、前記選択
    されたノードの状態に指定させるステップと、 前記障害処理モジュールが前記共有引き分け解消装置の
    予約に失敗した場合、前記選択されたノードは前記共有
    資源に対する排他的アクセスを有さないことを、前記選
    択されたノードの状態に指定させるステップと、を実行
    するように構成されていることを特徴とするシステム。
  32. 【請求項32】請求項31記載のシステムにおいて、前
    記共有引き分け解消装置は前記予め選択された共有装置
    の1つであることを特徴とするシステム。
  33. 【請求項33】請求項31記載のシステムにおいて、前
    記障害処理モジュールは、前記障害処理モジュールによ
    る前記共有引き分け解消装置の予約が成功したとき、更
    に、 前記選択されたノードに対して、前記第1の共有引き分
    け解消装置とは異なる第2の共有引き分け解消装置を予
    約しようとするステップと、 前記障害処理モジュールが前記第2の引き分け解消装置
    の予約に成功した場合、前記障害処理手段の前記選択さ
    れたノードが前記共有資源に対して排他的アクセスを有
    することを、前記障害処理手段の前記選択されたノード
    の状態に指定させるステップと、 前記障害処理モジュールが前記第2の引き分け解消装置
    の予約に失敗した場合、前記障害処理手段の前記選択さ
    れたノードは前記共有資源に対する排他的アクセスを有
    さないことを、前記障害処理手段の前記選択されたノー
    ドの状態に指定させるステップと、を実行するように構
    成されていることを特徴とするシステム。
  34. 【請求項34】請求項33記載のシステムにおいて、前
    記第2の引き分け解消装置は、前記予め選択された共有
    装置の1つであることを特徴とするシステム。
  35. 【請求項35】請求項29記載のシステムにおいて、前
    記障害処理モジュールは、少なくとも、 前記選択されたノードに対して、前記予め選択された共
    有装置のローカル共有装置を予約しようとするステップ
    と、 前記障害処理モジュールが前記ローカル共有装置の予約
    に成功した場合、前記選択されたノードに対して、前記
    ローカル共有装置以外の少なくとも1つの前記予め選択
    された共有装置を強制的に予約するステップと、を実行
    することによって、前記予約しようとするステップを実
    行することを特徴とするシステム。
JP9144026A 1996-05-31 1997-06-02 2ノード分散型コンピュータ・システムにおけるクオラム機構 Pending JPH10116259A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US656386 1984-10-01
US08/656,386 US5828889A (en) 1996-05-31 1996-05-31 Quorum mechanism in a two-node distributed computer system

Publications (1)

Publication Number Publication Date
JPH10116259A true JPH10116259A (ja) 1998-05-06

Family

ID=24632817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9144026A Pending JPH10116259A (ja) 1996-05-31 1997-06-02 2ノード分散型コンピュータ・システムにおけるクオラム機構

Country Status (4)

Country Link
US (2) US5828889A (ja)
EP (1) EP0810526B1 (ja)
JP (1) JPH10116259A (ja)
DE (1) DE69715967T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003515813A (ja) * 1999-11-29 2003-05-07 マイクロソフト コーポレイション 記憶ネットワーク内の定足数資源アービタ
JP2008287632A (ja) * 2007-05-21 2008-11-27 Panasonic Corp 制御装置復帰システム
JP2018534665A (ja) * 2015-09-30 2018-11-22 ベリタス テクノロジーズ エルエルシー 入力/出力フェンシングの最適化
US10897390B2 (en) 2018-01-24 2021-01-19 Fujitsu Limited Takeover method of process, cluster construction program and cluster construction apparatus

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US6108699A (en) * 1997-06-27 2000-08-22 Sun Microsystems, Inc. System and method for modifying membership in a clustered distributed computer system and updating system configuration
US6279032B1 (en) * 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6311217B1 (en) * 1998-06-04 2001-10-30 Compaq Computer Corporation Method and apparatus for improved cluster administration
US6401120B1 (en) * 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US6453426B1 (en) 1999-03-26 2002-09-17 Microsoft Corporation Separately storing core boot data and cluster configuration data in a server cluster
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6499113B1 (en) * 1999-08-31 2002-12-24 Sun Microsystems, Inc. Method and apparatus for extracting first failure and attendant operating information from computer system devices
US6421688B1 (en) 1999-10-20 2002-07-16 Parallel Computers Technology, Inc. Method and apparatus for database fault tolerance with instant transaction replication using off-the-shelf database servers and low bandwidth networks
US6487622B1 (en) 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6662219B1 (en) 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6643748B1 (en) * 2000-04-20 2003-11-04 Microsoft Corporation Programmatic masking of storage units
US6965936B1 (en) * 2000-12-06 2005-11-15 Novell, Inc. Method for detecting and resolving a partition condition in a cluster
US6915391B2 (en) * 2000-12-15 2005-07-05 International Business Machines Corporation Support for single-node quorum in a two-node nodeset for a shared disk parallel file system
US6785678B2 (en) * 2000-12-21 2004-08-31 Emc Corporation Method of improving the availability of a computer clustering system through the use of a network medium link state function
US7792977B1 (en) * 2001-02-28 2010-09-07 Oracle International Corporation Method for fencing shared resources from cluster nodes
US6965929B2 (en) * 2001-06-29 2005-11-15 Intel Corporation Configuring a network device
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6766482B1 (en) 2001-10-31 2004-07-20 Extreme Networks Ethernet automatic protection switching
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7191357B2 (en) * 2002-03-29 2007-03-13 Panasas, Inc. Hybrid quorum/primary-backup fault-tolerance model
US7739541B1 (en) 2003-07-25 2010-06-15 Symantec Operating Corporation System and method for resolving cluster partitions in out-of-band storage virtualization environments
US7302607B2 (en) * 2003-08-29 2007-11-27 International Business Machines Corporation Two node virtual shared disk cluster recovery
EP1632854A1 (en) * 2004-08-23 2006-03-08 Sun Microsystems France S.A. Method and apparatus for using a serial cable as a cluster quorum device
EP1748361A1 (en) * 2004-08-23 2007-01-31 Sun Microsystems France S.A. Method and apparatus for using a USB cable as a cluster quorum device
US7644305B2 (en) 2006-05-18 2010-01-05 Microsoft Corporation Quorum establishment based on a vote from a voting device
WO2008018969A1 (en) * 2006-08-04 2008-02-14 Parallel Computers Technology, Inc. Apparatus and method of optimizing database clustering with zero transaction loss
US8886809B2 (en) * 2007-07-18 2014-11-11 Siemens Industry, Inc. Wireless node auto-reset function
US8250088B2 (en) * 2007-10-05 2012-08-21 Imation Corp. Methods for controlling remote archiving systems
US8001413B2 (en) * 2008-05-05 2011-08-16 Microsoft Corporation Managing cluster split-brain in datacenter service site failover
US8305706B2 (en) 2008-07-11 2012-11-06 Imation Corp. Disk library system including array of removable disk cartridges and movable connector system
US8682842B2 (en) * 2008-12-09 2014-03-25 Yahoo! Inc. System and method for logging operations
US10169097B2 (en) * 2012-01-23 2019-01-01 Microsoft Technology Licensing, Llc Dynamic quorum for distributed systems
US9723064B1 (en) 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10884879B2 (en) 2018-10-18 2021-01-05 Oracle International Corporation Method and system for computing a quorum for two node non-shared storage converged architecture
US11902083B1 (en) 2021-08-05 2024-02-13 Cisco Technology, Inc. Techniques to provide a flexible witness in a distributed system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1141175B (it) * 1980-02-07 1986-10-01 Honeywell Inf Systems Procedimento per la liberazione di risorse comuni di memoria in un sistema multiprocessore
JPS6054052A (ja) * 1983-09-02 1985-03-28 Nec Corp 処理継続方式
US4827399A (en) * 1986-10-03 1989-05-02 Nec Corporation Common file system for a plurality of data processors
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
DE69230428T2 (de) * 1991-09-27 2000-08-03 Sun Microsystems Inc Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
US5408629A (en) * 1992-08-13 1995-04-18 Unisys Corporation Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system
US5469575A (en) * 1992-10-16 1995-11-21 International Business Machines Corporation Determining a winner of a race in a data processing system
DE69322057T2 (de) * 1992-10-24 1999-06-10 Int Computers Ltd Verteiltes Datenverarbeitungssystem
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
JPH0713838A (ja) * 1993-06-14 1995-01-17 Internatl Business Mach Corp <Ibm> エラーの回復方法及び装置
US5673384A (en) * 1995-10-06 1997-09-30 Hewlett-Packard Company Dual disk lock arbitration between equal sized partition of a cluster
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003515813A (ja) * 1999-11-29 2003-05-07 マイクロソフト コーポレイション 記憶ネットワーク内の定足数資源アービタ
JP2008287632A (ja) * 2007-05-21 2008-11-27 Panasonic Corp 制御装置復帰システム
JP2018534665A (ja) * 2015-09-30 2018-11-22 ベリタス テクノロジーズ エルエルシー 入力/出力フェンシングの最適化
US10897390B2 (en) 2018-01-24 2021-01-19 Fujitsu Limited Takeover method of process, cluster construction program and cluster construction apparatus

Also Published As

Publication number Publication date
DE69715967D1 (de) 2002-11-07
EP0810526B1 (en) 2002-10-02
EP0810526A1 (en) 1997-12-03
DE69715967T2 (de) 2003-02-20
US5828889A (en) 1998-10-27
US5948109A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
JPH10116259A (ja) 2ノード分散型コンピュータ・システムにおけるクオラム機構
US5423044A (en) Shared, distributed lock manager for loosely coupled processing systems
US4853843A (en) System for merging virtual partitions of a distributed database
US8209699B2 (en) System and method for subunit operations in a database
US7536582B1 (en) Fault-tolerant match-and-set locking mechanism for multiprocessor systems
JPH01211140A (ja) データ資源アクセス方法
US8560524B2 (en) Allocating priorities to prevent deadlocks in a storage system
US6681226B2 (en) Selective pessimistic locking for a concurrently updateable database
CN110807064B (zh) Rac分布式数据库集群系统中的数据恢复装置
JPH0833857B2 (ja) システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式
CN106790694A (zh) 分布式系统及分布式系统中目标对象的调度方法
JPH0296849A (ja) Tpキューイングシステムにおける正確に1回のセマンティクス
JPH09237226A (ja) マルチコンピュータ・システムにおける信頼性の高いディスク・フェンシングのための方法および装置
JPH04310148A (ja) データの単位を高速度でアクセスする方法
CN107612842B (zh) 基于令牌管理的数据采集方法、系统、设备及存储介质
JPH0411056B2 (ja)
US5764976A (en) Method and system of deadlock detection in a data processing system having transactions with multiple processes capable of resource locking
US5673384A (en) Dual disk lock arbitration between equal sized partition of a cluster
CN110675255B (zh) 在区块链中并发执行交易的方法和装置
US6718349B2 (en) Intelligent, optimistic concurrency database access scheme
CN110830582B (zh) 一种基于服务器集群选主方法和装置
US20020116664A1 (en) Method and apparatus for machine check abort handling in a multiprocessing system
US8185631B2 (en) Controlling service failover in clustered storage apparatus networks
CN114679464B (zh) 基于分布式锁的数据回滚方法、装置、设备和存储介质
US20080250421A1 (en) Data Processing System And Method