JP4818349B2 - Distributed system and multiplexing control method for the same - Google Patents
Distributed system and multiplexing control method for the same Download PDFInfo
- Publication number
- JP4818349B2 JP4818349B2 JP2008328750A JP2008328750A JP4818349B2 JP 4818349 B2 JP4818349 B2 JP 4818349B2 JP 2008328750 A JP2008328750 A JP 2008328750A JP 2008328750 A JP2008328750 A JP 2008328750A JP 4818349 B2 JP4818349 B2 JP 4818349B2
- Authority
- JP
- Japan
- Prior art keywords
- computers
- distributed system
- configuration
- computer
- input
- 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.)
- Active
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
本発明は、ネットワークで接続されたm台(mは4より大きい整数)のコンピュータのうちn台(nは4<n≦mを満たす整数)のコンピュータを同期的に動作させ、(n−f)台(fは3f<nを満たす最大の整数)以上での多重化を保証する分散システムに係り、特に当該n台のコンピュータのいずれかで障害が発生した場合に好適な分散システムおよび同システムの多重化制御方法に関する。 The present invention synchronously operates n computers (n is an integer satisfying 4 <n ≦ m) among m computers (m is an integer larger than 4) connected via a network, and (n−f ) The present invention relates to a distributed system that guarantees multiplexing at or above (f is the maximum integer satisfying 3f <n), and particularly suitable for a case where a failure occurs in any of the n computers. The present invention relates to a multiplexing control method.
近年、コンピュータ技術やネットワーク技術の向上は目覚ましく、これに伴って、業務のコンピュータ化が広く行われている。また、その業務の内容によっては、故障などによる中断が許されないものも多く、最近では、複数のコンピュータをネットワークで結合した分散システムを構築することが一般的になりつつある。そして、この分散システムの運用手法の1つに、整列マルチキャストを用いた決定性のプログラムの実行の多重化が存在する。 In recent years, computer technology and network technology have been remarkably improved, and along with this, computerization of business has been widely performed. In addition, depending on the contents of the business, there are many things that cannot be interrupted due to a failure or the like, and recently, it is becoming common to construct a distributed system in which a plurality of computers are connected via a network. One of the distributed system operation techniques is multiplexing of execution of a deterministic program using ordered multicast.
整列マルチキャストは、分散システムへの入力をすべてのコンピュータに配送する仕組みであり、データの到着順序がすべてのコンピュータで同じであることを保証するものである。 The ordered multicast is a mechanism for delivering the input to the distributed system to all computers, and guarantees that the arrival order of data is the same on all computers.
分散システムにおける多重化の手法として、例えば特許文献1は、n台(nは4以上の整数)のコンピュータ(つまり4台以上のコンピュータ)がネットワークで接続された分散システムにおいて、スプリットブレインを原理的に発生させず、タイムアウトによる故障発生時の処理の中断も発生させることがない手法を開示している。
As a multiplexing method in a distributed system, for example,
この特許文献1が開示する従来の多重化手法(先行技術)においては、多重化を構成するコンピュータがn台(nは4以上の整数)の分散システムを例にとると、当該n台のコンピュータを同期的に動作させ、当該n台のコンピュータのうちの(n−f)台(fは、最大許容障害数と呼ばれる、3f<nを満たす最大の整数)以上での多重化を保証するために、当該n台のコンピュータの各々は、入力候補収集手段と入力候補選定制御手段(第1の入力候補選定制御手段)とを具備する。入力候補収集手段は、n台のコンピュータそれぞれが次に処理する候補として選択した入力データをネットワークを介して収集する。入力候補選定制御手段は、入力候補収集手段により収集された入力データが(n−f)個以上存在する場合に、その中に同一内容の入力データが(n−f)個以上あるか否かを判定し、(n−f)個以上あったときに、その入力データを次に処理する対象として確定する。これにより入力データが整列マルチキャストされる。このように、収集された(n−f)個以上の入力データの中に同一内容の入力データが(n−f)個以上あることを入力候補選定制御手段が判定することは、(n−f)台以上のコンピュータで入力データの合意をとることに他ならない。つまり入力候補選定制御手段は合意手段として機能することを意味する。
上記先行技術によれば、多重化を構成するコンピュータがn台(nは4以上の整数)の分散システムでは、f台(fは3f<nを満たす最大の整数)までのコンピュータの故障(故障停止)が許容される。つまり、(n−f)台以上での多重化が保証(継続)される。このことは、上記先行技術では、故障停止(障害が発生)したコンピュータの数が(f+1)以上になると、多重化は継続できず、分散システムはフェイルストップすることを意味する。例えば、多重化を構成するコンピュータが7台(n=7)の分散システムでは、fは2となることから、2台までのコンピュータの故障停止は許容されるものの、さらに1台のコンピュータが故障停止すると、つまり3台のコンピュータが故障停止すると多重化を継続できない。 According to the above prior art, in a distributed system having n computers (n is an integer of 4 or more) that constitutes multiplexing, computer failures (failures) up to f computers (f is the maximum integer satisfying 3f <n). Stop) is allowed. That is, multiplexing of (n−f) or more units is guaranteed (continued). This means that in the above prior art, if the number of computers that have stopped (failed) has become (f + 1) or more, multiplexing cannot be continued and the distributed system fails. For example, in a distributed system with 7 computers (n = 7) that constitutes multiplexing, since f is 2, failure of up to 2 computers is permitted, but 1 computer fails. When stopped, that is, when three computers fail, the multiplexing cannot be continued.
本発明は上記事情を考慮してなされたものでその目的は、障害が発生したコンピュータの数が運用開始時のfで表される(f+1)以上となっても、正常に動作するコンピュータが3台以上あれば、多重化を継続できる分散システムおよび同システムの多重化制御方法を提供することにある。 The present invention has been made in view of the above circumstances, and its object is to provide three computers that operate normally even when the number of computers in which a failure has occurred is equal to or greater than (f + 1) represented by f at the start of operation. It is an object of the present invention to provide a distributed system that can continue multiplexing if there are more than one, and a multiplexing control method for the system.
本発明の1つの観点によれば、ネットワークで接続されたm台(mは4より大きい整数)のコンピュータのうちn台(nは4<n≦mを満たす整数)のコンピュータを同期的に動作させる分散システムが提供される。この分散システムにおいて、前記m台のコンピュータの各々は、構成記憶手段と、合意手段と、障害検出手段と、構成決定手段とを具備する。前記構成記憶手段は、同期的に動作させられるべきn台のコンピュータを識別する情報を、前記分散システムを構成するコンピュータを識別する情報として格納する。前記合意手段は、前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータを同期的に動作させ、当該n台のコンピュータのうちの(n−f)台(fは3f<nを満たす最大の整数)以上での多重化を保証するために、当該(n−f)台以上のコンピュータで入力データの合意をとることで当該入力データを整列マルチキャストする。前記障害検出手段は、前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータの状態から障害が発生したコンピュータを検出する。前記構成決定手段は、前記障害検出手段によって障害が発生したコンピュータが検出された場合、前記分散システムの構成を変更すべき事項が発生したと判定し、前記分散システムの構成を変更すべき事項が発生したと判定したコンピュータが(n−f)台以上存在するかによって、前記分散システムの構成を変更するかを決定し、前記分散システムの構成を変更すると決定した場合、前記構成記憶手段に格納されている情報を変更後の前記分散システムの構成を示すように更新する。 According to one aspect of the present invention, among m computers (m is an integer greater than 4) connected by a network, n computers (n is an integer satisfying 4 <n ≦ m) are operated synchronously. A distributed system is provided. In the distributed system, each of the m computers includes a configuration storage unit, an agreement unit, a failure detection unit, and a configuration determination unit. The configuration storage means stores information for identifying n computers to be operated synchronously as information for identifying computers constituting the distributed system. The agreement means synchronously operates n computers constituting the distributed system identified by information stored in the configuration storage means, and (n−f) of the n computers. (F is the maximum integer satisfying 3f <n) In order to guarantee multiplexing at or above, the input data is arranged and multicasted by agreeing on the input data among the (n−f) computers or more. The failure detection means detects a computer in which a failure has occurred from the status of n computers constituting the distributed system identified by the information stored in the configuration storage means. The configuration determination unit determines that an item to be changed in the configuration of the distributed system has occurred when a computer in which a failure has occurred is detected by the failure detection unit, and an item to be changed in the configuration of the distributed system exists. It is determined whether to change the configuration of the distributed system depending on whether there are (n−f) or more computers that have been determined to have occurred. If it is determined to change the configuration of the distributed system, the configuration is stored in the configuration storage unit. The updated information is updated to show the configuration of the distributed system after the change.
本発明によれば、現在分散システムを構成するn台のコンピュータのいずれかのコンピュータで障害が発生したために分散システムの構成を変更すべき事項が発生したと判定し、この分散システムの構成を変更すべき事項が発生したと判定したコンピュータが(n−f)台以上存在することの合意がとれたことをもって、分散システムの構成を変更することにより、障害が発生したコンピュータの数が運用開始時のfで表される(f+1台)以上となっても、正常に動作するコンピュータが3台以上あれば、多重化を継続できる According to the present invention, it is determined that an item that should change the configuration of the distributed system has occurred because a failure has occurred in one of the n computers that currently constitute the distributed system, and the configuration of the distributed system is changed. By agreeing that there are (n−f) or more computers that have been determined to have occurred, the number of computers that have failed can be reduced by changing the configuration of the distributed system. Multiplexing can be continued if there are three or more computers that operate normally even if it is greater than (f + 1) represented by f
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る分散システムの構成を示すブロック図である。図1において、分散システム1000は、例えば7台のコンピュータ100-1(#1)〜100-7(#7)により多重化されているものとする。但し本実施形態では、分散システム1000を構成するコンピュータの数は、当該システムの状況に応じて動的に変更される。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a distributed system according to an embodiment of the present invention. In FIG. 1, it is assumed that the distributed system 1000 is multiplexed by, for example, seven computers 100-1 (# 1) to 100-7 (# 7). However, in the present embodiment, the number of computers constituting the distributed system 1000 is dynamically changed according to the status of the system.
そこで、分散システム1000の運用開始時の当該分散システム1000を構成するコンピュータの数をmで表し、現在の分散システム1000を構成するコンピュータの数をnで表すこともある。nは上記特許文献1と異なり4より大きい整数)である。なお、上記特許文献1では、分散システムを構成するコンピュータの数は変更されない。つまり上記特許文献1では、分散システムの構成が当該システムの状況に応じて変更されることはない。
Therefore, the number of computers constituting the distributed system 1000 at the start of operation of the distributed system 1000 may be represented by m, and the current number of computers constituting the distributed system 1000 may be represented by n. n is an integer larger than 4 unlike the above-mentioned
mは4より大きい整数(つまり5以上の整数)である。つまり分散システム1000の運用開始時の当該分散システム1000を構成するコンピュータの数mは7に限るものではなく、4より大きければよい。明らかなように、nは、4<n≦mを満たす整数である。図1の例では、m=n=7であるが、本実施形態では、nは7から6に、6から5に変更される可能性がある。 m is an integer greater than 4 (that is, an integer of 5 or more). That is, the number m of computers constituting the distributed system 1000 at the start of the operation of the distributed system 1000 is not limited to 7, and may be larger than 4. As is apparent, n is an integer that satisfies 4 <n ≦ m. In the example of FIG. 1, m = n = 7, but in the present embodiment, n may be changed from 7 to 6 and from 6 to 5.
コンピュータ100-1〜100-7は、ネットワークAを介してクライアント装置2000と接続されている。コンピュータ100-1〜100-7は、クライアント装置2000以外のクライアント装置(図示せず)ともネットワークAを介して接続されているものとする。本実施形態においてネットワークAはパブリックネットワークである。コンピュータ100-1〜100-7間は、ネットワークBを介して接続されている。本実施形態においてネットワークBはプライベートネットワークである。
The computers 100-1 to 100-7 are connected to the
コンピュータ100-1〜100-7が分散システム1000を構成している場合、コンピュータ100-1〜100-7は、前記特許文献1に記載された分散システムにおけるコンピュータと同様に、ネットワークAを介してクライアント装置2000から受け取った入力パケット(入力)を他のコンピュータと同じ順序で処理していく。なお、クライアント装置2000からの入力パケットは、コンピュータ100-1〜100-7のうちのいずれかのコンピュータに入力される。
When the computers 100-1 to 100-7 constitute the distributed system 1000, the computers 100-1 to 100-7 are connected via the network A in the same manner as the computers in the distributed system described in
コンピュータ100-1〜100-7は、それぞれ同一のアプリケーションプログラム3(図2参照)を有している。コンピュータ100-1〜100-7は、同一の初期状態から始まる。その後、クライアント装置2000から分散システムに入力されるデータは、必ず整列マルチキャストを通して、コンピュータ100-1〜100-7に同一順序で配送される。これにより、コンピュータ100-1〜100-7においてそれぞれのアプリケーションプログラム3が実行される。
Each of the computers 100-1 to 100-7 has the same application program 3 (see FIG. 2). The computers 100-1 to 100-7 start from the same initial state. Thereafter, the data input from the
コンピュータ100-1〜100-7がそれぞれ有するアプリケーションプログラム3への入力データ列は、整列マルチキャストにより同一順序となっている。このため、前記特許文献1に記載されているような決定性のプログラムの特徴により、コンピュータ100-1〜100-7の状態が同一に保たれ、出力データ列もすべて同じとなる。つまり、プログラムの実行が多重化される。
The input data string to the
特許文献1に記載されている分散システムにおいて多重化を構成するコンピュータの数がn(nは4以上の整数)の場合、当該分散システムでは、fを3f<nを満足する最大の整数(最大許容障害数)とすると、f台までの故障停止が許容される。つまり、n台のコンピュータから構成される分散システムでは、(n−f)台以上のコンピュータの多重化が保証され、多重化されるプログラムは、少なくとも(n−f)台のコンピュータ上で実行される。したがって、nが4より大きい整数である本実施形態においても、(n−f)台以上のコンピュータの多重化が保証される。
In the distributed system described in
図2は、コンピュータ100-i(i=1,2,…,7)の構成を示すブロック図である。図2において、クライアント装置2000からネットワークAを介してコンピュータ100-iに送信されて、当該コンピュータ100-iの入力受付キュー部1で受け付けられた入力パケットは、当該入力受付キュー部1にキューイングされる。入力受付キュー部1にキューイングされた入力パケットは、整列マルチキャスト部2(内の後述する入力パケット確定判定部26に含まれている合意部262)によってアプリケーションプログラム3または整列マルチキャスト部2内の後述する構成決定部210に配送される。なお、入力受付キュー部1にキューイングされる入力パケットには、クライアント装置2000からの入力パケットの他に、構成決定部210から送られる入力パケット(特定入力パケット)がある。
FIG. 2 is a block diagram showing a configuration of the computer 100-i (i = 1, 2,..., 7). In FIG. 2, an input packet transmitted from the
アプリケーションプログラム3は、配送された入力パケットを受けて、プログラム状態管理部4に保存されている状態に従って当該入力パケットを処理し、出力パケットを生成する。生成された出力パケットは、出力フィルタ部5で選別されてから、ネットワークAを介してクライアント装置2000に返却される(出力)。
The
次に、コンピュータ100-iの整列マルチキャスト部2の構成について説明する。整列マルチキャスト部2は、前記特許文献1に記載された整列マルチキャスト部と同様に、入力順序番号記憶部21、入力パケットジャーナル記憶部22、プロトコルデータ送受信部23、ステップ番号記憶部24、候補パケット記憶部25、入力パケット確定判定部26、最大確定入力順序番号記憶部27、遅延記憶部28およびスキップ判定部29の周知の構成を有している。
Next, the configuration of the ordered
入力順序番号記憶部21は、整列マルチキャストによってコンピュータ100-iへ次に配送される入力パケットの順序番号(つまり整列マルチキャストにシリアルに付される最新の順序番号)を格納する。入力パケットジャーナル記憶部22は、整列マルチキャストによってコンピュータ100-iへの配送が確定した入力パケットの列を最近のものから一定の量だけ格納する。プロトコルデータ送受信部23は、他のコンピュータのプロトコルデータ送受信部23とネットワークBを介してプロトコルデータを授受する。
The input sequence
本実施形態では、クライアント装置2000とコンピュータ100-iとの間のデータの授受と、コンピュータ100-i相互間のデータの授受とで、使用するネットワークが切り替えられる。これによりネットワーク負荷が軽減される。しかし、クライアント装置2000とコンピュータ100-iとの間のデータの授受と、コンピュータ100-i相互間のデータの授受とが、例えばネットワークAを介して行われる構成であっても構わない。またネットワークAが必ずしもパブリックネットワークである必要はない。
In the present embodiment, the network to be used is switched between data exchange between the
ステップ番号記憶部24、候補パケット記憶部25および入力パケット確定判定部26は、整列マルチキャストによってコンピュータ100-iへ次に配送される入力パケットを決定するアルゴリズムで用いられる。ステップ番号記憶部24は、プロトコルのステップを示すステップ番号を格納する。候補パケット記憶部25は、そのステップにおける各コンピュータの「入力候補」となる入力パケットを計n個格納する。
The step
入力パケット確定判定部26は、候補パケット記憶部25の情報から入力パケットの確定の判定および次ステップの「入力候補」の決定を行う。入力パケット確定判定部26はさらに、前記特許文献1に記載された入力パケット確定判定部と異なり、入力パケットをアプリケーションプログラム3および構成決定部210のいずれに渡すかを決定する。この決定のために、入力受付キュー部1にキューイングされる入力パケットには、処理種別を示す情報(処理種別情報)が付加される。入力パケット確定判定部26は、入力候補収集部261及び合意部262を含む。
The input packet
図3は入力受付キュー部1にキューイングされるデータ(入力パケットデータ)のデータ構造例を示す。図3に示されるように、入力パケットデータは、処理種別および入力パケットの各フィールドを含む。入力パケットフィールドには入力パケットが格納(設定)され、処理種別フィールドには処理種別情報が格納(設定)される。
FIG. 3 shows an example of the data structure of data (input packet data) queued in the input
本実施形態において処理種別情報は、入力パケットフィールドに格納されている入力パケットをアプリケーションプログラム3または構成決定部210のいずれに渡すかを入力パケット確定判定部26(内の合意部262)が決定するための処理種別を示す。そのため、処理種別情報の示す処理種別は、(1)アプリケーションと(2)構成とに分けられる。処理種別が「アプリケーション」の場合、入力パケットが外部のクライアント装置2000から入力されたものであることをも示し、処理種別が「構成」の場合、入力パケットが分散システム1000を構成するいずれかのコンピュータの構成決定部210から当該いずれかのコンピュータの入力受付キュー部1に入力されたものであることをも示す。
In the present embodiment, the processing type information is determined by the input packet confirmation determination unit 26 (the agreement unit 262) as to whether the input packet stored in the input packet field is to be passed to the
再び図2を参照すると、最大確定入力順序番号記憶部27は、他のコンピュータも含め、配送が確定したことがわかっている最大の入力順序番号を格納する。遅延記憶部28は、他の(n−1)台(n=7)のコンピュータよりも遅延しているかどうかを示す(n−1)個の遅延フラグ(n=7の本実施形態では、6個のフラグ)を格納する。スキップ判定部29は、遅延記憶部28の情報からスキップ動作の必要性を判定およびスキップ動作を実行する。
Referring again to FIG. 2, the maximum confirmed input sequence
図4は、最大確定入力順序番号記憶部27のデータ構造例を示す。図4に示されるデータ構造例では、最大確定入力順序番号として「50000」が格納されている。この場合、最大確定入力順序番号記憶部27は、他のコンピュータも含め、配送が確定したことがわかっている最大の入力順序番号が「50000」であることを示す。
FIG. 4 shows an example of the data structure of the maximum confirmed input sequence
以降の説明では、入力順序番号記憶部21に格納された入力順序番号を該当入力順序番号と呼び、ステップ番号記憶部24に格納されたステップ番号を該当ステップ番号と呼ぶ。コンピュータ100-iの整列マルチキャスト部2に含まれている候補パケット記憶部25に格納されているn個の「入力候補」のうち、当該コンピュータ100-i自身(自コンピュータ)に対応する「入力候補」を自候補と呼び、当該自候補以外の「入力候補」を他候補と呼ぶ。
In the following description, the input sequence number stored in the input sequence
本実施形態では、整列マルチキャスト部2は、前記特許文献1に記載された整列マルチキャスト部と異なり、分散システム1000を構成するコンピュータを、当該システム1000の状況に応じて動的に変更するための新規の構成を含む。即ち整列マルチキャスト部2は、図2に示されるように、構成決定部210、構成記憶部211、最大順序番号遅延許容値記憶部212および他コンピュータ最大確定入力順序番号記憶部213をさらに含む。
In the present embodiment, the ordered
構成決定部210は、分散システム1000を構成するコンピュータを、当該システム1000の状況(さらに詳細に述べるならば、現在当該システム1000を構成しているコンピュータ100-1〜100-7の状況)に応じて決定する。構成記憶部211は、構成決定部210によって決定された分散システム1000を構成するコンピュータを示す情報を格納する。本実施形態では、分散システム1000を構成するコンピュータを示す情報として、当該コンピュータを一意に識別するための識別子(ID)が用いられる。構成決定部210は、構成記憶部211に格納されている情報(分散システム1000を構成するコンピュータを示す情報)により、分散システム1000において多重化を構成するコンピュータの数nと、当該nによって導かれる最大許容障害数fとを決定する。構成決定部210は、他のコンピュータの障害を検出する障害検出部210aを含む。
The
図5は、構成記憶部211のデータ構造例を示す。図5に示されるデータ構造例では、コンピュータ#1乃至#7のID(ID=1乃至ID=7)が構成記憶部211に格納されている。この場合、構成記憶部211は、分散システム1000がコンピュータ#1乃至#7から構成されており、nが7(n=7)で、fが2(f=2)であることを示す。
FIG. 5 shows an exemplary data structure of the
最大順序番号遅延許容値記憶部212は、後述する他コンピュータ最大確定入力順序番号記憶部213に格納されている、コンピュータ100-i以外のコンピュータ(他コンピュータ)の最大確定入力順序番号の入力順序番号記憶部21に格納されている該当入力順序番号(つまりコンピュータ100-iにおいて管理されている最新の入力順序番号)に対するずれ(遅延)を許容する値(最大順序番号遅延許容値)Lを格納する。この値Lは例えばユーザによって任意に設定される。但し、Lは1より大きい整数である。
The maximum sequence number delay allowable
図6は、最大順序番号遅延許容値記憶部212のデータ構造例を示す。図6に示されるデータ構造例では、最大順序番号遅延許容値Lとして「3000」が最大順序番号遅延許容値記憶部212に格納されている。この場合、他コンピュータの最大確定入力順序番号の該当入力順序番号に対する遅延は、順序番号の差に換算して「3000」まで許容される。つまり、他コンピュータの最大確定入力順序番号の該当入力順序番号に対するずれが「3000」を超えない範囲では、当該他コンピュータは正常であると構成決定部210によって判定される。換言するならば、他コンピュータの最大確定入力順序番号の該当入力順序番号に対するずれが「3000」を超えると、当該他コンピュータは異常であると構成決定部210によって判定(検出)される。
FIG. 6 shows a data structure example of the maximum sequence number delay allowable
本実施形態では、上述の最大確定入力順序番号(他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号)を利用したコンピュータ100-iの異常検出(つまり分散システム1000の状況の変化)に応じて、分散システム1000が再構成される。 In the present embodiment, abnormality detection of the computer 100-i (that is, the distributed system 1000 of the distributed system 1000) using the above-described maximum fixed input sequence number (maximum fixed input sequence number stored in the other computer maximum fixed input sequence number storage unit 213). The distributed system 1000 is reconfigured in response to changes in the situation.
他コンピュータ最大確定入力順序番号記憶部213は、分散システム1000を構成するコンピュータの集合のうち、コンピュータ100-i自身(自コンピュータ)を除くコンピュータ(他コンピュータ)に対応する最大確定入力順序番号を格納する。
The other computer maximum confirmed input sequence
図7は、コンピュータ100-iがコンピュータ100-1(#1)である場合における、当該コンピュータ100-1(#1)の他コンピュータ最大確定入力順序番号記憶部213のデータ構造例を示す。図7に示されるデータ構造例では、コンピュータ100-1(#1)以外のコンピュータ100-2(#2)〜100-7(#7)の最大確定入力順序番号(50000)が、当該コンピュータ100-2(#2)〜100-7(#7)の例えばIDに対応付けて他コンピュータ最大確定入力順序番号記憶部213に格納されている。
FIG. 7 shows an example of the data structure of the computer maximum determined input sequence
次に、プロトコルデータ送受信部23によって送受信されるプロトコルデータについて説明する。
図8は、プロトコルデータのレイアウトを示す図である。図8に示されるように、プロトコルデータ送受信部23によって送受信されるプロトコルデータは、種類、送信者、入力順序番号、ステップ番号、最大確定入力順序番号、処理種別および入力パケットの各フィールドを含む。図8に示されるプロトコルデータが前記特許文献1に記載されているプロトコルデータと相違するのは、前述の処理種別フィールドが追加されている点にある。
Next, protocol data transmitted / received by the protocol data transmitting / receiving
FIG. 8 is a diagram showing a layout of protocol data. As shown in FIG. 8, the protocol data transmitted / received by the protocol data transmitting / receiving
周知のように、プロトコルデータは先頭の種類フィールドによって、次の3つに使い分けられる。 As is well known, the protocol data is divided into the following three types depending on the type field at the head.
(1)候補種類:入力順序番号フィールド、ステップ番号フィールド、入力パケットフィールド、処理種別フィールドには、それぞれ、送信者(送信側コンピュータ)の送信時における該当入力順序番号、該当ステップ番号、自候補、自候補に付されていた処理種別(処理種別情報)が格納される。 (1) Candidate type: In the input sequence number field, step number field, input packet field, and processing type field, the corresponding input sequence number, corresponding step number, own candidate, Stores the processing type (processing type information) assigned to the candidate.
(2)確定種類:その入力順序番号(入力順序番号フィールドに格納されている入力順序番号)に対応する入力パケットが、送信者の送信時における入力パケットジャーナル記憶部22にあることを示し、入力パケットフィールド、処理種別フィールドには、それぞれ、その入力パケット、その入力パケットに付されていた処理種別(処理種別情報)が格納される。この場合、ステップ番号フィールドは使用されない。
(2) Determined type: Indicates that the input packet corresponding to the input sequence number (the input sequence number stored in the input sequence number field) is in the input packet
(3)遅延種類:その入力順序番号に対応する入力パケットが、送信者の送信時における入力パケットジャーナル記憶部22にないことを示す。この場合、ステップ番号フィールド、入力パケットフィールドおよび処理種別フィールドは使用されない。
(3) Delay type: Indicates that there is no input packet corresponding to the input sequence number in the input packet
いずれの種類のプロトコルデータにおいても、最大確定入力順序番号フィールドには、送信者(送信側コンピュータ)からのプロトコルデータ送信時における該当最大確定入力順序番号が格納される。また、プロトコルデータの受信側コンピュータにおける該当最大確定入力順序番号は、当該受信側コンピュータで確定された入力パケットの順序番号と、当該受信側コンピュータで受信されたプロトコルデータ中の最大確定入力順序番号とのうち、最も大きいものに更新される。 In any type of protocol data, the maximum confirmed input order number field stores the corresponding maximum confirmed input order number when protocol data is transmitted from the sender (sender computer). Further, the corresponding maximum confirmed input sequence number in the receiving computer of the protocol data includes the sequence number of the input packet confirmed in the receiving computer, the maximum confirmed input sequence number in the protocol data received by the receiving computer, Of these, it is updated to the largest one.
次に、図9乃至図14のフローチャートを参照して、コンピュータ100-iの整列マルチキャスト部2の動作手順について説明する。
まず初期状態では、入力順序番号記憶部21は初期入力順序番号(例えば1)を格納する。入力パケットジャーナル記憶部22は空の状態であり、ステップ番号記憶部24は初期ステップ番号(例えば1)を格納する。また、候補パケット記憶部25は空の状態であり、最大確定入力順序番号記憶部27は初期入力順序番号を格納し、さらに、遅延記憶部28のすべてのフラグはリセットされている。
Next, the operation procedure of the ordered
First, in the initial state, the input sequence
図9および図10は、整列マルチキャストの1回の配送を行う基本的な部分の動作手順を示すフローチャートである。
整列マルチキャスト部2内の入力パケット確定判定部26に含まれる入力候補収集部261は、コンピュータ100-1〜100-7(n=7)がそれぞれ次に処理する候補(入力候補)として選択した入力パケット(入力データ)を収集するための候補一覧作成処理を実行する(図8のステップA1)。
FIG. 9 and FIG. 10 are flowcharts showing an operation procedure of a basic part that performs one delivery of ordered multicast.
The input
候補一覧作成処理において入力候補収集部261は、ステップ番号記憶部24に格納されている該当ステップ番号が初期値であるときは(図10のステップB1のYES)、入力受付キュー部1に入力パケット(より具体的には、入力パケットおよび処理種別情報から構成される入力パケットデータ)が存在するかを判定する(図10のステップB2)。
In the candidate list creation process, the input
もし、入力パケットが存在するならば(図10のステップB2のYES)、入力候補収集部261はステップ番号記憶部24に格納されている該当ステップ番号を次に進める(図10のステップB3)。そして入力候補収集部261は、入力パケットを自候補として候補パケット記憶部25に格納し、かつ、この自候補が入力パケットフィールドに設定され、この自候補に付されている処理種別情報が処理種別フィールドに設定された候補種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して他のすべてのコンピュータに送信させる(図10のステップB4)。このステップB4において、入力候補収集部261は、候補パケット記憶部25内の全ての他候補を空にする。
If there is an input packet (YES in step B2 in FIG. 10), the input
一方、該当ステップ番号が初期値でないか(図10のステップB1のNO)、または入力受付キュー部1に入力パケットがないとき(図10のステップB2のNO)、入力候補収集部261は、入力順序番号記憶部21に格納されている該当入力順序番号に一致する入力順序番号(が設定された入力順序番号フィールド)を持つ候補種類のプロトコルデータがプロトコルデータ送受信部23によって受信されているかを判定する(図10のステップB5)。もし、受信されているならば(図10のステップB5のYES)、入力候補収集部261は、受信されているプロトコルデータ(受信プロトコルデータ)内の(ステップ番号フィールドに設定されている)ステップ番号は該当ステップ番号よりも大きいかを判定する(図10のステップB6)。
On the other hand, when the corresponding step number is not the initial value (NO in step B1 in FIG. 10) or there is no input packet in the input reception queue unit 1 (NO in step B2 in FIG. 10), the input
もし、受信プロトコルデータ内のステップ番号が該当ステップ番号よりも大きいならば(図10のステップB6のYES)、入力候補収集部261は、ステップ番号記憶部24に格納されている該当ステップ番号を受信プロトコルデータ内のステップ番号に更新する(図10のステップB7)。このステップB7では、受信プロトコルデータ内の(最大確定入力順序番号フィールドに設定されている)最大確定入力順序番号が、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号よりも大きいならば、この該当最大確定入力順序番号が受信プロトコルデータ内の最大確定入力順序番号に更新される。以降の説明では、該当最大確定入力順序番号が受信プロトコルデータ内の最大確定入力順序番号に更新される処理を該当最大確定入力順序番号更新処理と称する。またステップB7では、受信プロトコルデータの送信者に対応して他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号が、受信プロトコルデータ内の最大確定入力順序番号に更新される。
If the step number in the reception protocol data is larger than the corresponding step number (YES in step B6 in FIG. 10), the input
次に入力候補収集部261は、受信プロトコルデータ内の(入力パケットフィールドに設定されている)入力パケットを自候補として候補パケット記憶部25に格納し、かつ、この自候補が入力パケットフィールドに設定され、この自候補に付されている処理種別情報が処理種別フィールドに設定された(つまり受信プロトコルデータ内の入力パケットフィールドおよび処理種別フィールドのコピーを含む)候補種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して他のすべてのコンピュータに送信させる(図10のステップB8)。このステップB8において入力候補収集部261は、受信プロトコルデータ内の入力パケット(ここでは自候補とされた入力パケット)を、当該受信プロトコルデータの(送信者フィールドの示す)送信者に対応する他候補として、候補パケット記憶部25に格納する。つまりステップB8では、受信プロトコルデータ中の入力パケットが、自候補として設定されるとともに、当該受信プロトコルデータの送信者に対応する他候補としても設定される。このとき入力候補収集部261は、候補パケット記憶部25内の、受信プロトコルデータの送信者に対応する他候補以外の他候補を全て破棄する(空にする)。
Next, the input
これに対し、受信プロトコルデータ内のステップ番号と該当ステップ番号とが等しいならば(図10のステップB6のNO,ステップB9のYES)、入力候補収集部261は、受信プロトコルデータ内の入力パケットを、当該受信プロトコルデータの送信者に対応する他候補として候補パケット記憶部25に格納する(図10のステップB10)。このステップB10では、受信プロトコルデータ内の最大確定入力順序番号が、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号よりも大きいならば、該当最大確定入力順序番号更新処理が行われる。またステップB10では、受信プロトコルデータの送信者に対応して他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号が、受信プロトコルデータ内の最大確定入力順序番号に更新される。
On the other hand, if the step number in the reception protocol data is equal to the corresponding step number (NO in step B6 in FIG. 10, YES in step B9), the input
入力候補収集部261は、ステップB6またはステップB10を実行すると、候補パケット記憶部25に格納された候補数が(n−f)個以上になったかを判定する(図10のステップB11)。
When executing step B6 or step B10, the input
入力候補収集部261は、候補数が(n−f)個以上になっていないならば(図10のステップB11のNO)、ステップB1からの処理を再び実行する。これに対し、候補数が(n−f)個以上になっているならば(図10のステップB11のYES)、入力候補収集部261は候補一覧作成処理を終了する。なお、ステップB5またはステップB9の判定がNOの場合にも、ステップB1からの処理が再び実行される。
If the number of candidates does not reach (n−f) or more (NO in step B11 in FIG. 10), the input
候補一覧作成処理(図9のステップA1)が終了すると、即ち候補パケット記憶部25に格納された候補(入力候補)数(空でない候補数)が(n−f)個以上になると、入力パケット確定判定部26内の合意部262は第1の入力候補選定制御手段として機能して、当該候補パケット記憶部25に(n−f)個以上の同一の候補が存在するか、つまり(n−f)台以上のコンピュータ(少なくとも(n−f)台のコンピュータ)で合意がとられた(合意が形成された)候補が存在するかを判定する(図9のステップA2)。もし、(n−f)個以上の同一(同一内容)の候補が存在するならば(図9のステップA2のYES)、合意部262は、その候補を該当入力順序番号における入力パケットとして確定する(図9のステップA3)。このステップA3において合意部262は、確定された入力パケットが入力受付キュー部1に存在するならば、当該入力パケットを入力受付キュー部1から削除する。
When the candidate list creation process (step A1 in FIG. 9) ends, that is, when the number of candidates (input candidates) (number of non-empty candidates) stored in the candidate
このように、該当入力順序番号における入力パケットが確定すると、つまり該当入力順序番号における入力パケットに関して合意がとられて、整列マルチキャストが確定すると、合意部262は、次工程へ移行すべく、入力順序番号記憶部21に格納されている該当入力順序番号を次に進め(1インクリメントし)、ステップ番号記憶部24に格納されている該当ステップ番号を初期化する(図9のステップA4)。このステップA4において合意部262は、候補パケット記憶部25に格納されているすべての候補を破棄し(空にし)、遅延記憶部28に格納されている(n−1)個の遅延フラグをすべてリセットする。
As described above, when the input packet at the corresponding input sequence number is determined, that is, when the input packet at the corresponding input sequence number is agreed and the ordered multicast is determined, the
次に合意部262は、候補出力先切り替え手段として機能して、確定された入力パケットに付されている処理種別情報の示す処理種別が「アプリケーション」であるかどうか(つまり「構成」であるか)を調べる(図9のステップA8)。「アプリケーション」であるならば(図9のステップA8のYES)、合意部262は、確定された入力パケットをアプリケーションプログラム3に渡すとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する(図9のステップA9)。ここでは、確定された入力パケットは、現在入力パケットジャーナル記憶部22に格納されている入力パケットの列の後ろに位置するように格納される。なお、入力パケットジャーナル記憶部22に格納されている入力パケットの列が一定の量に達しているならば、先頭の入力パケット(つまり最も古い入力パケット)が破棄される。
Next, the
これに対し、「アプリケーション」でないならば、つまり「構成」であるならば(図9のステップA8のNO)、合意部262は、確定された入力パケットを構成決定部210に渡すとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する(図9のステップA10)。
On the other hand, if it is not “application”, that is, if it is “configuration” (NO in step A8 in FIG. 9), the
一方、(n−f)個以上の同一の候補が存在しなかった場合(図9のステップA2のNO)、合意部262は第2の入力候補選定制御手段として機能して、今度は、候補パケット記憶部25に過半数以上の同一の候補が存在するかを判定する(図9のステップA5)。もし、過半数以上の同一の候補が存在するならば(図9のステップA5のYES)、合意部262は、その候補を選択して自候補として候補パケット記憶部25に格納し(つまり、その候補を候補パケット記憶部25内の自候補とし)、かつ、この自候補が入力パケットフィールドに設定され、この自候補に付されている処理種別情報が処理種別フィールドに設定された候補種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して他のすべてのコンピュータに送信させる(図9のステップA6)。このステップA6において合意部262は、候補パケット記憶部25に格納されているすべての他候補を破棄する。
On the other hand, if (n−f) or more identical candidates do not exist (NO in step A2 in FIG. 9), the
これに対し、過半数以上の同一の候補が存在しないならば(図9のステップA5のNO)、合意部262は第3の入力候補選定制御手段として機能して、候補パケット記憶部25に格納されている入力候補の中からランダムに候補(入力パケット)を自候補として選択し、かつ、この自候補が入力パケットフィールドに設定され、この自候補に付されている処理種別情報が処理種別フィールドに設定された候補種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して他のすべてのコンピュータに送信させる(図9のステップA7)。このステップA7において合意部262は、候補パケット記憶部25に格納されているすべての他候補を破棄する。
On the other hand, if more than a majority of the same candidates do not exist (NO in step A5 in FIG. 9), the
合意部262は、ステップA6(第2の入力候補選定制御手段としての動作)またはステップA7(第3の入力候補選定制御手段としての動作)が終了すると、ステップA1からの処理を再び実行する。一方、ステップA9またはステップA10(候補出力先切り替え手段としての動作)が終了すると、整列マルチキャストの1回の配送処理を終了する。
When step A6 (operation as the second input candidate selection control unit) or step A7 (operation as the third input candidate selection control unit) is completed, the
以上の手順で、各コンピュータ100-iは、(n−f)台以上のコンピュータでの入力パケットの一致を確認しながら処理を進めていく。 With the above procedure, each computer 100-i proceeds with processing while confirming the match of input packets in (n−f) or more computers.
次に、多重化実行の遅延を解消するための動作手順について説明する。
図11乃至図14は、多重化実行の遅延を解消するための動作手順を示すフローチャートである。図11乃至図14は、前記特許文献1の図7乃至図10に相当する。
Next, an operation procedure for eliminating the multiplexing execution delay will be described.
FIG. 11 to FIG. 14 are flowcharts showing an operation procedure for eliminating the multiplexing execution delay. 11 to 14 correspond to FIGS. 7 to 10 of
整列マルチキャスト部2内の合意部262は、該当入力順序番号より小さい入力順序番号を持つ候補種類のプロトコルデータがプロトコルデータ送受信部23によって受信された場合に、その入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22に存在するかを判定する(図11のステップC1)。
When the protocol data transmitter /
もし、該当入力順序番号より小さい入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22に存在するならば(図11のステップC1のYES)、つまり短い多重化実行の遅延のために、該当入力順序番号より小さい入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22に残されているならば、合意部262は、その入力パケットが入力パケットフィールドに設定され、その入力パケットに付されている処理種別情報が処理種別フィールドに設定された確定種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して受信プロトコルデータの送信者に返送させる(図11のステップC2)。
If an input packet corresponding to an input sequence number smaller than the corresponding input sequence number exists in the input packet journal storage unit 22 (YES in step C1 in FIG. 11), that is, because of a short multiplexing execution delay, If an input packet corresponding to an input sequence number smaller than the input sequence number remains in the input packet
一方、該当入力順序番号より小さい入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22に存在しないならば(図11のステップC1のNO)、つまり長い多重化実行の遅延のために、該当入力順序番号より小さい入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22から既に捨てられている場合には、合意部262は、遅延種類のプロトコルデータをプロトコルデータ送受信部23によりネットワークBを介して受信プロトコルデータの送信者に返送させる(図11のステップC3)。
On the other hand, if the input packet corresponding to the input sequence number smaller than the corresponding input sequence number does not exist in the input packet journal storage unit 22 (NO in step C1 in FIG. 11), that is, because of a long multiplexing execution delay, When an input packet corresponding to an input sequence number smaller than the input sequence number has already been discarded from the input packet
また、ステップC2およびC3では、受信プロトコルデータ内の最大確定入力順序番号が、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号よりも大きいならば、該当最大確定入力順序番号更新処理が行われる。またステップC2およびC3では、受信プロトコルデータの送信者に対応して他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号が、受信プロトコルデータ内の最大確定入力順序番号に更新される。
In steps C2 and C3, if the maximum confirmed input sequence number in the reception protocol data is greater than the corresponding maximum confirmed input sequence number stored in the maximum confirmed input sequence
また、合意部262は、該当入力順序番号に一致する入力順序番号を持つ確定種類のプロトコルデータがプロトコルデータ送受信部23によって受信された場合には、その受信プロトコルデータ内の入力パケットを入力パケットとして確定する(図12のステップD1)。このステップD1において合意部262は、確定された入力パケットが入力受付キュー部1に存在するならば、当該入力パケットを入力受付キュー部1から削除する。またステップD1では、受信プロトコルデータ内の最大確定入力順序番号が、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号よりも大きいならば、該当最大確定入力順序番号更新処理が行われる。ステップD1ではさらに、受信プロトコルデータの送信者に対応して他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号が、受信プロトコルデータ内の最大確定入力順序番号に更新される。
In addition, when the protocol data transmitter /
次に合意部262は、次工程へ移行すべく、入力順序番号記憶部21に格納されている該当入力順序番号を次に進め(1インクリメントし)、ステップ番号記憶部24に格納されている該当ステップ番号を初期化する(図12のステップD2)。このステップD2において合意部262は、候補パケット記憶部25に格納されているすべての候補を破棄し、遅延記憶部28に格納されている(n−1)個の遅延フラグをすべてリセットする。
Next, the
次に合意部262は、候補出力先切り替え手段として機能して、確定された入力パケットに付されている処理種別情報の示す処理種別が「アプリケーション」であるかを判定する(図12のステップD3)。「アプリケーション」であるならば(図12のステップD3のYES)、合意部262は、確定された入力パケットをアプリケーションプログラム3に渡すとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する(図12のステップD4)。
Next, the
これに対し、「アプリケーション」でないならば(図12のステップD3のNO)、合意部262は、確定された入力パケットを構成決定部210に渡すとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する(図12のステップD5)。
On the other hand, if it is not “application” (NO in step D3 in FIG. 12), the
一方、整列マルチキャスト部2内のスキップ判定部29は、該当入力順序番号に一致する入力順序番号を持つ遅延種類のプロトコルデータがプロトコルデータ送受信部23によって受信された場合に、遅延記憶部28に格納されている(n−1)個の遅延フラグのうち、当該プロトコルデータの送信者に対応する遅延フラグをセットする(図13のステップE1)。このステップE1では、受信プロトコルデータ内の最大確定入力順序番号が、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号よりも大きいならば、該当最大確定入力順序番号更新処理が行われる。またステップE1では、受信プロトコルデータの送信者に対応して他コンピュータ最大確定入力順序番号記憶部213に格納されている最大確定入力順序番号が、受信プロトコルデータ内の最大確定入力順序番号に更新される。
On the other hand, the
また、スキップ判定部29は、遅延記憶部28に格納されている(n−1)個の遅延フラグのうちのセットされた遅延フラグの数と、候補パケット記憶部25に格納されている入力候補の数との和が、(n−f)個以上に達したかどうかを監視する(図14のステップF1)。もし、(n−f)個以上に達しているならば(図14のステップF1のYES)、スキップ判定部29は、候補パケット記憶部25に格納されている入力候補の数が(n−f)個未満かを判定する(図14のステップF2)。もし、(n−f)個未満であるならば(図14のステップF2のYES)、スキップ判定部29はスキップ動作を行う(図14のステップF3)。即ちスキップ判定部29は、入力順序番号記憶部21に格納されている該当入力順序番号を最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号に更新し、ステップ番号記憶部24に格納されている該当ステップ番号を初期ステップ番号にする。またスキップ判定部29は、候補パケット記憶部25を空にし、遅延記憶部28のすべての遅延フラグをリセットした上で、プログラム状態管理部4にスキップを通知する。プログラム状態管理部4は、スキップが通知されると、該当入力順序番号の直前の状態を他のコンピュータのプログラム状態管理部4からコピーする。このために、プログラム状態管理部4は、各入力順序番号の直前の状態を最近のものから一定の量だけ保持している。
The
以上の手順で、各コンピュータ100-iは、スプリットブレインを起こさないよう、遅延された実行が追い付く仕組みを実現する。 With the above procedure, each computer 100-i realizes a mechanism in which delayed execution catches up so as not to cause split brain.
次に、各コンピュータ100-iの構成決定部210によって実行される、分散システム1000の構成を決定するための動作手順(構成決定処理)について、図15のフローチャートを参照して説明する。本実施形態において、構成決定部210による構成決定処理は一定時間毎に(つまり定期的に)実行されるものとするが、ランダムなタイミングで実行されても構わない。
Next, an operation procedure (configuration determination process) for determining the configuration of the distributed system 1000, which is executed by the
まず構成決定部210は、構成記憶部211に格納されている情報に基づき、現在分散システム1000を構成しているコンピュータの数nが4を超えているかを判定する(図15のステップG1)。もし、nが4を超えている(つまり5以上である)ならば(図15のステップG1のYES)、構成決定部210は、現在分散システム1000を構成しているn台のコンピュータ(ここではコンピュータ100-1〜100-7)のうち、コンピュータ100-i(構成記憶部211を含むコンピュータ100-i)を除くすべてのコンピュータ(他コンピュータ)100-j(ここではjは1〜7、但しiを除く)について、障害検出部210aを用いて以下の処理を実行する(図15のステップG2)。
First, the
まず障害検出部210aは、入力順序番号記憶部21に格納されている該当入力順序番号と、他コンピュータ最大確定入力順序番号記憶部213に格納されている、現在対象となっているコンピュータ100-j(対象のコンピュータ100-j)の最大確定入力順序番号との差を求め、この差が、最大順序番号遅延許容値記憶部212に格納されている最大順序番号遅延許容値Lよりも大きくなっているかを判定する(図15のステップG3)。ここで上記差は、コンピュータ100-iの該当入力順序番号を基準とする対象のコンピュータ100-jにおける入力パケット列に対する処理の遅延量を示す。
First, the
障害検出部210aは、上記差が最大順序番号遅延許容値Lよりも大きいならば(図15のステップG3のYES)、対象のコンピュータ100-jは異常であると判定する。つまり障害検出部210aは、上記差が最大順序番号遅延許容値Lよりも大きくなったことをもって、対象のコンピュータ100-jの異常(障害)を検出する。この場合、構成決定部210は、分散システム1000の構成を変更する必要があるものと、さらに具体的に述べるならば、対象のコンピュータ100-j(異常が検出されたコンピュータ100-j)を分散システム1000(を構成しているコンピュータの集合)から外す(切り離す)必要があるものと判定する。
If the difference is larger than the maximum sequence number delay allowable value L (YES in step G3 in FIG. 15), the
そこで構成決定部210は、対象のコンピュータ100-j(異常が検出されたコンピュータ100-j)を分散システム1000(を構成しているコンピュータの集合)から外す(切り離す)合意をとる(合意を形成する)ための処理、つまり分散システム1000の構成を変更すべきことの合意をとるための処理を、整列マルチキャスト部2(内の入力パケット確定判定部26に含まれている合意部262)を用いて行う(図15のステップG4)。換言するならば、構成決定部210は、対象のコンピュータ100-jを分散システム1000から外す合意を、アプリケーションプログラム3に配送されるべき入力パケットに対する整列マルチキャストと同様にしてとるために、整列マルチキャスト部2を用いる。対象のコンピュータ100-jを分散システム1000から外すかは、整列マルチキャストと同様に、(n−f)台以上のコンピュータでの合意をもって決定される。
Therefore, the
本実施形態において、対象のコンピュータ100-jを分散システム1000から外すとは、後述するように、当該コンピュータ100-jを示す情報(ID)を構成記憶部211から削除することである。つまり対象のコンピュータ100-jを分散システム1000から外すとは、当該コンピュータ100-jを、分散システム1000を構成するコンピュータの集合から論理的に外すことであり、当該コンピュータ100-jを物理的に分散システム1000から取り外すものではない。
In the present embodiment, removing the target computer 100-j from the distributed system 1000 means deleting information (ID) indicating the computer 100-j from the
ステップG4において構成決定部210は、対象のコンピュータ100-jを分散システム1000から外すことを要求する特定のパケットを入力受付キュー部1に送る。この特定のパケットには、処理種別が「構成」であることを示す処理種別情報が付されている。構成決定部210から入力受付キュー部1に送られた特定のパケットは、当該入力受付キュー部1で受け付けられて、当該入力受付キュー部1にキューイングされる。
In step G4, the
入力受付キュー部1にキューイングされた特定のパケット(以下、特定入力パケットと称する)は、図9および図10のフローチャートを参照しての整列マルチキャスト部2(内の合意部262)の動作から明らかなように、対象のコンピュータ100-jを含むn台(n=7)のコンピュータ(コンピュータ100-1〜100-7)の整列マルチキャスト部2による整列マルチキャストの対象となる。
A specific packet queued in the input reception queue unit 1 (hereinafter referred to as a specific input packet) is obtained from the operation of the ordered multicast unit 2 (within the agreement unit 262) with reference to the flowcharts of FIGS. As will be apparent, the ordered
もし、n台(n=7)のコンピュータ(コンピュータ100-1〜100-7)のうちの(n−f)台以上のコンピュータで特定入力パケットの合意がとられたならば(図9のステップA2,A3)、当該(n−f)台以上のコンピュータの整列マルチキャスト部2では、上記特定入力パケットが、合意部262から構成決定部210に渡されるとともに、入力パケットジャーナル記憶部22に格納される(図9のステップA10)。
If the agreement of specific input packets has been reached by (n−f) or more of n (n = 7) computers (computers 100-1 to 100-7) (step of FIG. 9). In the aligned
構成決定部210は、合意部262から上記特定入力パケットが渡されたことをもって、対象のコンピュータ100-jを分散システム1000から外す合意が(n−f)台以上のコンピュータでとられたと判定する(図15のステップG5のYES)。この場合、構成決定部210は、構成記憶部211から対象のコンピュータ100-jを示す情報(ID)を削除することにより、当該対象のコンピュータを分散システム1000から外す(図15のステップG6)。
The
構成決定部210(コンピュータ100-iの構成決定部210)は、上記ステップG3からの処理を、現在分散システム1000を構成しているn台のコンピュータのうち、コンピュータ100-iを除く(n−1)台のコンピュータ(他コンピュータ)について繰り返す(図15のステップG2)。
The configuration determining unit 210 (the
本実施形態によれば、上述のような構成決定部210の処理により、nおよびfをスケールダウンすることができる。以下、このnおよびfのスケールダウンについて説明する。
According to the present embodiment, n and f can be scaled down by the processing of the
まず、分散システム1000が当該分散システム1000の運用開始時に7台のコンピュータ100-1〜100-7(n=7,f=2)から構成される本実施形態では、あるコンピュータ(以下、第1のコンピュータと称する)の障害が検出されて、当該第1のコンピュータを分散システム1000から外す合意が(n−f)台のコンピュータ(ここでは、5台のコンピュータ)でとられたものとする。この場合、分散システム1000の構成は6台(n=6,f=1)のコンピュータから構成されるように変更される。 First, in the present embodiment in which the distributed system 1000 includes seven computers 100-1 to 100-7 (n = 7, f = 2) at the start of operation of the distributed system 1000, a certain computer (hereinafter referred to as the first computer). ) Is detected, and an agreement to remove the first computer from the distributed system 1000 has been reached by (n−f) computers (here, 5 computers). In this case, the configuration of the distributed system 1000 is changed to include six computers (n = 6, f = 1).
次に、6台(n=6,f=1)のコンピュータから構成される分散システム1000において、あるコンピュータ(以下、第2のコンピュータと称する)の障害が検出されて、当該第2のコンピュータを分散システム1000から外す合意が(n−f)台のコンピュータ(ここでは、5台のコンピュータ)でとられたものとする。この場合、分散システム1000の構成は5台(n=5,f=1)のコンピュータから構成されるように変更される。 Next, in a distributed system 1000 composed of six computers (n = 6, f = 1), a failure of a certain computer (hereinafter referred to as a second computer) is detected, and the second computer is It is assumed that an agreement to be removed from the distributed system 1000 has been reached with (n−f) computers (here, 5 computers). In this case, the configuration of the distributed system 1000 is changed to include five computers (n = 5, f = 1).
次に、5台(n=5,f=1)のコンピュータから構成される分散システム1000において、あるコンピュータ(以下、第3のコンピュータと称する)の障害が検出されて、当該第3のコンピュータを分散システム1000から外す合意が(n−f)台のコンピュータ(ここでは、4台のコンピュータ)でとられたものとする。この場合、分散システム1000の構成は4台(n=4,f=1)のコンピュータから構成されるように変更される。 Next, in a distributed system 1000 composed of five computers (n = 5, f = 1), a failure of a certain computer (hereinafter referred to as a third computer) is detected, and the third computer is It is assumed that an agreement to be removed from the distributed system 1000 has been reached with (n−f) computers (here, four computers). In this case, the configuration of the distributed system 1000 is changed to include four computers (n = 4, f = 1).
このように本実施形態によれば、分散システム1000に含まれる多重化を構成するコンピュータの数を7台(n=7)から4台(n=4)に下げること、つまり、n,fを7,2から4,1にスケールダウンすることができる。この状態では、f=1が実現されているため、4台(n=4)のコンピュータのうち、正常に動作するコンピュータが3台以上あれば、多重化を継続できる。つまり、障害が発生したコンピュータの数が運用開始時のf(ここでは2)で表される(f+1)以上(ここでは3)となっても、少なくとも3台のコンピュータが正常に動作するならば、多重化を継続でき、スプリットブレインを原理的に発生させず、タイムアウトによる故障発生時の処理の中断も発生させることがない。 As described above, according to the present embodiment, the number of computers included in the distributed system 1000 is reduced from seven (n = 7) to four (n = 4), that is, n and f are reduced. You can scale down from 7,2 to 4,1. In this state, since f = 1 is realized, multiplexing can be continued if there are three or more normally operating computers among the four (n = 4) computers. That is, if at least three computers operate normally even if the number of failed computers is equal to or greater than (f + 1) (here 3) represented by f (2 here) at the start of operation. Multiplexing can be continued, split brain is not generated in principle, and processing is not interrupted when a failure occurs due to timeout.
ここで、分散システム1000から外されるコンピュータ100-jの異常(最大順序番号遅延許容値Lを超える遅延)の要因が、当該コンピュータ100-jの一時的な高負荷のためのスローダウンにあるものとする。この場合、コンピュータ100-jはスローダウンから回復して、構成記憶部211の情報に基づいてn台のコンピュータの1つとして動作する可能性がある。
Here, the cause of the abnormality of the computer 100-j removed from the distributed system 1000 (the delay exceeding the maximum sequence number delay allowable value L) is the slowdown due to the temporary high load of the computer 100-j. Shall. In this case, the computer 100-j may recover from the slowdown and operate as one of the n computers based on information in the
しかし、コンピュータ100-jの構成記憶部211の内容は、現在分散システム1000を構成しているコンピュータの構成記憶部211の内容ではなく、当該コンピュータ100-jが分散システム1000から外された(切り離された)際の構成記憶部211の内容である。ここで、コンピュータ100-jが分散システム1000から切り離された際のn,fをnold,foldで表し、現在のn,fをnnew,fnewで表すならば、コンピュータ100-jは、(nnew−fnew)台のコンピュータではなくて、(nold−fold)台のコンピュータで合意をとる必要がある。しかし、nold台のコンピュータのうちのnnew台のコンピュータは、現在の分散システム1000を構成している。したがってコンピュータ100-jは、当該コンピュータ100-jを含む(nold−fold)台のコンピュータで合意をとることはできず、現在の分散システム1000を構成しているnnew台のコンピュータの動作に悪影響を及ぼすことはない。
However, the content of the
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば上記実施形態では、コンピュータ100-jの異常(障害)の検出に、該当入力順序番号と当該コンピュータ100-jの最大確定入力順序番号との差が用いられている。しかし、コンピュータ100-jの異常の検出に他の手法を用いることも可能である。例えば上記特許文献1に従来技術として記載されているような、ハートビート・タイムアウト・アルゴリズム、つまり各コンピュータが定期的に送出するハートビートが一定時間以上確認できない場合に、当該コンピュータの異常(障害)を判定するという手法を用いることも可能である。この手法では、上記特許文献1に従来技術の問題点として指摘されているように、障害の誤検出が発生してスプリットブレインに陥るおそれがある。しかし、ハートビート・タイムアウト・アルゴリズムによって例えばコンピュータ100-jの障害を検出した場合に、同様の障害検出を行っているコンピュータがn−f台以上存在することを確認することにより、つまりコンピュータ100-jの障害の検出の合意をn−f台以上のコンピュータでとることにより、スプリットブレインの発生を原理的に防止できる。
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. For example, in the above embodiment, the difference between the corresponding input sequence number and the maximum confirmed input sequence number of the computer 100-j is used to detect an abnormality (failure) in the computer 100-j. However, other methods can be used for detecting an abnormality of the computer 100-j. For example, when a heartbeat timeout algorithm as described in
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。 In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
1…入力受付キュー部、2…整列マルチキャスト部、3…アプリケーションプログラム、4…プログラム状態管理部、5…出力フィルタ部、21…入力順序番号記憶部、22…入力パケットジャーナル記憶部、23…プロトコルデータ送受信部、24…ステップ番号記憶部、25…候補パケット記憶部、26…入力パケット確定判定部、27…最大確定入力順序番号記憶部、28…遅延記憶部、29…スキップ判定部、100-1〜100-7,100-i…コンピュータ、210…構成決定部、210a…障害検出部、211…構成記憶部、212…最大順序番号遅延許容値記憶部、213…他コンピュータ最大確定入力順序番号記憶部、261…入力候補収集部、262…合意部、1000…分散システム、2000…クライアント装置、A…ネットワーク、B…ネットワーク。
DESCRIPTION OF
Claims (5)
前記m台のコンピュータの各々は、
同期的に動作させられるべきn台のコンピュータを識別する情報を、前記分散システムを構成するコンピュータを識別する情報として格納する構成記憶手段と、
前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータを同期的に動作させ、当該n台のコンピュータのうちの(n−f)台(fは3f<nを満たす最大の整数である最大許容障害数)以上での多重化を保証するために、当該(n−f)台以上のコンピュータで入力データの合意をとることで当該入力データを整列マルチキャストする合意手段と、
前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータの状態から障害が発生したコンピュータを検出する障害検出手段と、
前記障害検出手段によって障害が発生したコンピュータが検出された場合、前記分散システムの構成を変更すべき事項が発生したと判定し、前記分散システムの構成を変更すべき事項が発生したと判定したコンピュータが(n−f)台以上存在するかによって、前記分散システムの構成を変更するかを決定し、前記分散システムの構成を変更すると決定した場合、前記構成記憶手段に格納されている情報を変更後の前記分散システムの構成を示すように更新する構成決定手段であって、前記変更後の前記分散システムを構成するコンピュータの数nに基づいて、前記変更後の前記分散システムに適合する前記最大許容障害数fを決定する構成決定手段と
を具備することを特徴とする分散システム。 A distributed system that synchronously operates n computers (m is an integer satisfying 4 <n ≦ m at the start of operation ) among m computers (m is an integer greater than 4) connected via a network. ,
Each of the m computers is
Configuration storage means for storing information identifying n computers to be operated synchronously as information identifying the computers constituting the distributed system;
The n computers constituting the distributed system identified by the information stored in the configuration storage means are operated synchronously, and (n−f) computers (f is 3f <of the n computers). In order to guarantee multiplexing at or above the maximum allowable number of failures that is the largest integer satisfying n), the input data is arranged and multicasted by agreeing the input data with the (n−f) computers or more. Means of agreement,
Fault detection means for detecting a computer in which a fault has occurred from the state of n computers constituting the distributed system identified by information stored in the configuration storage means;
When the failure detection unit detects a computer in which a failure has occurred, the computer determines that an item to change the configuration of the distributed system has occurred and determines that an item to change the configuration of the distributed system has occurred Determines whether to change the configuration of the distributed system depending on whether or not (n−f) or more exist, and changes the information stored in the configuration storage means when it is determined to change the configuration of the distributed system Configuration determining means for updating to indicate the configuration of the later distributed system, and based on the number n of computers constituting the changed distributed system, the maximum that matches the changed distributed system A distributed system comprising: a configuration determining unit that determines an allowable fault count f .
前記m台のコンピュータの各々は、他のコンピュータ毎に、合意がとられた整列マルチキャストの最大の順序番号を格納する他コンピュータ最大順序番号記憶手段をさらに具備し、
前記障害検出手段は、前記合意手段によって管理される最新の前記整列マルチキャストの順序番号と前記他コンピュータ最大順序番号記憶手段に格納されている他のコンピュータ毎の整列マルチキャストの最大の順序番号との差が閾値を超えるかによって、当該他のコンピュータの障害発生を検出する
ことを特徴とする請求項1記載の分散システム。 The agreement means manages the ordered multicast subject to agreement by a sequence number serially assigned to the ordered multicast,
Each of the m computers further includes another computer maximum sequence number storage means for storing the maximum sequence number of the ordered multicast agreed for each other computer,
The failure detection means includes a difference between the latest ordered multicast order number managed by the agreement means and the largest ordered multicast order number for each other computer stored in the other computer maximum order number storage means. The distributed system according to claim 1, wherein the occurrence of a failure in the other computer is detected depending on whether the value exceeds a threshold value.
前記m台のコンピュータの各々は、同期的に動作させられるべきn台のコンピュータを識別する情報を、前記分散システムを構成するコンピュータを識別する情報として格納する構成記憶手段と、合意手段と、障害検出手段と、構成決定手段とを具備し、
前記多重化制御方法は、
前記m台のコンピュータの各々の前記合意手段が、前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータを同期的に動作させ、当該n台のコンピュータのうちの(n−f)台(fは3f<nを満たす最大の整数である最大許容障害数)以上での多重化を保証するために、当該(n−f)台以上のコンピュータで入力データの合意をとることで当該入力データを整列マルチキャストするステップと、
前記障害検出手段が、前記構成記憶手段に格納されている情報によって識別される前記分散システムを構成するn台のコンピュータの状態から障害が発生したコンピュータを検出するステップと、
障害が発生したコンピュータが検出された場合、前記分散システムの構成を変更すべき事項が発生したと判定し、前記分散システムの構成を変更すべき事項が発生したと判定したコンピュータが(n−f)台以上存在するかによって、前記分散システムの構成を変更するかを前記構成決定手段が決定するステップと、
前記分散システムの構成を変更すると決定された場合、前記構成決定手段が、前記変更後の前記分散システムを構成するコンピュータの数nに基づいて、前記変更後の前記分散システムに適合する前記最大許容障害数fを決定し、且つ前記構成記憶手段に格納されている情報を変更後の前記分散システムの構成を示すように更新するステップと
を具備することを特徴とする多重化制御方法。 In a distributed system in which m computers (m is an integer greater than 4) are connected via a network, n computers (n is an integer satisfying 4 <n ≦ m at the start of operation) among the m computers. It is a multiplexing control method that operates synchronously and guarantees multiplexing at (n−f) units (f is the maximum integer satisfying 3f <n),
Each of the m computers includes configuration storage means for storing information identifying n computers to be operated synchronously as information for identifying computers constituting the distributed system, agreement means, failure A detection means and a configuration determination means;
The multiplexing control method includes:
The agreement means of each of the m computers operates n computers constituting the distributed system identified by the information stored in the configuration storage means synchronously, and the n computers In order to guarantee multiplexing at or above (n−f) units (f is the maximum allowable number of faults that is the maximum integer satisfying 3f <n), input data on the (n−f) computers or more. Arranging and multicasting the input data with the agreement of
The failure detection means detecting a computer in which a failure has occurred from the state of n computers constituting the distributed system identified by the information stored in the configuration storage means;
When a computer in which a failure has occurred is detected, it is determined that an item to change the configuration of the distributed system has occurred, and a computer that has determined that an item to change the configuration of the distributed system has occurred (n−f A step in which the configuration determining means determines whether to change the configuration of the distributed system depending on whether or not there are more units;
When it is determined that the configuration of the distributed system is to be changed, the configuration determining unit is configured to allow the maximum allowable value that is suitable for the distributed system after the change based on the number n of computers configuring the distributed system after the change. multiplexing control method characterized by comprising the steps of determining the number of error f, and to update, as shown the structure of the distributed system after the change the information stored in said configuration storage means.
前記合意手段は、合意の対象となる整列マルチキャストを当該整列マルチキャストにシリアルに付される順序番号により管理し、The agreement means manages the ordered multicast subject to agreement by a sequence number serially assigned to the ordered multicast,
前記障害検出手段は、前記合意手段によって管理される最新の前記整列マルチキャストの順序番号と前記他コンピュータ最大順序番号記憶手段に格納されている他のコンピュータ毎の整列マルチキャストの最大の順序番号との差が閾値を超えるかによって、当該他のコンピュータの障害発生を検出するThe failure detection means includes a difference between the latest ordered multicast order number managed by the agreement means and the largest ordered multicast order number for each other computer stored in the other computer maximum order number storage means. Detects the failure of the other computer depending on whether the value exceeds the threshold
ことを特徴とする請求項4記載の多重化制御方法。5. The multiplexing control method according to claim 4, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008328750A JP4818349B2 (en) | 2008-12-24 | 2008-12-24 | Distributed system and multiplexing control method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008328750A JP4818349B2 (en) | 2008-12-24 | 2008-12-24 | Distributed system and multiplexing control method for the same |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010152559A JP2010152559A (en) | 2010-07-08 |
JP4818349B2 true JP4818349B2 (en) | 2011-11-16 |
Family
ID=42571593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008328750A Active JP4818349B2 (en) | 2008-12-24 | 2008-12-24 | Distributed system and multiplexing control method for the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4818349B2 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5700009B2 (en) | 2012-09-18 | 2015-04-15 | 横河電機株式会社 | Fault tolerant system |
JP6100384B2 (en) | 2013-09-04 | 2017-03-22 | 株式会社東芝 | Information processing system, server device, information processing method, and program |
US9613078B2 (en) | 2014-06-26 | 2017-04-04 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
SG10201900418SA (en) * | 2014-06-26 | 2019-02-27 | Amazon Tech Inc | Multi-database log with multi-item transaction support |
JP6203407B2 (en) * | 2014-08-05 | 2017-09-27 | 株式会社東芝 | Alignment apparatus, data processing apparatus, program, alignment method, and multiplexing system |
US9799017B1 (en) | 2014-09-19 | 2017-10-24 | Amazon Technologies, Inc. | Cross-data-store operations in log-coordinated storage systems |
US10025802B2 (en) | 2014-09-19 | 2018-07-17 | Amazon Technologies, Inc. | Automated configuration of log-coordinated storage groups |
US10373247B2 (en) | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
US9904722B1 (en) | 2015-03-13 | 2018-02-27 | Amazon Technologies, Inc. | Log-based distributed transaction management |
US10866968B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Compact snapshots of journal-based storage systems |
US10866865B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Storage system journal entry redaction |
US11599520B1 (en) | 2015-06-29 | 2023-03-07 | Amazon Technologies, Inc. | Consistency management using query restrictions in journal-based storage systems |
US11609890B1 (en) | 2015-06-29 | 2023-03-21 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
US10031935B1 (en) | 2015-08-21 | 2018-07-24 | Amazon Technologies, Inc. | Customer-requested partitioning of journal-based storage systems |
US9971822B1 (en) | 2015-12-29 | 2018-05-15 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2682251B2 (en) * | 1991-04-05 | 1997-11-26 | 株式会社日立製作所 | Multiplex controller |
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 |
JP3655263B2 (en) * | 2001-06-15 | 2005-06-02 | 株式会社東芝 | Distributed system and multiplexing control method for the same |
US7334154B2 (en) * | 2004-06-18 | 2008-02-19 | Microsoft Corporation | Efficient changing of replica sets in distributed fault-tolerant computing system |
-
2008
- 2008-12-24 JP JP2008328750A patent/JP4818349B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010152559A (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4818349B2 (en) | Distributed system and multiplexing control method for the same | |
US7944815B2 (en) | System and method for network recovery from multiple link failures | |
JP5804054B2 (en) | Communication system, control device, node, processing rule setting method and program | |
JP4862743B2 (en) | Node, communication method and node program | |
Amir et al. | Prime: Byzantine replication under attack | |
US7702667B2 (en) | Methods and systems for validating accessibility and currency of replicated data | |
JP4822997B2 (en) | Communication apparatus and communication method | |
EP1697843B1 (en) | System and method for managing protocol network failures in a cluster system | |
US20070047453A1 (en) | Reliable message transfer over an unreliable network | |
CN1710887A (en) | Method and apparatus for per-service fault protection and restoration in a packet network | |
JP5742486B2 (en) | Communication apparatus and packet distribution method | |
CN1937521A (en) | Retention of a stack address during primary master failover | |
JP2006174406A (en) | Packet transmission method and packet transmission device | |
WO2013008289A1 (en) | Message processing system and message processing method | |
CN110324166B (en) | Method, device and system for synchronizing target information in multiple nodes | |
JP3655263B2 (en) | Distributed system and multiplexing control method for the same | |
JP6418377B2 (en) | Management target device, management device, and network management system | |
JP4818379B2 (en) | Distributed system having failover function and failover method in the same system | |
JP5168499B2 (en) | Communication network system and high-reliability method of path | |
US7558210B1 (en) | Publish-subscribe looping detection and correction | |
JP4054323B2 (en) | Distributed system and time management method for the same | |
JP4806044B2 (en) | Distributed system having failover function and failover method in the same system | |
JP4956603B2 (en) | Distributed system and logical time adjustment method | |
JP6042549B2 (en) | How to run a computer network | |
JP5869018B2 (en) | Message processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110715 |
|
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: 20110802 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110830 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140909 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4818349 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |