JP2003067215A - 分散システム、同システムの多重化制御方法および時刻管理方法 - Google Patents

分散システム、同システムの多重化制御方法および時刻管理方法

Info

Publication number
JP2003067215A
JP2003067215A JP2002171715A JP2002171715A JP2003067215A JP 2003067215 A JP2003067215 A JP 2003067215A JP 2002171715 A JP2002171715 A JP 2002171715A JP 2002171715 A JP2002171715 A JP 2002171715A JP 2003067215 A JP2003067215 A JP 2003067215A
Authority
JP
Japan
Prior art keywords
input
input data
computer
candidate
time
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
JP2002171715A
Other languages
English (en)
Other versions
JP3655263B2 (ja
Inventor
Kotaro Endo
浩太郎 遠藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002171715A priority Critical patent/JP3655263B2/ja
Publication of JP2003067215A publication Critical patent/JP2003067215A/ja
Application granted granted Critical
Publication of JP3655263B2 publication Critical patent/JP3655263B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 【課題】スプリットブレインの防止と故障発生時におけ
るリアルタイム性の確保とを両立させることを可能とし
た分散システムを提供する。 【解決手段】この分散システムは、n台のコンピュータ
で多重化を構成し、f台までの故障停止を許容する。そ
して、各コンピュータは、内部ネットワークBを介して
入力候補を送受信し合い、その一覧を作成する。そし
て、その中に(n−f)個の同一の入力候補が現れるま
で、それぞれがこの一覧作成を繰り返し、この条件を満
たしたものから、他のコンピュータの状態に関わらず
に、その処理を実行する。つまり、この分散システム
は、故障検出をまったく行わないことによって、スプリ
ットブレインを原理的に発生させず、タイムアウトによ
る故障発生時の処理の中断も発生させることがない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、4台以上のコン
ピュータがネットワークで接続された分散システム、同
システムの多重化制御方法および時刻管理方法に係り、
特に、スプリットブレインの防止と故障発生時における
リアルタイム性の確保とを両立させることを可能とした
分散システム、同システムの多重化制御方法および時刻
管理方法に関する。
【0002】
【従来の技術】近年、コンピュータ技術やネットワーク
技術の向上は目覚ましく、これに伴って、業務の電算化
が広く行われている。また、その業務の内容によって
は、故障などによる中断が許されないものも多く、最近
では、複数のコンピュータをネットワークで結合した分
散システムを構築することが一般的になりつつある。そ
して、この分散システムの運用手法の1つに、整列マル
チキャストを用いた決定性のプログラムの実行の多重化
が存在する。
【0003】まず、「整列マルチキャスト」、「決定性
のプログラム」および「多重化」について説明する。
【0004】・整列マルチキャスト 複数のコンピュータが結合した分散システムのような環
境では、各コンピュータが独立して動作する。したがっ
て、これらのコンピュータを同期的に動作させるために
は、特別な仕組みが必要である。整列マルチキャスト
は、分散システムへの入力をすべてのコンピュータに配
送する仕組みであり、データの到着順序がすべてのコン
ピュータで同じであることを保証するものである。
【0005】・決定性のプログラム プログラムの実行は、コンピュータに入力が与えられる
と、その時のコンピュータの状態によって、出力と次の
状態とを決めるものであると考えることができる。そし
て、決定性(deterministic)のプログラムは、与えら
れた入力にしたがって、出力と次の状態とが一意的に決
まるプログラムとして定義される。具体的には、不定値
や乱数の参照等がないプログラムのことをいう。決定性
のプログラムの特徴は、初期状態と入力列とが決まれ
ば、その実行が一意的であることである。以下、本明細
書でプログラムと称するとき、決定性のプログラムのこ
とをさすものとする。
【0006】・多重化 分散システムでは、各コンピュータが独立に故障する可
能性がある。仮に、1つのコンピュータが故障しただけ
でシステム全体が機能しない場合は、分散システムの稼
働率は、1台のコンピュータの稼働率よりも低くなって
しまう。かかる事態を防止するために、システム全体に
係わる処理は多重化することが必要である。逆に、多重
化することによって、分散システムの稼働率を1台のコ
ンピュータの稼働率よりも高くすることが可能である。
たとえば、稼働率99パーセントのコンピュータ10台
で構成する分散システムが、まったく多重化されていな
いとすると、その分散システムの稼働率は90%程度で
ある。もし、これが多重化によって3台の故障まで耐え
得るとすると、稼働率は、99.9998%程度とな
る。
【0007】次に、整列マルチキャストを用いた決定性
のプログラムの実行の多重化について説明する。ここで
は、複数台のコンピュータによって構成される分散シス
テムであって、多重化を構成するそれぞれのコンピュー
タが、同一のプログラムを有していると想定する。
【0008】まず、すべてのコンピュータは、同一の初
期状態からはじまる。その後、入力されるデータは、必
ず整列マルチキャストを通して、すべてのコンピュータ
に同一順序で配送され、それぞれのプログラムが実行さ
れる。
【0009】各プログラムへの入力列は、この整列マル
チキャストにより、同一順序となっているので、決定性
のプログラムの特徴により、すべてのコンピュータの状
態が同一に保たれ、出力列もすべて同じとなる。つま
り、プログラムの実行が多重化される。
【0010】ここで、整列マルチキャストの実現方法に
ついて、その概要を説明する。
【0011】特別なハードウェアによらずに整列マルチ
キャストを実現するためには、コンピュータ間で適切な
アルゴリズムにしたがってメッセージをやり取りするこ
と、つまりプロトコルが用いられる。アルゴリズムを具
体的に説明する前に、注意すべき点を列挙する。
【0012】すべてのコンピュータが、いつでも故障停
止する可能性があることを前提としており、多重化とし
て成立するためには、特定のコンピュータに全体の処理
が依存してはならない。したがって、次のことに注意す
る必要がある。
【0013】(1)分散システムへの入力の受け付けを
特定のコンピュータに固定しない。
【0014】たとえば、特定のコンピュータに入力の受
付を固定し、すべての入力をそのコンピュータにいった
ん転送することによって入力の順序を決定し、その順序
で配送するといった単純なアルゴリズムは使えない。こ
のアルゴリズムでは、入力受付を固定したコンピュータ
が故障停止すると、その時点で入力の順序が決定できな
くなってしまう。
【0015】(2)入力の配送の完了まちあわせを特定
のコンピュータに固定しない。
【0016】たとえば、特定のコンピュータが、停止し
ていないすべてのコンピュータに配送を行うようにす
る、といった単純なアルゴリズムは使えない。このアル
ゴリズムでは、配送コンピュータが配送の途中で故障停
止してしまうと、一部のコンピュータにのみ配送された
まま、配送が完了しなくなってしまう。
【0017】以上を踏まえて、前述のアルゴリズムを具
体的に説明する。
【0018】従来では、故障検出が重要な役割を果た
す。典型的には、故障検出はハートビート・タイムアウ
ト・アルゴリズムによって行われる。このアルゴリズム
は、各コンピュータが定期的に送出するハートビート
(心拍)が一定時間以上確認できない場合に、当該コン
ピュータの故障を判定するというものである。
【0019】また、各コンピュータは、入力受付キュー
をもつ。第1ステップとして、それぞれのコンピュータ
は、入力受付キューの先頭にある入力をそのコンピュー
タにおける「入力候補」として他のすべてのコンピュー
タに配送する。また、入力受付キューが空のコンピュー
タでは、他のコンピュータの第1ステップとして最初に
得られた「入力候補」を自分の「入力候補」として他の
すべてのコンピュータに配送する。
【0020】第1ステップの最終的な結果として、各コ
ンピュータは、すべてのコンピュータについて、「入力
候補」を得るか、「故障検出」を得るか、または、その
双方を得る。ここでは、すべてのコンピュータについて
の「入力候補」および「故障検出」の一覧を単に「一
覧」と呼ぶことにする。
【0021】第2ステップとして、それぞれのコンピュ
ータは、自分の「一覧」を他のすべてのコンピュータに
配送する。ここで注意すべき点は、これらの「一覧」
が、各コンピュータごとに異なっているかも知れないと
いうことである。なぜなら、第1ステップの途中で故障
停止が発生した場合には、「入力候補」が部分的にしか
配送されていないかも知れない。また、第2ステップの
開始の時点で、「故障検出」にはずれがあるかも知れな
いからである。
【0022】第2ステップの結果として、各コンピュー
タは、他のコンピュータから得られた「一覧」が自分の
「一覧」と異なっている場合、これらを合併して自分の
「一覧」にし、第2ステップを繰り返し実行する。する
と、この第2ステップの最終的な結果として、故障して
いない他のコンピュータがもつ「一覧」がすべて自分の
「一覧」と一致する。この時点で、プロトコルは完了す
る。
【0023】なお、整列マルチキャストとして配送され
る入力は、その「一覧」にある「入力候補」の中から各
自が同一の決まったルールで選べばよい(たとえば先頭
にあるもの)。そして、最後に、その選んだ入力を入力
受付キューから取り除く。
【0024】以上の手順により、複数のコンピュータを
ネットワークで結合した分散システムにおける、整列マ
ルチキャストを用いた決定性のプログラムの実行の多重
化が実現される。
【0025】
【発明が解決しようとする課題】ところで、前述した手
順では、次のような問題点があった。
【0026】(1)スプリットブレイン スプリットブレインは、実行のコンテキスト(状態)が
2つ以上に分かれてしまうことをさす。このスプリット
ブレインは、故障検出が誤って行われたときに発生す
る。たとえば、システムを構成するコンピュータが、2
つのコンピュータ群の間で互いに通信できない状態とな
った場合(ネットワークパーティショニング)、それぞ
れのコンピュータ群は、互いに故障検出し、独立して動
作をはじめる。あるいは、一時的な高負荷のために、ハ
ートビートの送受信が中断して故障の誤検出が発生し、
スプリットブレインに陥る場合もある。
【0027】多重化された処理は、システムの中で重要
な処理であるはずである。ここでスプリットブレインが
起きると、その処理に一貫性がなくなり、システム全体
に致命的な影響を及ぼすことになる。
【0028】スプリットブレインを起きにくくするため
には、故障の誤検出を起きにくくする必要がある。その
ためには、ハートビートのタイムアウトを十分に長くす
る必要がある。実用上は、10秒〜1分ぐらいのタイム
アウト値が使われるのが一般的である。
【0029】(2)故障発生時の処理のリアルタイム性 ところが、タイムアウトを長く設定すると、故障の発生
から故障検出までの時間が長くなることになる。する
と、その間は、整列マルチキャストのプロトコル中で、
故障したコンピュータの故障検出を待ち、整列マルチキ
ャストの実行が一時的に停止する。その結果、多重化の
実行が一時的に停止することになる。
【0030】これは、一般的にはシステムに致命的な影
響を与えるものではないが、リアルタイム性が重要なシ
ステムでは、故障発生時にその要件を満たさなくなる場
合もある。つまり、ハートビートのタイムアウト値は、
リアルタイム性の要件から上限が抑えられており、むや
みに長く設定できない。
【0031】結局、このハートビートのタイムアウト値
の設定は、スプリットブレインとリアルタイム性の間で
トレードオフの関係に陥ってしまうという問題があっ
た。
【0032】この発明は、このような事情を考慮してな
されたものであり、スプリットブレインの防止と故障発
生時におけるリアルタイム性の確保とを両立させること
を可能とした分散システム、同システムの多重化制御方
法および時刻管理方法を提供することを目的とする。
【0033】
【課題を解決するための手段】前述した目的を達成する
ために、この発明は、故障検出をまったく行わないこと
によって、スプリットブレインを原理的に発生させず、
タイムアウトによる故障発生時の処理の中断も発生させ
ないようにしたものである。そして、そのために、この
発明は、少なくとも(n−f)台のコンピュータが動作
していれば、他のf台の動作に関わらず、入力をそれら
に配送するようにした。
【0034】より具体的には、この発明は、ネットワー
クで接続されたn台のコンピュータを同期的に動作させ
る分散システムであって、少なくとも(n−f)台以上
での多重化を保証する分散システムにおいて、前記各コ
ンピュータは、前記n台のコンピュータそれぞれが次に
処理する候補として選択した入力データを前記ネットワ
ークを介して収集する入力候補収集手段と、前記入力候
補収集手段により収集された入力データが(n−f)個
以上存在する場合に、その中に同一内容の入力データが
(n−f)個以上あるか否かを判定し、(n−f)個以
上あったときに、その入力データを次に処理する対象と
して確定する第1の入力候補選定制御手段と、前記収集
された入力データの中に同一内容の入力データが(n−
f)個以上ないと前記第1の入力候補選定制御手段で判
定されたときに、前記収集された入力データ数の過半数
を占める同一内容の入力データが存在するか否かを判定
し、存在したときに、その入力データを自候補とすると
ともにそれ以外の他の候補の入力データをすべて破棄し
た上で前記入力候補収集手段に入力データの収集を再実
行させる第2の入力候補選定制御手段と、前記収集され
た入力データ数の過半数を占める同一内容の入力データ
が存在しないと前記第2の入力候補選定手段で判定され
たときに、前記収集された入力データの中からいずれか
の入力データを任意に選択して自候補とするとともに、
それ以外の他の候補の入力データをすべて破棄した上で
前記入力候補収集手段に入力データの収集を再実行させ
る第3の入力候補選定制御手段とを具備することを特徴
とする分散システムを提供する。
【0035】この分散システムにおいては、故障検出を
まったく行わないで、整列マルチキャストを実現し、特
に、故障発生時でも配送の中断を発生させることがな
い。
【0036】
【発明の実施の形態】以下、図面を参照してこの発明の
一実施形態を説明する。
【0037】(第1実施形態) まず、この実施形態に
係る分散システムの前提条件を説明する。ここでは、多
重化を構成するコンピュータの数をnとし、f台までの
故障停止が許容されるものと想定する。つまり、多重化
されるプログラムは、少なくとも(n−f)台のコンピ
ュータ上で実行される。また、(f+1)台以上の故障
停止が発生した場合には、多重化は継続しないものとす
る(いわゆるフェイルストップ)。
【0038】また、ここでは、このfを3f<nとなる
最大の整数とする。たとえばn=4ならば、f=1であ
る。n=10ならばf=3である。この前提は、システ
ムの稼働率に制限を設けるものであるが、たとえば、n
=10の場合には、前述の稼働率の計算より、実用上ま
ったく問題ないといえる。
【0039】また、多重化されるプログラムの入力およ
び出力は、信頼性のないデータグラム(Unreliable Dat
agram)であるとする。これは、入出力のパケットにつ
いて、欠落、重複および順序の交換を許容するものであ
る。信頼性のないデータグラムの例としては、IP(In
ternet Protocl)が挙げられる。
【0040】なお、この信頼性のないデータグラムの非
決定性と多重化されるプログラムの決定性とは矛盾する
ものではない。プログラムの決定性は、入力が決まれば
一意的に次の状態と出力が決まることを示し、プログラ
ムの内部動作に関する決定性を意味している。一方、信
頼性のないデータグラムは、あるプログラムの出力が他
のプログラムの入力へ渡される途中で、欠落、重複また
は順序の交換があり得ることを示し、プログラム間の入
出力に関する非決定性を意味している。
【0041】次に、図1および図2を参照して、この分
散システムの構成を説明する。
【0042】図1に示すように、この分散システム10
00は、n台のコンピュータ100により多重化されて
おり、それぞれのコンピュータ100が、外部ネットワ
ークAを介して複数のクライアント装置2000と接続
されている。また、このコンピュータ100間は、内部
ネットワークBを介して接続されている。そして、この
分散システム1000における各コンピュータ100
は、外部ネットワークAを介してクライアント装置20
00から受け取った入力パケット(入力)を他のコンピ
ュータ100と同じ順序で処理していく。なお、クライ
アント装置2000からの入力パケットは、n台のコン
ピュータ100の中のいずれかのコンピュータに入力さ
れる。
【0043】また、この処理により生成される出力パケ
ットは、外部ネットワークAを介してクライアント装置
2000に返却される(出力)。
【0044】図2は、コンピュータ100の構成を示す
図である。入力受付キュー部1で受け付けられた入力パ
ケットは、整列マルチキャスト部2によってアプリケー
ションプログラム3に配送されることになる。配送され
た入力パケットの入力によって、このアプリケーション
プログラム3は、プログラム状態管理部4に保存されて
いる状態にしたがって実行し、出力パケットを生成す
る。出力パケットは、出力フィルター部5で選別されて
から出力される。
【0045】次に、整列マルチキャスト部2の各構成要
素について説明する。
【0046】入力順序番号記憶部21は、整列マルチキ
ャストによってそのコンピュータへ次に配送される入力
パケットの順序番号を記憶する。入力パケットジャーナ
ル記憶部22は、整列マルチキャストによってそのコン
ピュータへ配送が確定した入力パケットの列を最近のも
のから一定の量だけ記憶する。プロトコルデータ送受信
部23は、他のコンピュータのプロトコルデータ送受信
部23とプロトコルデータをやり取りする。
【0047】また、ステップ番号記憶部24、候補パケ
ット記憶部25および入力パケット確定判定部26は、
整列マルチキャストによってそのコンピュータへ次に配
送される入力パケットを決定するアルゴリズムで用いら
れる。ステップ番号記憶部24は、プロトコルのステッ
プ番号を記憶する。候補パケット記憶部25は、そのス
テップにおける各コンピュータの「入力候補」となる入
力パケットを計n個記憶する。入力パケット確定判定部
26は、候補パケット記憶部25の情報から入力パケッ
トの確定の判定および次ステップの「入力候補」の決定
を行う。
【0048】最大確定入力順序番号記憶部27は、他の
コンピュータも含め、配送が確定したことがわかってい
る最大の入力順序番号を記憶する。遅延記憶部28は、
(n−1)個のフラグで構成され、他コンピュータより
遅延しているかどうかを記憶する。そして、スキップ判
定部29は、遅延記憶部28の情報からスキップ動作の
必要性を判定、実行する。
【0049】以降、該当入力順序番号とは、入力順序番
号記憶部21に記憶された入力順序番号のことを指し、
該当ステップ番号とは、ステップ番号記憶部24に記憶
されたステップ番号のことを指し、該当最大確定入力順
序番号とは、最大確定入力順序番号記憶部27に記憶さ
れた入力順序番号のことを指し、自候補とは、候補パケ
ット記憶部25における自コンピュータに対応する「入
力候補」を指し、他候補とは、候補パケット記憶部25
における自候補以外の「入力候補」を指すものとする。
【0050】図3は、プロトコルデータ送受信部23に
よって送受信されるプロトコルデータのレイアウトを示
す図である。
【0051】図3に示すように、プロトコルデータ送受
信部23によって送受信されるプロトコルデータは、種
類、送信者、入力順序番号、ステップ番号、最大確定入
力順序番号および入力パケットの各フィールドを含んで
いる。そして、先頭の種類フィールドによって、このプ
ロトコルデータは、次の3つに使い分けられる。
【0052】(1)候補種類:入力順序番号フィール
ド、ステップ番号フィールド、入力パケットフィールド
には、それぞれ、送信者の送信時における該当入力順序
番号、該当ステップ番号、自候補が格納される。
【0053】(2)確定種類:その入力順序番号に対応
する入力パケットが、送信者の送信時における入力パケ
ットジャーナル記憶部26にあることを示し、入力パケ
ットフィールドにはその入力パケットが格納される。こ
の場合、ステップ番号フィールドは使用しない。
【0054】(3)遅延種類:その入力順序番号に対応
する入力パケットが、送信者の送信時における入力パケ
ットジャーナル記憶部26にないことを示す。この場
合、ステップ番号フィールド、入力パケットフィールド
は使用しない。
【0055】いずれの種類においても、最大確定入力順
序番号フィールドには、送信者の送信時における該当最
大確定入力順序番号を格納する。また、該当最大確定入
力順序番号は、そのコンピュータで確定した入力パケッ
トの順序番号と、受信したプロトコルデータ中の最大確
定入力順序番号とのうち、最も大きいものに更新するも
のとする。
【0056】ここで、図4を参照して、整列マルチキャ
スト部2によって実行される整列マルチキャストの主要
部の概要について説明する。
【0057】いま、多重化を構成するコンピュータの
数、つまりnを4とする。また、前述したように、fは
3f<nとなる最大の整数であるから、f=1となる。
したがって、この例では、少なくとも(n−f)、つま
り3台以上で一貫性を保ちながら処理を実行していくこ
とになる。
【0058】第1に、コンピュータ(1),(2)は
A、コンピュータ(3)はB、コンピュータ(4)はC
をそれぞれ入力候補として選択したとする。また、第2
に、コンピュータ(1)は、コンピュータ(2)の入力
候補Aとコンピュータ(3)の入力候補Bを収集したと
する。つまり、コンピュータ(1)は、自候補および他
候補を(n−f)個収集したことになる。この時、コン
ピュータ(1)は、コンピュータ(4)の入力候補の収
集を待たずに、入力候補の判定を試みる。しかしなが
ら、その中に(n−f)個の同一の候補は存在しないこ
とから、コンピュータ(1)は、入力候補の再選択を実
行する。再選択は、収集された入力候補数の過半数を占
める候補があればその候補を選択し、なければその中か
らランダムに選択する。ここではAが過半数を占めるの
で、コンピュータ(1)は、第3に、Aを自候補として
再選択する。
【0059】この要領で、コンピュータ(2)は、コン
ピュータ(1)の入力候補Aとコンピュータ(4)の入
力候補Cを収集した後、Aを自候補として再選択し、コ
ンピュータ(3)は、コンピュータ(2)の入力候補A
とコンピュータ(4)の入力候補Cを収集した後、Cを
自候補として再選択し、コンピュータ(4)は、コンピ
ュータ(1)の入力候補Aとコンピュータ(2)の入力
候補Aを収集した後、Aを自候補として再選択したとす
る。
【0060】第4に、コンピュータ(1)は、コンピュ
ータ(2)の入力候補Aとコンピュータ(4)の入力候
補Aを収集したとする。つまり、コンピュータ(1)
は、再度、自候補および他候補を(n−f)個収集した
ことになる。この時、コンピュータ(1)は、コンピュ
ータ(3)の入力候補の収集を待たずに、入力候補の判
定を試みる。そして、ここでは、(n−f)個のAが存
在するため、第5に、コンピュータ(1)は、入力をA
に決定する。
【0061】一方、コンピュータ(2)は、コンピュー
タ(1)の入力候補Aとコンピュータ(3)の入力候補
Cを収集したとする。しかしながら、(n−f)個の同
一の候補は依然として存在しないことから、コンピュー
タ(2)は、入力候補の再選択を実行し、その中の過半
数を占めるAを自候補として選択する。同様に、コンピ
ュータ(3)は、コンピュータ(1)の入力候補Aとコ
ンピュータ(2)の入力候補Aを収集した後、コンピュ
ータ(4)は、コンピュータ(2)の入力候補Aとコン
ピュータ(3)の入力候補Aを収集した後、それぞれA
を自候補として再選択したとする。
【0062】第6に、コンピュータ(2)は、コンピュ
ータ(1)の入力候補Aとコンピュータ(3)の入力候
補Aを収集したとする。ここでのコンピュータ(1)の
入力候補Aは、既に候補ではなく確定済みの入力である
ため、第7に、コンピュータ(2)は、入力をAに決定
する。
【0063】一方、コンピュータ(3)は、コンピュー
タ(2)の入力候補Aとコンピュータ(4)の入力候補
Aを収集し、コンピュータ(4)は、コンピュータ
(2)の入力候補Aとコンピュータ(3)の入力候補A
を収集したとする。そして、ここでは、双方とも(n−
f)個のAが存在するため、コンピュータ(3),
(4)は、入力をAに決定する。
【0064】つまり、この分散システムは、従来のよう
に、各コンピュータがハートビートのやり取りによって
他のコンピュータとの間で正常稼働を確認し合うような
ことを一切行わないことにより、スプリットブレインを
原理的に発生させず、タイムアウトによる故障発生時の
処理の中断も発生させないようにし、かつ、少なくとも
(n−f)台以上のコンピュータによる多重化を保証す
る。
【0065】次に、整列マルチキャスト部2の動作原理
について具体的に説明する。
【0066】まず、初期状態として、入力順序番号記憶
部21は初期入力順序番号(たとえば1)を記憶する。
入力パケットジャーナル記憶部22は空の状態であり、
ステップ番号記憶部24は初期ステップ番号(たとえば
1)を記憶する。また、候補パケット記憶部25も空の
状態であり、最大確定入力順序番号記憶部27は初期入
力順序番号を記憶し、さらに、遅延記憶部28のすべて
のフラグはリセットされている。
【0067】そして、この整列マルチキャスト部2が実
行する整列マルチキャストによって各コンピュータへ配
送される入力パケットを決定するアルゴリズムの概要は
次のようになる。
【0068】(アルゴリズム1)該当ステップ番号が初
期ステップ番号である場合に、入力受付キュー部1に入
力パケットがあれば、該当ステップ番号を次に進め、自
候補をその入力パケットにし、他候補を空にし、候補種
類のプロトコルデータを他のすべてのコンピュータに送
信する。
【0069】(アルゴリズム2)該当入力順序番号に一
致する入力順序番号を持つ候補種類のプロトコルデータ
を受信した場合で、そのプロトコルデータが該当ステッ
プ番号より大きいステップ番号を持つ場合、該当ステッ
プ番号をそのステップ番号にし、自候補および送信者に
対応する他候補をプロトコルデータ中の入力パケットに
し、それら以外の他候補を空にし、候補種類のプロトコ
ルデータを他のすべてのコンピュータに送信する。
【0070】(アルゴリズム3)該当入力順序番号に一
致する入力順序番号を持つ候補種類のプロトコルデータ
を受信した場合で、そのプロトコルデータが該当ステッ
プ番号と等しいステップ番号を持つ場合、送信者に対応
する他候補をプロトコルデータ中の入力パケットにす
る。
【0071】(アルゴリズム4)候補パケット記憶部2
5における空でない「入力候補」が(n−f)個以上あ
るとき、入力パケット確定判定部26は次の動作をす
る。
【0072】もし、(n−f)個以上の同一内容の「入
力候補」があれば、それを該当入力順序番号における入
力パケットとして確定し、入力パケットジャーナル記憶
部22に記憶し、入力受付キュー部1にそれがあれば削
除し、アプリケーションプログラム3に配送し、該当入
力順序番号を次に進め、該当ステップ番号を初期ステッ
プ番号にし、候補パケット記憶部25を空にし、遅延記
憶部28のすべてのフラグをリセットする。
【0073】それ以外で、もし、候補パケット記憶部2
5の中で過半数以上の同一内容の「入力候補」があれ
ば、該当ステップ番号を次に進め、候補パケット記憶部
25における自候補をその入力パケットにし、他候補を
空にし、候補種類のプロトコルデータを他のすべてのコ
ンピュータに送信する。
【0074】さらに、それ以外であれば、候補パケット
記憶部25の中からランダムに入力パケットを選択し、
該当ステップ番号を次に進め、候補パケット記憶部25
における自候補をその入力パケットにし、他候補を空に
し、候補種類のプロトコルデータを他のすべてのコンピ
ュータに送信する。
【0075】(アルゴリズム5)該当入力順序番号より
小さい入力順序番号を持つ候補種類のプロトコルデータ
を受信した場合で、その入力順序番号に対応する入力デ
ータが入力パケットジャーナル記憶部22にある場合、
確定種類のプロトコルデータを送信者のコンピュータに
返信する。
【0076】(アルゴリズム6)該当入力順序番号に一
致する入力順序番号を持つ確定種類のプロトコルデータ
を受信した場合、それを該当入力順序番号における入力
パケットとして確定し、入力パケットジャーナル記憶部
26に記憶し、入力受付キュー部1にそれがあれば削除
し、アプリケーションプログラム3に配送し、該当入力
順序番号を次に進め、該当ステップ番号を初期ステップ
番号にし、候補パケット記憶部を空にし、遅延記憶部2
8のすべてのフラグをリセットする。
【0077】(アルゴリズム7)該当入力順序番号より
小さい入力順序番号を持つ候補種類のプロトコルデータ
を受信した場合で、その入力順序番号に対応する入力デ
ータが入力パケットジャーナル記憶部22にない場合、
遅延種類のプロトコルデータを送信者のコンピュータに
返信する。
【0078】(アルゴリズム8)該当入力順序番号に一
致する入力順序番号を持つ遅延種類のプロトコルデータ
を受信した場合に、遅延記憶部28における送信者に対
応するフラグをセットする。
【0079】(アルゴリズム9)遅延記憶部28におい
てフラグがたっている数と、それ以外で候補パケット記
憶部25における空でない入力候補数の和が(n−f)
以上であるときで、候補パケット記憶部25における空
でない入力候補数が(n−f)個未満であるときに、ス
キップ判定部29は、以下のスキップ動作を行う。
【0080】スキップ動作は、該当入力順序番号を該当
最大確定入力順序番号にし、該当ステップ番号を初期ス
テップ番号にし、候補パケット記憶部25を空にし、遅
延記憶部28のすべてのフラグをリセットし、プログラ
ム状態管理部4にスキップを通知する。
【0081】なお、以上の(アルゴリズム1)〜(アル
ゴリズム9)の順序は、必ずしもこの順序で実行される
というものではない。つまり、これらは、その条件が成
立すれば独立して実行されるものである。
【0082】また、プログラム状態管理部4は、スキッ
プが通知されると、該当入力順序番号の直前の状態を他
のコンピュータのプログラム状態管理部4からコピーす
る。このために、プログラム状態管理部4は、各入力順
序番号の直前の状態を最近のものから一定の量だけ保持
している。
【0083】ここで、上述したアルゴリズムの動作の概
要を説明しながら、このアルゴリズムの有効性を証明す
る。
【0084】(アルゴリズム1)〜(アルゴリズム4)
は、整列マルチキャストの1回の配送を行う基本的な部
分である。従来では、故障していない全コンピュータで
一致するまで繰り返していたのに対して、この分散シス
テムでは、(n−f)台で一致するまで繰り返す。
【0085】また、(アルゴリズム5)〜(アルゴリズ
ム6)は、短い多重化実行の遅延を解消するため、すで
に確定している入力パケットを回送するものである。
【0086】そして、(アルゴリズム7)〜(アルゴリ
ズム9)は、長い多重化実行の遅延を一足飛びに解消す
るため、スキップ動作を行うものである。
【0087】まず、(アルゴリズム1)〜(アルゴリズ
ム6)が整列マルチキャストの要件を満たすことを説明
する。これには、各入力順序番号で同一の入力パケット
が確定されることを示せばよい。
【0088】入力パケットを確定するのは、(アルゴリ
ズム4)か(アルゴリズム6)であるが、(アルゴリズ
ム6)の場合は、確定した入力パケットを回送したもの
なので、最初に(アルゴリズム4)によって入力パケッ
トを確定したコンピュータが必ず存在する。確定した時
の入力パケットをP、ステップ番号をSとする。
【0089】まず、ステップS+1では、すべてのコン
ピュータで「入力候補」はP以外にはあり得ないことを
示す。
【0090】自分の「入力候補」を決定するのは、(ア
ルゴリズム1)、(アルゴリズム2)または(アルゴリ
ズム4)であるが、ステップ番号Sは初期ステップ番号
ではあり得ないので、ステップS+1での「入力候補」
は、(アルゴリズム2)か(アルゴリズム4)で決定さ
れる。(アルゴリズム2)は「入力候補」を回送したも
のなので、結局、(アルゴリズム4)で決定するステッ
プS+1での「入力候補」がP以外にはあり得ないこと
を示せばよい。
【0091】ステップS+1での「入力候補」を(アル
ゴリズム4)で決定するには、ステップSでの「入力候
補」が(n−f)個必要である。この集合をXとする。
一方、ステップSでは、(アルゴリズム4)によって入
力パケットを確定したコンピュータがあるのだから、少
なくとも(n−f)個の「入力候補」がPである。この
集合をYとする。すると、 Xの要素数≧n−f Yの要素数≧n−f X∪Yの要素数≦n Xの要素数−X∩Yの要素数=X∪Yの要素数−Yの要
素数≦n−(n−f)=f となり、XのうちPでないのは、多くともf個しかな
い。後は、fがXの中で半数未満であることがいえれ
ば、Xの中でPが過半数を占めることになり、(アルゴ
リズム4)によってPに決定することがわかる。ここ
で、 Xの要素数−2f≧(n−f)−2f=n−3f となり、前述の通り、n−3f>0であるから、これが
証明される。
【0092】結局、ステップS+1では、すべてのコン
ピュータで「入力候補」はP以外にはあり得ないのだか
ら、この入力順序番号で確定するとすれば、必ずPで確
定することになる。これで、整列マルチキャストの要件
を満たすことが証明された。
【0093】次に、(アルゴリズム5)〜(アルゴリズ
ム9)で行う遅延の解消について説明する。
【0094】この遅延は、(n−f)台よりも多い台数
で多重化を実行している場合に発生する。遅延している
コンピュータは、その時点では多重化として不要である
が、進んでいるコンピュータが故障停止した場合など
に、多重化を継続するために必要になる。つまり、その
場合には、遅延しているコンピュータは、最終入力順序
番号まで追いつかなければならない。
【0095】(アルゴリズム5)〜(アルゴリズム6)
で行う短い多重化実行の遅延の解消は、単純に、進んで
いるコンピュータで確定した入力パケットを回送する。
入力パケットの到着順序は同じになるので、整列マルチ
キャストの要件は満たされている。
【0096】一方、(アルゴリズム7)〜(アルゴリズ
ム9)で行う長い多重化実行の遅延の解消は、いわゆる
「おいてけぼり」の概念を用いる。「おいてけぼり」
は、進んでいるコンピュータが確定した入力パケットを
忘れてしまうほど長く遅延したときに発生する。そし
て、この「おいてけぼり」が判定されると、スキップ動
作が行われる。スキップ動作では、入力順序番号をスキ
ップするので、入力パケットの系列が中抜けになり、整
列マルチキャストの要件を満たさなくなる。
【0097】そこで、この中抜けになった入力パケット
の系列を補うため、プログラム状態管理部4により一致
化コピーを行う。これによって、多重化は矛盾なく続行
することができる。
【0098】次に、信頼性のないデータグラムとの関係
に触れる。
【0099】出力に関しては、信頼性のないデータグラ
ムなので、出力フィルタ部5の動作は任意でよい。たと
えば、無選別で出力すると、出力パケットが多重化を実
行するコンピュータの数だけ出力されることになるが、
信頼性のないデータグラムでは、パケットの重複を許す
ので、この範囲内である。
【0100】また、この分散システムでは、多重化実行
の遅延が発生するため、特に出力パケットに関して順序
の交換が発生する可能性がある。これは、進んでいるコ
ンピュータが出力した後、遅延しているコンピュータが
意味的にはそれ以前の出力を実行するためである。
【0101】しかしながら、性能面などにおいて、出力
フィルタ部5の設定は重要であり、たとえば、(アルゴ
リズム4)で入力パケットが確定したときは、出力フィ
ルタを開、(アルゴリズム6)で入力パケットが確定し
たときは、出力フィルタを閉と設定すれば、順序の交換
を低減することができる。また、(アルゴリズム4)で
入力パケットが確定し、その入力パケットが入力受付キ
ュー1から取り除かれた場合にのみ、出力フィルタを
開、それ以外では閉とすれば、重複を低減することがで
きる。
【0102】すなわち、この分散システムは、すくなく
ともn−f台のコンピュータが動作していれば、他のf
台の動作に関係なく入力をそれらに配送することによ
り、整列マルチキャストを故障検出を使わないで実現
し、特に、故障発生時でも、配送の中断が発生しない。
【0103】また、最大でf台のコンピュータで、プロ
グラムの多重化の実行が遅延する可能性があることを考
慮し、この遅延された実行がスプリットブレインを起こ
さないように追い付く仕組みを実現する。
【0104】次に、図5乃至図10を参照して、整列マ
ルチキャスト部2の動作手順について説明する。
【0105】図5および図6は、整列マルチキャストの
1回の配送を行う基本的な部分の動作手順を示すフロー
チャートである。
【0106】整列マルチキャスト部2は、まず、候補一
覧作成処理を実行する(図5のステップA1)。この候
補一覧作成は、該当ステップ番号が初期値のときは(図
6のステップB1のYES)、受付キューに入力パケッ
トが存在するかどうかを調べて(図6のステップB
2)、存在すれば(図6のステップB2のYES)、該
当ステップ番号を次に進め(図6のステップB3)、受
付キューの入力パケットを自候補とし、かつ、この自候
補を他のすべてのコンピュータに送信する(図6のステ
ップB4)。
【0107】一方、該当ステップ番号が初期値でないか
(図6のステップB1のNO)、または受付キューに入
力パケットがないとき(図6のステップB2のNO)、
整列マルチキャスト部2は、同一の入力順序番号を持つ
プロトコルデータを受信しているかどうか判定し(図6
のステップB5)、受信していれば(図6のステップB
5のYES)、今度は、受信データ内のステップ番号は
該当ステップ番号よりも大きいかどうかを判定する(図
6のステップB6)。そして、該当ステップ番号よりも
大きければ(図6のステップB6のYES)、整列マル
チキャスト部2は、該当ステップを受信データ内のステ
ップ番号に更新した後(図6のステップB7)、受信デ
ータ内の入力パケットを自候補とし、かつ、この自候補
を他のすべてのコンピュータに送信する(図6のステッ
プB8)。このとき、整列マルチキャスト部2は、この
入力パケットを他候補として記憶しておく。また、受信
データ内のステップ番号と該当ステップ番号とが等しけ
れば(図6のステップB6のNO,ステップB9のYE
S)、受信データ内の入力パケットを他候補として記憶
する(図6のステップB10)。
【0108】ここで、整列マルチキャスト部2は、記憶
した候補数が(n−f)個以上になったかどうかを調べ
(図6のステップB11)、なっていなければ(図6の
ステップB11のNO)、ステップB1からの処理を繰
り返し、なっていれば(図6のステップB11のYE
S)、この処理を終了する。
【0109】候補一覧作成処理が終了すると、整列マル
チキャスト部2は、(n−f)個以上の同一の候補が存
在するかどうかを調べ(図5のステップA2)、存在す
れば(図5のステップA2のYES)、その候補を入力
パケットとして確定する(図5のステップA3)。つま
り、この入力パケットを受付キューから削除するととも
に、アプリケーションプログラム3に投入する。そし
て、整列マルチキャスト部2は、次工程へ移行すべく、
入力順序番号を次に進め、該当ステップ番号を初期化
し、記憶したすべての候補を破棄し、遅延フラグをリセ
ットする(図5のステップA4)。
【0110】一方、(n−f)個以上の同一の候補が存
在しなかった場合(図5のステップA2)、整列マルチ
キャスト部2は、今度は、過半数以上の同一の候補が存
在するかどうかを調べ(図5のステップA5のYE
S)、存在すれば(図5のステップA5のYES)、そ
の候補を自候補とし、かつ、この自候補を他のすべての
コンピュータに送信した上で(図5のステップA6)、
ステップA1からの処理を繰り返す。この時、整列マル
チキャスト部2は、記憶していた他候補をすべて破棄す
る。また、過半数以上の同一の候補が存在しなければ
(図5のステップA5のNO)、整列マルチキャスト部
2は、ランダムに自候補を選択し、かつ、この自候補を
他のすべてのコンピュータに送信した上で(図5のステ
ップA7)、ステップA1からの処理を繰り返す。この
時も、整列マルチキャスト部2は、記憶していた他候補
をすべて破棄する。
【0111】以上の手順で、各コンピュータは、故障検
知を行わず、(n−f)台以上の一致を確認しながら処
理を進めていく。
【0112】また、図7乃至図10は、多重化実行の遅
延を解消するための動作手順を示すフローチャートであ
る。
【0113】整列マルチキャスト部2は、該当入力順序
番号より小さい入力順序番号を持つ候補種類のプロトコ
ルデータを受信した場合、その入力順序番号に対応する
入力パケットがジャーナルに存在するかどうかを調べる
(図7のステップC1)。そして、整列マルチキャスト
部2は、ジャーナルに存在すれば(図7のステップC1
のYES)、その入力パケットをセットした確定種類の
プロトコルデータを送信者に返送し(図7のステップC
2)、一方、存在しなければ(図7のステップC1のN
O)、遅延種類のプロトコルデータを送信者に返送する
(図7のステップC3)。
【0114】また、整列マルチキャスト部2は、該当入
力順序番号に一致する入力番号を持つ確定種類のプロト
コルデータを受信した場合、その受信データ内の入力パ
ケットを入力パケットとして確定する(図8のステップ
D1)。つまり、この入力パケットを受付キューから削
除するとともに、アプリケーションプログラム3に投入
する。そして、整列マルチキャスト部2は、次工程へ移
行すべく、入力順序番号を次に進め、該当ステップ番号
を初期化し、記憶したすべての候補を破棄し、遅延フラ
グをリセットする(図8のステップD2)。
【0115】また、整列マルチキャスト部2は、該当入
力順序番号に一致する入力順序番号を持つ遅延種類のプ
ロトコルデータを受信した場合、送信者に対応する遅延
フラグをセットする(図9のステップE1)。
【0116】また、整列マルチキャスト部2は、セット
された遅延フラグ数と記憶された候補数との和が(n−
f)個以上に達したかどうかを監視し(図10のステッ
プF1)、(n−f)個以上に達していれば(図10の
ステップF1のYES)、その記憶された候補数が(n
−f)個未満かどうかを調べる(図10のステップF
2)。そして、(n−f)個未満であれば(図10のス
テップF2のYES)、整列マルチキャスト部2は、ス
キップ動作を行なう(図10のステップF3)。つま
り、該当入力順序番号を該当最大確定入力順序番号に
し、該当ステップ番号を初期ステップ番号にし、候補パ
ケット記憶部25を空にし、遅延記憶部28のすべての
フラグをリセットした上で、プログラム状態管理部4に
スキップを通知する。
【0117】以上の手順で、各コンピュータは、スプリ
ットブレインを起こさないよう、遅延された実行が追い
付く仕組みを実現する。
【0118】(第2実施形態)次に、この発明の第2実
施形態について説明する。
【0119】第1実施形態で説明したような整列マルチ
キャストを行う分散システムでは、すべてのコンピュー
タ100が同じ時刻を用いてアプリケーションプログラ
ム3を実行することが必要である。つまり、アプリケー
ションプログラム3の実行時に用いる時刻をすべてのコ
ンピュータ100間で調整する機能が必要である。そこ
で、第2実施形態では、整列マルチキャストを行う分散
システムにおいて、このアプリケーションプログラム3
の実行時に用いる時刻をすべてのコンピュータ100間
で調整する仕組みを説明する。
【0120】図11は、アプリケーションプログラム3
の実行時に用いる時刻をすべてのコンピュータ100間
で調整する仕組みを説明するための概念図である。
【0121】図11に示すように、分散システム100
0を構成するn台のコンピュータ100は、それぞれ実
時計101、つまりシステム時計を有しており、この実
時計101により、システム時刻をカウントしている。
そして、従来では、この実時計101をn台のコンピュ
ータ100間で如何に調整するかについて、種々の工夫
がなされてきた。すなわち、従来では、アプリケーショ
ンプログラム3の実行時に用いる時刻は、依然として、
各々の実時計101でカウントされるシステム時刻であ
った。これに対して、この実施形態の分散システム10
00では、これらの実時計101とは別に、システム全
体で仮想時計102を管理し、この仮想時計102がカ
ウントする仮想時刻102を用いてアプリケーションプ
ログラム3を実行する。
【0122】図12は、この仮想時刻102がカウント
する仮想時刻を管理する原理を説明するためのコンピュ
ータ100の構成図である。
【0123】図12に示すように、このコンピュータ1
00は、いわゆるシステム時刻を計数するシステム時計
6(図11の実時計101に対応)の他に、アプリケー
ションプログラム3の実行時に用いる仮想時刻を計数す
る仮想時刻カウンタ7(図11の仮想時計102に対
応)と、この仮想時刻カウンタ7を管理する仮想時刻マ
ネージャ8とを備える。
【0124】仮想時刻マネージャ8は、たとえば1秒ご
とに、この仮想時刻カウンタ7をインクリメントするタ
イミングを与えるための入力パケットを高い優先度を付
して入力受付キュー部1に投入する。この入力パケット
は、その優先度から直後の入力順序で整列マルチキャス
ト部2に取り込まれ、自コンピュータの入力候補である
自候補となる。整列マルチキャスト部2の動作の結果、
入力パケット確定判定部26が、この入力パケットを確
定すると、このパケットを仮想時刻マネージャ8に投入
する。
【0125】このとき、他のコンピュータ100におい
ても、入力パケット確定判定部26は、この入力パケッ
トを確定し、仮想時刻マネージャ8に投入する。
【0126】そして、この入力パケットの投入を受けた
仮想時刻マネージャ8は、仮想時刻カウンタ7を所定の
値(通常は1秒間)だけインクリメントする。
【0127】また、仮想時刻マネージャ8は、この入力
パケットを入力受付キュー1から削除し、この時点から
1秒後に入力受付キュー1に再投入するよう準備する。
【0128】このとき、他のコンピュータ100におい
ても、仮想時刻マネージャ8は、入力受付キュー1にこ
のパケットがもし存在すれば、それを削除し、いずれに
しても、この時点から1秒後に入力受付キュー1に再投
入するよう準備する。
【0129】つまり、仮想時刻マネージャ8は、他の仮
想時刻マネージャ8が投入した入力パケットが確定した
場合でも、区別することなく、あたかも自分自身で入力
パケットを投入し、それが確定したかのように動作し、
その時点から1秒後まで入力パケットを投入しない。
【0130】これにより、すべてのコンピュータ100
が同じタイミングで仮想時刻を計数していくことが実現
される。
【0131】また、この仮想時刻マネージャ8は、コン
ピュータ100の起動時および例えば1時間ごとに、シ
ステム時刻と仮想時刻とを比較するタイミングを与える
ための入力パケットを高い優先度を付して入力受付キュ
ー部1に投入する。この時、仮想時刻マネージャ8は、
この入力パケット内にシステム時計6が計数するシステ
ム時刻を格納する。この入力パケットは、プロトコルデ
ータ送受信部23によって他のコンピュータに送信され
るため、結果的に、自コンピュータのシステム時刻が他
のコンピュータに通知されることになる。同様に、他の
コンピュータの仮想時刻マネージャ8がこの入力パケッ
トを発生させた場合には、この入力パケットによって、
他のコンピュータのシステム時刻の通知を受けることに
なる。
【0132】また、この入力パケットは、その優先度か
ら直後の入力順序で整列マルチキャスト部2に取り込ま
れ、自コンピュータの入力候補である自候補となる。整
列マルチキャスト部2の動作の結果、入力パケット確定
判定部26が、この入力パケットを確定すると、このパ
ケットを仮想時刻マネージャ8に投入する。このパケッ
トの投入を受けると、仮想時刻マネージャ8は、この入
力パケット内に格納された自コンピュータまたは他のコ
ンピュータのシステム時刻と仮想時刻カウンタ7により
計数された仮想時刻とを比較する。仮想時刻カウンタ7
が未設定状態の場合、仮想時刻カウンタ7をシステム時
刻に設定する。また、仮想時刻カウンタ7が未設定状態
でなく、システム時刻の方が進んでいる場合には、仮想
時刻マネージャ8は、仮想時刻を通常時よりも速く進め
るための処理を行う。一つの例としては、先に説明した
仮想時刻カウンタ7をインクリメントするタイミングを
与えるための入力パケットが投入された際の仮想時刻カ
ウンタ7のインクリメント幅を通常時よりも大きく設定
するなどが挙げられる。
【0133】つまり、n台のコンピュータの中で最も進
んだシステム時刻に合わせるように各コンピュータの仮
想時刻を調整するわけであり、たとえn台のコンピュー
タのシステム時刻がばらばらであっても、各コンピュー
タがアプリケーションプログラム3の実行時に用いる仮
想時刻を一致させることが実現される。
【0134】図13は、仮想時刻カウンタ7をインクリ
メントする動作手順を示すフローチャートである。
【0135】仮想時刻マネージャ8は、前回の仮想時刻
カウンタ7のインクリメントから所定の時間が経過し
(ステップG1のYES)、かつ、仮想時刻カウンタ7
をインクリメントするタイミングを与えるための入力パ
ケットを入力受付キュー部1に未投入のとき(ステップ
G2のYES)、当該入力パケットを入力受付キュー部
1に投入する(ステップG3)。また、整列マルチキャ
スト実行により、この入力パケットが確定されると(ス
テップG4,ステップG5のYES)、仮想時刻マネー
ジャ8は、仮想時刻カウンタ7を所定の値だけインクリ
メントし(ステップG6)、この入力パケットが入力受
付キュー部1に存在していれば(ステップG7のYE
S)、その入力パケットを入力受付キュー部1から削除
する(ステップG8)。
【0136】また、図14は、仮想時刻カウンタ7を調
整する動作手順を示すフローチャートである。
【0137】仮想時刻マネージャ8は、前回の仮想時刻
カウンタ7の自発的な調整から所定の時間が経過し(ス
テップH1のYES)、かつ、システム時刻と仮想時刻
とを比較するタイミングを与えるための入力パケットを
入力受付キュー部1に未投入のとき(ステップH2のY
ES)、当該入力パケットを入力受付キュー部1に投入
する(ステップH3)。また、整列マルチキャスト実行
により、この入力パケットが確定されると(ステップH
4,ステップH5のYES)、仮想時刻マネージャ8
は、入力パケット内のシステム時刻と仮想時刻カウンタ
7の仮想時刻とを比較する(ステップH6)。そして、
仮想時刻マネージャ8は、システム時刻の方が進んでい
れば(ステップH7のYES)、仮想時刻カウンタ7の
インクリメント幅を通常時よりも大きく設定し(ステッ
プH8)、一方、仮想時刻の方が進んでいれば(ステッ
プH7のNO)、仮想時刻カウンタ7のインクリメント
幅を所定の値に再設定する(ステップH9)。
【0138】このように、この実施形態の分散システム
では、各コンピュータ100の実時計101とは別に、
システム全体で仮想時計102を管理することにより、
整列マルチキャストを行う分散システムにおいて、この
アプリケーションプログラム3の実行時に用いる時刻を
すべてのコンピュータ100間で調整する仕組みを実現
する。
【0139】なお、ここでは、システム時刻と仮想時刻
とを比較し、システム時刻の方が進んでいたときに、仮
想時刻のインクリメント幅を通常時よりも大きくする例
を説明した。このような場合、通常時の仮想時刻のイン
クリメント幅は、実時刻よりも少しずつ遅れていくよう
に設定することが好ましい。これにより、仮想時計10
2がすべての実時計101よりも進む方向に無限にずれ
ていくことを防止するとともに、実時間101と仮想時
計102との誤差を事前に予想される範囲内に収めるこ
とが可能となる。逆に、システム時刻の方が遅れていた
ときに、仮想時刻のインクリメント幅を通常時よりも小
さくする場合には、通常時の仮想時刻のインクリメント
幅を実時刻よりも少しずつ進んでいくように設定すれば
よい。
【0140】ところで、この仮想時計102の管理は、
前述した整列マルチキャストの機構を使ってすべてのコ
ンピュータ100が各々行う必要は必ずしもない。例え
ば図15に示すように、いずれか1つのコンピュータ1
00上で管理し(A)、このコンピュータ100に障害
が発生した場合に、その他のいずれか1つのコンピュー
タ100が引き継ぐようにしても構わない(B)。つま
り、各コンピュータ100が各々の実時計101を用い
てアプリケーションプログラム3を実行するのではな
く、システム全体で仮想時計102を設定し、その1つ
の仮想時計102をすべてのコンピュータ100が用い
てアプリケーションプログラム3を実行するという本発
明の手法は、この仮想時計102をどのような方法で管
理する場合であっても有用である。
【0141】つまり、本発明は、上記実施形態に限定さ
れるものではなく、実施段階ではその要旨を逸脱しない
範囲で種々に変形することが可能である。更に、上記実
施形態には種々の段階の発明が含まれており、開示され
る複数の構成要件における適宜な組み合わせにより種々
の発明が抽出され得る。例えば、実施形態に示される全
構成要件から幾つかの構成要件が削除されても、発明が
解決しようとする課題の欄で述べた課題が解決でき、発
明の効果の欄で述べられている効果が得られる場合に
は、この構成要件が削除された構成が発明として抽出さ
れ得る。
【0142】
【発明の効果】以上、詳述したように、この発明によれ
ば、n台のコンピュータで多重化を構成し、f台までの
故障停止が許容される場合に、少なくとも(n−f)台
のコンピュータが動作していれば、他のf台の動作に関
わらず、入力がそれらに配送されるようになる。つま
り、故障検出をまったく行わないことによって、スプリ
ットブレインを原理的に発生させず、タイムアウトによ
る故障発生時の処理の中断も発生させることがない。
【0143】また、最大でf台のコンピュータで、プロ
グラムの多重化の実行が遅延する可能性があることを考
慮し、この遅延された実行がスプリットブレインを起こ
さないように追い付く仕組みも実現する。
【図面の簡単な説明】
【図1】この発明の第1実施形態に係る分散システムの
構成を示す図。
【図2】同第1実施形態の分散システムを構成するコン
ピュータの機能ブロック図。
【図3】同第1実施形態の分散システムを構成するコン
ピュータ間で送受信されるプロトコルデータのレイアウ
トを示す図。
【図4】同第1実施形態の分散システムが実行する整列
マルチキャストの主要部の概要について説明するための
図。
【図5】同第1実施形態の分散システムが実行する整列
マルチキャストの1回の配送を行う基本的な部分の動作
手順を示す第1のフローチャート。
【図6】同第1実施形態の分散システムが実行する整列
マルチキャストの1回の配送を行う基本的な部分の動作
手順を示す第2のフローチャート。
【図7】同第1実施形態の分散システムが実行する、多
重化実行の遅延を解消するための動作手順を示す第1の
フローチャート。
【図8】同第1実施形態の分散システムが実行する、多
重化実行の遅延を解消するための動作手順を示す第2の
フローチャート。
【図9】同第1実施形態の分散システムが実行する、多
重化実行の遅延を解消するための動作手順を示す第3の
フローチャート。
【図10】同第1実施形態の分散システムが実行する、
多重化実行の遅延を解消するための動作手順を示す第4
のフローチャート。
【図11】同第2実施形態においてアプリケーションプ
ログラムの実行時に用いる時刻をすべてのコンピュータ
間で調整する仕組みを説明するための概念図。
【図12】同第2実施形態において仮想時刻がカウント
する仮想時刻を管理する原理を説明するためのコンピュ
ータの構成図。
【図13】同第2実施形態において仮想時刻カウンタを
インクリメントする動作手順を示すフローチャート。
【図14】同第2実施形態において仮想時刻カウンタを
調整する動作手順を示すフローチャート。
【図15】同第2実施形態における仮想時計の管理方法
の一変形例を示す図。
【符号の説明】
1…入力受付キュー 2…整列マルチキャスト部 3…アプリケーションプログラム 4…プログラム状態管理部 5…出力フィルタ部 6…システム時計 7…仮想時刻カウンタ 8…仮想時刻マネージャ 21…入力順序番号記憶部 22…入力パケットジャーナル記憶部 23…プロトコルデータ送受信部 24…ステップ番号記憶部 25…候補パケット記憶部 26…入力パケット確定判定部 27…最大確定入力順序番号記憶部 28…遅延記憶部 29…スキップ判定部 100…コンピュータ 101…実時計 102…仮想時計 1000…分散システム 2000…クライアント装置 A…外部ネットワーク B…内部ネットワーク

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークで接続されたn台のコンピ
    ュータを同期的に動作させる分散システムであって、少
    なくとも(n−f)台以上での多重化を保証する分散シ
    ステムにおいて、 前記各コンピュータは、 前記n台のコンピュータそれぞれが次に処理する候補と
    して選択した入力データを前記ネットワークを介して収
    集する入力候補収集手段と、 前記入力候補収集手段により収集された入力データが
    (n−f)個以上存在する場合に、その中に同一内容の
    入力データが(n−f)個以上あるか否かを判定し、
    (n−f)個以上あったときに、その入力データを次に
    処理する対象として確定する第1の入力候補選定制御手
    段と、 前記収集された入力データの中に同一内容の入力データ
    が(n−f)個以上ないと前記第1の入力候補選定制御
    手段で判定されたときに、前記収集された入力データ数
    の過半数を占める同一内容の入力データが存在するか否
    かを判定し、存在したときに、その入力データを自候補
    とするとともにそれ以外の他の候補の入力データをすべ
    て破棄した上で前記入力候補収集手段に入力データの収
    集を再実行させる第2の入力候補選定制御手段と、 前記収集された入力データ数の過半数を占める同一内容
    の入力データが存在しないと前記第2の入力候補選定手
    段で判定されたときに、前記収集された入力データの中
    からいずれかの入力データを任意に選択して自候補とす
    るとともに、それ以外の他の候補の入力データをすべて
    破棄した上で前記入力候補収集手段に入力データの収集
    を再実行させる第3の入力候補選定制御手段とを具備す
    ることを特徴とする分散システム。
  2. 【請求項2】 前記fは、3f<nを満たす最大の整数
    であることを特徴とする請求項1記載の分散システム。
  3. 【請求項3】 前記各コンピュータは、 前記第1の入力候補確定制御手段により確定された入力
    データを保持するジャーナル手段と、 自コンピュータで既に確定済みである工程の入力データ
    を他のコンピュータが収集しているときに、前記ジャー
    ナル手段に保持された入力データを確定済みの入力デー
    タとして送信する第1の入力候補調整制御手段と、 前記入力候補収集手段による入力データの収集時に、他
    のコンピュータから確定済みの入力データが送信された
    ときに、その入力データを次に処理する対象として確定
    する第2の入力候補調整制御手段とをさらに具備するこ
    とを特徴とする請求項1または2記載の分散システム。
  4. 【請求項4】 前記ジャーナル手段は、前記入力データ
    を最新のものから予め定められた工程数だけ保持し、 前記第1の入力候補調整制御手段は、他のコンピュータ
    に送信すべき確定済みの入力データが前記ジャーナル手
    段に保持されていないときに、その旨を通知する手段を
    具備し、 前記各コンピュータは、 自コンピュータで既に確定済みである各工程での直前の
    状態を予め定められた工程分まで保持する状態保持手段
    と、 前記状態保持手段に保持された各工程での直前の状態を
    他のコンピュータとの間で送受信する状態送受信手段
    と、 前記入力候補収集手段による入力データの収集時に、そ
    の収集された入力データ数と他のコンピュータから確定
    済みの入力データが前記ジャーナル手段にも既に保持さ
    れていない旨を通知された数との和が(n−f)以上で
    あって、前記収集された入力データ数が(n−f)未満
    であったときに、他のすべてのコンピュータの中で確定
    済みの工程が最も進んだ他のコンピュータにおける最新
    の確定済みの工程での直前の状態を前記状態送受信手段
    により取得して自コンピュータに複製するスキップ手段
    とをさらに具備することを特徴とする請求項3記載の分
    散システム。
  5. 【請求項5】 前記各コンピュータは、 データ処理に用いる仮想時刻を計数するカウンタと、 前記カウンタの値をインクリメントするタイミングを与
    えるための第1の入力データを周期的に発生させる第1
    の入力データ発生手段と、 自コンピュータのシステム時刻が格納され、このシステ
    ム時刻と前記カウンタにより計数される仮想時刻とを比
    較するタイミングを与えるための第2の入力データを発
    生させる第2の入力データ発生手段と、 前記第2の入力データから得られたシステム時刻と前記
    カウンタにより計数された仮想時刻とを比較し、当該シ
    ステム時刻の方が進んでいたときに、前記第1の入力デ
    ータ処理時における前記カウンタの値のインクリメント
    幅を大きく設定する仮想時刻調整手段と、 をさらに具備することを特徴とする請求項1記載の分散
    システム。
  6. 【請求項6】 ネットワークで接続されたn台のコンピ
    ュータを同期的に動作させる分散システムにおいて、 データ処理に用いる仮想時刻を計数するカウンタと、 前記各コンピュータのシステム時刻と前記カウンタによ
    り計数された仮想時刻とを比較し、システム時刻の方が
    進んでいたときに、前記カウンタの値のインクリメント
    幅を大きく設定する仮想時刻調整手段と、 を具備することを特徴とする分散システム。
  7. 【請求項7】 前記カウンタおよび仮想時刻調整手段
    は、前記n台のコンピュータそれぞれに設けられること
    を特徴とする請求項6記載の分散システム。
  8. 【請求項8】 前記カウンタおよび仮想時刻調整手段
    は、前記n台のコンピュータの中のいずれか1台に設け
    られることを特徴とする請求項6記載の分散システム。
  9. 【請求項9】 前記カウンタおよび仮想時刻調整手段が
    設けられたコンピュータに障害が発生した場合に、前記
    カウンタおよび仮想時刻調整手段を他のいずれかのコン
    ピュータに引き継がせる引継手段を具備することを特徴
    とする請求項8記載の分散システム。
  10. 【請求項10】 前記カウンタの値の通常時のインクリ
    メント幅は、当該カウンタにより計数される仮想時刻が
    実時刻よりも少しずつ遅れていくように設定されること
    を特徴とする請求項6、7、8または9記載の分散シス
    テム。
  11. 【請求項11】 ネットワークで接続されたn台のコン
    ピュータを同期的に動作させる分散システムであって、
    少なくとも(n−f)台以上での多重化を保証する分散
    システムの多重化制御方法であって、 前記n台のコン
    ピュータそれぞれが次に処理する候補として選択した入
    力データを前記ネットワークを介して収集する入力候補
    収集ステップと、 前記入力候補収集ステップにより収集された入力データ
    が(n−f)個以上存在する場合に、その中に同一内容
    の入力データが(n−f)個以上あるか否かを判定し、
    (n−f)個以上あったときに、その入力データを次に
    処理する対象として確定する第1の入力候補選定制御ス
    テップと、 前記収集された入力データの中に同一内容の入力データ
    が(n−f)個以上ないと前記第1の入力候補選定制御
    手段で判定されたときに、前記収集された入力データ数
    の過半数を占める同一内容の入力データが存在するか否
    かを判定し、存在したときに、その入力データを自候補
    とするとともにそれ以外の他の候補の入力データをすべ
    て破棄した上で前記入力候補収集ステップに入力データ
    の収集を再実行させる第2の入力候補選定制御ステップ
    と、 前記収集された入力データ数の過半数を占める同一内容
    の入力データが存在しないと前記第2の入力候補選定手
    段で判定されたときに、前記収集された入力データの中
    からいずれかの入力データを任意に選択して自候補とす
    るとともに、それ以外の他の候補の入力データをすべて
    破棄した上で前記入力候補収集手段に入力データの収集
    を再実行させる第3の入力候補選定制御ステップとを具
    備することを特徴とする分散システムの多重化制御方
    法。
  12. 【請求項12】 前記fは、3f<nを満たす最大の整
    数であることを特徴とする請求項11記載の分散システ
    ムの多重化制御方法。
  13. 【請求項13】 前記第1の入力候補確定制御ステップ
    により確定された入力データを保持するジャーナルステ
    ップと、 自コンピュータで既に確定済みである工程の入力データ
    を他のコンピュータが収集しているときに、前記ジャー
    ナルステップにより保持された入力データを確定済みの
    入力データとして送信する第1の入力候補調整制御ステ
    ップと、 前記入力候補収集ステップによる入力データの収集時
    に、他のコンピュータから確定済みの入力データが送信
    されたときに、その入力データを次に処理する対象とし
    て確定する第2の入力候補調整制御ステップとをさらに
    具備することを特徴とする請求項11または12記載の
    分散システムの多重化制御方法。
  14. 【請求項14】 前記ジャーナルステップは、前記入力
    データを最新のものから予め定められた工程数だけ保持
    し、 前記第1の入力候補調整制御ステップは、他のコンピュ
    ータに送信すべき確定済みの入力データが前記ジャーナ
    ル手段に保持されていないときに、その旨を通知するス
    テップを具備し、 自コンピュータで既に確定済みである各工程での直前の
    状態を予め定められた工程分まで保持する状態保持ステ
    ップと、 前記状態保持ステップにより保持された各工程での直前
    の状態を他のコンピュータとの間で送受信する状態送受
    信ステップと、 前記入力候補収集ステップによる入力データの収集時
    に、その収集された入力データ数と他のコンピュータか
    ら確定済みの入力データが前記ジャーナルステップによ
    っても既に保持されていない旨を通知された数との和が
    (n−f)以上であって、前記収集された入力データ数
    が(n−f)未満であったときに、他のすべてのコンピ
    ュータの中で確定済みの工程が最も進んだ他のコンピュ
    ータにおける最新の確定済みの工程での直前の状態を前
    記状態送受信ステップにより取得して自コンピュータに
    複製するスキップステップとをさらに具備することを特
    徴とする請求項12記載の分散システムの多重化制御方
    法。
  15. 【請求項15】 データ処理に用いる仮想時刻を計数す
    るカウンタの値をインクリメントするタイミングを与え
    るための第1の入力データを周期的に発生させる第1の
    入力データ発生ステップと、 自コンピュータのシステム時刻が格納され、このシステ
    ム時刻と前記カウンタにより計数される仮想時刻とを比
    較するタイミングを与えるための第2の入力データを発
    生させる第2の入力データ発生ステップと、 前記第2の入力データから得られたシステム時刻と前記
    カウンタにより計数された仮想時刻とを比較し、当該シ
    ステム時刻の方が進んでいたときに、前記第1の入力デ
    ータ処理時における前記カウンタの値のインクリメント
    幅を大きく設定する仮想時刻調整ステップと、 をさらに具備することを特徴とする請求項11記載の分
    散システムの多重化制御方法。
  16. 【請求項16】 ネットワークで接続されたn台のコン
    ピュータを同期的に動作させる分散システムの時刻管理
    方法であって、 データ処理に用いる仮想時刻を計数するカウンタステッ
    プと、 前記各コンピュータのシステム時刻と前記カウンタステ
    ップにより計数された仮想時刻とを比較し、システム時
    刻の方が進んでいたときに、前記カウンタステップによ
    るインクリメント幅を大きく設定する仮想時刻調整ステ
    ップと、 を具備することを特徴とする分散システムの時刻管理方
    法。
JP2002171715A 2001-06-15 2002-06-12 分散システムおよび同システムの多重化制御方法 Expired - Fee Related JP3655263B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002171715A JP3655263B2 (ja) 2001-06-15 2002-06-12 分散システムおよび同システムの多重化制御方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-181791 2001-06-15
JP2001181791 2001-06-15
JP2002171715A JP3655263B2 (ja) 2001-06-15 2002-06-12 分散システムおよび同システムの多重化制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004204670A Division JP4054323B2 (ja) 2001-06-15 2004-07-12 分散システムおよび同システムの時刻管理方法

Publications (2)

Publication Number Publication Date
JP2003067215A true JP2003067215A (ja) 2003-03-07
JP3655263B2 JP3655263B2 (ja) 2005-06-02

Family

ID=26617002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002171715A Expired - Fee Related JP3655263B2 (ja) 2001-06-15 2002-06-12 分散システムおよび同システムの多重化制御方法

Country Status (1)

Country Link
JP (1) JP3655263B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620845B2 (en) 2004-03-12 2009-11-17 Kabushiki Kaisha Toshiba Distributed system and redundancy control method
JP2010152559A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 分散システムおよび同システムの多重化制御方法
JP2010198442A (ja) * 2009-02-26 2010-09-09 Toshiba Corp フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法
JP2010211271A (ja) * 2009-03-06 2010-09-24 Toshiba Corp フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法
WO2015140942A1 (ja) * 2014-03-18 2015-09-24 株式会社東芝 情報処理システム、サーバ装置、情報処理方法およびプログラム
WO2016020986A1 (ja) * 2014-08-05 2016-02-11 株式会社東芝 整列装置、データ処理装置、プログラム、整列方法および多重化システム
US10165086B2 (en) 2013-09-04 2018-12-25 Kabushiki Kaisha Toshiba Information processing system, server apparatus, information processing method, and computer program product
WO2019004480A1 (ja) * 2017-06-30 2019-01-03 株式会社bitFlyer ネットワークにおける合意形成方法及び当該ネットワークを構成するノード

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4956603B2 (ja) * 2009-12-04 2012-06-20 株式会社東芝 分散システムおよび論理時間調整方法
WO2017042894A1 (ja) 2015-09-08 2017-03-16 株式会社東芝 多重化処理システム、多重化処理方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051962A (ja) * 1999-08-13 2001-02-23 Toshiba Corp プログラム多重化拡大方法
JP2001053744A (ja) * 1999-08-06 2001-02-23 Toshiba Corp パラレル配信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001053744A (ja) * 1999-08-06 2001-02-23 Toshiba Corp パラレル配信システム
JP2001051962A (ja) * 1999-08-13 2001-02-23 Toshiba Corp プログラム多重化拡大方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620845B2 (en) 2004-03-12 2009-11-17 Kabushiki Kaisha Toshiba Distributed system and redundancy control method
JP2010152559A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 分散システムおよび同システムの多重化制御方法
JP2010198442A (ja) * 2009-02-26 2010-09-09 Toshiba Corp フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法
JP2010211271A (ja) * 2009-03-06 2010-09-24 Toshiba Corp フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法
US10165086B2 (en) 2013-09-04 2018-12-25 Kabushiki Kaisha Toshiba Information processing system, server apparatus, information processing method, and computer program product
WO2015140942A1 (ja) * 2014-03-18 2015-09-24 株式会社東芝 情報処理システム、サーバ装置、情報処理方法およびプログラム
WO2016020986A1 (ja) * 2014-08-05 2016-02-11 株式会社東芝 整列装置、データ処理装置、プログラム、整列方法および多重化システム
JPWO2016020986A1 (ja) * 2014-08-05 2017-04-27 株式会社東芝 整列装置、データ処理装置、プログラム、整列方法および多重化システム
US10162719B2 (en) 2014-08-05 2018-12-25 Kabushiki Kaisha Toshiba Ordering device, data processing device, ordering method, computer program product, and multiplex system
WO2019004480A1 (ja) * 2017-06-30 2019-01-03 株式会社bitFlyer ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
US11212165B2 (en) 2017-06-30 2021-12-28 Bitflyer Blockchain, Inc. Consensus-forming method in network, and node for configuring network

Also Published As

Publication number Publication date
JP3655263B2 (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
US10693957B2 (en) System and method for adding node in blockchain network
JP6362119B2 (ja) クラスタ・ブレイン分割後の調停処理方法、クォーラム記憶装置、およびシステム
Birman et al. Bimodal multicast
US6938070B2 (en) Conflict resolution for collaborative work system
JP6316211B2 (ja) 間隔制御複製
Sarin et al. Discarding obsolete information in a replicated database system
JP4818349B2 (ja) 分散システムおよび同システムの多重化制御方法
Abdelzaher et al. RTCAST: Lightweight multicast for real-time process groups
CN110708175B (zh) 分布式网络中消息同步的方法
US20070171919A1 (en) Message batching with checkpoints systems and methods
EP1543420A4 (en) UNIFORM MESSAGE ARRANGEMENT FOR SEMI-ACTIVE AND PASSIVE DUPLICATION
JP3655263B2 (ja) 分散システムおよび同システムの多重化制御方法
US8842524B2 (en) Redundant ring automatic recovery
CA2866518C (en) A system for high reliability and high performance application message delivery
US7272632B2 (en) Distributed system and multiplexing control method for the system
JP4054323B2 (ja) 分散システムおよび同システムの時刻管理方法
CN110351122A (zh) 容灾方法、装置、系统与电子设备
JP2009217765A (ja) 複数宛先への同期送信方法、その実施システム及び処理プログラム
Berket et al. Overview of the InterGroup protocols
US11070303B2 (en) Management message loop detection in precision time protocol
JPH0591108A (ja) メツセージ通信制御方法および通信システム
JP2010198442A (ja) フェイルオーバ機能を持つ分散システムおよび同システムにおけるフェイルオーバ方法
Miedes et al. Dynamic Switching of Total-Order Broadcast Protocols.
Wang et al. Non-blocking message total ordering protocol
Emerson et al. Faster transaction commit even when nodes crash

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050302

R151 Written notification of patent or utility model registration

Ref document number: 3655263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20080311

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120311

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140311

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees