JP3120033B2 - 分散メモリ型マルチプロセッサシステム及び故障回復方法 - Google Patents

分散メモリ型マルチプロセッサシステム及び故障回復方法

Info

Publication number
JP3120033B2
JP3120033B2 JP08063407A JP6340796A JP3120033B2 JP 3120033 B2 JP3120033 B2 JP 3120033B2 JP 08063407 A JP08063407 A JP 08063407A JP 6340796 A JP6340796 A JP 6340796A JP 3120033 B2 JP3120033 B2 JP 3120033B2
Authority
JP
Japan
Prior art keywords
node
checkpoint
nodes
acquisition
communication
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
JP08063407A
Other languages
English (en)
Other versions
JPH09259098A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP08063407A priority Critical patent/JP3120033B2/ja
Priority to KR1019970008909A priority patent/KR100238926B1/ko
Priority to CNB971045119A priority patent/CN1225709C/zh
Priority to US08/820,528 priority patent/US5922078A/en
Publication of JPH09259098A publication Critical patent/JPH09259098A/ja
Application granted granted Critical
Publication of JP3120033B2 publication Critical patent/JP3120033B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大規模な科学技術
計算やデータベース処理等で使用される分散メモリ型マ
ルチプロセッサシステムに係り、特にシステム全体が高
信頼化された分散メモリ型マルチプロセッサシステムに
関する。
【0002】
【従来の技術】計算機を高信頼化する技術のひとつとし
て、チェックポイント/ロールバック方式があり、例え
ば計算機ネットワークで使用されるサーバ計算機を高信
頼化する技術として採用されている。
【0003】図27は、チェックポイント/ロールバッ
ク方式の計算機の動作の基本原理を示した概念図であ
る。チェックポイント/ロールバック方式の計算機で
は、通常のデータ処理の合間に、通常では定期的にチェ
ックポイントを取得している。ここで言うチェックポイ
ントとは、リスタート可能な状態のことである。
【0004】そして、もしハードウェア(HW)の故障
が発生した場合、例えば、故障したHW機器をリセット
する等して、故障原因を除去した上で、最後に取得した
チェックポイントにシステムをロールバックし、その
後、システムをリスタートさせる。これが、チェックポ
イント/ロールバック方式の計算機の基本原理である。
計算機を完全に初期化するのと比較して、サービスの中
断がほとんど無いというメリットがある。
【0005】ところで、複数のノードを高速な通信路で
結合し、大規模な科学技術計算やデータベース処理を各
計算機に分散させて実行させる分散メモリ型のマルチプ
ロセッサシステムが普及しつつある。この種のシステム
では、ノードの数が数100〜数1000になることも
あり、何れかのノードで故障が発生すると、全体システ
ムを停止させてシステムの初期化からやり直すか、ある
いは例えば故障したノードが担っていた機能を一時的に
せよ使用不可とする必要がある。
【0006】分散メモリ型のマルチプロセッサシステム
全体の信頼性(稼働率)は、あるノードの故障が他のノ
ードの信頼性に影響を及ぼすことがないと仮定すると、
各ノードの信頼性(稼働率)の積で表わされる。例え
ば、各ノードの稼働率を99.99%とし、ノード数を
1024とすると、システムとしての稼働率は、90.
27%となり、ノード数が増加すると、全体の信頼性
(稼働率)の劣化が無視できなくなる。
【0007】そこで、分散メモリ型のマルチプロセッサ
システムの信頼性(稼働率)を向上させる方法の一つと
して、各ノードとして、チェックポイント/ロールバッ
ク方式の計算機を採用し、各ノードの信頼性(稼働率)
を向上させることが考えられる。例えば、各ノードの稼
働率を99.999%とし、ノード数を1024とする
と、システムとしての稼働率は、98.98%となる。
【0008】
【発明が解決しようとする課題】このように、分散メモ
リ型のマルチプロセッサシステム中の各ノードとして、
チェックポイント/ロールバック方式の計算機を採用す
る場合、通信路を使用したノード間のデータ通信(以
後、「ノード間通信」という)が遅くなるという問題が
ある。すなわち、チェックポイント/ロールバック方式
の計算機では、一般に計算機外部に対する出力要求につ
いて、それを実際に出力するのを次のチェックポイント
取得後まで遅延させるためである。
【0009】以下、従来のチェックポイント/ロールバ
ック方式の分散メモリ型マルチプロセッサシステムにお
けるノード間のデータ通信の動作について説明する。
【0010】図28には2つのノード(計算機A、計算
機B)との間でデータ通信を行なう場合の処理経過を示
している。図28に示すように、時刻CKP1において
チェックポイント取得後、他の計算機Bが発行した処理
要求(a)を、チェックポイント/ロールバック方式の
計算機Aが受信して、直ちに要求に対する処理を行な
い、応答を計算機Bに返した後に、故障が発生する場合
を考える。
【0011】計算機Aは、時刻FLT1において故障が
発生すると、直前の時刻CKP1のチェックポイントに
戻る。一方、計算機Bは、計算機Aが計算機Bからの処
理要求(a)を受信していない状態に戻っているにもか
かわらず、計算機Aからの処理要求(a)に対する応答
を受け取っているので、両者の間で矛盾が生じてしま
う。
【0012】従来のチェックポイント/ロールバック方
式の計算機では、このような不具合を避けるため、通信
出力など外部に影響を及ぼす処理に関しては、そのよう
な処理要求を直ちに実行するのではなく、次のチェック
ポイントの取得が完了するまで待たせた後、通信出力処
理を開始するようになっている。
【0013】すなわち、図29に示すように、計算機A
は、計算機Bからの処理要求(a)に対する処理を行な
い、計算機Bに返すための要求ブロックを作成したとこ
ろで通信処理要求を遅延させる。計算機Aは、次のチェ
ックポイントの取得が完了した時点まで待たされ、チェ
ックポイント後に計算機Bに対して実際に応答を返す。
【0014】この結果、図30に示すように、時刻CK
P2で、新しいチェックポイントを取得した場合には、
その後、HWの故障が発生しても、時刻CKP2で取得
したチェックポイントからのリスタートとなり、その時
点で作成されていた計算機Bに対する応答は、確実に計
算機Bに渡される。
【0015】また、図31に示すように、計算機Aは、
時刻CKP2になる前に、時刻FLT1においてHWの
故障が発生した場合、時刻CKP1で取得したチェック
ポイントからのリスタートとなる。この場合、計算機A
は、計算機Bから処理要求(a)を受信したことも消し
去られているのに対し、計算機Bは処理要求(a)を送
り、計算機Aが受信したことを記憶している。しかし、
この場合には、計算機Bは、ある一定時間を経過して
も、処理要求(a)に対する応答が計算機Aから返って
こないことから、計算機Aの異常を検出することができ
る。つまり、計算機Bは、処理要求(a)を再度送信す
るなどの処理により、正常な状態に復帰することができ
る。
【0016】従って、分散メモリ型マルチプロセッサシ
ステムの各ノードに、従来のチェックポイント/ロール
バック方式の計算機を採用すると、ノード間通信に関し
て、平均してチェックポイント取得の間隔の半分の時間
だけ遅延させられる。
【0017】チェックポイント取得の間隔は、システム
によって様々であるが、チェックポイント取得自体にあ
る程度の時間がかかるため、短い場合でも数ミリ秒より
短くするのは実際的ではない。従って、一般には、控え
目に見積っても、ノート間通信は平均して1ミリ秒以上
の遅延時間をともなう。
【0018】一方、分散メモリ型のマルチプロセッサシ
ステムにおけるノード間通信の遅延時間は、アプリケー
ションプログラムがハードウェアを直接制御する場合、
数10マイクロ秒程度である。
【0019】従って、チェックポイント/ロールバック
方式の計算機を単純にノードとして採用すると、本来、
数10マイクロ秒程度のデータ通信に1ミリ秒以上の遅
延時間を伴うことになり、ノード間でデータ通信が頻繁
に発生する場合には、システム全体の著しい性能低下を
もたらす。
【0020】本発明は前記のような事情を考慮してなさ
れたもので、ノードにチェックポイント/ロールバック
方式の計算機を用いた際のノード間通信を高速化するこ
とが可能な分散メモリ型マルチプロセッサシステムを提
供することを目的とする。
【0021】
【課題を解決するための手段】本発明は、少なくともプ
ロセッサとメインメモリとを含むノードが通信路を介し
て2個以上接続され、前記通信路を経由してノード間通
信を行なう分散メモリ型マルチプロセッサシステムにお
いて、前記ノードは、故障発生時の再実行を可能にする
ために、ある時点で自ノードに関するチェックポイント
を取得し、故障発生時には直前に取得したチェックポイ
ントからデータ処理を再開する機能を有し、前記機能に
よるチェックポイントの取得の開始を、前記通信路を介
した他のノードに対するデータ送信を抑止し、前記通信
路を経由して送信されるデータの受信を完了させて、前
記通信路に送信中のデータが存在しない状態で、他の全
てのノードと同期して行なうことを特徴とする。
【0022】これにより、チェックポイントを取得する
時、通信路を介して転送中のデータが存在しない状態で
分散メモリ型マルチプロセッサシステムを構成する全て
のノードについて、チェックポイントを同期して取得す
る。そして、何等かの故障が発生した場合には、通信路
に関しては、転送中のデータが存在しない状態を再現
し、各ノードについて直前に取得したチェックポイント
にロールバックした後、データ処理を再スタートする。
【0023】すなわち、分散メモリ型マルチプロセッサ
システム全体でチェックポイントを取得する間、通信路
を介したノード間の通信を行なわないことにより、通信
路の状態を保存する必要をなくすことができる。
【0024】また、前記ノードは、前記通信路を介した
他のノードに対するデータ送信を、次のチェックポイン
トの取得後まで遅延させることなく実行することを特徴
とする。
【0025】これにより、各ノードは、ノード間のデー
タ転送を次のチェックポイントまで遅延させずに行なう
が、それ以外のデータ送信は次のチェックポイントの取
得後まで遅延させるので、ノード間で転送されるデータ
が、故障発生前のデータ処理の場合と、故障発生にとも
なうロールバック後のデータ処理の場合で異なったとし
ても、その影響は次のチェックポイントの取得が終了し
ないうちは分散メモリ型マルチプロセッサシステムを構
成するノード内にとどまっている。
【0026】従って、通信路を介したノード間の通信
は、遅延させることなく行なうことができる。
【0027】また、前記ノードのプロセッサにコピーバ
ック型のキャッシュメモリが設けられ、前記チェックポ
イントが前記メインメモリ上に取得されるものであっ
て、前記ノードは、全ての他のノードと同期して行なう
チェックポイントの取得の前に、通常のデータ処理と並
行して全ての他のノードと同期して、前記キャッシュメ
モリ中に存在するダーティなデータの一部を強制的に前
記メインメモリに書き戻すことを特徴とする。
【0028】一般に、コピーバック型のキャッシュメモ
リを有するプロセッサで、チェックポイントをメインメ
モリ上に取得する方式のチェックポイント/ロールバッ
ク方式の分散メモリ型マルチプロセッサシステムの場
合、チェックポイント時間の大半がキャッシュメモリ中
に存在するダーティなデータをメインメモリに書き戻す
処理に費やされている。これを短縮するために、通常の
データ処理中にキャッシュメモリ中に存在するダーティ
なデータをメインメモリに強制的に書き戻すことによ
り、チェックポイントの取得を行なう前に、キャッシュ
メモリ中に存在するダーティなデータの量が減らされ
る。
【0029】また、前記ノードのそれぞれは、ある時刻
になった時点で前記チェックポイントの取得を開始し
て、他の全てのノードと前記チェックポイントの取得を
同期させることを特徴とする。
【0030】このようにして、各ノードは、ある時刻に
なった時点で同時にチェックポイントの取得を開始する
ことを予め定めておくことにより、チェックポイントの
取得の開始を互いに通知し合う必要がなく、それによっ
て全てのノードが同期をとるオーバヘッドを軽減するこ
とができる。
【0031】また、前記ノードのそれぞれは、木構造の
何れかのノードと対応づけられ、この対応づけに基づく
関係のあるノードに対してチェックポイントの取得開始
の同期をとるためのデータ送信を行なうもので、チェッ
クポイントの取得を開始すべきことを検出したノード
は、親ノードに対して前記チェックポイント取得開始要
求を送信し、前記チェックポイント取得開始要求を子ノ
ードから受信したノードは、親ノードに前記チェックポ
イント取得開始要求を送信することで、根ノードにまで
順次、前記チェックポイント取得開始要求を送信し、前
記チェックポイント取得開始要求を子ノードから受信し
た根ノードは、全ての子ノードに対してチェックポイン
ト取得指示を送信し、前記チェックポイント取得指示を
親ノードから受信したノードは、子ノードに前記チェッ
クポイント取得指示を送信することで、全てのノードに
対してチェックポイント取得指示を与えて、全てのノー
ドでチェックポイントの取得の開始の同期をとることを
特徴とする。
【0032】これにより、あるノードでチェックポイン
トの取得を開始すべきことを検出すると、チェックポイ
ント取得の開始要求が木構造の経路を通じて、まず根ノ
ードに通知され、その後、根ノードから子ノードに対し
てチェックポイント取得指示を与えることで、順次、全
てのノードにチェックポイント取得指示が通知される。
【0033】また、前記ノードのそれぞれは、木構造の
何れかのノードと対応づけられ、この対応づけに基づく
関係のあるノードに対してチェックポイントの取得開始
の同期をとるためのデータ送信を行なうもので、チェッ
クポイントの取得を開始すべきことを検出したノード
は、親ノード及び全ての子ノードに対してチェックポイ
ント取得指示を送信し、前記チェックポイント取得指示
を受信したノードは、親ノード及び全ての子ノードのう
ち、前記チェックポイント取得指示を送信してきたノー
ドを除く全てノードに対して前記チェックポイント取得
指示を送信することで、全てのノードでチェックポイン
トの取得の開始の同期をとることを特徴とする。
【0034】これにより、あるノードでチェックポイン
トの取得を開始すべきことを検出すると、チェックポイ
ント取得の開始指示要求が木構造の経路を通じて、全て
のノードに伝えられる。この時、2つ以上のノードから
チェックポイント取得の開始指示要求が出された場合で
も、2つ以上のノードからチェックポイント取得の開始
指示要求を受けたノードは、遅れて受信した方を捨てる
ことにより、要求を重複して送ることを回避することが
できる。
【0035】
【0036】
【0037】また、少なくともプロセッサとメインメモ
リとを含むノードが通信路を介して2個以上接続され、
前記通信路を経由してノード間通信を行なう分散メモリ
型マルチプロセッサシステムにおいて、前記ノードは、
故障発生時の再実行を可能にするために、ある時点で自
ノードに関するチェックポイントを取得し、故障発生時
には直前に取得したチェックポイントからデータ処理を
再開する機能を有し、全ての他のノードと同期して取得
したチェックポイントを、全てのノードで次のチェック
ポイントの取得が完了するまで保持し、何れかのノード
に故障が発生した場合に、次のチェックポイントの取得
までに他の全てのノードと同期して故障発生が通知され
るものであって、前記機能によってチェックポイントの
取得を開始した後、他のノードから通常のデータ処理に
ともなうノード間のデータ送信を受信した場合に、故障
発生を通知するものである場合には、直前に取得したチ
ェックポイントからデータ処理を再開し、その他の通知
である場合には、チェックポイントの取得をやり直すこ
とを特徴とする。
【0038】これにより、全ノードにチェックポイント
取得の開始要求が届いたことを確認した後、自ノードに
おけるチェックポイント取得を開始する必要が必ずしも
なく、開始要求を確認せずにチェックポイント取得を開
始することができる。
【0039】また、前記ノードのそれぞれは、木構造の
何れかのノードと対応づけられ、この対応づけに基づく
関係のあるノードに対してチェックポイントの取得完了
の同期についてデータ送信を行なうもので、全ての子ノ
ードからチェックポイント完了準備完の通知を受信した
ノードは、親ノードにチェックポイント完了準備完を送
信し、全ての子ノードからチェックポイント完了準備完
の通知を受信した根ノードは、全ての子ノードに対して
チェックポイント完了指示を送信すると共にチェックポ
イント取得を完了させ、通常のデータ処理を再開し、親
ノードからチェックポイント完了指示を受けとった時、
あるいは既に通常のデータ処理を再開したノードから通
常のデータ通信を受け取った時、ノードは、全ての子ノ
ードに対してチェックポイント完了指示を送ると共にチ
ェックポイント取得を完了させ、通常のデータ処理を再
開することを特徴とする。
【0040】このように、チェックポイント完了準備完
の通知は「木」の葉ノードから根ノードに伝わる。そし
て、根ノードが全ての子ノードからチェックポイント完
了準備完の通知を受け取った時点でシステム全体のチェ
ックポイントが取得できたことになる。ついで、根ノー
ドからチェックポイント完了指示が葉ノードに向かって
伝えられることにより、各ノードにおいて通常のデータ
処理を再開する。
【0041】また、前記ノードのそれぞれは、木構造の
何れかのノードと対応づけられ、この対応づけに基づく
関係のあるノードに対してチェックポイントの取得完了
の同期をとるためのデータ送信を行なうもので、前記各
ノードは、チェックポイントの取得を開始した時点で、
他のノードからのデータ受信を不可とし、チェックポイ
ントの取得が完了する直前で、他のノードからのデータ
受信を可能とすると共に通常のデータ処理を再開するも
ので、全ての子ノードからチェックポイント完了準備完
の通知を受信したノードは、親ノードにチェックポイン
ト完了準備完を送信し、全ての子ノードからチェックポ
イント完了準備完の通知を受信した根ノードは、全ての
子ノードに対してチェックポイント完了指示を送信する
と共にチェックポイント取得を完了させ、以前のチェッ
クポイントを破棄し、親ノードからチェックポイント完
了指示を受けとった時、あるいは既に通常のデータ処理
を再開したノードから通常のデータ通信を受け取った
時、ノードは、全ての子ノードに対してチェックポイン
ト完了指示を送ると共にチェックポイント取得を完了さ
せ、以前のチェックポイントを破棄することを特徴とす
る。
【0042】このように、通常のデータ処理を前倒しで
再開できることから、より効果的にシステム全体の性能
向上を実現できる。
【0043】また、前記全てのノードにおいてチェック
ポイントの取得が終了したことを検出するためのバリア
同期機構を有することを特徴とする。
【0044】こうして、通信路を使用して、各ノードが
一斉に通常のデータ処理の再開あるいは直前のチェック
ポイントのデータの破棄を行なうのではなく、通信路と
は別のバリア同期機構を設けることで、同期のためのノ
ード間通信を行なう必要が無くなり、より性能を向上さ
せることができる。
【0045】また、前記親ノードにおいて全ての子ノー
ドからのチェックポイント取得の完了準備完が一定時刻
までに受け取れたか否かによって故障を検出することを
特徴とする。
【0046】こうして、ノードに関する故障には、その
ノードが他のノードからみて無応答状態となることも含
まれる。その場合、ある定められた時間を経過しても根
ノードには、全ての子ノードからチェックポイント取得
の終了通知を受け取れないことになる。そこで、全ての
ノードに対して、必要ならばプロセッサ(CPU)の初
期化を行なうことにより、このような無応答状態から抜
け出させると共に、直前のチェックポイントへのロール
バックを指示することにより、システム全体として故障
発生前の状態から通常のデータ処理を再開することがで
きる。
【0047】また、前記各ノードは、前記機能によりチ
ェックポイントを取得する取得ノードか、チェックポイ
ントの取得を行なわない非取得ノードかを設定する手段
を有し、前記手段によって前記取得ノードに設定された
ノードは、チェックポイントの取得の時は、前記通信路
を介した他のノードに対するデータ送信を抑止し、前記
通信路を経由して送信されるデータの受信を完了し、前
記手段によって前記非取得ノードに設定されたノード
は、前記通信路を介した取得ノードに対するデータ送信
を抑止して、前記通信路に取得ノードに対して送信中の
データが存在しない状態で、他の全てのノードと同期し
て行ない、何れかの前記取得ノードに故障が発生した
際、前記非取得ノードは、前記通信路へのデータ送信を
抑止し、前記通信路を経由して送信されるデータの受信
を完了させて、前記通信路に通信中のデータが無いよう
にした状態で、前記取得ノードは、直前に取得したチェ
ックポイントからデータ処理を再開することを特徴とす
る。
【0048】これにより、分散メモリ型マルチプロセッ
サシステム内の複数のノードをグループ化して、各グル
ープ毎に異なるアプリケーション(例えばデータベース
システム、意思決定支援システム等)を実行する場合
に、ノード単位で実行するアプリケーションに応じたチ
ェックポイント取得の有無(取得ノード、非取得ノー
ド)を選択、設定することができる。その際、ノード間
通信が、取得ノードあるいは非取得ノードの何れの間に
おいて行なわれるかに応じてデータ転送が制御される。
【0049】また、前記ノードがグループ化されてグル
ープ毎に異なるアプリケーションを実行し、各グループ
に属するノード毎にチェックポイントを取得するもので
あって、あるグループに属する各ノードがチェックポイ
ントを取得してる際、他のグループに属するノードは、
前記通信路を介して他のノードへのデータ送信を行な
い、異なるグループに属するノード間のデータ間通信
は、次のチェックポイントの取得後まで遅延させ、ある
グループに属するあるノードで故障が発生した際は、他
のグループに属する全てのノードは、前記通信路へのデ
ータ送信を抑止し、前記通信路を経由して送信している
データの受信を完了させて、前記通信路に通信中のデー
タが無いようにし、故障が発生したグループに属する全
てのノードは、それぞれ直前に取得したチェックポイン
トからデータ処理を再開することを特徴とする。
【0050】これにより、分散メモリ型マルチプロセッ
サシステム内の複数のノードを、実行するアプリケーシ
ョン毎にグループ化することで、チェックポイント取得
に関する他のノードとの同期制御がグループ毎に行なわ
れるので、チェックポイントに要する処理負担(オーバ
ヘッド)が軽減される。ただし、異なるグループのノー
ド間での通信路を介したデータ送信は、グループ間で不
整合が生じ無いように制御される。
【0051】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。図1は第1の実施形態に係
わるチェックポイント/ロールバック方式の分散メモリ
型のマルチプロセッサシステムの構成を示すブロック図
である。図1に示す分散メモリ型のマルチプロセッサシ
ステムは、複数個(N個)のノード(計算機)1,2,
…,Nを有し、通信スイッチ10(通信路)によって相
互に接続されている。
【0052】各ノード1,2,…,Nは、CPU1−
1,2−1,…,N−1と、通信アダプタ1−2,2−
2,…,N−2と、メインメモリ1−3,2−3,…,
N−3と、BIB(Before Image Buf
fer)1−4,2−4,…,N−4と、キャッシュ1
−5,2−5,…,N−5を持っている。各ノードの通
信アダプタ2−1,2−2,…,N−2は、通信スイッ
チ10と接続されている。
【0053】各ノード1,2,…,Nは、故障発生時の
再実行を可能にするために、定期的に自ノードに関する
チェックポイントを取得し、故障発生時には直前に取得
したチェックポイントからデータ処理を再開する機能を
有し、この機能を実現するためにBIB1−4,2−
4,…,N−4と呼ばれる、特殊なハードウェア機構が
設けられている。BIB1−4,2−4,…,N−4、
及びBIB1−4,2−4,…,N−4を用いたチェッ
クポイント/ロールバック方式の機構の動作については
後述する。
【0054】なお、図1に示す第1の実施形態における
構成では、各ノード1,2,…,Nが有するCPUの数
はそれぞれ一つとしているが、一つのノードが有するC
PUの数が2以上のマルチプロセッサ構成でも良い。ま
た、BIBは、チェックポイント/ロールバック方式の
計算機を実現する一手段であり、他の実現法を適用して
も差障りない。
【0055】また、ノードによってCPUの数やCPU
の種類、メインメモリの容量、オペレーティングシステ
ムの種類などが異なっていても構わない。ただし、シス
テムを管理する観点からは、各ノードが同様のハードウ
ェア構成で同一のオペレーティングシステムである方が
望ましい。
【0056】最初に、ノード1,2,…,Nのチェック
ポイント/ロールバック方式の機構について説明する。
【0057】図2は、ノード1,2,…,Nにおいて、
BIB(Before ImageBuffer)と呼
ばれるハードウェア機構を使用するデータの保存とロー
ルバックを説明する図である。なお、本出願人は先に特
願平7−341839号でBIB(ログメモリ)に関す
る発明について出願している。
【0058】図2は、メインメモリのデータが更新され
る時に、更新が発生したアドレスと更新前のデータをB
IBに保存し(図2(a))、BIBを使ってメインメ
モリを元の状態に戻す(ロールバック)様子を表わして
いる(図2(b))。
【0059】まず、BIBは、CPUがキャッシュメモ
リ中でデータを更新した時、システムバスに出されるキ
ャッシュメモリの一貫性(コヒーレンシ)を維持するた
めのバスコマンドをモニタリングすることで、どのアド
レスのデータが書き換えられたかを検知する。BIB
は、メインメモリ中の書き替え要求のあったアドレスの
データ(未だ更新される前のデータ)を読み出し、それ
らアドレスとデータの組をバッファに保存する。
【0060】例えば、図2(a)において、CPUがキ
ャッシュメモリ上で100番地にXを書き込む時、BI
Bは、100番地に書き込みが行なわれたことを検知し
て、メインメモリから100番地の内容(A)を読み出
し、BIB内に100番地の内容が元はAであったこと
を記憶する。
【0061】その後、故障が発生する等して、メインメ
モリを元の状態にロールバックする場合、図2(b)に
示すように、キャッシュメモリの内容を無効化し、BI
Bに保存されているアドレスと元の値を使って、メイン
メモリの内容を元の状態に戻す。メインメモリの内容が
直前のチェックポイントの状態に戻るとBIBをクリア
して通常のデータ処理に戻る。
【0062】ノード1,2,…,Nは、チェックポイン
トを、それぞれのメインメモリ1−3,2−3,…,N
−3上に取得する。そして、BIBにチェックポイント
からのメインメモリ1−3,2−3,…,N−3に対す
る更新履歴を保存することにより、故障が発生した場合
のメインメモリのロールバックを可能としている。
【0063】ノード1,2,…,Nにおいて、新しいチ
ェックポイントをメインメモリ上に取得する手順は,次
のとおりである。
【0064】(A1)CPUのコンテクスト(レジスタ
の値等)をメインメモリ上に保存する。
【0065】(A2)キャッシュメモリ上で更新された
データをメインメモリに書き戻す(フラッシュする)。
【0066】(A3)BIBの内容をクリアし、チェッ
クポイント処理を終了し、通常のデータ処理に戻る。
【0067】ここで、(A3)の処理は、チェックポイ
ト取得の完了を意味し、(3)を実行しないうちに、故
障が発生した場合は、ひとつ手前(直前)のチェックポ
イントへロールバックされる。一方、(3)を実行した
後に、故障が発生した場合は、このチェックポイント
(すなわち(3)が完了した時点)ヘロールバックされ
る。
【0068】システムに故障が発生した場合に、直前の
チェックポイントへロールバックして、リスタートする
手順は次のとおりである。
【0069】(B1)キャッシュメモリをインバリデー
ト(無効化)する。
【0070】(B2)BIBに記録されているアドレス
と更新前のデータの値を使って、メインメモリを直前の
チェックポイントに戻す。
【0071】(B3)メモリ上に保存されたCPUのコ
ンテクストを、CPUに復元することにより、リスター
トする。
【0072】次に、ノード間通信について説明する。第
1の実施形態において、あるノード(送信ノード)から
他のノード(受信ノード)へのメッセージ転送は次のよ
うな手順で行われる。
【0073】(C1)送信ノードのメインメモリ上にメ
ッセージを作成。
【0074】(C2)送信ノードの通信アダプタの起
動。
【0075】(C3)通信スイッチ10によるルーティ
ング。
【0076】(C4)受信ノードの通信アダプタの起
動。
【0077】(C5)受信ノードのメインメモリ上にメ
ッセージを格納。
【0078】ここで、アプリケーションプログラムとノ
ード間通信制御部(第1の実施形態では、システムプロ
グラムの一部として実現される)の連係について説明す
る。ここでは、説明を簡単にするためにノード1を送信
側ノード、ノードNを受信側ノードとして説明する。
【0079】図3は、ノード間通信の送信側の動作を示
すフローチャートである。アプリケーションプログラム
が、他のノードNに送信する送信メッセージをメインメ
モリ1−3上に作成すると(ステップA1)、システム
コールを実行し、システムプログラム中のノード間通信
制御部をコールする(ステップA2)。
【0080】ノード間通信制御部は、CPU1−1を割
り込み禁止にして(ステップA3)、通信アダプタ1−
2の制御レジスタに、送信メッセージを指定されたノー
ドNに送るための制御情報をセットし、通信アダプタを
起動する(ステップA4)。その後、CPUの割り込み
禁止を解除する(ステップA5)。
【0081】CPUを割り込み禁止にするのは、一般の
I/O機器の制御において、正しい動作を行なわせるた
めに広く行なわれていることである。しかし、本発明の
ようにチェックポイント/ロールバック方式の計算機を
用いる構成においては、通信アダプタを操作している途
中という中途半端な状態で、チェックポイントが取得さ
れるのを防ぐためという意味も有する。
【0082】一般に、I/O機器のレジスタを操作中に
チェックポイント処理を行うと、故障が発生して、その
I/O機器のレジスタ操作の途中からリスタートするこ
とになり、動作を保証することができない。I/O機器
のレジスタ操作の途中でチェックポイント処理を開始し
ないこと自体は、本発明の特徴ではなく、従来のチェッ
クポイント/リスタート方式の計算機で採用されてい
る。
【0083】最後に通信アダプタ1−2の送信終了によ
り、他のノードNに対する送信処理の終了を確認し(ス
テップA6)、ノード間通信制御部は、メッセージの送
信を要求したアプリケーションプログラム(送信要求プ
ロセス)を実行可能状態とする(ステップA7)。
【0084】図4は、ノード間通信の受信側の動作を示
すフローチャートである。まず、他のノード1からメッ
セージの受信要求を通信アダプタN−2が検出すると、
割り込みが発生し、ノード間通信制御部での処理が始ま
る(ステップB1)。
【0085】ノード間通信制御部は、メッセージ格納用
領域である受信バッファをメインメモリN−3上に割り
当て(ステップB2)、通信アダプタN−2によって受
信したメッセージを受信バッファに格納するよう制御レ
ジスタに制御情報をセットした後、通信アダプタを起動
する(ステップB3)。
【0086】通信アダプタN−2での受信が終了すると
(ステップB4)、ノード間通信制御部は、受信したメ
ッセージが他のノードでの故障発生を通知するメッセー
ジであるか調べる(ステップB5))。
【0087】ここで、受信したメッセージが、他のノー
ドでの故障発生を通知するメッセージである場合(ステ
ップB5のYes)、障害処理部にジャンプして、全て
のノードが一つ手前のチェックポイントにロールバック
して、リスタートするための処理を行なう。これについ
ては後で詳しく説明する。
【0088】一方、受信したメッセージが故障発生を通
知するメッセージ以外である場合、すなわち通常のデー
タ処理に関するメッセージである場合には(ステップB
5のNo)、そのメッセージを受信すべきアプリケーシ
ョンプログラムがメッセージ受信待ちになっていれば、
そのアプリケーションプログラムを実行可能状態とす
る。
【0089】本発明による分散メモリ型マルチプロセッ
サシステムでは、ノード間通信の要求が発生すると、次
のチェックポイント取得完了まで待つことなく即座にノ
ード間通信を実行することにより、ノード間通信を高速
化する。
【0090】これを可能とするには、故障が発生した場
合への対処が必要となる。
【0091】本発明の第1の実施形態では、次のような
構成または方法(D1)〜(D4)を設けることによっ
て、チェックポイント取得完了まで待つことなく即座に
ノード間通信ができるようにしている。
【0092】(D1)全てのノードが同期してチェック
ポイントを取得する(不完全な同期により実現する方法
については後述する第3の実施形態、第4の実施形態に
おいて説明する)。
【0093】(D2)あるノードで故障が発生した場
合、全てのノードが、次のチェックポイントの取得を完
了する(BIBをクリアする前)までに、その障害が発
生したことを知り、全てのノードが直前のチェックポイ
ントにロールバックする。
【0094】(D3)ノード間通信以外のI/O機器へ
の入出力や他の計算機(例えば、異なるアプリケーショ
ンを実行する別のノードグループ中の計算機)との通信
の要求は、次のチェックポイントを取得する後まで、そ
の実行を遅延させる。
【0095】(D4)チェックポイントの取得中は、通
信路に転送中のデータが存在しない状態にする。すなわ
ち、チェックポイントを取得する際、通信スイッチ10
を介した他ノードに対するデータ送信を抑止し、また通
信スイッチ10を経由する他のノードからのデータ受信
を完了させる。
【0096】(D4)の方法により、あるノードで故障
が発生して、全てのノードが同期して、それぞれ一つ手
前のチェックポイントにロールバックする場合でも、通
信スイッチ10に関しては、何ら特別の処理を必要とし
ない、もしくは通信スイッチ10をリセットする程度で
済むようにする。
【0097】次に、前述した(D1)〜(D4)の構成
によって、ノード間通信の要求を即座に実行することに
より、ノード間通信を高速化する例について説明する。
ここでは2つの例(第1の例、第2の例)を使って、ノ
ード間通信を遅延なく実行しても問題がないことを説明
する。
【0098】第1の例は、図5に示すように、時刻CK
P0において、全てのノード1,2,3がチェックポイ
ントを取得した後、故障発生前のノード間通信で、ノー
ド1からノード2にメッセージが送られ、ノード2にお
いて、そのメッセージに基づいて、ノード2からノード
3へメッセージが送られた場合である。
【0099】ノード2からノード3へメッセージ送信し
た後、時刻FLT0でノード1において故障が発生した
ものとする。この場合、各ノード1,2,3がチェック
ポイント取得を完了する前、すなわち、BIBの内容を
クリアする前に、各ノードがノード1において故障が発
生したことを検知し、時刻CKP0の時点のチェックポ
イントへロールバックする。
【0100】つまり、全てのノード1,2,3におい
て、同期してチェックポイントを取得し、かつ、何れか
のノードで故障が発生した場合には、全てのノードが同
じ時刻に取得したチェックポイントにロールバックする
ことによって、時刻CKP0の後にノード間通信があっ
てもノード間で矛盾が生じない。従って、ノード間通信
を待たせることなく、ノード間通信ができる。
【0101】第2の例は、図6に示すように、故障発生
前のノード間通信で、ノード1からノード2にメッセー
ジが送られ、ノード2において、そのメッセージに基づ
いて、I/O機器(ここではディスク装置)への書き込
みが行なわれる場合である。
【0102】本発明ではノード間通信は即時に行われる
ものの、ディスクへの書き込みは、チェックポイントの
処理が完了するまで待たされる。ここで、何れかのノー
ドで故障が発生した場合には、全てのノードが同じ時刻
に取得したチェックポイントにロールバックすることに
よって、ノード1からメッセージ送信しておらず、また
ノード2ではディスクへの書き込みは行なわれていない
状態であるのでノード間で矛盾が生じない。
【0103】このように、本発明の第1実施形態では、
ノード間通信、及びノード間通信に伴う各ノードでの通
常のデータ処理は遅滞なく実行されるが、外部記憶装置
等のI/O機器に対する入出力要求や、他の計算機(例
えば異なるアプリケーションを実行する別のノードグル
ープ中の計算機)との通信に関しては、その処理要求を
全てのノードで同期してチェックポイントを取得した後
に実行する。これにより、ノード間通信と、このノード
間通信によるメッセージに基づく通常のデータ処理は、
前述した第1の例、第2の例に示すように、遅滞無く実
行することができる。
【0104】次に、第1の実施形態において、全ノード
で同期して、一斉にチェックポイントを取得する方法に
ついて説明する。
【0105】チェックポイントの取得が開始されるタイ
ミングは、一般的に、 (E1)一定時間経過した場合。
【0106】(E2)BIBの残容量がある定められた
値を下回った場合。
【0107】(E3)遅延させられているI/O要求の
数がある定められた値を上回った場合。
【0108】などである。何れの方式を採用するか、あ
るいは、複数の方式を併用するかは、システムの使われ
方やBIBの容量に応じて決めることができる。
【0109】第1の実施形態では、(E1)一定時間経
過した場合にのみ、各ノードが一斉にチェックポイント
取得を開始するものとする。これにより、チェックポイ
ントの開始に関して、各ノード間で同期をとるためのノ
ード間通信を行なう必要がなくなる。
【0110】図7は、各ノードのCPU1−1,2−
1,…,N−1が、一斉にチェックポイント取得を行な
う動作を説明するためのフローチャートである。また、
図8は、複数のノード1,2,Nにおける通常のデータ
処理とチェックポイント取得のタイミングを示すタイム
チャートである。
【0111】各ノードは、時刻T1までは、通常のデー
タ処理を行なう(ステップC1)。その間、各ノード間
で発生するノード間通信要求は、遅延されることなく即
座に実行される。また、他ノードから受信したメッセー
ジは、遅滞なくアプリケーションプログラムに渡され
る。
【0112】各ノードは、時刻T1に達すると、通常の
データ処理の実行を停止する(ステップC2)。なお、
時刻T1は、先に決定されたある時刻を基準とする所定
の時間後の時点である。
【0113】時刻T1〜T2では、他ノードへのメッセ
ージ送信は、原則的には行なわれないが、通信アダプタ
の起動(図3におけるステップA4)は、CPUの割り
込み禁止状態で実行されるので、時刻T1の直前に要求
のあった他ノードからのメッセージ送信が、時刻T1を
過ぎて受信されることもあり得る(ステップC3)。し
かし、そのようなメッセージ送信も時刻T2の前には終
了する。また、他ノードから受信したメッセージは、メ
インメモリ上の受信バッファに格納されるが、それを受
けたアプリケーションプログラムにCPUを与えないこ
とで、通常のデータ処理が始まるのを防ぐ。
【0114】時刻T2になると、CPUを割り込み禁止
にする(ステップC5)。これは、CPUが何等かの割
り込み処理をするのを防ぎ、キャッシュメモリのフラッ
シュを確実に行なわせるためである。
【0115】時刻T2に到達すると、各ノードは、一斉
にチェックポイント取得の一環として、CPUのコンテ
クスト(レジスタの内容)をメインメモリに保存し、キ
ャッシュメモリをフラッシュする(ステップC6,C
7)。この後、CPUを割り込み許可にする(ステップ
C8)。
【0116】最後に、全てのノードでチェックポイント
処理の終了(BIBの内容のクリア)を同期的に行なう
必要がある。すなわち、チェックポイントの取得に要す
る時間は全てのノードで同じではないため、各ノードが
BIBの内容のクリアを各自に行なった場合、全てのノ
ードがBIBの内容のクリアする前に障害等が発生する
と、全てのノードが同じチェックポイントにロールバッ
クできなくなるためである。
【0117】第1の実施形態では、分散メモリ型マルチ
プロセッサシステム内の各ノードを木構造の各節(ノー
ド)に対応づけ、この対応による親ノードと子ノードの
関係にあるノード間で、チェックポイント完了準備完と
チェックポイント完了の通知(メッセージ)をノード間
通信によって送受信することで同期をとる。なお、チェ
ックポイント完了準備完は、キャッシュフラッシュが完
了しBIBの内容をクリアできる直前の状態となったこ
とを表わす。
【0118】ここでは、論理的に2進木(Binary
Tree)の各ノード(節)と、システム中の各ノー
ド(計算機)と1:1に対応させる。
【0119】図9(a)に示すように、ノード1を2進
木のルートノード(根ノード)と対応づけ、ノード2,
3をノード1の子ノードとなるように対応づける。一般
に、ノード2n、及びノード2n+1が、ノードnの子
ノードとして対応づけられる。この対応づけは、ノード
の識別番号をもとに各ノード間を論理的に対応づけるも
のであり、特別なハードウェアは必要無い。
【0120】あるノードでキャッシュメモリのフラッシ
ュが終了すると、CPU割り込み許可にして(ステップ
C8)、2進木上の子ノードからのチェックポイント完
了準備完の通知の受信待ちとなる(ステップC9)。た
だし、2進木上の子ノードを持たない場合には、この処
理は行なわない。
【0121】子ノードからのチェックポイント完了準備
完の通知を受けると、次に、ノードは、2進木上の親ノ
ードへのチェックポイント完了準備完の通知を送信する
(ステップC10)。ただし、ノード1に関しては、2
進木上の親ノードを持たないため、この処理は行なわな
い。
【0122】図9(b)に示すように、チェックポイン
ト完了準備完の通知は、2進木の子ノードから親ノード
に向かって順に送信が行なわれ、ノード1が、ノード2
及び3からチェックポイント完了準備完の通知を受信し
た時点で、全てのノードでキャッシュフラッシュが完了
したことを保証できる。
【0123】次に、ノード1は、全ての子ノード、すな
わちノード2及びノード3にチェックポイント完了指示
の通知を送り、そのメッセージが、図9(c)に示すよ
うに、今度は2進木の親ノードから子ノードに向かって
順に送信が行なわれる。
【0124】あるノードは、親ノードへのチェックポイ
ント完了準備完の通知を送信すると、親ノードからのチ
ェックポイント完了指示の通知の受信待ちとなる。ここ
で、親ノードからのチェックポイント完了指示の通知を
受けたノードは、子ノードへのチェックポイント完了の
通知を送信する(ステップC11,C12)。
【0125】なお、次のチェックポイント取得を同期し
て開始するために、時刻T1及び時刻T2を決める必要
がある。これらの時刻はノード1が、図8における時刻
T3を基準に、そこから所定の時間後を、次のチェック
ポイント取得における時刻T1,T2であると決定し、
チェックポイント完了指示のパラメータとして各ノード
に伝えることができる。
【0126】チェックポイント完了指示を受信したノー
ドは、BIBの内容をクリアして(ステップC13)、
通常のデータ処理を再開する。
【0127】こうして、第1の実施形態では、各ノード
を2進木のノードと論理的に対応させて、チェックポイ
ント完了準備完またはチェックポイント完了の通知を決
められた順序、すなわち親ノードと子ノードの関係に応
じて順次、受け渡すことによって、全てのノードについ
てチェックポイント取得の完了同期を効果的に行なうこ
とができる。
【0128】例えば、ノード数が1023の場合、上向
きのメッセージ転送9段と下向きのメッセージ転送9段
で実現することができる。
【0129】また、各ノードを2進木の木構造のノード
と対応させる代わりに、子ノードが3つ以上あるような
一般の木のノードと対応させることも可能である。
【0130】また、より性能を向上させるため、各ノー
ドは、図7中のステップC8が終了した時点で、ステッ
プC9〜C12の処理を行ないながら通常のデータ処理
を再開することも可能である。
【0131】このためには、チェックポイント取得を完
了させないうちに、通常のデータ処理を再開する機構が
必要である。
【0132】例えば、ノードが、マルチプロセッサ構成
の場合には、2つのBIBを設けた構成により実現でき
る。2つのBIB(ログメモリ)を設けた構成の発明に
ついて、本出願人が先に特願平7−341839号によ
って出願している。本構成の概略については後述する。
【0133】また、シングルプロセッサの時は、ロール
バックの時に、BIBの適当な範囲の内容をメインメモ
リに書き戻すせば良い。
【0134】また、全てのノードにおいて、チェックポ
イント取得が完了した時点で、それぞれのプロセッサが
一斉に通常のデータ処理を開始するような同期は、一般
にバリア同期と呼ばれる。ハードウェアでバリア同期を
とる機構は、例えば「ワイアード・AND」で実現する
ことができる。「ワイアード・AND」を使うハードウ
ェアを備えることで、前述したようなノード間通信を使
って同期をとる方法に代えることができる。
【0135】図10(a)には、通信スイッチ10とは
別に、ワイアード・AND12を備えた分散メモリ型マ
ルチプロセッサシステムの概略構成を示している。ま
た、図10(b)には、ワイアード・AND12と各ノ
ードとの論理的な関係について示している。
【0136】この構成の場合、各ノードのCPUがチェ
ックポイント取得完了の直前(チェックポイント準備完
了完)の状態となった時、対応するAND入力を“1”
にすると共に、ワイアード・AND12の出力を参照す
る。
【0137】そして、出力が“0”から“1”に変化し
た時に、全てのノードにおいてチェックポイント取得が
完了したと判断し、各ノードは、BIBの内容をクリア
してチェックポイントを完了し、通常のデータ処理を再
開する。
【0138】ここで、ノードがマルチプロセッサの場合
に、2つのBIBを設けた構成の概略について、図11
〜図14を用いて説明する。各CPUがどのBIBを使
うべきかを決定するために、図11に示すようなBIB
(ログ)テーブルが使用される。BIBテーブルは、例
えばバスコントローラ(図示せず)に設けられる。
【0139】図11に示すように、BIBテーブルは、
CPUそれぞれのCPU番号と、それらCPUが現在使
用しているBIBの番号(カレントBIB番号)との関
係を保持している。
【0140】ここで、カレントBIB番号“0”はBI
B6aを使用することを示し、カレントBIB番号
“1”はBIB6bを使用することを示す。このシステ
ムのスタートアップ時においては、全てのCPUのカレ
ントBIB番号は“0”を示しており、すべてのCPU
はBIB6aを使うように設定される。
【0141】図12には、2つのBIBカウンタ52
a,52bと2つのBIB6a,6bとの関係が示され
ている。BIBカウンタ52aは、BIB6aの更新履
歴情報格納位置を指定するポインタを保持しており、そ
のポインタ値は更新履歴情報がBIB6aに書き込まれ
る度に、BIB6aの先頭番地から最終番地に向けて+
1ずつインクリメントされる。BIBカウンタ52b
は、BIB6bの更新履歴情報格納位置を指定するポイ
ンタを保持しており、そのポインタ値は更新履歴情報が
BIB6bに書き込まれる度に、BIB6bの先頭番地
から最終番地に向けて+1ずつインクリメントされる。
【0142】通常のプログラム実行処理の期間において
は、各CPUは、メインメモリへの書き込みが必要とな
った時に、バスコントローラに対し、 (1)CPUのID (2)メモリのアドレス (3)メモリのデータ を渡す。バスコントローラは、この書き込み要求を検出
すると、CPUのID(CPU番号)から、どのBIB
を使うか決定し(ここではBIB6aを使用するものと
する)、そのBIB6aに対応したBIBカウンタ52
aの値を得て、そのカウンタに対応したBIB6aの位
置に、メモリアドレスとそのメモリアドレスの更新前デ
ータとを更新履歴情報として記録する。そして、メイン
メモリを更新する。
【0143】その後、各CPUは、所定の時間が経過し
たこと、あるいはBIB6aの残容量が所定の量を下回
ったことをバスコントローラからの割り込み信号やポー
リング処理によって検知したとき、チェックポイント取
得処理を開始する。チェックポイント取得処理では、各
CPUの内部状態復元のために必要なレジスタの値、及
びキャッシュメモリ内のデータのうち、まだメインメモ
リに反映されていないデータが、バスコントローラを介
して、メインメモリに書き込まれる。この場合の更新履
歴についても、前述と同様にBIB6aに記録される。
【0144】ここまで終了した各CPUは、使用するB
IBを切り替えるためにBIBテーブルのカレントBI
B番号を“0”から“1”に書き換え(ここではBIB
6bを次に使用するものとする)、その後、即座に通常
のプログラム処理を再開する。
【0145】この様にチェックポイント取得処理を完了
したCPUの順で、使用するBIBをそれまで使用して
いたBIBから他方のBIBに切り替えることにより、
それまで使用していたBIBの内容を破壊することな
く、通常のプログラム実行処理を再開することができ
る。よって、各CPUが自身のチェックポイント取得処
理を完了した時点で即座に通常のプログラム実行処理を
再開できるようになり、システム全体の待機時間を大幅
に減少させることができる。
【0146】次に、図13を参照して、チェックポイン
ト取得処理全体の流れについて説明する。
【0147】いま、図13に示すように、CPU2a〜
2cが並列に稼働しているものと、すなわち、各CPU
2a〜2cが、通常のデータ処理をそれぞれ行なってい
るものとする(図13の(1))。そして、このときに
使用されているBIBはBIB6aであるとする(図1
3の(2))。
【0148】その後、各CPU2a〜2cの稼働中にB
IB6aの残容量が予め設定された所定量を下回ったと
きに(図13の(3))、CPU2a〜2cそれぞれ
は、その旨を検知して、チェックポイント処理を開始す
る(図13の(4))。
【0149】このチェックポイント取得処理の開始及び
所要時間は、上述したように、その検知タイミングや、
検知したときに処理中のプログラムの種類、キャッシュ
メモリの状態などにより異なる。
【0150】しかし、各CPU2a〜2cそれぞれは自
身のチェックポイント処理が終了した際に、使用するB
IBを切り替えて、即座に通常処理を再開する(図13
の(5))。これにより、通常のデータ処理を再開した
CPUについては、BIB6bへの更新履歴の採取が開
始される(図13の(6))。
【0151】一方、すべてのCPU2a〜2cのチェッ
クポイント処理が終了した際に(図13の(7))、B
IB6aのリセット、すなわち、BIB6aに記録され
た更新履歴の破棄が行なわれる。
【0152】次に、図14のフローチャートを参照し
て、各CPUが実行するチェックポイント取得処理の手
順について説明する。
【0153】各CPUは、通常のデータ処理を行なって
いるときに(ステップS1)、記録中のBIBの残容量
が予め設定された所定量を下回ったことを検知した場合
(ステップS2)、チェックポイント取得処理を開始す
る(ステップS3)。このチェックポイント取得処理で
は、CPUの各種レジスタを含むそのCPUの内部状態
(コンテキスト)と、メインメモリに反映されてないキ
ャッシュメモリの内容がメインメモリに書き込まれる。
次に、そのCPUは、使用するBIBを切り替えるため
にBIBテーブルの該当するカレントBIB番号を
“0”から“1”に、書き換える(ステップS4)。
【0154】この後、そのCPUは、自身がチェックポ
イント取得処理を完了した最後のCPUであるか否かを
判断する(ステップS5)。これは、BIBテーブルを
参照して、カレントBIB番号を書き換えてないCPU
が存在するかどうかを調べることによって行われる。全
てのCPUのカレントBIB番号が新たな番号に書き換
えられていれば、そのCPUがチェックポイント取得処
理を完了した最後のCPUである。この場合、そのCP
Uは、今まで使用していたBIBの内容を破棄するため
に、そのBIBをクリアする(ステップS6)。このク
リア処理では、そのBIBに対応するBIBカウンタの
ポインタ値が“0”に戻される。この後、そのCPU
は、チェックポイント取得処理で中断した通常のプログ
ラム実行処理を再開する(ステップS7)。
【0155】なお、必ずしも、物理的に2つのメモリを
BIBとして用いる必要はなく、1つの物理メモリを2
つの論理的なメモリ(BIB)としても用いることも可
能である。
【0156】以上、第1の実施形態において、全てのノ
ードで同期してチェックポイントを取得する方法、チェ
ックポイント取得の際、ノード間通信を行なわないこと
により、通信路に関するチェックポイントを取得する必
要がないことを説明した。
【0157】次に、第1の実施形態において、あるノー
ドで故障が発生した場合、全てのノードが一つ手前(直
前)のチェックポイントへロールバックして、リスター
トする方法について、図15に示すフローチャートを参
照しながら説明する。
【0158】ここでの前提は、故障が発生したノードに
関しては、手前のチェックポイントにロールバックする
ことにより、通常のデータ処理をリスタートできるとい
うことである。あるノードで故障が発生し、そのノード
が完全に動作しない状態に陥った場合については、分散
メモリ型のマルチプロセッサ全体をリセットするのが適
当である。
【0159】あるノードで故障の発生を検出した時、あ
るいは、他のノードから故障の発生通知を受信した時
(図4の障害処理部(ステップB6))、図15に示す
フローチャートに実行される障害処理部を起動して回復
処理を始める。
【0160】まず、本ノードで故障が発生した場合に
は、故障したHWのリセット等、必要な故障回復処理を
行なう(ステップD1)。
【0161】次に、2進木上の親ノードへ、故障発生通
知を送信する(ステップD2)。
【0162】図16(a)に示すように、障害発生通知
は、故障が発生したノードから、次々と親ノードに伝え
られ、最終的にノード1に到達する。
【0163】図16(b)に示すように、もし、複数の
ノードでほぼ同時に故障が発生した場合は、2進木上の
何れかのノードは、ほぼ同時に、あるいは、時間をおい
て2つの子ノードから故障発生通知を受信することにな
る。その場合、親ノードには、故障発生通知を1つだけ
送信すれば良い。
【0164】ノード1は、故障発生通知を受信すると、
子ノードに対して、ロールバック指示を送る。2進木上
の親ノードからのロールバック指示を受信したノードは
(ステップD3)、2進木上の子ノードへ、ロールバッ
ク指示を送信するステップD4)。こうして、図16
(c)に示すように、ロールバック指示は、ノード1か
ら子ノードへ次々と伝えられる。
【0165】ロールバック指示を受信したノードでは、
キャッシュメモリの無効化(ステップD5)、BIBの
内容を参照することによるメインメモリのロールバック
(ステップD6)を行ない、チェックポイントから通常
のデータ処理をリスタートする。
【0166】なお、チェックポイントを取得中に、ある
ノードで故障が発生した場合、その故障発生通知は、チ
ェックポイント完了準備完を送受信するタイミングで他
のノードに伝えられることになる。この場合、最終的に
ノード1に故障発生が通知される。そして、ノード1か
ら子ノードに向かってロールバック指示が伝えられ、B
IBの内容をクリアする直前のノードについても一つ手
前のチェックポイントへのロールバックが行なわれる。
【0167】また、故障の種類によっては、故障が発生
したノードにおいて、一切のデータ処理が続けられない
ことも有り得る。このような場合、そのノードからはチ
ェックポイント取得完了準備完の通知が、その親ノード
に伝えられないので、親ノードで子ノードからのチェッ
クポイント取得完了準備完の通知受信に関するタイムア
ウトを監視することにより故障発生を検出できる。
【0168】そして、親ノードから故障の発生した子ノ
ードにリセットをかける等の方法で、上記子ノードりC
PUが再び動作する場合には、上記に述べた回復処理を
適用できる。
【0169】以上、第1の実施例において、全てのノー
ドが同期してチェックポイントを取得する構成及び方法
について説明し、その際、他のノードへの送信を抑止す
ることにより、通信スイッチ10や通信アダプタ1−
2,2−2,…,N−2に中途半端な状態ができるのを
回避すること、何れかのノードで故障が発生した時に、
全てのノードがひとつ手前のチェックポイントにロール
バックして通常のデータ処理をリスタートすること、こ
れらの仕掛けにより、ノード間通信は遅延無く実行でき
ることを示した。
【0170】次に、第2の実施形態について説明する。
【0171】第1の実施形態では、一定時間経過した場
合にのみ、各ノード1,2,…,Nが一斉にチェックポ
イント取得を開始する場合について説明した。
【0172】第2の実施形態では、あるノードで、BI
Bの残容量が、ある定められた値を下回った場合に、全
てのノードで同期してチェックポイント取得を開始する
方法について説明する。ここで、BIBの残容量が、あ
る定められた値を下回ったノードを、チェックポイント
処理開始要求ノードと呼ぶことにする。
【0173】第2の実施形態は、第1の実施形態と近い
ので、相違する部分を中心に説明する。第2の実施形態
においても、第1の実施形態と同じく、各ノードは、論
理的に2進木のノードと1対1に対応づけられている。
【0174】図17(a)に示すように、チェックポイ
ント処理開始要求ノード(ノード5)は、親ノード(ノ
ード2)に対してチェックポイント取得の開始指示要求
を送り、それを受け取った親ノード(ノード2)はその
要求を自分の親ノード(ノード1)に送ることでノード
にチェックポイント取得の開始指示要求を伝える。
【0175】2進木の形状に沿って伝えるのは、多数の
ノードがノード1に対してチェックポイント取得の開始
指示要求を送るのを防ぐためである。
【0176】ノード1が、ノード2とノード3に対して
チェックポイント取得指示を送り、図17(b)に示す
ように、2進木の形状に沿って全てのノードにチェック
ポイント取得指示が伝えられる。
【0177】各ノードは、BIBの残容量がある閾値を
下回った場合、あるいは、子ノードからチェックポイン
ト取得の開始指示要求を受信すると、図18のフローチ
ャートに示す処理を行なう。
【0178】まず、条件に該当したノードは、親ノード
へチェックポイント取得開始要求を送る(ステップE
1)。ただし、ノード1に関しては、親ノードは無いの
でこのステップは行なわれない。
【0179】チェックポイント取得開始要求がノード1
まで伝わると、ノード1は、子ノード、すなわちノード
2,3へチェックポイント取得指示を送る(ステップE
2)。ノード1は、親ノードを持たないため、ステップ
E2は実行されない。
【0180】ノード2,3は、ノード1から送られてき
たチェックポイント取得指示を自分の子ノードへ送る
(ステップE3)。各ノードがステップE2、及びステ
ップE3のステップを実行することにより、全てのノー
ドにチェックポイント取得指示が伝えられる。
【0181】各ノードは、通常のデータ処理を中断し、
ノード間通信の受信処理を時刻T4まで実行する(ステ
ップE4,E5)。これは、チェックポイント取得指示
が2進木の葉に対応するノードに達するまでの間、通常
のデータ処理にともなうノード間通信が起こり得るた
め、それを全部受信する必要があるためである。
【0182】なお、時刻T4は、ノード1がステップE
3を実行する際に決定するのが望ましい。
【0183】時刻T4になると、通信路(通信スイッチ
10)上にノード間通信のデータがなくなるので、図7
のステップC5〜C13と同じように、チェックポイン
ト取得および取得完了の同期処理を行なう(ステップE
6〜E14)。詳細な説明については、前述した図7に
示すフローチャートにおけるステップC5〜C13と同
じ手順で実行されるものとして省略する。
【0184】なお、第2の実施形態では、あるノードに
おいて、BIBの残容量がある閾値を下回った場合、ま
ず図17(a)に示すように、チェックポイント取得の
開始指示要求を根ノード(ノード1)まで伝達させて、
図17(b)に示すように、根ノードからチェックポイ
ント取得指示を出すものとして説明したが、別の方法も
可能である。
【0185】望ましい方法としては、図17(c)に示
すように、BIBの残容量がある閾値を下回ったことを
検出したチェックポイント処理開始要求ノード(図17
(c)ではノード5)から、親ノード及び全ての子ノー
ドにチェックポイント取得指示を送り、チェックポイン
ト取得指示を受信したノードは、自分の親ノード及び全
ての子ノードにチェックポイント取得指示を送ることに
より、全てのノードにチェックポイント取得指示を送る
方法を用いることもできる。
【0186】この場合、あるノードからチェックポイン
ト取得指示を受信した場合、 (F1)チェックポイント取得指示を送信してきたノー
ドに対して、チェックポイント取得指示を送らない、 (F2)2つ以上のチェックポイント取得指示を受信し
た場合、2番目以降に受信したチェックポイント取得指
示を捨て去る、ことが必要である。
【0187】以上で、第2の実施形態において、あるノ
ードにおいてチェックポイント取得開始の必要が生じた
場合、すなわちBIBの残容量が、ある定められた値を
下回った場合に、チェックポイント処理開始要求を全て
のノードに伝えて、ノード間通信のない状態で、全ての
ノードが同期してチェックポイントを取得する方法につ
いて説明した。
【0188】次に、第3の実施形態について説明する。
【0189】第2の実施形態では、図18のステップE
5において、チェックポイント取得指示が2進木の葉に
対応するノードに達するまでに起こり得るノード間通信
の受信処理を行なうために、時刻T4になるまで待つも
のとした。第3の実施形態では、時刻T4まで待たない
ようにすることで、よりノード間通信を高速化する方法
について示す。
【0190】第3の実施形態では、通信アダプタ1−
2,2−2,…,N−2に関して、下記の機能を仮定す
る。
【0191】(G1)各ノードのCPUは、そのノード
の通信アダプタに対して、受信拒否モードを設定でき
る。
【0192】(G2)ノードAからノードBにデータを
送信するため、ノードAの通信アダプタを起動し、か
つ、ノードBの通信アダプタが受信拒否モードに設定さ
れている場合、実際には通信が行なわれず、ノードAの
通信アダプタは、ノードAのCPUに割り込むことで、
異常終了したこと、及び異常終了の原因を伝える。
【0193】通信アダプタ1−2,2−2,…,N−2
が前述の(G1)(G2)の機能を有する場合、図18
のフローチャートに示したチェックポイント取得の開始
をノード間で同期させる方法、及び図3のフローチャー
トに示すノード間通信の送信側(送信制御部)の動作方
法を、それぞれ図19、図20のように変更することに
より、親ノードからチェックポイント取得指示をしてか
らの待ち時間を省くことができる。
【0194】各ノードは、チェックポイントを開始する
際(ステップF1)、通信アダプタを受信拒否モードに
設定する(ステップF2)。
【0195】ここで、ノードAは、送信メッセージを作
成し(ステップG1)、通信アダプタを起動して(ステ
ップG2〜G4)、ノードBに対してデータ送信を行な
おうとしたものとする(ステップG5〜G6)。一方、
ノードBは、チェックポイント取得を開始するため、通
信アダプタを受信拒否モードに設定する(ステップF
2)。
【0196】この場合、ノードAでは、図20のステッ
プG6において相手側の通信アダプタが受信拒否モード
に設定されていることを検知し、ノードAに対するメッ
セージの送信は一定期間行なわない(ステップG9)。
【0197】通常は、この待ちの期間中に、ノードAに
対してもチェックポイント取得指示が送られてくるの
で、通常のデータ処理が中断され、チェックポイント取
得が開始されることになる。
【0198】以上、通信アダプタが受信拒否モードを設
定できる場合には、チェックポイント取得の開始に関し
て、通常のデータ処理にともなうノード間通信が無くな
るまで、一定時間待つ必要がないことを説明した。
【0199】なお、第3の実施形態における方法は、第
1の実施形態についても適用可能であり、その場合に
は、図7のステップC3,C4において、時刻T2が経
過するまでノード間通信の受信処理を続ける必要がなく
なる。
【0200】次に、第4の実施形態について説明する。
【0201】第3の実施形態では、通信アダプタが受信
拒否モードを設定できる場合に、チェックポイント取得
の開始に関して、通常のデータ処理にともなうノード間
通信が無くなるまで、一定時間待つ必要がないことを説
明した。第4の実施形態では、通信アダプタに受信拒否
モードを設定できる機能が無くても、一定時間待たない
ようにすることができる方法について示す。
【0202】図21のフローチャートに示すように、チ
ェックポイントを開始する際(ステップH1)、CPU
のコンテクストをメインメモリ上に保存する処理(ステ
ップH2)と、キャッシュメモリフラッシュ1(ステッ
プH3)を、CPU割り込みを許可した状態で行なう。
ただし、キャッシュメモリフラッシュ1というのは、キ
ャッシュメモリの一部についてのみフラッシュする処理
である。
【0203】これにより、ステップH2またはH3の実
行中に、他のノードからデータ送信があった場合には、
通信アダプタからの割り込みとして、データ受信要求が
CPUに伝えられる。
【0204】この場合、受信側ノードのCPUは、図2
2のフローチャートに示すノード間通信の受信処理を実
行する。受信側ノードのCPUは、キャッシュメモリフ
ラッシュの途中で、通信アダプタからの割り込みを処理
することにより(ステップI2〜I4)、キャッシュメ
モリフラッシュ1によりキャッシュメモリのフラッシュ
が終わった部分にも、書き換えられたデータが存在する
可能性ができる。
【0205】このため、受信側ノードは、メッセージ受
信処理の後(ステップI5,I7,I8)、ステップI
9において、受信要求割り込みが発生した時ににチェッ
クポイント取得中であったかチェックする。チェックポ
イント取得中であった場合には、図21のステップH2
の処理に戻ってチェックポイント取得をやり直す。
【0206】この方法は、メッセージの到着があるか否
か不明な状態で待つよりは、到着がないものとしてキャ
ッシュメモリのフラッシュをある程度実行し、その間に
到着があれば、キャッシュメモリのフラッシュを再度実
行すれば良いという考え方に基づいている。これによ
り、システム全体の性能向上が期待できる。
【0207】なお、第4の実施形態では、メッセージ到
着があった場合、ステップH2において、CPUのコン
テクストをメインメモリ上に保存する処理も再度実行す
ると説明しているが、CPUのコンテクストの保存方法
によっては、メッセージ到着前に保存したものを変更す
る必要はない。すなわち、どの時点でコンテクストを保
存するかによるが、例えばチェックポイント取得メッセ
ージを受信すると、通信アタプタからの割り込みがあっ
てチェックポイント取得を開始するが、その際、それま
で行なってデータ通常のデータ処理でのレジスタの内容
が保存されいるならば、あらためてコンテクストを保存
して先のデータを変更するのではなく、先のデータをそ
のまま利用することもできる。
【0208】次に、第5実施形態について説明する。
【0209】チェックポイント/ロールバック方式の計
算機では、チェックポイント取得に要する時間の大半を
キャッシュメモリのフラッシュに要しているため、その
時間を実効的に低減させる方式として、2フェーズチェ
ックポイントを用いる。この場合、ノード中のキャッシ
ュメモリは、コピーバック型であるものとする。2フェ
ーズチェックポイントについては、本出願人は先に特願
平7−151739号において出願している。
【0210】従来のチェックポイント方式では、図23
(a)に示すように、通常処理、チェックポイント処
理、通常処理、チェックポイント処理、…という繰り返
しを行なっており、ここでのオーバヘッドは、 チェックポイント処理/(通常処理+チェックポイント
処理) となる。このチェックポイント処理の中で、時間的に最
も大きな割合を占めるのがキャッシュ上の更新データを
メインメモリに書き戻す(フラッシュする)時間であ
る。
【0211】従来のチェックポイント処理のオーバヘッ
ドのうちで最も大きな割合を占める「キャッシュ上の更
新データをメインメモリに書き戻す(フラッシュする)
時間」を短縮するために、以下の様な手順によって、2
フェーズチェックポイント処理を行なう。図23(b)
には2フェーズチェックポイント方式の動作のタイムチ
ャートを示している。
【0212】(H1)通常のデータ処理。
【0213】(H2)第1フェーズ:通常のデータ処理
と並行して、フラッシュするための専用のハードウェア
であるキャッシュフラッシュ装置(例えば、本出願人が
先に特願平7−151732号によって出願した)でキ
ャッシュフラッシュを実行する。
【0214】(H3)第2フェーズ:通常のデータ処理
を行なわず、CPUのコンテキストをメインメモリ上に
保存した後、キャッシュメモリのキャッシュフラッシュ
をキャッシュフラッシュ装置で実行する。
【0215】第1フェーズの中で、通常のデータ処理を
行ないながら、キャッシュフラッシュを実行すること
で、第2フェーズ開始時点では、キャッシュメモリから
メインメモリに書き戻すべきデータの量がかなり減る。
従って、通常のデータ処理を実行することができない、
第2フェーズの所要時間を減らすことができる。
【0216】第5実施形態では、この2フェーズチェッ
クポイント方式を採用した計算機を分散メモリ型マルチ
プロセッサシステムにおける各ノードとして採用する場
合について説明する。
【0217】図24には、各ノードが2フェーズチェッ
クポイントを行なうための、キャッシュフラッシュ装置
の制御方法を示している。
【0218】まず、通常のデータ処理を実行している際
に第1フェーズを開始すべき要因が発生すると(ステッ
プJ1,J2)、キャッシュフラッシュハードウェア、
すなわちキャッシュフラッシュ装置が起動される(ステ
ップJ3)。これにより、キャッシュフラッシュ装置に
よりキャッシュフラッシュを行なう一方で、並行して通
常のデータ処理を行なうことができる(ステップJ
4)。
【0219】ここで、第2フェーズを開始すべき要因が
発生すると(ステップJ5)、通常のデータ処理は行な
わず、CPU割り込み禁止にして、CPUのコンテクス
トをメインメモリ上に保存する(ステップJ6,J
7)。この後、キャッシュフラッシュ装置を止め、再起
動して、キャッシュフラッシュの対象をキャッシュメモ
リ全体に戻し、キャッシュフラッシュ装置により第2フ
ェーズにおけるキャッシュフラッシュを実行する(ステ
ップJ8,J9)。第2フェーズでは、キャッシュメモ
リ全体を対象としても、第1フェーズで書き戻しが完了
しなかった分と、第1フェーズの実行中に更新されたデ
ータのみであるので、書き戻すデータ量が少ない。従っ
て、通常のデータ処理を実行できない時間を短縮するこ
とができる。
【0220】キャッシュフラッシュ装置によるキャッシ
ュフラッシュが終了すると、CPU割り込み許可にし
て、ノード間での完了同期を行なった後、BIBをクリ
アし、通常のデータ処理に戻る(ステップJ10〜J1
2)。
【0221】なお、ステップJ11におけるノード間で
のチェックポイント完了同期は、前述した第1実施形態
において説明した方法を用いることができる。これによ
り、チェックポイントの取得自体に要する時間を短縮す
ることにより、通常のデータ処理を実行できない時間、
すなわちノード間通信を行なうことができない時間を短
縮すると共に、全てのノードで同期してチェックポイン
トを取得することでノード間通信の要求を即座に実行で
きる本発明を適用して、ノード間通信を高速化すること
ができる。
【0222】なお、第1フェーズ及び第2フェーズヘ移
行するタイミング、すなわちステップJ2及びステップ
J5における判定条件には種々の候補があり得る。
【0223】ステップJ2に関しては、各ノードが下記
の何れかの条件(I1)〜(I3)が成立したか否かを
独立して判定する方法と、何れかのノードで下記の条件
(I1)〜(I3)が成立したことを検出した時、それ
をノード間通信で他のノードに伝える方法がある。
【0224】(I1)各ノードが通常のデータ処理を再
開してから一定時間が経過した。
【0225】(I2)キャッシュメモリ中の書き戻しが
必要なデータの量が閾値を越えた。
【0226】(I3)BIBの残容量が閾値を下回っ
た。
【0227】また、ステップJ5に関しては、各ノード
が下記の条件(J1)〜(J3)が成立したか否か独立
して判定する方法と、何れかのノードで下記の条件(J
1)〜(J3)が成立したのを検出した時、それをノー
ド間通信で他のノードに伝える方法がある。
【0228】(J1)各ノードが第1フェーズを開始し
てから一定時間が経過した。
【0229】(J2)キャッシュフラッシユ装置が全て
のキャッシュブロックの検査及びそれに伴うデータのメ
インメモリへの書き戻しを終了した。
【0230】これらの候補のうち、いずれが最適である
かは、各ノードでのデータ処理の内容によって異なるの
で、試行錯誤的に選択できることが望ましい。
【0231】また、条件(I1)〜(I3),(J1)
〜(J2)をノード間通信で他のノードに通知する方法
は、前述した第1の実施形態乃至第4の実施形態におい
て説明した方法を用いることができる。
【0232】以上、2フェーズチェックポイント方式の
計算機を用いる場合について説明した。
【0233】次に、分散メモリ型マルチプロセッサシス
テム中のノードをグループ化する場合に本発明を適用す
る例について説明する。分散メモリ型マルチプロセッサ
システムにおいて、複数のアプリケーションを実行させ
る場合、システム中に存在する複数のノードを論理的な
いくつかのグループに分け、各グループ毎に異なるアプ
リケーションを実行させることがある。
【0234】図25には複数のノードをグループ化した
状況を概念的に示している。各ノードは、通信路を介し
て接続されており(図示せず)、相互にデータ送受信が
可能である。
【0235】例えば、多くの遠隔端末からの照会業務を
受け付ける大規模なデータベースシステムと、そのデー
タベースも参照する意思決定支援システムを例に考え
る。この場合、データベースシステムは、計算機のダウ
ンによりサービスが停止するのを回避すべきであるが、
意思決定支援システムは計算機のダウンがあり最初から
再実行することがあっても、さぼど深刻な影響はないと
考えられる。
【0236】そこで、分散メモリ型マルチプロセッサシ
ステムがチェックポイントを取得する場合、データベー
スシステムを実行するグループに属するノードではチェ
ックポイントを取得するが、意思決定支援システムを実
行するノード(少数であるとの前提)ではチェックポイ
ントを取得しないようにする。
【0237】ここで、チェックポイント取得を指示され
るノードを取得ノード、チェックポイント取得を指示さ
れないノードを非取得ノードとする。図25において
は、チェックポイント採取グループ(データベースシス
テム)に含まれるノード(例えばノードB,F)が取得
ノード、チェックポイント非採取グループ(意思決定支
援システム)に含まれるノード(例えばノードC,H)
が非取得ノードとなる。
【0238】本実施形態では、各ノードに、自ノードに
チェックポイントを取得させるか否か、すなわちチェッ
クポイント取得ノードあるいは非取得ノードの何れであ
るかを設定する手段を設け、チェックポイント取得の有
無をノード単位に選択するものとする。
【0239】このような、チェックポイント取得ノード
と非取得ノードが混在した構成の分散メモリ型マルチプ
ロセッサシステムの場合、次のようなノード間通信が発
生する。
【0240】(K1)データベースシステムを実行する
グループ(チェックポイント採取グループ)に属するノ
ード間通信。
【0241】(K2)意思決定支援システム(チェック
ポイント非採取グループ)からデータベースへ問い合わ
せ送信に伴うノード間通信。
【0242】(K3)データベースから意思決定支援シ
ステムへの結果送信に伴うノード間通信である。
【0243】(K1)は、例えば図25中のノードBか
らノードFへのデータ通信(1)であり、チェックポイ
ント取得の時はデータ送信を抑止するが、チェックポイ
ント採取グループ内で同期してチェックポイント採取を
行なうので、遅延なしのデータ通信が可能である。チェ
ックポイント取得の時はデータ送信を抑止することで、
通信路に転送中のデータが存在しない状態でチェックポ
イントを取得できる。
【0244】(K2)は、例えば25図中ノードCから
ノードGへのデータ通信(2)であり、データベース実
行可能側で、チェックポイント取得中だけはデータ送信
を抑止する。
【0245】(K3)は、例えば25図中ノードGから
ノードCへのデータ通信(3)であり、チェックポイン
ト採取グループのみがロールバックされる、あるいはチ
ェックポイント非採取グループのみがリブートされる場
合があり、両グループ間で状態に矛盾が生じることもあ
るので、データ送信は次のチェックポイント取得後まで
遅延させられる。
【0246】また、データベースシステムを実行するグ
ループに属するノード(取得ノード)で故障が発生した
場合、そのグループに属する全てのノードが直前のチェ
ックポイントまで戻って通常のデータ処理を再開する
が、意思決定支援システムを実行するノード(非取得ノ
ード)については通常の処理を続ける。
【0247】一方、意思決定支援システムを実行するノ
ード(非取得ノード)で故障が発生した場合、リブート
を行ない、通常、意思決定支援システムを最初から実行
しなおす。データベースシステムを実行するグループに
属するノード(取得ノード)については通常の処理を続
ける。
【0248】こうして、分散メモリ型マルチプロセッサ
システム中に、ノード単位で設定されたチェックポイン
ト取得ノードと非取得ノードを混在させて、効果的なチ
ェックポイント/ロールバック方式の分散メモリ型マル
チプロセッサシステムを構築できる。
【0249】次に、前述した大規模なデータベースシス
テムと、そのデータベースも参照する受発注管理システ
ムにそれぞれノードグループを割り当て、各ノードグル
ープ毎でチェックポイントを取得しながらチェックポイ
ント処理を実行する場合について説明する。
【0250】例えば、図26に示すように、通信路を介
して相互に接続された複数のノードが3つのグループに
グループ化され、例えば一方のチェックポイント採取グ
ループXのノードグループで大規模なデータベースシス
テムを実現し、他方のチェックポイント採取グループY
のノードグループで受発注管理システムを実現している
ものとする。また、チェックポイント非採取グループも
存在する。ここでは、ノードグループごとに同期してチ
ェックポイント取得を行なう。
【0251】この場合、データベースシステムを実行す
るグループ内、及び受発注管理システムを実行するグル
ープ内では頻繁にデータ通信が発生するが、両グループ
に属するノード間でのデータ通信は少ないと予想され
る。そこで、両グループに属する全てのノード間で同期
してチェックポイントを取得する代わりに、それぞれの
グループ内では同期してチェックポイントを取得し、両
グループ間では同期させない。
【0252】例えば、図26中においては、あるグルー
プに属する各ノードがチェックポイントを取得している
際、他のグループに属するノードは、通信路を介して他
のノードへのデータ送信を行なう。例えば、チェックポ
イント採取グループXにおいてチェックポイントを取得
している際、チェックポイント採取グループYのノード
MはノードNにデータ送信(1)を行なう。
【0253】一方、異なるグループに属するノード間、
例えばノードKとノードOでのデータ送信(2)は、次
のチェックポイント取得後まで遅延させる。
【0254】あるグループに属するあるノードに故障が
発生した場合は、他のグループに属する全てのノード
は、通信路へのデータ送信を抑止し、通信路を経由して
転送しているデータについては受信を完了させた後、通
信路上に通信中のデータが無いように、必要ならば初期
化する。
【0255】また、故障が発生したノードを含むグルー
プに属する全てのノードは、それぞれ直前のチェックポ
イントにロールバックした後、通常のデータ処理を再開
する。こうして、ノードグループごとに同期してチェッ
クポイントを取得することができる。
【0256】こうしてノードグループ単位で同期してチ
ェックポイントを取得することにより、ノード間でのチ
ェックポイントチェックポイント取得の開始の同期、及
びチェックポイント取得後の通常のデータ処理開始に関
する処理に関するオーバヘッドを低減することができ
る。
【0257】なお、図25、図26において説明した構
成においては、必要に応じて、チェックポイント取得に
係わるデータ間通信の方法を、前述した第1実施形態〜
第4実施形態において説明した方法を用いることができ
る。
【0258】なお、本発明は、従来の分散メモリ型マル
チプロセッサシステムにおけるノードをチェックポイン
ト/ロールバック機構を備えたものに変更しなければな
らないが、ノード間を接続する通信路(通信スイッチ1
0)はそのまま使用できるので、分散メモリ型マルチプ
ロセッサシステムに広く応用できる。また、本発明を適
用した分散メモリ型マルチプロセッサシステムは、大規
模な科学技術計算やデータベース処理をはじめ、広い用
途に適用でき、その高信頼性を享受できる。
【0259】
【発明の効果】以上詳述したように本発明によれば、ノ
ードにチェックポイント/ロールバック方式の計算機を
用いた際であっても、ノード間通信を即時に実行するこ
とで、ノード間通信を高速化することが可能となるもの
である。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるチェックポイント
/ロールバック方式の分散メモリ型のマルチプロセッサ
システムの構成を示すブロック図。
【図2】BIB(Before Image Buff
er)を用いたデータの保存とロールバックを説明する
ための図。
【図3】実施形態におけるノード間通信の送信側の動作
を示すフローチャート。
【図4】実施形態におけるノード間通信の受信側の動作
を示すフローチャート。
【図5】実施形態におけるノード間通信を遅延なく実行
しても問題がないことを説明するための図。
【図6】実施形態におけるノード間通信を遅延なく実行
しても問題がないことを説明するための図。
【図7】各ノードのCPU1−1,2−1,…,N−1
が、一斉にチェックポイント取得を行なう動作を説明す
るためのフローチャート。
【図8】複数のノード1,2,…,Nにおける通常のデ
ータ処理とチェックポイント取得のタイムチャートを示
す図。
【図9】各ノードを論理的に対応づける2進木(Bin
ary Tree)を示す図。
【図10】ワイアード・AND12を備えた分散メモリ
型マルチプロセッサシステムの概略構成を示す図。
【図11】BIBテーブルの一例を示す図。
【図12】2つのBIBカウンタと2つのBIBとの対
応関係を示す図。
【図13】マルチプロセッサシステムで実行されるチェ
ックポイント取得処理全体の流れを示す図。
【図14】チェックポイント取得処理の手順を示すフロ
ーチャート。
【図15】チェックポイントへロールバックしてリスタ
ートする方法を説明するためのフローチャート。
【図16】障害発生時のノード間通信を説明するための
2進木を示す図。
【図17】チェックポイント取得の開始を同期させるた
めのノード間通信を説明するための2進木を示す図。
【図18】チェックポイント取得の開始指示要求を受信
した際のノードの動作を説明するためのフローチャー
ト。
【図19】チェックポイント取得の開始をノード間で同
期させる動作を説明するためのフローチャート。
【図20】ノード間通信の送信側の動作を示すフローチ
ャート。
【図21】チェックポイント取得の開始をノード間で同
期させる動作を説明するためのフローチャート。
【図22】ノード間通信の受信処理を説明するためのフ
ローチャート。
【図23】2フェーズチェックポイント方式の動作を示
すタイムチャート。
【図24】ノードが2フェーズチェックポイントを行な
うためのキャッシュフラッシュ装置の制御方法を示すフ
ローチャート。
【図25】複数のノードA〜Pに対するグループ化の概
念を示す図。
【図26】複数のノードA〜Pに対するグループ化の概
念を示す図。
【図27】チェックポイント/ロールバック方式の計算
機の動作の基本原理を示した概念図。
【図28】2つのノード(計算機A、計算機B)との間
でデータ通信を行なう際の通信処理要求を即座に実行し
た場合の不具合の例を示す図。
【図29】2つのノード(計算機A、計算機B)との間
でデータ通信を行なう際の通信処理要求を遅延させる例
を示す図。
【図30】2つのノード(計算機A、計算機B)との間
でデータ通信を行なう際の通信処理要求を遅延させた後
の新しいチェックポイントを採取した例を示す図。
【図31】2つのノード(計算機A、計算機B)との間
でデータ通信を行なう際の通信処理要求を遅延させた後
に故障が発生した場合の例を示す図。
【符号の説明】
1,2,…,N…ノード 1−1,2−1,…,N−1…CPU 1−2,2−2,…,N−2…通信アダプタ 1−3,2−3,…,N−3…メインメモリ 1−4,2−4,…,N−4…BIB 1−5,2−5,…,N−5…キャッシュ
フロントページの続き (56)参考文献 特開 平2−140841(JP,A) 特開 昭64−106653(JP,A) 特開 昭63−40959(JP,A) 特開 平8−130498(JP,A) 特開 平7−13835(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 678 G06F 15/177 681 EPAT(QUESTEL) JICSTファイル(JOIS) WPI(DIALOG)

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくともプロセッサとメインメモリと
    を含むノードが通信路を介して2個以上接続され、前記
    通信路を経由してノード間通信を行なう分散メモリ型マ
    ルチプロセッサシステムにおいて、 前記ノードは、 故障発生時の再実行を可能にするために、ある時点で自
    ノードに関するチェックポイントを取得し、故障発生時
    には直前に取得したチェックポイントからデータ処理を
    再開する機能を有し、 前記機能によるチェックポイントの取得の開始を、前記
    通信路を介した他のノードに対するデータ送信を抑止
    し、前記通信路を経由して送信されるデータの受信を完
    了させて、前記通信路に送信中のデータが存在しない状
    態で、他の全てのノードと同期して行なうことを特徴と
    する分散メモリ型マルチプロセッサシステム。
  2. 【請求項2】 前記ノードは、前記通信路を介した他の
    ノードに対するデータ送信を、次のチェックポイントの
    取得後まで遅延させることなく実行することを特徴とす
    る請求項1記載の分散メモリ型マルチプロセッサシステ
    ム。
  3. 【請求項3】 前記ノードのプロセッサにコピーバック
    型のキャッシュメモリが設けられ、前記チェックポイン
    トが前記メインメモリ上に取得されるものであって、 前記ノードは、全ての他のノードと同期して行なうチェ
    ックポイントの取得の前に、通常のデータ処理と並行し
    て全ての他のノードと同期して、前記キャッシュメモリ
    中に存在するダーティなデータの一部を強制的に前記メ
    インメモリに書き戻すことを特徴とする請求項2記載の
    分散メモリ型マルチプロセッサシステム。
  4. 【請求項4】 前記ノードのそれぞれは、ある時刻にな
    った時点で前記チェックポイントの取得を開始して、他
    の全てのノードと前記チェックポイントの取得を同期さ
    せることを特徴とする請求項1または請求項2記載の分
    散メモリ型マルチプロセッサシステム。
  5. 【請求項5】 前記ノードのそれぞれは、木構造の何れ
    かのノードと対応づけられ、この対応づけに基づく関係
    のあるノードに対してチェックポイントの取得開始の同
    期をとるためのデータ送信を行なうもので、 チェックポイントの取得を開始すべきことを検出したノ
    ードは、親ノードに対して前記チェックポイント取得開
    始要求を送信し、 前記チェックポイント取得開始要求を子ノードから受信
    したノードは、親ノードに前記チェックポイント取得開
    始要求を送信することで、根ノードにまで順次、前記チ
    ェックポイント取得開始要求を送信し、 前記チェックポイント取得開始要求を子ノードから受信
    した根ノードは、全ての子ノードに対してチェックポイ
    ント取得指示を送信し、 前記チェックポイント取得指示を親ノードから受信した
    ノードは、子ノードに前記チェックポイント取得指示を
    送信することで、全てのノードに対してチェックポイン
    ト取得指示を与えて、全てのノードでチェックポイント
    の取得の開始の同期をとることを特徴とする請求項1ま
    たは請求項2または請求項3記載の分散メモリ型マルチ
    プロセッサシステム。
  6. 【請求項6】 前記ノードのそれぞれは、木構造の何れ
    かのノードと対応づけられ、この対応づけに基づく関係
    のあるノードに対してチェックポイントの取得開始の同
    期をとるためのデータ送信を行なうもので、 チェックポイントの取得を開始すべきことを検出したノ
    ードは、親ノード及び全ての子ノードに対してチェック
    ポイント取得指示を送信し、 前記チェックポイント取得指示を受信したノードは、親
    ノード及び全ての子ノードのうち、前記チェックポイン
    ト取得指示を送信してきたノードを除く全てノードに対
    して前記チェックポイント取得指示を送信することで、
    全てのノードでチェックポイントの取得の開始の同期を
    とることを特徴とする請求項1または請求項2記載の分
    散メモリ型マルチプロセッサシステム。
  7. 【請求項7】 少なくともプロセッサとメインメモリと
    を含むノードが通信路を介して2個以上接続され、前記
    通信路を経由してノード間通信を行なう分散メモリ型マ
    ルチプロセッサシステムにおいて、 前記ノードは、 故障発生時の再実行を可能にするために、ある時点で自
    ノードに関するチェッ クポイントを取得し、故障発生時
    には直前に取得したチェックポイントからデータ処理を
    再開する機能を有し、 全ての他のノードと同期して取得したチェックポイント
    を、全てのノードで次のチェックポイントの取得が完了
    するまで保持し、何れかのノードに故障が発生した場合
    に、次のチェックポイントの取得までに他の全てのノー
    ドと同期して故障発生が通知されるものであって、 前記機能によってチェックポイントの取得を開始した
    後、他のノードから通常のデータ処理にともなうノード
    間のデータ送信を受信した場合に、故障発生を通知する
    ものである場合には、直前に取得したチェックポイント
    からデータ処理を再開し、その他の通知である場合に
    は、チェックポイントの取得をやり直すことを特徴とす
    る分散メモリ型マルチプロセッサシステム。
  8. 【請求項8】 前記ノードのそれぞれは、木構造の何れ
    かのノードと対応づけられ、この対応づけに基づく関係
    のあるノードに対してチェックポイントの取得完了の同
    期をとるためのデータ送信を行なうもので、 全ての子ノードからチェックポイント完了準備完の通知
    を受信したノードは、親ノードにチェックポイント完了
    準備完を送信し、 全ての子ノードからチェックポイント完了準備完の通知
    を受信した根ノードは、全ての子ノードに対してチェッ
    クポイント完了指示を送信すると共にチェックポイント
    取得を完了させ、通常のデータ処理を再開し、 親ノードからチェックポイント完了指示を受けとった
    時、あるいは既に通常のデータ処理を再開したノードか
    ら通常のデータ通信を受け取った時、ノードは、全ての
    子ノードに対してチェックポイント完了指示を送ると共
    にチェックポイント取得を完了させ、通常のデータ処理
    を再開することを特徴とする請求項1または請求項2に
    記載の分散メモリ型マルチプロセッサシステム。
  9. 【請求項9】 前記ノードのそれぞれは、木構造の何れ
    かのノードと対応づけられ、この対応づけに基づく関係
    のあるノードに対してチェックポイントの取得完了の同
    期をとるためのデータ送信を行なうもので、 前記各ノードは、チェックポイントの取得を開始した時
    点で、他のノードからのデータ受信を不可とし、チェッ
    クポイントの取得が完了する直前で、他のノードからの
    データ受信を可能とすると共に通常のデータ処理を再開
    するもので、 全ての子ノードからチェックポイント完了準備完の通知
    を受信したノードは、親ノードにチェックポイント完了
    準備完を送信し、 全ての子ノードからチェックポイント完了準備完の通知
    を受信した根ノードは、全ての子ノードに対してチェッ
    クポイント完了指示を送信すると共にチェックポイント
    取得を完了させ、以前のチェックポイントを破棄し、 親ノードからチェックポイント完了指示を受け取った
    時、あるいは既に通常のデータ処理を再開したノードか
    ら通常のデータ通信を受け取った時、ノードは、全ての
    子ノードに対してチェックポイント完了指示を送ると共
    にチェックポイント取得を完了させ、以前のチェックポ
    イントを破棄することを特徴とする請求項1乃至請求項
    6の何れかに記載の分散メモリ型マルチプロセッサシス
    テム。
  10. 【請求項10】 前記全てのノードにおいてチェックポ
    イントの取得が終了したことを検出するためのバリア同
    期機構を有することを特徴とする請求項1または請求項
    2記載の分散メモリ型マルチプロセッサシステム。
  11. 【請求項11】 前記親ノードにおいて全ての子ノード
    からのチェックポイント取得の完了準備完が一定時刻ま
    でに受け取れたか否かによって故障を検出することを特
    徴とする請求項8または請求項9記載のチェックポイン
    ト/ロールバック方式の分散メモリ型マルチプロセッサ
    システム。
  12. 【請求項12】 前記各ノードは、前記機能によりチェ
    ックポイントを取得する取得ノードか、チェックポイン
    トの取得を行なわない非取得ノードかを設定する手段を
    有し、 前記手段によって前記取得ノードに設定されたノード
    は、チェックポイントの取得の時は、前記通信路を介し
    た他のノードに対するデータ送信を抑止し、前記通信路
    を経由して送信されるデータの受信を完了し、 前記手段によって前記非取得ノードに設定されたノード
    は、前記通信路を介した取得ノードに対するデータ送信
    を抑止して、 前記通信路に取得ノードに対して送信中のデータが存在
    しない状態で、他の全てのノードと同期して行ない、 何れかの前記取得ノードに故障が発生した際、 前記非取得ノードは、前記通信路へのデータ送信を抑止
    し、前記通信路を経由して送信されるデータの受信を完
    了させて、前記通信路に通信中のデータが無いようにし
    た状態で、 前記取得ノードは、直前に取得したチェックポイントか
    らデータ処理を再開することを特徴とする請求項1また
    は請求項2記載の分散メモリ型マルチプロセッサシステ
    ム。
  13. 【請求項13】 前記ノードがグループ化されてグルー
    プ毎に異なるアプリケーションを実行し、各グループに
    属するノード毎にチェックポイントを取得するものであ
    って、 あるグループに属する各ノードがチェックポイントを取
    得する際、他のグループに属するノードは、前記通信路
    を介して他のノードへのデータ送信を行ない、 異なるグループに属するノード間のデータ間通信は、次
    のチェックポイントの取得後まで遅延させ、 あるグループに属するあるノードで故障が発生した際
    は、 他のグループに属する全てのノードは、前記通信路への
    データ送信を抑止し、前記通信路を経由して送信してい
    るデータの受信を完了させて、前記通信路に通信中のデ
    ータが無いようにし、 故障が発生したグループに属する全てのノードは、それ
    ぞれ直前に取得したチェックポイントからデータ処理を
    再開することを特徴とする請求項1または請求項2記載
    の分散メモリ型マルチプロセッサシステム。
JP08063407A 1996-03-19 1996-03-19 分散メモリ型マルチプロセッサシステム及び故障回復方法 Expired - Fee Related JP3120033B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP08063407A JP3120033B2 (ja) 1996-03-19 1996-03-19 分散メモリ型マルチプロセッサシステム及び故障回復方法
KR1019970008909A KR100238926B1 (ko) 1996-03-19 1997-03-17 분산 메모리형 멀티프로세서 시스템 및 고장 회복방법
CNB971045119A CN1225709C (zh) 1996-03-19 1997-03-18 分散存储型多处理机系统及故障恢复方法
US08/820,528 US5922078A (en) 1996-03-19 1997-03-19 Method and apparatus for recovering from faults in distributed memory type multiprocessor computing systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08063407A JP3120033B2 (ja) 1996-03-19 1996-03-19 分散メモリ型マルチプロセッサシステム及び故障回復方法

Publications (2)

Publication Number Publication Date
JPH09259098A JPH09259098A (ja) 1997-10-03
JP3120033B2 true JP3120033B2 (ja) 2000-12-25

Family

ID=13228425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08063407A Expired - Fee Related JP3120033B2 (ja) 1996-03-19 1996-03-19 分散メモリ型マルチプロセッサシステム及び故障回復方法

Country Status (4)

Country Link
US (1) US5922078A (ja)
JP (1) JP3120033B2 (ja)
KR (1) KR100238926B1 (ja)
CN (1) CN1225709C (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185702B1 (en) * 1997-01-24 2001-02-06 Kabushiki Kaisha Toshiba Method and system for process state management using checkpoints
JP3253883B2 (ja) * 1997-01-31 2002-02-04 株式会社東芝 プロセスリスタート方法及びプロセス監視装置
JP3390824B2 (ja) * 1997-03-19 2003-03-31 株式会社日立製作所 多重化制御装置及びその障害回復方法
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
CA2221661A1 (en) * 1997-11-20 1999-05-20 Crosskeys Systems Corporation Transaction roll forward
US7065540B2 (en) 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
JP4242155B2 (ja) * 2001-03-07 2009-03-18 オラクル・インターナショナル・コーポレイション 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置
US6834358B2 (en) * 2001-03-28 2004-12-21 Ncr Corporation Restartable database loads using parallel data streams
JP3897994B2 (ja) * 2001-05-31 2007-03-28 富士通株式会社 スイッチ装置およびデータ転送システム
US7512676B2 (en) * 2001-09-13 2009-03-31 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
KR100395071B1 (ko) * 2001-12-20 2003-08-19 엘지전자 주식회사 멀티프로세스 운영체계에서의 프로세스 복구 시스템 및 방법
US7065549B2 (en) * 2002-03-29 2006-06-20 Illinois Institute Of Technology Communication and process migration protocols for distributed heterogeneous computing
US7124323B2 (en) * 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation
US7562254B2 (en) * 2003-07-01 2009-07-14 International Business Machines Corporation Checkpointing and restarting long running web services
JP2005332370A (ja) * 2004-04-19 2005-12-02 Toshiba Corp 制御装置
JP4773715B2 (ja) * 2004-12-01 2011-09-14 富士通株式会社 チェックポイント取得方法
CN100387002C (zh) * 2004-12-24 2008-05-07 华为技术有限公司 一种数据回退机制的测试方法
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US7779295B1 (en) * 2005-06-28 2010-08-17 Symantec Operating Corporation Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7457985B2 (en) * 2005-09-09 2008-11-25 International Business Machines Corporation Method to detect errors in computer systems by using state tracking
JP4421592B2 (ja) * 2006-11-09 2010-02-24 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステム、その制御方法、プログラム及び情報記憶媒体
US7610510B2 (en) * 2007-02-16 2009-10-27 Symantec Corporation Method and apparatus for transactional fault tolerance in a client-server system
JP5595633B2 (ja) * 2007-02-26 2014-09-24 スパンション エルエルシー シミュレーション方法及びシミュレーション装置
EP2204736A4 (en) * 2007-09-25 2012-01-11 Fujitsu Ltd INFORMATION PROCESSOR AND CONTROL PROCEDURE
CN101452379B (zh) * 2007-11-28 2012-05-23 无锡江南计算技术研究所 内存空间的分析方法和装置、检查点的保留方法和装置
JP5759203B2 (ja) * 2011-02-25 2015-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 反復法の並列コンピュータ計算における非同期なチェックポイント取得とそこからの回復
US8689048B1 (en) * 2011-09-22 2014-04-01 Emc Corporation Non-logging resumable distributed cluster
US9588685B1 (en) * 2013-05-03 2017-03-07 EMC IP Holding Company LLC Distributed workflow manager
KR101575547B1 (ko) 2014-12-09 2015-12-22 현대오트론 주식회사 캔 통신 시스템의 에러 분산감지 방법 및 캔 통신 시스템
CN105138428B (zh) * 2015-08-22 2018-03-06 西安电子科技大学 基于前驱依赖的故障恢复方法
US10169137B2 (en) 2015-11-18 2019-01-01 International Business Machines Corporation Dynamically detecting and interrupting excessive execution time
CN109831342A (zh) * 2019-03-19 2019-05-31 江苏汇智达信息科技有限公司 一种基于分布式系统的故障恢复方法
CN111756580B (zh) * 2020-06-28 2021-02-12 涵涡智航科技(玉溪)有限公司 一种多节点系统的协同作业同步方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02287858A (ja) * 1989-04-28 1990-11-27 Toshiba Corp 分散処理システムのリスタート方式
JP3270216B2 (ja) * 1993-10-08 2002-04-02 富士通株式会社 ファイル名検出方式
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints

Also Published As

Publication number Publication date
CN1225709C (zh) 2005-11-02
CN1164710A (zh) 1997-11-12
US5922078A (en) 1999-07-13
JPH09259098A (ja) 1997-10-03
KR100238926B1 (ko) 2000-01-15
KR970066900A (ko) 1997-10-13

Similar Documents

Publication Publication Date Title
JP3120033B2 (ja) 分散メモリ型マルチプロセッサシステム及び故障回復方法
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
JP2505928B2 (ja) フォ―ルト・トレラント・システムのためのチェックポイント機構
JP3790589B2 (ja) 分散データベーストランザクションのコミットメント方法
EP2673711B1 (en) Method and system for reducing write latency for database logging utilizing multiple storage devices
US6954877B2 (en) Fault tolerance using logical checkpointing in computing systems
US8868492B2 (en) Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US5802267A (en) Method for checkpointing in computer system under distributed processing environment
US5828821A (en) Checkpoint restart method and apparatus utilizing multiple log memories
JP2916421B2 (ja) キャッシュフラッシュ装置およびデータ処理方法
JP4301849B2 (ja) 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法
US10474496B1 (en) Dynamic multitasking for distributed storage systems by detecting events for triggering a context switch
US5752268A (en) Minimum-delay recoverable disk control system using checkpoints and nonvolatile memory
US20060129772A1 (en) Data processing method and system
JP2003516581A (ja) 連続フローチェックポイント設定データ処理法
JP2003131900A (ja) サーバシステム運用管理方式
US20150074219A1 (en) High availability networking using transactional memory
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP6313907B2 (ja) 計算の非決定性の下でのリカバリ及び耐障害
US10140183B2 (en) Efficient state tracking for clusters
JP4095139B2 (ja) コンピュータシステムおよびファイル管理方法
US10552057B2 (en) Methods for improving journal performance in storage networks and devices thereof
WO2011116672A1 (zh) 为共享代码段打补丁的方法及装置
JP3447347B2 (ja) 障害検出方法
JP2004348174A (ja) 記憶装置システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees