JP4753344B2 - 分散コンピュータシステムの同期処理方法 - Google Patents

分散コンピュータシステムの同期処理方法 Download PDF

Info

Publication number
JP4753344B2
JP4753344B2 JP2004009570A JP2004009570A JP4753344B2 JP 4753344 B2 JP4753344 B2 JP 4753344B2 JP 2004009570 A JP2004009570 A JP 2004009570A JP 2004009570 A JP2004009570 A JP 2004009570A JP 4753344 B2 JP4753344 B2 JP 4753344B2
Authority
JP
Japan
Prior art keywords
synchronization
node
time
timer
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004009570A
Other languages
English (en)
Other versions
JP2005202779A (ja
Inventor
欣司 森
裕之 矢代
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.)
IHI Aerospace Co Ltd
Original Assignee
IHI Aerospace Co Ltd
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 IHI Aerospace Co Ltd filed Critical IHI Aerospace Co Ltd
Priority to JP2004009570A priority Critical patent/JP4753344B2/ja
Publication of JP2005202779A publication Critical patent/JP2005202779A/ja
Application granted granted Critical
Publication of JP4753344B2 publication Critical patent/JP4753344B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、複数のコンピュータをネットワークで相互に接続した分散コンピュータシステムの同期処理方法に関し、とくに、リアルタイム性やフォールトトレラント性が要求される分散コンピュータシステムにおいてコンピュータノード間の同期化を行うのに用いる同期処理方法に関するものである。
一般に、パーソナルコンピュータ、ワークステーション、組み込みコンピュータ、搭載コンピュータ及び制御用コンピュータなどのコンピュータシステムにおいては、単一のコンピュータを用いる代わりに、複数のコンピュータを何らかの情報伝達媒体から成るネットワークで相互に接続した分散コンピュータシステムを用いることがある。この分散コンピュータシステムは、単一のコンピュータでは演算能力が不足する場合、単一のコンピュータでは信頼性が不足する場合、コンピュータシステムで制御する対象が物理的に広範囲に存在する場合、コンピュータシステムに対する要求の変化が頻繁である場合などに用いるのに好適である。
ところで、分散コンピュータシステム上で動作するアプリケーションには、何らかの実時間制約を受けて動作するものがある。このようなアプリケーションは、リアルタイムアプリケーションと呼ばれており、例えば、入力対象であるセンサ等からデータを周期的に取得して必要な演算を行い、出力対象であるアクチュエータ等に対して周期的に結果の出力を行うものがある。そして、このようなリアルタイムアプリケーションを分散コンピュータシステム上で動作させる場合には、その分散コンピュータシステムを構成する各コンピュータノード(以下、「ノード」とする)を所定の時間範囲内で同期させることが必要になる。
より具体的に説明すると、図1は分散コンピュータシステムの一例を示す図であって、図示の分散コンピュータシステムは、個々のセンサSa,Sbに接続した複数のセンサノードNsa,Nsbと、複数の制御演算ノードNc1,Nc2,Nc3と、多数決回路Voを介してアクチュエータAに接続した複数の出力ノードNa1,Na2,Na3を備えると共に、ネットワークNWにより各ノードNs,Nc,Naを互いに接続している。
図示の分散コンピュータシステムにおいて、センサノードNsa,Nsbがデータを得るためにセンサSa,Sbに対してリクエスト信号を送るケースを考えると、各センサSa,Sbから同時刻にセンシングされたデータを得る必要がある場合、各センサノードNsa,Nsbは、所定の範囲内の時間差で夫々のセンサSa,Sbにリクエスト信号を送らねばならないので、共通のタイミングを有する必要がある。また、アクチュエータAに制御信号を送信するケースを考えると、図示の場合には、信頼性確保のために冗長系を成している出力ノードNa1,Na2,Na3の各出力信号を多数決回路Voにより一つの信号にする。この際、各出力ノードNa1,Na2,Na3は、多数決回路Voに対する夫々の出力信号が所定の時間範囲内に収まっていなければならないので、共通のタイミングを有する必要がある。
このように、リアルタイムアプリケーションでは、分散コンピュータシステムを構成するノードを所定の時間内に同期させることが要求されている。そして、一般的に各ノードは自らの発振器を備え、これらの発振器が時間経過とともにドリフトするため、ノード間において適切な周期でタイミング調整すなわち同期処理を行う必要がある。
ところで、ひと口にリアルタイムアプリケーションといっても、それが要求するリアルタイム性や信頼性は多様である。つまり、ノード間のタイミングのばらつきの許容度が大きいものもあれば小さいものもあるし、制御を行う周期や入力から出力までの応答時間についても、数msecレベルから数秒レベルまで多岐にわたる。また、高信頼性を要するものとそうでないものもあり、さらには、別々のリアルタイム性要求や信頼性要求をもつ複数のアプリケーションがシステム中に同時に混在するケースもあれば、時間とともに要求レベルが変化するケースもある。
このため、アプリケーション毎の要求に応じて専用の同期処理方法を構築するのでは、非常にコストがかかるため、低コストでの同期化を実現するには、多様なアプリケーションに柔軟に対応できる汎用性が高い同期処理方法でなければならない。そのような同期処理方法は、信頼度要求レベルやリアルタイム要求レベルに依らずに、あらゆるケースに適用し得るものでなければならず、例えば下記の(A)〜(C)の要求を満足させる必要がある。
(A)分散コンピュータシステム内の一式以上のノードが故障によって一時的に同期から離脱した場合でも、残りのノードにおいては、既存の同期状態が無停止で成立し続けなければならない。また、一式以上のノードが故障から復帰する場合、一式以上のノードをシステムに追加する場合、あるいはシステムの一部のノードがテスト状態にある場合でも、残りのノードにおいては、既存の同期状態が無停止で成立し続けなければならない。さらに、アプリケーションの種類や使用する部品の故障率によって使用されるノード数は多様であり、且つそれらが時間とともに変化し得るため、同期系を構成するノード数が固定される方法であってはならない。
(B)同期している複数のノード間の同期精度に対する要求が動的に変化する場合、同期系に対する信頼性要求(誤同期確率要求)が動的に変化する場合、又は同期精度や信頼性要求のレベルが異なる複数のアプリケーションがシステム中に混在する場合でも、システムとしてアプリケーションの処理及び出力を停止せずに対応できなければならない。
(C)低コスト化を実現するため、既存の汎用的なハードウエアを用いて構築できなければならない。
ここで、コンピュータシステムにおいて、耐故障性(フォールトトレランス性)を実現する同期処理技術としては、例えば、複数のステーションのオペレーティングシステム時刻クロックを同期化するに際し、タイムキーパステーションからのクロックメッセージを受信した時の各ステーションのネットワークインターフェイスの自由走行カウンタのカウントをラッチし、タイムキーパステーションはそのオペレーティングシステム時刻クロック及び自由走行カウンタからそのクロックメッセージの受信時刻を計算し、このタイムキーパ受信時刻を他のステーションへブロードキャストし、その他のステーションはそのオペレーティングシステム時刻とその自由走行カウンタのカウントからそれ自身の受信時刻を計算し、その受信時刻とタイムキーパ受信時刻との差によりオペレーティングシステム時刻を補正するものがあった。
また、複数の冗長系からなるフォールトトレラントシステムにおいて、複数の冗長系毎に独立したクロック発振器及び全冗長系に共通したクロック発振器を備え、共通したクロック発振器からの共通クロックを全冗長系の同期に使用するようにしたものがあった。
特開平6−52076号公報 特開平3−266011号公報
上記したような従来の同期処理方法において、タイムキーパステーションがシステム全体に共通タイミングを供給する方法では、タイムキーパステーションが故障すると、次のタイムキーパが選出されるまでの間は同期処理が一時停止するため、停止が許容されないアプリケーションには用いることができないほか、故障したステーションが不正にタイムキーパになって、同期系を乱す恐れがあった。また、全冗長系に共通したクロック発振器を用いた方法では、一般の分散コンピュータシステムにおけるノード間の同期には用いることができなかった。
本発明の分散コンピュータシステムの同期処理方法は、請求項1として、複数のコンピュータをネットワークで相互に接続した分散コンピュータシステムにおいてコンピュータノード間の同期化を行うに際し、各ノードは、同期処理を行う周期に相当する時間の同期タイマを開始し、同期タイマの終了とともにネットワーク上に同期メッセージをブロードキャストして全ての他ノードに同期メッセージを送信する一方で、同期メッセージを送受信した際には、所定時間の認証用ウインドウを開始し、認証用ウインドウ中に既定の複数の同期メッセージを送受信した場合に、これを同期条件成立と判定して、複数の同期メッセージの送受信タイミングに基づいて決定した開始時期で同期タイマを開始し、前記同期条件成立と判定した際に自ノードの同期タイマが終了していない場合には、同期メッセージをネットワーク上にブロードキャストせずに同期タイマを再び開始する構成としており、上記構成をもって従来の課題を解決するための手段としている。
また、本発明の分散コンピュータシステムの同期処理方法は、請求項2として、既存の同期系に新たにノードを追加する場合、既存のノードがリセットや電源ONにより起動された場合、及び動作中のノードに故障が発生し、修復が行われた後に復帰した場合等において、これらのノードは、所定の初期化処理が終了した後に、所定時間の非同期タイマを開始し、非同期タイマの終了とともにネットワーク上に同期メッセージをブロードキャストして全ての他ノードに同期メッセージを送信する一方で、同期メッセージを送受信した際には、所定時間の認証用ウインドウを開始し、認証用ウインドウ中に既定の複数の同期メッセージを送受信した場合に、同期条件成立と判定して同期タイマを開始し、同期メッセージを送受信したにもかかわらず認証用ウインドウ中に同期条件が成立しない場合には、非同期タイマを再び開始することを特徴とし、請求項3として、同期メッセージの内部にタイムスタンプを記載し、複数のノード間において、複数の同期メッセージの送受信により同期条件成立と判定した際に、互いの同期タイマの開始時期を一致させると同時に、互いのタイムスタンプを一致させることを特徴とし、請求項4として、アプリケーションの要求の動的変化や環境条件の変化に応じて、各ノードが自律的に同期タイマ、非同期タイマ及び認証用ウインドウの時間を変更することを特徴とし、請求項5として、同期メッセージの内部に、同期メッセージを送信するノードの、ネットワーク上で重複の無いノード識別番号を記載し、同期メッセージを受信するノードが、認証用ウインドウ内にて既定時間内に同一ノードから複数受信した同期メッセージを、認証用ウインドウ内に受信した同期メッセージ数としてカウントしないことを特徴としている。
本発明の請求項1に係る分散コンピュータシステムの同期処理方法によれば、単一故障点となりうるマスターノードを必要とせずに複数ノード間の同期化が可能であるため、耐故障性(フォールトトレランス性)が高いものとなり、また、自ノードの同期タイマが満期になる前に同期条件が成立した場合には、ネットワーク上への同期メッセージの送信を自律的に抑制するため、ネットワーク負荷の上昇を抑えて、同期に参加できるノード数の制限をなくすことができる。さらに、複数のノードに同時に故障が発生しても、成立している同期系に影響を与えることなく無停止で同期を継続させることが可能であり、さらには、標準的な構成のコンピュータノードとブロードキャストが可能なネットワークを用いる以外には特別なハードウエアを必要としないため、同期を必要とするあらゆるタイプのアプリケーションに適用可能であって、低コスト化も実現し得るものとなる。
本発明の請求項2に係る分散コンピュータシステムの同期処理方法によれば、請求項1と同様の効果を得ることができるうえに、複数のノードが既に成立している同期系へ参加したり復帰したりする際に、成立している同期系には影響を与えずに全体システムとして無停止で同期を継続させることが可能であり、また、システム全体の起動時においても、ノード単体の起動時や復帰時とを区別する特別なハードウエアの仕組みを必要とせず、標準的な構成のみで同期化が可能である。
本発明の請求項3に係る分散コンピュータシステムの同期処理方法によれば、請求項1及び2と同様の効果を得ることができるうえに、複数のノード間の同期化のみならず、タイムスタンプの一致化を行うため、同期処理を行う周期よりも長い処理周期を持つアプリケーションに対しても有効である。
本発明の請求項4に係る分散コンピュータシステムの同期処理方法によれば、請求項1〜3と同様の効果を得ることができるうえに、アプリケーションのリアルタイム性要求や信頼性要求が動的に変化する場合や、異なるレベルのリアルタイム要求や信頼性要求を有する複数のアプリケーションがシステム中に混在している場合であっても、同期化を実現することができる。
本発明の請求項5に係る分散コンピュータシステムの同期処理方法によれば、請求項1〜4と同様の効果を得ることができるうえに、故障したノードが複数の同期メッセージを送信してしまうことによる障害を排除することができる。
本発明の分散コンピュータシステムの同期処理方法に用いるハードウエアは、以下に示すノードとネットワークである。なお、ネットワークは、一般的に組織全体の状態を表わすものであるが、ここではノード間を接続する情報伝達媒体を示す。
図2に示すノード1は、プロセッサ2、メモリ3、クロック4、タイマ5、ネットワーク接続インターフェース6及びローカルI/Oインターフェース7を備えると共に、故障対策のためのハードウエアデバイスとして、必要に応じてウオッチドッグタイマ(WDT)8、過電流検出/遮断回路9、及びメモリのビット反転を検出・修正するためのEDAC回路10を備えている。そして、分散コンピュータシステムは、複数のノード1をネットワークNWで相互に接続することにより構成してある。
ネットワーク接続インターフェース6は、ネットワークNWを介して複数のノード1同士を相互に接続するために用いるもので、必要に応じて二重系や三重系の冗長構成を採用することができる。ローカルI/Oインターフェース7の先に接続するハードウエアデバイスは、アプリケーションによって異なり、パーソナルコンピュータやワークステーション等のマン−マシンインターフェースを有するコンピュータである場合には、モニタ、キーボード及びマウスなどであり、組み込みコンピュータや搭載コンピュータである場合には、センサやアクチュエータなどである。
ここで、当該同期処理方法では、信頼度の高い特別なノードが無い場合でも同期処理を実現することから、分散コンピュータシステム中にタイムキーパノード等の特別なノード(マスタノード)が存在せず、いずれのノード1にも故障が起こり得ることを前提としている。また、当該同期処理方法では、高い無停止及び拡張性を実現することから、各ノードは、自律した存在であって、ネットワーク接続インターフェース6又はローカルI/Oインターフェース7からデータを受信した際には、その内容を吟味して自律的判断により適切な処理を起動し、自らのタイマ管理を行い、適切と判断したタイミングでネットワーク接続インターフェース6又はローカルI/Oインターフェース7からメッセージを送信するものとなっている。
さらに、ノード間の同期を行うために、各ノード1が相互に複数種の専用インターフェースを備えていると、ノード間の結合が密になって同期を行うノード数が固定される。したがって、分散コンピュータシステムが柔軟なノード数の構成を採用し得るようにするために、ノード間の接続はネットワークNWのみとしている。なお、ネットワークNWは、同期処理にのみ用いるもの又は同期処理とアプリケーションの処理を併用するもののいずれでもよい。また、ネットワークNWは、信頼性確保のために図1に示す如く冗長構成にしてもよい。さらに、ネットワークNWは、有線又は無線、あるいはその両方によって構成しても良い。
このように、本発明の分散コンピュータシステムの同期処理方法に用いるハードウエアは、標準的な構成のノード1と、ブロードキャストが可能なネットワークNWのみであって、それ以外に特別なハードウエアを必要としない。これにより、以下に述べる当該同期処理方法は、同期を必要とするあらゆるアプリケーションに適用可能となる。
図3はノード1の状態遷移図であり、図4は同期成立条件としてN=2の場合におけるノード1の状態遷移図である。図3及び図4において、当該同期処理方法を実施する各ノード1は、同期状態(S)、同期遷移状態(T)、非同期状態(A)及び初期状態(I)のいずれかの状態にある。
同期状態(S)は、自ノード1の同期タイマSTが動作し、少なくとも一式以上の他ノードと同期している状態である。同期遷移状態(T)は、自ノード1の同期タイマSTも非同期タイマATも動作せず、同期状態から非同期状態へ移る中間の状態、又は非同期状態から同期状態に移る中間の状態である。非同期状態(A)は、自ノード1がどの他ノードとも同期しておらず、同期するために非同期タイマATを動作させている状態である。そして、初期状態(T)は、自ノード1が電源ON又はリセット後の初期化時や、故障発生直後などのようにまだ同期処理を開始していない状態である。
ここで、図3及び図4において、同期タイマSTは、0を初期値として時間の経過とともにカウント値が増すタイマであり、その最大カウント値に相当する時間は全ノードで共通の時間Ts(秒)に設定してあり、同期条件成立時に動作して次の同期処理を行うタイミングを各ノードが認識するために用いる。ただし、同期タイマSTの最大カウント値に相当する時間Tsは要求に応じて可変である。また、非同期タイマATは、0を初期値として時間の経過とともにカウント値が増すタイマであり、その最大カウント値に相当する時間は全ノードで共通の時間Ta(秒)に設定してあり、非同期時に他ノードとの同期を行うために用いる。ただし、非同期タイマATの最大カウント値に相当する時間Taは要求に応じて可変である。
図3及び図4において、符号Wqは認証用ウインドウであって、この認証用ウインドウWqは、0を初期値として時間の経過とともにカウント値が増すタイマであり、その最大カウント値に相当する時間は全ノードで共通の時間Twq(秒)に設定してあり、受信した同期メッセージSMの受信タイミングが認証用ウインドウWq内又は外であるかによって当該同期メッセージSMの有効性を判断するために用いる。ただし、認証用ウインドウWqの最大カウント値に相当する時間Twqは要求に応じて可変である。符号SMは同期メッセージであって、この同期メッセージSMは、必要に応じてそのデータ部にタイムスタンプ(シーケンスナンバー)が記載され、また、必要に応じてそのデータ内部に、同期メッセージSMを送信するノードの、ネットワークNW上で重複の無いノード識別番号が記載される。さらに、符号Nは、同期条件成立に必要な同期メッセージSMの数であり、符号nrtは、認証用ウインドウWq中に送受信した同期メッセージSMの数である。この同期メッセージSMの数nrtは、同期条件成立時においてタイムスタンプの一致を含める場合には、認証用ウインドウWq中に送受信した同期メッセージSMのうちタイムスタンプが一致した同期メッセージSMの数となる。なお、上記の同期メッセージ数nrtは、故障ノードが同期メッセージSMを複数誤送信する影響が憂慮される場合には、これを排除するため、認証用ウインドウWq内の既定時間内に同一ノードから複数の同期メッセージSMを受信してもこれをカウントしない。
当該同期処理方法は、自律タイミング同期処理方法とも呼べるもので、その基本処理において、各ノードは、同期処理を行う周期に相当する時間Tsの同期タイマSTを開始し、同期タイマSTの終了とともにネットワークNW上に同期メッセージSMをブロードキャストして全ての他ノードに同期メッセージSMを送信する。その一方で、各ノードは、認証用ウインドウWqが既に開始されていない場合において、他ノードからの同期メッセージSMを受信した際に、又は自ら同期メッセージSMを送信した際に、所定時間Twqの認証用ウインドウWqを開始し、認証用ウインドウWq中に既定の複数(図4においてはN=2)の同期メッセージSMを送受信した場合には、同期条件成立と判定して同期メッセージSMの送受信タイミングから得られる共通のタイミングに一致するように自らの同期タイマSTの開始時期を自律的に調整して、その開始時期で同期タイマSTを開始する。複数の同期メッセージSMの送受信タイミングから同期タイマSTの開始時期を決定する方法については後述する。
これに対して、同期条件成立の際に自ノードの同期タイマSTが終了していない場合には、同期メッセージSMをネットワークNW上にブロードキャストせず、同期タイマSTを再び開始する。このようにして、同期したい全てのノードが同様の処理を行うことにより同期が成立することとなる。アプリケーション処理を複数のノード間で同期させたい各ノードは、各々の同期タイマSTの値が予め定められた値になったときに当該処理を起動することにより、その処理が複数ノード間で同期して実施されることになる。
また、当該同期処理方法では、既存の同期系にノードを追加する場合、ノードがリセット後又は電源ON後である場合、及びノードに故障が発生した場合等において、そのノードが非同期状態になった際に、該当するノードは、所定時間Taの非同期タイマATを開始し、非同期タイマATの終了とともにネットワークNW上に同期メッセージSMをブロードキャストして全ての他ノードに同期メッセージSMを送信する。その一方で、各ノードは、認証用ウインドウWqが既に開始されていない場合において、他ノードからの同期メッセージSMを受信した際に、又は自ら同期メッセージSMを送信した際に、所定時間Twqの認証用ウインドウWqを開始し、認証用ウインドウWq中に既定の複数の同期メッセージSMを送受信した場合には、同期条件成立として同期タイマSTを開始する。その後の同期タイマSTの動作は先述の通りである。
これに対して、同期メッセージSMを送受信したにもかかわらず認証用ウインドウWq中で同期条件が成立しない場合には、各ノードは、非同期タイマATを再び開始し、上記の処理を繰り返し行う。このようにして、最終的には同期が成立することとなる。
さらに、当該同期処理方法では、必要に応じて同期メッセージSMの内部にタイムスタンプを記載し、複数のノード間において、同期タイマSTの開始時期の一致化と同時にタイムスタンプの一致化を行うことにより、同期処理を行う周期よりも長い処理周期を持つアプリケーションに対しても有効となる。
さらに、当該同期処理方法では、アプリケーションの要求の動的変化や環境条件の変化に応じて、各ノードが予め定めたロジックに従って自律的に同期タイマST、非同期タイマAT及び認証用ウインドウWqの時間Ts,Ta,Twqを変更すれば、アプリケーションのリアルタイム性要求や信頼性要求が動的に変化する場合や、異なるレベルのリアルタイム要求や信頼性要求を有する複数のアプリケーションがシステム中に混在している場合でも、同期化を実現することができる。なお、異なる要求レベルをもつ複数のアプリケーションがシステム中に混在する場合には、各アプリケーション毎に個別の同期タイマST、非同期タイマAT、認証用ウインドウWqを設定してもよい。
さらに、当該同期処理方法では、必要に応じて同期メッセージSMの内部に、同期メッセージSMを送信するノードの、ネットワークNW上で重複の無いノード識別番号を記載し、同期メッセージSMを受信するノードが、認証用ウインドウWq内にて既定時間内に同一ノードから複数受信した同期メッセージSMを、認証用ウインドウWq内に受信した同期メッセージ数nrtとしてカウントしないことにより、故障したノードが複数の同期メッセージSMを送信してしまうことによる障害を排除することができる。
上記の同期タイマST、非同期タイマAT及び認証用ウインドウWqの実装手段としては、ハードウエアによる方法及びソフトウエアによる方法のいずれを用いてもよい。各タイマST,ATは、その動作を終了すると、割り込み機能等を用いて終了になったことをプロセッサに通知する。非同期タイマATの時間Taは、同期タイマSTの時間Tsに比較して長くても、短くても、同じでもよい。
認証用ウインドウWq中に送受信した複数の同期メッセージSMの送受信タイミングから同期タイマSTの開始時期を決定するにはいくつかの方法がある(図3及び図4における『STカウント値設定』の部分)。例えば、同期が成立する条件であるN個の同期メッセージSMの送受信に対して、m(1≦m≦N)番目の同期メッセージSMを送受信したタイミングを同期タイマSTの開始時期に設定することができる。また、同期処理の周期(Ts)の同期処理毎のばらつきを補正するため、各ノードがm番目の同期メッセージSMを送受信したタイミングから所定のオフセット時間k(秒)を経過した後、同期タイマSTを開始するようにしてもよい。さらに、ノード間のばらつきを補正するために、上記のオフセット時間k(秒)は、ノード毎に異なる値や、負の値としてもよい。別の同期タイマSTの開始時期を決定する方法の一例としては、認証用ウインドウWq中に送受信した全ての又は一部の同期メッセージSMの送受信タイミングの平均により決定する方法がある。
認証用ウインドウWqの時間Twqに対する条件としては、ノード間及び単一ノード内の内部処理時間のばらつきをσts、クロックドリフト時間のばらつきをσcd、ネットワークアクセス時間のばらつきをσbaとすると、これらのばらつきは当該分散コンピュータシステムを用いるうえで必然的に生じるものであるから、認証用ウインドウWqの時間Twqは、これらのばらつきを許容する充分な長さになっている必要があり、少なくともσts+σcd+σba<Twqを満足するものとする。
同期メッセージSMの内部にタイムスタンプを記載し、複数のノード間において、同期化の際にタイムスタンプの一致化を行うことにより、同期処理周期(Ts)よりも長い周期で処理を行うアプリケーションにおいて、タイムスタンプを用いてノード間のアプリケーション処理の同期が可能となる。この際、タイムスタンプの設定方法の一例としては、ノードの起動時には0から開始し、同期処理毎に一定値を加算する方法がある。追加や故障からの復帰等のように既存の同期系に途中から組み込まれる場合は、既存の同期系で合意しているタイムスタンプを採用し、そこから加算すればよい。
また、ノードに用いるクロックのドリフトレートを最大ρ(秒/秒)とし、アプリケーションの要求するノード間の同期精度をΠ(秒)とし、同期処理直後のノード間の同期ばらつき最大値をΠi(秒)とするとき、同期処理周期(同期タイマSTの設定時間)Ts(秒)は、Ts<(Π−Πi)/2ρを満足するものとする。本発明では、アプリケーションの要求する同期精度Πが時間とともに変化するとき、又は異なる同期精度要求の複数のアプリケーションがシステム中に混在するとき、これらに合わせて各ノードが予め定めたロジック(計算式)に従って同期処理周期Tsを長くしたり短くしたりすることが可能である。
さらに、認証用ウインドウWqの時間Twq(秒)は、同期条件成立に必要な同期メッセージSMの数Nと関係がある。つまり、誤ったノード同士が同期し、他の正常なノードが誤ったタイミングで同期する誤同期の現象を回避するためには、同期メッセージSMの数Nを大きくすればよいが、この数Nを大きくするとそれに応じて認証用ウインドウWqの時間Twqを長く設定する必要がある。
当該同期処理方法では、誤同期を回避する要求(同期信頼性要求)が時間とともに変化するとき、又は異なるレベルの同期信頼性要求をもつ複数のアプリケーションがシステム中に混在するときに、それに合わせて認証用ウインドウWqの時間Twqを変化させることができる。一般に、同期タイマSTの時間Tsを長く、又は認証用ウインドウWqの時間Twqを短くすることにより、同期処理に費やす時間を相対的に短くし、アプリケーション処理に費やすことのできる時間を相対的に長くし得るという利点がある。同期精度要求や同期信頼性要求の時間変化の各ノードへの通知は、例えばネットワーク接続インターフェースやローカルI/Oインターフェースを通して行うことができる。
次に、図5〜図10に基づいて、上記したアルゴリズムに従って各ノードが処理を行った場合の具体的な動作について説明する。各図は、ある一つのノードの処理過程を示すもので、左から右に向けて時間の経過を表わしている。また、以下の例では、同期成立の条件としてN=2の場合を示し、さらに、認証用ウインドウWq中に二番目の同期メッセージSMを受信した時点を次の同期タイマSTの開始時期としている。
図5は、同期状態の更新と非同期要素の排除を説明する図である。各ノードは、同期処理を行う周期に相当する時間Tsの同期タイマSTを開始し、この同期タイマSTが終了すると、図5中(a)に示すように、ネットワークNW上に同期メッセージSMをブロードキャストして全ての他ノードに同期メッセージSMを送信する。また、認証用ウインドウWqの非動作時に、ネットワークNWから他ノードの同期メッセージSMを受信すると、図5中(b)に示すように、認証用ウインドウWqを開始する。そして、認証用ウインドウWq中に二つ目の同期メッセージSMを送受信した際、図5中(c)に示すように、同期条件成立として新たに同期タイマSTを開始する。
また、同期条件が成立している状態において、他ノードからの同期メッセージSMを受信し、これにより開始した認証用ウインドウWq中に二つ目の同期メッセージSMを受信しない場合は、図5中(d)に示すように、一つ目の同期メッセージSMが故障発生等による非同期ノードからのものであると判断してこれを無視し、同期タイマSTの開始を行わない。これにより、多くのケースにおいては、非同期の同期メッセージSMを各ノードにおいて排除する。偶然、不正なタイミングの同期メッセージSMに同期する充分な数の別の非同期なノードがあった場合には、この不正なタイミングで同期条件が成立することになる。ただし、この場合においても、全てのノードが今度はこれを正として追随するため、複数の異なる同期系が存在し続けることはなく、一つの同期系に収束する。また、以上の様な不正なタイミングでの同期の可能性を低くするためには、同期が成立する条件であるNを大きくすればよい。
図6は、同期状態の更新を説明する図である。ここでは、他ノードの同期メッセージSMを受信する前に自ノードの同期タイマSTが終了し、図6中(a)に示すように、同期メッセージSMを送信すると共に、図6中(b)に示すように、認証用ウインドウWqを開始して一度同期遷移状態に移った後、認証用ウインドウWq中に他ノードの同期メッセージSMを少なくとも一つ受信することにより、図6(c)に示すように、同期条件が成立した様子を示している。
図7は、同期メッセージSMの自律的送信の抑制を説明する図である。ここでは、各ノードは、自らの同期タイマSTが終了する前に、他ノードからの同期メッセージSMを受信して認証用ウインドウWqを開始し、この認証用ウインドウWq中に同期条件が成立した場合(同期条件成立時に同期タイマSTが終了していない場合)において、同期メッセージSMをネットワークNWにブロードキャストしない様子を示している。各ノードがこのような動作を行うことで、同期を行うノード数が多くても同期メッセージSMの増加によってネットワークNWの負荷が増加することがなく、同期を成立させることができる。したがって、同期を行うノード数の制限をなくすことができる。
図8は、既存の同期系へのノードの追加/故障ノードの復帰時の動作を説明する図である。より具体的には、既存の同期系に新たに複数のノードを追加する場合、又はあるノードに故障が発生し、その修復のためにノードが一度同期系を離脱(オフライン)した後に復帰する場合の動作を示している。復帰の際に想定している故障の中には一過性の故障も含まれており、この場合はEDAC回路によるメモリ内容の修正、ノードの電源OFF/再電源ON(パワーサイクル)、及びプロセッサのリセット等によって修復が行われる。
ノードを既存の同期系に追加する場合、又は故障が発生したノードに対して上記の修復が成された後(パワーサイクル又はリセットの場合は初期化処理が終了した後)、ノードは非同期状態となって非同期タイマATを開始する。このとき、追加/復帰ノード以外は同期状態にあり、同期系を構成しているので、非同期状態の経過時間が同期タイマSTの時間Tsに達する前に、認証用ウインドウWq中に他ノードの同期メッセージSMを二つ以上受信することとなる。すなわち、非同期タイマATの開始から時間Ts以内に追加/復帰ノードが同期系に組み込まれる。
非同期タイマATの時間Taが同期タイマSTの時間Tsよりも短い場合には、非同期タイマATの時間Ta以内に他ノードの同期メッセージSMを受信しないと、非同期タイマATが終了する。このとき、このノードは、同期メッセージSMをネットワークNWにブロードキャストする。しかし、このタイミングで同期メッセージSMを送信するのは追加/復帰ノードのみなので、同時に追加/復帰するノード数が同期成立条件であるN式に満たない場合には、既に同期している他ノードからは無視され、既存の同期系が乱されることはない。
以上のように、追加/復帰ノードは、動作中の正常ノードの動作に何ら影響を与えないので、コンピュータシステムとしては無停止で追加/復帰ノードを既存の同期系に組み込むことが可能となる。これは当該同期処理方法の無停止性及び拡張性が高いことを意味する。なお、故障等により、同期しているノード数が同期成立の条件であるN式未満となった場合は、後述するシステム起動時の動作に相当する。
図9は、コンピュータシステム中にノードが一式である場合のシステム初期時の動作を説明する参考図である。ノードは、電源がONされて初期化処理が終了した後、復帰時と同様に非同期状態となって非同期タイマATを開始する。そして、非同期タイマATが終了した際、先述のアルゴリズムに従って同期メッセージSMをネットワークNWにブロードキャストし、認証用ウインドウWqを開始して同期遷移状態となる。ところが、システム中に他のノードが存在しないので、認証用ウインドウWq中に他ノードからの同期メッセージSMを受信することはなく、これにより同期条件が成立せず、再び非同期タイマATを開始して非同期状態に戻る。このように、システム中にノードが一式しかない場合には、以上の動作が繰り返し行われる。
図10は、システム起動時の動作を説明する図であって、一例として、一番目に電源がONされたノード(上側)と、二番目に電源がONされたノード(下側)の二つの動作を示している。
コンピュータシステム中に同期系を構成すべき複数のノードが存在するとき、全体システムの起動時には全てのノードの電源がほぼ同時にONされ、およそ同時間に初期化を終了すると考えられる。各ノードは、初期化終了後、復帰時と同様に非同期タイマATを開始し、最初に非同期タイマATが終了した一番目のノードが、ネットワークNWに同期メッセージSMをブロードキャストする。このとき、二番目にONされたノードは、非同期タイマATが終了する前に、一番目にONされたノードからの同期メッセージSMを受信している。
非同期状態において同期メッセージSMを受信した場合、認証用ウインドウWqを開始して同期遷移状態となるが、図10中(a)に示すように、認証用ウインドウWq中に送受信した同期メッセージSMの数がNに満たないために同期条件が成立しない場合には、再び非同期タイマATを開始して非同期状態に戻る。一番目にONされたノードにおいても、やはり同期条件が成立しないので、再び非同期タイマATを開始する。そして、一番目にONされたノードの非同期タイマATが次に終了する時期に二番目にONされたノードの非同期タイマATも終了するため、この時点でいずれのノードからも同期メッセージSMが送信され、図10中(b)に示すように同期条件が成立する。
同期条件成立までの時間は、最初のN式の非同期タイマATの開始時間差で決まる。すなわち、最初のNノードの初期化終了後の非同期タイマATの開始時間差をTg(秒)とすると、N式の同期条件成立までの時間Tsyn(秒)は、Tg=0のときにTsyn=Ta(非同期タイマ長)となり、0<Tg<TaのときにTsyn=2Taとなり、Ta<Tg<2TaのときにTsyn=3Ta(以下同様)となる。
また、この同期条件成立までに非同期タイマATを開始したノードは、全て上記時間で同様に同期する。さらに、ONされるタイミングが遅く、同期条件成立以降に非同期タイマATを開始したノードの同期条件成立時間Tsynは復帰と同じ扱いになり、非同期タイマATの開始後、同期タイマSTの時間Ts以内に同期条件成立となる。
以上により、非同期タイマATの時間Taを同期タイマSTの時間Tsよりも短くすることで、システム起動時の同期条件成立時間Tsynをノード追加/復帰時の同期組込み時間Trs(最大Ts)よりも短くすることができる。ただし、非同期タイマATの時間Taをあまり短くすると、追加/復帰時に再同期が成立するまでの間にブロードキャストされる同期メッセージSMが多くなる。このように、システム起動時においても、特別なハードウエアを使用することなく、追加/復帰時と同じロジックを用いて同期する必要のあるノード数にかかわりなく同期を成立させることできる。
分散コンピュータシステムの一例を説明する図である。 コンピュータノードの構成を説明する図である。 ノードの状態遷移図である。 同期成立条件としてN=2の場合におけるノードの状態遷移図である。 同期状態の更新と非同期要素の排除を説明する図である。 同期状態の更新を説明する図である。 同期メッセージの自律的送信の抑制を説明する図である。 既存の同期系へのノードの追加/故障ノードの復帰時の動作を説明する図である。 コンピュータシステム中にノードが一式である場合のシステム初期時の動作を説明する参考図である。 システム起動時の動作を説明する図である。
符号の説明
1 ノード
AT 非同期タイマ
NW ネットワーク
SM 同期メッセージ
ST 同期タイマ
Wq 認証用ウインドウ

Claims (5)

  1. 複数のコンピュータをネットワークで相互に接続した分散コンピュータシステムにおいてコンピュータノード間の同期化を行うに際し、
    各ノードは、
    同期処理を行う周期に相当する時間の同期タイマを開始し、
    同期タイマの終了とともにネットワーク上に同期メッセージをブロードキャストして全ての他ノードに同期メッセージを送信する一方で、同期メッセージを送受信した際には、所定時間の認証用ウインドウを開始し、
    認証用ウインドウ中に既定の複数の同期メッセージを送受信した場合に、これを同期条件成立と判定して、複数の同期メッセージの送受信タイミングに基づいて決定した開始時期で同期タイマを開始し、
    前記同期条件成立と判定した際に自ノードの同期タイマが終了していない場合には、同期メッセージをネットワーク上にブロードキャストせずに同期タイマを再び開始する
    ことを特徴とする分散コンピュータシステムの同期処理方法。
  2. 既存の同期系に新たにノードを追加する場合、既存のノードがリセットや電源ONにより起動された場合、及び動作中のノードに故障が発生し、修復が行われた後に復帰した場合等において、
    これらのノードは、所定の初期化処理が終了した後に、所定時間の非同期タイマを開始し、
    非同期タイマの終了とともにネットワーク上に同期メッセージをブロードキャストして全ての他ノードに同期メッセージを送信する一方で、同期メッセージを送受信した際には、所定時間の認証用ウインドウを開始し、
    認証用ウインドウ中に既定の複数の同期メッセージを送受信した場合に、同期条件成立と判定して同期タイマを開始し、
    同期メッセージを送受信したにもかかわらず認証用ウインドウ中に同期条件が成立しない場合には、非同期タイマを再び開始する
    ことを特徴とする請求項1に記載の分散コンピュータシステムの同期処理方法。
  3. 期メッセージの内部にタイムスタンプを記載し、複数のノード間において、複数の同期メッセージの送受信により同期条件成立と判定した際に、互いの同期タイマの開始時期を一致させると同時に、互いのタイムスタンプを一致させることを特徴とする請求項1又は2に記載の分散コンピュータシステムの同期処理方法。
  4. アプリケーションの要求の動的変化や環境条件の変化に応じて、各ノードが自律的に同期タイマ、非同期タイマ及び認証用ウインドウの時間を変更することを特徴とする請求項1〜3のいずれかに記載の分散コンピュータシステムの同期処理方法。
  5. 期メッセージの内部に、同期メッセージを送信するノードの、ネットワーク上で重複の無いノード識別番号を記載し、同期メッセージを受信するノードが、認証用ウインドウ内にて既定時間内に同一ノードから複数受信した同期メッセージを、認証用ウインドウ内に受信した同期メッセージ数としてカウントしないことを特徴とする請求項1〜4のいずれかに記載の分散コンピュータシステムの同期処理方法。
JP2004009570A 2004-01-16 2004-01-16 分散コンピュータシステムの同期処理方法 Expired - Fee Related JP4753344B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004009570A JP4753344B2 (ja) 2004-01-16 2004-01-16 分散コンピュータシステムの同期処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004009570A JP4753344B2 (ja) 2004-01-16 2004-01-16 分散コンピュータシステムの同期処理方法

Publications (2)

Publication Number Publication Date
JP2005202779A JP2005202779A (ja) 2005-07-28
JP4753344B2 true JP4753344B2 (ja) 2011-08-24

Family

ID=34822568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004009570A Expired - Fee Related JP4753344B2 (ja) 2004-01-16 2004-01-16 分散コンピュータシステムの同期処理方法

Country Status (1)

Country Link
JP (1) JP4753344B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2510750B2 (ja) * 1990-03-16 1996-06-26 株式会社日立製作所 フォ―ルト・トレラント・システム及びその冗長系間の同期方法並びに多重化クロツク発振器
US5327468A (en) * 1992-06-19 1994-07-05 Westinghouse Electric Corp. Synchronization of time-of-day clocks in a distributed processing network system
JPH10269185A (ja) * 1997-03-25 1998-10-09 Hitachi Ltd バリア同期方法
JP2000010806A (ja) * 1998-06-25 2000-01-14 Hitachi Ltd 分散プログラム実行方法及び複数コンピュータ立ち上げ方法
JP3743381B2 (ja) * 2002-03-26 2006-02-08 日本電気株式会社 ホスト間処理同期方式

Also Published As

Publication number Publication date
JP2005202779A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
JP5120860B2 (ja) 協定タイミング・ネットワーク内のリカバリを促進する方法、システム、およびコンピュータ・プログラム
US7783736B2 (en) Definition of an active stratum-1 server in a coordinated timing network
JP5042318B2 (ja) 協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラム
US20100229046A1 (en) Bus Guardian of a User of a Communication System, and a User of a Communication System
JP2006229956A (ja) 複数のオペレーショナルフライトプログラムの同期化
US8463945B2 (en) Method for synchronizing local clocks in a distributed computer network
KR101519719B1 (ko) 게이트웨이의 메시지 처리 방법
US5504878A (en) Method and apparatus for synchronizing plural time-of-day (TOD) clocks with a central TOD reference over non-dedicated serial links using an on-time event (OTE) character
JP2010004321A (ja) 時間同期システムおよび時間同期装置
Ademaj Slightly-off-specification failures in the time-triggered architecture
CN100468260C (zh) 实现工作主站和备用主站记录同步的方法
JP4753344B2 (ja) 分散コンピュータシステムの同期処理方法
Essame et al. Padre: A protocol for asymmetric duplex redundancy
US20060156061A1 (en) Fault-tolerant computer and method of controlling same
JP2510750B2 (ja) フォ―ルト・トレラント・システム及びその冗長系間の同期方法並びに多重化クロツク発振器
Steiner et al. The TTA's approach to resilience after transient upsets
JP5604799B2 (ja) フォールトトレラントコンピュータ
JP2538682B2 (ja) 基準クロック源自動切替え方式
Moztarzadeh Fault-tolerant clock synchronization in distributed systems with low topological requirements
AU2020201518A1 (en) Method and system for a geographical hot redundancy
Al-Mekkawy et al. Reliable design of the CAN bit synchronization block
Allan et al. A solution for faulttolerant IEEE1588
Ademaj et al. Tolerating Arbitrary Failures in a Master-Slave Clock-Rate Correction Mechanism for Time-Triggered Fault-Tolerant Distributed Systems with Atomic Broadcast
JPH0535897B2 (ja)
Bezet et al. On-line and post-processing timestamp correspondence for free-running clock nodes, using a network clock

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100924

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

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

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

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4753344

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees