JPS6351302B2 - - Google Patents

Info

Publication number
JPS6351302B2
JPS6351302B2 JP58500986A JP50098683A JPS6351302B2 JP S6351302 B2 JPS6351302 B2 JP S6351302B2 JP 58500986 A JP58500986 A JP 58500986A JP 50098683 A JP50098683 A JP 50098683A JP S6351302 B2 JPS6351302 B2 JP S6351302B2
Authority
JP
Japan
Prior art keywords
message
processors
processor
monitor
base
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP58500986A
Other languages
English (en)
Other versions
JPS60500232A (ja
Inventor
Hoi Reimondo Sutorongu
Danii Doreu
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 JPS60500232A publication Critical patent/JPS60500232A/ja
Publication of JPS6351302B2 publication Critical patent/JPS6351302B2/ja
Granted 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Description

請求の範囲 1 n個のプロセツサで編成され且つ障害の数t
が(n/2)より小さいという条件を満足する、
信頼性のある(t+1)接続のネツトワークにお
いて、下記ステツプから成るnプロセツサ間の合
意を得る方法。
(a) 第1のメツセージ通過の間に、1つの開始プ
ロセツサからその偽造不可能な署名を有する値
メツセージを、それ自身を含むアクテイブなす
べてのプロセツサへそれぞれ同報通信するステ
ツプ。
(b) 第2のメツセージ通過の間に、アクテイブな
各受信プロセツサからその偽造不可能な署名を
添付した前記メツセージを、それ自身を含むす
べてのアクテイブなプロセツサへそれぞれ送信
するステツプ。
(b) アクテイブな各プロセツサは、すべてのアク
テイブなプロセツサが署名している場合は、最
初の2つのメツセージ通過の終了時に、前記メ
ツセージ値に合意して停止し、 (1) 署名数が少なくとも(t+1)個である
が、全員一致でない場合は、前記メツセージ
に署名して(t+1)個の署名とともに送信
し、 (2) 全員一致の署名を有する前記メツセージを
受信することによつて停止されなかつた各プ
ロセツサは、(t+2)個のメツセージ通過
が済むまで、受信した前記メツセージにその
署名を添付してこれを送信する操作する操作
を続け、(t+2)個のメツセージ通過の終
了時点で、少なくとも(t+1)個の署名が
前記メツセージに添付されている場合はその
値に合意し、さもなければ省略時の値をとる
ようにするステツプ。
2 請求の範囲第1項において、生成された各メ
ツセージが、合意識別子(AI)、生成時刻
(TG)、メツセージ値(v)、及び少なくとも1
つの添付された署名を含むことを特徴とするプロ
セツサ間の合意を得る方法。
3 請求の範囲第1項において、各プロセツサが
少なくとも同報通信モニタ及びビザンチン合意モ
ニタを含むことを特徴とするプロセツサ間の合意
を得る方法。
[技術分野] 本発明は複数のプロセツサが同期されたフエー
ズで情報を交換するようなネツトワークに係り、
更に詳細に説明すれば、障害プロセツサが存在す
る場合でさえも、前記複数のプロセツサ間で分散
されたタスクを実行するか、または全く実行しな
いかについて、これらのプロセツサ間の合意
(agreement)を得る方法に係る。
[背景技術] CPUネツトワークに分散されたタスクの並行
処理によつて計算を行なうことは、よく知られて
いる。事実、米国特許第4274139号に記述された
システムでは、1つのタスクを実行中の局所
CPUが別の機能を他の遠隔CPUに送り、そして
この遠隔CPUで処理された出力結果を、局所
CPUが受取るようにしている。同様に、同時係
属出願の米国特許出願第459746号(1983年1月21
日出願)では、所与の計算を構成する複数の並行
処理可能なタスクと対話するために、単一の物理
ポートを使用する方法が開示されている。この方
法に利用される機能の中には、パス・スルー
(pass−through)、即ち1つのサイトの使用者が
別のサイトのCPUにログオンし、そのフアイル
を転送することを可能にする機能がある。
一般に、計算とは複数の並行処理可能なタスク
から成り、これらのタスクにはネツトワーク中の
局所または遠隔CPUにおける情報のアクセス、
変更、及び復元が含まれる。このことは、調整、
活動の同時性、または最終結果の相似性を必要と
する。例としては、分散された複数の勘定口座の
借方/貸方の同額を記入すること、同じ開始クロ
ツク値を使用すること、等の多種多様のものがあ
る。それらに共通する重要な特性は、複数の非同
期プロセツサが、それらの1つによつて生ぜられ
た情報値を使用するとともに、それらに依存する
ことである。この場合、受取つた値が送られた最
初の値であつたかどうかを決定することが必要で
ある。この問題を処理するために2クラスのプロ
トコル、即ち多重フエーズ確約(commit)/放
棄プロトコル及びビザンチン合意(Byzantine
Agreement)プロトコルが考案されている。
確約/放棄プロトコルとビザンチン合意プロト
コルは共に、ネツトワーク構成のCPU(ノード)
間で同期されたフエーズのメツセージを交換する
こと、及びそれぞれのノードでこれらのメツセー
ジを評価することを含む。その目的は、すべての
ノードにおけるトランザクシヨンの一様な確約を
最終的に保証することであるが、プロトコルの種
類によつて強調点が異なる。例えば、ビザンチン
合意プロトコルは、アクテイブノードの各々が、
ネツトワーク中の他のすべてのアクテイブノード
のアイデンテイテイを知つていること、そしてそ
れらの間に直接結合があることを仮定する。更
に、ビザンチン合意プロトコルは、高いメツセー
ジ・オーバヘツドで、一定期間内に集中的に合意
しようとする。これに対し、多重フエーズ確約プ
ロトコルは、Gray、“Operating Systems、An
Advanced Course”、Springer Verlag、1978で
説明しているように、タスクの階層に焦点を当て
ており、ノードに関する個々のノードの知識を従
属ノードに限定している。
多重フエーズ確約プロトコルは、多くのメツセ
ージが失なわれても許容することができるが、こ
れらのプロトコルは調整用プロセツサノードにつ
いては、一瞬の障害でさえも許容することができ
ない。このノードは、ネツトワーク構成された幾
つかのプロセツサに、トランザクシヨンの確約信
号を選択的に送り、その他のプロセツサには、ト
ランザクシヨンの放棄信号を送る。それとは対照
的に、ビザンチン合意プロトコルは、平均してよ
り多くのメツセージを必要とし、限られた数のノ
ード/リンク障害を許容するが、これらの障害に
は、各種のものがある。従つて、このプロトコル
の目的が、保証された同報通信を確保することで
ある場合、メツセージ・オーバヘツドと保証の信
頼性の間で、トレードオフが計られる。
また、Skeen、“Non−Blocking
CommitProtocols”、ACM S IGMOD
Conference、1981、pp133−142には、障害時の
閉塞(ブロツキング)の可能性を減少させる多重
フエーズ確約プロトコルが記述されている。計算
の目的が、複写されたデータベースの同時更新で
ある場合、プロトコルのクラス間のメツセージ伝
送量が同じ大きさとなることがある。
Pease et al、“Reaching Agreement in the
Presence of Faults”、27Journal of the ACM、
pp228〜234、April1980では、ビザンチン合意プ
ロトコルを、同期されたフエーズで情報交換する
手段を有するネツトワークにおいて非同期プロセ
ツサの間の、一貫性及び合意を実現する方法とし
て定義している。これは、いくつかのプロセツサ
に障害がある場合でさえも適用される。それと関
連して、Lamport、“The Byzantine
Generals′Problem”、#4ACM Transaction on
Programming Languages and Systems、
pp382−401、July1982では、軍事用語の範例が
図式的に説明されている。しかしながら、両方向
性のリンクによつて情報を交換できるnプロセツ
サのネツトワークに適用された場合の問題点は、
潜在的に障害のあるプロセツサ、またはリンクを
含む環境において、プロセツサの1つによつて伝
送中の、メツセージの内容(値)についてすべて
のプロセツサが合意することである。このような
環境の下では、障害のある構成要素の動作につい
ていかなる仮定も行なわれない。従つて、どの方
法でも、メツセージを中断することができなかつ
たり、またはその内容を破壊することさえあるプ
ロセツサまたはリンクに、対処しなければならな
い。
ビザンチン合意(BA)は、1組のプロセツサ
に対する同報通信を結果的に保証するものであ
る。つまり、システム中の障害の数が、この保証
の信頼性を特徴づけるパラメータtを越えないこ
とを条件として、正しく動作するすべてのプロセ
ツサが同じメツセージを受取るか、またはどのプ
ロセツサもメツセージを受取らない、ということ
である。特徴としては、潜在的に信頼性が低いプ
ロセツサのネツトワークは、いくつかの同期され
たフエーズの情報交換を行なう手段を含む。この
情報交換後、前記プロセツサはすべて、それらの
プロセツサの1つが最初に保持していた値につい
て合意しなければならない。
BAは: (1) すべての正しいプロセツサが同じ値について
合意し、かつ、 (2) もし開始プロセツサが正しければ、すべての
プロセツサがその値について合意する。
ときに得られる。
項目(1)及び(2)が暗に含んでいるのは、プロセツ
サの各々がそのプロトコルの実行を完了して合意
に達するのに或る時間を要すること、そしてすべ
てのプロセツサがこの時間について承知していな
ければならない、ということである。もし、すべ
てのプロセツサが同じフエーズで合意に達するな
らば、それは“即時”の合意と呼ばれ、そうでな
い場合は、最後”合意と呼ばれる。
プロトコルは必要に応じて確認
(authentication)を使用し、これにより任意の
プロセツサが新しい値またはメツセージを情報交
換に導入することを阻止する。確認プロトコル
は、送信プロセツサがメツセージに署名を添付す
ることを要求する。この署名には符号化されたメ
ツセージのサンプル部分が含まれているので、任
意の受信プロセツサはこのメツセージが真正であ
り且つ生成プロセツサによつて作成されたことを
検査できる。また、どのプロセツサも、他のプロ
セツサの署名を偽造不可能な、即ち、見破られず
にメツセージ内容を変更できないものと仮定され
る。
若しも、信頼度tを有するBAがtよりも少な
い障害によつて影響されるとすれば、実際にはf
個の障害しか生じえないという合意に、複数のプ
ロセツサがどれ位の時間で到達できるであろう
か。この問題の解決には、停止の概念を明白にす
ることが含まれる。プロセツサは、それが合意の
値を決めたとき停止しているとみなされ、この合
意に関するそれ以上の処理またはメツセージの中
継を行なわない。或るプロセツサが、特定の合意
に関して停止したとき、他のプロセツサまたはそ
れ自身の合意の結果に影響することなく、その通
信リンクの全部を切断することができる。
従来技術では、確認を用いて“即時BA”を達
成するための方法は、t+1のフエーズ及び0
(nt)メツセージを必要とする。ここで、確認を
必要とする幾つかのプロトコルでは、nプロセツ
サのネツトワークにおいて合意を得るためのメツ
セージ数が、係数n及びtを含む小さな多項式関
数で表わされるものと仮定する。また、確認なし
に、これらの結果が更に変更されるものと仮定す
る。
[発明の説明] 本発明の目的は、ネツトワーク化されたアクテ
イブなプロセツサ間でビザンチン合意を得るため
の、計算機で実現可能な方法を提供することであ
る。但し、このネツトワークでは、合意を得るの
に必要なフエーズ及びメツセージの数が制限され
ており、またこれらのプロセツサが確認された同
報通信メツセージを同期化されたフエーズで交換
するものとする。それに関連して、本発明の他の
目的は、高々t<(n/2)個のプロセツサ/リ
ンクに障害があつたとしても、信頼性のある(t
+1)接続のネツトワークに結合されたnプロセ
ツサ間で、該方法が動作可能であり、更に、(t
+2)のフエーズで合意を得ることができるよう
にすることである。本発明の他の目的は、障害の
あるプロセツサがない場合に、該方法により最小
数のフエーズで合意を得ることである。
これらの目的は、下記ステツプ(a)〜(c)を含む方
法によつて達成される: (a) 偽造不可能な署名を有する値メツセージを、
開始プロセツサから、それ自身を含むすべての
アクテイブなプロセツサに同報通信する。
(b) 各受信プロセツサは前記のメツセージを受取
り、それ自身の偽造不可能な署名を付加して、
それ自身を含む他のすべてのアクテイブなプロ
セツサに渡す。
(c) 若しアクテイブなプロセツサがどれもみな署
名し、全員一致のサポートを得るならば、アク
テイブな各プロセツサはこのメツセージ値に合
意し且つ最初の2メツセージの通過の終りで停
止する。若し、署名数が少なくともt+1であ
るが、全員一致でないならば、署名を行ない且
つt+1の署名を有するメツセージを送付し、
全員一致のサポートによる停止がなされない各
プロセツサは、受取つたメツセージを、繰返し
送付し、t+2メツセージが通過するまで、そ
の署名をメツセージに付加するステツプを続行
する。t+2メツセージが通過した時点で、若
し、少なくともt+1の署名がメツセージに付
加されていれば、その値に対する合意が得ら
れ、そうでない場合には、省略時の値
(default value)がとられる。
この方法の核心は、それ自身を含むすべてのア
クテイブなプロセツサに対し、受取つたメツセー
ジの“署名及び送信”を行なうことである。若
し、最初の2つのメツセージの連続通過後、すべ
てのプロセツサが署名した(全員一致でサポート
した)ならば、早期の停止が得られる。そうでな
い場合は、これらの全員一致のサポートが得られ
ないプロセツサは、t+2の通過が生じるまで、
受取つたメツセージの署名、送信を繰返し行なう
ステツプを続行する。この方法の利点は、障害が
無いときに早期の停止を生じるだけではなく、メ
ツセージ数を0(nt)まで直線的に制限するとい
う点にある。従来技術の他の方法に関しては、関
与プロセツサ数が2t+1ほどに小さいときは、前
記のような障害がない場合の早期停止は許されな
い。
【図面の簡単な説明】
第1図はBA呼出しの流れ図、 第2図は同報通信モニタの流れ図、 第3図は同報通信モニタとビザンチン・モニタ
の間の起時間(wakeup time)の伝達に関する
流れ図、 第4図はビザンチン・モニタの流れ図、 第5図は、7プロセツサのネツトワークで、そ
の中の3プロセツサに障害があるかもしれない場
合の、メツセージ署名、送付のシナリオを示す図
である。
最良の実施態様 本発明の方法は、完全かつ確実に接続された同
期ネツトワークにおいて、すべてのプロセツサ
が、大部分の時間、正常であると仮定する。この
方法は特に、(a)障害のあるプロセツサがない場
合、または(b)最大tプロセツサまで障害のある場
合、ビザンチン合意を得るのに必要なフエーズ及
び確認されたメツセージの数を最小限にするよう
に定められている。
ビザンチン合意及び同期されたフエーズの情報交
換 以下の説明は、関係するネツトワークがアクテ
イブなプロセツサだけから成り、そしてメツセー
ジ・トラフイツクが複数のプロセツサをアクテイ
ブと非アクテイブ(passive)に区分することに
よつて部分的に管理できるという仮定の下に行な
う。ここで、フエーズ1ではすべての“アクテイ
ブ”なプロセツサに対し、ソースsが偽造不可能
な署名を有する値vを送付する(生じる)ものと
仮定しよう。これに関連して、“フエーズ”を有
向グラフで表わす場合、そのノードはプロセツサ
を表わし、枝はノードの対の間で伝送されるメツ
セージを表わす。また、“フエーズ”は、送信者
が伝送してから、すべてのプロセツサがこのメツ
セージの値vを受取り、前記メツセージを処理
し、次の停止を決定するまでの時間差と定義され
る。
若し、p番目のプロセツサによつて、(v)s
が正確に受取られるならば、このプロセツサは、
その署名((v)s)pを添付し、フエーズ2の
間に、それ自身を含むすべてのプロセツサに対
し、署名されたメツセージを送付する。また、こ
のフエーズの間に、((v)s)pが、それ自身を
含む各プロセツサpから、q番目のプロセツサに
よつて正確に受取られ、かつフエーズ2の間に、
他のメツセージが受取られないならば、q番目の
プロセツサは、この方法に対する、これ以上の関
与を停止し、その確約された値のリストに値vを
加える。フエーズ2で、署名された値vが、それ
自身を含むすべてのプロセツサから正確に受取ら
れると、“早期停止”が行なわれる。この制約が
ないと、q番目のプロセツサは、フエーズ(t+
2)まで待たなければならない。その後に、値v
を確約された値のリストに加えることができる。
若し、v以外の値を、q番目のプロセツサが受
取つたならば、送信者の障害が推定され、q番目
のプロセツサはその省略時の値をとる。
特殊メツセージ構文 ここで、特殊メツセージ構文を次のように定義
する: (1) 値vのセツトは原子メツセージのセツトに含
まれる。
(2) ラベルは、原子メツセージ、確認またはラベ
ル・シーケンスのどれかである。
(3) 確認は(ラベルa)pの形式を有するラベル
である。ただしpはプロセツサの名前であり、
ラベルaは1つのラベルである。
(4) ラベル・シーケンスは、形式ラベルa、bの
ラベルである。ただし、ラベルa、bはラベル
である。(a、b、c)pは(a)p(b)p(c)と同じ
ではないことに注意されたい。
(5) 若し、a=bであるか、またはaがcの一部
であり且つb=c(p)となるようなラベルc
及びプロセツサpがあるか、またはb=c、d
であり且つaがc若しくはdの一部であるよう
なラベルc及びdがあれば、ラベルaはラベル
bの一部である。
(6) メツセージはコンマのないラベルである。
低いサポート及び密なメツセージ 或るプロセツサが値vについて“低いサポー
ト”を有するといわれるのは、次のようなt+1
のプロセツサpの各々ごとに、当該プロセツサが
その唯一の原子メツセージ部分として、vを有す
るpによつて署名された確認を受取る場合であ
る。任意のフエーズで或るプロセツサに受取られ
たメツセージが“密”であるといわれるのは、そ
の唯一の原子メツセージ部分が値であり、その他
のすべての部分が確認であり、そして複数のプロ
セツサの明白なv署名がそのメツセージに現われ
る場合である。ここで説明の便宜上、p、g、r
及びsをプロセツサとし、vを値とし、t=2と
する。そうすると、(((v)s)p)qがフエー
ズ4ではなく、フエーズ3で受取られるならば、
これは“密”なメツセージである。これに関連し
て、シーケンス((v)s)p、((v)s)qは
vに対して“低いサポート”である。なぜなら、
これは原子部分vを有するメツセージに(t+
1)=3の明白な署名を含むからである。一般に、
フエーズkで受取つた密なメツセージは次の形式 (………((v)p/I/……)p/k/ を有する。低いサポートはフエーズ2でtメツセ
ージを必要とする。後に、メツセージ数は、フエ
ーズt後の1つの密なメツセージと同じ位、大き
くまたは小さくなることがある。
密なメツセージと低いサポートの概念は次のよ
うに表現することができる: フエーズqで受取つた密なメツセージ=(値v
だけの)原子メツセージ部分+明白なqプロセツ
サからの確認 低いサポート=原子部分の値vだけを有する密
なメツセージで受取つたq>=(t+1)の明白
な署名 若し、或るプロセツサがフエーズ2で停止せ
ず、かつこのプロセツサが値vについて低いサポ
ートを有するならば、このプロセツサは、(1)その
確約された値のリストにvを加え、そして(2)若
し、vが最初の2つの値の1つであるならば、密
なメツセージを含む十分なメツセージを送り、v
に対する低いサポートを伝達しなければならな
い。最後に、プロセツサは、若し前記以外の場合
で停止しないならば、フエーズt+2の後に停止
しなければならない。
本発明の方法は、障害のない場合には、全員一
致のサポーシを受取るプロセツサがフエーズ2で
停止することを可能にするという点で最適化され
るが、障害のある場合には、全員一致のサポート
を受けないプロセツサは、低いサポートを有する
密なメツセージを、フエーズ2とフエーズt+2
の間の期間中待ち、伝達された値をそれらの確約
された値のリストに加え、そして、最初に受取つ
た前記2つの値に対応するすべてのプロセツサ
に、密なメツセージを伝送しなければならない。
相互依存効果と局所クロツキング 複数ノードを有するネツトワークは、メツセー
ジ・インターフエースに対の伝送が存在するよう
な、単一送信者/単一受信者型のネツトワークで
ある。既に説明したように、用語“フエーズ”
は、ノード対間のメツセージ伝送を特徴づけ、か
つ大まかに“時間間隔”に対応する。相互依存の
問題は、時間がノード間において正確に同じでは
ないという事実から生じる。詳細については、
Lamport、“Time、Clocks、and、the Ordering
of Events in a Distributed System”、21
Communications of the ACM、pp558−565、
July1978に記述されている。実際的には、これ
は、若しシステムが大域(グローバル)クロツク
によつて同期化できるなら、用語“フエーズ”は
時間間隔と同義語である。
局所ノードの実行環境 初めに、本発明の方法は、主記憶、入出力チヤ
ンネル、制御装置、直接アクセス記憶装置及びそ
の他のI/O装置が、それぞれ接続されている少
なくとも1つのCPUを含むような計算システム
で実行可能である。このようなシステムは米国特
許第3400371号に説明されている。このシステム
には、プロセスの実行に必要な、計算システムま
たはオペレーテイング・システムの機能のすべて
が、資源として含まれる。代表的な資源には、主
記憶、I/O装置、CPU、データ・セツト、及
び制御プログラムまたは処理プログラムが含まれ
る。更に、このようなシステムは多重プログラミ
ング能力を有する。これは、計算システムによる
2つ以上のプロセスの並行処理に適し、IBM社
から発行された刊行物GC28−6646(1973年7月)
に説明されているIBMシステム/360オペレーテ
イング・システムによつて動作するコンピユータ
で管理することができる。非同期動作する複数の
CPUから成るネツトワークは、米国特許第
3940743号、同第4223380号に記述されている。
本発明の方法を実行する流れ図 ネツトワークの各プロセツサ・ノードには、第
2図の同報通信モニタ及び第4図のビザンチン合
意モニタが含まれる。同報通信モニタは、ノード
に対する一般的なメツセージ通信プロセツサであ
る。また、これには、障害がない場合に早期停
止、即ちフエーズ2によつて停止するビザンチン
合意を決定する機能も含まれる。対照的に、ビザ
ンチン合意モニタは早期停止以外の合意を決定す
る。
第1図には、メツセージ構文が示されている。
これは、合意プロセスの開始時にビザンチン合意
が呼出される場合は、合意識別子(AI)、生成時
刻(TG)、及び値(v)を含むメツセージが生
成されることを意味する。(ビザンチン合意の目
的は、プロセツサが初めに伝えたことに関しての
合意を確認することである。)そして、メツセー
ジは署名され、他のすべてのアクテイブなプロセ
ツサに送信される。これは、ネツトワーク中の他
のすべてのアクテイブな関与プロセツサが分つて
いるからである。更に、完壁なものにするため
に、“署名”として、暗号化されたメツセージを
用いたり、または少なくとも1つの追加ECCバ
イトを用いることができる。
モニタの属性 モニタは、計算資源に結合された手順の集りで
ある。これは、資源を割当てたり、資源に対する
参照を制御する責任を有する。一般に、システム
中の各資源は特定のモニタを有する。例えば、記
憶モニタ、通信(同報通信)モニタ、または
CPUモニタがある。モニタの各々は、責任を有
する資源についての情報を含むテーブルまたは他
の構造に対し、排他的なアクセスを有する。モニ
タに関連するものに“メール・ボツクス”があ
る。メール・ボツクスは、2つ以上の送信プロセ
スからのメツセージを記録できるような受信者に
関連したキユー(queue)である。
同報通信モニタ 第2図には、本発明による同報通信モニタの流
れ図が示されている。このモニタは、指定された
論理レジスタにイニシアル・タイムを記録する。
モニタ手順は、最初に同報通信メイル・ボツクス
をアクセスしてこれをロツクし、そして繰返し手
順(ループ)を用いて、メール・ボツクスを定義
する外部ソースからのメツセージのキユーが使い
果たされるまで、各メツセージを順次に処理する
ように構築される。この時点で、メール・ボツク
スは、アンロツク(unlock)されており、新し
いメツセージの到着を持つ。各メツセージは、そ
の中に組込まれた同報通信情報ブロツクによつて
形成化される。このブロツクには、アイデンテイ
テイ、生成時刻及び確約値に対するステータス情
報が含まれる。そして、一般的に認められる幾つ
かのループがある。最初のループは、誤つている
か、または確認されていないか、または現在時刻
(CT)がメツセージ生成時刻(TG)所定量越え
ているようなメツセージをすべて廃棄することに
関連する。これらの量は署名数(S)に等しい時
間単位である。メツセージが廃棄されると、同報
通信モニタは“休止”状態に戻る。メツセージが
確認されたものであつて。誤りのないものであ
り、しかも現在時刻が、生成時刻に所定の増加量
を加えたものを越えていないと仮定すれば、“ベ
ース”と呼ばれる一定配列の目的リストから成る
データ構造がアクセスされる。“ベース”は、任
意の合意について最初に受取られるメツセージで
ある。また、メツセージ内の検出されたベースの
数をカウントするために、走行変数Kが0にセツ
トされる。これらのベースは、その生成時刻
(TG)によつて配列されるので、“次のベース”
を取出す次のステツプは、リストから次の最大の
大きさを有するTGを得ることを意味する。若
し、“次のベース”がなければ、この最初のプロ
セスのメツセージは、この一定配列のリストのデ
ータ構造にベースとして記憶される。
“次のベース”を取出すステツプで、“次のベ
ース”が見つかつたものと仮定すると、処理中の
メツセージのアイデンテイテイをベースのアイデ
ンテイテイと比較する必要がある。若し、両者が
等しくないならば、次のベースが取出され、比較
される。ベースがなくなるまで、または処理中の
メツセージのAI(合意識別子)と同じAIを有する
ベースが見つかるまで、一定配列のリストは走査
される。カウントは一単位ずつ増加される、即ち
K=K+1となる。
次に、若し、ベースが見つかつたならば、この
ベースの値がメツセージの値vに等しいかどうか
について検査が行なわれる。若し、処理中のメツ
セージの値と、ベースの値が等しくないならば、
Kが2よりも小さい場合に、ベースは再走査され
る。このリストでは2つのベースだけを維持すれ
ばよいことに注意されたい。これは、現在のメツ
セージと1つのベースの間の値vの不一致が、送
信者の障害を表わすのに十分であるという判断を
前提としている。即ち、若し、送信者が同じAI
の下に異なつた値を有する2つのメツセージを送
るならば、障害が表示される。若し、ベースが2
回以上ループされ(即ちK=>2)、かつメツセ
ージとベースの値が不一致であるならば、メツセ
ージは廃棄される。
ここで、現在処理されたメツセージ値vがベー
ス値に等しいものと仮定しよう。若し、該ベース
が“c”または“d”によつてマークされれば、
それは廃棄される。これは、これ以上のメツセー
ジ処理またはビザンチン合意を行なわなくてもよ
いことを意味し、合意は既に決定されていること
を表わす。
若し、ベースがマークされていなければ、メツ
セージの署名は、ベースの署名を更新するのに用
いられる。即ち、最初のt+2の署名は完全に記
憶され、それらのすべてに適切なビツトがマーク
される。
若し、現在時刻CTが生成時刻TGプラス2単
位を越えていないならば、それは早期停止時刻以
前、即ちフエーズ2の範囲内にある。若し、すべ
ての署名が受取られているならば、全員一致のサ
ポートが存在する。一方、すべての署名が受取ら
れていなかつたならば、メツセージは廃棄され、
同報通信モニタは“休止”状態に戻る。
ここで早期停止中の処理について考えてみる
と、ベースを検査して、処理中のメツセージ及び
ベースと同じAIを有するもう1つのベースが存
在するかどうかを調べる。若し、存在するなら、
ベースは、“d”をマークしてリストに戻され、
プロセツサは省略時の値をとる。さもなければ、
ベースは、“c”をマークしてリストに戻され、
そしてベース値vが合意値として採用される。こ
の実現形態では、省略時の値は、送信者が障害を
有するという情報を含む。“c”または“d”の
どちらかにベースがマークされた後、同報通信モ
ニタは“休止”状態になる。こうして、早期停止
のプロセスが完了する。
次に、データ構造を循環した後、ベースが存在
しないものと仮定すると、処理中のメツセージが
ベースとして記憶される。若し、そのメツセージ
の署名数が2つであれば、同報通信モニタは直ち
に“休止”状態に戻る。他方、若し、署名数が2
以外であれば、プロセツサは、そのメツセージに
署名し、これら自らを含む。すべての他のプロセ
ツサに同報通信する。その後、同報通信モニタは
“休止”状態に戻る。
同報通信モニタは、各メツセージを順次に処理
し、時間確認または誤り基準に適合しないメツセ
ージを廃棄してベースを確立する。同報通信モニ
タが合意を決定する唯一の時機は早期停止の場合
である。同報通信モニタの活動と同期していない
のは、ビザンチン・モニタの活動であり、該モニ
タは早期停止の合意以外の合意を決定することを
目的とする。同報通信モニタとビザンチン・モニ
タの間の通信は、ベースを変更し、それを記憶す
ることによつて行なわれる。
第3図を参照するに、そこではメツセージがベ
ースとして記憶され、生成時刻+2単位がビザン
チン・モニタのベースをポイントする起動時間の
リストに入れられる。起動時間の最も早い時機に
ビザンチン・モニタを起動するため、ビザンチ
ン・モニタのタイマが必要に応じてリセツトされ
る。
ビザンチン・モニタ 第4図には、ビザンチン・モニタの流れ図が示
されている。このモニタは、2つの配列されたリ
ストに応答する。このモニタは、呼出されると、
同報通信メール・ボツクスをアクセスし、ロツク
して、現在時刻を得るとともに、配列されたリス
トをロツクする。これに関しては、最初のリスト
は、いくつかのベースのTG+2またはTG+t
+2に対応する起動時間の一定配列のリストであ
るが、他のリストは、依然としてアクテイブなベ
ースの配列されたリストである。これらのリスト
の内容はループによつて処理される。1つのメツ
セージがベースとして記憶されるごとに、時刻
TG+2単位は、ビザンチン・モニタの起動時間
として記憶される。そのリスト上の該目的に関連
するのは、他のリストに記憶されたベースに対す
るポインタである。オペレーテイング・システム
が起動時間に応答してビザンチン・モニタを呼出
す場合、この起動時間はリストから除去され、そ
して関連するベースのアクセスが行なわれる。こ
のベースは、“c”または“d”とマークされて
いるか、または全くマークされていない。若し、
このベースがマークされているならば、ビザンチ
ン・モニタは“休止”状態に戻る。若し、ベース
が“マーク”されていない”ならば、起動時間
WTはベースの生成時刻TGと比較される。若し、
WT=TG+2であり、そして、ベースに低いサ
ポート(t+1の署名)があれば、ベースは署名
されたとえ、前に送信されていても、全部のプロ
セツサに送信される。いずれにしても、TG+t
+2の新しい起動時間がリストに載せられる。ま
た、若し、最も早い“起動時間”に起動する必要
があれば、ビザンチン・モニタはそのタイマをリ
セツトした後に“休止”に戻る。若し、WT=
TG+t+2ならば、ベースのメツセージに付随
する署名数が検査され、それが十分にサポートさ
れているかどうかが確かめられる。即ち、若し、
署名数sが(t+1)よりも小さければ、サポー
トは不十分であるとみなされ、ベースは“d”と
マークされる。プロセツサは合意とは反対の決定
をし、省略時の値をとる。そして、ビザンチン・
モニタは“休止”状態に戻る。他方、若し、s=
>(t+1)ならば、リストにおいて同じ識別子
を有するもう1つのベースの探索が行なわれる。
若し、このベースが見つかれば、それを“d”と
マークし、プロセツサは合意に反対の決定をし
て、省略時の値をとり、ビザンチン・モニタは
“休止”状態に戻る。若し、同じ識別子を有する
もう1つのベースがなければ、ベースは“c”と
マークされ、プロセツサはそのベースの合意値v
をとる。その後、ビザンチン・モニタは“休止”
状態に戻る。
ビザンチン・モニタの機能は、時刻TG+(t
+2)時間単位で合意を決定することである。従
つて、同報通信モニタは、最初の2フエーズ内
で、合意の可否を決定するが、ビザンチン・モニ
タは、フエーズt+2で、合意の可否を非同期的
に決定する。この方法によつて、障害のない場合
には2フエーズ内に、または、障害数tが(n/
2)よりも小さい場合にはt+2フエーズ内に、
アクテイブなプロセツサはことごとく、合意値ま
たは省略時の値に達することが保証される。
本発明のビザンチン合意方法 本発明の方法は、複数のプロセツサがトランザ
クシヨンの確約または放棄についての合意を、所
定の時間内で保証することが望ましい場合、本発
明の方法は2フエーズ確約プロトコルに適用する
ことができる。従つて、本方法によるメツセージ
に或るプロセツサが応答し、その応答が、同期さ
れた(t+1)接続のプロセツサ・ネツトワーク
中の更にもう1つのプロセツサに受取られるのに
要する時間の上限τが存在する。(t+1)接続
ネツトワークは、ネツトワーク中の任意の2点が
t+1の「互いに素」(disjoint)なる経路を有す
ることを意味すると定義される。
若し、プロセツサが或る値を予期し、その後、
時間τ内にそれを受取らなければ、このプロセツ
サは、送信または受信プロセツサのどちらかに障
害があると結論する。本発明の方法を2フエーズ
確約に適用するプロトコルは、下記のステツプを
必要とする; (a) ノードの1つをトランザンシヨン・コーデイ
ネータとして指定し、(そのクロツクの)時刻
tで、“確約準備(prepare−to−commit)”
メツセージを、すべての関与プロセツサに同報
通信し、 (b) 各プロセツサは、“準備された(prepared)”
レコードを記録して“イエス”と投票するか、
または放棄して“ノード”と投票することによ
り、“確約準備”に応答し、 (c) 若し、時刻t+2τまでに、トランザクシヨ
ン・コーデイネータが、すべてのネツトワーク
関与者から“イエス”を受取つているならば、
ビザンチン合意プロトコルを用いて事象“確
約”を同報通信するか、または前記ビザンチ
ン・プロトコルを用いて“放棄”を同報通信
し、 (d) 若し、そのクロツクの時刻t+6τまでに、プ
ロセツサは、“確約”することを決定していな
ければ、“放棄”することを決定する。即ち省
略時の値を採用する。
最悪の場合のシナリオ 第5図には、CPUネツトワークのグラフのノ
ード間の有向性の枝に沿つたメツセージ伝達パタ
ーンが示されている。この場合、n=7のCPU
があり、そのうち、t=3のCPUに障害がある。
黒丸のノードは障害のあるプロセツサを表わし、
自丸のノードは正しいプロセツサを表わす。第1
のフエーズで、Aは値vを含み、Aが署名したメ
ツセージを、時物TGにおいてBにだけ(不正な
様式で)送る。第2のフエーズで、Bは、送られ
たメツセージに正しく署名し、それをすべてのノ
ードに送る。第3のフエーズで、Gは(不正な様
式で)そのメツセージに署名し、それをFにだけ
送る。第4のフエーズで、Fは同じように(不正
な様式で)そのメツセージに署名し、それをEに
だけ送る。最後の第5のフエーズで、Eは正し
く、そのメツセージに署名し、それをすべてのノ
ードに送る。面白いことに、メツセージは、それ
が少なくともt+1の署名を必要とするという理
由から、第4フエーズまでは十分にサポートされ
ず、第5フエーズになつて始めて十分にサポート
される。メツセージが署名され、ノードG及びF
から送られるためには、両ノードは、たぶん共謀
して動作するものとみられる。Eにだけ送られた
メツセージに(t+1)=4の署名をノードが添
付するのは、第4フエーズにおいてだけである。
若し、Fが実際に、たつた1つのノードの代りに
すべてのノードにメツセージを送つていたなら
ば、フエーズTG+4で合意が決定されたであろ
う。
複数のフエーズは、不連続に生じているように
説明されてはいるが、入力関係でもよいことはい
うまでもない。更に、若し、ネツトワークが完全
に接続され、各ノードが他のあらゆるノードに連
結され、かつ少なくとも(t+1)接続であるな
らば、本発明は、変更なしに、t(n/2)の範
囲まで、検出されないノード/リンク障害に耐え
るであろう。
有利な点として、本発明は、ベースがすべての
アクテイブなプロセツサの署名を含んでいる場
合、その時点(第2フエーズ)で即時停止を要求
する。早期停止しない場合、プロセツサは少なく
ともt+1の署名が得られる。t+2のフエーズ
まで待つて始めて、確約された値のリストに値v
を加えることができる。若し、v以外の値を受取
つたならば、このプロセツサは、送信者に障害が
あつたものと結論づけ、省略時の値を採用する。
障害の証拠は即時停止を満足させないことである
と考えられる。即ち、若し、2フエーズの処理の
後、プロセツサが停止していなければ、ノードの
1つのどこかに障害がある。
JP58500986A 1983-02-09 1983-02-09 障害がない場合に最適化される、複数プロセッサの合意を得る方法 Granted JPS60500232A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1983/000171 WO1984003158A1 (en) 1983-02-09 1983-02-09 A method for achieving multiple processor agreement optimized for no faults

Publications (2)

Publication Number Publication Date
JPS60500232A JPS60500232A (ja) 1985-02-21
JPS6351302B2 true JPS6351302B2 (ja) 1988-10-13

Family

ID=22174833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58500986A Granted JPS60500232A (ja) 1983-02-09 1983-02-09 障害がない場合に最適化される、複数プロセッサの合意を得る方法

Country Status (5)

Country Link
US (1) US4569015A (ja)
EP (1) EP0135499B1 (ja)
JP (1) JPS60500232A (ja)
DE (1) DE3381526D1 (ja)
WO (1) WO1984003158A1 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US4807224A (en) * 1987-08-21 1989-02-21 Naron Steven E Multicast data distribution system and method
US5109384A (en) * 1988-11-02 1992-04-28 Tseung Lawrence C N Guaranteed reliable broadcast network
DE3906846C2 (de) * 1989-03-03 1994-02-17 Bodenseewerk Geraetetech Redundante Rechneranordnung für Steuersysteme
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5363121A (en) * 1990-06-29 1994-11-08 International Business Machines Corporation Multiple protocol communication interface for distributed transaction processing
JP2500038B2 (ja) * 1992-03-04 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム
JP2534430B2 (ja) * 1992-04-15 1996-09-18 インターナショナル・ビジネス・マシーンズ・コーポレイション フォ―ルト・トレランスのあるコンピュ―タ・システム出力の合致を達成するための方法
AU5343794A (en) * 1992-11-06 1994-06-08 University Of Newcastle-Upon-Tyne Efficient schemes for constructing reliable computing nodes in distributed systems
US5586252A (en) * 1994-05-24 1996-12-17 International Business Machines Corporation System for failure mode and effects analysis
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file 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
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
WO1997025672A2 (en) * 1996-01-09 1997-07-17 Philips Electronics N.V. A method and system for synchronizing concurrent sequential processes by means of intra-process update operations and inter-process adapt operations
US5696896A (en) * 1996-04-30 1997-12-09 International Business Machines Corporation Program product for group leader recovery in a distributed computing environment
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
US5748958A (en) * 1996-04-30 1998-05-05 International Business Machines Corporation System for utilizing batch requests to present membership changes to process groups
US6026426A (en) * 1996-04-30 2000-02-15 International Business Machines Corporation Application programming interface unifying multiple mechanisms
US5799146A (en) * 1996-04-30 1998-08-25 International Business Machines Corporation Communications system involving groups of processors of a distributed computing environment
US6216150B1 (en) 1996-04-30 2001-04-10 International Business Machines Corporation Program product for an application programming interface unifying multiple mechanisms
US5790772A (en) * 1996-04-30 1998-08-04 International Business Machines Corporation Communications method involving groups of processors of a distributed computing environment
US5699501A (en) * 1996-04-30 1997-12-16 International Business Machines Corporation System for group leader recovery in a distributed computing environment
US5787249A (en) * 1996-04-30 1998-07-28 International Business Machines Coporation Method for managing membership of a group of processors in a distributed computing environment
US6052712A (en) * 1996-04-30 2000-04-18 International Business Machines Corporation System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase
US6104871A (en) * 1996-04-30 2000-08-15 International Business Machines Corporation Utilizing batch requests to present membership changes to process groups
US5764875A (en) * 1996-04-30 1998-06-09 International Business Machines Corporation Communications program product involving groups of processors of a distributed computing environment
US5793962A (en) * 1996-04-30 1998-08-11 International Business Machines Corporation System for managing membership of a group of processors in a distributed computing environment
US5704032A (en) * 1996-04-30 1997-12-30 International Business Machines Corporation Method for group leader recovery in a distributed computing environment
US5768538A (en) * 1996-04-30 1998-06-16 International Business Machines Corporation Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6931431B2 (en) * 2001-01-13 2005-08-16 International Business Machines Corporation Agreement and atomic broadcast in asynchronous networks
US8458754B2 (en) * 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US6704887B2 (en) * 2001-03-08 2004-03-09 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for improved security in distributed-environment voting
JP3973560B2 (ja) * 2001-03-30 2007-09-12 テェーテェーテック・コンピュータテクニック・アーゲー 分散コンピュ−タシステムのオペレーション方法
US20030023850A1 (en) * 2001-07-26 2003-01-30 International Business Machines Corporation Verifying messaging sessions by digital signatures of participants
US7257617B2 (en) * 2001-07-26 2007-08-14 International Business Machines Corporation Notifying users when messaging sessions are recorded
US7269622B2 (en) * 2001-07-26 2007-09-11 International Business Machines Corporation Watermarking messaging sessions
US20030021416A1 (en) * 2001-07-26 2003-01-30 International Business Machines Corporation Encrypting a messaging session with a symmetric key
US20050216910A1 (en) * 2002-05-23 2005-09-29 Benoit Marchand Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules
US20050060608A1 (en) * 2002-05-23 2005-03-17 Benoit Marchand Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
US20080222234A1 (en) * 2002-05-23 2008-09-11 Benoit Marchand Deployment and Scaling of Virtual Environments
US7305585B2 (en) * 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
US7444514B2 (en) * 2003-10-15 2008-10-28 International Business Machines Corporation Group key exchanges with failures
US20060045101A1 (en) * 2004-08-31 2006-03-02 International Business Machines Corporation Efficient fault-tolerant messaging for group communication systems
US8837528B2 (en) 2005-02-25 2014-09-16 Sony Computer Entertainment America Llc Data distribution by proxy
JP2008003646A (ja) * 2006-06-20 2008-01-10 Fujitsu Ltd 不良モジュール検出方法および信号処理装置
US9483405B2 (en) * 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
WO2009140707A1 (en) * 2008-05-21 2009-11-26 Technische Universität Wien Cross-domain soc architecture for dependable embedded applications
US20100293072A1 (en) * 2009-05-13 2010-11-18 David Murrant Preserving the Integrity of Segments of Audio Streams
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
CN103562805B (zh) * 2011-03-30 2017-06-30 维斯塔斯风力系统集团公司 具有高度可靠实时功率控制的风力发电厂
US20150088761A1 (en) * 2013-09-20 2015-03-26 International Business Machines Corporation Implementing a bargaining strategy between teams with majority voting
US10049017B2 (en) * 2016-10-04 2018-08-14 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
CN107391320B (zh) * 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
US10503614B2 (en) 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
KR102310803B1 (ko) * 2018-04-16 2021-10-13 비씨 디벨롭먼트 랩스 게엠베하 최소 검증 클라이언트를 사용하는 무신뢰 무상태 인센티브화 원격 노드 네트워크
CA3053208C (en) 2018-12-13 2020-10-06 Alibaba Group Holding Limited Performing a change of primary node in a distributed system
MX2019008861A (es) * 2018-12-13 2019-09-11 Alibaba Group Holding Ltd Logro de consenso entre nodos de red en sistema distribuido.
AU2018348335B2 (en) 2018-12-13 2020-07-30 Advanced New Technologies Co., Ltd. Performing a recovery process for a network node in a distributed system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573751A (en) * 1969-04-22 1971-04-06 Sylvania Electric Prod Fault isolation system for modularized electronic equipment
GB1422952A (en) * 1972-06-03 1976-01-28 Plessey Co Ltd Data processing system fault diagnostic arrangements
US4030072A (en) * 1974-12-18 1977-06-14 Xerox Corporation Computer system operation and control
US4112488A (en) * 1975-03-07 1978-09-05 The Charles Stark Draper Laboratory, Inc. Fault-tolerant network with node branching
US4015246A (en) * 1975-04-14 1977-03-29 The Charles Stark Draper Laboratory, Inc. Synchronous fault tolerant multi-processor system
US4174536A (en) * 1977-01-21 1979-11-13 Massachusetts Institute Of Technology Digital communications controller with firmware control
JPS53124943A (en) * 1977-04-08 1978-10-31 Agency Of Ind Science & Technol Composite information processor
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
GB2023314B (en) * 1978-06-15 1982-10-06 Ibm Digital data processing systems
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4354225A (en) * 1979-10-11 1982-10-12 Nanodata Computer Corporation Intelligent main store for data processing systems
US4418384A (en) * 1980-10-06 1983-11-29 Honeywell Information Systems Inc. Communication subsystem with an automatic abort transmission upon transmit underrun

Also Published As

Publication number Publication date
DE3381526D1 (de) 1990-06-07
EP0135499A4 (en) 1987-07-06
EP0135499B1 (en) 1990-05-02
EP0135499A1 (en) 1985-04-03
JPS60500232A (ja) 1985-02-21
WO1984003158A1 (en) 1984-08-16
US4569015A (en) 1986-02-04

Similar Documents

Publication Publication Date Title
JPS6351302B2 (ja)
Boichat et al. Deconstructing paxos
Pinho et al. Reliable real-time communication in CAN networks
Speirs et al. Using passive replicates in delta-4 to provide dependable distributed computing
Aguilera et al. On the impact of fast failure detectors on real-time fault-tolerant systems
US5734897A (en) Reduction of logging in distributed systems
Miller et al. Implementing logical synchrony in integrated modular avionics
Xiang et al. Strengthened fault tolerance in byzantine fault tolerant replication
Rodrigues et al. Atomic broadcast in asynchronous crash-recovery distributed systems
Abdelzaher et al. ARMADA middleware suite
Deplanche et al. Implementing a semi-active replication strategy in chorus/classix, a distributed real-time executive
Doudou et al. Abstractions for devising Byzantine-resilient state machine replication
Charron-Bost Agreement problems in fault-tolerant distributed systems
US20080005291A1 (en) Coordinated information dispersion in a distributed computing system
Dutta et al. An efficient universal construction for message-passing systems
Anceaume et al. Designing modular services in the scattered byzantine failure model
Wang et al. Avoiding priority inversion on the processing of requests by active replicated servers
Pallemulle et al. Byzantine fault tolerant execution of long-running distributed applications
Baldoni et al. A protocol for implementing byzantine storage in churn-prone distributed systems
Bessani et al. Decoupled quorum-based Byzantine-resilient coordination in open distributed systems
Barrett et al. Towards an integrated approach to fault tolerance in Delta-4
Bullis et al. Implementation of eventcounts in a broadcast network
Romano et al. The weak mutual exclusion problem
Anceaume et al. Avoiding Priority Inversion on the Processing of Requests by Active Replicated Servers
Ezhilchelvan Building Responsive and Reliable Distributed Services: Models and Design Options