JP4874211B2 - 計算機システム、同期稼動化方法、ノード、及びプログラム - Google Patents

計算機システム、同期稼動化方法、ノード、及びプログラム Download PDF

Info

Publication number
JP4874211B2
JP4874211B2 JP2007271135A JP2007271135A JP4874211B2 JP 4874211 B2 JP4874211 B2 JP 4874211B2 JP 2007271135 A JP2007271135 A JP 2007271135A JP 2007271135 A JP2007271135 A JP 2007271135A JP 4874211 B2 JP4874211 B2 JP 4874211B2
Authority
JP
Japan
Prior art keywords
node
processing
data
nodes
executed
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
JP2007271135A
Other languages
English (en)
Other versions
JP2009099016A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007271135A priority Critical patent/JP4874211B2/ja
Publication of JP2009099016A publication Critical patent/JP2009099016A/ja
Application granted granted Critical
Publication of JP4874211B2 publication Critical patent/JP4874211B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、計算機システムに関し、特にフォールトトレラントコンピュータシステムにおいてノードを同期して稼働する技術に関するものである。
特許文献1には、複数のサブシステムから送出される同一のデータを二台のホストコンピュータで同時に処理する二重化コンピュータシステムにおいて、二重化されたホストコンピュータの運転を開始する際に、処理データの同期をとる処理が記載されている。具体的には、マスター系の処理データをスレーブ系へコピーする処理(スレーブ組み込み処理)を、2台のディスク装置と、系間通信路とを用いて行う二重化コンピュータシステムのスレーブ組込方法記載されている。
特開平11−73278号公報
前述した従来技術では、ノードを同期して稼働するために、稼働中ノードの処理を一時停止させた後、稼働中ノードから組込みノードへのデータのコピーを行い、コピーが完了した後に、組込みノードも含めた全ノードの処理を一斉に再開させることによって、ノード間のデータ内容、プログラムの実行状態、及び入出力等を一致させている。ここで、ノードを同期して稼動するとは、複数のコンピュータで同時に処理するシステムにおいて、メンテナンス及び異常発生時の回復作業等のために停止させていた一部のコンピュータを再びシステムに復旧させる場合に、稼働しているコンピュータとデータ内容、プログラムの実行状態、及び入出力等の状態を同期して稼働させることである。
しかし、稼働中ノードを無停止のまま、再同期稼働化を実行すると、データのコピーが終了した時点で稼働中ノードと組込みノードとのプログラムの実行状態の不一致が生じる可能性がある。また、データの更新頻度によっては、データのコピーが終了した時点でノード間のデータ内容の不一致が生じる可能性がある。すなわち、データ更新が頻繁に発生する場合、データのコピー処理の実行中又はコピー処理の終了直後に稼働中ノードで、プログラムの実行によるデータの書き込み等によってデータが更新される。
ここでデータ内容に不一致が生じたために、再度データのコピー処理を実行しても、同様の事象が再度発生するためデータの一致化は完了しない。また、同一の処理内容を実行した場合であってもデータ内容が異なると、これらのデータ内容を参照して行う処理の結果は、異なる可能性があり、ノード間で出力に不一致が生じる可能性がある。
そこで本発明は、停止させていたノードを再度システムに組込む際に、正常稼働中の他のノードの処理を中断することなく、前記停止させていたノードの状態を稼働中ノードの状態と一致させることを可能とし、フォールトトレラントコンピュータシステムにおける高い信頼性の維持と、フォールトトレラントコンピュータシステムによって実行及び提供されるサービスの無停止とを保証し、ノードを同期して稼働する方法を提供することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、同じ処理を並列に実行可能な複数の独立したノードと、前記複数のノードを接続するネットワークと、前記ネットワークを介して前記複数のノードと接続されるゲートウェイと、を備える計算機システムであって、前記複数のノードは、前記処理を実行中の一つ以上の第1ノードと、前記計算機システムに組み込まれる第2ノードとを含み、前記各ノードは、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記第1ノードは、前記第2ノードの起動を検出した場合、前記第1ノードが実行する処理の進捗状態及び内部状態値を含むデータを抽出し、前記抽出されたデータを前記第2ノードに書き込み、前記ゲートウェイを介して受信したメッセージによって要求された処理を実行する時に、前記第2ノードに処理の開始を通知し、前記第2ノードは、前記データの書き込みの終了を検出すると、前記第1ノードが前記データを抽出した時に前記第1ノードで実行されている処理から実行を開始し、前記第1ノードが前記データを抽出した後に前記第1ノードが受信したメッセージによって要求される処理を順に続けて実行し、前記第1ノードから通知された処理の開始を参照することによって、前記第1ノードと前記第2ノードとの処理の進捗の差を監視し、前記第1ノードと前記第2ノードとの処理の進捗の差が解消された場合、前記第2ノードの同期稼働化の完了を通知する。
本発明の一実施形態によれば、メンテナンス及び異常発生時の回復作業等のために停止させていたノードを再度システムに組込む際に、正常に稼働中のノードの処理を中断することなく、停止させていたノードの状態と稼働中ノードの状態とを一致化させることを可能とする。また、フォールトトレラントコンピュータシステムにおける高い信頼性を維持することができる。また、フォールトトレラントコンピュータシステムによって実行及び提供されるサービスの無停止を保証できる。
以下、本発明の実施の形態について図面を参照しながら説明する。
<実施の形態1>
まず、本発明の第1の実施の形態のフォールトトレラントコンピュータシステムについて説明する。フォールトトレラントコンピュータシステムは、ネットワークを介して相互に接続された複数の独立したノードによって構成され、各ノードで同じ処理を並列して実行する計算機システムである。
図1は、本発明の第1の実施の形態のフォールトトレラントコンピュータシステム0101の構成図である。
フォールトトレラントコンピュータシステム0101は、複数のノード0111及びゲートウェイサーバ0113を備える。
各ノード0111は、LAN0112を介して相互に接続され、各ノード0111は、LAN0112を介してゲートウェイサーバ0113と接続される。
各ノード0111は、処理装置0121、記憶装置0122及び通信装置0123を備える。
処理装置0121は、記憶装置0122に格納されているソフトウェアプログラムを実行する。処理装置0121は、例えば、CPUのようなプロセッサで構成するとよい。
本実施形態で説明する処理は、処理装置0121がメモリにロードされたプログラムを実行することによって行われる。また、プログラムの全部又は一部がハードウェアで構成されることによって、処理が行なわれてもよい。
記憶装置0122は、フォールトトレラントコンピュータシステム0101によって、外部システム0103に提供されるサービスを実行するために必要なデータと、サービスに関する外部システム0103からの要求に対して処理を実行するユーザプログラムと、複数のノード0111間で稼働中のノードと組込み中のノードとを同期させるプログラム、及び、LAN0112を介してノード0111とゲートウェイサーバ0113との間を通信するプログラム等を格納するメモリである。また、記憶装置0122は、ハードディスク(HDD)で構成されてもよい。
通信装置0123は、LAN0112に接続されるインタフェースである。通信装置0123は、ゲートウェイサーバ0113から入力メッセージ0132を受信し、ゲートウェイサーバ0113に出力メッセージ0142を送信する通信処理を行う。
ゲートウェイサーバ0113は、広域ネットワーク0102に接続され、フォールトトレラントコンピュータシステム0101と外部システム0103との通信を中継する。
フォールトトレラントコンピュータシステム0101は、広域ネットワーク0102を介して通信可能な外部システム0103から要求を受信し、受信した要求に対する処理を実行し、実行された処理の結果を応答として外部システム0103に送信するサービスを提供する。
図1に示す例では、フォールトトレラントコンピュータシステム0101は、外部システム0103からの要求を含む入力メッセージ0103を受信し、入力メッセージ0103に対する処理の結果が格納された出力メッセージ0141を外部システム0103に送信する。
フォールトトレラントコンピュータシステム0101の内部では、ゲートウェイサーバ0113は、広域ネットワーク0102を介して、外部システム0103からの要求を含む入力メッセージ0131を受信する。そして、ゲートウェイサーバ0113は、受信した入力メッセージ0131を入力メッセージ0132として、LAN0112を介してフォールトトレラントコンピュータシステム0101内の各ノード0111に転送する。ここで、ゲートウェイサーバ0113は、入力メッセージ0132を各ノード0111にブロードキャストにより送信するとよい。
ここで、各ノード0111は、ゲートウェイサーバ0113によって転送された入力メッセージ0132をほぼ同時に受信し、受信した入力メッセージ0132に対する処理を実行して、実行した処理の結果を格納した出力メッセージ0142を、LAN0112を介してゲートウェイサーバ0113に送信する。
各ノード0111から出力メッセージ0142を受信したゲートウェイサーバ0113は、要求元の外部システム0103(入力メッセージ0131を送信した外部システム0103)に応答として送信する出力メッセージ0141を作成し、作成した出力メッセージ0141を外部システム0103に送信する。ここで、ゲートウェイサーバ0113は、各ノード0111から受信した1つ以上の出力メッセージ0142のデータ内容の比較照合及び正誤判定等を行い正しいメッセージを選択する。そして、選択された正しいメッセージデータを出力メッセージ0141として、要求元の外部システム0103に送信する。
データ内容の比較照合及び正誤判定は、ゲートウェイサーバ0113が受信した出力メッセージ0142に基づいて行われる。例えば、ゲートウェイサーバ0113が受信した複数の出力メッセージ0142を比較し、出力メッセージ0142に格納されている処理の結果が同一であるものを、多数決によって正しいメッセージとして決定する。また、処理結果が同一である出力メッセージ0142の数が同じであり、多数決によって決定できない場合には、受信した出力メッセージ0142のうち、ゲートウェイサーバ0113に先着した出力メッセージ0142を正しいメッセージとして決定する。
なお、図1に示す例では、フォールトトレラントコンピュータシステム0101が四つのノード0111を備えているが、ノード0111は、二つ以上であればいくつ備わっていてもよい。
このように、フォールトトレラントコンピュータシステム0101は、二つ以上のノード0111を備え、外部システム0103からの要求に対して、処理を二つ以上のノード0111で同時に併行して実行することによって、一つ以上のノード0111で障害が発生した場合でも、残りの稼働中のノード0111が処理を実行するため、システムとして正常に動作されるサービスの提供を維持することを可能とし、システムの耐障害性及び信頼性を高めている。
図2Aは、本発明の第1の実施の形態のノード0111の再同期稼働化の概要を示す図である。
フォールトトレラントコンピュータシステムは、稼働中ノード0201及び組込みノード0202を備え、稼働中ノード0201及び組込みノード0202は、LAN0112を介して接続されるノードである。
ここで、稼働中ノード0201は、正常に処理を実行しているノードである。また、組込みノード0202は、メンテナンス及び異常発生時の回復作業等のために、一時的に停止していた状態から、再起動し再度システムに組込まれていくノードである。
稼働中ノード0201は、データ0212(例えば、共有メモリ、ファイル等)を参照してユーザプログラム0211を実行している。
組込みノード0202の再同期稼働化を実行する際に、稼働中ノード0201は、ユーザプログラム0211を無停止で正常に実行させたまま、データ0212のコピー及びユーザプログラム0211の実行状態等を通知する。
組込みノード0202の再同期稼働化の完了時には、組込みノード0202のユーザプログラム0221は、稼働中ノード0201のユーザプログラム0211と同じ実行状態(同一の入力メッセージに対する処理を同時に実行している状態)となり、組込みノード0202のデータ0222は、稼働中ノード0201のデータ0212と一致する。
図2Bは、本発明の第1の実施の形態の組込みノード0202の再同期稼働化処理のシーケンス図である。
まず、稼働中ノード0201のユーザプログラム0211は、各入力(入力メッセージ)0251、0252及び0253に対する処理を実行し、実行された結果を出力(出力メッセージ)0261、0262及び0263として返す。
一方、組込みノード0202は、メンテナンス及び異常発生時の回復作業等のために停止していた状態から再起動する(0241)。
次に、稼働中ノード0201は、組込みノード0202が再起動したことを検出すると、稼働中ノード0201のデータ0212と組込みノード0202のデータ022とを一致化させるため、組込みノード0202のデータ0222に、稼働中ノード0201のデータ0212を書き込む(0231)。組込みノード0202の再起動は、稼働中ノード0201が組込みノード0202から再起動したことの通知を直接受信することによって検出される。また、稼働中ノード0201が、マスターとなるノード0111から組込みノード0202の再起動の通知を受信することによって再起動が検出されてもよい。また、稼働中ノード0201が、組込みノード0202から問合せを受け付けることによって再起動が検出されてもよい。
次に、組込みノード0202は、データの書き込みが終了すると、データ一致化が完了したことを検出する(0242)。データ一致化の完了は、例えば、データを書き込みした稼働中ノード0201から、データ一致化が完了した通知を受信することによって検出される。
次に、組込みノード0202は、ユーザプログラム0221の実行状態を、稼働中ノード0201のユーザプログラム0211の実行状態と一致させて、ユーザプログラム0221の処理を再開する(0243)。以降、組込みノード0202は、稼働中ノード0201で実行されるユーザプログラム0211と同様に、入力0253に対して処理を実行し、出力0273を返す。ここで、組込みノード0202の処理が正常に実行される場合には、出力0272、0273は、それぞれ稼働中ノード0201の出力0262、0263と一致する。
図3は、本発明の第1の実施の形態のノード0111のモジュールの構成図である。
ノード0111のモジュールは、外部システム0103からの要求に対する処理等を実行する。
ノード0111のモジュールは、ユーザプログラム0302、共有メモリ0303、ファイル0304及びミドルウェア0301を含む。
ユーザプログラム0302は、外部システム0103から要求された処理を実行し、実行した結果を応答として返す。
共有メモリ0303は、ユーザプログラム0302が処理中にデータの読み込み、及び、データの書き込みを行なうメモリである。
ファイル0304は、ユーザプログラム0302が処理中にデータの読み込み、及び、データの書き込みを行うファイルデータである。
ミドルウェア0301は、データ同期処理部0311、ユーザプログラム実行管理部0312、入出力管理部0313、データ通信部0314、入力管理テーブル0321、処理対象管理テーブル0322、ユーザプログラム進捗管理テーブル0325、入力バッファ0323、及び同期用バッファ0324を含む。
データ同期処理部0311は、組込みノード0202の再同期稼働化の処理が実行される時に、稼働中ノード0201のデータを組込みノード0202のデータに書き込む。
ユーザプログラム実行管理部0312は、処理対象管理テーブル0322を参照し、ユーザプログラム0302の起動及び実行状態の監視等を行う。
入出力管理部0313は、入力バッファ0313から取り出した入力メッセージをユーザプログラム0302に引き渡し、ユーザプログラム0302が実行した処理の出力を、データ通信部0315を用いて送信する。
データ通信部0314は、通信媒体0305(例えば、LAN0112)を介して他のノード0111及びゲートウェイサーバ0113等と通信する。
入力管理テーブル0321は、受信済みの入力メッセージを管理する。入力管理テーブル0321の詳細は、図6Cを用いて後述する。
処理対象管理テーブル0322は、ユーザプログラムの処理対象となる入力メッセージ(処理を要求する入力メッセージ)を管理する。処理対象管理テーブル0322の詳細は、図6Bを用いて後述する。
ユーザプログラム進捗管理テーブル0325は、ユーザプログラムの実行状態を管理する。ユーザプログラム進捗管理テーブル0325の詳細は、図6Aを用いて後述する。
入力バッファ0323は、データ通信部0315を介してゲートウェイサーバ0113から受信した入力メッセージを、ユーザプログラム0302が処理対象として使用する時まで格納する。なおユーザプログラム進捗管理テーブル0325の内容データは、稼働中ノードから組込みノードへコピー、一致化できるように、共有メモリ0303もしくはファイル0304に保存される。
同期バッファ0324は、組込みノード0202の再同期稼働化処理の実行時に、データ通信部0315を介して稼働中ノード0201から受信した入力メッセージを、ユーザプログラム0302が処理対象として使用する時まで格納する。
組込みノード0202の再同期稼働化処理の実行時に、稼働中ノード0201のデータを組込みノード0202に書き込む場合、稼働中ノード0201のデータ同期処理部0311は、稼働中ノード0201内の共有メモリ0303及びファイル0304から書き込み用のデータを取り出し、データ通信部0314を用いて取り出した書き込み用のデータを組込みノード0202に送信する。
組込みノード0202のデータ同期処理部0311は、稼働中ノード0201から送信された書き込み用のデータを、データ通信部0314を用いて受信し、組込みノード0202内の共有メモリ0303及びファイル0304に、上書きを許して受信した書き込み用のデータを書き込む。
図4は、本発明の第1の実施の形態の、計算機間の再同期稼働化の状態一致化方法の概要を示す。
図4に示す例では、組込みノード0202の状態と稼働中ノード0201の状態(データ内容、プログラム実行状態、及び入出力等)を一致化させる組込みノード0202の再同期稼働化の処理の流れの概要を説明する。
稼働中ノードでは、入力#11(0401)、入力#12(0402)、入力#13(0403)、入力#14(0404)及び入力#15(0405)の各メッセージを受信する度に、ユーザプログラム0211が処理0411、0412、0413及び0414をそれぞれ実行して、出力(実行結果)を返す。
稼働中ノード0201は、組込みノード0202の再起動を検出した後、ある時点(0406)における稼働中ノード0201の全データを抜き出し、抜き出したデータを組込みノード0202に書き込む(0407)。
そして、稼働中ノード0201は、各入力に対するユーザプログラムの処理を開始する度に、組込みノード0202にユーザプログラムの処理開始の通知及び入力メッセージを転送する(0431、0432、0433、0434及び0435)。
組込みノード0202は、稼働中ノード0201からユーザプログラムの処理開始の通知を受信し、転送された入力メッセージを蓄積する。そして、稼働中ノード0201からデータの書き込み(0407)が完了すると、稼働中ノード0201で全データを抜き出した時点で処理対象となる入力メッセージ(図4に示す例では、入力#11(0401)の転送メッセージ0431)に対する処理(0421)から処理を再開する。以降、順番に入力#12、#13、#14及び#15の各メッセージを用いて、処理0422、0423、0424及び0425を連続して実行する。
ここで、組込みノード0202が連続して実行する処理0422、0423、0424及び0425の対象となる入力メッセージは、組込みノード0202の再同期稼働化処理が完了するまで、稼働中ノード0201から転送される入力メッセージ0431、0432、0433、0434及び0435が使用される。
また、稼働中ノード0201から転送される入力メッセージ0431、0432、0433、0434及び0435が最初は使用されるが、稼働中ノード0201から処理開始の通知及び転送される入力メッセージを受信する度に、外部システム0103から直接受信して入力バッファ0323に格納された入力メッセージ又は入力管理テーブル0321を参照し、稼働中ノード0201から転送された入力メッセージと同一の入力メッセージを保持していた時点で、以降は外部システム0103から直接受信した入メッセージを用いて、連続して処理0422、0423、0424及び0425が実行されてもよい。この場合、組込みノード0202は、稼働中ノード0201から送信される処理開始の通知のみを参照する。
このように、稼働中ノード0201は、組込みノード0202に処理開始の通知をするのみであるため、組込みノード0202を同期して稼動させる時に稼動中ノード0201の負荷が増大することを抑止することができる。
組込みノード0202は、連続した処理を数回繰り返すと、組込みノード0202で実行されるユーザプログラム0221の処理対象の入力(入力メッセージ)が、稼働中ノード0201で実行されるユーザプログラム0211の処理対象の入力(入力メッセージ)と一致する(図4に示す例では、入力#15に対する処理実行時)。この時点で、組込みノード0202は、稼働中ノード0201とデータ内容が一致し、組込みノード0202の再同期稼働化処理は完了したとみなす。
このように、組込みノード0202のデータ内容を、ある時点での稼働中ノード0201のデータ内容にしておき、以降は、稼働中ノード0201と同じ入力に対する処理を、組込みノード0202が順次追従して実行することによって、組込みノード0202のデータ内容は、稼働中ノード0201のデータ内容と一致し、外部からの同じ入力に対して同時に処理が実行されるようになる。
したがって、本発明の第1の実施形態によって、データ内容の更新が頻繁に発生する場合でも、稼働中ノード0201を停止させることなく、組込みノード0202を稼働中ノード0201と同じ状態にすることができる。
図5は、本発明の第1の実施の形態のノード0111で実行されるユーザプログラムの作成方法の概要を示す。
ユーザプログラム0501は、複数の処理ステップ0521、0522、0523、0524、0525及び0526を含む。ユーザプログラム0501には、指定ポイント0503として、0531、0532、0533が設定される。指定ポイント0503は、ユーザプログラム0501の各処理ステップの中で、主に外部との入出力及びデータ書き込み等が発生する箇所に設けられるものであり、ユーザプログラム0501の設計の際に決定され、ユーザプログラム0501に実装される。
図5に示すように、稼働中ノード0201は、ユーザプログラム0501の実行に伴って、各指定ポイント0531及び0532で、各時点での内部状態を外部記憶領域0502に書き込む(0511、0512)。外部記憶領域0502には、例えば、共有メモリ0303及びファイル0304が用いられ、稼働中ノード0201から組込みノード0202へのデータ書き込みによるデータ一致化を実施することで、前記外部記憶領域0502に書き込まれるユーザプログラム0501の内部状態は、稼働中ノード0201と組込みノード0202の間で、共有される。
図5に示す例では、ユーザプログラム0501の処理ステップ0525の終了後にノード0111が停止している(0514)。
一方、組込みノード0202は、ユーザプログラム0501を再起動する(0515)。この場合、ユーザプログラム0501は、外部記憶領域0502を参照し、前回のユーザプログラム実行時に指定ポイント0531及び0531で外部記憶領域0502に書き込まれた内部状態を読み込む(0513)。前回のユーザプログラム実行時には指定ポイント0532まで内部状態が書き込まれているため、処理ステップ0521、0522及び0523は実行されず、再起動後は処理ステップ0524より処理が再開される(0516)。
図6Aは、本発明の第1の実施の形態のユーザプログラム進捗管理テーブル0325を示す。
ユーザプログラム進捗管理テーブル0325は、ユーザプログラム名称0611、プロセスID0612、処理対象メッセージ通番0613、経過済ポイント番号0614、及び内部状態値0615を含む。
ユーザプログラム名称0611は、ノード0111上で実行され、外部システム0103から要求された処理を実行し、実行結果の応答を返すユーザプログラムの名称である。
プロセスID0612は、ユーザプログラムがノード0111上で実行される時のプロセスIDである。
処理対象メッセージ通番0613は、ユーザプログラムが処理対象としている最新の入力メッセージの通番(連続した番号)である。
経過済ポイント番号0614は、ユーザプログラムの処理の実行過程において、すでに実行済みの最新のポイント番号である。ポイント番号は、例えば、図5に示す指定ポイント0532の番号である。
内部状態値0615は、ユーザプログラム名称0611に対応するユーザプログラムの処理の実行過程において、経過済ポイント番号0614に格納されるポイント番号に該当するポイントでのユーザプログラムの内部状態値である。
図6Aに示す例では、ユーザプログラム進捗管理テーブル0325の第1行のユーザプログラム名称0611、プロセスID0612、処理対象メッセージ通番0613、経過済ポイント番号0614、及び内部状態値0615には、それぞれ、「UP_A」、「1111」、「10」、「3」及び「XXXXXXXX」が格納されている。これは、ノード0111が実行するユーザプログラムの名称が「UP_A」であり、「UP_A」がノード0111で実行される時のプロセスIDが「1111」であり、「UP_A」が処理対象としている入力メッセージが「10」であり、「UP_A」がすでに実行済みの最新の指定ポイントが「3」であり、指定ポイント「3」における内部状態値が「XXXXXXXX」であることを意味する。
ユーザプログラム名称0611、プロセスID0612、及び処理対象メッセージ通番0613は、ノード0111上で稼働するミドルウェア0301によって書き込まれる。また、経過済ポイント番号0614及び内部状態値0615は、実行されるユーザプログラムが指定されたポイントを経過する度に、ユーザプログラムによって更新される。
図6Bは、本発明の第1の実施の形態の処理対象管理テーブル0322を示す。
処理対象管理テーブル0322は、ノード0621、通番0622、受信時刻0623、ステータス0624、及び更新時刻0625を含む。
ノード0621は、ノード0111の区分であり、例えば、「組込みノード」及び「稼働中ノード」が格納される。
通番0622は、各ノード0111で現在処理対象となる最新の入力メッセージの通番である。
受信時刻0623は、通番0622に該当する入力メッセージを稼働中ノードが直接受信した時刻である。
ステータス0624は、各ノードで実行されるユーザプログラムの処理のステータス(実行状態)である。ステータス0624には、例えば、「未処理」、「処理中」、及び「処理終了」が格納される。
更新時刻0625は、処理対象管理テーブル0322の各行が更新された最新の更新時刻である。
図6Bに示す例では、処理対象管理テーブル0322の第1行のノード0621、通番0622、受信時刻0623、ステータス0624、及び更新時刻0625には、それぞれ、「組込みノード」、「10」、「10:10:15」、「処理中」及び「10:11:40」が格納されている。これは、組込みノード0202の現在処理対象となる入力メッセージの通番は「10」であり、通番「10」の入力メッセージを稼働中ノード0201が受信した時刻が「10:10:15」であり、通番「10」の入力メッセージに対応する処理のステータスは「処理中」であり、処理対象管理テーブル0322の第1行が更新された時刻が「10:11:40」であることを意味する。
処理対象管理テーブル0322の各項目は、組込みノード0202で処理が実行される度に更新される。また、組込みノード0202が稼働中ノード0201から処理開始の通知を受信する度に更新される。
なお、処理対象管理テーブル0322は、組込みノードの再同期稼働化処理の実行中に、組込みノード0202でのみ更新及び利用される。
図6Cは、本発明の第1の実施の形態の入力管理テーブル0321を示す。
入力管理テーブル0321は、通番0631及び受信時刻0632を含む。
通番0631は、ノード0111が外部システム0103から受信し、入力バッファ0323に格納された入力メッセージの通番である。
受信時刻0632は、通番0631に該当する入力メッセージを受信した時刻である。
図6Cに示す例では、入力管理テーブル0321の第1行の通番0631及び受信時刻0632には、それぞれ、「12」及び「10:10:25」が格納されている。これは、ノード0111が受信した入力メッセージの通番が「12」であり、「10:10:25」に受信されたことを意味する。
入力管理テーブル0321の各項目は、入力メッセージを受信する度に更新される。
図7は、本発明の第1の実施の形態のノード0111の再同期稼働化を実行する組込みノード0202での処理のフローチャートである。
以降に示す処理は、記憶装置0122に格納されているプログラムを処理装置0121が実行することによって実現される。
図7に示す処理は、メンテナンス及び異常発生時の回復作業等のために停止していた組込みノード0202が再同期稼働化をする際に実行される。
まず、組込みノード0202は、稼働中ノード0201からのデータ書き込みの処理が完了するまで待機する(0701)。なお、稼働中ノード0201からのデータ書き込みの処理については図8を用いて後述する。
次に、組込みノード0202は、稼働中ノード0201から書き込み終了通知を受信したか否かを判定する(0702)。稼働中ノード0201から書き込み終了通知を受信していない場合、稼働中ノード0201からのデータ書き込みの処理が完了するまで待機する必要があるため、ステップ0701に戻る。一方、稼働中ノード0201から書き込み終了通知を受信した場合、処理はステップ0703に進む。
なお、組込みノード0202は、稼働中ノード0201から書き込み終了通知を受信することによって、データの書き込み等の制御権が稼働中ノード0201から組込みノード0202に切り替わるタイミングを検知することができる。
次に、組込みノード0202は、ステップ0702で受信した書き込み終了通知を参照し、稼働中ノード0201のデータ書き込み処理中にデータの更新があるか否かを判定する(0703)。データの更新がない場合、再同期稼働化を実行する必要がないため、処理はステップ0714に進む。一方、データ更の新がある場合、処理はステップ0704に進む。
次に、組込みノード0202は、処理対象管理テーブル0322を参照する(0704)。
次に、組込みノード0202は、ステップ0704で参照された結果に基づいて、ユーザプログラムの処理対象となる入力メッセージを同期用バッファ0324から読み込む(0705)。具体的には、組込みノード0202は、同期用バッファ0324に格納されている入力メッセージから、未処理の通番0622のうち最も番号の小さい入力メッセージをユーザプログラムの処理対象とし、該当する入力メッセージを同期用バッファ0324から読み込む。
次に、組込みノード0202は、ステップ0705で読み込んだ入力メッセージのデータをユーザプログラムに引き渡す(0706)。
次に、組込みノード0202は、処理対象管理テーブル0322のステータス情報を更新する(0707)。具体的には、組込みノード0202は、ステップ0706でユーザプログラムに引き渡した入力メッセージに対応する通番を通番0622に格納し、該当する入力メッセージを稼働中ノード0201が受信した時刻を受信時刻0623に格納し、ステータス0624に「処理中」の値を格納し、更新する現在の時刻を更新時刻0625に格納する。
次に、組込みノード0202は、外部システム0103から直接受信した入力メッセージを格納している入力バッファ0323を参照する(0708)。
次に、組込みノード0202は、ステップ0708で参照した入力バッファ0323に格納されている入力メッセージの通番と、ステップ0706でユーザプログラムに引き渡した入力メッセージの通番とを比較し、同じメッセージであるか否かを判定する(0709)。
入力バッファ0323に格納されている入力メッセージとユーザプログラムに引き渡した入力メッセージとが同じメッセージでない場合、入力バッファ0323に格納されている入力メッセージを削除する必要がないため、処理はステップ0711に進む。一方、入力バッファ0323に格納されている入力メッセージとユーザプログラムに引き渡した入力メッセージとが同じメッセージである場合、処理はステップ0710に進む。
次に、組込みノード0202は、ステップ0709で同じメッセージであると判定された入力メッセージを入力バッファ0323から取り出し、取り出した入力メッセージを削除する(0710)。
なお、ステップ0708からステップ0710の処理は、組込みノード0202の再同期稼働化の処理が完了するまで、稼働中ノード0201から転送される入力メッセージを用いてユーザプログラムを実行する場合の処理ステップである。
次に、組込みノード0202は、処理対象管理テーブル0322を参照する(0711)。
次に、組込みノード0202は、ステップ0711で参照された処理対象管理テーブル0322の稼働中ノード0201の処理対象メッセージの通番0622と、組込みノード0202の処理対象メッセージの通番0622とを比較し、通番0622が一致するか否かを判定する(0712)。
通番0622が一致しない場合、組込みノード0202が稼働中ノード0201の状態と一致するため、未処理の入力メッセージに対するユーザプログラムを実行する必要がある。この場合、処理はステップ0704に戻る。一方、通番0622が一致する場合、処理はステップ0713に進む。
次に、組込みノード0202は、稼働中ノード0201に再同期稼働化完了通知を送信する。
次に、組込みノード0202は、組込みノード0202の再同期稼働化が正常に完了したと判定し、処理を終了する(0714)。すなわち、処理を終了した以降は、組込みノード0202が外部システム0103から直接受信した入力メッセージに対してユーザプログラムの処理を実行する。
図8は、本発明の第1の実施の形態の組込みノード0202のユーザプログラムの処理結果の出力を制御する処理のフローチャートである。
図8に示す処理は、ユーザプログラムの処理結果を外部システム0103に送信する時に実行される。
まず、組込みノード0202は、処理対象管理テーブル0322を参照する(0802)。
次に、組込みノード0202は、ステップ802で処理対象管理テーブル0322を参照した結果、現時点で、稼働中ノード0201のユーザプログラムの処理対象の入力メッセージの通番0622と、組込みノード0202のユーザプログラムの処理対象の入力メッセージの通番0622とを比較し、組込みノード0202の通番0622が稼働中ノード0201の通番0622以上であるか否かを判定する(0803)。
組込みノード0202の通番0622が稼働中ノード0201の通番0622以上でない場合、処理結果を外部システム0103に送信する必要がないため、処理はステップ0805に進む。一方、組込みノード0202の通番0622が稼働中ノード0201の通番0622以上である場合、処理結果を外部システム0103に送信する必要があるため、処理はステップ0804に進む。
なお、組込みノード0202の通番0622が稼働中ノード0201の通番0622以上でない場合、処理結果を外部システム0103に送信する必要がないのは、組込みノード0202が処理対象とした入力メッセージに対する処理が、稼働中ノード0201で既に実行を終了しており、入力メッセージの要求元である外部システム0103に処理結果を送信済みであるためである。したがって、組込みノード0202が遅れて処理結果を送信することによる外部システム0103側での不整合の発生を回避するため、組込みノード0202で処理結果を送信せずに廃棄する必要がある。
次に、組込みノード0202は、ユーザプログラムの処理結果を出力メッセージとして外部システム0103に送信する(0804)。
ステップ805で、組込みノード0202は、ユーザプログラムの処理結果を外部システム0103に送信せずに廃棄する(0805)。組込みノード0202が処理結果を外部システム0103に送信せずに廃棄することによって、ゲートウェイ0113は、処理結果を制御する負荷を減らし、機能を有効に利用することができる。
次に、組込みノード0202は、処理対象管理テーブル0322のステータス情報を更新する(0806)。具体的には、処理対象管理テーブル0322のステータス0624に「処理終了」の値を格納し、更新する現在の時刻を更新時刻0625に格納する。そして、処理は終了する。
図9Aは、本発明の第1の実施の形態の稼働中ノード0201がある時点で抜き出した全データを組込みノード0202に書き込む処理のフローチャートである。
図9Aに示す処理は、稼働中ノード0201が組込みノード0202の再起動を検出した時に実行される。
まず、稼働中ノード0201は、指定されたある時点での稼働中ノード0201の全データ(例えば、共有メモリ及びファイル等のデータ)を抜き出し、バッファ領域等に一時保存する(0911)。
次に、稼働中ノード0201は、ステップ0911で一時保存されたデータを組込みノード0202に書き込む(0912)。なお、組込みノード0202に同じデータがある場合でも、稼働中ノード0201は、全て上書きを許して組込みノード0202にデータを書き込む。
次に、稼働中ノード0201は、ステップ0912の書き込みが終了したか否かを判定する(0913)。書き込みが終了していない場合、全てのデータを書き込む必要があるため、処理はステップ912に戻る。一方、書き込みが終了した場合、処理はステップ0914に進む。
次に、稼働中ノード0201は、組込みノード0202に通知するデータの書き込み終了通知のメッセージを作成する(0914)。
次に、稼働中ノード0201は、ステップ0912のデータ書き込み処理が開始してから終了するまでの間に、ユーザプログラムによる書き込みによって、稼働中ノード0201のデータが更新されたか否かを判定する(0915)。データが更新されていない場合、組込みノード0202にデータの更新がないことを通知する必要があるため、処理はステップ0916に進む。一方、データが更新されている場合、処理はステップ0917に進む。
次に、稼働中ノード0201は、ステップ0914で作成した書き込み終了通知のメッセージに、データの更新が無いことを示す情報を追加する(0916)。
次に、稼働中ノード0201は、ステップ0914で作成した書き込み終了通知を組込みノード0202に送信する(0917)。
次に、稼働中ノード0201は、ステップ0911でバッファ領域に一時保存されたデータを削除する(0918)。そして、処理は終了する。
図9Bは、本発明の第1の実施の形態の稼働中ノード0201で入力メッセージに対する処理を開始する際に組込みノード0202に処理開始を通知する処理のフローチャートである。
まず、稼働中ノード0201は、組込みノード0202の再起動を検出する(0921)。
次に、稼働中ノード0201は、外部システム0103から入力メッセージを受信する(0922)。
次に、稼働中ノード0201は、ステップ0922で受信した入力メッセージに対する処理を開始する通知、及び、入力メッセージの転送を組込みノード0202に行う(0923)。
次に、稼働中ノード0201は、ステップ0922で受信した入力メッセージに対するユーザプログラムの処理を実行する(0924)。
次に、稼働中ノード0201は、組込みノード0202から再同期稼働完了通知を受信したか否かを判定する(0925)。組込みノード0202から再同期稼働完了通知を受信していない場合、入力メッセージに対する処理開始の通知、及び、入力メッセージの転送を継続して組込みノード0202に行う必要があるため、処理はステップ0922に戻る。一方、組込みノード0202から再同期稼働完了通知を受信した場合、処理は終了する。
図10Aは、本発明の第1の実施の形態の稼働中ノード0201が組込みノード0202に送信する処理開始通知のメッセージ形式を示す。
処理開始通知のメッセージ1001は、ヘッダ情報1011、識別情報1012、通番1013、受信時刻1014、ステータス1015、及び入力データ1016を含む。
ヘッダ情報1011は、メッセージプロトコル等に関する情報である。
識別情報1012は、メッセージ1001が稼働中ノード0201からの処理開始通知であることを示す識別情報である。
通番1013は、稼働中ノード0201が外部システム0103から直接受信し、組込みノード0202に転送する入力メッセージに付与される通番である。
受信時刻1014は、稼働中ノード0201が入力メッセージを外部システム0103から直接受信した時刻である。
ステータス1015は、稼働中ノード0201における入力メッセージに対するユーザプログラムの処理の状態である。処理開始通知は、稼働中ノード0201でユーザプログラムの処理が開始される時点で送信されるため、ステータス1015には、通常「処理中」の値が格納される。
入力データ1016は、稼働中ノード0201が外部システム0103から直接受信し、組込みノード0202に転送する入力メッセージのデータ内容である。
図10Bは、本発明の第1の実施の形態の稼働中ノード0201が組込みノード0202に送信する書き込み終了通知、及び、組込みノード0202が稼働中ノード0201に送信する再同期稼働完了通知のメッセージ形式を示す。
書き込み終了通知又は再同期稼働完了通知のメッセージ1002は、ヘッダ情報1021、識別情報1022、及びフラグ1023を含む。
ヘッダ情報1021は、メッセージプロトコル等に関する情報である。
識別情報1022は、メッセージ1002が稼働中ノード0201からの書き込み終了通知又は組込みノード0202からの再同期稼働完了通知であることを示す識別情報である。
フラグ1023は、メッセージ1002が書き込み終了通知である場合(識別情報1022が、メッセージ1002が稼働中ノード0201からの書き込み終了通知であることを示す識別情報である場合)、稼働中ノード0201から組込みノード0202へのデータの書き込み処理が終了するまでに、稼働中ノード0201のデータの更新が発生したか否かのフラグ情報である。
本実施形態では、メンテナンス及び異常発生時の回復作業等によって停止させていた一部のノードを再びフォールトトレラントコンピュータシステムに復旧させる場合について説明したが、フォールトトレラントコンピュータシステムに新たにノードを設置する場合にも適用することが可能である。
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
本発明の第1の実施の形態のフォールトトレラントコンピュータシステムの構成図である。 本発明の第1の実施の形態のノードの再同期稼働化の概要を示す図である。 本発明の第1の実施の形態の組込みノードの再同期稼働化処理のシーケンス図である。 本発明の第1の実施の形態のノードのモジュールの構成図である。 本発明の第1の実施の形態の、計算機間の再同期稼働化の状態一致化方法の概要を示す。 本発明の第1の実施の形態のノードで実行されるユーザプログラムの作成方法の概要を示す。 本発明の第1の実施の形態のユーザプログラム進捗管理テーブルを示す。 本発明の第1の実施の形態の処理対象管理テーブルを示す。 本発明の第1の実施の形態の入力管理テーブルを示す。 本発明の第1の実施の形態のノードの再同期稼働化を実行する組込みノードでの処理のフローチャートである。 本発明の第1の実施の形態の組込みノードのユーザプログラムの処理結果の出力を制御する処理のフローチャートである。 本発明の第1の実施の形態の稼働中ノードがある時点で抜き出した全データを組込みノードに書き込む処理のフローチャートである。 本発明の第1の実施の形態の稼働中ノードで入力メッセージに対する処理を開始する際に組込みノードに処理開始を通知する処理のフローチャートである。 本発明の第1の実施の形態の稼働中ノードが組込みノードに送信する処理開始通知のメッセージ形式を示す。 本発明の第1の実施の形態の稼働中ノードが組込みノードに送信する書き込み終了通知、及び、組込みノードが稼働中ノードに送信する再同期稼働完了通知のメッセージ形式を示す。
符号の説明
0111 ノード
0113 ゲートウェイ
0112 LAN
0103 外部システム
0201 稼働中ノード
0202 組込みノード

Claims (16)

  1. 同じ処理を並列に実行可能な複数のノードと、前記複数のノードを接続するネットワークと、前記ネットワークを介して前記複数のノードと接続されるゲートウェイと、を備える計算機システムであって、
    前記複数のノードは、前記処理を実行中の一つ以上の第1ノードと、前記計算機システムに組み込まれる第2ノードとを含み、
    前記各ノードは、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1ノードは、
    前記第2ノードの起動を検出した場合、前記第1ノードが実行する処理の進捗状態及び内部状態値を含むデータを抽出し、
    前記抽出されたデータを前記第2ノードに書き込み、
    前記ゲートウェイを介して受信したメッセージによって要求された処理を実行する時に、前記第2ノードに処理の開始を通知し、
    前記第2ノードは、
    前記データの書き込みの終了を検出すると、前記第1ノードが前記データを抽出した時に前記第1ノードで実行されている処理から実行を開始し、
    前記第1ノードが前記データを抽出した後に前記第1ノードが受信したメッセージによって要求される処理を順に続けて実行し、
    前記第1ノードから通知された処理の開始を参照することによって、前記第1ノードと前記第2ノードとの処理の進捗の差を監視し、
    前記第1ノードと前記第2ノードとの処理の進捗の差が解消された場合、前記第2ノードの同期稼働化の完了を通知することを特徴とする計算機システム。
  2. 前記第1ノードは、前記第2ノードへのデータの書き込みを終了した時、前記データの書き込み終了の通知を前記第2ノードに送信し、
    前記第2ノードは、前記第1ノードから送信されたデータの書き込み終了の通知を受信することによって、前記第1ノードからのデータの書き込みの終了を検出することを特徴とする請求項1に記載の計算機システム。
  3. 前記ゲートウェイは、受信したメッセージに一意の連続した番号を割り当て、
    前記第2ノードは、前記第1ノードから開始が通知された処理を要求したメッセージに割り当てられた番号と、前記第2ノードが実行している処理を要求したメッセージに割り当てられた番号とを比較することによって、前記第1ノードと前記第2ノードとの処理進捗の差を監視することを特徴とする請求項1に記載の計算機システム。
  4. 前記各ノードは、前記ゲートウェイを介して受信したメッセージによって要求された処理を実行し、前記ゲートウェイを介して処理の結果を送信するユーザプログラムを実行し、
    前記プロセッサは、
    前記ユーザプログラムによって実行される処理を複数のステップに分割し、
    前記分割された複数のステップのうち、データを入出力する一つ以上のステップにポイントを設定し、
    前記第1ノードは、前記設定されたポイントに前記ユーザプログラムの処理が至った時に、前記ユーザプログラムの進捗状態及び内部状態値を前記メモリに書き込み、
    前記第2ノードは、前記メモリに書き込まれたユーザプログラムの進捗状態及び前記内部状態値を参照し、前記設定されたポイントの次のステップから前記ユーザプログラムの処理を開始することを特徴とする請求項1に記載の計算機システム。
  5. 前記第2ノードは、前記第1ノードが前記データを抽出した時に前記第1ノードで実行されている処理の進捗状態及び内部状態値に基づいて、前記第1ノードが前記データを抽出した時に前記第1ノードで実行されている処理から実行を開始することを特徴とする請求項1に記載の計算機システム。
  6. 前記第1ノードは、前記第2ノードに処理の開始を通知すると共に、前記実行される処理が対象とする前記ゲートウェイを介して受信したメッセージを前記第2ノードに転送し、
    前記第2ノードは、前記処理の開始の通知及び前記処理が対象とするメッセージを前記第1ノードから受信した場合に、前記受信した処理の開始の通知及び前記処理の対象とされるメッセージを保持することを特徴とする請求項1に記載の計算機システム。
  7. 前記第2ノードは、前記第1ノードが前記データを抽出した後に前記第1ノードが実行した処理が対象とするメッセージを用いて、前記処理を順に実行することを特徴とする請求項6に記載の計算機システム。
  8. 前記第2ノードは、前記第1ノードから転送されたメッセージと同じメッセージを前記ゲートウェイから受信して保持している場合、前記ゲートウェイから受信したメッセージを用いて前記処理を実行することを特徴とする請求項7に記載の計算機システム。
  9. 前記第2ノードは、
    前記第1ノードで実行中の処理を要求したメッセージの番号と前記第2ノードで実行中の処理を要求したメッセージの番号とを比較し、
    前記第1ノードが、前記第2ノードで実行中の処理を要求したメッセージを対象とする処理の実行を終了している場合、前記実行中の処理の結果を前記ゲートウェイに送信しないことを特徴とする請求項1に記載の計算機システム。
  10. 前記第2ノードは、前記第1ノードから通知された処理の開始を参照し、前記第1ノードで実行中の処理を要求したメッセージと、前記第2ノードで実行中の処理を要求したメッセージとが一致した時に、前記第1ノードと前記第2ノードとの処理進捗の差が解消されたと判定することを特徴とする請求項1に記載の計算機システム。
  11. 前記第2ノードは、前記第1ノードが前記データを抽出した時から前記第2ノードへのデータの書き込みを終了するまでの間に、前記第1ノードでデータが更新されなかった場合、前記第2ノードの同期稼働化が完了したと判定することを特徴とする請求項1に記載の計算機システム。
  12. 前記第1ノードは、
    前記第2ノードの起動を検出した場合、前記第1ノードが実行する処理の進捗状態及び内部状態値を含む前記第1ノードの全てのデータを抽出し、
    前記抽出されたデータを保存することを特徴とする請求項1に記載の計算機システム。
  13. 前記ゲートウェイは、
    処理の要求を含むメッセージを受信し、
    二つ以上の前記第1ノードに前記メッセージを送信し、
    前記要求された処理について、二つ以上の前記第1ノードが実行した結果を比較し、
    前記比較された結果のうち、正しい結果を選択し、
    前記選択された結果を応答として送信することを特徴とする請求項1に記載の計算機システム。
  14. 同じ処理を並列に実行可能な複数のノードと、前記複数のノードを接続するネットワークと、前記ネットワークを介して前記複数のノードと接続されるゲートウェイと、を備える計算機システムで実行されるノードの同期稼動化方法であって、
    前記複数のノードは、前記処理を実行中の一つ以上の第1ノードと、前記計算機システムに組み込まれる第2ノードとを含み、
    前記各ノードは、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記方法は、
    前記第1ノードが、前記第2ノードの起動を検出した場合、前記第1ノードが実行する処理の進捗状態及び内部状態値を含むデータを抽出し、
    前記第1ノードが、前記抽出されたデータを前記第2ノードに書き込み、
    前記第1ノードが、前記ゲートウェイを介して受信したメッセージによって要求された処理を実行する時に、前記第2ノードに処理の開始を通知し、
    前記第2ノードが、前記データの書き込みの終了を検出すると、前記第1ノードが前記データを抽出した時に前記第1ノードで実行されている処理から実行を開始し、
    前記第2ノードが、前記第1ノードが前記データを抽出した後に前記第1ノードが受信したメッセージによって要求される処理を順に続けて実行し、
    前記第2ノードが、前記第1ノードから通知された処理の開始を参照することによって、前記第1ノードと前記第2ノードとの処理の進捗の差を監視し、
    前記第2ノードが、前記第1ノードと前記第2ノードとの処理の進捗の差が解消された場合、前記第2ノードの同期稼働化の完了を通知することを特徴とするノードの同期稼動化方法。
  15. 同じ処理を並列に実行可能な複数のノードと、前記複数のノードを接続するネットワークと、前記ネットワークを介して前記複数のノードと接続されるゲートウェイと、を備える計算機システムに備わるノードであって、
    前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記プロセッサは、
    他の前記ノードによって抽出され、前記他のノードが実行する処理の進捗状態及び内部状態値を含むデータの書き込みを受け付け、
    前記他のノードからデータの書き込みの終了を検出すると、前記他のノードが前記データを抽出した時に、前記他のノードで実行されている処理から実行を開始し、
    前記他のノードが前記データを抽出した後に前記他のノードが受信したメッセージによって要求される処理を順に続けて実行し、
    前記他のノードから通知された処理の開始を参照することによって、前記他のノードと当該ノードとの処理の進捗の差を監視し、
    前記他のノードと当該ノードとの処理の進捗の差が解消された場合、当該ノードの同期稼働化の完了を通知することを特徴とするノード。
  16. 同じ処理を並列に実行可能な複数のノードと、前記複数のノードを接続するネットワークと、前記ネットワークを介して前記複数のノードと接続されるゲートウェイと、を備える計算機システムに備わるノードを同期稼動化するプログラムであって、
    前記複数のノードは、前記処理を実行中の一つ以上の第1ノードと、前記計算機システムに組み込まれる一つ以上の第2ノードとを含み、
    前記各ノードは、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記プログラムは、
    前記第1ノードによって抽出された、実行する処理の進捗状態及び内部状態値を含むデータの書き込みを受け付け、
    前記第1ノードからデータの書き込みの終了を検出すると、前記第1ノードが前記データを抽出した時に、前記第1ノードで実行されている処理から実行を開始し、
    前記第1ノードが前記データを抽出した後に前記第1ノードが受信したメッセージによって要求される処理を順に続けて実行し、
    前記第1ノードから通知された処理の開始を参照することによって、前記第1ノードと前記第2ノードとの処理の進捗の差を監視し、
    前記第1ノードと前記第2ノードとの処理の進捗の差が解消された場合、前記第2ノードの同期稼働化が完了を通知する処理を前記第2ノードのプロセッサに実行させるプログラム。
JP2007271135A 2007-10-18 2007-10-18 計算機システム、同期稼動化方法、ノード、及びプログラム Expired - Fee Related JP4874211B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007271135A JP4874211B2 (ja) 2007-10-18 2007-10-18 計算機システム、同期稼動化方法、ノード、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007271135A JP4874211B2 (ja) 2007-10-18 2007-10-18 計算機システム、同期稼動化方法、ノード、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009099016A JP2009099016A (ja) 2009-05-07
JP4874211B2 true JP4874211B2 (ja) 2012-02-15

Family

ID=40701945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007271135A Expired - Fee Related JP4874211B2 (ja) 2007-10-18 2007-10-18 計算機システム、同期稼動化方法、ノード、及びプログラム

Country Status (1)

Country Link
JP (1) JP4874211B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5331585B2 (ja) * 2009-06-15 2013-10-30 株式会社日立製作所 フォールトトレラントコンピュータシステムおよびフォールトトレラントコンピュータシステムにおける方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173278A (ja) * 1997-08-29 1999-03-16 Nec Corp 二重化コンピュータシステムにおけるスレーブ組込時間短縮方法
JP2004318498A (ja) * 2003-04-16 2004-11-11 Toyota Central Res & Dev Lab Inc フェールセーフ装置

Also Published As

Publication number Publication date
JP2009099016A (ja) 2009-05-07

Similar Documents

Publication Publication Date Title
JP4668763B2 (ja) ストレージ装置のリストア方法及びストレージ装置
US20180150501A1 (en) Database system, server device, computer program product, and information processing method
US7865763B2 (en) Data replication method
JP5094460B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
US7694177B2 (en) Method and system for resynchronizing data between a primary and mirror data storage system
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
EP2434729A2 (en) Method for providing access to data items from a distributed storage system
WO2014059804A1 (zh) 数据同步方法及系统
US7797571B2 (en) System, method and circuit for mirroring data
JP3887130B2 (ja) 高可用性計算機システム及び同システムにおけるデータバックアップ方法
JP2008165431A (ja) ミラーリングプログラム、ミラーリング方法、情報記憶装置
US20100268687A1 (en) Node system, server switching method, server apparatus, and data takeover method
CN112052127B (zh) 一种用于双机热备环境的数据同步方法及装置
JP2001034568A (ja) 論理パス確立方法及び記憶媒体
JP2006285336A (ja) 記憶装置及びストレージシステム並びにその制御方法
JP2009080705A (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
CN103581262B (zh) 一种主备数据同步方法、装置和系统
JP4874211B2 (ja) 計算機システム、同期稼動化方法、ノード、及びプログラム
JP5396725B2 (ja) 情報処理装置、情報処理方法および履歴情報蓄積部制御プログラム
JP2007034666A (ja) 冗長構成装置、冗長構成システム、バージョンアップ可能化方法、及びバージョンアップ可能化プログラム
JP5509272B2 (ja) 計算機システム、データ一致化方法およびデータ一致化処理プログラム
JP5153310B2 (ja) フォールトトレラントコンピュータシステム、並びに再同期稼働化処理方法、及びプログラム
JPH11312111A (ja) データベース復旧方法及びデータベース管理システム
CN111125001A (zh) 快照复制方法、电子设备和计算机程序产品
JP2006202220A (ja) 引継ぎ情報の整合性を確認する処理をコンピュータに実行させるプログラム及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110927

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

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

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

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4874211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees