JP3258228B2 - チェックポイント生成方法 - Google Patents

チェックポイント生成方法

Info

Publication number
JP3258228B2
JP3258228B2 JP05918896A JP5918896A JP3258228B2 JP 3258228 B2 JP3258228 B2 JP 3258228B2 JP 05918896 A JP05918896 A JP 05918896A JP 5918896 A JP5918896 A JP 5918896A JP 3258228 B2 JP3258228 B2 JP 3258228B2
Authority
JP
Japan
Prior art keywords
checkpoint
processes
generation
communication
inter
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
JP05918896A
Other languages
English (en)
Other versions
JPH09251404A (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 JP05918896A priority Critical patent/JP3258228B2/ja
Priority to US08/818,979 priority patent/US5923832A/en
Publication of JPH09251404A publication Critical patent/JPH09251404A/ja
Application granted granted Critical
Publication of JP3258228B2 publication Critical patent/JP3258228B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、分散処理環境下
において相互にプロセス間通信を行いながら動作する複
数のプロセスのチェックポイントを生成するチェックポ
イント生成方法に関し、特に障害発生時にロールバック
するプロセス数を削減するための改良がなされたチェッ
クポイント生成方法に関する。
【0002】
【従来の技術】従来から、計算機上のプログラム実行の
信頼性を高める方法の一つとして、プロセスのチェック
ポイントを定期的に設け、障害発生時には、設定したチ
ェックポイント時点での状態(チェックポイント状態)
から再実行するという方法が知られている。チェックポ
イント状態とはプログラム実行中のプロセス状態であ
り、チェックポイントからの再実行を可能にするための
情報を保存したものである。
【0003】障害発生時に再実行を開始する時点をチェ
ックポイントと呼び、そのチェックポイントでチェック
ポイント状態を保存することをチェックポイント生成と
呼ぶ。
【0004】単独で動作するプログラムはそのプロセス
の途中状態のみのチェックポイント生成を行なえばよい
が、複数のプログラムがプロセス間通信を行ないながら
動作する環境下では、単一のプロセスのチェックポイン
ト生成のみでは不十分である。すなわち、プロセス間通
信によって関係ができた複数のプロセスについて、矛盾
なく再実行できるように、それらのチェックポイント生
成を行なう必要がある。以降では、各プロセス毎に生成
されるものを単にチェックポイント、関係のあるプロセ
スそれぞれのチェックポイントの集合を分散チェックポ
イントと呼ぶ。また、障害発生によりロールバックする
プロセスを故障プロセス、それ以外のプロセスを無故障
プロセスと表す。
【0005】分散環境でのプロセス間のプロセス間通信
の手段としては、メッセージ送受信、共有メモリ、ファ
イル共有等によるデータ交換がある。メッセージ送受信
はメッセージの送信側と受信側で同期してデータ交換を
行なう手段である。共有メモリは複数のプロセス間で共
有されるメモリで、各プロセスから直接読み書きを行な
うことができ、書き込みの結果は他のプロセスからも見
ることができる。また、複数のプロセス間でファイルを
共有し、ファイル上で情報交換することができる。
【0006】メッセージ送受信は同期的なプロセス間通
信であるのに対して、共有メモリやファイル共有等は非
同期的なプロセス間通信である。このようなプロセス間
通信を行なって相互に影響を及ぼしたプロセスの集合
(チェックポイントグループ)に対して分散チェックポ
イント生成を行なう必要がある。
【0007】メッセージ送受信によるプロセス間通信を
行なうプロセスの分散チェックポイント生成例を図12
に示す。図12には、3つのプロセスp1、p2、p3
がそれぞれメッセージ送受信を行ないながら処理を進め
ている場合の3種類の分散チェックポイントCH1 、C
H2 、CH3 が示されている。また、図12において、
記号mはメッセージを示し、その記号mに付けられた2
つの添字はそれぞれメッセージ送信側プロセスの番号お
よびメッセージ受信側プロセスの番号を示している。
【0008】図12(a)において、CH1 では、プロ
セスp1、p2、p3はそれぞれch11、ch12、
ch13のチェックポイント生成を行なうが、メッセー
ジm32について注目すると、ch13ではプロセスp
3はまだメッセージを送っていない状態であるにも関わ
らず、ch12ではプロセスp2はメッセージをすでに
受けた状態にある。そのため、どれかのプロセスに障害
が発生して分散チェックポイントCH1 までロールバッ
クして、再実行を行なう場合、m32に関して矛盾した
状態になる。図12(c)のCH3 に関しても、同様に
メッセージm23に関して矛盾した状態になる。
【0009】これらに対して、図12(b)のCH2 は
各メッセージに関して矛盾した状態がなく、ロールバッ
ク、再実行時にも正常にメッセージ送受信が行なわれ
る。従来の分散チェックポイント生成を行なう方式は以
下の2種類に大別できる。
【0010】1)同期型チェックポイント生成 2)非同期型チェックポイント生成 それぞれの処理の様子を図13(a)、(b)に示す。
図13(a)、(b)は3つのプロセスA、B、Cがそ
れぞれメッセージ送受信を行ないながら処理を進めてい
る場合の同期型および非同期型チェックポイント生成の
様子をそれぞれ示したものである。
【0011】同期型チェックポイント生成方式ではチェ
ックポイントグループに属するプロセス間で同期をとっ
てチェックポイント生成を行なう。すなわち、プロセス
間で同期をとってプロセス間通信に関して矛盾のない状
態にし、図13(a)のCH1 のようなチェックポイン
トを生成する。“K.M.Chandy and L.
Lamport:Distributed Snaps
hots:Determining Global S
tates of DistributedSyste
ms,ACM Trans.Computer Sys
t.,Vol.3,No.1,pp.63−75,Fe
b 1985”に開示されている方式では、分散チェッ
クポイント生成時にマーカと呼ばれるメッセージを送り
合うことで矛盾を引き起こすメッセージを検出し、それ
らを保存することで全体で一貫性のある状態をつくり、
チェックポイント生成を行なう。
【0012】また、“J.S.Plank,K.Li:
ickp:A Consistent Checkpo
inter for Multicomputers,
IEEE Parallel Distrib.Tec
hnol.,Syst.Appl.,Vol.2,N
o.2,pp.62−67,Summer 1994”
では、Chandyらが提案している方式の他に二相コ
ミットプロトコルにより同期をとってローカルチェック
ポイントを生成する方法を提案している。この方法で
は、一相目で関係しているプロセス全てを停止し、メッ
セージに関する状態がない状態にし、すべてのプロセス
のチェックポイント生成後、二相目ですべてのプロセス
の処理を再開させる。
【0013】同期型チェックポイントでは、障害発生時
にすべてのプロセスがチェックポイントからリスタート
する。図14は1つのサーバプロセスSに対して複数の
クライアントプロセスC1、C2がメッセージ送受信に
より処理要求を出すクライアント・サーバ型の処理の様
子を示したものである。各プロセスは同期型チェックポ
イントCP1を生成後、再びメッセージ通信を行ない処
理を継続する。このような場合に、F1時点でクライア
ントC1に障害が発生してCP1までロールバックする
場合、サーバSはクライアントC1との間に通信があっ
たためロールバックする。さらにサーバSと通信を行な
ったC2もCP1までロールバックしなければならな
い。通常、クライアント・サーバモデルのシステムで動
作する複数のクライアントプロセスは互いに異なるユー
ザにより使用されていることが多く、ある一人のユーザ
のクライアントの障害が他のユーザのクライアントにま
で影響を与えてしまう。
【0014】非同期型チェックポイント生成方式では図
13(b)に示すように、各プロセスの任意の時点でチ
ェックポイント生成を行なう。非同期型チェックポイン
ト生成方式を実現する方法の1つが、“R.E.Str
om ans S.Yemini:Optimisti
c Recovery in Distributed
Systems,ACM Trans.Comput
er Syst.,Vol.3,No.3,pp.20
4−228,1985”に開示されている。図13
(b)において、プロセスBに×印で示される時点で障
害が発生した場合、プロセスBはCHb までロールバッ
クする。プロセスBではメッセージm5、m6が再現さ
れる必要があるため、プロセスA、Cもそれぞれ、CH
a 、CHc までロールバックする。するとプロセスCは
m4が再現される必要があるため、プロセスBはさらに
CHb 以前のチェックポイントまでロールバックする必
要がある。このように各プロセスが連鎖的にロールバッ
クする状態をカスケードロールバックと呼ぶ。
【0015】非同期型チェックポイント生成方式では、
このカスケードロールバックを防ぐために各プロセス毎
に受信したメッセージを保存するメッセージロギングと
呼ばれる方法をとる。すなわち、図13(b)におい
て、□で示したものは保存が完了した受信メッセージで
あり、△で示したものが、まだ保存していないメッセー
ジである。図13(b)において×印で示される時点で
プロセスBに障害が発生した場合、プロセスBはCHb
からリスタートし、メッセージm5は保存されているた
め、メッセージm6を受信する前の状態まで再実行でき
るが、メッセージm6の内容は失われているため、プロ
セスCもCHc から再実行され、保存したm4を元に受
信を再実行し、m6を送信する。プロセスAに関しては
ロールバックすることなく実行を継続する。ここで、各
プロセスはリスタート後の受信処理を保存したメッセー
ジを元に行なうため、各プロセスの動作が決定的(なん
ど同じ処理を行なっても再現される)でなければならな
い。なぜなら、プロセスの動作が非決定的な場合、保存
している受信メッセージとは異なるメッセージが送信側
プロセスで生成される可能性があるためである。
【0016】同期型チェックポイント生成と非同期型チ
ェックポイント生成の両者を比較した利点/欠点を以下
に挙げる。 <<同期型チェックポイント生成>> ・リスタートポイントが容易に確定できる(○) ・各プロセスの動作が非決定的でもよい(○) ・メッセージ保存処理が不要(○) ・障害発生時にはチェックポイントグループすべてがロ
ールバック(×) <<非同期型チェックポイント生成>> ・無故障プロセスはロールバック不要な場合がある
(○) ・メッセージ保存処理が必要(×) ・各プロセスの動作は決定的でなければならない(×)
【0017】
【発明が解決しようとする課題】上述したように、相互
にプロセス間通信を行なう複数のプロセスの分散チェッ
クポイントを生成する場合、同期型チェックポイント生
成では、リスタートポイントを容易に確定できるもの
の、故障プロセスか無故障プロセスかに限らず、チェッ
クポイントグループ全体でロールバックしなければなら
ないという問題点があった。また、非同期型チェックポ
イント生成では、受信メッセージを保存しなければなら
ないという問題点や各プロセスの処理が決定的でなけれ
ばならないという問題点があった。
【0018】本発明はこのような点に鑑みてなされたも
のであり、同期型チェックポイントを利用しつつ、且つ
その欠点を補えるようにし、リスタートポイントが容易
に確定でき、各プロセスの動作が非決定的でも良く、受
信メッセージ保存処理を必要とせず、且つ無故障プロセ
スのロールバックを削減することが可能なチェックポイ
ント生成方法を提供することを目的とする。
【0019】
【課題を解決するための手段】本発明は、プロセス間通
信を行なう複数のプロセスのチェックポイントを生成す
るチェックポイント生成方法において、前記各プロセス
のプロセス間通信を監視し、分散チェックポイント生成
の対象となるプロセス間で同期して第1のチェックポイ
ントを生成し、前記各プロセス毎のタイミングでプロセ
ス毎にローカルな第2のチェックポイントを生成し、障
害発生時に、少なくともその障害が発生した故障プロセ
スに関するプロセス間通信の監視結果に応じて、前記第
1および/または第2のチェックポイントの有効性を調
べることを特徴とする。
【0020】このチェックポイント生成方法において
は、同期型チェックポイントを利用した分散チェックポ
イントとプロセス毎のローカルなチェックポイントとの
2種類のチェックポイント生成とが組み合わせられて利
用されており、各プロセスについて、第1および第2の
互いに異なるチェックポイントが生成される。
【0021】障害が発生したときには、少なくとも故障
プロセスに関するプロセス間通信の監視結果が調べら
れ、プロセス間通信の有無などに応じて第1または第2
のチェックポイントの有効性が調べられる。
【0022】ここで、チェックポイントが有効であると
は、そのプロセスがそのチェックポイントまでロールバ
ックすれば、プロセス間通信に関して全体が矛盾無くリ
スタート可能なチェックポイントであることを意味す
る。また、ここで、「そのプロセス」は1つである場合
も複数である場合もある。
【0023】したがって、例えば、故障プロセスの最も
最近のチェックポイント生成以降にその故障プロセスが
一切のプロセス間通信を行っていなければ、そのチェッ
クポイントが有効であると判断できる。この場合、故障
プロセスだけをその最も最近のチェックポイントにロー
ルバックするだけで済み、他の無故障プロセスをロール
バックする必要はない。
【0024】一方、プロセス間通信が行われていれば、
その最も最近のチェックポイントは無効と判断される。
この場合には、第1チェックポイントを全てのプロセス
のリスタートポイントとして利用することにより、カス
ケードロールバックなどの事態を招くことなく全てのプ
ロセスを矛盾無くリスタートさせることができる。
【0025】また、この発明のチェックポイント生成方
法では、前記各プロセスのプロセス間通信の監視結果に
基づいて前記各プロセス毎にプロセス間通信の履歴の管
理と、前記分散チェックポイント生成の対象となるプロ
セスそれぞれについての前記第1および第2のチェック
ポイント生成の履歴の管理とを行うことが好ましい。
【0026】この場合には、前記分散チェックポイント
生成の対象となるプロセスそれぞれのプロセス間通信お
よびチェックポイント生成の履歴に応じて、前記プロセ
スそれぞれについてロールバックすべき最適なチェック
ポイントを決定することができるので、故障プロセスの
最も最近のチェックポイントが無効であっても、全ての
プロセスを必ずしも第1チェックポイントにロールバッ
クする必要が無くなり、ロールバックするプロセスを最
小にし、且つロールバックする範囲を小さくすることが
可能となる。例えば、故障プロセスが最も最近のチェッ
クポイント生成以降に行ったプロセス間通信の影響が及
ぶ範囲の各プロセスにつき、有効性を有する第1または
第2のチェックポイントまでロールバックする。
【0027】なお、最大でも、最も最近の第1チェック
ポイントまでロールバックすれば、全てのプロセスを矛
盾無く実行させることができるので、第1チェックポイ
ントの履歴については最も最近の第1チェックポイント
だけ管理すればよい。したがって、履歴の管理が必要な
チェックポイントは、最も最近の第1チェックポイント
と、それ以降に生成された第2チェックポイントでよ
い。
【0028】
【発明の実施の形態】以下、図面を参照して、この発明
の実施形態を説明する。図1には、この発明の第1の実
施形態に係る分散チェックポイント生成方法を適用した
分散システムの機能構成が示されている。この分散シス
テムは複数の計算機から構成されており、それら計算機
は互いに協調しながら動作する。それら複数の計算機
上、またはその中の任意の1以上の計算機上では互いに
関係をもった複数のプロセスP1〜Pnが実行される。
これらプロセスP1〜Pnそれぞれの分散チェックポイ
ント生成タイミングの指定、および障害発生時における
リスタート時点の決定は、プロセス管理部Mによって行
われる。
【0029】このプロセス管理部Mは、例えばこの分散
システムのオペレーティングシステム、またはオペレー
ティングシステムとは独立した専用のプロセスとして実
現されるものであり、プロセスP1〜Pn間のチェック
ポイントグループに関する関係を管理し、障害時にどの
プロセスがどのチェックポイントからリスタートするか
を決定するチェックポイント管理部101と、チェック
ポイントグループに対して、同期したチェックポイント
生成を指示するグローバルチェックポイント指示部10
2を備えている。
【0030】プロセスP1〜Pnは、互いにプロセス間
通信を行いながら動作する。これら各プロセスは、チェ
ックポイント生成制御のための機能として、グローバル
チェックポイント生成部201、ローカルチェックポイ
ント生成部202、および通信監視部203を備えてい
る。
【0031】これらグローバルチェックポイント生成部
201、ローカルチェックポイント生成部202、およ
び通信監視部203がプログラムにリンクするライブラ
リとして実現されている。
【0032】グローバルチェックポイント生成部201
は、グローバルチェックポイント指示部102からの同
期型チェックポイント生成指示に応答して、プロセス間
通信に関して矛盾のない同期型チェックポイント(以
下、グローバルチェックポイントと称する)を生成す
る。また、ローカルチェックポイント生成部202は、
同期型チェックポイントの生成タイミングとは無関係
に、その対応するプロセス固有のタイミングでメッセー
ジロギングを伴わないチェックポイント(以下、ローカ
ルチェックポイントと称する)を生成する。ローカルチ
ェックポイントは、グローバルチェックポイント生成の
間の任意の時点で少なくとも1つのローカルチェックポ
イントが生成されるように、グローバルチェックポイン
ト生成の間隔よりも短い間隔で生成される。また、グロ
ーバルチェックポイントの間隔とは無関係に、プロセス
間通信などのイベント発生状況を生成条件としてローカ
ルチェックポイントを生成してもよい。
【0033】通信監視部203は、対応するプロセスと
他のプロセスとの間のプロセス間通信を監視し、プロセ
ス間通信の発生をチェックポイント管理部101に通知
する。
【0034】チェックポイント管理部101はどのプロ
セスが同一のチェックポイントグループに属するかを管
理し、グローバルチェックポイント指示部102は、チ
ェックポイント管理部101のチェックポイントグルー
プ情報を元に、任意の間隔で同期型チェックポイントの
生成指示を繰り返し出す。各プロセスP1〜Pnでは、
グローバルチェックポイント指示部101からの指示に
より、グローバルチェックポイント生成部201でグロ
ーバルチェックポイントが生成され、またローカルチェ
ックポイント生成部202によりグローバルチェックポ
イント生成の間の任意の時点でローカルチェックポイン
トの生成が行われる。
【0035】これら2種類のチェックポイント生成部2
01,202は、チェックポイント生成後、その旨をチ
ェックポイント管理部101および通信監視部203に
通知する。通信監視部203は、対応するプロセスが通
信を行なう場合に、それがローカルチェックポイント生
成部202およびグローバルチェックポイント生成部2
01からの生成通知後の最初の通信であれば、その旨を
チェックポイント管理部101に通知する。
【0036】チェックポイント管理部101は障害発生
時には、故障プロセスが最も最近のチェックポイント生
成後にプロセス間通信を行なったかどうかを調べ、プロ
セス間通信を行なっていれば、チェックポイントグルー
プ全体を最も最近生成したグローバルチェックポイント
にロールバックさせてそこからリスタートさせる。ま
た、通信を行なっていなければ、故障プロセスのみを最
新のローカルまたはグローバルチェックポイントにロー
ルバックさせてそこからリスタートさせる。
【0037】このように、グローバルチェックポイント
とローカルチェックポイントとの2種類のチェックポイ
ント生成を組合せ、故障プロセスのプロセス間通信状態
に応じて各プロセスのリスタート時点が決定される。
【0038】したがって、故障プロセスか無故障プロセ
スかに限らずチェックポイントグループ全体でロールバ
ックしなければならないという従来の同期型チェックポ
イント生成と比較した場合には、故障プロセスが最も最
近のチェックポイント以降にプロセス間通信を行なって
いなければ、他の無故障プロセスは一切ロールバックす
る必要がないので、無故障プロセスのロールバックを抑
制することが出来る。また、従来の非同期型チェックポ
イント生成と比較した場合、メッセージロギングを行な
わないため、プロセスの処理は非決定的でよく、さらに
グローバルチェックポイントによりロールバックポイン
トが保証されているため、カスケードロールバックの発
生も抑制できる。
【0039】また、図1のグローバルチェックポイント
生成部201、ローカルチェックポイント生成部20
2、および通信監視部203は、図2および図3にそれ
ぞれ示すように、専用の状態監視プロセスやオペレーテ
ィングシステム内の機能として実現することもできる。
【0040】図2において、状態監視プロセスは各計算
機上に1つずつ存在し、同一計算機上のプロセスの状態
を監視する。また、計算機の構成に関わらず、1つの状
態監視プロセスで、任意の計算機上の複数のプロセスの
状態を監視しても良い。
【0041】図3においては、グローバルチェックポイ
ント生成部201、ローカルチェックポイント生成部2
02、および通信監視部203はオペレーティングシス
テム内に実現されているが、これらはオペレーティング
システムのコードの一部として実現することもできる
し、マイクロカーネル形式のオペレーティングシステム
においてはサーバプロセスとして実現することもでき
る。さらに、新たな機能をモジュールとして実行時に組
み込み可能なオペレーティングシステムにおいては、こ
れらをモジュールとして実現することができる。
【0042】次に図4〜図8を参照して、プロセス管理
部Mおよび各プロセスP1〜Pnの動作を説明する。図
4はチェックポイント管理部101内のチェックポイン
トグループ情報および障害発生時の処理のフローチャー
トを表したものである。図5、図6、図7、図8はそれ
ぞれ、グローバルチェックポイント指示部102、グロ
ーバルチェックポイント生成部201、ローカルチェッ
クポイント生成部202、通信監視部203の処理の手
順を表したフローチャートである。
【0043】チェックポイント管理部101は、例えば
図4(a)に示すようなチェックポイントグループテー
ブルを用いて、どのプロセスが同じチェックポイントグ
ループに属するかを管理する。図4(a)では、チェッ
クポイントグループ1には、計算機A上のプロセスID
が100,89のプロセスと、計算機B上のプロセスI
Dが102のプロセスと、計算機C上のプロセスIDが
154のプロセスとが属している。また、チェックポイ
ントグループ2には、計算機A上のプロセスIDが19
3,200のプロセスと、計算機B上のプロセスIDが
200のプロセスと、計算機C上のプロセスIDが10
1のプロセスとが属している。
【0044】図4(b)のフローチャートに示されてい
るように、チェックポイント管理部101は、プロセス
に障害が発生した場合、その故障プロセスの最も最近の
チェックポイント生成以降に通信が行なわれているかど
うかを調べ(ステップS101)、通信が行なわれてい
れば、故障プロセスが属するチェックポイントグループ
全体を最近のグローバルチェックポイントからリスター
トさせ(ステップS102)、通信を行なっていなけれ
ば、故障プロセスのみをそのチェックポイントからリス
タートさせる(ステップS103)。
【0045】図5のフローチャートに示されているよう
に、グローバルチェックポイント指示部102は任意の
時間経過やユーザからの指示を待機後(ステップS20
1)、チェックポイント管理部101からチェックポイ
ントグループ情報を獲得し(ステップS202)、同一
グループに属する各プロセスのチェックポイント生成を
指示し、再び任意の時間経過やユーザからの指示を待機
する(ステップ201)。
【0046】図6のフローチャートに示されているよう
に、グローバルチェックポイント生成部201はグロー
バルチェックポイント指示部102からの指示を待機
し、その指示が来た時にチェックポイント生成を行なう
(ステップS301、S302)。そして、チェックポ
イント生成を完了した旨をチェックポイント管理部10
1および通信監視部203に通知する(ステップS30
3、S304)。
【0047】図7のフローチャートに示されているよう
に、ローカルチェックポイント生成部202は、任意の
時間経過後、グローバルチェックポイント生成中かどう
かをグローバルチェックポイント生成部201に問い合
わせ(ステップS401、S402)、生成中ならば再
びS401に戻って任意の時間経過を待つ。生成中でな
ければ、チェックポイントを生成し(ステップS40
3)、生成した旨をチェックポイント管理部および通信
監視部に通知する(ステップS404、S405)。
【0048】図8のフローチャートに示されているよう
に、通信監視部203はプロセスの通信を監視し、それ
がチェックポイント生成後の最初の通信であれば(ステ
ップS601、S602)、その旨をチェックポイント
管理部に通知する(ステップS603)。
【0049】図9は前述のプロセスP1〜Pnの中の5
つのプロセス、プロセスP1、P2、P3、P4、P5
がプロセス間通信を行なっている場合の、チェックポイ
ント生成の様子を示した図である。
【0050】以下、この図9を参照して、実施形態1の
動作を具体的に説明する。図9では、各プロセスのグロ
ーバルチェックポイントGC1、GC2の間に各プロセ
ス毎のタイミングでローカルチェックポイントを生成し
ている。すなわち、グローバルチェックポイントGC
1、GC2間において、プロセスP1についてはローカ
ルチェックポイントca1、ca2、ca3が生成さ
れ、プロセスP2についてはローカルチェックポイント
cb1、cb2が生成され、プロセスP3についてはロ
ーカルチェックポイントcc1、cc2が生成され、プ
ロセスP4についてはローカルチェックポイントcd
1、cd2が生成され、プロセスP5については、ロー
カルチェックポイントce1、ce2、ce3が生成さ
れている。
【0051】F4時点でプロセスP3に障害が発生した
場合、ローカルチェックポイントcc2以降に通信を行
なっていないため、その故障プロセスP3のみがcc2
にロールバックされ、そこからリスタートする。F2時
点でプロセスP2に障害が発生した場合、cb1生成
後、プロセスP1との間でプロセス間通信を行なってい
るため、cb1は有効でなく、全てのプロセスP1〜P
5がGC1からリスタートする。F3、F5時点の障害
もF2の場合と同様に、チェックポイントグループ全体
がGC1からリスタートする。F1時点でプロセスP1
に障害が発生した場合、プロセスAはGC1生成後に通
信を行なっていないため、単独でGC1からリスタート
する。
【0052】次に、この発明の第2実施形態を説明す
る。ここでは、通信監視部203とチェックポイント管
理部101の機能だけが実施形態1と異なっており、他
の点は全て実施形態1と同じである。
【0053】すなわち、実施形態2においては、通信監
視部203はチェックポイント生成後の最初の通信だけ
でなく、すべての通信が行なわれる場合にその旨を逐次
チェックポイント管理部101に通知する。チェックポ
イント管理部101は通信監視部203、グローバルチ
ェックポイント生成部201、ローカルチェックポイン
ト生成部202からの通知を元に各プロセス毎にグロー
バルチェックポイント間での通信およびローカルチェッ
クポイント生成の履歴を保存および管理し、障害発生時
には、保存した履歴を元に、ロールバック対象のプロセ
スおよびそれらプロセス毎にロールバックすべき最適な
チェックポイントを決定する。
【0054】実施形態2によれば、ローカルチェックポ
イント生成の後に通信を行なった場合でも、故障プロセ
スおよび無故障プロセスそれぞれのロールバックを最小
限に抑え、しかも、もっとも最近の有効なチェックポイ
ントを定められるため、ロールバックにより処理がさか
のぼる区間を短くできる。
【0055】以下、図9の例に基づいて具体的な動作を
説明する。図10は、図9のような処理を行なった場合
にチェックポイントグループ管理部101で保存した各
プロセスの履歴(グローバルチェックポイント、ローカ
ルチェックポイント、プロセス間通信)の内容を示した
ものである。メッセージを送信した場合は、 s(メッセージ番号:送信先) 受信した場合は、 r(メッセージ番号:送信元) と表している。
【0056】図11は、図10のような各プロセスの履
歴を元に各プロセスのリスタートポイントを求める処理
のフローチャートを示したものである。図11(a)に
示すように、チェックポイント管理部101は、まず、
各プロセスのリスタートポイントを格納する変数res
tartを初期化し(ステップS701)、各プロセス
の障害発生時の最後のイベントをchk−evに格納す
る(ステップS702)。chk−evは、各プロセス
のイベントをチェックするときの最後のイベントとして
使用される。
【0057】次いで、故障プロセスの最後のイベントが
チェックポイント生成か否かを調べる(ステップS70
3)、故障プロセスの最後のイベントがチェックポイン
ト生成であるならば、故障プロセスの最も最近のチェッ
クポイント生成以降に通信が行なわれていない事になる
ので、ステップS704にてrestart[故障プロ
セス]をその最新のチェックポイントに設定して終了す
る(実施形態1と同じ)。そうでないならば、故障プロ
セスの最後のイベントと、故障プロセスのプロセスID
(PID)を指定して、関数searchを呼び出す
(ステップS705)。
【0058】図11(b)に示すように、関数sear
chでは最初に通信相手のプロセスをチェックしたかど
うかを記録する変数checkを初期化し(ステップS
801)、パラメタで指定されたst−evから最も最
近のチェックポイントを探し、そのチェックポイント
を、restart[Pid]にセットする(ステップ
S802)。次にPidで指定された履歴のresta
rt[Pid]からchk−evまでの各通信イベント
について以下の処理(ステップS803〜S807)を
行なう。
【0059】・check[通信相手]=0ならば、ま
だ通信相手をチェックしていないため、通信相手の対応
したイベントと通信相手を指定して関数searchを
再帰的に呼び出しチェックを行なった後、check
[通信相手]=1とし、次のイベントを調べる。
【0060】・check[通信相手]=1ならばすで
に通信相手を調べているため、次のイベントを調べる。 ・イベントがst−evの場合はスキップする。
【0061】以上の処理を行なうことより、各プロセス
のリスタートポイントを求めることができる。なお、上
記のアルゴリズムで、変数checkは関数searc
h内のローカル変数であり、変数restartは大域
変数である。
【0062】図9のF5時点で障害が発生した場合を例
に、上記の処理の主要部を具体的に説明する。 restart[P1…P5]=0 chk−ev={ca1,cb1,r(m7:P4),s(m10:P5), r(m10:P4)} search(“s(m10:P5)”,P4) restart[P4]=chk−ev[P4]=cd1 (s(m7:P3)をチェック) search(“r(m7:P4)”、P3) restart[P3]=chk−ev[P3]=cc1 (s(m4:P2)をチェック) search(“r(m4:P3)”、P2) restart[P2]=chk−ev[P2]=GC1 (s(m4:P3)をチェック) search(“r(m3:P2)”、P3) restart[P3]=chk−ev[P3] =GC1 return return return (s(m10:P5)をチェック) search(“r(m10:P4)”,P5) restart[P5]=chk−ev[P5]=ce1 return return すなわち、まず変数リスタートを初期化し(resta
rt[P1…P5]=0)、その後、各プロセスP1〜
P5の障害発生時の最後のイベントをchk−evに格
納した後、故障プロセスP4についての障害発生時点F
5以前の最後のイベントとその故障プロセスのプロセス
IDをパラメタとして関数Searchを実行する(s
earch(“s(m10:P5)”,P4))。そし
て、restart[P4]=chk−ev[P4]=
cd1にセットした後、メッセージm7についての通信
相手であるプロセスP3の対応するイベント(r(m
7:P4))とそのプロセスP3のプロセスID(P
3)をパラメタとして関数Searchを再帰的に呼び
出す(search(“r(m7:P4)”、P3)。
【0063】そして、プロセスP3がm7を受けとった
時点から最も最近のチェックポイント(cc1)をre
start[P3]とchk−ev[P3]にセットす
る(restart[P3]=chk−ev[P3]=
cc1)。
【0064】次いで、cc1からプロセスP3の最後の
イベントであるm7の受信までの間のイベントのなか
で、未チェックのメッセージm4について、その通信相
手であるプロセスP2の対応するイベント(r(m4:
P3))とそのプロセスP2のプロセスID(P2)を
パラメタとして関数Searchを再帰的に呼び出す
(search(“r(m4:P3)”、P2))。そ
して、プロセスP2がm4を受けとった時点から最も最
近のチェックポイント(GC1)をrestart[P
2]とchk−ev[P2]にセットする(resta
rt[P2]=chk−ev[P2]=GC1)。
【0065】次いで、GC1からプロセスP2の最後の
イベントであるcb1までに行われたイベントであり、
且つ未チェックのイベントであるメッセージm3につい
て、その通信相手であるプロセスP3の対応するイベン
ト(“r(m3:P2))とそのプロセスP3のプロセ
スID(P3)をパラメタとして関数Searchを再
帰的に呼び出す(search(“r(m3:P
2)”、P3))。そして、プロセスP3がm3を受け
とった時点から最も最近のチェックポイント(GC1)
をrestart[P3]とchk−ev[P3]にセ
ットする(restart[P3]=chk−ev[P
3]=GC1)。
【0066】以上で、故障プロセスP4に関するメッセ
ージm7についてのチェック処理が全て終了し、次にメ
ッセージm10についてのチェック処理が行われる。こ
こでは、メッセージm10について、その通信相手であ
るプロセスP5の対応するイベント(“r(m10:P
4))とそのプロセスP5のプロセスID(P5)をパ
ラメタとして関数Searchを再帰的に呼び出す(s
earch(“r(m10:P4)”,P5))。そし
て、プロセスP5がm10を受けとった時点から最も最
近のチェックポイント(ce1)をrestart[P
5]とchk−ev[P5]にセットする(resta
rt[P5]=chk−ev[P5]=ce1)。プロ
セスP5は、最後のイベントがm10であるので、これ
以上のチェックは行われない。
【0067】このようにして、故障プロセスが最も最近
のチェックポイント生成以降に行ったプロセス間通信の
影響が及ぶ範囲の各プロセスについて、それら各プロセ
スが行った故障発生時の最後の通信イベントまでが順に
調べられる。
【0068】上記の処理により、プロセスP1、P2、
P3、P4、P5のリスタートポイントは(0、GC
1、GC1、cd1、ce1)となる。すなわち、F5
でプロセスP4に障害が発生した場合、プロセスP1は
ロールバックせず、プロセスP2、P3、P4、P5は
それぞれGC1、GC1、cd1、ce1からリスター
トする。
【0069】以上のように、この第2実施形態において
は、分散チェックポイント生成の対象となるプロセスP
1からP5それぞれのプロセス間通信およびチェックポ
イント生成の履歴を用いて、故障プロセスが最も最近の
チェックポイント生成以降に行ったプロセス間通信の影
響が及ぶ範囲の各プロセスについて、それら各プロセス
が行った故障発生時の最後の通信イベントまでを順に調
べることにより有効性を有するチェックポイントを決定
しているので、プロセスそれぞれについてロールバック
すべき最適なチェックポイントを決定することができ
る。よって、故障プロセスの最も最近のチェックポイン
トが無効であっても、全てのプロセスを必ずしもグロー
バルチェックポイントまでロールバックする必要が無く
なり、ロールバックするプロセスを最小にし、且つロー
ルバックする範囲を小さくすることが可能となる。
【0070】
【発明の効果】以上説明したように、本発明によれば、
リスタートポイントが容易に確定でき、各プロセスの動
作が非決定的でも良く、受信メッセージ保存処理を必要
とせず、無故障プロセスのロールバックを削減すること
を可能にするチェックポイント生成方法が実現される。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るチェックポイント
生成方法を実現するためのシステム構成を示すブロック
図。
【図2】本発明の第1実施形態に係るチェックポイント
生成方法を実現するための第2のシステム構成を示すブ
ロック図。
【図3】本発明の第1実施形態に係るチェックポイント
生成方法を実現するための第3のシステム構成を示すブ
ロック図。
【図4】同第1実施形態のシステムに設けられているチ
ェックポイント管理部によって管理されるチェックポイ
ントグループ情報と障害時の処理手順を示す図。
【図5】同第1実施形態のシステムに設けられているグ
ローバルチェックポイント指示部の処理手順を示すフロ
ーチャート。
【図6】同第1実施形態のシステムに設けられているグ
ローバルチェックポイント生成部の処理手順を示すフロ
ーチャート。
【図7】同第1実施形態のシステムに設けられているロ
ーカルチェックポイント生成部の処理手順を示すフロー
チャート。
【図8】同第1実施形態のシステムに設けられている通
信監視部の処理手順を示すフローチャート。
【図9】同第1実施形態のシステムのチェックポイント
生成方法の適用例を示す図。
【図10】本発明の第2実施形態に係るチェックポイン
ト生成方法を実現するために使用されるチェックポイン
ト管理部で管理されるプロセス履歴を表した図。
【図11】同第2実施形態におけるチェックポイント管
理部のリスタートポイント決定処理の手順を示すフロー
チャート。
【図12】従来のシステムにおける分散チェックポイン
ト生成例を示す図。
【図13】従来のシステムにおける同期型チェックポイ
ント生成処理と非同期型チェックポイント生成処理を説
明するための図。
【図14】従来の非同期型チェックポイント生成処理の
適用例を示す図。
【符号の説明】
M…プロセス管理部、P1〜P5…プロセス、101…
チェックポイント管理部、102…グローバルチェック
ポイント指示部、201…グローバルチェックポイント
生成部、202…ローカルチェックポイント生成部、2
03…通信監視部。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−113805(JP,A) 特開 昭61−296461(JP,A) 特開 平2−287858(JP,A) 特開 平9−138754(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/34 G06F 9/46 330 G06F 11/30 320

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセス間通信を行なう複数のプロセス
    のチェックポイントを生成するチェックポイント生成方
    法において、 前記各プロセスのプロセス間通信を監視し、 分散チェックポイント生成の対象となるプロセス間で同
    期して第1のチェックポイントを生成し、 前記各プロセス毎のタイミングでプロセス毎にローカル
    な第2のチェックポイントを生成し、 障害発生時に、少なくともその障害が発生した故障プロ
    セスに関するプロセス間通信の監視結果に応じて、前記
    第1および/または第2のチェックポイントの有効性を
    調べることを特徴とするチェックポイント生成方法。
  2. 【請求項2】 前記各プロセスのプロセス間通信を監視
    では、前記各プロセスについて、前記第1または第2の
    最も最近のチェックポイントの生成以降にプロセス間通
    信が行われたか否かが監視され、 前記故障プロセスについて、前記第1または第2の最も
    最近のチェックポイントの生成以降にプロセス間通信を
    行ったか否かにより、前記最も最近のチェックポイント
    の有効性を調べることを特徴とする請求項1記載のチェ
    ックポイント生成方法。
  3. 【請求項3】 前記最も最近のチェックポイントの生成
    以降に前記故障プロセスがプロセス間通信を行ってない
    と判断したとき、前記故障プロセスのみを、前記最も最
    近のチェックポイントにロールバックさせることを特徴
    とする請求項2記載のチェックポイント生成方法。
  4. 【請求項4】 前記最も最近のチェックポイントの生成
    以降に前記故障プロセスがプロセス間通信を行っている
    と判断したとき、前記分散チェックポイント生成の対象
    となるプロセスそれぞれを前記第1のチェックポイント
    にロールバックさせることを特徴とする請求項2記載の
    チェックポイント生成方法。
  5. 【請求項5】 前記各プロセスのプロセス間通信の監視
    結果に基づいて前記各プロセス毎にプロセス間通信の履
    歴を管理し、 前記分散チェックポイント生成の対象となるプロセスそ
    れぞれについての前記第1および第2のチェックポイン
    ト生成の履歴を管理し、 前記障害発生時に、前記分散チェックポイント生成の対
    象となるプロセスそれぞれのプロセス間通信およびチェ
    ックポイント生成の履歴に応じて、前記プロセスそれぞ
    れについてロールバックの必要性およびロールバックす
    べき最適なチェックポイントを決定することを特徴とす
    る請求項1記載のチェックポイント生成方法。
  6. 【請求項6】 前記各プロセスのプロセス間通信の監視
    結果に基づいて前記各プロセス毎にプロセス間通信の履
    歴を管理し、 前記分散チェックポイント生成の対象となるプロセスそ
    れぞれについての前記第1および第2のチェックポイン
    ト生成の履歴を管理し、 前記障害発生時に、前記故障プロセスについて、前記第
    1または第2の最も最近のチェックポイントの生成以降
    にプロセス間通信を行ったか否かを前記故障プロセスに
    関するプロセス間通信の履歴に応じて判断し、前記最も
    最近のチェックポイントの生成以降に前記故障プロセス
    がプロセス間通信を行ってないとき、前記故障プロセス
    のみを、前記最も最近のチェックポイントにロールバッ
    クさせ、 前記最も最近のチェックポイントの生成以降に前記故障
    プロセスがプロセス間通信を行っているとき、前記分散
    チェックポイント生成の対象となるプロセスそれぞれの
    プロセス間通信およびチェックポイント生成の履歴に応
    じて、ロールバックが必要なプロセス、およびそのプロ
    セスがロールバックすべき最適なチェックポイントを決
    定することを特徴とする請求項1記載のチェックポイン
    ト生成方法。
  7. 【請求項7】 分散チェックポイント生成の対象となる
    複数のプロセス間で同期をとってプロセス間通信に関し
    て矛盾のない状態のリスタートが可能な同期型チェック
    ポイントを生成し、 前記プロセス毎のタイミングでプロセス毎にローカルな
    チェックポイントを生成し、 前記複数のプロセスそれぞれについて、前記同期型チェ
    ックポイントまたは前記ローカルチェックポイントの生
    成後におけるプロセス間通信の有無を監視し、 障害発生時に、その障害が発生された故障プロセスにつ
    いて、最も最近の前記同期型チェックポイントまたは前
    記ローカルチェックポイントの生成以後にプロセス間通
    信が行なわれたか否かを検出し、 プロセス間通信が行なわれていない場合は、前記故障プ
    ロセスについてのみ前記最も最近のチェックポイントに
    ロールバックし、プロセス間通信が行なわれていた場合
    は、前記複数のプロセスそれぞれを前記同期型チェック
    ポイントにロールバックすることを特徴とするチェック
    ポイント生成方法。
  8. 【請求項8】 分散チェックポイント生成の対象となる
    複数のプロセス間で同期をとってプロセス間通信に関し
    て矛盾のない状態のリスタートが可能な同期型チェック
    ポイントを生成し、 前記プロセス毎のタイミングでプロセス毎にローカルな
    チェックポイントを生成し、 前記複数のプロセスそれぞれについてプロセス間通信の
    履歴を管理し、 前記複数のプロセスそれぞれについての前記同期型チェ
    ックポイントおよびローカルチェックポイント生成の履
    歴を管理し、 障害発生時に、その障害が発生された故障プロセスにつ
    いて、最も最近の前記同期型チェックポイントまたは前
    記ローカルチェックポイントの生成以後にプロセス間通
    信が行なわれたか否かを、前記故障プロセスの通信履歴
    に基づいて検出し、 プロセス間通信が行なわれていない場合は、前記故障プ
    ロセスについてのみ前記最も最近のチェックポイントに
    ロールバックし、 プロセス間通信が行なわれていた場合は、前記複数のプ
    ロセスそれぞれのプロセス間通信およびチェックポイン
    ト生成の履歴に応じて、前記プロセスそれぞれについて
    ロールバックの必要性およびロールバックすべき最適な
    チェックポイントを決定することを特徴とするチェック
    ポイント生成方法。
JP05918896A 1996-03-15 1996-03-15 チェックポイント生成方法 Expired - Fee Related JP3258228B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP05918896A JP3258228B2 (ja) 1996-03-15 1996-03-15 チェックポイント生成方法
US08/818,979 US5923832A (en) 1996-03-15 1997-03-14 Method and apparatus for checkpointing in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05918896A JP3258228B2 (ja) 1996-03-15 1996-03-15 チェックポイント生成方法

Publications (2)

Publication Number Publication Date
JPH09251404A JPH09251404A (ja) 1997-09-22
JP3258228B2 true JP3258228B2 (ja) 2002-02-18

Family

ID=13106197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05918896A Expired - Fee Related JP3258228B2 (ja) 1996-03-15 1996-03-15 チェックポイント生成方法

Country Status (2)

Country Link
US (1) US5923832A (ja)
JP (1) JP3258228B2 (ja)

Families Citing this family (70)

* 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 株式会社東芝 プロセスリスタート方法及びプロセス監視装置
US6192391B1 (en) * 1997-05-30 2001-02-20 Nec Corporation Process stop method and apparatus for a distributed memory multi-processor system
US6065137A (en) * 1998-04-06 2000-05-16 Hewlett-Packard Company Network analyzer measurement method using adaptive signal processing
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6345282B1 (en) * 1999-09-30 2002-02-05 Nortel Networks Limited Multi-processor data synchronization method and apparatus
KR20010037622A (ko) * 1999-10-19 2001-05-15 정선종 분산 시스템에서 메모리 체크포인트를 이용한 독립 체크포인팅 방법
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US7526560B1 (en) 2000-03-30 2009-04-28 Oracle International Corporation Method and apparatus for sharing a secure connection between a client and multiple server nodes
US6874138B1 (en) * 2000-11-28 2005-03-29 Hewlett-Packard Development Company, L.P. Method and apparatus for resuming execution of a failed computer program
US20020112196A1 (en) * 2001-01-11 2002-08-15 Utpal Datta Distributed processing and criteria-based dynamic modification of data-flow map
JP4242155B2 (ja) * 2001-03-07 2009-03-18 オラクル・インターナショナル・コーポレイション 永続的記憶装置へのダーティデータ項目の書込を調整するための方法、当該方法をコンピュータに行なわせるためのプログラムを格納したコンピュータ読出可能な媒体、および、永続的記憶装置へのダーティデータ項目の書込を調整するための装置
US8423674B2 (en) * 2001-06-02 2013-04-16 Ericsson Ab Method and apparatus for process sync restart
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7703097B2 (en) * 2002-11-15 2010-04-20 International Business Machines Corporation Auto-commit processing in an IMS batch application
US7340741B2 (en) * 2003-02-28 2008-03-04 International Business Machines Corporation Auto-restart processing in an IMS batch application
US8181162B2 (en) * 2004-06-14 2012-05-15 Alcatel Lucent Manager component for checkpoint procedures
US7873941B2 (en) * 2004-06-14 2011-01-18 Alcatel-Lucent Usa Inc. Manager component that causes first software component to obtain information from second software component
US7386752B1 (en) * 2004-06-30 2008-06-10 Symantec Operating Corporation Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
US7290166B2 (en) * 2004-07-28 2007-10-30 Intel Corporation Rollback of data
DE102004037713A1 (de) * 2004-08-04 2006-03-16 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
JP4773715B2 (ja) * 2004-12-01 2011-09-14 富士通株式会社 チェックポイント取得方法
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US7467325B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US20060184771A1 (en) * 2005-02-11 2006-08-17 International Business Machines Mini-refresh processor recovery as bug workaround method using existing recovery hardware
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US7516361B2 (en) * 2005-06-27 2009-04-07 Sun Microsystems, Inc. Method for automatic checkpoint of system and application software
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070028144A1 (en) * 2005-07-29 2007-02-01 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US20070168720A1 (en) * 2005-11-30 2007-07-19 Oracle International Corporation Method and apparatus for providing fault tolerance in a collaboration environment
KR100833681B1 (ko) * 2005-12-08 2008-05-29 한국전자통신연구원 커밋 프로토콜을 이용한 병행 프로세스 메모리 관리 시스템및 관리 방법
US20070174695A1 (en) * 2006-01-18 2007-07-26 Srinidhi Varadarajan Log-based rollback-recovery
US20070174484A1 (en) * 2006-01-23 2007-07-26 Stratus Technologies Bermuda Ltd. Apparatus and method for high performance checkpointing and rollback of network operations
EP2050013A4 (en) 2006-08-10 2010-01-06 Ab Initio Software Llc DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS
JP5595633B2 (ja) * 2007-02-26 2014-09-24 スパンション エルエルシー シミュレーション方法及びシミュレーション装置
KR101758670B1 (ko) 2007-07-26 2017-07-18 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
KR20150038758A (ko) * 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US8307243B2 (en) * 2010-02-01 2012-11-06 International Business Machines Corporation Parallel debugging in a massively parallel computing system
US8719432B1 (en) 2010-04-30 2014-05-06 Amazon Technologies, Inc. System and method for determining staleness of data received from a distributed lock manager
US8458517B1 (en) * 2010-04-30 2013-06-04 Amazon Technologies, Inc. System and method for checkpointing state in a distributed system
US8654650B1 (en) 2010-04-30 2014-02-18 Amazon Technologies, Inc. System and method for determining node staleness in a distributed system
EP2583168B1 (en) 2010-06-15 2017-11-08 Ab Initio Technology LLC Dynamically loading graph-based computations
US8694639B1 (en) 2010-09-21 2014-04-08 Amazon Technologies, Inc. Determining maximum amount of resource allowed to be allocated to client in distributed system
FR2968422B1 (fr) * 2010-12-01 2013-07-19 Commissariat Energie Atomique Procédé et dispositif de fiabilisation d'un système multi-processeur par pointage hybride
TWI537828B (zh) * 2010-12-21 2016-06-11 萬國商業機器公司 虛擬機管理的方法及其電腦系統之裝置和電腦程式
US9063790B2 (en) 2011-06-13 2015-06-23 Accenture Global Services Limited System and method for performing distributed parallel processing tasks in a spot market
US9098439B2 (en) 2012-01-05 2015-08-04 International Business Machines Corporation Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs
US10630566B1 (en) 2012-06-20 2020-04-21 Amazon Technologies, Inc. Tightly-coupled external cluster monitoring
US10191959B1 (en) 2012-06-20 2019-01-29 Amazon Technologies, Inc. Versioned read-only snapshots of shared state in distributed computing environments
US9578130B1 (en) 2012-06-20 2017-02-21 Amazon Technologies, Inc. Asynchronous and idempotent distributed lock interfaces
US10754710B1 (en) 2012-06-20 2020-08-25 Amazon Technologies, Inc. Transactional watch mechanism
US9632828B1 (en) 2012-09-24 2017-04-25 Amazon Technologies, Inc. Computing and tracking client staleness using transaction responses
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US9553951B1 (en) 2013-04-24 2017-01-24 Amazon Technologies, Inc. Semaphores in distributed computing environments
WO2015085152A1 (en) 2013-12-05 2015-06-11 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
WO2015102873A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
US9760442B2 (en) 2013-12-30 2017-09-12 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
EP3090336A1 (en) 2013-12-30 2016-11-09 Paul A. Leveille Checkpointing systems and methods of using data forwarding
US9760529B1 (en) 2014-09-17 2017-09-12 Amazon Technologies, Inc. Distributed state manager bootstrapping
US9959238B1 (en) * 2014-12-23 2018-05-01 EMC IP Holding Company LLC Message passing among interdependent parallel processes using a shared memory
US9852221B1 (en) 2015-03-26 2017-12-26 Amazon Technologies, Inc. Distributed state manager jury selection
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
AU2016377516B2 (en) 2015-12-21 2020-01-30 Ab Initio Technology Llc Sub-graph interface generation
US10168941B2 (en) * 2016-02-19 2019-01-01 International Business Machines Corporation Historical state snapshot construction over temporally evolving data
CN108604205B (zh) * 2016-12-08 2021-02-12 华为技术有限公司 测试点的创建方法,装置和系统
US10552274B1 (en) * 2017-08-03 2020-02-04 EMC IP Holding Company LLC Asynchronous in-memory data checkpointing for distributed computing systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
JPS61296461A (ja) * 1985-06-25 1986-12-27 Nec Corp オンラインジヨブ間のメツセ−ジ保証方式
JPH01113805A (ja) * 1987-10-28 1989-05-02 Toshiba Corp トランザクション管理方式
JPH02287858A (ja) * 1989-04-28 1990-11-27 Toshiba Corp 分散処理システムのリスタート方式
US5271013A (en) * 1990-05-09 1993-12-14 Unisys Corporation Fault tolerant computer system
US5293613A (en) * 1991-08-29 1994-03-08 International Business Machines Corporation Recovery control register
US5440726A (en) * 1994-06-22 1995-08-08 At&T Corp. Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US5590277A (en) * 1994-06-22 1996-12-31 Lucent Technologies Inc. Progressive retry method and apparatus for software failure recovery in multi-process message-passing applications
US5734817A (en) * 1995-03-01 1998-03-31 Unisys Corporation Method for making a data base available to a user program during data base recovery
JP3154942B2 (ja) * 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
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
JPH09251404A (ja) 1997-09-22
US5923832A (en) 1999-07-13

Similar Documents

Publication Publication Date Title
JP3258228B2 (ja) チェックポイント生成方法
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
JP3154942B2 (ja) 分散チェックポイント生成方法および同方法が適用される計算機システム
US6574749B1 (en) Reliable distributed shared memory
US7802128B2 (en) Method to avoid continuous application failovers in a cluster
EP1617331B1 (en) Efficient changing of replica sets in distributed fault-tolerant computing system
US6332200B1 (en) Capturing and identifying a complete and consistent set of checkpoint files
US6823474B2 (en) Method and system for providing cluster replicated checkpoint services
US7392433B2 (en) Method and system for deciding when to checkpoint an application based on risk analysis
EP0481231B1 (en) A method and system for increasing the operational availability of a system of computer programs operating in a distributed system of computers
US6748381B1 (en) Apparatus and method for maintaining consistency of shared data resources in a cluster environment
CN101136728A (zh) 群集系统和用于备份群集系统中的副本的方法
JPH10214199A (ja) プロセスリスタート方法およびプロセスリスタートを実現するためのシステム
WO2000026782A1 (en) File server system
EP2224341B1 (en) Node system, server switching method, server device, and data transfer method
CN106452836B (zh) 主节点设置方法及装置
CN105069152B (zh) 数据处理方法及装置
US7516181B1 (en) Technique for project partitioning in a cluster of servers
CN111966467B (zh) 基于kubernetes容器平台灾备的方法及装置
CN107729515B (zh) 一种数据同步的方法、装置及存储介质
Cao et al. Checkpointing and rollback of wide-area distributed applications using mobile agents
Singh et al. Antecedence graph approach to checkpointing for fault tolerance in mobile agent systems
CN115292408A (zh) MySQL数据库的主从同步方法、装置、设备及介质
KR101430570B1 (ko) 분산 컴퓨팅 시스템 및 상기 분산 컴퓨팅 시스템에서의 장애 복구 방법
WO2003054711A1 (en) A system and method for management of a storage area network

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071207

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees