JP2001109726A - 分散コンピュータ・システム内のプロセッサを再構成する方法、システム、および、記憶装置 - Google Patents

分散コンピュータ・システム内のプロセッサを再構成する方法、システム、および、記憶装置

Info

Publication number
JP2001109726A
JP2001109726A JP2000257264A JP2000257264A JP2001109726A JP 2001109726 A JP2001109726 A JP 2001109726A JP 2000257264 A JP2000257264 A JP 2000257264A JP 2000257264 A JP2000257264 A JP 2000257264A JP 2001109726 A JP2001109726 A JP 2001109726A
Authority
JP
Japan
Prior art keywords
processors
processor
quorum
group
list
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
Application number
JP2000257264A
Other languages
English (en)
Other versions
JP3706531B2 (ja
Inventor
C Briski Kenneth
ケニス・シー・ブリスキー
N Novakus Markos
マルコス・エヌ・ノヴァクス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001109726A publication Critical patent/JP2001109726A/ja
Application granted granted Critical
Publication of JP3706531B2 publication Critical patent/JP3706531B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 非共用分散コンピューティング・システムの
ための、プロセッサのクォーラム・グループの動的再構
成とその回復手順を提供すること。 【解決手段】 プロセッサのクォーラム・グループの少
なくとも1つのプロセッサが使用不能であっても、クォ
ーラム個数の残りのプロセッサが存在すると仮定する
と、動的再構成が進行する。回復処理は、プロセッサの
グループによって実施され、その結果、グループの動的
再構成中に使用不能であった少なくとも1つのプロセッ
サが、アクティブになった後に現在の状態情報を得るこ
とができるようになる。回復処理には、現在使用可能に
なっている少なくとも1つのプロセッサに、プロセッサ
のクォーラム・グループの現在の状態を伝播するため
の、プロセッサのインカーネーション番号およびプロセ
ッサのリストの交換が含まれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散コンピューテ
ィング・システムに関し、具体的には、分散コンピュー
ティング・システム内のプロセッサのクォーラム・グル
ープの動的再構成と、動的再構成中に使用不能であった
グループの1つまたは複数のプロセッサの回復手順に関
する。
【0002】
【関連する出願】本特許出願には、以下の特許出願の内
容に関する内容が含まれる。以下の特許出願は、本特許
出願と同一の譲受人に譲渡され、本特許出願と同一の日
付(1999年8月31日)に出願された。下記の特許
出願は、本明細書に関連する。 米国特許出願第09/387185号明細書(出願人整
理番号第PO9−99−131号) 米国特許出願第09/386549号明細書(出願人整
理番号第PO9−99−132号) 米国特許出願第09/387188号明細書(出願人整
理番号第PO9−99−133号)
【0003】
【従来の技術】分散コンピューティング・システムで
は、複数の処理要素が使用される。これらの処理要素
は、ネットワーク内で互いにリンクされた個々のプロセ
ッサ、または調整された環境で並列に動作する複数のソ
フトウェア・インスタンスとすることができる。前者の
場合、プロセッサは、ネットワーク・プロトコルをサポ
ートするネットワークを介して互いに通信する。このプ
ロトコルは、ハードウェア構成要素とソフトウェア構成
要素の組合せを使用することによって実施することがで
きる。処理要素は、通常は、共通のインターフェースを
介してメッセージまたはパケットを送受することによっ
て互いに通信する。分散コンピューティング・システム
の1種が、処理要素が記憶域を共用しない、非共用分散
システムである。そのようなシステム内では、要素は、
分散システムの状態について合意するためにメッセージ
を交換しなければならない。
【0004】したがって、非共用分散処理システム内で
は、メッセージ交換プロトコルが必要である。たとえ
ば、メッセージ交換プロトコルでは、分散処理システム
内のデータベースの現在の状態の問題を解決しようとす
る。具体的に言うと、プロトコルでは、どの処理要素が
最新版のデータベースを有するかを定義する必要があ
る。というのは、処理要素が異なる版のデータベースを
作成する可能性があるからである。周知の通り、高可用
性システムでは、システムが処理の実行を継続している
間に、1つまたは複数の処理要素が、使用不能になるこ
とが許容される。したがって、データベースは、高可用
性分散処理ステム内では、1つまたは複数の処理要素が
使用不能(たとえばオフ・ライン)の間に変更される可
能性がある。前に使用不能であった処理要素が使用可能
になった時に、更新された版のデータベースを、その処
理要素に供給しなければならない。
【0005】従来の非共用分散処理システムは、クォー
ラム駆動回復に参加する処理要素のグループが静的でな
ければならないという制限を有する。すなわち、サーバ
・グループが定義された後には、動的にすなわち、デー
タベースが走行しており1つまたは複数のメンバが潜在
的に使用不能である間に、メンバを追加または削除する
ことができない。従来の非共用分散処理システムで再構
成変更を行う唯一の方法は、再定義動作を使用すること
であるが、この再定義動作は、システムの全サーバでの
構成ファイルの変更を必要とし、したがって、再構成変
更のためにすべてのサーバが現在使用可能であることを
必要とする。
【0006】
【発明が解決しようとする課題】上記にもかかわらず、
データベース・サーバなどの高可用性分散処理システム
の場合には、サーバのグループの全サーバが使用可能で
あることを必要とせずに、サーバの追加または削除を可
能にすることが望ましいと考えられる。
【0007】
【課題を解決するための手段】本明細書で提供する分散
サーバ回復手順(DSRP)は、現在定義されているサ
ーバの過半数(クォーラム)が変更の進行のために使用
可能であることだけを必要とする、サーバ・グループの
構成のこの変更を可能にする。たとえば、いくつかのサ
ーバを、それがダウンしている間に構成解除(グループ
から排除)することができ、他のサーバを追加すること
ができる。1つまたは複数のサーバが使用不能である間
にサーバを追加または削除する処理を、本明細書ではプ
ロセッサのクォーラム・グループの「動的再構成」と呼
称する。やはり、分散サーバの回復のための従来の手順
は、静的構成環境を必要とする。
【0008】要約すると、本明細書では、一態様で、高
可用性分散コンピューティング・システム内のプロセッ
サを再構成するクォーラム・ベースの方法を提供する。
この方法は、プロセッサのクォーラム・グループ内のク
ォーラムの存在を識別するステップと、前記プロセッサ
のクォーラム・グループの少なくとも1つのプロセッサ
が使用不能である間に前記プロセッサのクォーラム・グ
ループを動的に再構成するステップとを含み、前記動的
再構成が、前記少なくとも1つのプロセッサの使用不能
性にもかかわらず、前記プロセッサのクォーラム・グル
ープの前記クォーラムのプロセッサの存在と共に進行す
る。
【0009】上で要約した方法に対応するシステムおよ
びコンピュータ・プログラム製品も、本明細書に記載さ
れ、請求される。
【0010】言い直すと、本明細書で提供するのは、グ
ループの1つまたは複数のプロセッサが使用不能である
にもかかわらず、プロセッサのクォーラム・グループを
動的に再構成する再構成機能ならびに、1つまたは複数
の以前には使用不能であったプロセッサが使用可能にな
った時にグループのプロセッサによって実施される回復
手順である。1つまたは複数のプロセッサが使用不能で
ある間にプロセッサのグループを動的に再構成できるよ
うにすることによって、システム管理者は、1つまたは
複数のプロセッサが使用不能になった場合であっても、
クォーラム個のプロセッサが残っているならば、クリテ
ィカルなシステムが維持されることを保証できる。した
がって、本明細書の記載の動的再構成機能および回復手
順は、高可用性分散コンピューティング環境でのより高
い柔軟性をもたらす。本明細書に記載の回復手順などの
クォーラム・ベースの動作と共に使用するための、緩和
されたクォーラムの計算も提示する。
【0011】
【発明の実施の形態】本発明によって解決される問題
は、データベース・サーバなどの分散高可用性処理シス
テムの動的再構成および回復の問題である。そのような
システムの高可用性特性によって、そのようなシステム
は、サーバ・グループのいくつかの対等サブシステムが
使用可能でない時でも、機能することができる。本明細
書ではデータベース・サーバに関して一実施形態で説明
するが、当業者は、本明細書に記載の概念が、複数の処
理要素を有する分散処理システムのプロセッサのどのグ
ループにも適用可能であることを理解するであろう。本
発明の文脈では、プロセッサは、個々のプロセッサまた
はソフトウェアで実施される処理インスタンスを含む処
理要素を意味する。本明細書で論ずるデータベース・サ
ーバは、プロセッサのグループの1例としてのみ提示さ
れる。
【0012】本明細書で仮定されるシステムの高可用性
特性のゆえに、いくつかのプロセッサが、分散データベ
ースに対する更新を取り逃がす可能性があり、再び使用
可能になった時に回復手順を受ける必要が生じる。通
常、回復手順には、「インカーネーション番号」とも呼
ばれる、データベースのバージョン番号の検査が含まれ
る。回復は、本発明によれば、サーバ・サブシステムの
構成自体が変更されている、すなわち、そのシステム
が、「動的再構成」を受けている可能性があるという事
実によって複雑になる。本明細書で提示される分散サー
バ回復手順(DSRP)は、そのような場合の回復の問
題を解決し、したがって、この動的再構成の進行を可能
にする。
【0013】この開示の用語「構成」は、具体的には、
分散システムのメンバのリストを指す。典型的な分散シ
ステムは、ネットワーク内に存在する使用可能なプロセ
ッサのプールからプロセッサを選択し、それらを一緒に
グループ化することによって構成される。通常、ネット
ワーク内のプロセッサの数は、所与の分散システム内の
数よりはるかに多い。その1例が、同一のネットワーク
内で相互接続される複数のコンピュータ(プロセッサ)
を有する大学キャンパスである。ネットワーク内に存在
するプロセッサのサブセットを、「分散システム」にグ
ループ化することが望ましいことがしばしばである。分
散システムは、さまざまな形で協力し、それらの間でタ
スクを分散することができる計算機の組として定義され
る。たとえば、ネットワークに100台のプロセッサが
ある場合、それらを一緒に組み合わせることによって、
任意の数の分散システムを構成することができる。たと
えば、それぞれ10プロセッサの10個のシステム、ま
たはそれぞれ5プロセッサの20個のシステム、または
他の組合せを作成することができる。この「構成」の重
要な態様が、どのプロセッサが特定のグループの一部で
あるかのリストである。このリストによって、同一のグ
ループに参加するメンバの組が定義され、この決定は、
グループの他のメンバからの要求の受入れまたは拒絶を
正しく行うために必要である。グループのメンバは、所
与のどの時点でも、このリストが一貫性があることに合
意しなければならない。すなわち、分散システムのすべ
てのノード(プロセッサ)が、このリストの正確に同一
のコピーを有することが必要である。
【0014】この開示で提示される特定の技術は、プロ
セッサのグループのメンバが、それが有するリストが正
確であるかどうか、または、グループの別のメンバから
更新されたリストを得る必要があるかどうかを検証でき
るようにする方法である。本発明は、生成されるリスト
のそれぞれに特定の「インカーネーション番号」を付加
することによってこの目的を達成する。このインカーネ
ーション番号は、プロセッサ・グループのメンバのリス
トに対する変更が、少なくとも現在のグループのメンバ
の「クォーラム(定足数)」に対して行われることを保
証することによって維持される。リストの変更が発生す
るのは、分散システムのユーザが、グループにプロセッ
サを追加または削除することによって構成を変更する時
である。リストが、メンバ・プロセッサの追加または削
除によって変更される時には、インカーネーション番号
が増分される。
【0015】分散システムのユーザが、構成の変更を要
求する時には、その変更は、次のように行うことができ
る。要求を受け取ったグループのメンバが、その要求の
コピーを他のすべてのメンバに送り、構成変更自体を行
う。変更の動作には、リスト内で変更を行うことと、イ
ンカーネーション番号の更新が含まれる。その後、その
メンバは、グループの他のメンバの応答を待つ。クォー
ラム個のメンバが成功メッセージを応答する場合には、
元の要求を受け取ったメンバは、構成変更を要求したユ
ーザに肯定のコードを返す。そうでない場合には、エラ
ーが返される(図10参照)。エラーが返された場合に
は、分散システムのユーザは、システムを再定義しなけ
ればならず(上で説明したように)、したがって、動的
回復は不可能である。しかし、戻りコードが成功である
場合には、再構成が成功したことが保証され、リスト
は、クォーラム個のノードで一貫性を有することが保証
される。
【0016】通常の分散システムは、構成の変更のすべ
てが、システム内のすべてのノードに対して行われるこ
とを必要とする。本発明は、変更をクォーラム個のノー
ドだけに対して行うことを必要とすることによって、構
成変更の要件を緩和する。これによって、メンバ・ノー
ドが再構成動作のために使用可能でない場合であって
も、分散システムの構成を変更することが可能になる。
【0017】回復のシナリオでは、処理要素が、システ
ムの最新の状態、たとえばデータベースの最新版を突き
とめるために、インカーネーション番号を交換する。シ
ステム・データに対する変更(およびインカーネーショ
ン番号の増分)は、クォーラム個(過半数)のレジスト
リ・プロセッサが使用可能である時に限って許可され、
従来のクォーラム・アルゴリズム(すなわち、静的グル
ープ構成)は、単純なアルゴリズムである。従来は、過
半数のサーバが使用可能であることと、最も高いインカ
ーネーション番号を有するサーバが、データベースの最
も最近に更新された版を有すると保証されることで十分
である。しかし、このアルゴリズムは、クォーラム駆動
回復に参加するグループが静的でなければならないとい
う制約を有する。すなわち、サーバ・グループを定義し
た後には、メンバを動的に追加または削除することがで
きない。やはり、動的とは、本明細書では、データベー
スが走行中であり、潜在的に使用不能なグループのメン
バが1つまたは複数存在することを意味するように定義
されている。従来の形で再構成変更を行う唯一の方法
は、再定義動作を使用することであるが、これは、すべ
てのサーバの構成ファイルに対する変更を必要とし、し
たがって、再構成変更のためにすべてのサーバが使用可
能であることを必要とする。
【0018】高可用性コンピューティング・システムの
場合、本出願人は、すべてのメンバが使用可能であるこ
とを必要とせずに、グループへのプロセッサの追加およ
び削除を可能にすることが望ましいと考える。図1ない
し5に、グループの1つまたは複数のメンバが使用不能
である場合のクォーラム・グループへの変更を扱うこと
の困難さを説明するのに役立つ、全体的に符号10で示
される分散処理システムのさまざまな状態を示す。図1
では、分散処理システム10に、3つのサーバが含まれ
る。この図が、サーバ・グループの初期構成を表すと仮
定する。このグループは、グループ・インカーネーショ
ンが1であり、サーバ1、サーバ2、およびサーバ3と
名付けられた3つのサーバがグループに存在するように
構成されたばかりである。このグループには3つのメン
バが存在するので、グループ・クォーラムは、3の過半
数の2である。
【0019】本発明のDSRPによって解決される問題
を示すために、サーバ1が使用不能になり、たとえば電
源を切断されたと仮定する。残りの2つのサーバは、稼
動状態のままであり、したがって、グループは、まだ変
更を可能にするクォーラムを有する。さらに、管理者
が、サーバ1がダウンしたことに気付き、将来の障害に
対する保護のために新しいサーバを定義することを所望
すると仮定する。管理者は、ここでは、サーバ4、サー
バ5、およびサーバ6という番号の3つの追加のサーバ
を定義すると仮定する。サーバ1は、その時点で電源を
切断されているので、その内部状態は変更されない。こ
の分散システムの新しい状態を、図2に示す。グループ
・インカーネーション2という符号を付けられたこの新
しい状態では、各アクティブ・サーバすなわち、サーバ
2、サーバ3、サーバ4、サーバ5、およびサーバ6の
メンバ・リストに、サーバ1が含まれ、6台のサーバの
過半数は4であるから、グループ・クォーラムは4にな
る。
【0020】ここで、システム管理者が、サーバ1を定
義解除することを決定したと仮定する。定義解除動作
も、メンバシップ変更であり、したがって、グループ・
インカーネーションが3に増分され、図3に示された状
態がもたらされる。サーバ1を定義解除することによっ
て、グループのクォーラムは3(5の過半数)になり、
これによって、このシステムは、2つの障害に耐え、な
おかつクォーラムを維持することが可能になる。図4お
よび5を、サーバ・メンバがダウンしている時にDSR
Pが構成変更に対処するさまを示すために提示する。図
4では、サーバ2およびサーバ3が使用不能になり、新
しいサーバ7が定義されたと仮定する。その結果の状態
を、図4に示す。
【0021】図4からわかるように、グループ・クォー
ラムは、現在は4(6の過半数)である。この時点でグ
ループ内の走行中のメンバは正確に4つであり、したが
って、このグループはまだクォーラムを有する。次に、
管理者が、メンバのサーバ2およびサーバ3を定義解除
し、サーバの総数を4に減らしたと仮定する。この場
合、グループ・クォーラムは3になる。このシステム
は、やはりメンバの1つの障害に耐えることができる。
結果の状態(グループ・インカーネーション5)を図5
に示す。この最終状態の例は、下で説明するDSRPア
ルゴリズムの追跡の開始点である。
【0022】図5の状態に到達するために行われた「動
的」構成変更は、いくつかのサーバがダウンしている間
に行われたので、このシステムの状態は矛盾している。
ダウンしていたサーバが、ここで電源を投入されたと仮
定する。図5から、サーバ1が最も古い状態を有するこ
とは明らかである。サーバ1のグループ・メンバシップ
には、グループの現在の数値が全く含まれないことに留
意されたい。本明細書で提示するDSRPの目的は、サ
ーバ1が、現在のグループのメンバを発見でき、したが
って、それらの1つから最新の構成を読み取る(または
受け取る)ことができるようにする探索手順を提供する
ことである。この探索は、終了条件がTRUEと評価さ
れるか、現在のグループのアクティブ・メンバから探索
停止メッセージを受け取るまで行われなければならな
い。終了条件は、探索を行うサーバが、同一のインカー
ネーション番号に同意するクォーラム個のメンバを発見
した時に、探索が完了したことを表す。図9に関して提
示するように、探索終了条件は、いくつかの場合に緩和
(クォーラム−1)することができる。
【0023】動的再構成を可能にする回復手順によって
解決される主要な課題は、古くなったサーバの回復手順
である。サーバは、潜在的に、もはやサーバ・グループ
のメンバの正確なリストを有しなくなるほどの長期間に
わたってダウンしていた可能性がある。複数のメンバ
が、もやはメンバとして定義されていない場合がありえ
る。また、問題のサーバが、使用不能になった後に他の
稼動し続けているメンバによって定義解除されている場
合もありえる。本明細書で提示する分散サーバ回復手順
は、そのような古くなったサーバが、データベースの最
新のコピーにアクセスでき、それ自体を更新できるよう
にする分散通信プロトコルである。
【0024】DSRPアルゴリズムは、サーバ・グルー
プの状態の持続記憶に基づく。この状態は、インカーネ
ーション番号と、このインカーネーション番号「に投票
した」すなわち、それを増分するコミット処理に参加し
たメンバのリストからなる。DSRPアルゴリズムを、
具体的な例を用いて下で説明する。図5に示された例で
は、回復の前のサーバ・グループの状態のスナップショ
ットが示されている。この状態は、すべてのメンバで一
貫しているわけではない。というのは、メンバの一部
(小さいインカーネーション番号を持つメンバ)が、更
新を失ってきたからである。
【0025】ここで、データベースの最新のコピーをと
り出すためにDSRPアルゴリズムによって行われるス
テップを追跡することができる。上のシナリオでは、サ
ーバ1がもはやデータベース・サーバでなくなっている
が、サーバ1は、データへのアクセスに必要な他のクリ
ティカルなアプリケーションをホストする可能性がある
ことに留意されたい。ここで追跡するステップは、サー
バ1から始まる、図6ないし9に示された本発明のDS
RPアルゴリズムの実施形態に従うものである。しか
し、全体的な障害の場合(たとえば、上のシナリオでク
ラスタがリブートされた場合)には、DSRPアルゴリ
ズムは、現在の状態からそれがサーバであることが示さ
れる(この情報が古いものである可能性はあるが)すべ
てのノードで走行することに留意されたい。
【0026】サーバ1から始まるステップは、次の通り
である。1)サーバ1が、その持続状態を読み取る。そ
の後、サーバ1は、現行サーバ・メンバ・リストの対等
サーバに連絡し、インカーネーション番号を取り出そう
とする。サーバ1は、サーバ2がより大きいインカーネ
ーション番号(3)を有することに気付き、したがっ
て、サーバ1のサーバ・メンバ・リストが古いことを知
る。その後、サーバ1は、サーバ2からサーバ・リスト
を取り出し、新しい探索にそれを使用する。2)前のス
テップで取り出したリストを使用して、サーバ1は、新
しいリストのメンバに関して同一のプロトコルを実行す
る。サーバ1は、サーバ3に連絡することから始める。
サーバ1は、サーバ3がサーバ2と同一のインカーネー
ション番号(3)を有することに気付く。この時点で、
サーバ1は、同一のインカーネーションを有する2つの
サーバ(サーバ2およびサーバ3の両方がインカーネー
ション3である)について知る。しかし、インカーネー
ション3に関連するクォーラムは3であるから、サーバ
1は、探索を終了するためにはこのレベルのサーバをも
う1つ見つける必要がある。3)サーバ1は、今度はサ
ーバ4に連絡し、その状態を取り出す。サーバ1は、悪
いニュースを知る。すなわち、サーバ4は、より高いイ
ンカーネーション番号(5)であり、したがって、サー
バ1は、サーバ2およびサーバ3も古いことを知る。サ
ーバ1は、サーバ4から取り出した状態を使用して探索
を継続する。4)サーバ1は、ここで、新たに取り出し
たメンバ・リスト内の次の未訪問のサーバ(サーバ5)
に連絡する。サーバ1は、サーバ5もインカーネーショ
ン5であることに気付く。この時点で、サーバ1は、2
つのサーバがインカーネーション5であることを知って
いるが、インカーネーション5に関連するクォーラムは
3(4の過半数)であり、したがって、サーバ1はもう
1つの確認を必要とする。
【0027】一実施形態では、本明細書で提示されるD
SRPアルゴリズムによって、いくつかの場合にクォー
ラム要件の緩和が可能になる。この場合、たとえば、サ
ーバ1は、同一のインカーネーションを有し、4個のグ
ループの一部である2つのサーバ(サーバ4およびサー
バ5)を知っている。この知識は、探索を終了するのに
十分である。というのは、残りの2つのメンバ(サーバ
6およびサーバ7)が、データベースでの変更には厳密
なクォーラム(4つの大多数すなわち3つ)が必要なの
で、より高いインカーネーション番号を有することがで
きないからである。したがって、サーバ6およびサーバ
7が、グループ内の少なくとも1つの他のサーバ(サー
バ4またはサーバ5)の参加なしで構成変更を行うこと
は不可能であったはずである。サーバ4およびサーバ5
の状態が既知なので、サーバ1は、データベースの最新
のインカーネーションが5であると仮定しても安全であ
り、探索を終了する。サーバ1のクライアント・アプリ
ケーションは、サーバ4またはサーバ5のいずれかから
の最も最近に更新されたデータベースのコピーにアクセ
スすることができる。
【0028】図6ないし9に、本発明の原理に従って実
施される動的サーバ回復手順(DSRP)アルゴリズム
の流れ図実施形態を示す。具体的に言うと、図6は、各
サーバが対等サブシステム(すなわち、プロセッサのク
ォーラム・グループ内の他のプロセッサ)からのメッセ
ージを継続的に聴取する、動的サーバ回復手順を示す図
である。プロセッサは、その状態を更新する時に、受け
取るメッセージのそれぞれについて図7および8のproc
ess_message_procedure(メッセージ処理プロシージ
ャ)を実行する。process_message_procedureは、クォ
ーラム番号変数とインカーネーション変数を、探索を終
了させるのに適当な状態に設定し、サーバのクォーラム
に関する探索に使用される現行プロセッサ・リストも変
更する。各反復の終りに、プロセッサは、現行探索リス
トの対等サブシステムに、最新のインカーネーション番
号と現行探索リスト自体を送る。図9は、本発明の原理
に従って「緩和された」クォーラム数を判定する処理の
一実施形態を示す図である。
【0029】図6からわかるように、DSRP処理は、
プロセッサのクォーラム・グループ内のプロセッサの始
動または再始動(100)から開始される。my_incarna
tion(インカーネーション)およびcurrent_search_lis
t(現行探索リスト)を含む変数を初期設定する(11
0)。その後、クォーラムが達成されたかどうかに関す
る質問を行う(120)。そうでない場合には、この手
順(サーバのグループの再始動されたサーバのそれぞれ
で実施される)は、メッセージを別のグループ・メンバ
から受け取ったかどうかを判定する(130)。そうで
ない場合には、そのサーバは、その現行サーバ・リスト
およびインカーネーション番号を含むメッセージを、グ
ループ内の他のサーバのそれぞれに送る(140)。そ
の後、処理は、クォーラムが達成されたかどうかの質問
(120)に戻る。
【0030】メッセージがそのサーバで受け取られてい
る場合には、サーバは、下で説明する、図7および8の
process_message_procedureを実行する(150)。pro
cess_message_procedureルーチンは、TRUEまたはF
ALSEのいずれかの値を返す。したがって、DSRP
は、process_message_procedureがTRUEの値を返し
たかどうかを判定する(160)。そうでない場合に
は、動的サーバ回復手順が続行し(170)、ループ・
バックして、サーバに、その現行探索リストの対等サブ
システムのそれぞれに、その現行サーバ・リストとイン
カーネーション番号を送らせる(140)。process_me
ssage_returnの値がTRUEである場合には、この処理
は、サーバの現行探索リストのすべての対等サブシステ
ムにStopSearch(探索停止)メッセージを送り(18
0)、これによって処理を完了する(190)。
【0031】動的サーバ回復手順の始めに戻って、クォ
ーラムが存在する(たとえば、プロセッサのクォーラム
・グループの1つまたは複数のアクティブ・メンバから
探索停止メッセージを受け取った)場合(120)、回
復手順は完了する(190)。
【0032】図7および図8のprocess_message_proced
ureは、以下のフィールドを含むメッセージ・データ型
を使用する。 主IPアドレス:送出元の連絡アドレス バックアップIPアドレス:第1のアドレスの障害時に
使用するバックアップ連絡アドレス incarnation:送出元が発見した最新のインカーネーシ
ョン番号 server_list:送出元が発見した最新の探索リスト
【0033】メッセージのフィールドは、流れ図では、
「.」演算子を使用して示される。たとえば、msg.inca
rnationは、メッセージのincarnationフィールドを指
す。
【0034】process_message_procedureでは、サーバ
が受け取った、最も高いインカーネーションを有するメ
ッセージのカウントが保存される。このルーチンは、こ
のカウントを「緩和された」クォーラム要件と比較する
が、「緩和された」クォーラム要件は、一実施形態では
図9のcalculate_quorumプロシージャから計算される。
図7および8のプロシージャは、クォーラム要件が達成
されたと判定した時に、DSRPタスクを終了するのに
適当な値をセットする。そうでない場合には、このルー
チンは、カウンタおよび探索リストを更新し、探索を続
ける。
【0035】図7および8を参照すると、本発明の原理
によるprocess_message_procedureの一実施形態は、受
け取ったメッセージを読み取ることによって開始され
(200)、その後、メッセージのstop_search(探索
停止)フィールドがTRUEであるかどうかを判定する
(210)。そうである場合には、メッセージの送出元
に連絡して、たとえば送出元のデータベースのコピーを
用いて、データベースを更新し、送出元のインカーネー
ション番号を用いてインカーネーション番号を更新する
(220)。その後、TRUEのprocess_message_retu
rn値を、図6の動的サーバ回復手順に返す(230)。
【0036】メッセージのstop_searchフィールドが真
でないと仮定すると、このプロシージャは、msg.incarn
ationをmy_incarnationと比較する(240)。この比
較は、3つの可能な結果を有する。第1に、msg.incarn
ationとmy_incarnationが等しい場合(250)、count
er(カウンタ)の値を増分し、クォーラム数を計算する
(260)。「緩和された」クォーラム数を計算するた
めの実施形態の1つを、図9に示す(下で説明する)。
クォーラムを決定した後に、counterの値がクォーラム
値以上であるかどうかを判定する(270)。そうであ
る場合には、動的サーバ回復プロセスにTRUEの値を
返す(280)。そうでない場合には、FALSEの値
を返し(290)、処理が完了する。
【0037】メッセージ・ヘッダのインカーネーション
値(msg.incarnation)が、サーバのインカーネーショ
ン値より大きい場合(310)、サーバの現行探索リス
トを、メッセージと共に受け取った探索リストに置換
し、counterに1をセットし、サーバのインカーネーシ
ョン値を、メッセージと共に受け取ったインカーネーシ
ョン番号を用いて更新する(320)。その後、counte
r値がクォーラム数以上であるかどうかを問合せ(27
0)、上で説明したように処理が進行する。受け取った
インカーネーション番号がサーバのインカーネーション
番号未満の場合(330)、メッセージ送出元をサーバ
のインアクティブ・サーバ・リストに追加し、メッセー
ジ送出元をアクティブ・サーバ・リストから削除し、た
とえば図9にプロシージャを使用して、クォーラムの値
を計算する(240)。クォーラム数を計算した後に、
処理がリターンして、counter値がクォーラム数より大
きいかどうかを判定し(270)、上で説明したように
進行する。
【0038】過半数を使用することの代替案として、ク
ォーラムを、図9に示されているように計算することが
できる。このプロシージャでは、現在の探索リストでク
ォーラムを達成するのに十分な応答を受け取ったかどう
かを判定するために必要な、応答の最少数を計算する。
集合Sには、現行探索リストで定義されているすべての
レジストリ・サーバが含まれる。集合Iには、より低い
インカーネーション番号を応答し、したがって、探索か
ら排除されるサーバが含まれる。集合Nは、S−Iとし
て定義され、Sに関するIの補集合である。これは、応
答が受け取られなかったメンバまたは現行のインカーネ
ーション番号を応答したメンバを識別する集合である。
条件{S−I>q}がTRUEの場合、クォーラム要件
から1を減算することが可能であり、クォーラム要件
は、集合Nの過半数として与えられる。演算子maj<>
は、オペランドを2で割り、小数部を捨て、結果に1を
足すことによって計算される。
【0039】図9を参照すると、「緩和された」クォー
ラムを計算するためのプロシージャの1つは、変数S、
I、N、およびqをセットすること(410)によって
開始される(400)(やはり、本明細書で使用される
変数Sは、クォーラム・グループ内で定義されているサ
ーバの数を表し、Iは、グループ内のインアクティブ・
サーバの数を表し、Nは、グループ内のアクティブ・サ
ーバの数を表し、qは、定義されているサーバの数の過
半数である)。その後、定義されているサーバの数から
インアクティブ・サーバの数を引き、1を引いた値が、
定義されているサーバの数の過半数であるかどうかを判
定する(420)。そうである場合には、変数「U」に
1をセットし(430)、そうでない場合には、この値
に0をセットする(440)。process_message_proced
ureに返されるクォーラム数Qは、アクティブ・サーバ
の数の過半数から変数Uを引いた値に等しい。当業者
は、上に要約したクォーラム計算を、他のクォーラム・
ベースのシステム計算と組み合わせて使用することがで
きることを理解するであろう。さらに、本明細書で提示
する動的サーバ回復手順は、図9の「緩和された」過半
数ではなく、従来のクォーラム「過半」数を使用するこ
とができる。
【0040】たとえば、本発明は、たとえばコンピュー
タ使用可能媒体を有する、製造品(たとえば1つまたは
複数のコンピュータ・プログラム製品)に含めることが
できる。この媒体は、その中に、たとえば、本発明の機
能を提供し容易にするコンピュータ可読プログラム・コ
ード手段を実施される。この製造品は、コンピュータ・
システムの一部として含めるか、別々に販売することが
できる。
【0041】さらに、本発明の機能を実行するために、
計算機によって実行可能な命令の少なくとも1つのプロ
グラムを具体的に実施する、計算機によって読取可能な
少なくとも1つのプログラム記憶装置を提供することが
できる。
【0042】本明細書で示した流れ図は、例として提供
される。これらの図面または本明細書に記載のステップ
(または動作)に対する、本発明の主旨から逸脱しない
変形形態がありえる。たとえば、いくつかの場合に、ス
テップを異なる順序で実行することができ、ステップを
追加、削除または変更することができる。これらの変形
形態のすべてが、請求項に記載の本発明の一部を構成す
るとみなされる。
【0043】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0044】(1)分散コンピューティング・システム
内のプロセッサを再構成する、クォーラム・ベースの方
法であって、前記分散コンピューティング・システムの
プロセッサのクォーラム・グループ内のクォーラムの存
在を識別するステップと、前記プロセッサのクォーラム
・グループの少なくとも1つのプロセッサが使用不能で
ある間に、前記プロセッサのクォーラム・グループを動
的に再構成するステップとを含み、前記動的再構成が、
前記少なくとも1つのプロセッサの使用不能性にもかか
わらず、前記プロセッサのクォーラム・グループの前記
クォーラムのプロセッサの存在と共に進行する方法。 (2)前記少なくとも1つのプロセッサが使用可能にな
った後に回復処理を実行するステップをさらに含み、前
記回復処理が、前記プロセッサのクォーラム・グループ
の1つまたは複数のプロセッサから、前記動的に再構成
されたプロセッサのクォーラム・グループの現在の状態
を取り出すステップを含む、上記(1)に記載の方法。 (3)前記回復処理が、前記少なくとも1つのプロセッ
サから、前記プロセッサのクォーラム・グループの少な
くとも1つの他のプロセッサへ、前記動的に再構成され
たプロセッサのクォーラム・グループの前記現在の状態
を要求するメッセージを送るステップを含む、上記
(2)に記載の方法。 (4)前記現在の状態が、前記プロセッサのクォーラム
・グループに対するメンバ・プロセッサの現行リストを
含み、前記回復処理が、前記少なくとも1つのプロセッ
サでのプロセッサのメンバ・リストを、前記プロセッサ
のクォーラム・グループの前記少なくとも1つの他のプ
ロセッサから受け取った前記メンバ・プロセッサの現行
リストを用いて更新するステップを含む、上記(3)に
記載の方法。 (5)前記回復処理を実行するステップが、さらに、前
記現在の状態を有する前記プロセッサのクォーラム・グ
ループのアクティブ・プロセッサから探索停止メッセー
ジを送るステップを含み、前記探索停止メッセージが、
前記少なくとも1つのプロセッサからの前記メッセージ
に応答する、上記(3)に記載の方法。 (6)前記プロセッサのクォーラム・グループの各プロ
セッサが、インカーネーション番号と、そのインカーネ
ーション番号をもたらすコミット処理に参加したプロセ
ッサのメンバ・リストとを含み、前記回復処理が、1つ
または複数のプロセッサ・インカーネーション番号と前
記インカーネーション番号をもたらした前記コミット処
理に参加したプロセッサのメンバ・リストとを使用し
て、前記現在の状態を得るために、前記プロセッサのク
ォーラム・グループの前記1つまたは複数のプロセッサ
を検査するステップを含む、上記(2)に記載の方法。 (7)前記回復処理が、メンバ・プロセッサの現行リス
トを使用して得たプロセッサの現行クォーラム番号を使
用して前記現在の状態を判定するステップを含む、上記
(6)に記載の方法。 (8)前記1つまたは複数のプロセッサによって維持さ
れる前記メンバ・プロセッサのリストが、前記1つまた
は複数のプロセッサのプロセッサごとに、前記グループ
のインアクティブ・プロセッサのリストと、前記グルー
プのアクティブ・プロセッサのリストとを含み、前記ク
ォーラムが、特定のプロセッサについて、定義済みのプ
ロセッサの数からそのインアクティブ・リスト内のプロ
セッサの数を減じ、1を減じた値が、そのアクティブ・
リスト内のプロセッサの数の過半数より少ない場合に、
前記プロセッサのクォーラム・グループ内の定義済みプ
ロセッサの過半数未満を含む、上記(7)に記載の方
法。 (9)前記回復処理が、現行インカーネーション番号お
よび前記プロセッサのクォーラム・グループのプロセッ
サの現行リストを、使用可能になる前記少なくとも1つ
のプロセッサに伝播することができるように、前記プロ
セッサのクォーラム・グループ内のプロセッサの状態を
交換するステップを含む、上記(2)に記載の方法。 (10)前記動的再構成が、前記プロセッサのクォーラ
ム・グループへのプロセッサの追加または前記プロセッ
サのクォーラム・グループからのプロセッサの削除のい
ずれかを含む、上記(1)に記載の方法。 (11)前記分散コンピューティング・システムが、非
共用分散コンピューティング・システムを含む、上記
(1)に記載の方法。 (12)分散コンピューティング・システム内のプロセ
ッサを再構成するシステムであって、前記分散コンピュ
ーティング・システムのプロセッサのクォーラム・グル
ープ内のクォーラムの存在を識別する手段と、前記プロ
セッサのクォーラム・グループの少なくとも1つのプロ
セッサが使用不能である間に前記プロセッサのクォーラ
ム・グループを動的に再構成する手段とを含み、前記動
的に再構成する手段が、前記少なくとも1つのプロセッ
サの使用不能性にもかかわらず、前記プロセッサのクォ
ーラム・グループの前記クォーラムのプロセッサの存在
と共に前記再構成を進行させる手段を含むシステム。 (13)前記少なくとも1つのプロセッサが使用可能に
なった後に回復処理を実行する手段をさらに含み、前記
回復処理を実行する手段が、前記プロセッサのクォーラ
ム・グループの1つまたは複数のプロセッサから、前記
動的に再構成されたプロセッサのクォーラム・グループ
の現在の状態を取り出す手段を含む、上記(12)に記
載のシステム。 (14)前記回復処理を実行する手段が、前記少なくと
も1つのプロセッサから、前記プロセッサのクォーラム
・グループの少なくとも1つの他のプロセッサへ、前記
動的に再構成されたプロセッサのクォーラム・グループ
の前記現在の状態を要求するメッセージを送る手段を含
む、上記(13)に記載のシステム。 (15)前記現在の状態が、前記プロセッサのクォーラ
ム・グループに対するメンバ・プロセッサの現行リスト
を含み、前記回復処理を実行する手段が、前記少なくと
も1つのプロセッサでのメンバ・プロセッサのリスト
を、前記プロセッサのクォーラム・グループの前記少な
くとも1つの他のプロセッサから受け取った前記メンバ
・プロセッサの現行リストを用いて更新する手段を含
む、上記(14)に記載のシステム。 (16)前記回復処理を実行する手段が、さらに、前記
現在の状態を有する前記プロセッサのクォーラム・グル
ープのアクティブ・プロセッサから探索停止メッセージ
を送る手段を含み、前記探索停止メッセージが、前記少
なくとも1つのプロセッサからの前記メッセージに応答
する、上記(14)に記載のシステム。 (17)前記プロセッサのクォーラム・グループの各プ
ロセッサが、インカーネーション番号と、そのインカー
ネーション番号をもたらすコミット処理に参加したプロ
セッサのメンバ・リストとを含み、前記回復処理を実行
する手段が、1つまたは複数のプロセッサ・インカーネ
ーション番号と前記インカーネーション番号をもたらし
たコミット処理に参加したメンバ・プロセッサのリスト
とを使用して、前記現在の状態を得るために、前記プロ
セッサのクォーラム・グループの前記1つまたは複数の
プロセッサを検査する手段を含む、上記(13)に記載
のシステム。 (18)前記回復処理を実行する手段が、メンバ・プロ
セッサの現行リストを使用して得たプロセッサの現行ク
ォーラム番号を使用して前記現在の状態を判定する手段
を含む、上記(17)に記載のシステム。 (19)前記1つまたは複数のプロセッサによって維持
される前記メンバ・プロセッサのリストが、前記1つま
たは複数のプロセッサのプロセッサごとに、前記グルー
プのインアクティブ・プロセッサのリストと、前記グル
ープのアクティブ・プロセッサのリストとを含み、前記
クォーラムが、特定のプロセッサについて、定義済みの
プロセッサの数からそのインアクティブ・リスト内のプ
ロセッサの数を減じ、1を減じた値が、そのアクティブ
・リスト内のプロセッサの数の過半数より少ない場合
に、前記プロセッサのクォーラム・グループ内の定義済
みプロセッサの過半数未満を含む、上記(18)に記載
のシステム。 (20)前記回復処理を実行する手段が、現行インカー
ネーション番号および前記プロセッサのクォーラム・グ
ループのメンバ・プロセッサの現行リストを、使用可能
になる前記少なくとも1つのプロセッサに伝播すること
ができるように、前記プロセッサのクォーラム・グルー
プ内のプロセッサの状態を交換する手段を含む、上記
(13)に記載のシステム。 (21)前記動的に再構成する手段が、前記プロセッサ
のクォーラム・グループへのプロセッサの追加または前
記プロセッサのクォーラム・グループからのプロセッサ
の削除のいずれかを実行する手段を含む、上記(12)
に記載のシステム。 (22)前記分散コンピューティング・システムが、非
共用分散コンピューティング・システムを含む、上記
(12)に記載のシステム。 (23)プロセッサのグループであって、前記プロセッ
サのグループ内のクォーラムの存在を識別し、前記プロ
セッサのグループの少なくとも1つのプロセッサが使用
不能である間の前記プロセッサのグループの動的再構成
を可能にするように適合されたプロセッサのグループを
含み、前記動的再構成が、前記少なくとも1つのプロセ
ッサの使用不能性にかかわらず、しかし、前記プロセッ
サのグループ内の前記クォーラムのプロセッサの存在と
共に進行を許可される分散コンピューティング・システ
ム。 (24)分散コンピューティング・システム内のプロセ
ッサを再構成する方法を実行するために計算機によって
実行可能な命令の少なくとも1つのプログラムであっ
て、前記分散コンピューティング・システムのプロセッ
サのクォーラム・グループ内のクォーラムの存在を識別
するステップと、前記プロセッサのクォーラム・グルー
プの少なくとも1つのプロセッサが使用不能である間
に、前記プロセッサのクォーラム・グループを動的に再
構成するステップとを含み、前記動的再構成が、前記少
なくとも1つのプロセッサの使用不能性にもかかわら
ず、前記プロセッサのクォーラム・グループの前記クォ
ーラムのプロセッサの存在と共に進行するプログラムを
具体的に実施する、計算機によって可読の少なくとも1
つのプログラム記憶装置。
【図面の簡単な説明】
【図1】3サーバ・システムのグループ・クォーラムが
2であることを示す、最初の状態(本明細書ではインカ
ーネーション1と呼称する)の3サーバ分散処理システ
ムを示す図である。
【図2】サーバ2およびサーバ3と、新しいサーバ4、
サーバ5およびサーバ6を含み、サーバ1が使用不能で
ある、新しいグループ・インカーネーション2の、図1
の分散処理システムを示す図である。
【図3】サーバ1がクォーラム計算のために定義解除さ
れ、これによって新しいグループ・クォーラムが3にな
る、新しいグループ・インカーネーション3の、図2の
分散処理システムを示す図である。
【図4】サーバ2およびサーバ3が使用不能になり、新
しいサーバ7がシステムに追加された、新しいグループ
・インカーネーション4の、図3の分散処理システムを
示す図である。
【図5】サーバ2およびサーバ3が定義解除され、グル
ープ・クォーラムが3に改訂された、新しいグループ・
インカーネーション5の、図4の分散処理システムを示
す図である。
【図6】本発明の原理による、動的サーバ回復手順の一
実施形態の流れ図である。
【図7】本発明の原理による、process_message_proced
ureの一実施形態の流れ図である。
【図8】本発明の原理による、process_message_proced
ureの一実施形態の流れ図である。
【図9】本発明の原理による、クォーラムを計算する手
順の一実施形態の流れ図である。
【図10】本発明の原理による、プロセッサのグループ
の構成を変更する手順の一実施形態の流れ図である。
【符号の説明】
10 分散処理システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケニス・シー・ブリスキー アメリカ合衆国12538 ニューヨーク州ハ イド・パーク ホースショー・ドライブ 28 (72)発明者 マルコス・エヌ・ノヴァクス アメリカ合衆国12533 ニューヨーク州ホ ープウェル・ジャンクション リッジ・ビ ュー・ロード 10

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】分散コンピューティング・システム内のプ
    ロセッサを再構成する、クォーラム・ベースの方法であ
    って、 前記分散コンピューティング・システムのプロセッサの
    クォーラム・グループ内のクォーラムの存在を識別する
    ステップと、 前記プロセッサのクォーラム・グループの少なくとも1
    つのプロセッサが使用不能である間に、前記プロセッサ
    のクォーラム・グループを動的に再構成するステップと
    を含み、前記動的再構成が、前記少なくとも1つのプロ
    セッサの使用不能性にもかかわらず、前記プロセッサの
    クォーラム・グループの前記クォーラムのプロセッサの
    存在と共に進行する方法。
  2. 【請求項2】前記少なくとも1つのプロセッサが使用可
    能になった後に回復処理を実行するステップをさらに含
    み、前記回復処理が、前記プロセッサのクォーラム・グ
    ループの1つまたは複数のプロセッサから、前記動的に
    再構成されたプロセッサのクォーラム・グループの現在
    の状態を取り出すステップを含む、請求項1に記載の方
    法。
  3. 【請求項3】前記回復処理が、前記少なくとも1つのプ
    ロセッサから、前記プロセッサのクォーラム・グループ
    の少なくとも1つの他のプロセッサへ、前記動的に再構
    成されたプロセッサのクォーラム・グループの前記現在
    の状態を要求するメッセージを送るステップを含む、請
    求項2に記載の方法。
  4. 【請求項4】前記現在の状態が、前記プロセッサのクォ
    ーラム・グループに対するメンバ・プロセッサの現行リ
    ストを含み、前記回復処理が、前記少なくとも1つのプ
    ロセッサでのプロセッサのメンバ・リストを、前記プロ
    セッサのクォーラム・グループの前記少なくとも1つの
    他のプロセッサから受け取った前記メンバ・プロセッサ
    の現行リストを用いて更新するステップを含む、請求項
    3に記載の方法。
  5. 【請求項5】前記回復処理を実行するステップが、さら
    に、前記現在の状態を有する前記プロセッサのクォーラ
    ム・グループのアクティブ・プロセッサから探索停止メ
    ッセージを送るステップを含み、前記探索停止メッセー
    ジが、前記少なくとも1つのプロセッサからの前記メッ
    セージに応答する、請求項3に記載の方法。
  6. 【請求項6】前記プロセッサのクォーラム・グループの
    各プロセッサが、インカーネーション番号と、そのイン
    カーネーション番号をもたらすコミット処理に参加した
    プロセッサのメンバ・リストとを含み、前記回復処理
    が、1つまたは複数のプロセッサ・インカーネーション
    番号と前記インカーネーション番号をもたらした前記コ
    ミット処理に参加したプロセッサのメンバ・リストとを
    使用して、前記現在の状態を得るために、前記プロセッ
    サのクォーラム・グループの前記1つまたは複数のプロ
    セッサを検査するステップを含む、請求項2に記載の方
    法。
  7. 【請求項7】前記回復処理が、メンバ・プロセッサの現
    行リストを使用して得たプロセッサの現行クォーラム番
    号を使用して前記現在の状態を判定するステップを含
    む、請求項6に記載の方法。
  8. 【請求項8】前記1つまたは複数のプロセッサによって
    維持される前記メンバ・プロセッサのリストが、前記1
    つまたは複数のプロセッサのプロセッサごとに、前記グ
    ループのインアクティブ・プロセッサのリストと、前記
    グループのアクティブ・プロセッサのリストとを含み、
    前記クォーラムが、特定のプロセッサについて、定義済
    みのプロセッサの数からそのインアクティブ・リスト内
    のプロセッサの数を減じ、1を減じた値が、そのアクテ
    ィブ・リスト内のプロセッサの数の過半数より少ない場
    合に、前記プロセッサのクォーラム・グループ内の定義
    済みプロセッサの過半数未満を含む、請求項7に記載の
    方法。
  9. 【請求項9】前記回復処理が、現行インカーネーション
    番号および前記プロセッサのクォーラム・グループのプ
    ロセッサの現行リストを、使用可能になる前記少なくと
    も1つのプロセッサに伝播することができるように、前
    記プロセッサのクォーラム・グループ内のプロセッサの
    状態を交換するステップを含む、請求項2に記載の方
    法。
  10. 【請求項10】前記動的再構成が、前記プロセッサのク
    ォーラム・グループへのプロセッサの追加または前記プ
    ロセッサのクォーラム・グループからのプロセッサの削
    除のいずれかを含む、請求項1に記載の方法。
  11. 【請求項11】前記分散コンピューティング・システム
    が、非共用分散コンピューティング・システムを含む、
    請求項1に記載の方法。
  12. 【請求項12】分散コンピューティング・システム内の
    プロセッサを再構成するシステムであって、 前記分散コンピューティング・システムのプロセッサの
    クォーラム・グループ内のクォーラムの存在を識別する
    手段と、 前記プロセッサのクォーラム・グループの少なくとも1
    つのプロセッサが使用不能である間に前記プロセッサの
    クォーラム・グループを動的に再構成する手段とを含
    み、前記動的に再構成する手段が、前記少なくとも1つ
    のプロセッサの使用不能性にもかかわらず、前記プロセ
    ッサのクォーラム・グループの前記クォーラムのプロセ
    ッサの存在と共に前記再構成を進行させる手段を含むシ
    ステム。
  13. 【請求項13】前記少なくとも1つのプロセッサが使用
    可能になった後に回復処理を実行する手段をさらに含
    み、前記回復処理を実行する手段が、前記プロセッサの
    クォーラム・グループの1つまたは複数のプロセッサか
    ら、前記動的に再構成されたプロセッサのクォーラム・
    グループの現在の状態を取り出す手段を含む、請求項1
    2に記載のシステム。
  14. 【請求項14】前記回復処理を実行する手段が、前記少
    なくとも1つのプロセッサから、前記プロセッサのクォ
    ーラム・グループの少なくとも1つの他のプロセッサ
    へ、前記動的に再構成されたプロセッサのクォーラム・
    グループの前記現在の状態を要求するメッセージを送る
    手段を含む、請求項13に記載のシステム。
  15. 【請求項15】前記現在の状態が、前記プロセッサのク
    ォーラム・グループに対するメンバ・プロセッサの現行
    リストを含み、前記回復処理を実行する手段が、前記少
    なくとも1つのプロセッサでのメンバ・プロセッサのリ
    ストを、前記プロセッサのクォーラム・グループの前記
    少なくとも1つの他のプロセッサから受け取った前記メ
    ンバ・プロセッサの現行リストを用いて更新する手段を
    含む、請求項14に記載のシステム。
  16. 【請求項16】前記回復処理を実行する手段が、さら
    に、前記現在の状態を有する前記プロセッサのクォーラ
    ム・グループのアクティブ・プロセッサから探索停止メ
    ッセージを送る手段を含み、前記探索停止メッセージ
    が、前記少なくとも1つのプロセッサからの前記メッセ
    ージに応答する、請求項14に記載のシステム。
  17. 【請求項17】前記プロセッサのクォーラム・グループ
    の各プロセッサが、インカーネーション番号と、そのイ
    ンカーネーション番号をもたらすコミット処理に参加し
    たプロセッサのメンバ・リストとを含み、前記回復処理
    を実行する手段が、1つまたは複数のプロセッサ・イン
    カーネーション番号と前記インカーネーション番号をも
    たらしたコミット処理に参加したメンバ・プロセッサの
    リストとを使用して、前記現在の状態を得るために、前
    記プロセッサのクォーラム・グループの前記1つまたは
    複数のプロセッサを検査する手段を含む、請求項13に
    記載のシステム。
  18. 【請求項18】前記回復処理を実行する手段が、メンバ
    ・プロセッサの現行リストを使用して得たプロセッサの
    現行クォーラム番号を使用して前記現在の状態を判定す
    る手段を含む、請求項17に記載のシステム。
  19. 【請求項19】前記1つまたは複数のプロセッサによっ
    て維持される前記メンバ・プロセッサのリストが、前記
    1つまたは複数のプロセッサのプロセッサごとに、前記
    グループのインアクティブ・プロセッサのリストと、前
    記グループのアクティブ・プロセッサのリストとを含
    み、前記クォーラムが、特定のプロセッサについて、定
    義済みのプロセッサの数からそのインアクティブ・リス
    ト内のプロセッサの数を減じ、1を減じた値が、そのア
    クティブ・リスト内のプロセッサの数の過半数より少な
    い場合に、前記プロセッサのクォーラム・グループ内の
    定義済みプロセッサの過半数未満を含む、請求項18に
    記載のシステム。
  20. 【請求項20】前記回復処理を実行する手段が、現行イ
    ンカーネーション番号および前記プロセッサのクォーラ
    ム・グループのメンバ・プロセッサの現行リストを、使
    用可能になる前記少なくとも1つのプロセッサに伝播す
    ることができるように、前記プロセッサのクォーラム・
    グループ内のプロセッサの状態を交換する手段を含む、
    請求項13に記載のシステム。
  21. 【請求項21】前記動的に再構成する手段が、前記プロ
    セッサのクォーラム・グループへのプロセッサの追加ま
    たは前記プロセッサのクォーラム・グループからのプロ
    セッサの削除のいずれかを実行する手段を含む、請求項
    12に記載のシステム。
  22. 【請求項22】前記分散コンピューティング・システム
    が、非共用分散コンピューティング・システムを含む、
    請求項12に記載のシステム。
  23. 【請求項23】プロセッサのグループであって、 前記プロセッサのグループ内のクォーラムの存在を識別
    し、 前記プロセッサのグループの少なくとも1つのプロセッ
    サが使用不能である間の前記プロセッサのグループの動
    的再構成を可能にするように適合されたプロセッサのグ
    ループを含み、 前記動的再構成が、前記少なくとも1つのプロセッサの
    使用不能性にかかわらず、しかし、前記プロセッサのグ
    ループ内の前記クォーラムのプロセッサの存在と共に進
    行を許可される分散コンピューティング・システム。
  24. 【請求項24】分散コンピューティング・システム内の
    プロセッサを再構成する方法を実行するために計算機に
    よって実行可能な命令の少なくとも1つのプログラムで
    あって、 前記分散コンピューティング・システムのプロセッサの
    クォーラム・グループ内のクォーラムの存在を識別する
    ステップと、 前記プロセッサのクォーラム・グループの少なくとも1
    つのプロセッサが使用不能である間に、前記プロセッサ
    のクォーラム・グループを動的に再構成するステップと
    を含み、前記動的再構成が、前記少なくとも1つのプロ
    セッサの使用不能性にもかかわらず、前記プロセッサの
    クォーラム・グループの前記クォーラムのプロセッサの
    存在と共に進行するプログラムを具体的に実施する、計
    算機によって可読の少なくとも1つのプログラム記憶装
    置。
JP2000257264A 1999-08-31 2000-08-28 分散コンピュータ・システム内のプロセッサを再構成する方法 Expired - Fee Related JP3706531B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/387666 1999-08-31
US09/387,666 US6490693B1 (en) 1999-08-31 1999-08-31 Dynamic reconfiguration of a quorum group of processors in a distributed computing system

Publications (2)

Publication Number Publication Date
JP2001109726A true JP2001109726A (ja) 2001-04-20
JP3706531B2 JP3706531B2 (ja) 2005-10-12

Family

ID=23530876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000257264A Expired - Fee Related JP3706531B2 (ja) 1999-08-31 2000-08-28 分散コンピュータ・システム内のプロセッサを再構成する方法

Country Status (3)

Country Link
US (1) US6490693B1 (ja)
JP (1) JP3706531B2 (ja)
KR (1) KR100387700B1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004434A (ja) * 2004-06-18 2006-01-05 Microsoft Corp 分散障害許容型コンピューティングシステムにおける効率のよいレプリカセットの変更
JP2006004433A (ja) * 2004-06-18 2006-01-05 Microsoft Corp Cheappaxos
JP2008192139A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp ノードクラスタの管理
JP2012507074A (ja) * 2008-10-23 2012-03-22 マイクロソフト コーポレーション 分散ストレージシステムにおける定数ベースのトランザクショナルに一貫性のあるメンバシップ管理
JP2016184324A (ja) * 2015-03-26 2016-10-20 日本電気株式会社 データベースシステム、情報記憶方法、プログラム
JP2021108139A (ja) * 2020-09-24 2021-07-29 北京百度網訊科技有限公司 Rpcメンバー情報取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694455B1 (en) * 2000-06-16 2004-02-17 Ciena Corporation Communications network and method performing distributed processing of fault and alarm objects
US6816461B1 (en) * 2000-06-16 2004-11-09 Ciena Corporation Method of controlling a network element to aggregate alarms and faults of a communications network
US7289429B2 (en) * 2001-06-01 2007-10-30 Fujitsu Network Communications, Inc. System and method to perform non-service effecting bandwidth reservation using a reservation signaling protocol
US6904448B2 (en) * 2001-12-20 2005-06-07 International Business Machines Corporation Dynamic quorum adjustment
US7028219B2 (en) * 2002-04-25 2006-04-11 Hewlett-Packard Development Company, L.P. Hybrid method for flushing transaction state in a fault-tolerant clustered database
US7363347B2 (en) * 2002-11-07 2008-04-22 Hewlett-Packard Development Company, L.P. Method and system for reestablishing connection information on a switch connected to plural servers in a computer network
US8051176B2 (en) 2002-11-07 2011-11-01 Hewlett-Packard Development Company, L.P. Method and system for predicting connections in a computer network
US8285825B1 (en) 2002-11-13 2012-10-09 Novell, Inc. Method and system for managing network resources based on a dynamic quorum
US7120821B1 (en) * 2003-07-24 2006-10-10 Unisys Corporation Method to revive and reconstitute majority node set clusters
US7366109B2 (en) * 2003-10-29 2008-04-29 Nortel Networks Limited Virtual private networks within a packet network having a mesh topology
JP3808874B2 (ja) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 分散システム及び多重化制御方法
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
US20100114826A1 (en) * 2008-10-24 2010-05-06 Microsoft Corporation Configuration management in distributed data systems
US8819106B1 (en) 2008-12-12 2014-08-26 Amazon Technologies, Inc. Managing distributed execution of programs
US8370493B2 (en) * 2008-12-12 2013-02-05 Amazon Technologies, Inc. Saving program execution state
US8321558B1 (en) 2009-03-31 2012-11-27 Amazon Technologies, Inc. Dynamically monitoring and modifying distributed execution of programs
US8296419B1 (en) 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US9135268B2 (en) * 2009-12-30 2015-09-15 Symantec Corporation Locating the latest version of replicated data files
US8103905B2 (en) * 2010-03-12 2012-01-24 Microsoft Corporation Detecting and recovering from process failures
US8443231B2 (en) * 2010-04-12 2013-05-14 Symantec Corporation Updating a list of quorum disks
US8326801B2 (en) 2010-11-17 2012-12-04 Microsoft Corporation Increasing database availability during fault recovery
US10481963B1 (en) * 2016-06-29 2019-11-19 Amazon Technologies, Inc. Load-balancing for achieving transaction fault tolerance

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09109414A (ja) * 1995-10-13 1997-04-28 Canon Inc インクタンクおよびその製造方法
JPH1040222A (ja) * 1996-04-30 1998-02-13 Internatl Business Mach Corp <Ibm> 分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するための方法
JPH1078944A (ja) * 1996-07-23 1998-03-24 Internatl Business Mach Corp <Ibm> 分散コンピュータ環境におけるプロセッサ・ドメインのメンバー管理方法及び装置
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
JP2001511278A (ja) * 1997-01-28 2001-08-07 タンデム コンピューターズ インコーポレイテッド 回復中に最大限の全接続に対しマルチプロセッサシステムをノード剪定する方法及び装置
JP2001521222A (ja) * 1997-10-21 2001-11-06 サン・マイクロシステムズ・インコーポレーテッド 分散型コンピュータ・システムにおいてクラスタ・メンバーシップを決定する方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261085A (en) 1989-06-23 1993-11-09 Digital Equipment Corporation Fault-tolerant system and method for implementing a distributed state machine
CA2048306A1 (en) 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5339404A (en) 1991-05-28 1994-08-16 International Business Machines Corporation Asynchronous TMR processing system
US5606693A (en) 1991-10-02 1997-02-25 International Business Machines Corporation Distributed database management over a network
JP3649345B2 (ja) 1994-05-26 2005-05-18 富士ゼロックス株式会社 情報処理システム
US5659682A (en) 1994-06-16 1997-08-19 International Business Machines Corporation Scheme to determine completion of directory operations for server recovery
US5608865A (en) 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
US5604862A (en) 1995-03-14 1997-02-18 Network Integrity, Inc. Continuously-snapshotted protection of computer files
US5675723A (en) 1995-05-19 1997-10-07 Compaq Computer Corporation Multi-server fault tolerance using in-band signalling
US5696895A (en) 1995-05-19 1997-12-09 Compaq Computer Corporation Fault tolerant multiple network servers
US5682470A (en) 1995-09-01 1997-10-28 International Business Machines Corporation Method and system for achieving collective consistency in detecting failures in a distributed computing system
US5787250A (en) * 1996-04-30 1998-07-28 International Business Machines Corporation Program product for managing membership of a group of processors in a distributed computing environment
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
US6163855A (en) * 1998-04-17 2000-12-19 Microsoft Corporation Method and system for replicated and consistent modifications in a server cluster
US6243744B1 (en) * 1998-05-26 2001-06-05 Compaq Computer Corporation Computer network cluster generation indicator

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09109414A (ja) * 1995-10-13 1997-04-28 Canon Inc インクタンクおよびその製造方法
JPH1040222A (ja) * 1996-04-30 1998-02-13 Internatl Business Mach Corp <Ibm> 分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するための方法
JPH1078944A (ja) * 1996-07-23 1998-03-24 Internatl Business Mach Corp <Ibm> 分散コンピュータ環境におけるプロセッサ・ドメインのメンバー管理方法及び装置
JP2001511278A (ja) * 1997-01-28 2001-08-07 タンデム コンピューターズ インコーポレイテッド 回復中に最大限の全接続に対しマルチプロセッサシステムをノード剪定する方法及び装置
JPH11167558A (ja) * 1997-06-27 1999-06-22 Sun Microsyst Inc 低信頼度分散型コンピュータ・システムにおけるメンバーシップ
JP2001521222A (ja) * 1997-10-21 2001-11-06 サン・マイクロシステムズ・インコーポレーテッド 分散型コンピュータ・システムにおいてクラスタ・メンバーシップを決定する方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004434A (ja) * 2004-06-18 2006-01-05 Microsoft Corp 分散障害許容型コンピューティングシステムにおける効率のよいレプリカセットの変更
JP2006004433A (ja) * 2004-06-18 2006-01-05 Microsoft Corp Cheappaxos
JP2008192139A (ja) * 2007-01-31 2008-08-21 Hewlett-Packard Development Co Lp ノードクラスタの管理
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
JP2012507074A (ja) * 2008-10-23 2012-03-22 マイクロソフト コーポレーション 分散ストレージシステムにおける定数ベースのトランザクショナルに一貫性のあるメンバシップ管理
US9542465B2 (en) 2008-10-23 2017-01-10 Microsoft Technology Licensing, Llc Quorum based transactionally consistent membership management in distributed storage
US10423460B2 (en) 2008-10-23 2019-09-24 Microsoft Technology Licensing, Llc Quorum based transactionally consistent membership management in distributed systems
JP2016184324A (ja) * 2015-03-26 2016-10-20 日本電気株式会社 データベースシステム、情報記憶方法、プログラム
JP2021108139A (ja) * 2020-09-24 2021-07-29 北京百度網訊科技有限公司 Rpcメンバー情報取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品
JP7083416B2 (ja) 2020-09-24 2022-06-10 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド Rpcメンバー情報取得方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム

Also Published As

Publication number Publication date
JP3706531B2 (ja) 2005-10-12
KR100387700B1 (ko) 2003-06-18
US6490693B1 (en) 2002-12-03
KR20010050140A (ko) 2001-06-15

Similar Documents

Publication Publication Date Title
JP2001109726A (ja) 分散コンピュータ・システム内のプロセッサを再構成する方法、システム、および、記憶装置
JP2001117895A (ja) 分散コンピューティング・システムのクォーラム数判定方法、システムおよび記憶装置
US11687555B2 (en) Conditional master election in distributed databases
US11265216B2 (en) Communicating state information in distributed operating systems
US11924044B2 (en) Organizing execution of distributed operating systems for network devices
US6487678B1 (en) Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US11316775B2 (en) Maintaining coherency in distributed operating systems for network devices
JP4307673B2 (ja) マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置
US6625639B1 (en) Apparatus and method for processing a task in a clustered computing environment
US7130897B2 (en) Dynamic cluster versioning for a group
EP2434729A2 (en) Method for providing access to data items from a distributed storage system
EP1122649A1 (en) Method and apparatus for dynamically altering configurations of clustered computer systems
US9092294B2 (en) Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade
US10630566B1 (en) Tightly-coupled external cluster monitoring
US11893064B2 (en) Reliably maintaining strict consistency in cluster wide state of opened files in a distributed file system cluster exposing a global namespace
US7240088B2 (en) Node self-start in a decentralized cluster
US6526432B1 (en) Relaxed quorum determination for a quorum based operation of a distributed computing system
CN111324632B (zh) 利用客户端侧高速缓存的透明数据库会话恢复
US20240028611A1 (en) Granular Replica Healing for Distributed Databases
US20220058162A1 (en) Methods, devices and systems for writer pre-selection in distributed data systems
CN115297129A (zh) 数据通信网络建立方法及装置
CN114666250A (zh) 一种保持安防软件系统中数据和状态一致性的方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050729

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090805

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110805

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees