JP2000222368A - リモ―ト・メソッド呼び出しシステムにおける複製サポ―トのための方法及びシステム - Google Patents
リモ―ト・メソッド呼び出しシステムにおける複製サポ―トのための方法及びシステムInfo
- Publication number
- JP2000222368A JP2000222368A JP2000015263A JP2000015263A JP2000222368A JP 2000222368 A JP2000222368 A JP 2000222368A JP 2000015263 A JP2000015263 A JP 2000015263A JP 2000015263 A JP2000015263 A JP 2000015263A JP 2000222368 A JP2000222368 A JP 2000222368A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- multicast
- server
- thread
- round
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
間で、一貫性を維持するための改善された方法及びシス
テムを提供すること。 【解決手段】 複製サーバに接続される少なくとも1つ
のクライアントを有するコンピュータ・ネットワークに
おいて、決定的且つプリエンプティブ・スケジューラと
連係して、順序付けマルチキャスト・プロトコルを介す
るクライアント要求の確実且つ順序付けられた転送を通
じて、サーバのレプリカの間の一貫性を強制する方法及
びシステムが開示される。スケジューラが、マルチキャ
スト・プロトコルにより指定される要求の順序付けに一
致するように、実行順序を強制する。決定的スケジュー
ラは実行ストリームを命令スライスに細分し、各スライ
ス内の命令の数は予め決定される。命令スライスの満了
時に割込みを生成するために、命令カウンタが使用され
る。
Description
タ及び情報処理システムに関して、特に、分散システム
内に配備される複製サーバに関する。より詳細には、本
発明はマルチキャスト及び決定的スレッド・スケジュー
リングの使用により、分散システム内の複製サーバ間
で、一貫性を強制する方法及びシステムに関する。
処理システムのユーザが、これまで電子媒体において使
用不能であった膨大な量の電子情報を検索することを可
能にする。コンピュータ・ネットワークは、新聞、雑
誌、テレビなどの従来の情報伝達手段を益々置換しつつ
ある。コンピュータ・ネットワークはマシンのセットを
接続し、それらが互いに通信することを可能にする。今
日広範に使用される典型的なネットワーク化システム
は、クライアント/サーバ・アーキテクチャに従う。ネ
ットワーク・コンピュータでは、クライアントは、別の
プログラムすなわちサーバにより提供されるサービスを
要求するプロセス(概してプログラムまたはタスク)で
ある。クライアント・プロセスは、サーバのオペレーシ
ョンまたは要求サービスそのものの作業詳細を知る必要
無しに、要求サービスを使用し得る。
境においてサーバを実装するために、リモート・プロシ
ージャ呼び出し(コール)(RPC)を使用することが
一般的である。更に、リモート・プロシージャ呼び出し
は、クライアント及びサーバがソフトウェア実装及びソ
フトウエア通信のために、オブジェクト指向パラダイム
を使用するとき、しばしばリモート・メソッド呼び出し
システムと呼ばれる。リモート・プロシージャ呼び出し
とリモート・メソッド呼び出しとは、互換に使用される
べきである。この実行モデルでは、クライアントがそれ
らの要求を"プロシージャ呼び出し"または"メソッド呼
び出し"として公式化し、それらがサーバ・マシン上で
実行される。サーバは、要求されたプロシージャ呼び出
し及びメソッドを実装する。通常オペレーションの間、
サーバはそのクライアントからの要求を、ネットワーク
を介して待機し、受信する。ネットワーク・サブシステ
ムがこうした要求をサーバに受け渡すとき、サーバはク
ライアントの要求を実行するための"スレッド"を作成
し、適切な応答を生成する。スレッドは、サーバ・プロ
セスのアドレス空間内に存在する軽量の実行単位であ
り、その資源を、他のことによると独立のクライアント
要求を実行している潜在的な他のスレッドと共用する。
このモデルでは、スレッドはクライアントの要求により
指定されるプロシージャ呼び出し時に、実行を開始し、
プロシージャ呼び出しが返却されるまで実行する。サー
バは次に、プロシージャ呼び出しにより生成された値を
クライアントに返送し、スレッドを割当て解除する。こ
のRPC実行モデルは、分散コンピュータ環境(DC
E)、共通オブジェクト要求ブローカ・アーキテクチャ
(CORBA)及びDCOM(分散共通オブジェクト・
モデル)などの分散コンピュータ規格の最重要なものと
なった。
を使用することにより、信頼性及び高可用性を達成する
ように構成される。こうしたシステムでは、サーバの状
態を複製する幾つかのプロセッサまたはマシンが、サー
ビスを提供するために使用される。こうしたマシンは"
サーバ・レプリカ"または単に"レプリカ"と呼ばれる。
クライアントはサーバ・レプリカのサブセットと通信す
る。こうしたサブセットは、使用可能なレプリカの全て
または一部、或いは1つだけを含み得る。クライアント
はサブセットをランダムに選択するか、所定の選択基準
に従い選択する。従って、サーバにより操作された情報
の一貫したビューが、同一のクライアントにより、また
は異なるクライアントにより認識されるように保証する
ために、全てのサーバ・レプリカが同一の状態を保持す
ることが必要である。
ト・プロシージャの専用実装を有する。クライアントの
要求の実行は、異なるサーバ間で独立に進行するが、こ
の独立の実行形式にも関わらず、レプリカの状態が一貫
的であるように保証することが重要である。サーバ・レ
プリカが故障の場合、残りのサーバ・レプリカが動作し
続け、それにより途切れの無いサービスをクライアント
に保証する。
が遭遇する問題は、レプリカが同一の状態を保持するよ
うに保証することであり、これはサービスとのクライア
ント・トランザクションに影響する。例えば、2つの異
なるクライアントが2つのリモート・プロシージャ呼び
出しを発行し、複製サービスにより保持されるデータベ
ース内の同一の記録を更新するとしよう。2つのプロシ
ージャ呼び出しが、2つ以上のレプリカにより異なる順
序で処理される場合、複製記録の値は不一致となる。
サーバ・レプリカにおいて2つの異なる順序で実行する
ように導く、RPCシステムの2つの属性が存在する。
プリカに異なる順序で転送し得る。例えば、クライアン
トA及びBが、RPCのR及びPをサーバ・レプリカC
及びDに送信する場合、もしネットワークがRPCのR
をPより先にサーバ・レプリカCに転送すれば、RPC
のRをサーバ・レプリカCにおいて実行するスレッド
が、RPCのPを実行するスレッドより先に開始し得
る。同様に、もしネットワークがRPCのPをRより先
にサーバ・レプリカDに転送すれば、RPCのPをサー
バ・レプリカDにおいて実行するスレッドが、RPCの
Rを実行するスレッドより先に開始し得る。従って、ネ
ットワークがクライアントの要求を同一の順序でサーバ
・レプリカC及びDに転送しないと、サーバ・レプリカ
は要求を異なる順序で実行し、不一致となり得る。
ーラが、クライアントの要求を異なる順序で実行してい
るスレッドをスケジュールし得る。従来のスレッド・ス
ケジューラはタイマを使用し、スケジューリング決定を
可能にする。しかしながら、タイマは教育的理由から、
異なるマシン間で正確ではなく、スレッド・スケジュー
リング決定は異なるサーバ・レプリカ間で同一でないか
もしれない。従って、たとえネットワークが全てのレプ
リカの間で、クライアント要求を同一の順序で転送して
も、スレッド・スケジューリングは必ずしもその順序に
従わず、異なるサーバ・レプリカ上でのクライアント要
求の実行が、異なり得る。
述の問題に影響され易い。従来、順序付けられたマルチ
キャスト・プロトコルが、この問題を解決しようとし
た。それらは、全てのサーバ・レプリカが同一のメッセ
ージをネットワークから同一の順序で受信することを保
証する。この時、サーバ・レプリカ内での実行は、ネッ
トワークにより指定された順序に従い直列化され、ある
要求は前の要求が終了する前に、実行を開始できない。
この解決法は満足のいくものではない。なぜなら、これ
は各サーバ内で有効な同時処理の利点を排除し、性能を
劇的に低下させるからである。その結果、複製による性
能損失が大きくなる。更に、従来技術では、マルチキャ
スト・プロトコルにより指定される順序と、要求を実行
するスレッドの実行順序との間に、つながりが存在しな
かった。前述の理由から、サーバの全てのレプリカがク
ライアントの要求を同一順序で受信し、実行することを
保証するために、スレッド・スケジューリング機構と連
携して、順序付けプロトコルを実現する改善された方法
及びシステムが待望される。本発明は従来技術の一部に
属さない新規で固有の方法により、これらの全ての問題
を解決する。
は、コンピュータ・ネットワーク内の複製サーバ間で、
一貫性を維持するための改善された方法及びシステムを
提供することである。
ーバがリモート・プロシージャ呼び出しを介して通信す
るコンピュータ・ネットワーク内の複製サーバ間で、一
貫性を維持するための改善された方法及びシステムを提
供することである。
びサーバがリモート・プロシージャ呼び出しを介して通
信し、サーバが複数のスレッドを使用することにより、
複数のクライアント要求を並列に実行し、性能を改善す
るコンピュータ・ネットワーク内の複製サーバ間で、一
貫性を維持するための改善された方法及びシステムを提
供することである。
が、次に述べるように達成される。コンピュータ・ネッ
トワーク内のサーバのレプリカの間で、一貫性を維持す
る方法及びシステムが開示され、そこではクライアント
及びサーバが通信のためにリモート・プロシージャ呼び
出し(RPC)を使用し、サーバが複数のスレッドによ
り、クライアント要求を実行する。コンピュータ・ネッ
トワークは、1つ以上のクライアントを複製サーバに接
続するように想定される。サーバ・レプリカのグループ
内の各サーバ・レプリカは、特定のネットワーク・サー
ビスを複製し、特定のネットワーク・サービスがサーバ
故障の際に中断されないように維持する。クライアント
の要求は、確立済みの技術に従い、リモート・プロシー
ジャ呼び出し内で公式化される。各サーバ・レプリカ
は、従来一般的なように、所望のサービスをプロシージ
ャ呼び出しまたはオブジェクト・メソッドの形式で実装
する。
を確実に同一の順序で全てのサーバ・レプリカに転送す
る、順序付けマルチキャスト・プロトコルの存在を想定
する。多くのこうしたプロトコルが提案され、実現され
ており、本発明は次のような任意のプロトコルと協働す
るように、容易に適応化され得る。マルチキャスト・プ
ロトコルは、クライアント要求をサーバ・レプリカにラ
ウンド式に転送する。1ラウンドの間、各サーバ・レプ
リカはクライアント要求の同一のセットを、マルチキャ
スト・プロトコルにより決定された関連実行順序で受信
する。マルチキャスト・プロトコルが要求を転送する順
序は、全てのサービス・レプリカの間で強制される。従
来一般的なように、マルチキャスト・ラウンドは空のこ
ともあり、その場合要求を転送しない。こうした空のラ
ウンドは、従来、故障検出をサポートし、実行の進行を
保証するために使用された。
命令カウンタにもとづく決定的且つプリエンプティブ・
スレッド・スケジューラが使用される。決定的スケジュ
ーラは実行ストリームを命令スライスに細分し、各スラ
イス内の命令数は予め決定される。全てのレプリカは既
知のアルゴリズム(例えばラウンドロビン)に従い、ス
レッドを切り替え、スケジューリングが各命令スライス
の終りに発生する。すなわち、あらゆるスレッドは、ス
レッド内の命令の数が尽きるか、スレッドが自発的に中
断するまで、実行する。従って、全てのスケジューリン
グ決定は至る所で同一であり、従来のスレッド・スケジ
ューラの時間ベースのスケジューリングによる非決定性
を排除する。
ドを、ここでは許可制御窓(ACW:admission contro
l window)と呼ぶレディ・キューに組み込む。この技法
に従い、スケジューラはm命令スライス毎にだけ、新た
なスレッドを許可する。ここで、mはACWの頻度を規
制する調整可能な実装パラメータである。全てのサービ
ス・レプリカの間で、スレッド実行は同一に維持され
る。スレッドは全てのレプリカにおいて、同一のACW
の間に許可され、コンテキスト切替えの間に、同一の数
の命令を実行するようにスケジュールされる。結果的
に、全てのレプリカにおいて、同一の出力を有する実行
が達成される。
ンドの到来に結び付けられる。すなわち、マルチキャス
ト・ラウンドとACWとの間には、1対1の対応が存在
する。マルチキャスト・ラウンド内で到来する新たな要
求は、スケジューラのレディ・キュー内に入れられる。
ラウンドが空の場合、スケジューラは既存のスレッドの
スケジューリングを継続する。
利点が、以下の説明から明らかとなろう。
な実施例に従い実現されるクライアント/複製サーバ・
アーキテクチャを示す詳細ブロック図が示される。図1
に示されるクライアント及びサーバは、実行時にコンピ
ュータ・システム(例えばワークステーション)内で解
釈及び実行される、高級プログラミング言語(例えばC
++)から生成され得るプロセスを表す。
・アーキテクチャでは、クライアント92がコンピュー
タ・ネットワークを介して、リモート・サービスに接続
される。リモート・サービスは、アプリケーションを1
つ以上の異なるサーバ・レプリカ84、86、88にお
いて実行し、プロセス、マシンまたは通信の故障による
サービスの使用不能確率を低減する。こうしたレプリカ
は同一であり、特定のサービス・プログラムを実装する
ために要求される同一のソフトウェアを実行する。クラ
イアント92はリモート・プロシージャ呼び出しを、レ
プリカ84、86及び88のいずれかにまたは全てに送
信する。特に図1は、クライアントがそのリモート・プ
ロシージャ呼び出し24をレプリカ84、86及び88
に転送する状況を示す。プログラム・サービスはRPC
を各サーバ・レプリカにおいて実行し、結果34が生成
され、クライアントに返送される。クライアントは結果
を全てのレプリカから受信するが、1つの結果だけがク
ライアントに達するように、これらをフィルタリングす
ることが好ましい(全ての結果は同一である)。
るマルチキャスト・プロトコルのオペレーションが示さ
れる。マルチキャスト・プロトコルは、クライアント9
2、94及び96により発行されるリモート・プロシー
ジャ呼び出し44、46及び48を順序付けし、それら
をマルチキャスト・ラウンド120にグループ化する。
マルチキャスト・ラウンド120は、確実に全てのサー
ビス・レプリカ84、86及び88に転送され、従っ
て、全てのレプリカは、クライアントのリモート・プロ
シージャ呼び出しが実行されるべき順序に同意する。こ
うしてマルチキャスト・ラウンドの間、各サーバ・レプ
リカはリモート・プロシージャ呼び出しの同一のセット
を受信し、指定順序で実行する。
ジューラ31の1実施例が示される。各サーバはこのス
ケジューラのコピーを実装する。スケジューラ31は、
従来一般的なように、スケジューリング機構をサポート
するために要求される従来のデータ構造を含む。これら
は実行(またはレディ)キュー30を含む。データ処理
システムの主メモリは、スケジューラ31を実装するコ
ードと一緒に、データ構造を含む。全てのデータ構造は
全てのレプリカに渡り、同様に初期化される。更に、既
存の技術と異なり、スケジューラ31は命令カウンタ3
9を含み、これはスレッドが各複製サーバのCPU上で
1命令を実行する度に、1カウント・ダウンされるレジ
スタである。命令カウンタは、各々が固定数の命令を含
む命令スライスを実現する役目をする。命令カウンタ3
9は命令スライスの開始前に、選択値pを与えられる。
命令カウンタ39が0に達するとき、スケジューラを活
動化する割込みが生成される。この命令カウンタ39は
ハードウェアにより、複製サーバ内のCPUレジスタの
形式で使用可能か、ソフトウェアによりエミュレートさ
れる。ここで述べられる本発明は、いずれの形態によっ
ても機能する。更に、スケジューラの設計は、タイマに
依存しない点で、従来技術とは異なる。
スレッド・スケジューリングを実現する。スケジューラ
31は命令スライスをCPU上で割当て、命令スライス
は、スレッドが予め指定された数pの命令を実行するス
ケジューリング単位として作用し、その後スレッドはプ
リエンプトする。従って、本開示の目的上、"命令スラ
イス"によるスケジューリングは、実行時間または実行
サイクル数にもとづくのではなしに、実行される命令の
数にもとづき、スレッドをスケジューリングすることを
意味する。命令スライスは、命令カウンタ39の支援に
より実現される。スライスの開始時に、命令カウンタ3
9はpにセットされる。スレッドが命令スライス内で実
行するとき、カウンタは各命令が実行される度に、1減
分される。命令カウンタが0に達すると、割込みがスレ
ッドをプリエンプトし、スケジューラ31が引き継ぐ。
スケジューラ31は必要なコンテキスト切替えを実行
し、ことによると別のスレッドの実行をもたらすか、既
存のスレッドの実行の継続を許可するように決定する。
いずれの場合にも、前述のように命令カウンタ39をp
にセットすることにより、新たな命令スライスが開始す
る。
ドA32の状態は、その開始時の初期状態、それが実行
した命令のストリーム及びそれが受信した入力により、
固有に決定される。スレッドが同一の初期状態を与えら
れ、所与の数の命令を実行し、この実行の間に同一の入
力を受信する場合、スレッドの状態は、異なる実行にお
いてその数の命令を実行後、常に同一である。従来技術
では、(例えばタイマの満了の結果)スレッドがあるラ
ンダムな位置においてプリエンプトされるとき、非決定
性が発生した。プリエンプション(強制排除)は、別の
スレッドB37がスレッドA32が後に読むであろう共
用変数35を変更することを可能にし得る。プリエンプ
ションはスレッドA32及びB37の実行を順序付ける
ので、スレッドA32が共用変数35を読む前後に、ス
レッドB37がその変更に着手するか否かに応じて、ス
レッドA32は2つの異なる実行において、異なる値を
読み得る。これはプリエンプション位置により固有に決
定されるが、プリエンプション位置は、コンピュータの
タイマの不正確性及びCPUの実行からのタイマの独立
性により、サーバ・レプリカに渡って再現可能でない。
イスの満了時に発生する。従って、プリエンプションは
任意のサーバ・レプリカにおけるプログラムの任意の実
行の間に、同一位置において発生する。プリエンプショ
ンは、プログラムの結果に影響する非決定性の原因であ
るので、それらを任意のサーバ・レプリカにおける任意
のプログラム実行内で同一位置において発生させること
は、もしプログラムが同一の入力を受信すれば、プログ
ラムに同一の結果を生成させることになる。前述の例に
ついて考えてみよう。スレッドB37がその第2の命令
スライスの間に変数を変更し、スレッドA32がその第
3の命令スライスの間に変数を読出し、ラウンド・ロビ
ン・スケジューリングを想定する場合、スレッドA32
は常に、スレッドB37が共用変数35を変更した後
に、それを読出すことになる。従って、命令スライスを
制御するために、同一の値pが使用される場合、結果は
全てのサーバ・レプリカに渡り決定的である。
スが満了する前に、CPUを放棄すると決定するとき、
スレッドをプリエンプトする。これは例えば、一般に知
られるように、スレッドが同期変数に従い中断するか、
ある入力を待機する場合に発生する。これらの事象は、
単一プロセッサ上では決定的である。なぜなら、スレッ
ドは各実行内での同一数の命令後、常に中断するか、入
力を待機するため、スケジューリングの決定的性質が保
存されるからである。
ケジューリング機構は、全てのサーバ・レプリカの同一
の実行を保証するために使用される。この属性を実現す
るために、マルチキャスト・プロトコルにより定義され
る順序に従い、スケジューリング機構がスレッドを順序
付けることが必要である。こうした一貫性が実現される
場合、スレッドは全て、マルチキャスト・プロトコルに
より定義された同一の順序に従い、スケジュールされる
ことになる。
ューリング機構は、許可制御窓(Admission Control Wi
ndow、ACW)40に関連付けられる。これは新たなク
ライアント要求が到来し、スケジューラのレディ・キュ
ー内に配置されるとき、新たなスレッドの生成を許可す
る方法を表す。ACW40はその開閉を制御する所定値
mを有する。値mは、命令スライスが満了する度に、1
減分する。m個の命令スライスが満了後、サーバは新た
なマルチキャスト・ラウンドを待機する。新たなラウン
ドが使用可能なとき、そのラウンド内で使用可能な各要
求に対してスレッドが生成され、新たなスレッドがレデ
ィ・キュー30内に入れられる。その時点から、決定的
スケジューラはサーバ・レプリカの実行が同一であるこ
とを保証する。
なる本発明の2つの特徴が理解できよう。
コルの役割は、クライアント要求の実行に関する特定の
セマンティクス順序を強制することではない。代わり
に、マルチキャスト・プロトコルは、要求をサーバ内に
受け入れるために、同一の初期順序を定義する役目をす
る。従来技術では、マルチキャスト・プロトコルにより
指定される順序が拘束的であり、同時実行の結果が、マ
ルチキャスト順序に従う要求の直列化に一致しなければ
ならなかった。本発明では、たとえ特定の順序に一致し
なくても、全てのサーバ・レプリカの間で同一の順序を
要求する。当業者であれば、直列化が必要でなく(Cher
iton及びSkeenによる"Proceedings of theACM Symposiu
m on Operating Systems Principles"、1993参照)、本
発明が同一の考え方を採用することが理解できよう。
を、マルチキャスト・プロトコルにより定義される順序
に関連付ける。従来技術では、スケジューリング及び要
求の引渡しは常に独立であった。
タイマの使用を回避する一方で、システムが外部事象及
びクライアント要求に対して、どの程度応答的であるか
を制御する。mの選択はまた、マルチキャスト・ラウン
ドの発生に関連付けられなければならない。特に、マル
チキャスト・ラウンドとACWとの間には、1対1の対
応が存在する。当業者であれば、mの値をマルチキャス
ト・ラウンドの発生頻度に一致させるように調整するこ
とは、特定の実施例ではかなり直接的であることが理解
できよう。
調整可能である。有効なクライアント要求が存在しない
場合でも、要求を含まないマルチキャスト・ラウンドが
生成される。これらの空のラウンドは、全てのレプリカ
が同一のACWを通過することを保証することにより、
レプリカを同期させるために役立つ。これらのラウンド
はまた、従来技術で見られるように、故障検出のために
も使用され得る。
ス(例えばファイルの読出し)が完了するのを待機する
ことを中断できる。こうした中断が発生するとき、スレ
ッドはその命令スライスを放棄し、もはやスケジューラ
のレディ・キュー30の一部ではない。中断の理由がも
はや有効でないとき(例えばファイルの読出しが完了し
たとき)、一貫性を保証するために、レディ・キューへ
のスレッドの再入力が、サーバ・レプリカの間で調整さ
れなければならない。これは次のように達成される。ス
レッドがあるレプリカにおいて実行を再開する準備が整
うと、そのレプリカはこの事実を次のマルチキャスト・
ラウンドにおいて公示する(これはクライアント要求に
加えて出現する)。将来のラウンドにおいて、全てのレ
プリカが、その特定のスレッドをどこででも実行できる
準備完了状態となる。そのラウンドにおいて、スレッド
が再度実行キューに再挿入される。
は、更に図4を参照することにより理解される。この実
施例の論理フローに従い、スレッド・スケジューラの処
理が示される。一旦プロセスが開始すると、スケジュー
ラ31及びマルチキャスト・プロトコル・スタックがブ
ロック50で初期化され、カウンタ変数nが0にセット
される。n変数は、サーバにおいて現在実行中の活動ク
ライアント要求の数をカウントする。スケジューラ31
は次にブロック52で、新たなマルチキャスト・ラウン
ドが使用可能か否かを判断する。使用可能な場合、スケ
ジューラ31はブロック54で新たな要求を許可する。
新たな要求が使用可能な場合、n変数が1増分され、要
求を処理するスレッドが生成され、スレッドがスケジュ
ーラ31に追加され、その後ブロック52に戻る。この
プロセスは、使用可能な追加の新たなマルチキャスト要
求が無くなるまで継続する。スケジューラは次にブロッ
ク58で、実行される要求が存在することを確認する。
キュー内にスレッドが存在する場合、スケジューラはブ
ロック62で、スライス内の第1のスレッドから開始
し、各スレッドを実行する。この時、ブロック60で、
ACWカウンタ変数jが0にセットされる。スレッドは
ブロック62で、p個の命令(または1スライス)を実
行するように、またはスレッドが中断するか、クライア
ントに応答するまで、実行するように指示される。各ス
ライスが実行されると、ブロック64でACWカウンタ
変数が1増分される。このカウンタ変数が所定数mに達
したか否かがチェックされ、新たなマルチキャスト・ラ
ウンドがチェックされるべき時期を決定する。スレッド
・スライスは、この数に達するまで継続する。ブロック
66で示されるように、ACWカウンタ変数がmよりも
大きくなると、ACWが開き、新たなマルチキャスト・
ラウンドがブロック52で受け入れられる。スケジュー
リング・プロセス全体は、無期限に継続する。
スト転送の前述の組み合わせは、サーバ・レプリカ8
4、86及び88がクライアント要求を同様に実行する
ことを保証する。例えば、命令のストリームとして、マ
ルチスレッド・プログラムの実行について考えてみよ
う。新たな要求がm命令スライス毎に、命令のストリー
ムに入れられる。全てのレプリカは、マルチキャストを
命令ストリーム内の同一ポイントにおいて受信し、マル
チキャスト・プロトコルはどこにおいても、順序付けら
れた確実な転送を保証するので、新たな要求は全てのレ
プリカにおいて、命令ストリーム内の同一のポイントに
おいて認められる。従って、対応するスレッドが、命令
ストリーム内の同一の実行ポイントにおいて開始し、任
意のレプリカのスレッド・スケジューラが、スレッドが
同様にスケジュールされることを保証する。決定的スレ
ッド・スケジューリングの使用により、スレッド実行の
インタリーブも、全てのレプリカにおいて同一である。
呼び出しシステムの状況において述べられたが、当業者
であれば、本発明の機構が任意の形態のプログラム製品
として、任意のタイプの情報処理システムに分散され、
本発明が実際に分散を実施するために使用される特定タ
イプの信号担持媒体に関係なく、同様に適用されること
が理解できよう。信号担持媒体の例には、フロッピー・
ディスクやCD−ROMなどの記録可能型媒体、及びア
ナログ通信リンクまたはデジタル通信リンクなどの伝送
型媒体が含まれる。
自動フェール・オーバを保証するための活動的複製をサ
ポートしない。問題は困難である。なぜなら、CORB
Aオブジェクトはマルチスレッド型であり、複製時に同
一の実行を生成できないからである。ここで述べた本発
明は、この問題に対する解決策を提供するもので、CO
RBA準拠のシステムの状況において、活動的複製の使
用を可能にし、従来システムにより提供されるのと同一
の高可用性をもたらす。本発明は特定の実施例に関連し
て述べられたが、この説明は限定的な意味で解釈される
べきではない。当業者であれば、本明細書を参照するこ
とにより、開示された実施例の様々な変更、並びに本発
明の代替実施例が明らかとなろう。例えば、図4ではA
CWが別々のカウンタを有するように示されるが、スケ
ジューラとカウンタを共用することが可能であり、それ
によりACWは、全てのスケジュール済みスレッドが1
度実行された後に、開くことになる。従って、こうした
変更も、本発明の趣旨及び範囲から逸れることなく、実
施され得るものである。
の事項を開示する。
ムにおける複製サポートのための方法であって、リモー
ト・プロシージャ呼び出しを通じて、複製サーバと通信
する複数のクライアントと、順序付けマルチキャスト・
プロトコルを介して、前記クライアントの前記リモート
・プロシージャ呼び出しを順序付けし、グループ化する
ステップと、前記リモート・プロシージャ呼び出しを前
記サーバ・レプリカに確実に、同一の順序で転送するス
テップと、前記各サーバ・レプリカにおいて、前記クラ
イアントの要求を、前記マルチキャスト・プロトコルに
より指定された順序に従い実行するスレッドを生成する
ステップと、全ての前記サーバ・レプリカにおいて、前
記クライアント要求に関連して命令スライスを割当てる
ことにより、前記スレッドを前記順序に従い、決定的且
つプリエンプティブにスケジュールするステップとを含
む、方法。 (2)前記クライアント要求をマルチキャスト・ラウン
ド内にグループ化し、順序付けるステップと、前記マル
チキャスト・ラウンド内の前記クライアント要求が実行
されるべき順序を指定するステップと、前記マルチキャ
スト・ラウンドを前記サーバ・レプリカに確実に前記順
序で転送するステップとを含む、前記(1)記載の方
法。 (3)前記命令スライス内に含まれる命令の数pを指定
するステップと、各命令の実行に対して1減分される命
令カウンタを使用するステップと、前記命令カウンタを
前記各命令スライスの初めにpにセットするステップ
と、前記各命令スライスの初めに、前記スレッドをスケ
ジュールするステップと、前記カウンタがゼロ値に達す
るとき、割込みを生成するステップと、前記割込みを使
用し、新たな命令スライスの初めに、新たなスレッドの
スケジューリングを可能にするステップとを含む、前記
(1)記載の方法。 (4)前記マルチキャスト・プトロコルにより指定され
る順序に従い、前記スレッドをスケジューリング・キュ
ー内に配置するステップを含む、前記(3)記載の方
法。 (5)所与の前記スレッドがp個の命令を実行するか、
自発的に中断するまで、前記命令スライスを実行する、
前記(3)記載の方法。 (6)中断する所与のスレッドが、全てのレプリカが前
記マルチキャスト・ラウンドにおいて、前記スレッドが
実行キューに入力されるべきことに同意するまで、前記
実行キューへの再入力を許可されない、前記(3)記載
の方法。 (7)前記サーバ・レプリカが前記マルチキャスト・プ
ロトコル・ラウンドを介して、中断されたスレッドの準
備に関する情報を伝播する、前記(3)記載の方法。 (8)前記マルチキャスト・ラウンドの間に転送される
新たな要求の許可が、特定の数の前記命令スライスの実
行後にチェックされる、前記(4)記載の方法。 (9)前記マルチキャスト・ラウンドが、2つ毎の前記
マルチキャスト・ラウンド転送の間の前記命令スライス
の数を決定する数値定数の使用を通じて、新たなクライ
アント要求のスレッド・スケジューラの許可と同期され
る、前記(4)記載の方法。 (10)前記数値定数に等しい数の前記命令スライスが
実行された後、新たなクライアント要求をサーバに許可
するステップと、前記クライアント要求を前記マルチキ
ャスト・プロトコルにより指定された順序で許可するス
テップと、前記マルチキャスト・ラウンドの転送の間を
除き、新たなクライアント要求の許可を禁止するステッ
プと、2つ毎の連続マルチキャスト・ラウンド間の、あ
る数値定数の前記命令スライスを追跡するステップと、
任意の2つの連続マルチキャスト間の前記命令スライス
が実行される度に、前記サーバの実行を停止するステッ
プと、空のマルチキャスト・ラウンドを生成し、進行、
故障検出及びレプリカ同期を保証するステップとを含
む、前記(8)記載の方法。 (11)初期スレッド・スケジューリングが、前記マル
チキャスト・プロトコルにより指定される順序により決
定される、前記(1)記載の方法。 (12)リモート・プロシージャ呼び出しを通じて、複
数のクライアントが複製サーバと通信する手段と、順序
付けマルチキャスト・プロトコルを介して、前記クライ
アントの前記リモート・プロシージャ呼び出しを順序付
けし、グループ化する手段と、前記リモート・プロシー
ジャ呼び出しを前記サーバ・レプリカに確実に、同一の
順序で転送する手段と、前記各サーバ・レプリカにおい
て、前記クライアントの要求を、前記マルチキャスト・
プロトコルにより指定された順序に従い実行するスレッ
ドを生成する手段と、全ての前記サーバ・レプリカにお
いて、前記クライアント要求に関連して命令スライスを
割当てることにより、前記スレッドを前記順序に従い、
決定的且つプリエンプティブにスケジュールする手段と
を含む、情報処理システム。 (13)前記クライアント要求をマルチキャスト・ラウ
ンド内にグループ化し、順序付ける手段と、前記マルチ
キャスト・ラウンド内の前記クライアント要求が実行さ
れるべき順序を指定する手段と、前記マルチキャスト・
ラウンドを前記サーバ・レプリカに確実に前記順序で転
送する手段とを含む、前記(12)記載の情報処理シス
テム。 (14)前記命令スライス内に含まれる命令の数pを指
定する手段と、各命令の実行に対して1減分される命令
カウンタを使用する手段と、前記命令カウンタを前記各
命令スライスの初めにpにセットする手段と、前記各命
令スライスの初めに、前記スレッドをスケジュールする
手段と、前記カウンタがゼロ値に達するとき、割込みを
生成する手段と、前記割込みを使用し、新たな命令スラ
イスの初めに、新たなスレッドのスケジューリングを可
能にする手段とを含む、前記(13)記載の情報処理シ
ステム。 (15)前記マルチキャスト・プトロコルにより指定さ
れる順序に従い、前記スレッドをスケジューリング・キ
ュー内に配置する手段を含む、前記(14)記載の情報
処理システム。 (16)所与の前記スレッドがp個の命令を実行する
か、自発的に中断するまで、前記命令スライスを実行す
る、前記(15)記載の情報処理システム。 (17)中断する所与のスレッドが、全てのレプリカが
前記マルチキャスト・ラウンドにおいて、前記スレッド
が実行キューに入力されるべきことに同意するまで、前
記実行キューへの再入力を許可されない、前記(16)
記載の情報処理システム。 (18)前記サーバ・レプリカが前記マルチキャスト・
プロトコル・ラウンドを介して、中断されたスレッドの
準備に関する情報を伝播する、前記(17)記載の情報
処理システム。 (19)前記マルチキャスト・ラウンドの間に転送され
る新たな要求の許可が、特定の数の前記命令スライスの
実行後にチェックされる、前記(18)記載の情報処理
システム。 (20)リモート・プロシージャ呼び出しを通じて、複
数のクライアントが複製サーバと通信する命令手段と、
順序付けマルチキャスト・プロトコルを介して、前記ク
ライアントの前記リモート・プロシージャ呼び出しを順
序付けし、グループ化する命令手段と、前記リモート・
プロシージャ呼び出しを前記サーバ・レプリカに確実
に、同一の順序で転送する命令手段と、前記各サーバ・
レプリカにおいて、前記クライアントの要求を、前記マ
ルチキャスト・プロトコルにより指定された順序に従い
実行するスレッドを生成する命令手段と、全ての前記サ
ーバ・レプリカにおいて、前記クライアント要求に関連
して命令スライスを割当てることにより、前記スレッド
を前記順序に従い、決定的且つプリエンプティブにスケ
ジュールする命令手段とを含む、コンピュータ・プログ
ラム。
製サーバ間の対話を表すブロック図である。
リモート・プロシージャ呼び出しを順序付けるための、
マルチキャスト・プロトコルのオペレーションを示すブ
ロック図である。
スケジューラの1実施例を示すブロック図である。
てスレッドをスケジュールすることに関連する、順序付
けマルチキャストの方法の論理フローを示すフロー図で
ある。
出し 31 スケジューラ 39 命令カウンタ 40 許可制御窓(ACW) 84、86、88 サーバ・レプリカ 92、94、96 クライアント 120 マルチキャスト・ラウンド
Claims (20)
- 【請求項1】リモート・メソッド呼び出しシステムにお
ける複製サポートのための方法であって、 リモート・プロシージャ呼び出しを通じて、複製サーバ
と通信する複数のクライアントと、 順序付けマルチキャスト・プロトコルを介して、前記ク
ライアントの前記リモート・プロシージャ呼び出しを順
序付けし、グループ化するステップと、 前記リモート・プロシージャ呼び出しを前記サーバ・レ
プリカに確実に、同一の順序で転送するステップと、 前記各サーバ・レプリカにおいて、前記クライアントの
要求を、前記マルチキャスト・プロトコルにより指定さ
れた順序に従い実行するスレッドを生成するステップ
と、 全ての前記サーバ・レプリカにおいて、前記クライアン
ト要求に関連して命令スライスを割当てることにより、
前記スレッドを前記順序に従い、決定的且つプリエンプ
ティブにスケジュールするステップとを含む、方法。 - 【請求項2】前記クライアント要求をマルチキャスト・
ラウンド内にグループ化し、順序付けるステップと、 前記マルチキャスト・ラウンド内の前記クライアント要
求が実行されるべき順序を指定するステップと、 前記マルチキャスト・ラウンドを前記サーバ・レプリカ
に確実に前記順序で転送するステップとを含む、請求項
1記載の方法。 - 【請求項3】前記命令スライス内に含まれる命令の数p
を指定するステップと、 各命令の実行に対して1減分される命令カウンタを使用
するステップと、 前記命令カウンタを前記各命令スライスの初めにpにセ
ットするステップと、 前記各命令スライスの初めに、前記スレッドをスケジュ
ールするステップと、 前記カウンタがゼロ値に達するとき、割込みを生成する
ステップと、 前記割込みを使用し、新たな命令スライスの初めに、新
たなスレッドのスケジューリングを可能にするステップ
とを含む、請求項1記載の方法。 - 【請求項4】前記マルチキャスト・プトロコルにより指
定される順序に従い、前記スレッドをスケジューリング
・キュー内に配置するステップを含む、請求項3記載の
方法。 - 【請求項5】所与の前記スレッドがp個の命令を実行す
るか、自発的に中断するまで、前記命令スライスを実行
する、請求項3記載の方法。 - 【請求項6】中断する所与のスレッドが、全てのレプリ
カが前記マルチキャスト・ラウンドにおいて、前記スレ
ッドが実行キューに入力されるべきことに同意するま
で、前記実行キューへの再入力を許可されない、請求項
3記載の方法。 - 【請求項7】前記サーバ・レプリカが前記マルチキャス
ト・プロトコル・ラウンドを介して、中断されたスレッ
ドの準備に関する情報を伝播する、請求項3記載の方
法。 - 【請求項8】前記マルチキャスト・ラウンドの間に転送
される新たな要求の許可が、特定の数の前記命令スライ
スの実行後にチェックされる、請求項4記載の方法。 - 【請求項9】前記マルチキャスト・ラウンドが、2つ毎
の前記マルチキャスト・ラウンド転送の間の前記命令ス
ライスの数を決定する数値定数の使用を通じて、新たな
クライアント要求のスレッド・スケジューラの許可と同
期される、請求項4記載の方法。 - 【請求項10】前記数値定数に等しい数の前記命令スラ
イスが実行された後、新たなクライアント要求をサーバ
に許可するステップと、 前記クライアント要求を前記マルチキャスト・プロトコ
ルにより指定された順序で許可するステップと、 前記マルチキャスト・ラウンドの転送の間を除き、新た
なクライアント要求の許可を禁止するステップと、 2つ毎の連続マルチキャスト・ラウンド間の、ある数値
定数の前記命令スライスを追跡するステップと、 任意の2つの連続マルチキャスト間の前記命令スライス
が実行される度に、前記サーバの実行を停止するステッ
プと、 空のマルチキャスト・ラウンドを生成し、進行、故障検
出及びレプリカ同期を保証するステップとを含む、請求
項8記載の方法。 - 【請求項11】初期スレッド・スケジューリングが、前
記マルチキャスト・プロトコルにより指定される順序に
より決定される、請求項1記載の方法。 - 【請求項12】リモート・プロシージャ呼び出しを通じ
て、複数のクライアントが複製サーバと通信する手段
と、 順序付けマルチキャスト・プロトコルを介して、前記ク
ライアントの前記リモート・プロシージャ呼び出しを順
序付けし、グループ化する手段と、 前記リモート・プロシージャ呼び出しを前記サーバ・レ
プリカに確実に、同一の順序で転送する手段と、 前記各サーバ・レプリカにおいて、前記クライアントの
要求を、前記マルチキャスト・プロトコルにより指定さ
れた順序に従い実行するスレッドを生成する手段と、 全ての前記サーバ・レプリカにおいて、前記クライアン
ト要求に関連して命令スライスを割当てることにより、
前記スレッドを前記順序に従い、決定的且つプリエンプ
ティブにスケジュールする手段とを含む、情報処理シス
テム。 - 【請求項13】前記クライアント要求をマルチキャスト
・ラウンド内にグループ化し、順序付ける手段と、 前記マルチキャスト・ラウンド内の前記クライアント要
求が実行されるべき順序を指定する手段と、 前記マルチキャスト・ラウンドを前記サーバ・レプリカ
に確実に前記順序で転送する手段とを含む、請求項12
記載の情報処理システム。 - 【請求項14】前記命令スライス内に含まれる命令の数
pを指定する手段と、 各命令の実行に対して1減分される命令カウンタを使用
する手段と、 前記命令カウンタを前記各命令スライスの初めにpにセ
ットする手段と、 前記各命令スライスの初めに、前記スレッドをスケジュ
ールする手段と、 前記カウンタがゼロ値に達するとき、割込みを生成する
手段と、 前記割込みを使用し、新たな命令スライスの初めに、新
たなスレッドのスケジューリングを可能にする手段とを
含む、請求項13記載の情報処理システム。 - 【請求項15】前記マルチキャスト・プトロコルにより
指定される順序に従い、前記スレッドをスケジューリン
グ・キュー内に配置する手段を含む、請求項14記載の
情報処理システム。 - 【請求項16】所与の前記スレッドがp個の命令を実行
するか、自発的に中断するまで、前記命令スライスを実
行する、請求項15記載の情報処理システム。 - 【請求項17】中断する所与のスレッドが、全てのレプ
リカが前記マルチキャスト・ラウンドにおいて、前記ス
レッドが実行キューに入力されるべきことに同意するま
で、前記実行キューへの再入力を許可されない、請求項
16記載の情報処理システム。 - 【請求項18】前記サーバ・レプリカが前記マルチキャ
スト・プロトコル・ラウンドを介して、中断されたスレ
ッドの準備に関する情報を伝播する、請求項17記載の
情報処理システム。 - 【請求項19】前記マルチキャスト・ラウンドの間に転
送される新たな要求の許可が、特定の数の前記命令スラ
イスの実行後にチェックされる、請求項18記載の情報
処理システム。 - 【請求項20】リモート・プロシージャ呼び出しを通じ
て、複数のクライアントが複製サーバと通信する命令手
段と、 順序付けマルチキャスト・プロトコルを介して、前記ク
ライアントの前記リモート・プロシージャ呼び出しを順
序付けし、グループ化する命令手段と、 前記リモート・プロシージャ呼び出しを前記サーバ・レ
プリカに確実に、同一の順序で転送する命令手段と、 前記各サーバ・レプリカにおいて、前記クライアントの
要求を、前記マルチキャスト・プロトコルにより指定さ
れた順序に従い実行するスレッドを生成する命令手段
と、 全ての前記サーバ・レプリカにおいて、前記クライアン
ト要求に関連して命令スライスを割当てることにより、
前記スレッドを前記順序に従い、決定的且つプリエンプ
ティブにスケジュールする命令手段とを含む、コンピュ
ータ・プログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/239,257 US6421701B1 (en) | 1999-01-29 | 1999-01-29 | Method and system for replication support in a remote method invocation system |
| US09/239257 | 1999-01-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000222368A true JP2000222368A (ja) | 2000-08-11 |
| JP4124547B2 JP4124547B2 (ja) | 2008-07-23 |
Family
ID=22901346
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000015263A Expired - Fee Related JP4124547B2 (ja) | 1999-01-29 | 2000-01-25 | リモート・メソッド呼び出しシステムにおける複製サポートのための方法及びシステム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6421701B1 (ja) |
| JP (1) | JP4124547B2 (ja) |
| KR (1) | KR100330952B1 (ja) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6625635B1 (en) * | 1998-11-02 | 2003-09-23 | International Business Machines Corporation | Deterministic and preemptive thread scheduling and its use in debugging multithreaded applications |
| US6594702B1 (en) * | 1999-02-25 | 2003-07-15 | Oracle International Corporation | Managing the size and accessibility of a name service |
| JP3831154B2 (ja) * | 1999-08-13 | 2006-10-11 | 株式会社東芝 | プログラム多重化拡大方法 |
| US7305475B2 (en) * | 1999-10-12 | 2007-12-04 | Webmd Health | System and method for enabling a client application to operate offline from a server |
| US7308686B1 (en) * | 1999-12-22 | 2007-12-11 | Ubicom Inc. | Software input/output using hard real time threads |
| EP1247195A4 (en) * | 1999-12-22 | 2005-01-05 | Ubicom Inc | SYSTEM AND METHOD FOR MULTITHREADING WORKING ON COMMAND LEVEL IN AN EMBEDDED PROCESSOR WITH ZERO-TIME CONTEXT SWITCHING |
| US6708162B1 (en) * | 2000-05-08 | 2004-03-16 | Microsoft Corporation | Method and system for unifying search strategy and sharing search output data across multiple program modules |
| AU2001257567A1 (en) * | 2000-05-08 | 2001-11-20 | Transilica, Inc. | Distributed applications in a portable thread environment |
| US6820263B1 (en) * | 2000-12-29 | 2004-11-16 | Nortel Networks Limited | Methods and system for time management in a shared memory parallel processor computing environment |
| GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
| US20030061333A1 (en) * | 2001-05-04 | 2003-03-27 | Stephen Dean | System and method for universal networked device management |
| KR100880334B1 (ko) * | 2002-06-27 | 2009-01-28 | 주식회사 케이티 | Adsl 모뎀 장치 및 이의 초기화 방법 |
| US7822950B1 (en) | 2003-01-22 | 2010-10-26 | Ubicom, Inc. | Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls |
| KR20040076540A (ko) * | 2003-02-26 | 2004-09-01 | 김익수 | 멀티캐스트 전송을 위한 스케줄러의 구현 |
| US20050213576A1 (en) * | 2004-03-29 | 2005-09-29 | Stephens Adrian P | Multicasting in wireless networks |
| US20060075404A1 (en) * | 2004-10-06 | 2006-04-06 | Daniela Rosu | Method and system for scheduling user-level I/O threads |
| US20070136403A1 (en) * | 2005-12-12 | 2007-06-14 | Atsushi Kasuya | System and method for thread creation and memory management in an object-oriented programming environment |
| US9092278B2 (en) * | 2006-07-07 | 2015-07-28 | International Business Machines Corporation | Determining the processing order of a plurality of events |
| US8856499B1 (en) * | 2007-08-15 | 2014-10-07 | Nvidia Corporation | Reducing instruction execution passes of data groups through a data operation unit |
| US20090158284A1 (en) * | 2007-12-18 | 2009-06-18 | Inventec Corporation | System and method of processing sender requests for remote replication |
| US8930526B2 (en) * | 2009-10-30 | 2015-01-06 | International Business Machines Corporation | Processing network events |
| KR101357975B1 (ko) * | 2011-10-17 | 2014-02-03 | 엔에이치엔엔터테인먼트 주식회사 | 코루틴을 이용하여 원격 프로시저 호출 서비스를 제공하는 방법 및 장치 |
| US8892514B2 (en) * | 2011-11-15 | 2014-11-18 | Sybase, Inc. | Multi-path replication in databases |
| US9614909B2 (en) * | 2013-11-28 | 2017-04-04 | Infinidat Ltd. | High speed asynchronous remote mirroring |
| US11196843B2 (en) * | 2018-09-04 | 2021-12-07 | International Business Machines Corporation | Application data access priority for remote storage systems |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08161188A (ja) * | 1994-12-01 | 1996-06-21 | Shinnittetsu Joho Tsushin Syst Kk | サーバの多重化方式 |
| JPH1027110A (ja) * | 1996-07-09 | 1998-01-27 | Toshiba Corp | 複数台のコンピュータによるコンピュータシステム |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4534024A (en) * | 1982-12-02 | 1985-08-06 | At&T Bell Laboratories | System and method for controlling a multiple access data communications system including both data packets and voice packets being communicated over a cable television system |
| EP0338041B1 (en) * | 1987-09-08 | 1994-06-01 | Digital Equipment Corporation | Naming service for networked digital data processing system |
| US5603026A (en) * | 1994-12-07 | 1997-02-11 | Xerox Corporation | Application-specific conflict resolution for weakly consistent replicated databases |
| US5671407A (en) * | 1994-12-07 | 1997-09-23 | Xerox Corporation | Application-specific conflict detection for weakly consistent replicated databases |
| US5513314A (en) * | 1995-01-27 | 1996-04-30 | Auspex Systems, Inc. | Fault tolerant NFS server system and mirroring protocol |
| US5713017A (en) * | 1995-06-07 | 1998-01-27 | International Business Machines Corporation | Dual counter consistency control for fault tolerant network file servers |
| US5699501A (en) * | 1996-04-30 | 1997-12-16 | International Business Machines Corporation | System for group leader recovery 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 |
| US5852724A (en) * | 1996-06-18 | 1998-12-22 | Veritas Software Corp. | System and method for "N" primary servers to fail over to "1" secondary server |
-
1999
- 1999-01-29 US US09/239,257 patent/US6421701B1/en not_active Expired - Fee Related
-
2000
- 2000-01-25 KR KR1020000003466A patent/KR100330952B1/ko not_active Expired - Fee Related
- 2000-01-25 JP JP2000015263A patent/JP4124547B2/ja not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08161188A (ja) * | 1994-12-01 | 1996-06-21 | Shinnittetsu Joho Tsushin Syst Kk | サーバの多重化方式 |
| JPH1027110A (ja) * | 1996-07-09 | 1998-01-27 | Toshiba Corp | 複数台のコンピュータによるコンピュータシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP4124547B2 (ja) | 2008-07-23 |
| KR20000062500A (ko) | 2000-10-25 |
| US6421701B1 (en) | 2002-07-16 |
| KR100330952B1 (ko) | 2002-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4124547B2 (ja) | リモート・メソッド呼び出しシステムにおける複製サポートのための方法及びシステム | |
| CA2091993C (en) | Fault tolerant computer system | |
| EP1495571B1 (en) | Transparent consistent semi-active and passive replication of multithreaded application programs | |
| US5802265A (en) | Transparent fault tolerant computer system | |
| Borg et al. | A message system supporting fault tolerance | |
| Pyarali et al. | Evaluating and optimizing thread pool strategies for real-time CORBA | |
| Sha et al. | A systematic approach to designing distributed real-time systems | |
| Xu et al. | On satisfying timing constraints in hard-real-time systems | |
| JP3293839B2 (ja) | 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム | |
| JPH087691B2 (ja) | コンピュータ・システム及びアプリケーションプログラム実行方法 | |
| CA2331860A1 (en) | Distributed computing environment using real-time scheduling logic and time deterministic architecture | |
| JPH0831043B2 (ja) | コミット手順の非同期的再同期化実行装置および方法 | |
| Andreoli et al. | Priority-driven differentiated performance for NoSQL database-as-a-service | |
| Franke et al. | Gang scheduling for highly efficient, distributed multiprocessor systems | |
| JP2008529113A (ja) | アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム | |
| Powell | Extra Performance Architecture (XPA) | |
| Reiser et al. | Consistent replication of multithreaded distributed objects | |
| Holler | Chapter 13. Multiple copy update | |
| Wang et al. | Solving the group priority inversion problem in a timed asynchronous system | |
| JP6446315B2 (ja) | 多重化計算機の記憶領域一致化装置 | |
| JP7157709B2 (ja) | 計算機システム及びプログラム実行方法 | |
| Lo et al. | Architectural considerations in the design of real-time kernels | |
| van der Stok et al. | Shared data concepts for DEDOS | |
| McLaughlin | Scheduling fault-tolerant, parallel computations in a distributed environment | |
| JPH11306037A (ja) | 並列演算処理装置およびその方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040720 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040914 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20041008 |
|
| A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050408 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070710 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071228 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080331 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080501 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080502 |
|
| 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: 20110516 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140516 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |