JP2011118747A - Distributed system and logical time adjustment method - Google Patents

Distributed system and logical time adjustment method Download PDF

Info

Publication number
JP2011118747A
JP2011118747A JP2009276596A JP2009276596A JP2011118747A JP 2011118747 A JP2011118747 A JP 2011118747A JP 2009276596 A JP2009276596 A JP 2009276596A JP 2009276596 A JP2009276596 A JP 2009276596A JP 2011118747 A JP2011118747 A JP 2011118747A
Authority
JP
Japan
Prior art keywords
time
logical
computers
agreement
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009276596A
Other languages
Japanese (ja)
Other versions
JP4956603B2 (en
Inventor
Takuya Kumagai
卓也 熊谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2009276596A priority Critical patent/JP4956603B2/en
Publication of JP2011118747A publication Critical patent/JP2011118747A/en
Application granted granted Critical
Publication of JP4956603B2 publication Critical patent/JP4956603B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a distributed system and a logical time adjustment method, for synchronizing logical time with system time by determining an increment value of the logical time from a time interval having been agreed on timing to increment the logical time by agreement, and adjusting the logical time in accordance with the determined time interval. <P>SOLUTION: In the distributed system, each computer 100-i has a logical time storage part 7 for storing information about the logical time updated by agreement processing executed at first time intervals, a logical time management part 6, and an update time storage part 8. The logical time management part 6 calculates a candidate of the increment value to be used to update the information about the logical time from the time interval between a first time that is a system time when the information about the logical time is updated last time and a second time that is a system time when the information is updated last time but one, the time interval being indicated by information stored in the update time storage part 8. The logical time management part 6 determines the increment value by use of a t-fault-tolerant Byzantine agreement algorithm based on the candidate of the increment value, and updates the information about the logical time by the determined increment value. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、ネットワークに接続されたn台のコンピュータのうちの(n−t)台以上のコンピュータが相互にパケットを送受信してt−耐故障ビザンチンビザンチン合意アルゴリズムを用いて合意を取ることにより分散処理を行う分散システムに係り、特に論理時間とシステム時間とを同期させるのに好適な分散システムおよび論理時間調整方法に関する。   In the present invention, distributed processing is performed by (n−t) or more computers out of n computers connected to a network transmitting and receiving packets to each other and using the t-fault-resistant Byzantine Byzantine agreement algorithm. In particular, the present invention relates to a distributed system and a logical time adjustment method suitable for synchronizing logical time and system time.

近年、コンピュータ技術やネットワーク技術の向上は目覚ましく、これに伴って業務のコンピュータ化が広く行われている。また、その業務の内容によっては故障などによる中断が許されないものも多く、最近では分散システムを構築することが一般的になりつつある。   In recent years, the improvement of computer technology and network technology has been remarkable, and along with this, computerization of business has been widely performed. Also, depending on the contents of the business, there are many things that are not allowed to be interrupted due to a failure or the like, and recently it has become common to construct a distributed system.

分散システムとは、ネットワークで接続された複数のコンピュータが、相互に情報を授受しながら、1つの処理を行うシステムである。この分散システムでは、当該システムを構成する複数のコンピュータが一貫性、整合性を保つために、コンピュータ間で合意を取っている。   A distributed system is a system in which a plurality of computers connected via a network perform one process while exchanging information with each other. In this distributed system, in order for a plurality of computers constituting the system to maintain consistency and consistency, an agreement is reached between the computers.

特許文献1には、コンピュータ間で合意を取る処理において、t−耐故障ビザンチン合意アルゴリズムを用いて多重化制御および時間管理をする分散システムが記載されている。t−耐故障ビザンチン合意アルゴリズムとは、t個のプロセスでビザンチン型の故障(故障時の振る舞いに条件を置かない故障)が発生した場合でも、正常プロセス間で共通の値を保持するためのアルゴリズムである。   Patent Document 1 describes a distributed system that performs multiplexing control and time management using a t-fault-tolerant Byzantine agreement algorithm in a process of making an agreement between computers. The t-tolerance Byzantine consensus algorithm is an algorithm for maintaining a common value between normal processes even when a Byzantine-type failure occurs in t processes (failure that does not place a condition on the behavior at the time of failure). is there.

特許文献1に記載の分散システムによれば、このようなt−耐故障ビザンチン合意アルゴリズムを用いて、当該分散システムを構成するn台のコンピュータのうち(n−t)台以上で入力データの合意を取ることにより、t台までの故障・停滞ならば、スプリットブレインなくリアルタイムに動作し続けることができる。つまりスプリットブレインを防止し、かつ故障発生時におけるリアルタイム性の確保を両立させることができる。   According to the distributed system described in Patent Document 1, using such a t-fault-tolerant Byzantine agreement algorithm, input data is agreed between (n−t) or more of n computers constituting the distributed system. By taking it, if there are up to t failures / stagnations, it can continue to operate in real time without split brain. That is, split brain can be prevented and real-time performance can be ensured when a failure occurs.

特許文献1に記載の分散システムを構成するn台のコンピュータは、それぞれシステム時刻をカウントするシステム時計とは別に、仮想時刻をカウントする仮想時計を有している。仮想時計は、仮想時刻カウンタによって構成される。n台のコンピュータ内では、仮想時刻を用いてアプリケーションプログラムが実行される。   Each of the n computers constituting the distributed system described in Patent Document 1 has a virtual clock that counts the virtual time separately from the system clock that counts the system time. The virtual clock is constituted by a virtual time counter. In n computers, an application program is executed using virtual time.

そこで特許文献1に記載の分散システムでは、各コンピュータの仮想時刻(つまり仮想時刻カウンタの値)が、第1の時間間隔で第1の時間に相当する値だけインクリメントされるように、当該インクリメントのタイミングについてt−耐故障ビザンチン合意アルゴリズムを用いて合意を取るようにしている。また、特許文献1に記載の分散システムでは、n台のコンピュータの中で最も進んだシステム時刻の合意を、t−耐故障ビザンチン合意アルゴリズムを用いて第2の時間間隔(但し、第2の時間間隔>第1の時間間隔)で取ることにより、その合意したシステム時刻に合わせるように、当該n台のコンピュータの仮想時刻のインクリメント値が設定される。この設定されたインクリメント値は、最も進んだシステム時刻の合意を取る次のタイミングが到来するまで、上記第1の時間に相当する値として用いられる。これにより、n台のコンピュータがアプリケーションプログラムの実行時に用いる仮想時刻を各コンピュータで一致させることができる。   Therefore, in the distributed system described in Patent Document 1, the virtual time of each computer (that is, the value of the virtual time counter) is incremented by a value corresponding to the first time at the first time interval. The timing is agreed using a t-fault-resistant Byzantine agreement algorithm. Further, in the distributed system described in Patent Document 1, the most advanced system time agreement among the n computers is determined using the t-fault-tolerant Byzantine agreement algorithm at the second time interval (however, the second time interval). > First time interval), the increment value of the virtual time of the n computers is set to match the agreed system time. The set increment value is used as a value corresponding to the first time until the next timing for reaching the agreement of the most advanced system time comes. Thereby, the virtual time which n computers use at the time of execution of an application program can be made to correspond in each computer.

特許第3655263号公報Japanese Patent No. 3655263

近年の分散システムでは、当該分散システムが起動されてからの経過時間、つまり論理時間が用いられる。そこで、分散システムを構成する複数のコンピュータのそれぞれの論理時間を調整するのに、特許文献1に記載の分散システムで適用されているような仮想時刻を調整する技術(以下、従来技術と称する)を利用することが考えられる。   In recent distributed systems, an elapsed time since the start of the distributed system, that is, a logical time is used. Therefore, a technique for adjusting the virtual time as applied in the distributed system described in Patent Document 1 (hereinafter referred to as the prior art) for adjusting the logical time of each of a plurality of computers constituting the distributed system. Can be considered.

しかしながら、従来技術では、たとえ分散システムを構成するコンピュータ間で仮想時刻をインクリメントするタイミングの合意が取れたとしても、その合意を取るのに多大な時間を要した場合には、システム時刻に対して仮想時刻が大きくずれてしまう可能性がある。このため、論理時間を調整するのに従来技術を利用しても、合意処理に多大な時間を要した場合には、論理時間が実際の経過時間から大きくずれてしまう可能性がある。この問題について以下に詳細に説明する。   However, in the prior art, even if an agreement on the timing for incrementing the virtual time is obtained between the computers constituting the distributed system, if it takes a long time to obtain the agreement, The virtual time may be significantly shifted. For this reason, even if the prior art is used to adjust the logical time, if the consensus process takes a long time, the logical time may be greatly deviated from the actual elapsed time. This problem will be described in detail below.

特許文献1に記載されているような、t−耐故障ビザンチン合意アルゴリズムを適用する分散システムでは、当該分散システムを構成するn台のコンピュータのうちt台までの故障・停滞ならば、上述のようにスプリットブレインなくリアルタイムに動作し続けることができる。このことは逆に、(t+1)台以上のコンピュータで例えば停滞が発生すると、合意処理が進まなくなるため、リアルタイム性が確保されなくなることを意味する。   In the distributed system to which the t-fault-tolerant Byzantine agreement algorithm is applied as described in Patent Document 1, if up to t out of the n computers constituting the distributed system are faulty or stagnant, as described above. It can continue to operate in real time without split brain. On the contrary, this means that if, for example, a stagnation occurs in (t + 1) or more computers, the consensus process will not proceed, and real-time performance will not be ensured.

ここで、(t+1)台のコンピュータで停滞が発生し、その後(t+1)台のうちの1台が停滞から復帰したものとする。すると、(n−t)台のコンピュータで合意処理が行われるようになる。   Here, it is assumed that stagnation occurs in (t + 1) computers, and then one of (t + 1) computers returns from the stagnation. Then, the agreement process is performed by (nt) computers.

しかし、(n−t)台のコンピュータで論理時間をインクリメントするタイミングの合意が取れたとしても、従来技術を利用して、その時点において設定されているインクリメント値を用いて論理時間をインクリメントしたのでは、論理時間が分散システムおける実際の経過時間(いわゆるシステム時間)から大きくずれてしまう可能性がある。近年の分散システムでは、フェイルオーバ時間やモニタなどのタイムアウト時間は、論理時間を用いて計測しているため、論理時間が遅延すると、フェイルオーバ時間やタイムアウト時間も遅延するという問題がある。   However, even if (nt) computers agreed on the timing for incrementing the logical time, the logical time was incremented using the increment value set at that time using the prior art. Then, there is a possibility that the logical time is greatly deviated from the actual elapsed time (so-called system time) in the distributed system. In recent distributed systems, the failover time and the timeout time such as monitoring are measured using the logical time. Therefore, if the logical time is delayed, the failover time and the timeout time are also delayed.

本発明は上記事情を考慮してなされたものでその目的は、論理時間のインクリメント値を、当該論理時間をインクリメントするタイミングについて合意が取れた時間間隔を合意によって決定し、その決定された時間間隔に合わせて論理時間を調整することにより、論理時間とシステム時間とを同期させることができる分散システムおよび論理時間調整方法を提供することにある。   The present invention has been made in consideration of the above circumstances, and its purpose is to determine an increment value of a logical time, an agreed time interval for the timing of incrementing the logical time, and an agreed time interval. It is an object of the present invention to provide a distributed system and a logical time adjustment method capable of synchronizing the logical time and the system time by adjusting the logical time according to the above.

本発明の1つの観点によれば、ネットワークに接続されたn台のコンピュータのうちの(n−t)台以上のコンピュータの整列マルチキャスト手段で相互にパケットを送受信してt−耐故障ビザンチンビザンチン合意アルゴリズムを用いて合意を取ることにより分散処理を行う分散システムが提供される。この分散システムにおいて、前記n台のコンピュータの各々は、第1の時間間隔で実行される合意処理によって更新される論理時間の情報を記憶するための論理時間記憶手段と、前記論理時間の情報が前回更新されたシステム時刻としての第1の時刻および前々回更新されたシステム時刻としての第2の時刻の情報を記憶するための更新時刻記憶手段と、前記更新時刻記憶手段に記憶されている情報の示す前記第1の時刻と前記第2の時刻との時間間隔から、前記論理時間の情報を更新するのに用いられるインクリメント値の候補を計算する論理時間管理手段であって、インクリメント値の候補に基づきt−耐故障ビザンチン合意アルゴリズムを用いてインクリメント値を決定し、決定したインクリメント値で前記論理時間の情報を更新する論理時間管理手段とを具備する。   According to one aspect of the present invention, a t-fault-tolerant Byzantine Byzantine consensus algorithm by transmitting and receiving packets to and from each other by an aligned multicast means of (nt) or more computers among n computers connected to a network. A distributed system for performing distributed processing is provided by obtaining an agreement using. In this distributed system, each of the n computers includes a logical time storage means for storing logical time information updated by an agreement process executed at a first time interval, and the logical time information Update time storage means for storing information on the first time as the system time updated last time and information on the second time as the system time updated last time, and information stored in the update time storage means Logical time management means for calculating a candidate for an increment value used to update the information on the logical time from a time interval between the first time and the second time shown, wherein the candidate for the increment value Based on the t-fault tolerant Byzantine agreement algorithm, an increment value is determined, and the logical time information is updated with the determined increment value. ; And a management time management means.

本発明によれば、n台のコンピュータの各々は、論理時間を更新する更新時刻について前回の更新時刻を示すシステム時刻としての第1の時刻と前々回の更新時刻を示すシステム時刻としての第2の時刻の情報を更新時刻記憶手段に記憶しておき、論理時間のインクリメント値を、前回の更新時刻と前々回の更新時刻との時間間隔から、t−耐故障ビザンチンビザンチン合意アルゴリズムを用いて合意によって決定するようにしているので、その決定された時間間隔に合わせて論理時間を調整することにより、論理時間とシステム時間とを同期させることができる。   According to the present invention, each of the n computers has the first time as the system time indicating the previous update time and the second as the system time indicating the previous update time for the update time for updating the logical time. Time information is stored in the update time storage means, and the logical time increment value is determined by agreement using the t-fault-resistant Byzantine Byzantine agreement algorithm from the time interval between the previous update time and the last update time. Therefore, the logical time and the system time can be synchronized by adjusting the logical time according to the determined time interval.

本発明の一実施形態に係る分散システムの構成を示すブロック図。1 is a block diagram showing a configuration of a distributed system according to an embodiment of the present invention. 図1に示されるコンピュータの構成を示すブロック図。The block diagram which shows the structure of the computer shown by FIG. 入力パケットデータのデータ構造例を示す図。The figure which shows the data structure example of input packet data. 整列マルチキャストプロトコルデータのレイアウトを示す図。The figure which shows the layout of the alignment multicast protocol data. 同実施形態で適用される論理時間の調整方法の手順を示すフローチャート。6 is a flowchart showing the procedure of a logical time adjustment method applied in the embodiment. 分散システム内のコンピュータの停滞により合意が遅延した場合の各コンピュータにおける合意時間間隔の一例を示す図。The figure which shows an example of the agreement time interval in each computer when agreement is delayed by the stagnation of the computer in a distributed system. 分散システム内のコンピュータの停滞により合意が遅延した場合の、各コンピュータにおけるシステム時間と論理時間との関係の一例を簡略化して示す図。The figure which simplifies and shows an example of the relationship between the system time in each computer, and logical time when an agreement is delayed by the stagnation of the computer in a distributed system.

以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る分散システムの構成を示すブロック図である。図1において、分散システム10は、t−耐故障ビザンチン合意アルゴリズム(t>0)による多重化を保証するのに必要な台数以上のコンピュータ、例えば4(n=4)台のコンピュータ100-1(#1)〜100-4(#4)から構成されているものとする。また本実施形態では、tは1であるものとする。
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, the distributed system 10 has more than the number of computers necessary to guarantee multiplexing by the t-fault-tolerant Byzantine agreement algorithm (t> 0), for example, 4 (n = 4) computers 100-1 (# 1) to 100-4 (# 4). In the present embodiment, t is 1.

コンピュータ100-1〜100-4は、ネットワークAを介してクライアント装置200と接続されている。コンピュータ100-1〜100-4は、クライアント装置200以外のクライアント装置(図示せず)ともネットワークAを介して接続されているものとする。本実施形態においてネットワークAはパブリックネットワーク(外部ネットワーク)である。コンピュータ100-1〜100-4間は、ネットワークBを介して接続されている。本実施形態においてネットワークBはプライベートネットワーク(内部ネットワーク)である。   The computers 100-1 to 100-4 are connected to the client device 200 via the network A. The computers 100-1 to 100-4 are also connected to a client device (not shown) other than the client device 200 via the network A. In the present embodiment, the network A is a public network (external network). The computers 100-1 to 100-4 are connected via a network B. In the present embodiment, the network B is a private network (internal network).

コンピュータ100-1〜100-4は、前記特許文献1に記載された分散システムにおけるコンピュータと同様に、ネットワークAを介して合意に必要な情報を送受信し、合意の判定を行っている。t−耐故障ビザンチン合意アルゴリズムでは、t台までの故障停止が許容されるものとし、(n−t)台以上のコンピュータで合意が得られた時点で、合意情報を確定する。そのため、故障や停滞などにより合意に間に合わなかったコンピュータが存在しても、この条件を満たした時点で先に進むため、タイムアウトによる合意の遅延が発生せず、リアルタイム性が確保される。ただし、(t+1)台以上のコンピュータが一時的に停滞したり、ネットワークの負荷により合意情報の授受に時間がかかったりした場合は、合意情報を確定するのに時間がかかるため、合意処理が遅延することになる。   Similar to the computer in the distributed system described in Patent Document 1, the computers 100-1 to 100-4 transmit and receive information necessary for an agreement via the network A and determine the agreement. In the t-fault tolerance Byzantine agreement algorithm, up to t faults are allowed to be stopped, and the agreement information is determined when agreements are obtained with (nt) or more computers. For this reason, even if there is a computer that is not in time for the agreement due to failure or stagnation, the processing proceeds when this condition is satisfied, so that agreement delay due to timeout does not occur, and real-time performance is ensured. However, if (t + 1) or more computers are temporarily stagnant or it takes time to exchange agreement information due to network load, it takes time to finalize the agreement information, so the agreement processing is delayed. Will do.

コンピュータ100-1〜100-4は、それぞれ同一のアプリケーションプログラム3(図2参照)を有している。コンピュータ100-1〜100-4は、同一の初期状態から始まる。その後、クライアント装置200から分散システムに入力されるデータは、必ず整列マルチキャストを通して、コンピュータ100-1〜100-4に同一順序で配送される。これにより、コンピュータ100-1〜100-4においてそれぞれのアプリケーションプログラム3が実行される。   Each of the computers 100-1 to 100-4 has the same application program 3 (see FIG. 2). The computers 100-1 to 100-4 start from the same initial state. Thereafter, data input from the client device 200 to the distributed system is always delivered to the computers 100-1 to 100-4 in the same order through ordered multicast. Thereby, each application program 3 is executed in the computers 100-1 to 100-4.

コンピュータ100-1〜100-4がそれぞれ有するアプリケーションプログラム3への入力データ列は、整列マルチキャストにより同一順序となっている。このため、前記特許文献1に記載されているような整列マルチキャストを用いた決定性のプログラムの特徴により、コンピュータ100-1〜100-4の状態が同一に保たれ、出力データ列もすべて同じとなる。つまり、プログラムの実行が多重化される。   The input data string to the application program 3 that each of the computers 100-1 to 100-4 has has the same order by the ordered multicast. For this reason, the state of the computers 100-1 to 100-4 is kept the same and the output data strings are all the same due to the features of the deterministic program using the ordered multicast as described in Patent Document 1. . That is, program execution is multiplexed.

図2は、図1に示されるコンピュータ100-i(i=1,2,…4)の構成を示すブロック図である。図2において、クライアント装置200からネットワークAを介してコンピュータ100-iに送信されて、当該コンピュータ100-iの入力受付キュー部(以下、受付キューと称する)1で受け付けられたパケットは候補パケットとして、当該受付キュー1に受付順に積まれる。受付キュー1に積まれた候補パケットは、整列マルチキャスト部2(内の入力パケット確定判定部26に含まれている合意部262)によってアプリケーションプログラム3または後述する論理時間管理部6に入力パケットとして配送される。なお、受付キュー1に積まれる候補パケットには、クライアント装置200から送られる処理種別が「アプリケーション」の候補パケットの他に、論理時間管理部6から送られる処理種別が「論理時間」の候補パケットがある。   FIG. 2 is a block diagram showing a configuration of the computer 100-i (i = 1, 2,... 4) shown in FIG. In FIG. 2, a packet transmitted from the client apparatus 200 to the computer 100-i via the network A and received by the input reception queue unit (hereinafter referred to as reception queue) 1 of the computer 100-i is a candidate packet. Are stacked in the reception queue 1 in the order of reception. Candidate packets loaded in the reception queue 1 are delivered as input packets to the application program 3 or a logical time management unit 6 described later by the ordered multicast unit 2 (the agreement unit 262 included in the input packet determination unit 26). Is done. Note that candidate packets accumulated in the reception queue 1 include candidate packets whose processing type is “logical time” sent from the logical time management unit 6 in addition to candidate packets whose processing type is “application” sent from the client device 200. There is.

アプリケーションプログラム3は、配送された入力パケットを受けて、プログラム状態管理部4に保存されている状態に従って当該入力パケットを処理し、出力パケットを生成する。生成された出力パケットは、出力フィルタ部5で選別されてから、ネットワークAを介してクライアント装置200に返却される(出力)。   The application program 3 receives the delivered input packet, processes the input packet according to the state stored in the program state management unit 4, and generates an output packet. The generated output packet is selected by the output filter unit 5 and then returned to the client device 200 via the network A (output).

次に、コンピュータ100-iの整列マルチキャスト部2の構成について説明する。整列マルチキャスト部2は、前記特許文献1に記載された整列マルチキャスト部と同様に、入力順序番号記憶部21、入力パケットジャーナル記憶部22、整列マルチキャストプロトコルデータ送受信部(以下、プロトコルデータ送受信部と称する)23、ステップ番号記憶部24、候補パケット記憶部25、入力パケット確定判定部26、最大確定入力順序番号記憶部27、遅延記憶部28およびスキップ判定部29の周知の構成を含んでいる。   Next, the configuration of the ordered multicast unit 2 of the computer 100-i will be described. Similar to the ordered multicast unit described in Patent Document 1, the ordered multicast unit 2 has an input sequence number storage unit 21, an input packet journal storage unit 22, an ordered multicast protocol data transmission / reception unit (hereinafter referred to as a protocol data transmission / reception unit). ) 23, step number storage unit 24, candidate packet storage unit 25, input packet determination determination unit 26, maximum determination input sequence number storage unit 27, delay storage unit 28, and skip determination unit 29.

入力順序番号記憶部21は、整列マルチキャストによってコンピュータ100-iへ次に配送される入力パケットの順序番号(つまり整列マルチキャストにシリアルに付される最新の順序番号)を格納する。入力パケットジャーナル記憶部22は、整列マルチキャストによってコンピュータ100-iへの配送が確定した入力パケットの列を最近のものから一定の量だけ格納する。このため、入力パケットジャーナル記憶部22に一定の量の入力パケットの列が格納されている状態で、最新の確定済み入力パケットを当該記憶部22に格納する場合には、その時点で最も古い確定済み入力パケットが当該記憶部22から削除される。   The input sequence number storage unit 21 stores the sequence number of the next input packet to be delivered to the computer 100-i by the ordered multicast (that is, the latest sequence number assigned serially to the ordered multicast). The input packet journal storage unit 22 stores a certain amount of the input packet sequence that is confirmed to be delivered to the computer 100-i by the ordered multicast from the latest one. For this reason, when the latest determined input packet is stored in the storage unit 22 in a state where a certain amount of input packet columns are stored in the input packet journal storage unit 22, the oldest determination at that time The completed input packet is deleted from the storage unit 22.

プロトコルデータ送受信部23は、他のコンピュータのプロトコルデータ送受信部23とネットワークBを介して整列マルチキャストプロトコルデータを授受する。プロトコルデータ送受信部23は、候補パケットブロードキャスト部230を含む。候補パケットブロードキャスト部230は、候補パケット(後述する候補種類の整列マルチキャストプロトコルデータ)を、他のすべてのコンピュータにブロードキャスト送信する。   The protocol data transmission / reception unit 23 exchanges ordered multicast protocol data with the protocol data transmission / reception unit 23 of another computer via the network B. The protocol data transmission / reception unit 23 includes a candidate packet broadcast unit 230. Candidate packet broadcasting section 230 broadcasts candidate packets (candidate type of ordered multicast protocol data described later) to all other computers.

本実施形態では、クライアント装置200とコンピュータ100-iとの間のデータの授受と、コンピュータ100-i相互間のデータの授受とで、使用するネットワークが切り替えられる。これによりネットワーク負荷が軽減される。しかし、クライアント装置200とコンピュータ100-iとの間のデータの授受と、コンピュータ100-i相互間のデータの授受とが、例えばネットワークAを介して行われる構成であっても構わない。またネットワークAが必ずしもパブリックネットワークである必要はない。   In this embodiment, the network to be used is switched between data exchange between the client apparatus 200 and the computer 100-i and data exchange between the computers 100-i. This reduces the network load. However, the configuration may be such that data exchange between the client device 200 and the computer 100-i and data exchange between the computers 100-i are performed via the network A, for example. Further, the network A is not necessarily a public network.

ステップ番号記憶部24、候補パケット記憶部25および入力パケット確定判定部26は、整列マルチキャストによってコンピュータ100-iのアプリケーションプログラム3へ次に配送される入力パケットを決定するアルゴリズムで用いられる。   The step number storage unit 24, the candidate packet storage unit 25, and the input packet confirmation determination unit 26 are used in an algorithm for determining the next input packet to be delivered to the application program 3 of the computer 100-i by ordered multicast.

ステップ番号記憶部24は、プロトコルのステップを示すステップ番号を格納する。候補パケット記憶部25は、そのステップにおける各コンピュータの「入力候補」となる入力パケットを計n個格納する。   The step number storage unit 24 stores a step number indicating a protocol step. The candidate packet storage unit 25 stores a total of n input packets that are “input candidates” for each computer in that step.

入力パケット確定判定部26は、候補パケット記憶部25の情報から入力パケットの確定の判定および次ステップの「入力候補」の決定を行う。入力パケット確定判定部26はさらに、入力パケットをアプリケーションプログラム3および論理時間管理部6のいずれに渡すかを決定する。この決定のために、受付キュー1に積まれる候補パケットには、処理種別を示す処理種別情報が付加される。入力パケット確定判定部26は、入力候補収集部261および合意部262を含む。   The input packet determination determination unit 26 determines the determination of the input packet from the information in the candidate packet storage unit 25 and determines the “input candidate” in the next step. The input packet confirmation determination unit 26 further determines whether the input packet is passed to the application program 3 or the logical time management unit 6. For this determination, the processing type information indicating the processing type is added to the candidate packet loaded in the reception queue 1. The input packet confirmation determination unit 26 includes an input candidate collection unit 261 and an agreement unit 262.

図3は受付キュー1に積まれるデータ(入力パケットデータ)のデータ構造例を示す。図3に示されるように、入力パケットデータは、処理種別および入力パケットの各フィールドを含む。入力パケットフィールドには入力パケットが格納(設定)され、処理種別フィールドには処理種別情報が格納される。   FIG. 3 shows an example of the data structure of data (input packet data) accumulated in the reception queue 1. As shown in FIG. 3, the input packet data includes fields of processing type and input packet. An input packet is stored (set) in the input packet field, and process type information is stored in the process type field.

本実施形態において処理種別情報は、入力パケットフィールドに格納されている入力パケットをアプリケーションプログラム3または論理時間管理部6のいずれに渡すかを入力パケット確定判定部26の合意部262が決定するための処理種別を示す。そのため、処理種別情報の示す処理種別は、(1)アプリケーションと(2)論理時間とに分けられる。処理種別が「アプリケーション」の場合、入力パケットが外部のクライアント装置20から入力されたものであることをも示し、処理種別が「論理時間」の場合、入力パケットが分散システム10を構成するいずれかのコンピュータの論理時間管理部6から当該いずれかのコンピュータの受付キュー1に入力されたものであることをも示す。   In this embodiment, the processing type information is used by the agreement unit 262 of the input packet determination determination unit 26 to determine whether the input packet stored in the input packet field is to be passed to the application program 3 or the logical time management unit 6. Indicates the processing type. Therefore, the process type indicated by the process type information is divided into (1) application and (2) logical time. When the processing type is “application”, it also indicates that the input packet is input from the external client device 20, and when the processing type is “logical time”, any of the input packets that constitute the distributed system 10 It is also shown that it is input to the reception queue 1 of any one of the computers from the logical time management unit 6 of the computer.

再び図2を参照すると、最大確定入力順序番号記憶部27は、他のコンピュータも含め、配送が確定したことがわかっている最大の入力順序番号を格納する。遅延記憶部28は、他の(n−1)台(n=4)のコンピュータよりも遅延しているかどうかを示す(n−1)個の遅延フラグ(n=4の本実施形態では、3個のフラグ)を格納する。スキップ判定部29は、遅延記憶部28の情報からスキップ動作の必要性を判定およびスキップ動作を実行する。   Referring again to FIG. 2, the maximum confirmed input sequence number storage unit 27 stores the maximum input sequence number that is known to have been delivered, including other computers. The delay storage unit 28 has (n−1) delay flags (3 in the present embodiment where n = 4) indicating whether or not it is delayed from the other (n−1) computers (n = 4). Number of flags). The skip determination unit 29 determines the necessity of the skip operation from the information in the delay storage unit 28 and executes the skip operation.

以降の説明では、入力順序番号記憶部21に格納された入力順序番号を該当入力順序番号と呼び、ステップ番号記憶部24に格納されたステップ番号を該当ステップ番号と呼ぶ。最大確定入力順序番号記憶部27に格納された入力順序番号を、該当最大確定入力順序番号と呼ぶ。コンピュータ100-iの整列マルチキャスト部2に含まれている候補パケット記憶部25に格納されているn個の「入力候補」のうち、当該コンピュータ100-i自身(自コンピュータ)に対応する「入力候補」を自候補と呼び、当該自候補以外の「入力候補」を他候補と呼ぶ。   In the following description, the input sequence number stored in the input sequence number storage unit 21 is referred to as a corresponding input sequence number, and the step number stored in the step number storage unit 24 is referred to as a corresponding step number. The input sequence number stored in the maximum determined input sequence number storage unit 27 is referred to as a corresponding maximum determined input sequence number. Of the n “input candidates” stored in the candidate packet storage unit 25 included in the ordered multicast unit 2 of the computer 100-i, the “input candidates” corresponding to the computer 100-i itself (own computer) Is called a self-candidate, and “input candidates” other than the self-candidate are called other candidates.

次に、プロトコルデータ送受信部23によって送受信される整列マルチキャストプロトコルデータについて説明する。
図4は、整列マルチキャストプロトコルデータのレイアウトを示す図である。図3に示されるように、プロトコルデータ送受信部23によって送受信される整列マルチキャストプロトコルデータは、種類、送信者、入力順序番号、ステップ番号(整列マルチキャストステップ番号)、最大確定入力順序番号、処理種別および入力パケットの各フィールドを含む。図3に示される整列マルチキャストプロトコルデータが前記特許文献1に記載されているプロトコルデータと相違するのは、前述の処理種別フィールドが追加されている点にある。
Next, the ordered multicast protocol data transmitted / received by the protocol data transmitting / receiving unit 23 will be described.
FIG. 4 is a diagram showing a layout of the ordered multicast protocol data. As shown in FIG. 3, the ordered multicast protocol data transmitted / received by the protocol data transmitting / receiving unit 23 includes a type, a sender, an input sequence number, a step number (aligned multicast step number), a maximum confirmed input sequence number, a processing type, and Contains each field of the input packet. The arranged multicast protocol data shown in FIG. 3 is different from the protocol data described in Patent Document 1 in that the processing type field is added.

整列マルチキャストプロトコルデータは先頭の種類フィールドによって、次の3つに使い分けられる。
(1)候補種類
入力順序番号フィールド、ステップ番号フィールド、入力パケットフィールドには、それぞれ、送信者(送信側コンピュータ)の送信時における該当入力順序番号、該当ステップ番号、自候補が格納される。
The ordered multicast protocol data is used in the following three types depending on the type field at the top.
(1) Candidate type The input order number field, the step number field, and the input packet field respectively store a corresponding input order number, a corresponding step number, and a self-candidate at the time of transmission by the sender (sender computer).

(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 journal storage unit 22 at the time of transmission by the sender. The input packet is stored in the field. In this case, the step number field is not used.

(3)遅延種類
その入力順序番号に対応する入力パケットが、送信者の送信時における入力パケットジャーナル記憶部22にないことを示す。この場合、ステップ番号フィールドおよび入力パケットフィールドは使用されない。
(3) Delay type Indicates that there is no input packet corresponding to the input sequence number in the input packet journal storage unit 22 at the time of transmission by the sender. In this case, the step number field and the input packet field are not used.

いずれの種類の整列マルチキャストプロトコルデータにおいても、最大確定入力順序番号フィールドには、送信者(送信側コンピュータ)からの整列マルチキャストプロトコルデータ送信時における該当最大確定入力順序番号が格納される。また、整列マルチキャストプロトコルデータの受信側コンピュータにおける該当最大確定入力順序番号は、当該受信側コンピュータで確定された入力パケットの順序番号と、当該受信側コンピュータで受信された整列マルチキャストプロトコルデータ中の最大確定入力順序番号とのうち、最も大きいものに更新される。   In any type of ordered multicast protocol data, the maximum determined input sequence number field stores the corresponding maximum determined input sequence number at the time of transmitting the ordered multicast protocol data from the sender (sender computer). In addition, the corresponding maximum confirmed input sequence number in the receiving computer of the ordered multicast protocol data is the sequence number of the input packet determined in the receiving computer and the maximum determined in the ordered multicast protocol data received in the receiving computer. The input sequence number is updated to the largest one.

本実施形態では、分散システム10のコンピュータ100-iは、前記特許文献1に記載されたコンピュータと異なり、分散システム10が起動してからの経過時間である論理時間を調整するための新規の構成を含む。即ちコンピュータ100-iは、図2に示されるように、論理時間管理部6、論理時間記憶部7、更新時刻記憶部8およびシステム時計9をさらに有する。   In this embodiment, unlike the computer described in Patent Document 1, the computer 100-i of the distributed system 10 has a new configuration for adjusting a logical time that is an elapsed time after the distributed system 10 is activated. including. That is, the computer 100-i further includes a logical time management unit 6, a logical time storage unit 7, an update time storage unit 8, and a system clock 9, as shown in FIG.

論理時間管理部6は、論理時間をインクリメントするのに用いられるインクリメント値の候補となる値を計算し、整列マルチキャストを用いてインクリメント値を決定する。論理時間管理部6は、決定したインクリメント値に基づいて論理時間を更新する。論理時間記憶部7は、論理時間管理部6によって更新された最新の論理時間の情報を格納する。更新時刻記憶部8は、論理時間管理部6によって前回に論理時間が更新された時刻(第1の時刻)と前々回に論理時間が更新された時刻(第2の時刻)の情報を格納する。システム時計9は、分散システム10の実時刻であるシステム時刻を計時する。   The logical time management unit 6 calculates a candidate value for the increment value used to increment the logical time, and determines the increment value using the ordered multicast. The logical time management unit 6 updates the logical time based on the determined increment value. The logical time storage unit 7 stores the latest logical time information updated by the logical time management unit 6. The update time storage unit 8 stores information on the time (first time) when the logical time was last updated by the logical time management unit 6 and the time (second time) when the logical time was updated last time. The system clock 9 measures the system time that is the actual time of the distributed system 10.

次に、本実施形態で適用される論理時間の調整方法の手順について図5のフローチャートを参照して説明する。
コンピュータ100-iの論理時間管理部6は、ステップ番号記憶部24に格納されている該当ステップ番号が初期値であるときは受付キュー1を監視しており、前回論理時間を更新してから第1の所定時間が経過していて(ステップ501のYES)、かつ当該受付キュー1に論理時間のインクリメントを要求する候補パケット(以下、論理時間更新要求パケットと称することもある)が存在するかを判定する(ステップ502)。第1の所定時間は、論理時間更新のタイミングを決定するための、予め設定されている基準となる更新時間間隔である。
Next, the procedure of the logical time adjustment method applied in this embodiment will be described with reference to the flowchart of FIG.
The logical time management unit 6 of the computer 100-i monitors the reception queue 1 when the corresponding step number stored in the step number storage unit 24 is an initial value and updates the logical time last time. 1 whether a predetermined time has elapsed (YES in step 501), and there is a candidate packet (hereinafter also referred to as a logical time update request packet) requesting the reception queue 1 to increment the logical time. Determination is made (step 502). The first predetermined time is an update time interval that is a preset reference for determining the timing of the logical time update.

もし、前回論理時間を更新してから第1の所定時間が経過していて(ステップ501のYES)、かつ受付キュー1に論理時間更新要求パケットが候補パケットとして存在しない場合(ステップ502のNO)、論理時間管理部6は論理時間更新要求パケットを作成する(ステップ503)。作成された論理時間更新要求パケットの処理種別フィールドおよび入力パケットフィールドには、それぞれ、論理時間を示す処理種別情報およびインクリメント値の候補が設定されている。本実施形態では、論理時間を更新するのに用いられるインクリメント値の候補には、前回の合意にかかった時間、つまり前々回に論理時間が更新された時刻(以下、前々回更新時刻と称する)と前回に論理時間が更新された時刻(以下、前回更新時刻と称する)との時間間隔(以下、合意時間間隔)が用いられる。そのため論理時間管理部6は、更新時刻記憶部8から前回と前々回の更新時刻を取得し、その差をインクリメント値の候補とする。   If the first predetermined time has elapsed since the previous logical time was updated (YES in step 501), and no logical time update request packet exists as a candidate packet in the reception queue 1 (NO in step 502). The logical time management unit 6 creates a logical time update request packet (step 503). In the processing type field and the input packet field of the created logical time update request packet, processing type information indicating logical time and increment value candidates are set, respectively. In the present embodiment, the increment value candidates used to update the logical time include the time taken for the previous agreement, that is, the time when the logical time was updated the previous time (hereinafter referred to as the previous update time) and the previous time. The time interval (hereinafter referred to as the agreed time interval) with the time when the logical time is updated (hereinafter referred to as the previous update time) is used. Therefore, the logical time management unit 6 acquires the previous and previous update times from the update time storage unit 8, and sets the difference as a candidate for the increment value.

論理時間管理部6は論理時間更新要求パケットを作成すると(ステップ503)、当該作成した論理時間更新要求パケットを候補パケットとして受付キュー1に投入する(ステップ504)。受付キュー1に投入された候補パケット(論理時間更新要求パケット)は、従来技術においてクライアント装置200からのアプリケーションの候補パケットが受付キュー1に積まれた場合と同様に、コンピュータ100-iの入力パケット確定判定部26内の合意部262による合意処理の対象となり、例えば前記特許文献1に記載されているアルゴリズム1〜4(特許文献1の図5および6参照)を利用して次のように処理される。   When the logical time management unit 6 creates a logical time update request packet (step 503), the logical time update request packet is put into the reception queue 1 as a candidate packet (step 504). The candidate packet (logical time update request packet) input to the reception queue 1 is the input packet of the computer 100-i as in the case where the candidate packet of the application from the client device 200 is loaded in the reception queue 1 in the prior art. It becomes the object of the agreement process by the agreement unit 262 in the decision determination unit 26, and for example, the following processing is performed using the algorithms 1 to 4 described in Patent Document 1 (see FIGS. 5 and 6 of Patent Document 1). Is done.

入力パケット確定判定部26の入力候補収集部261は、当該入力パケット確定判定部26の合意部262による合意処理に際し、前記特許文献1に記載されているアルゴリズム1〜3(特許文献1の図6参照)を実行する候補一覧作成手段として機能して、合意処理の対象となる(n−t)個以上の候補パケットを候補パケット記憶部25に収集するための周知の候補一覧作成処理を行う。収集すべき(n−t)個以上の候補パケットは、(n−t)個以上のコンピュータがそれぞれ次に処理する候補として選択したパケット(ここでは、論理時間更新要求パケット)である。   The input candidate collection unit 261 of the input packet confirmation determination unit 26 performs algorithms 1 to 3 described in Patent Document 1 (FIG. 6 of Patent Document 1) during the agreement process by the agreement unit 262 of the input packet confirmation determination unit 26. The candidate list creation means for executing (see)), and performs a well-known candidate list creation process for collecting in the candidate packet storage unit 25 (nt) or more candidate packets to be subjected to the agreement process. The (n−t) or more candidate packets to be collected are packets (here, logical time update request packets) selected as candidates to be processed next by (nt) or more computers.

候補一覧作成処理において入力候補収集部261は、ステップ番号記憶部24に格納されている該当ステップ番号を次に進める一方、受付キュー1に積まれている論理時間の候補パケットを自候補として候補パケット記憶部25に格納し、かつ、この自候補が入力パケットフィールドに設定された候補種類の整列マルチキャストプロトコルデータをプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によりネットワークBを介して他のすべてのコンピュータ(つまり分散システム10を構成するコンピュータ100-1〜100-4のうち、コンピュータ100-i自身を除くすべてのコンピュータ)にブロードキャスト送信させる。このとき入力候補収集部261は、候補パケット記憶部25内のすべての他候補を空にする。   In the candidate list creation process, the input candidate collection unit 261 advances the corresponding step number stored in the step number storage unit 24 to the next while the candidate packet of the logical time accumulated in the reception queue 1 is set as a candidate packet. The candidate type aligned multicast protocol data, which is stored in the storage unit 25 and has its own candidate set in the input packet field, is transmitted through the network B by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23. Broadcast transmission is performed to computers (that is, all of the computers 100-1 to 100-4 configuring the distributed system 10 except the computer 100-i itself). At this time, the input candidate collection unit 261 empties all other candidates in the candidate packet storage unit 25.

コンピュータ100-iのプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によってブロードキャストされた候補種類の整列マルチキャストプロトコルデータは、他のコンピュータのプロトコルデータ送受信部23で受信されて、当該他のコンピュータの入力候補収集部261によって収集される。つまり他のコンピュータの入力候補収集部261は、該当ステップ番号が初期値でないか、または受付キュー1に候補パケットがないとき、入力順序番号記憶部21に格納されている該当入力順序番号に一致する入力順序番号(が設定された入力順序番号フィールド)を持つ候補種類の整列マルチキャストプロトコルデータであって、当該整列マルチキャストプロトコルデータのステップ番号フィールドに設定されているステップ番号が該当ステップ番号よりも大きい候補種類の整列マルチキャストプロトコルデータがプロトコルデータ送受信部23によって受信されているならば、当該受信された整列マルチキャストプロトコルデータ内の入力パケットフィールドに設定されているパケットを自候補として候補パケット記憶部25に格納する。また他のコンピュータの入力候補収集部261は、自候補とした候補パケットが入力パケットフィールドに設定された候補種類の整列マルチキャストプロトコルデータを当該他のコンピュータのプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によりネットワークBを介してブロードキャストさせる。このとき上記他のコンピュータの入力候補収集部261は、自候補とした候補パケットを、当該候補パケットを含んでいた受信された整列マルチキャストプロトコルデータの送信者に対応する他候補として、候補パケット記憶部25に格納する。   The candidate type of ordered multicast protocol data broadcast by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23 of the computer 100-i is received by the protocol data transmission / reception unit 23 of the other computer, and is input to the other computer. Collected by the candidate collection unit 261. That is, the input candidate collection unit 261 of another computer matches the corresponding input sequence number stored in the input sequence number storage unit 21 when the corresponding step number is not the initial value or there is no candidate packet in the reception queue 1. Candidate type ordered multicast protocol data having an input order number (input order number field in which is set), a candidate whose step number set in the step number field of the ordered multicast protocol data is larger than the corresponding step number If the type of ordered multicast protocol data is received by the protocol data transmitting / receiving unit 23, the packet set in the input packet field in the received ordered multicast protocol data is stored in the candidate packet storage unit 25 as a candidate. You . Further, the input candidate collection unit 261 of another computer transmits the candidate type of ordered multicast protocol data in which the candidate packet set as the candidate is set in the input packet field to the candidate packet broadcast unit in the protocol data transmission / reception unit 23 of the other computer. 230 broadcasts over network B. At this time, the input candidate collection unit 261 of the other computer uses the candidate packet as a candidate for the candidate packet storage unit as another candidate corresponding to the sender of the received ordered multicast protocol data including the candidate packet. 25.

コンピュータ100-iの入力候補収集部261は、他のコンピュータのプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によってブロードキャスト送信された候補種類の整列マルチキャストプロトコルデータが当該コンピュータ100-iのプロトコルデータ送受信部23によって受信された場合、当該受信された整列マルチキャストプロトコルデータに含まれている候補パケット(ここでは、論理時間更新要求パケット)を収集する。即ち入力候補収集部261は、他のコンピュータから受信された整列マルチキャストプロトコルデータ内のステップ番号フィールドに設定されているステップ番号が該当ステップ番号よりも大きくなく、かつ当該受信された整列マルチキャストプロトコルデータ内のステップ番号と該当ステップ番号とが等しいならば、当該受信された整列マルチキャストプロトコルデータ内の候補パケットを、当該受信された整列マルチキャストプロトコルデータの送信者に対応する他候補として候補パケット記憶部25に格納する。   The input candidate collection unit 261 of the computer 100-i transmits and receives the protocol data of the candidate type that is sent by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23 of another computer. When received by the unit 23, the candidate packets (here, logical time update request packets) included in the received ordered multicast protocol data are collected. That is, the input candidate collection unit 261 has a step number set in the step number field in the ordered multicast protocol data received from another computer that is not larger than the corresponding step number, and is included in the received ordered multicast protocol data. If the step number is equal to the corresponding step number, the candidate packet in the received ordered multicast protocol data is stored in the candidate packet storage unit 25 as another candidate corresponding to the sender of the received ordered multicast protocol data. Store.

コンピュータ100-iの合意部262は、入力候補収集部261による上述の候補一覧作成処理によって(n−t)個以上(n=4、t=1の本実施形態では3個以上)の候補パケット(空でない入力候補)が候補パケット記憶部25に収集されると、前記特許文献1に記載されているアルゴリズム4(特許文献1の図5参照)を利用した処理(以下、合意処理と称する)を次のように実行する。まず、合意部262は第1の入力候補選定制御手段として機能して、収集された(n−t)個以上の候補パケットの中に(n−t)個以上の同一内容の候補パケットが存在するかを判定する。   The agreement unit 262 of the computer 100-i has (nt) or more (3 or more in this embodiment where n = 4, t = 1) candidate packets by the above-described candidate list creation process by the input candidate collection unit 261. When (non-empty input candidates) are collected in the candidate packet storage unit 25, processing using the algorithm 4 described in Patent Document 1 (see FIG. 5 of Patent Document 1) (hereinafter referred to as agreement processing) Is executed as follows. First, the agreement unit 262 functions as a first input candidate selection control unit, and (nt) or more candidate packets having the same content exist in the collected (nt) or more candidate packets. Judge whether to do.

もし、(n−t)個以上の同一内容の候補パケットが存在するならば、合意部262は、その候補パケットを次に処理する入力パケットとして確定する。つまり合意部262は、論理時間管理部6によって受付キュー1に投入された候補パケットについて、(n−t)台以上のコンピュータの整列マルチキャスト部2によって合意を取ることにより、入力パケットとして確定する。このとき合意部262は、最大確定入力順序番号記憶部27に格納されている該当最大確定入力順序番号を該当入力順序番号に更新する。また合意部262は、確定された入力パケットが候補パケットとして受付キュー1に存在するならば、当該候補パケットを受付キュー1から削除する。   If there are (nt) or more candidate packets having the same contents, the agreement unit 262 determines the candidate packet as an input packet to be processed next. In other words, the agreement unit 262 determines the candidate packet input to the reception queue 1 by the logical time management unit 6 as an input packet by obtaining an agreement by the aligned multicast unit 2 of (nt) or more computers. At this time, the agreement unit 262 updates the corresponding maximum determined input sequence number stored in the maximum determined input sequence number storage unit 27 to the corresponding input sequence number. The agreement unit 262 deletes the candidate packet from the reception queue 1 if the confirmed input packet exists in the reception queue 1 as a candidate packet.

これに対し、(n−t)個以上の同一内容の候補パケットが存在せず、つまり(n−t)個以上の候補パケットの合意が取れず、したがって次に処理する入力パケットを確定できない場合、合意部262は第1の入力候補選定制御手段として機能する。そして合意部262は、収集された(n−t)個以上の候補パケットの中に過半数以上の同一の候補が存在するかによって、次のように自候補を決定する。   On the other hand, when (nt) or more candidate packets having the same contents do not exist, that is, (nt) or more candidate packets cannot be agreed, and therefore the input packet to be processed next cannot be determined. The agreement unit 262 functions as first input candidate selection control means. Then, the agreement unit 262 determines its own candidate as follows depending on whether or not a majority or more of the same candidates exist in the collected (n−t) or more candidate packets.

まず、収集された(n−t)個以上の候補パケットの中に過半数以上の同一の候補パケットが存在するならば、合意部262は、その過半数以上の同一の候補パケットを選択して自候補として候補パケット記憶部25に格納し、かつ、この自候補が入力パケットフィールドに設定された候補種類の整列マルチキャストプロトコルデータをプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によりネットワークBを介して他のすべてのコンピュータにブロードキャスト送信させる。このとき合意部262は、候補パケット記憶部25に格納されているすべての他候補を破棄して、入力候補収集部261による候補パケットの収集を再実行させる。   First, if more than a majority of the same candidate packets exist in the collected (n−t) or more candidate packets, the agreement unit 262 selects the same or more of the same candidate packets and selects its own candidate. As a candidate packet storage unit 25 and the candidate type of the ordered multicast protocol data in which the candidate is set in the input packet field is transmitted via the network B by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23. Broadcast to all computers. At this time, the agreement unit 262 discards all other candidates stored in the candidate packet storage unit 25 and causes the input candidate collection unit 261 to collect candidate packets again.

これに対し、過半数以上の同一の候補パケットが存在しないならば、合意部262は第3の入力候補選定制御手段として機能する。そして合意部262は、候補パケット記憶部25に格納されている入力候補の中からランダムに候補(入力パケット)を自候補として選択し、かつ、この自候補が入力パケットフィールドに設定された候補種類の整列マルチキャストプロトコルデータをプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によりネットワークBを介して他のすべてのコンピュータに送信させる。このとき合意部262は、候補パケット記憶部25に格納されているすべての他候補を破棄する。   On the other hand, if there is no more than a majority of the same candidate packets, the agreement unit 262 functions as a third input candidate selection control unit. Then, the agreement unit 262 randomly selects a candidate (input packet) from the input candidates stored in the candidate packet storage unit 25 as its own candidate, and the candidate type in which this own candidate is set in the input packet field The multicast packet data is sent to all other computers via the network B by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23. At this time, the agreement unit 262 discards all other candidates stored in the candidate packet storage unit 25.

合意部262は、該当入力順序番号における入力パケットを確定すると、つまり該当入力順序番号における入力パケットに関して合意が取られて、整列マルチキャストが確定すると、候補出力先切り替え手段として機能して次の処理を実行する。即ち合意部262は、確定された入力パケットに付されている処理種別情報の示す処理種別が「論理時間」であるか否(「アプリケーション」である)か、つまり確定された入力パケットが論理時間のインクリメントを要求する論理時間更新要求パケットであるかを判定する。   When the agreement unit 262 determines the input packet at the corresponding input sequence number, that is, when the input packet at the corresponding input sequence number is agreed and the ordered multicast is determined, the agreement unit 262 functions as a candidate output destination switching unit and performs the next process. Execute. That is, the agreement unit 262 determines whether or not the processing type indicated by the processing type information attached to the determined input packet is “logical time” (“application”), that is, the determined input packet is the logical time. It is determined whether the packet is a logical time update request packet requesting increment of.

もし、処理種別が「論理時間」であるならば、合意部262は確定された入力パケットを論理時間管理部6に渡すとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する。これに対し、処理種別が「論理時間」であるないらば、合意部262は確定された入力パケットをアプリケーションプログラム3に配送するとともに、当該入力パケットを入力パケットジャーナル記憶部22に格納する。このように入力パケットが、処理種別に応じて論理時間管理部6またはアプリケーションプログラム3に選択的に渡される点で、入力パケットがアプリケーションプログラム3に渡される特許文献1とは相違する。   If the processing type is “logical time”, the agreement unit 262 passes the determined input packet to the logical time management unit 6 and stores the input packet in the input packet journal storage unit 22. On the other hand, if the processing type is “logical time”, the agreement unit 262 delivers the determined input packet to the application program 3 and stores the input packet in the input packet journal storage unit 22. In this way, the input packet is selectively transferred to the logical time management unit 6 or the application program 3 according to the processing type, and is different from Patent Document 1 in which the input packet is transferred to the application program 3.

論理時間管理部6は、論理時間更新要求パケットを候補パケットとして受付キュー1に投入すると(ステップ504)、ステップ505に進む。ステップ505において論理時間管理部6は、当該論理時間管理部6に合意部262から論理時間更新要求パケットが入力パケットとして配送されたかによって、当該論理時間更新要求パケットが入力パケットとして確定されたかを判定する。   When the logical time management unit 6 inputs the logical time update request packet as a candidate packet into the reception queue 1 (step 504), the logical time management unit 6 proceeds to step 505. In step 505, the logical time management unit 6 determines whether the logical time update request packet is confirmed as an input packet depending on whether the logical time update request packet is delivered as an input packet from the agreement unit 262 to the logical time management unit 6. To do.

論理時間管理部6はまた、前回論理時間を更新してから第1の所定時間が経過していない場合には(ステップ501のNO)、ステップ502乃至504をスキップして、候補パケットを作成することなくステップ505に進む。また論理時間管理部6は、前回論理時間を更新してから第1の所定時間が経過し(ステップ501のYES)、かつ論理時間更新要求パケットが受付キュー1に候補パケットとして存在する場合には(ステップ502のYes)、ステップ503乃至504をスキップして、候補パケットを作成することなくステップ505に進む。   The logical time management unit 6 also creates a candidate packet by skipping steps 502 to 504 when the first predetermined time has not elapsed since the previous logical time was updated (NO in step 501). It progresses to step 505, without. The logical time management unit 6 also determines that the first predetermined time has elapsed since the previous logical time was updated (YES in step 501) and the logical time update request packet exists as a candidate packet in the reception queue 1. (Yes in Step 502), Steps 503 to 504 are skipped, and the process proceeds to Step 505 without creating a candidate packet.

論理時間管理部6はステップ505において、論理時間更新要求パケットが入力パケットとして確定されたかを、合意部262から論理時間更新要求パケットが配送されたかによって判定する。論理時間管理部6は、論理時間更新要求パケットが入力パケットとして確定されたと判定した場合(ステップ505のYES)、当該確定された入力パケット(論理時間更新要求パケット)に設定されているインクリメント値の候補を、合意確定がなされたインクリメント値として決定する。   In step 505, the logical time management unit 6 determines whether the logical time update request packet is confirmed as an input packet, based on whether the logical time update request packet is delivered from the agreement unit 262. When the logical time management unit 6 determines that the logical time update request packet has been confirmed as an input packet (YES in step 505), the logical time management unit 6 sets the increment value set in the confirmed input packet (logical time update request packet). Candidates are determined as increment values that have been agreed upon.

このように論理時間管理部6は、インクリメント値の候補となる値を計算し、整列マルチキャストを用いてインクリメント値を決定する。論理時間管理部6は、決定したインクリメント値が第2の所定時間以上であるかを判定する(ステップ506)。本実施形態において第2の所定時間は、第1の所定時間と同一の時間に設定される。   In this way, the logical time management unit 6 calculates a value that is a candidate for the increment value, and determines the increment value using the ordered multicast. The logical time management unit 6 determines whether the determined increment value is equal to or longer than the second predetermined time (step 506). In the present embodiment, the second predetermined time is set to the same time as the first predetermined time.

もし、決定したインクリメント値が第2の所定時間未満であるならば(ステップ506のNO)、論理時間管理部6は入力パケットを無視し、論理時間を更新することなくステップ501に戻る。決定したインクリメント値が第2の所定時間未満となるのは、つまり基準となる更新時間間隔(第1の所定時間)よりも短くなるのは、例えば、停滞していたコンピュータ100-iが後述する追いかけ処理により、合意時間間隔が短くなった場合である。   If the determined increment value is less than the second predetermined time (NO in step 506), the logical time management unit 6 ignores the input packet and returns to step 501 without updating the logical time. The reason why the determined increment value is less than the second predetermined time, that is, shorter than the reference update time interval (first predetermined time) is, for example, that the computer 100-i that has stagnated will be described later. This is a case where the agreement time interval is shortened by the chasing process.

本実施形態では上述のように、第2の所定時間が、第1の所定時間と同一の時間に設定される。一方、合意時間間隔は、後述するように、コンピュータ100-iが停滞しなくても、基準となる更新時間間隔(ここでは1秒)に対して誤差が生じる。この誤差により、合意時間間隔が基準となる更新時間間隔よりも短くなる可能性がある。そこで、第2の所定時間を、例えば基準となる更新時間間隔に対する許容される誤差Δだけ、第1の所定時間よりも短い時間に設定してもよい。   In the present embodiment, as described above, the second predetermined time is set to the same time as the first predetermined time. On the other hand, as will be described later, the agreed time interval has an error with respect to the reference update time interval (here, 1 second) even if the computer 100-i does not stagnate. Due to this error, the agreed time interval may become shorter than the reference update time interval. Therefore, the second predetermined time may be set to a time shorter than the first predetermined time by, for example, an allowable error Δ with respect to the reference update time interval.

次に、決定したインクリメント値が第2の所定時間以上であるものとする(ステップ506のYES)。この場合、論理時間管理部6は、その時点において論理時間記憶部7に格納されている論理時間の情報を、当該論理時間が当該インクリメント値だけインクリメントされるように更新する(ステップ507)。つまり論理時間管理部6は、決定したインクリメント値だけ、論理時間を進める。このとき論理時間管理部6は、更新時刻記憶部8に格納されている前々回の更新時刻を示す情報を、当該更新時刻記憶部8に格納されている前回の更新時刻を示す情報で更新する(ステップ508)。即ち論理時間管理部6は、前回の更新時刻を前々回の更新時刻として設定する。ステップ508において論理時間管理部6は、更新時刻記憶部8に格納されている前回の更新時刻を示す情報を、システム時計9によって示される現在の時刻で更新する。即ち論理時間管理部6は、現在の時刻を前回の時刻として設定する。   Next, it is assumed that the determined increment value is equal to or longer than the second predetermined time (YES in step 506). In this case, the logical time management unit 6 updates the logical time information stored in the logical time storage unit 7 at that time so that the logical time is incremented by the increment value (step 507). That is, the logical time management unit 6 advances the logical time by the determined increment value. At this time, the logical time management unit 6 updates the information indicating the previous update time stored in the update time storage unit 8 with the information indicating the previous update time stored in the update time storage unit 8 ( Step 508). That is, the logical time management unit 6 sets the previous update time as the last update time. In step 508, the logical time management unit 6 updates the information indicating the previous update time stored in the update time storage unit 8 with the current time indicated by the system clock 9. That is, the logical time management unit 6 sets the current time as the previous time.

次に論理時間管理部6は、確定された入力パケットが候補パケットとして受付キュー1に存在するかを判定する(ステップ509)。確定された入力パケットが候補パケットとして受付キュー1に存在するのは、他のコンピュータの論理時間管理部6によって作成された候補パケットが入力パケットとして確定された場合である。論理時間管理部6は、確定された入力パケットが候補パケットとして受付キュー1に存在する場合(ステップ509のYES)、当該受付キュー1に存在する候補パケットを削除する(ステップ510)。   Next, the logical time management unit 6 determines whether the determined input packet exists in the reception queue 1 as a candidate packet (step 509). The confirmed input packet exists in the reception queue 1 as a candidate packet when the candidate packet created by the logical time management unit 6 of another computer is confirmed as the input packet. When the determined input packet exists in the reception queue 1 as a candidate packet (YES in step 509), the logical time management unit 6 deletes the candidate packet existing in the reception queue 1 (step 510).

これにより、他のコンピュータの論理時間管理部6によって作成された候補パケットが入力パケットとして確定された場合、コンピュータ100-iでは、当該コンピュータ100-iの論理時間管理部6によって作成された候補パケットによる合意処理は行われなくなる。つまりコンピュータ100-iでは、他のコンピュータの論理時間管理部6によって作成されて、一番最初に合意された候補パケットが、入力パケットとして用いられる。   As a result, when the candidate packet created by the logical time management unit 6 of another computer is confirmed as an input packet, the computer 100-i uses the candidate packet created by the logical time management unit 6 of the computer 100-i. Consensus processing by will not be performed. That is, in the computer 100-i, the candidate packet that is created by the logical time management unit 6 of the other computer and agreed first is used as the input packet.

インクリメント値の候補、即ち合意時間間隔の候補値は、コンピュータ100-1〜100-5の各々で、システム時計9に基づいてそのコンピュータでの論理時間の更新時刻から計算される。このため、ネットワーク遅延などにより合意処理自体に時間を要しても、論理時間とシステム時間との差は数ミリ秒のオーダーの範囲に収まる。この誤差は、(t+1)台以上のコンピュータの停滞が発生したために発生する合意処理の遅延時間(一般に数秒〜数分)に比べて極めて小さい。   Increment value candidates, that is, candidate values for the agreed time interval, are calculated from the update time of the logical time in each computer 100-1 to 100-5 based on the system clock 9. For this reason, even if the agreement processing itself takes time due to a network delay or the like, the difference between the logical time and the system time is within the range of several milliseconds. This error is extremely small compared to the delay time (generally several seconds to several minutes) of consensus processing that occurs due to the stagnation of (t + 1) or more computers.

コンピュータ100-iの論理時間管理部6は、図5のフローチャートに従う上述の処理を繰り返し行うことにより、論理時間とシステム時間との差をできるだけ少なくし、フェイルオーバ時間やタイムアウト時間の精度を高くすることができる。   The logical time management unit 6 of the computer 100-i repeatedly performs the above-described processing according to the flowchart of FIG. 5, thereby reducing the difference between the logical time and the system time as much as possible and increasing the accuracy of the failover time and timeout time. Can do.

なお、分散システム10の起動後における各コンピュータ100-iでの最初の合意処理では、前回の合意時間間隔は得られない。このため、図5のフローチャートでは省略されているが本実施形態では、前回の合意時間間隔が得られるまでは、前記第1の所定時間がインクリメント値として用いられる。また本実施形態では、前回の合意時間間隔がインクリメント値として用いられるため、実際の時間とは1回分ずれが生じる。しかし、合意時間間隔が短い場合はずれも小さいため、問題にはならない。   In the initial consensus process at each computer 100-i after the start of the distributed system 10, the previous consensus time interval cannot be obtained. For this reason, although omitted in the flowchart of FIG. 5, in the present embodiment, the first predetermined time is used as an increment value until the previous agreed time interval is obtained. In the present embodiment, since the previous agreed time interval is used as the increment value, there is a deviation of one time from the actual time. However, if the agreement time interval is short, the difference is small, so this is not a problem.

ところで、各コンピュータ100-iの整列マルチキャスト部2は、前記特許文献1に記載されているアルゴリズム5および6(特許文献1の図7および8参照)を用いて実現される追いかけ機能を有している。追いかけ機能とは、短い時間停滞していたコンピュータが停滞(つまりt−耐故障ビザンチン合意アルゴリズムを用いた合意処理に参加できない状態)から復帰した場合に、多重化実行の短い遅延を解消するための機能である。   By the way, the ordered multicast unit 2 of each computer 100-i has a chasing function realized by using algorithms 5 and 6 described in Patent Document 1 (see FIGS. 7 and 8 of Patent Document 1). Yes. The chasing function is a function for eliminating a short delay in multiplexing execution when a computer that has been stagnating for a short time returns from a stagnant state (that is, a state in which it cannot participate in an agreement process using the t-fault tolerance Byzantine agreement algorithm). It is.

追いかけ機能に基づく追いかけ処理について、短い時間停滞していたコンピュータがコンピュータ100-4である場合を例に以下に詳述する。ここで短い時間とは、停滞していたコンピュータの復帰時の該当入力番号に対応する入力パケットが他のコンピュータの入力パケットジャーナル記憶部22から削除されずに当該記憶部22に残されている程度の時間を指す。   The chasing process based on the chasing function will be described in detail below, taking as an example the case where the computer that has been stagnating for a short time is the computer 100-4. Here, the short time is the extent to which the input packet corresponding to the corresponding input number at the time of recovery of the computer that has been stagnant is left in the storage unit 22 without being deleted from the input packet journal storage unit 22 of another computer. Of time.

今、コンピュータ100-4が短い停滞から復帰して、候補種類の整列マルチキャストプロトコルデータを当該コンピュータ100-4のプロトコルデータ送受信部23内の候補パケットブロードキャスト部230によりブロードキャストしたものとする。   Now, it is assumed that the computer 100-4 has recovered from a short stagnation and has broadcast candidate type of ordered multicast protocol data by the candidate packet broadcast unit 230 in the protocol data transmission / reception unit 23 of the computer 100-4.

コンピュータ100-4以外のコンピュータ100-j(j=1,2,3)の整列マルチキャスト部2内の合意部262は、該当入力順序番号より小さい入力順序番号を持つ候補種類の整列マルチキャストプロトコルデータがプロトコルデータ送受信部23によって受信された場合に、その入力順序番号に対応する入力パケットが入力パケットジャーナル記憶部22に存在するかを判定する。このような候補種類の整列マルチキャストプロトコルデータの送信者は、短い停滞から復帰したコンピュータである可能性が高い。   The agreement unit 262 in the ordered multicast unit 2 of the computer 100-j (j = 1, 2, 3) other than the computer 100-4 receives candidate type ordered multicast protocol data having an input order number smaller than the corresponding input order number. When received by the protocol data transmitting / receiving unit 23, it is determined whether or not an input packet corresponding to the input sequence number exists in the input packet journal storage unit 22. The sender of such a candidate type of ordered multicast protocol data is likely to be a computer that has recovered from a short stagnation.

もし、短い多重化実行の遅延のために、該当入力順序番号より小さい入力順序番号に対応する確定済みの入力パケットが入力パケットジャーナル記憶部22に存在するならば、コンピュータ100-jの合意部262は、その入力パケットが入力パケットフィールドに設定された確定種類の整列マルチキャストプロトコルデータをプロトコルデータ送受信部23により上記候補種類の整列マルチキャストプロトコルデータの送信者であるコンピュータ100-jに返送させる。   If a confirmed input packet corresponding to an input sequence number smaller than the corresponding input sequence number exists in the input packet journal storage unit 22 due to a short multiplexing execution delay, the agreement unit 262 of the computer 100-j. Causes the protocol data transmitting / receiving unit 23 to return the determined type of ordered multicast protocol data in which the input packet is set in the input packet field to the computer 100-j which is the sender of the candidate type of ordered multicast protocol data.

コンピュータ100-4の合意部262は、該当入力順序番号に一致する入力順序番号を持つ確定種類の整列マルチキャストプロトコルデータが返送された場合、その確定種類の整列マルチキャストプロトコルデータ内の入力パケットを入力パケットとして確定する。つまり候補種類の整列マルチキャストプロトコルデータの送信者の合意部262は、短い停滞の期間に他の(n−t)台以上のコンピュータ間で合意が取られた入力パケットを取得して、入力パケットとして確定する。もし、確定した入力パケットが受付キュー1に存在するならば、合意部262は当該入力パケットを受付キュー1から削除すると共に、当該入力パケットを処理種別に応じてアプリケーションプログラム3または論理時間管理部6に配送する。また合意部262は、次工程へ移行すべく、入力順序番号記憶部21に格納されている該当入力順序番号を次に進め(1インクリメントし)、ステップ番号記憶部24に格納されている該当ステップ番号を初期化する。また合意部262は、候補パケット記憶部25に格納されているすべての候補を破棄し、遅延記憶部28に格納されている(n−1)個の遅延フラグをすべてリセットする。   When the confirmed type ordered multicast protocol data having an input sequence number matching the corresponding input sequence number is returned, the agreement unit 262 of the computer 100-4 receives the input packet in the confirmed type ordered multicast protocol data as the input packet. Confirm as That is, the agreement unit 262 of the sender of the candidate type of ordered multicast protocol data obtains an input packet agreed between other (nt) or more computers in a short stagnation period, and uses it as an input packet. Determine. If the confirmed input packet exists in the reception queue 1, the agreement unit 262 deletes the input packet from the reception queue 1, and the application program 3 or the logical time management unit 6 determines the input packet according to the processing type. Delivered to. In addition, the agreement unit 262 advances the corresponding input sequence number stored in the input sequence number storage unit 21 to the next step (increment by 1), and the corresponding step stored in the step number storage unit 24. Initialize the number. The agreement unit 262 discards all candidates stored in the candidate packet storage unit 25 and resets all (n−1) delay flags stored in the delay storage unit 28.

論理時間管理部6は、合意部262から確定した入力パケットが配送された場合(ステップ505のYES)、当該確定した入力パケットを取得する。論理時間管理部6は、取得した確定した入力パケットに設定されているインクリメント値が第2の所定時間以上であるならば(ステップ506のYES)、論理時間を当該インクリメント値だけ進める(ステップ507)。
一方、アプリケーションプログラム3は合意部262から確定した入力パケットが配送された場合、当該確定した入力パケットを処理する。
When the input packet determined from the agreement unit 262 is delivered from the agreement unit 262 (YES in Step 505), the logical time management unit 6 acquires the determined input packet. If the increment value set in the acquired confirmed input packet is equal to or longer than the second predetermined time (YES in step 506), the logical time management unit 6 advances the logical time by the increment value (step 507). .
On the other hand, when the confirmed input packet is delivered from the agreement unit 262, the application program 3 processes the confirmed input packet.

以上の追いかけ処理が繰り返されることで、コンピュータ100-4は、多重化実行の遅延を解消し、論理時間を含めて、他のコンピュータ100-1〜100-3における最終入力順序番号の状態に追いつくことができる。つまりコンピュータ100-4は、t−耐故障ビザンチン合意アルゴリズムを用いた合意処理に参加できない状態から復帰した場合に、その間に他のコンピュータ100-1〜100-3で合意が確定されたパケットを追いかけ処理によって取得することにより、インクリメント値を含めて、他のコンピュータ100-1〜100-3に同期した状態に追いつくことができる。   By repeating the chasing process described above, the computer 100-4 eliminates the delay of the multiplexing execution and catches up with the state of the final input sequence number in the other computers 100-1 to 100-3 including the logical time. be able to. That is, when the computer 100-4 returns from a state in which it cannot participate in the consensus processing using the t-fault-tolerant Byzantine consensus algorithm, the computer 100-4 follows the packet for which the consensus has been confirmed in the other computers 100-1 to 100-3. Thus, it is possible to catch up with the state synchronized with the other computers 100-1 to 100-3 including the increment value.

次に、上述の合意時間間隔をインクリメント値の候補とする候補パケットを用いた合意処理について、コンピュータ100-1〜100-4のうちの(t+1)台、つまり2台が停滞する期間が発生した場合を例に図6および図7を参照して説明する。なお、図6は、このような期間が発生した場合の、各コンピュータ100-i(i=1,2,3,4)における合意時間間隔の一例を示す。また図7は、このような場合の各コンピュータ100-iにおける、システム時間と論理時間との関係の一例を簡略化して示す。   Next, regarding the agreement processing using the candidate packet with the agreement time interval as a candidate for the increment value, (t + 1) of the computers 100-1 to 100-4, that is, a period in which two computers stagnate occurred. An example will be described with reference to FIGS. FIG. 6 shows an example of the agreed time interval in each computer 100-i (i = 1, 2, 3, 4) when such a period occurs. FIG. 7 shows a simplified example of the relationship between system time and logical time in each computer 100-i in such a case.

まず、図7の例のように、分散システム10の起動時t0から合意時間間隔に関して、基準となる更新時間間隔である第1の所定時間間隔、例えば1秒間隔で合意処理が行われて、合意が確定したものとする(1回目の合意確定)。ここでは、図6の例のように、コンピュータ100-1〜100-4のすべてで合意処理が行われて、合意が確定したものとする。そして1回目の合意確定の後、図6に示すようにコンピュータ100-4が停滞したものとする。 First, as shown in the example of FIG. 7, the agreement process is performed at a first predetermined time interval that is a reference update time interval, for example, an interval of one second from the time t 0 when the distributed system 10 is started. Assume that the agreement has been finalized (the first agreement finalization). Here, as shown in the example of FIG. 6, it is assumed that the agreement processing is performed by all of the computers 100-1 to 100-4 and the agreement is confirmed. Then, after the first agreement is confirmed, it is assumed that the computer 100-4 has stagnated as shown in FIG.

tが1である本実施形態では、コンピュータ100-4が停滞しても、残りのコンピュータ100-1〜100-3でt−耐故障ビザンチン合意アルゴリズムを用いた合意処理を行って合意を確定することができる。これによりコンピュータ100-1〜100-3で、図7に示すように、1回目の合意確定時から第1の所定時間間隔である1秒後に2回目の合意確定がなされる。この2回目の合意確定の後、図6に示すようにコンピュータ100-3が新たに停滞したものとする。このときコンピュータ100-4は依然として停滞しているものとする。   In the present embodiment where t is 1, even if the computer 100-4 is stagnant, the remaining computers 100-1 to 100-3 perform an agreement process using the t-fault-resistant Byzantine agreement algorithm to confirm the agreement. Can do. As a result, as shown in FIG. 7, the computers 100-1 to 100-3 make the second agreement confirmation one second after the first predetermined time interval from the first agreement decision. It is assumed that after the second agreement is confirmed, the computer 100-3 has newly stagnated as shown in FIG. At this time, the computer 100-4 is still stagnant.

このように、コンピュータ100-3および100-4の2台が停滞している場合、t=1の本実施形態では、残りのコンピュータ100-1および100-2だけでt−耐故障ビザンチン合意アルゴリズムを用いた合意処理を行うことができない。このため、合意処理は遅延する。   As described above, when the two computers 100-3 and 100-4 are stagnant, in the present embodiment where t = 1, the t-fault-resistant Byzantine agreement algorithm is executed only by the remaining computers 100-1 and 100-2. The consensus process used cannot be performed. For this reason, the agreement process is delayed.

その後、図6に示すようにコンピュータ100-3が停滞から復帰したものとする。これによりコンピュータ100-1〜100-3の3台で、合意時間間隔に関して再びt−耐故障ビザンチン合意アルゴリズムを用いた合意処理が行われる。その結果、図7に示すように、2回目の合意確定時よりも3秒後に3回目の合意確定がなされたものとする。ここでは、説明の簡略化のためにシステム時刻の誤差を考慮せずに、前回の合意時間間隔、即ち2回目(前回)の合意確定時の論理時間の更新時刻と1回目(前々回)の合意確定時の論理時間の更新時刻との時間間隔が、第1の所定時間に一致する1秒であるものとする。この場合、コンピュータ100-1〜100-3の論理時間は、図7に示すように、2回目の合意確定時の2秒から3秒に更新される。   Thereafter, it is assumed that the computer 100-3 has recovered from the stagnation as shown in FIG. As a result, the agreement processing using the t-fault-resistant Byzantine agreement algorithm is performed again on the agreement time interval on the three computers 100-1 to 100-3. As a result, as shown in FIG. 7, it is assumed that the third agreement confirmation is made three seconds after the second agreement confirmation. Here, for simplification of explanation, without considering the error of the system time, the previous agreement time interval, that is, the update time of the logical time at the time of the second (previous) agreement confirmation and the first (previous) agreement It is assumed that the time interval with the update time of the logical time at the time of confirmation is 1 second that coincides with the first predetermined time. In this case, as shown in FIG. 7, the logical time of the computers 100-1 to 100-3 is updated from 2 seconds at the time of the second agreement confirmation to 3 seconds.

前述したように更新時刻は、各コンピュータ100-iのシステム時計9の示すシステム時刻に基づいて決定される。このため各コンピュータ100-iが停滞しなくても、合意時間間隔は1秒に対して誤差が生じる。この誤差はコンピュータ100-i毎に異なるため、候補パケットに設定されるインクリメント値の候補に用いられる合意時間間隔はコンピュータ100-i毎に異なる。そして一番最初に合意された候補パケットに設定されているインクリメント値の候補が、合意に参加した各コンピュータ100-iの論理時間を更新するためのインクリメント値として用いられる。   As described above, the update time is determined based on the system time indicated by the system clock 9 of each computer 100-i. For this reason, even if each computer 100-i does not stagnate, an error occurs in the agreed time interval with respect to 1 second. Since this error differs for each computer 100-i, the agreed time interval used for the increment value candidate set in the candidate packet differs for each computer 100-i. Then, the increment value candidate set in the first agreed candidate packet is used as an increment value for updating the logical time of each computer 100-i participating in the agreement.

3回目の合意確定時の論理時間は、2回目の合意確定時以降のコンピュータ100-3および100-4の停滞による遅延が反映されないため、図7に示されるように、システム時間から、ほぼ「実際の遅延時間−第1の所定時間(1秒)」だけずれる。しかし、このずれは、以下に述べるように、次の4回目の合意確定時に解消される。   Since the logical time at the time of the third agreement decision does not reflect the delay caused by the stagnation of the computers 100-3 and 100-4 after the second agreement decision, as shown in FIG. The actual delay time minus the first predetermined time (1 second). However, this gap will be resolved when the next agreement is finalized as described below.

ここで、3回目の合意確定の後、図7に示すようにコンピュータ100-4が停滞から復帰したものとする。するとコンピュータ100-4は、上述の追いかけ処理により、当該コンピュータ100-4が停滞している間に他のコンピュータ100-1〜100-3によって合意が取られた、確定済みの入力パケットの列を入力順序番号順に取得する。取得した確定済みの入力パケットの列には、インクリメント値に関する確定済みの入力パケット(ここでは2つの入力パケット)が含まれている。   Here, it is assumed that the computer 100-4 has returned from the stagnation as shown in FIG. Then, the computer 100-4 uses the chasing process described above to determine a sequence of input packets that have been agreed upon by the other computers 100-1 to 100-3 while the computer 100-4 is stagnant. Get in order of input sequence number. The acquired confirmed input packet column includes the confirmed input packets (here, two input packets) regarding the increment value.

コンピュータ100-4の論理時間管理部6は、インクリメント値に関する確定済みの入力パケットを取得する毎に、当該確定済みの入力パケットに設定されているインクリメント値に基づいて、論理時間を当該インクリメント値だけ進める(ステップ506,507)。   Each time the logical time management unit 6 of the computer 100-4 acquires a confirmed input packet related to the increment value, the logical time is set to the increment value based on the increment value set in the confirmed input packet. Advance (steps 506 and 507).

このように本実施形態においては、コンピュータ100-4が短い時間停滞していた間に他のコンピュータ100-1〜100-3で行われた、インクリメント値(つまり合意時間間隔)に関する2回目の合意確定と3回目の合意確定とを、図6に示すように、当該コンピュータ100-4が停滞から復帰した際に追いかけ処理を利用して実行している。これによりコンピュータ100-4の論理時間を他のコンピュータ100-1〜100-3の論理時間に同期させることができる。   As described above, in the present embodiment, the second agreement regarding the increment value (that is, the agreed time interval) performed in the other computers 100-1 to 100-3 while the computer 100-4 is stagnating for a short time. As shown in FIG. 6, the confirmation and the third agreement confirmation are executed by using the chasing process when the computer 100-4 returns from the stagnation. As a result, the logical time of the computer 100-4 can be synchronized with the logical time of the other computers 100-1 to 100-3.

またコンピュータ100-4の論理時間管理部6は論理時間を更新する毎に、前回の更新時刻を前々回の更新時刻として設定すると共に、システム時計9の示す現在の時刻を前回の更新時刻として設定する(ステップ508)。追いかけ処理を用いて行われる、合意時間間隔に関する合意の確定(より詳細には、合意の確定に基づく論理時間の更新)は、図7に示されるように、通常状態における合意時間間隔に関する合意の確定よりも短い時間間隔で行われる。   Each time the logical time management unit 6 of the computer 100-4 updates the logical time, the previous update time is set as the previous update time, and the current time indicated by the system clock 9 is set as the previous update time. (Step 508). The confirmation of the agreement regarding the agreement time interval (more specifically, the update of the logical time based on the agreement confirmation) performed using the chasing process is performed as shown in FIG. The time interval is shorter than the confirmation.

さて、コンピュータ100-4が、論理時間を含めて、他のコンピュータ100-1〜100-3における最終入力順序番号の状態に追いつくと、再びコンピュータ100-1〜100-4で、合意時間間隔に関する合意の確定が行われる。この合意確定のための合意処理に用いられる候補パケットに設定されているインクリメント値の候補には、3回目(前回)の合意確定時の論理時間の更新時刻と2回目(前々回)の合意確定時の論理時間の更新時刻との時間間隔が用いられる。もし、一番最初に合意された候補パケット(論理時間更新要求パケット)が、コンピュータ100-1〜100-3のいずれかの論理時間管理部6によって作成されたものであるならば、インクリメント値の候補には、誤差を考慮しないものとすると3秒が用いられる。これに対し、一番最初に合意された候補パケットが、コンピュータ100-4の論理時間管理部6によって作成されたものであるならば、インクリメント値の候補には、上述の追いかけ処理に起因して、通常状態における合意時間間隔に関する合意の確定よりも十分短い時間間隔、つまり第2の所定時間よりも短い時間間隔が用いられる。   When the computer 100-4 catches up with the state of the last input sequence number in the other computers 100-1 to 100-3 including the logical time, the computers 100-1 to 100-4 again relate to the agreed time interval. An agreement is finalized. Increment value candidates set in the candidate packet used for the agreement process for confirming the agreement include the update time of the logical time at the third (previous) agreement decision and the second (previous) agreement decision The time interval with the update time of the logical time is used. If the candidate packet (logical time update request packet) agreed first is created by any of the logical time management units 6 of the computers 100-1 to 100-3, the increment value If the error is not considered, 3 seconds is used as the candidate. On the other hand, if the candidate packet agreed first is created by the logical time management unit 6 of the computer 100-4, the increment value candidate is attributed to the chasing process described above. A time interval that is sufficiently shorter than the confirmation of the agreement regarding the agreement time interval in the normal state, that is, a time interval shorter than the second predetermined time is used.

このため、一番最初に合意された候補パケットが、コンピュータ100-4の論理時間管理部6によって作成されたものである場合、当該候補パケットに設定されているインクリメント値の候補は第2の所定時間未満となる(ステップ506のNO)。この場合、前述のように論理時間は更新されず、ステップ506からステップ501に戻る。   For this reason, when the candidate packet agreed first is created by the logical time management unit 6 of the computer 100-4, the increment value candidate set in the candidate packet is the second predetermined value. It is less than the time (NO in step 506). In this case, the logical time is not updated as described above, and the process returns from step 506 to step 501.

その後、コンピュータ100-1〜100-3のいずれかの論理時間管理部6によって作成された候補パケットに基づいて、コンピュータ100-1〜100-4の4台で、合意時間間隔に関して合意処理が行われ、例えば3回目の合意確定時よりも1秒後に、入力パケットとして、図6に示すように4回目の合意確定がなされたものとする(ステップ505のYES)。この場合、コンピュータ100-1〜100-4の論理時間管理部6は、確定された入力パケットに設定されているインクリメント値の候補である3秒を、確定されたインクリメント値として決定し、当該インクリメント値に基づいて、自身が管理する論理時間を更新する(ステップ506,507)。これによりコンピュータ100-1〜100-4の論理時間は、図7に示すように、3回目の合意確定時の3秒から6秒に更新され、システム時間に同期する。   Thereafter, based on the candidate packet created by the logical time management unit 6 of any one of the computers 100-1 to 100-3, the agreement processing is performed with respect to the agreed time interval on the four computers 100-1 to 100-4. For example, it is assumed that the agreement is confirmed for the fourth time as shown in FIG. 6 as an input packet one second after the agreement is confirmed for the third time (YES in step 505). In this case, the logical time management unit 6 of the computers 100-1 to 100-4 determines 3 seconds, which is a candidate for the increment value set in the confirmed input packet, as the confirmed increment value, and the increment. Based on the value, the logical time managed by itself is updated (steps 506 and 507). As a result, the logical times of the computers 100-1 to 100-4 are updated from 3 seconds at the time of the third agreement confirmation to 6 seconds as shown in FIG. 7, and are synchronized with the system time.

ところで、複数のコンピュータで時刻合わせをする仕組みとして、ネットワークタイムプロトコル(Network Time Protocol: NTP)のように通信時間を考慮して調整する方法などが知られている。このような方法と異なり、本実施形態では、t−耐故障ビザンチン合意アルゴリズムを用いてインクリメント値を決定するため、分散システム内のどのコンピュータが故障、あるいは停滞しても正確な時間に調整することが可能になる。また本実施形態では、インクリメント値の候補として、各コンピュータで前回と前々回に論理時間が更新されたシステム時刻から計算される合意時間間隔を用いているため、各コンピュータ間でシステム時刻が異なっていても問題とならない。   By the way, as a mechanism for adjusting time with a plurality of computers, a method of adjusting in consideration of communication time such as a network time protocol (NTP) is known. Unlike such a method, in this embodiment, since the increment value is determined using the t-fault-tolerant Byzantine agreement algorithm, it is possible to adjust to an accurate time regardless of which computer in the distributed system fails or stagnates. It becomes possible. In this embodiment, as the increment value candidate, an agreed time interval calculated from the system time at which the logical time was updated at the previous time and the previous time at each computer is used. Therefore, the system time differs between the computers. Is not a problem.

一般に、各コンピュータで合意が開始されてから合意が確定するまでに数ミリ秒程度時間がかかり、その時間はコンピュータ毎に異なる。しかし、この数ミリ秒程度の時間は、停滞により遅延する時間(数秒、あるいはそれ以上)と比較すると十分無視できる値である。このため本実施形態では説明の簡略化のために、各コンピュータでの合意処理に要する時間はゼロとし、ほぼ同時に合意が確定するものとしている。   In general, it takes about several milliseconds from the start of an agreement at each computer until the agreement is finalized, and the time varies from computer to computer. However, this time of about several milliseconds is a value that can be sufficiently ignored when compared with the time (several seconds or more) delayed by the stagnation. For this reason, in this embodiment, for simplification of explanation, the time required for the agreement process in each computer is set to zero, and the agreement is determined almost simultaneously.

なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。   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. 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…出力フィルタ部、6…論理時間管理部、7…論理時間記憶部、8…更新時刻記憶部、9…システム時計、10…分散システム、21…入力順序番号記憶部、22…入力パケットジャーナル記憶部、23…プロトコルデータ送受信部、24…ステップ番号記憶部、25…候補パケット記憶部、26…入力パケット確定判定部、27…最大確定入力順序番号記憶部、28…遅延記憶部、29…スキップ判定部、100-1〜100-4,100-i…コンピュータ、261…入力候補収集部、262…合意部、A,B…ネットワーク。   DESCRIPTION OF SYMBOLS 1 ... Input reception queue part (reception queue), 2 ... Alignment multicast part, 3 ... Application program, 4 ... Program state management part, 5 ... Output filter part, 6 ... Logical time management part, 7 ... Logical time storage part, 8 ... Update time storage unit, 9 ... System clock, 10 ... Distributed system, 21 ... Input sequence number storage unit, 22 ... Input packet journal storage unit, 23 ... Protocol data transmission / reception unit, 24 ... Step number storage unit, 25 ... Candidate packet Storage unit 26... Input packet determination determination unit 27 27 maximum determination input sequence number storage unit 28 28 delay storage unit 29 skip determination unit 100-1 to 100-4 100-i computer 261 input Candidate collection unit, 262 ... agreement unit, A, B ... network.

Claims (5)

ネットワークに接続されたn台のコンピュータのうちの(n−t)台以上のコンピュータの整列マルチキャスト手段で相互にパケットを送受信してt−耐故障ビザンチンビザンチン合意アルゴリズムを用いて合意を取ることにより分散処理を行う分散システムにおいて、
前記n台のコンピュータの各々は、
第1の時間間隔で実行される合意処理によって更新される論理時間の情報を記憶するための論理時間記憶手段と、
前記論理時間の情報が前回更新されたシステム時刻としての第1の時刻および前々回更新されたシステム時刻としての第2の時刻の情報を記憶するための更新時刻記憶手段と、
前記更新時刻記憶手段に記憶されている情報の示す前記第1の時刻と前記第2の時刻との時間間隔から、前記論理時間の情報を更新するのに用いられるインクリメント値の候補を計算する論理時間管理手段であって、インクリメント値の候補に基づきt−耐故障ビザンチン合意アルゴリズムを用いてインクリメント値を決定し、決定したインクリメント値で前記論理時間の情報を更新する論理時間管理手段と
を具備することを特徴とする分散システム。
Distributed processing by sending / receiving packets to / from each other by an ordered multicast means of (n−t) or more computers out of n computers connected to the network and using the t-fault-resistant Byzantine Byzantine agreement algorithm In a distributed system that performs
Each of the n computers
Logical time storage means for storing information of logical time updated by consensus processing executed at the first time interval;
An update time storage means for storing the first time as the system time when the logical time information was updated last time and the information of the second time as the system time updated last time;
Logic for calculating a candidate for an increment value used to update the information on the logical time from the time interval between the first time and the second time indicated by the information stored in the update time storage means Time management means, comprising: a logical time management means for determining an increment value using a t-fault-resistant Byzantine consensus algorithm based on a candidate for the increment value, and updating the logical time information with the determined increment value. Distributed system characterized by
前記n台のコンピュータの各々はシステム時計を備えており、
前記n台のコンピュータの前記論理時間管理手段は、前記論理時間の情報を更新した場合、前記システム時計の示すシステム時刻および前記第1の時刻に基づいて、それぞれ、前記第1の時刻および前記第2の時刻の情報を更新する
ことを特徴とする請求項1記載の分散システム。
Each of the n computers includes a system clock,
When the logical time management means of the n computers updates the logical time information, based on the system time and the first time indicated by the system clock, the first time and the first time respectively. 2. The distributed system according to claim 1, wherein the time information of 2 is updated.
第2の時間間隔を前記第1の時間間隔以下の時間間隔であるとすると、前記決定されるインクリメント値が前記第2の時間間隔以上となる時間間隔であることを特徴とする請求項2記載の分散システム。   The second time interval is a time interval that is not more than the first time interval, and the determined increment value is a time interval that is not less than the second time interval. Distributed system. 前記n台のコンピュータの前記整列マルチキャスト手段は、対応するコンピュータが、前記t−耐故障ビザンチン合意アルゴリズムを用いた合意処理に参加できない状態から復帰した場合に、その間に前記n台のコンピュータのうちの他の(n−t)台以上のコンピュータで合意が確定したパケットを取得することにより、前記インクリメント値を含めて、前記他の(n−t)台以上のコンピュータに同期した状態に追いつくための追いかけ手段を含むことを特徴とする請求項3記載の分散システム。   The ordered multicasting means of the n computers, when the corresponding computer returns from a state in which it cannot participate in the agreement processing using the t-fault tolerant Byzantine agreement algorithm, Chasing to catch up with the other (nt) or more computers in synchronization with the other (nt) or more computers by acquiring packets whose agreement has been confirmed by (nt) or more computers 4. The distributed system according to claim 3, further comprising means. ネットワークに接続されたn台のコンピュータのうちの(n−t)台以上のコンピュータの整列マルチキャスト手段で相互にパケットを送受信してt−耐故障ビザンチンビザンチン合意アルゴリズムを用いて合意を取ることにより分散処理を行う分散システムであって、前記n台のコンピュータの各々が、第1の時間間隔で実行される合意処理によって更新される論理時間の情報を記憶するための論理時間記憶手段と、前記論理時間の情報が前回更新されたシステム時刻としての第1の時刻および前々回更新されたシステム時刻としての第2の時刻の情報を記憶するための更新時刻記憶手段とを有する分散システムに適用される論理時間調整方法において、
前記n台のコンピュータのうちの(n−t)台以上のコンピュータが、前記更新時刻記憶手段に記憶されている情報の示す前記第1の時刻と前記第2の時刻との時間間隔から、前記論理時間の情報を更新するのに用いられるインクリメント値の候補を計算するステップと、
前記(n−t)台以上のコンピュータが、インクリメント値の候補に基づきt−耐故障ビザンチン合意アルゴリズムを用いてインクリメント値を決定するステップと、
(n−t)台以上のコンピュータが、前記決定されたインクリメント値で前記論理時間の情報を更新するステップと
を具備することを特徴とする論理時間調整方法。
Distributed processing by sending and receiving packets to and from each other by an ordered multicast means of (n−t) or more computers out of n computers connected to the network and using the t-fault-resistant Byzantine Byzantine agreement algorithm A logical time storage means for storing logical time information updated by an agreement process executed at a first time interval in each of the n computers, and the logical time The logical time applied to the distributed system having the first time as the system time when the information of the last time was updated and the update time storage means for storing the information of the second time as the system time updated last time In the adjustment method,
From the time interval between the first time and the second time indicated by the information stored in the update time storage means, the (n−t) or more computers of the n computers are Calculating increment value candidates used to update logical time information;
The (nt) or more computers determine an increment value using a t-fault tolerant Byzantine consensus algorithm based on increment value candidates;
And (nt) or more computers comprising the step of updating the information of the logical time with the determined increment value.
JP2009276596A 2009-12-04 2009-12-04 Distributed system and logical time adjustment method Active JP4956603B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009276596A JP4956603B2 (en) 2009-12-04 2009-12-04 Distributed system and logical time adjustment method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009276596A JP4956603B2 (en) 2009-12-04 2009-12-04 Distributed system and logical time adjustment method

Publications (2)

Publication Number Publication Date
JP2011118747A true JP2011118747A (en) 2011-06-16
JP4956603B2 JP4956603B2 (en) 2012-06-20

Family

ID=44283980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009276596A Active JP4956603B2 (en) 2009-12-04 2009-12-04 Distributed system and logical time adjustment method

Country Status (1)

Country Link
JP (1) JP4956603B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016020986A1 (en) * 2014-08-05 2016-02-11 株式会社東芝 Alignment device, data-processing device, program, alignment method, and multiplexing system
US10165086B2 (en) 2013-09-04 2018-12-25 Kabushiki Kaisha Toshiba Information processing system, server apparatus, information processing method, and computer program product

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239831A (en) * 1994-02-28 1995-09-12 Fujitsu Ltd Time correcting method for clock device in distributed system and clock device
JP2001051962A (en) * 1999-08-13 2001-02-23 Toshiba Corp Program multiplexing and expanding method
JP2001053744A (en) * 1999-08-06 2001-02-23 Toshiba Corp Parallel distribution system
JP2004342077A (en) * 2003-01-23 2004-12-02 Supercomputing System Ag Error-tolerant computer controlled system, vehicle equipped with it, and aircraft equipped with it
JP3655263B2 (en) * 2001-06-15 2005-06-02 株式会社東芝 Distributed system and multiplexing control method for the same
JP2005258946A (en) * 2004-03-12 2005-09-22 Toshiba Solutions Corp Distributed system and multiplexing control method
JP2008507050A (en) * 2004-07-19 2008-03-06 テクニシェ ウニヴェルジテート ウィーン Generation of distributed fault-tolerant clock pulses in VLSI chips

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07239831A (en) * 1994-02-28 1995-09-12 Fujitsu Ltd Time correcting method for clock device in distributed system and clock device
JP2001053744A (en) * 1999-08-06 2001-02-23 Toshiba Corp Parallel distribution system
JP2001051962A (en) * 1999-08-13 2001-02-23 Toshiba Corp Program multiplexing and expanding method
JP3655263B2 (en) * 2001-06-15 2005-06-02 株式会社東芝 Distributed system and multiplexing control method for the same
JP2004342077A (en) * 2003-01-23 2004-12-02 Supercomputing System Ag Error-tolerant computer controlled system, vehicle equipped with it, and aircraft equipped with it
JP2005258946A (en) * 2004-03-12 2005-09-22 Toshiba Solutions Corp Distributed system and multiplexing control method
JP2008507050A (en) * 2004-07-19 2008-03-06 テクニシェ ウニヴェルジテート ウィーン Generation of distributed fault-tolerant clock pulses in VLSI chips

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10165086B2 (en) 2013-09-04 2018-12-25 Kabushiki Kaisha Toshiba Information processing system, server apparatus, information processing method, and computer program product
WO2016020986A1 (en) * 2014-08-05 2016-02-11 株式会社東芝 Alignment device, data-processing device, program, alignment method, and multiplexing system
US10162719B2 (en) 2014-08-05 2018-12-25 Kabushiki Kaisha Toshiba Ordering device, data processing device, ordering method, computer program product, and multiplex system

Also Published As

Publication number Publication date
JP4956603B2 (en) 2012-06-20

Similar Documents

Publication Publication Date Title
AU2019203861B2 (en) System and method for ending view change protocol
JP4818349B2 (en) Distributed system and multiplexing control method for the same
AU2019203862B2 (en) System and method for ending view change protocol
CN101682518B (en) Distributed connection establishment and restoration
EP2378718B1 (en) Method, node and system for controlling version in distributed system
JP6471238B2 (en) Method for transferring data packets in a network and programmable ingress and egress nodes therefor
US7792153B2 (en) Sequencing multi-source messages for delivery as partial sets to multiple destinations
US20190287099A1 (en) Distributed ledger update method
US11044156B2 (en) Secure mechanism to manage network device configuration and audit with a blockchain
JP6008761B2 (en) Independent distributed network system
JPS6066538A (en) Method of synchronizing clock
JP2009182925A (en) Frame counter correction device and counter device
US8428065B2 (en) Group communication system achieving efficient total order and state synchronization in a multi-tier environment
JP2018510430A (en) Remote data synchronization method and apparatus for database
CN113612614A (en) Block chain network-based consensus disaster tolerance method, device, equipment and storage medium
US8255732B2 (en) Self-stabilizing byzantine-fault-tolerant clock synchronization system and method
JP5331585B2 (en) Fault tolerant computer system and method in fault tolerant computer system
US20210014295A1 (en) Systems, methods, and storage media for managing encoder instances in a serverless content distribution platform
US9706509B2 (en) Synchronization of streaming data
JP4956603B2 (en) Distributed system and logical time adjustment method
CN111526045B (en) Fault processing method and system for block chain
JP3655263B2 (en) Distributed system and multiplexing control method for the same
US9112927B2 (en) Network system and communication device
KR20230046085A (en) An efficient dual-mode consensus protocol for blockchain networks
JP4806044B2 (en) Distributed system having failover function and failover method in the same system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4956603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

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