[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2002505768A - 計算の状態を再構成する方法ならびにシステム - Google Patents

計算の状態を再構成する方法ならびにシステム

Info

Publication number
JP2002505768A
JP2002505768A JP52221797A JP52221797A JP2002505768A JP 2002505768 A JP2002505768 A JP 2002505768A JP 52221797 A JP52221797 A JP 52221797A JP 52221797 A JP52221797 A JP 52221797A JP 2002505768 A JP2002505768 A JP 2002505768A
Authority
JP
Japan
Prior art keywords
execution
application
program
failure
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP52221797A
Other languages
English (en)
Other versions
JP3573463B2 (ja
Inventor
スタンフィル,クレッグ
レッサー,クリフ
ローディ,ロバート
Original Assignee
エービー イニティオ ソフトウェア コーポレーション
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 エービー イニティオ ソフトウェア コーポレーション filed Critical エービー イニティオ ソフトウェア コーポレーション
Publication of JP2002505768A publication Critical patent/JP2002505768A/ja
Application granted granted Critical
Publication of JP3573463B2 publication Critical patent/JP3573463B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1474Saving, restoring, recovering or retrying in transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Gyroscopes (AREA)
  • Auxiliary Devices For Music (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
  • Electrotherapy Devices (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 システムで使用されたプログラムを修正する必要も基礎オペレーティングシステムに変更を加える必要もない並列および分散式アプリケーションを実行しチェックポインティングを実行する方法とシステムを提供する。本発明の1つの実施例は、以下に示す概略工程から成る。並列処理システムにおいてアプリケーションを開始する工程(40)、複数のコマンドと応答の記録などアプリケーションの複数プロセスを制御する工程(41,42,43)、アプリケーションの障害を検出する工程(45,46)、記録されたコマンドと応答を「再生」した後で最近コミットされたトランザクションからアプリケーションの実行を継続する工程(47)である。

Description

【発明の詳細な説明】 発明の名称 計算の状態を再構成する方法ならびにシステム 発明の背景 1. 発明の分野 本発明はコンピュータ処理システムに関し、なかでも、並列処理コンピュータ 環境において割り込まれた計算の状態を再構成する方法とシステムに関する。 2. 関連技術の説明 単一プロセッサ式コンピュータの計算速度は過去30年にわたって飛躍的に速 くなった。しかし、多くの分野で、最速の単一プロセッサ式コンピュータをも越 える計算容量が要求されている。一例がトランザクション処理で挙げられる。こ の分野では、複数のユーザが同時にコンピュータ資源にアクセスしており、シス テムが市場で受け入れられるには応答時間が短くなければならない。データベー ス検索で他の例が見いだせる。この分野では、数百ギガバイトの情報を処理せね ばならず、直列式コンピュータでデータを処理すると数日または数週間かかる。 したがって、こうした問題を処理するために多様な「並列処理」システムが開発 されてきた。この説明のために、並列処理システムには、複数の中央演算処理装 置(CPU)を用いたコンピュータシステム構成が含まれている。こうしたコン ピュータシステムには、構内型(たとえば、SMPコンピュータなどのマルチプ ロセッサシステム)、構内分散型(たとえばクラスタまたはMPP(高度並列計 算機)として接続された複数のプロセッサ)、または遠隔型、または遠隔分散型 (たとえば、LANまたはWANネットワークを介して接続された複数のプロセ ッサ)が挙げられる。 並列処理システムで動作する複数の複雑なデータ処理アプリケーションは通常 、様々な外部のデータ収集(ファイル、データベースなど)に変更を加える。こ うしたアプリケーションは、1つまたは複数のプログラムを同時または連続して 動作させることで変更を加える。障害が発生すると、外部のデータ収集に部分的 な変更を加える。このため現行または他のアプリケーションではデータが使用で きなくなる。並列処理システムでは、データ収集がしばしば様々なノードや記憶 装置(たとえば、磁気ディスク)にわたって拡がっているので問題が複雑になり 、データの状態を「元に戻す(ロールバック(roll back))」のに必要な仕事 は記憶装置の数に比例して増加する。同様に、終了しなければならないプログラ ムの数も増大する。 こうした障害から回復するためには、現行の(すなわち、障害のある)アプリ ケーションを閉じて、 (1)開始時からそのアプリケーションにより加えられたすべての変更を元に 戻す(「完全な復帰」)または (2)システムの状態を中間の「チェックポイント」まで回復して、その点か ら実行を再起動する(「部分復帰」) チェックポイントからの部分原状復帰(「チェックポインティング」としても 知られている)は完全原状復帰より有益である。というのは、障害が発生しても 喪失する仕事が少ないし、部分復帰では保持する情報は少なくてすむからである 。しかし、チェックポインティングは複雑な技術的問題である。というのは、( 1)実行中のプログラムの状態を捕捉することと、(2)修正中のすべてのデー タファイルの状態を一貫して元に戻すことと、(3)プログラム間で移送される データ(たとえば、ネットワークを介して送られるデータ)を捕捉することが困 難なためである。アプリケーションプログラムはチェックポインティングを実行 するために特に書き込まなければならないことが多いことにより問題はいっそう 複雑になる。一般に、チェックポインティング動作がチェックポインティングソ フトウェアプログラムに明示呼出しを追加するときには必ずプログラムのソース コードを実質的に変えることになるように作成されているプログラムを修正する ことはできない。さらに、大半のオペレーティングシステムはプログラム間移送 データを捕捉する手段を備えてはいない。 したがって、特にチェックポインティングを備えてないアプリケーションにチ ェックポインティングを備える方法が必要である。本発明は、並列処理システム において実行中のアプリケーションに特に有益で、分散処理システムにおいて実 行中のアプリケーションでも有益なこうした方法を提供するものである。 発明の要約 本発明は、システムで使用されるプログラムを修正する必要もなく、基本オペ レーティングシステムを変更する必要もない並列および分散アプリケーションを 実行しチェックポイントまで戻す方法とシステムである。本発明には、2つの個 別の実施例が含まれる。第1の好ましい実施例は以下の概略工程を含む。 (1)並列処理システム上でアプリケーションを起動する。 (2)複数のコマンドおよび応答の記録を含むアプリケーションの処理を制御す る。 (3)コミット規約を制御する。 (4)アプリケーションの障害を検出する。 (5)記録されたコマンドおよび応答を「再生した」後で最近にコミットされた トランザクションからアプリケーションの実行を継続する。 第2の好ましい実施例は以下の概略工程を含む。 (1)並列処理システム上でアプリケーションを起動する。 (2)アプリケーションを制御するドライバプログラムのメモリイメージの再帰 記録を含むアプリケーションの処理を制御する。 (3)コミット規約を制御する。 (4)アプリケーションの障害を検出する。 (5)ドライバアプリケーションの記録メモリイメージを「再生した」後で最近 コミットされたトランザクションからアプリケーションの実行を続ける。 進歩的アーキテクチャの主要な特色は以下の通りである。 (1)中央制御:複数のアプリケーションを制御の中心点から実行する。好まし い実施例では、単一の制御スレッドを備えた単一「ドライバ」プログラムが、ア プリケーションを形成するすべてのプログラムとデータ収集をインスタンス生成 し監視する。 (2)ホストおよびエージェントを介した制御:複数のノード上で処理を分散さ せるために、「エージェント」と呼ばれるプログラムがリモートノードで変更を 実行するために使用される。好ましい実施例では、個々のエージェントが各ノー ドでインスタンス生成される。システムの全体制御は「上位」プログラムにより 維持される。このプログラムは、ドライバプログラムとエージェントを介した通 信を管理して、グローバルシステム状態を維持する。 (3)単一コマンドチャンネル:「コマンドチャンネル」はドライバプログラム とホストプログラム間で維持される。好ましい実施例では、ドライバプログラム が、一連のコマンドと応答を介してのみシステムに変更を加える。 (4)コマンドチャンネルの通信量またはメモリイメージの記録:第1実施例で は、コマンドチャンネルを介して送られるコマンドと応答のすべてはホストプロ グラムにより記録され、不揮発性記憶装置に保存される。第2実施例では、アプ リケーションを制御するドライバプログラムのメモリイメージは、ホストプログ ラムにより再帰的に記録され、不揮発性記憶装置に保存される。 (5)トランザクション準拠制御:好ましい実施例では、コマンドチャンネルを 介して実行された動作のすべては、グローバルアトミシティを確保するためにコ ミット規約(好ましくは、2相コミット規約)を使用する。 (6)反復による回復:上記のメカニズムを用いて、本発明は、障害のあるアプ リケーションを、単純に再実行することで「回復」する機能を備えている。要約 すると、すべてのデータの状態をコミット規約を介して回復して、コマンドチャ ンネル上の記録された通信量が、ドライバプログラムを「だまして」、ドライバ プログラムが新しいアプリケーションを実行していると信じさせるか、またはド ライバプログラムの最後の良好な状態のメモリイメージを回復する。単一スレッ ド式コンピュータプログラムの決定論的な特質のために、ドライバプログラムは 、最後の良好な状態の時点では、プログラムが実行された最初の時と同じ状態で 、終了されなければならない。 本発明は主に、従来のデータ処理アプリケーション(たとえば、アカウントシ ステム、バッチトランザクションシステムなど)に用いられるが、本発明は、フ ァイルまたはデータベースに変更を加える大半のコンピュータアプリケーション に適用可能である。 本発明の好ましい実施例の詳細は、添付図面ならびに以下の説明に詳述される 。本発明の詳細が分かると、付随する多くの新規技術や変更が当業者には明らか になるであろう。 図面の簡単な説明 図1は、本発明によるチェックポインティングシステムのソフトウェア構成要 素と制御の流れを示す構成図である。 図2Aは、本発明によるチェックポイントされたプログラムの通常の実行を示 す構成図である。 図2Bは、図2Aのチェックポイントされたプログラムの実行中の障害を示す 構成図である。 図2Cは、図2Bの障害からの回復を示す構成図である。 図3は、本発明による障害からの回復中のチェックポインティングシステムの ソフトウェア構成要素と制御の流れを示す構成図である。 図4は、本発明の反復実施例の基本的な機能動作を要約して示す流れ図である 。 図5は、本発明の回復実施例の基本的な機能動作を要約して示す流れ図である 。 上記様々な図面の同じ参照番号と指示は同じ要素を示している。 発明の詳細な説明 本説明を通して、図示の好ましい実施例と例は、本発明を制限するものではな く例示するものとして考慮すべきである。 概観 図1は、本発明によるチェックポインティングシステムのソフトウェア構成要 素と制御の流れを示す構成図である。ホストシステム10は、ホストプログラム 12と、ドライバプログラム14と、コマンドと応答を記録するデータ記憶シス テム16とを備える。ホストプログラム12とドライバプログラム14はコマン ドチャンネル18(たとえば、物理的バス上の論理チャンネル)により相互接続 される。好ましい実施例では、ホストプログラム12は実際は、ドライバプログ ラム14のアドレス空間内のオブジェクトである。ホストプログラムを実行する 個別プロセスを代りに実行することもできる。ただし、「ホストプログラム」と 「ドライバプログラム」への分割は、本発明のアーキテクチャを記載する便宜的 な方法である。 ホストシステム10は、エージェント通信チャンネル22(たとえば、従来の 物理的データリンク22)により少なくとも1つのリモートシステム20に接続 されている。各リモートシステム20内には、リモートデータ記憶装置26に接 続されたエージェント24がある。 図1に示す構成要素すべてが通常の実行中には動作中である。ドライバプログ ラム14は複数のコマンドをホストプログラム12に発行して、様々なリモート システム20上のアプリケーションの動作を実行する。ホストプログラム12は 、複数のコマンドを1つまたは複数のエージェント24に発行して要求された動 作を実行することでこうしたコマンドに応答する。動作が完了するとエージェン ト24はホストプログラム12に戻り、次に、ホストプログラム12はドライバ プログラム14に戻る。ドライバプログラム14とホストプログラム12の間の コマンドと応答のすべてはデータ記憶システム16に記録される。 図2Aは、本発明によるチェックポイントされたシステムの通常の実行を示す 。図示の例では、アプリケーションは3つの段階で実行される、初期状態0で始 まり、段階0を介してチェックポイント1状態に進み、段階1を介してチェック ポイント2状態に進み、段階2を介して最終状態に進む。 図2Bは、図2Aのチェックポイントされたプログラムの実行中に障害を示す 構成図である。例えばノードの1つが「クラッシュ」して、再起動しなければな らない場合には障害が発生する場合がある。図示の例では、チェックポイント1 状態に到達した後で、しばしば、障害が発生する。段階1の真ん中で実行が停止 し、並列処理システムの外部状態が不本意な障害状態になる。 図2Cは、本発明を用いて図2Bに示す障害からの回復を示す構成図である。 アプリケーションが再実行されることで回復されると、障害段階1で実行された 動作が元に戻り、処理システムの外部状態をチェックポイント1状態の状態に戻 す。すべての完了段階(この例では、段階0)は「反復」または「回復」される 。反復では、ドライバプログラム14はその初期状態から再起動され、通常に機 能する。しかし、ドライバプログラム14はチェックポイント1状態にある同じ 状態に到達するまでは外部状態変化は発生しない。回復においては、ドライバプ ログラム14の保存イメージが回復され、その点から通常に機能する。その後、 障害段階(この例では段階1)ならびにその後のすべての段階が通常に実行され て、チェックポイント2の状態を介して最終状態に至るまでアプリケーションが 実行される。 図3は、反復中の本発明によるチェックポインティングシステムのアーキテク チャを示す構成図である。反復モード中には、ドライバプログラム14は初期状 態から開始する。ドライバプログラム14からの各コマンドはホストプログラム 12に再発行される。ホストプログラム12は、そのコマンドを、データ記憶シ ステム16に以前記憶された記録コマンドおよび応答と突き合わせる。ドライバ プログラム14からのコマンド列が記録コマンドと一致している限り、対応する 記録応答がホストプログラム12によりドライバプログラム14に送られる。実 際には、ドライバプログラム14を「だまして」、反復中の複数段階が通常に実 行中であると思わせる。しかし、データは実際には変形されたり、移動されたり することはない。したがって、反復段階は、ドライバプログラム14が最後の良 好なチェックポイント状態に到達するまで、極めて迅速に遂行される。このチェ ックポイントで、ホストプログラム12は、反復モードから切り替えられて、通 常の動作モードに戻されて、ドライバプログラム14からのコマンドをリモート システム20のエージェント24に通常の方式で供給する。 本発明は、ハードウェアまたはソフトウェアまたは両者の組合せにより実施可 能である。しかし、好ましくは、本発明は、プロセッサ、データ記憶システム( 揮発性メモリおよび不揮発性メモリおよび/または記憶要素を含む)、少なくと も1台の入力装置、および少なくとも1台の出力装置とをそれぞれ含む複数台の プログラム式コンピュータで実行されるコンピュータプログラムで実施される。 プログラムコードは、入力データに適用されて、本明細書に記載の機能を実行し 、出力情報を生成する。出力情報は、周知の方式で、1つまたは複数の出力装置 に送られる。 各プログラムは、コンピュータシステムとやり取りするために高レベル手続き 形プログラミング言語またはオブジェクト指向プログラミング言語で実施される のが好ましい。しかし、望ましければ、アセンブリー言語または機械言語で実施 することも可能である。いかなる場合でも、言語はコンパイル済みまたは翻訳済 み言語である。 こうしたコンピュータプログラムはそれぞれ、汎用または特定目的プログラム 式コンピュータにより読み取り可能なそれぞれ記憶媒体または装置(たとえば、 ROMまたは磁気ディスク)に記憶されるのが好ましく、記憶媒体または装置が コンピュータにより読み取られるとコンピュータが構成され動作して、本明細書 に記載された処理手順を実行する。本発明のシステムは、コンピュータプログラ ムで構成されるコンピュータ読取可能な記憶媒体として実施することも可能であ る。この場合、このように構成された記憶媒体によりコンピュータは特定かつ事 前定義方式で動作して、本明細書に記載された機能を実行する。 ドライバプログラム 本発明は、1つまたは複数の従来の非チェックポインティングプログラムの実 行をセットアップし制御する監視機能を備えたドライバプログラム14を使用す る。望まれれば追加機能も加えられる。好ましい実施例では、ドライバプログラ ム14は少なくとも以下に定義した機能を実行する。 (a)起動ジョブ:ドライバプログラム14が起動するときに、プログラム14 は、ホストシステム10がホストプログラム12をインスタント生成するよう要 請する。ホストシステム10は、ホストプログラム12およびデータ記憶システ ム16とやり取りをするために、コマンドチャンネル18の識別子またはポイン タをドライバプログラム14に備えることで応答する。ドライバプログラム14 は、コマンドチャンネル18を介してホストプログラム12に接続され、「開始 ジョブ」コマンドをホストプログラム12に発行する。このコマンドは、データ 記憶システム16にホストシステム10により確立される「回復ファイル」の名 前を含む。(実施例によっては、「接続」は個別のプロセスの開始を要求するも のもあり、内部データ構造の初期化を要求するものもある。どちらの場合でも、 第1動作は常に上記のジョブを開始することである。 (b)コマンド:コマンドチャンネル18は少なくとも以下のコマンドをドライ バプログラム14から受け取る。 (1)遠隔手続呼出し:この呼出しによりコマンドがリモートエージェント2 4により実行される。遠隔手続呼出し(RPC)コマンドは、コマンドが実行さ れるノードを指定する。そのノードで現在実行中のエージェントがない場合、ホ ストプログラム12はそのノードでリモートエージェント24を起動する。 (2)開始プロセス:このコマンドによりプロセスがエージェント24により 起動される。再び、このコマンドはプロセスが実行されるノードを指定する。そ のノードに現在実行中のエージェントがない場合、ホストプログラム12はその ノードでリモートエージェント24を起動する。 (3)待機:このコマンドは、すべてのプロセスが実行を終えるまでドライバ プログラム14の機能実行を中止させる。 (4)準備:コミット:ロールバック:これら3つのコマンドは、従来の2相 コミットトランザクション処理プロトコルに関して通常の従来技術の意味である 。 (c)応答の受信:各コマンドの実行の結果、正確に1つのメッセージが返され る。コマンドおよび応答は恣意的に混合できる(たとえば、複数のコマンドを発 行して、その後対応する応答が返ってくる。)ドライバプログラム14はホスト プログラム12から少なくとも以下に示す応答を受け取る。 (1)遠隔手順呼出し応答:このメッセージの内容は、RPCコマンドにより 引き起こされた処理手順にのみ対応する。 (2)プロセスID:プロセスがシステム(ホスト10またはリモート20) で実行されると、システムはそのプロセス用の識別子で応答する。 (3)待機状況:様々なプロセスが首尾よく終了したかどうかについての指示 。 (4)準備/コミット/ロールバック状況:成功または失敗状況指標。 (d)中止:このコマンドは実行が停止されることを意味する。ホストプログラ ム12はロールバックの実行を企てる(たとえば、計算に関わるノードの1つが クラッシュするとこの企ては失敗することがある)。ロールバックが成功しても しなくても、コマンドチャンネル18は通常壊される。中止コマンドは、たとえ ば、ドライバプログラム14が実行障害を検出するとドライバプログラム14に より手動で発行される。中止コマンドは、ドライバプログラム14に障害が発生 すると暗示的に発行される場合もある。 (e)ジョブ終了:このコマンドは実行する仕事が残ってないことを示す。コマ ンドチャンネル18は通常壊され、アプリケーションにより成された変更はすべ て取り消せなくなる。 (f)追加コマンド:追加コマンドは望ましければ追加可能であるが、本開示の ためには重要ではない。 重要なことは、ドライバプログラム14がアプリケーションの実行を一連の「 段階」に分割して、すべてのプロセスが段階の間で静止するよう要求される(た とえば、未実行のデータ転送を残してないアイドル状態からの脱出またはその状 態への到達)。段階は以下に示す工程から構成される。 (1)ドライバプログラム14は一連のRPC(たとえば、データファイルなど のセットアップ)を発行する。これら一連のRPCは1つまたは複数のアプリケ ーションプログラムにより必要とされる。 (2)オプションとして、ドライバプログラム14は一連の起動プロセスコマン ドを発行する。 (3)任意のプロセスが起動した場合、望ましい数のプロセスが起動した後で、 ドライバプログラム14は待機コマンドを発行して、待機が完了するまで動作を 中止して、プロセスが完了する時間を確保する。一般に、他のプロセスと相互交 信する必要のあるすべてのプロセスは同時に開始されるべきである。 (4)工程(1)−(3)のシーケンスは望まれれば数回繰り返すことができる 。 (5)ドライバプログラム14は準備およびコミットコマンドを発行して、現ト ランザクションがコミットされ、現トランザクション中に成された変更を永続的 なものにする。 (6)更なる実行段階が続く。 主要な工程は、再帰的に待機コマンドを発行している。というのはこのコマン ドが終了した後で、このシステムには活動状態のアプリケーションプログラムが ないことと、通信チャンネルに移送データがないことが保証されるからである。 この特徴により本発明は、プログラムの実行状態と通信チャンネルの移送データ を捕捉する際の固有の困難に対処できる。 こうした設計の結果、プログラムの実行中にはチェックポイントは作成されな い。アプリケーションプログラムの1つが数時間実行されている場合、チェック ポイントを作成できない数時間の期間が必要となる。任意の段階の実行時間が過 剰にならないように保証するのはドライバプログラム14の責任である。このド ライバプログラム14はこのシステムのユーザによりしばしば書き込まれるもの である。 段階の持続時間を削減するのに使用できる従来の2つの技術がある。第1の技 術は、1段階内の処理の連続工程の間で「パイプライン化」の使用を削減するこ とである。特に、通常の実施では、通信チャンネルを介して構成プログラムを連 結することでこれらの構成プログラムからアプリケーションを構成する。これは 「パイプライン」と呼ばれる技術である。両構成プログラムは同じ段階で実行さ れなければならない。この結果、段階が長くなりすぎる場合には、ドライバのラ イターが一次ファイルを通信チャンネルと代替することができ、個々の実行段階 で各構成プログラムを実行できる。第2技術は、データをいっそう細かく分割す ることである。たとえば、10ギガバイトの単一ファイルを処理しないで、それ ぞれ1ギガバイトの10のサブファイルに分割し、単一実行段階で各サブファイ ルを処理することもできる。大半のアプリケーションの実行時間はそれらの入力 ファイルの長さにほぼ比例しているという事実のために、この方法は、たとえば 、段階の持続時間を10分の1に減らすことができ、チェックポイントが作成で きる周波数をいっそう改良する。(従来技術では、この追加部分分割が特別に実 施され、通常はプログラムの修正と、おそらく追加ソフトウェアの書込が必要と なる。本発明の譲渡人に譲渡された「構成要素準拠並列アプリケーションのチェ ックポイントを増加させる分割増加システムならびに方法(Overpartitioning S ystem and Method for Increasing Checkpoints in Component-based Parallel Applications)」の名称の共同出願を参照のこと。一般的な方法では、元のプロ グラムを修正することなく部分分割が実行できると説明されている。) 状態データベース(SDB) ホストシステム10はそれ自体のために状態データベース(「ホストSDB」 )を作成する。各エージェント24はそれ自体の状態データベース(「エージェ ントSDB」)も作成する。ホストSDBは、本発明の反復実施例を使用すると きにコマンドチャンネル通信量を記録し、どの段階が実行中かを記録し、コミッ ト処理のために必要な情報を記録するのに使用される。エージェントSDBは、 回復処理およびコミット処理のための情報を記録するのに使用される。好ましい 実施例では、SDBは、SDBにアクセスするプログラムの寿命の間だけメモリ にある。しかし、SDBへの変更すべてが、データ記憶システム16など不揮発 性記憶機構の順序づけられたジャーナルファイル(「ログ」)に連続して記録さ れる。任意の時点で、SDBは対応するログからメモリに再構成可能である。好 ましい実施例では、ログはSDBに関連する唯一の一貫した記録機構である。S DBの再構成は空のデータベースから始まりログからデータベースへの一連の変 更を読み取り、メモリ内データベース内容の変更を反映させることにより実行さ れる。 好ましい実施例では、SDBへの入力はすべてテキスト列の対、キーと値の形 である。入力(「Put」)を書き込むと、呼出しプログラムが、データベースに 記憶されているキー/値入力を供給する。put動作の前に同一のキーをもつ入力 がある場合、それは置換される。入力(「Get」)を読み取ると、呼出しプログ ラムはキーを供給し、そのキーをもつ入力がある場合、その値列が戻される。さ らに、好ましい実施例では、SDBインターフェースはリストの作成が可能であ る。リストは、キーによるのではなく連続してアクセス可能な入力の連続である 。リスト入力は通常の列値である。 ユーザは、ログファイルの名前を付与することでSDBを「開く」。ログファ イルがある場合、それが読み取られ、対応するSDBがログ内容から再構成され る。ログファイルが存在しない場合、ログファイルが作成され、SDBは空のデ ータ構造としてメモリに作成される。次いで、SDBは、それが閉じられるまで PutおよびGet動作を利用可能である。データベースの閉鎖は、閉鎖動作を用いれ ば明示的に実行され、アクセスプログラムが終了すると暗示的に実行される。 好ましい実施例では、SDB上のすべての動作が「トランザクション」に分類 される。GetまたはPutは、進行中のトランザクションがない場合新しいトランザ クションを起動する。トランザクションは、以後のPutsまたはGetsを通して以下 のようになるまで継続する。 (1)SDBコミット動作が実行されるまで。 (2)SDBロールバック動作が実行されるまで。この動作はSDB上の全トラ ンザクションの効果を無効にする。 (3)SDBが閉鎖されるまで。この場合には判明している最後の良好な状態ま で任意の活動中のトランザクションを暗示的に戻す。 好ましい実施例では、SDB上のトランザクションは全体的なコミットアーキ テクチャの一部ではなく、いっそう細かく細分できる。 ホストプログラム ドライバプログラム14がジョブを始めると、ホストシステム10はコマンド チャンネル18を作成して、ドライバプログラム14とホストプログラム12の 間でデータのやり取りを可能にする。ホストプログラム12は、コマンドチャン ネル18のホストシステム10の端末でデータを処理する。各アプリケーション 当たりのホストプログラム12が1つある。ホストプログラム12は以下のよう に動作する。 (a)ジョブの開始:好ましい実施例では、以下の機能がアプリケーションの始 めにホストプログラム12により実行される。 (1)ジョブID:ホストプログラム12は、ホストプログラム12が実行中 のシステムのインターネットアドレスを用いて「ジョブID」と呼ばれる固有識 別子と、タイムスタンプと、ホストプログラム12のプロセスIDを作成する。 (2)ホストSDB:ホストプログラム12は、ジョブIDを識別子として使 用することでホストSDBを作成する。好ましい実施例では、ジョブIDはホス トSDBに記憶される。 (3)回復ファイル:ホストプログラム12はその実行の開始時に「回復ファ イル」と呼ばれるファイルをデータ記憶システム16にも書き込む。このファイ ルはジョブIDも含んでいる。このジョブIDはホストSDBを開くために使用 される。 (b)リモートノードおよびエージェント:ホストプログラム12は複数のプロ セスを開始させ、1つまたは複数のエージェント24を介してファイル/データ ベース上で動作する。各エージェント24はホストプログラムとの双方向に接続 (エージェントコマンドチャンネル22)を確立して、コマンドをエージェント 24に送信し、エージェント24から応答を受けとる。エージェント24は、ア プリケーションプログラムが実行されるかまたはファイルまたは他のデータ収集 が配置されている各リモートシステム20で起動する。好ましい実施例では、複 数のエージェント24が、アプリケーションの開始時に一度にすべてが起動せず に、必要に応じて起動される。 (c)段階の実行:ホストプログラム12は複数のエージェント24を使用して 、ドライバプログラム14により指示された通りに、非チェックポインティング アプリケーションの実行を複数段階に分割する。ホストプログラム12は、この 分割を実施するトランザクションメカニズムを制御し、以下に記載のように簿記 および調整機能を実行する。 好ましい実施例では、各段階はゼロから番号が振られる。1つの段階は常に4 つの状態「実行中、エラー、準備完了またはコミット中」の1つである。新しい 段階が始まると、それは実行状態である。遠隔動作がその段階中に実行されてい るのでこの段階は実行状態で継続する。 現在の段階番号とその状態はホストSDBに記録されている。この情報はあら ゆる状態遷移で記録される。段階中の任意の時点で、ドライバプログラム14は ロールバック機能を呼び出すことができる。この機能により現段階中にこれまで 実行されたすべての動作の実行が無効になり、すべての変更された状態が段階の 開始時の状態まで戻され、その段階を実行状態にする。 各段階中に、実行状態の間、ドライバプログラム14が開始プロセスおよび遠 隔処理手順呼出し(RPC)コマンドをホストプログラム12に発行する。ホス トプログラム12はこうしたコマンドを適切なエージェント24に送り、各エー ジェント24からの応答をまとめて、その応答をドライバプログラム14に送る 。本発明の反復実施例では、こうしたコマンドと対応する応答のすべてがホスト SDBに記録されている。この情報は、以下に記載したように「反復モード」で 使用される。 ドライバプログラム14により起動されたプロセスすべてが終了すると、ドラ イバプログラム14は準備機能を呼び出して、アプリケーションの現段階を準備 完了状態にする。この後で、ドライバプログラム14はコミット機能を呼び出す 。この機能は段階中に実行された動作すべてを完全、正確かつ改変不能に実行し て、この段階を終える。ロールバック機能は準備完了状態でも呼び出せ、準備機 能の前に呼びだされたのと同じ効果をもたらすことができる。 本発明の好ましい実施例は従来の2相コミットプロトコルを使用する。好まし い反復実施例では、2相コミットプロトコルは以下のようなものである。 (1)準備:準備コマンドは以下の動作によりホストプログラム12により実行 される。 l)現段階番号を含むキーにより、ホストSDBの現段階から記録されたコマ ンドチャンネルデータを記憶する。こうした情報がすでにある場合には(たとえ ば、コミット処理中に障害が発生した同じ段階の前の実行によるもの)、重ね書 きされる。 2)現段階中に複数のコマンドを実行した各エージェント24にホストプログ ラム12から準備コマンドを送る。各エージェントは、従来の2相コミット規約 に応じて、以後の任意の時点で、エージェント24の制御下ですべての資源の状 態を回復するロールバックコマンドを実行するかまたは、エージェント24の制 御下ですべての資源の変更を永続的なものにするコミットコマンドを実行するよ うに、準備完了状態を入力する。この準備完了状態は持続可能でなければならな い。すなわち、システム障害の後で準備完了状態を再構成し、ロールバックまた はコミット動作を実行することが可能でなければならない。準備完了状態に達す ると、各エージェント24は、準備コマンドに応答することでこのことを知らせ ることになる。 3)すべてのエージェント24は準備コマンドが首尾よく完了したことを示す まで待機する。 4)ホストプログラム12の状態を準備完了状態に設定し、ホストSDBの変 更を通知する。 (2)コミット:コミットコマンドは以下のようにして実行される。 1)ホストプログラム12の状態をコミット状態に設定し、ホストSDBの変 更を通知する。 2)段階中に複数のコマンドを実行した各エージェント24にコミットコマン ドを送る。次に、各エージェント24は、その制御下にあるすべての資源に加え られた変更が永続的になり、ロールバック時に必要とされたかもしれない情報を 除去する。こうした処理が完了すると、各エージェント24は、コミットコマン ドに応答することによりこのことを合図する。 3)すべてのエージェント24はコミットコマンドが首尾よく完了したことを 示すまで待機する。 4)ホストプログラム12の状態を実行状態に設定し、段階番号を増分し、ホ ストSDBの変更を通知する。 実行状態または準備完了状態中に、エラー状態がオペレーティングシステムま たはアプリケーションにより検出される場合には、その段階はエラー状態となる 。好ましい実施例では、この状態の間には、さらに遠隔動作を実行することはで きないし、段階の状態を変更することもできないし、新しい段階を開始すること もできない。好ましい実施例では、この時点での規約による動作は以下のものだ けである。 (1)デバッギング:ドライバプログラム14は、周知の方式で、複数の通報コ マンドを使用して、アプリケーションをデバッグしたり、さらに/または診断情 報を収集することができる。 (2)イグジット(退出):ドライバプログラム14が出ていくと、ホストプロ グラム12は、ドライバプログラム14に代わってロールバックコマンドを発行 できる。 (3)ロールバック:ドライバプログラム14はロールバックコマンドを発行で きる。このコマンドは、現段階の開始時の状態にシステムを戻し、上記のように ファイル/データベースに加えられた変更を元に戻す。 要約すると、ホストプログラム12の規約状態変化は以下の通りである。 (1)初期状態:実行中 (2)コミット状態以外の任意の状態においては、エラー条件によりエラー状態 に遷移する。ロールバックコマンドによりまたはドライバプログラム14が出た 場合にはこの状態から脱出できる。このロールバックコマンドによりシステムは 実行状態になる。 (3)実行状態では、準備動作により準備完了状態に遷移する。実行状態または 準備完了状態中に、ロールバック動作により段階が元に戻され、その場合には段 階番号は同じであり、システムは実行状態に戻る。 (4)準備完了状態では、コミット動作によりコミット状態に遷移される。この 状態はコミット動作の持続中続き、段階番号を進め、現段階を終了し、実行状態 の新しい段階を始める。一旦ホストSDBがコミット状態への遷移を記録すると 、エラーの検出によりシステムは打ち切られる。システムが再起動すると、コミ ット動作が完了する。コミット状態中にはロールバックは不可能である。 アプリケーションの全段階を完了(コミット)すると、ドライバプログラム1 4は閉鎖コマンドを発行する。このコマンドはアプリケーションが首尾よく完了 したことを示している。この動作は回復ファイルとホストSDBを除去する。 本発明の回復実施例では、処理手順は同様であるが、例外点がいくつかある。 第1に、コマンドと応答がホストSDBに記憶されない。逆に、準備コマンドが ドライバプログラム14により発行されホストプログラム12と複数のエージェ ント24により実行されると、ドライバプログラム14のメモリイメージファイ ルが、周知の方式で、ディスクドライブなどの不揮発性記憶機構に記憶されるの が好ましい。メモリイメージは、ドライバプログラム14の(交換ファイル等を 含む)アドレス空間全体、またはドライバプログラム14の保存状態を再創造す るのに必要な(ドライバプログラム14の特定の実施用のプログラマにより決定 された)ドライバプログラム14の臨界データ構造だけを含む。(たとえば、メ モリのプログラム静止画を記憶されているイメージファイルと比較することによ り)ホストプログラム12およびデータ記憶システム16とやり取りをするため に、メモリイメージファイルの書込みが確認されシステムが準備完了状態に入る と、コミットコマンドは、上記のように、ドライバプログラム14により発行さ れホストプログラム12と複数のエージェント24により実行される。好ましい 実施例では、以前のメモリイメージファイルが削除する前に(すなわち、「A」 と「B」コピーが周知の方式で維持される)次のメモリイメージファイルが書き 込まれ確認される。以前のメモリイメージファイルは、コミット動作が完了しな ければ削除されない。 (d)回復:閉鎖動作を実行することなく終了したアプリケーションは障害が発 生したと考えられる。アプリケーションが再起動されると、回復を起動する。好 ましい実施例では、ホストプログラム12が開始するときは常に、ホストプログ ラム12は回復ファイルがあるかどうかを検査する。好ましい実施例では、ファ イルがあると、ホストプログラム12は、前の障害が発生したと仮定して、前の ジョブを再度開始しようとする。 回復の第1工程は、すべてのファイルとデータベースをそれらの最近コミット した状態に回復することである。ホストSDBが実行、エラーまたは準備完了の 状態を指示する場合、ホストプログラム12はロールバックコマンドを発行し、 すべてのコミットされていない動作を周知の方式で元に戻す。ホストSDBがコ ミット状態を示す場合、ホストプログラム12はコミットコマンドを再発行し、 割り込まれたコミット動作であるのが明らかな動作を完了する。 本発明の反復実施例では、ホストプログラム12は反復モードを入力する。上 記したように、ドライバプログラム14は、適切な段階番号を含むキーを用いて 、単一コマンドチャンネル18を介してシステムの残りと相互に作用する。その 通信量はコミット処理中にホストSDBに自動的に記憶される。段階を反復する ときには、ホストプログラム12はホストSDBから保存されたコマンドチャン ネル通信量を検索することにより開始する。反復のために、ドライバプログラム 14はその初期状態から再起動され、通常に機能する。反復期間中に、ドライバ プログラム14により送られたすべてのコマンドがホストプログラム12により 捨てられる。(安全のために、記録されたコマンドメッセージ通信量とそれらの コマンドを比較した後に行われる。ただし、これはオプションである。)ドライ バプログラム14がコマンドチャンネル18を介して応答メッセージを受け取ろ うとするときは常に、データ記憶システム16に記録された到来応答通信量から ホストプログラム12により応答が取り出され、即座にドライバプログラム14 に送られる。単一スレッド式コンピュータプログラムの決定特性のために、この プロセスの結果、ドライバプログラム14は障害のある実行中に行われたのと同 じコマンド列を実行する。制御されたアプリケーションプログラムは以前の実行 で実行されたのと同じ状態で終了することになる。 すべてのコミットされた段階からの記録されたコマンドチャンネル通信量が再 生されると、以下のことが保証される。 (1)ドライバプログラム14が、最近のコミット動作までその状態を(反復に より)回復されたこと。 (2)すべてのファイルとデータベースが、最近のコミット動作までそれらの状 態を(2相コミットプロトコルにより)回復されたこと。 したがって、システムの状態は回復され、実行が通常通り進む。 本発明の回復実施例では、処理手順はいくぶん異なる。 (1)ホストSDBが準備完了状態を示し2つのメモリイメージファイル(Aと B)が保存されていると、ホストプログラム12はより新しいファイルを削除す る(したがって、2重コミットが阻止される)、ロールバックコマンドを発行し 、より古いイメージファイル(すなわち、ドライバプログラム14の最後に知ら れた良好な保存されたイメージ)をメモリに再ロードする。ホストSDBが準備 完了状態を示し1つのメモリイメージファイル(AまたはB)が保存される場合 、ホストプログラム12がロールバックコマンドを発行し、そのイメージファイ ルをメモリに再ロードする。 (2)ホストSDBがコミット状態を示している場合、ホストプログラム12は コミットコマンドを発行し、最新のイメージファイルをメモリに再ロードする。 (3)ホストSDBが実行中またはエラー状態を示し、メモリイメージファイル が2つ保存されている場合、ホストプログラム12はロールバックコマンドを発 行し、より新しいイメージファイルをメモリに再ロードする。メモリイメージフ ァイルが1つ保存されている場合、ホストプログラム12はロールバックコマン ドを発行しそのイメージファイルをメモリに再ロードする。 どの場合でも、ホストプログラム12はコマンドチャンネル18を再設定し、 ドライバプログラム14の実行を再開する。 回復プロトコルは以下のことを保証する。 (1)コミット状態に入る前に障害が発生すると、ロールバックが実行され、最 も古い(前準備状態)メモリイメージが使用される。コミット状態中に障害が発 生すると、コミット動作は終了して、最新の(後準備状態)メモリイメージが使 用される。コミット状態に入った後で障害が発生すると、ロールバックが実行さ れ最新の(後準備状態)メモリイメージが使用される。 (2)ファイルとデータベースもすべて最新のコミット動作までそれらの状態に (たとえば、2相コミットプロトコルにより)回復される。 したがって、システムの状態が回復され、実行は通常通り進む。 エージェント 以下の説明はホストプログラム12に起動される各エージェント24に適用さ れる。用語「ローカルノード」は、特定のエージェント24が実行中のシステム を示すのに使用される。 各エージェント24はアプリケーションを実行するのに必要な実際の動作を実 行する。エージェント24の役割は、それが実行中のリモートシステム20での み複数の動作を実行することである。これらの動作には遠隔処理手順呼出しの実 行、こうした動作のコミットとロールバック、ならびに複数のプロセスの作成と 監視が含まれる。エージェント24は、アプリケーションが実行可能な時と方法 を制御しているので、アプリケーションとオペレーティングシステムの「間に」 あると考えることができる。 遠隔手続き呼出し(RPC)の形で複数のコマンドがドライバプログラム14 によりエージェント24にホストプログラム12を介して送られている。好まし い実施例では、RPCコマンドはコマンド識別子とその後に続く一連の引数から 構成され、引数はすべてテキスト列である。エージェント24は、RPCコマン ド識別子を「RPCハンドラ」にマッピングするテーブルを含む。ハンドラはサ ブルーチンを呼び出してRPCを実行し、RPCをコミットし、RPCをロール バックするオブジェクトである。したがって、エージェント24は適切なRPC ハンドラを探しだして、そのRPCハンドラにRPCの引数を与えることにより RPCを処理する。RPCハンドラルーチンは引数列を解析して、要求された動 作を実行する。この後で、RPCハンドラルーチンは応答列を作成し、この応答 列はホストプログラム12を介してドライバプログラム14に送り返される。各 応答列にはコマンドの成功についての情報と要求された戻りデータが含まれてい る。好ましい実施例には、以下に説明するように、複数のプロセスを開始するた めに特殊なRPCが使用されている。 エージェント24が起動すると、それが受信する第IRPCコマンドは開始エ ージェントコマンドである。このコマンドはエージェント24にアプリケーショ ン用のジョブIDを通知して、ローカルノードに固有の「ノードID」を指定す る。次に、エージェント24は「エージェントSDB」と呼ばれる状態データベ ースを開く。エージェントSDBの名前はジョブIDとノードIDから誘導され るので、アプリケーションを通して固有である。 各エージェント24はホストプログラム12に沿ってアプリケーションの複数 の段階を追跡する。ホストプログラム12が準備またはコミット動作を実行する ときには、準備ノードとコミットノードRPCコマンドをエージェント24のそ れぞれに送ることで実行される。好ましい実施例では、一旦エージェント24が すべて首尾よくそれら固有の準備ノードコマンドに応答すると、ドライバプログ ラム14はアプリケーション全体が準備完了状態にあるとしか考えられないこと になる。同様に、エージェント24がすべてそれらのコミットノードコマンドに 首尾よく応答した場合には、アプリケーションは遂行された段階を考慮し次の段 階に進むだけである。 各エージェント24は現段階とその状態をエージェントSDBに記録する。4 つの定義された状態と可能な状態変化はホストプログラム12と同じであり、通 常の場合には、ホストプログラム12のこれらの状態と状態変化に追随する。現 段階状態(および現段階番号)は「ノード状態」RPCコマンドによりドライバ プログラム14により検索できる。 ドライバプログラム14が閉鎖機能を呼び出すと、閉鎖コマンドが各エージェ ント24に発行される。各エージェント24は、ローカル段階状態が実行中で実 行中のプロセスがないことを検査することで応答して、その関連するエージェン トSDBを削除する。 好ましい実施例では、各エージェント24は複数のRPC動作を実行する。こ れらのRPC動作は段階の一部なので、コミット/ロールバックトランザクショ ンアーキテクチャに応じている。これを実行するには、各エージェント24はそ のエージェントSDBを使用する。特に、各段階では、エージェント24はその エージェントSDBに「CR_LIST」と呼ばれるリストを作成し、各動作毎 にデータが入力される。各入力は、周知の方式で、動作を元に戻すのに十分な情 報を保持している。このリストは、動作が実行されたのと逆の順序でそれらの動 作は元に戻されるよう順序づけられるのが好ましい。 好ましい実施例では、統一するために、RPCすべてが以下の制限に従うよう になっている。 (1)RPCがファイル/データベースの状態を変える場合、そのファイル/デ ータベースに加える変更をロールバックするのに必要な情報をそのRPCは保存 し、CR_LISTの入力を作成しなければならない。この入力は実行中のRP Cコマンドの識別を備えてなければならないので、適切なRPCハンドラはコミ ット/ロールバック処理中に配置できる。 (2)各RPCハンドラは、(RPCがデータベースまたはファイルへの変更を 加えない場合には空白動作となる)準備、コミットおよびロールバック動作を実 施する手段を備えてなければならない。 (3)各RPCハンドラはオプションで、各エージェント24のSDBを使用し て、用件を充足するのに必要な情報を記憶することができる。 (4)ファイル/データベースの状態に変更を加えないRPCに特殊な動作は不 必要である。 好ましい実施例では、アプリケーションプログラムは以下に示す規則に従わな ければならない。 (1)プロセスがファイル/データベースを修正する場合、変更をロールバック し準備/コミット/ロールバック動作を実施する手段を備えてなければならない 。エージェント24の制御下での複数のプロセスは、エージェントSDBにもア クセスする。たとえば、アプリケーションプログラムはCR_LISTに複数の 入力を作成可能である。こうした入力は、適切なコミット/ロールバック動作を 実施するRPCコマンド用の識別子を含んでなければならない。しかし、この場 合には、RPCは実際には発生しないので、「ダミーRPC」の識別子が入力さ れる。 (2)代りに、ドライバプログラム14は、同じ効果をもつプロセスのために複 数のRPCを発行することができる。 エージェント24への開始プロセスコマンドによりエージェント24は特殊な アプリケーションプログラムイメージファイルを実行させて、ローカルノードで 「プロセス」を開始する。好ましい実施例では、このコマンドへの引数は以下を 供給する。 (1)プログラム用の実行可能イメージファイル (2)プログラムの引数リスト (3)プログラムが必要とする任意のオペレーティングシステム環境情報 (4)標準入出力およびエラーチャンネルとして使用されるプロセスに対して開 かれるファイルまたはパス名 (5)実行が成功したことを示す、プログラムを終了させる出口状況コード (6)デバッグモード(デバッギングは以下に記載される) 各エージェント24はその制御下ですべてのプロセスのリストを維持する。プ ロセスが始まると、これらのプロセスの識別子がこのリストに追加される。 好ましい実施例では、各エージェント24は、ドライバプログラム14に応答 して初めてプロセスの終了を待機する。各エージェント24によりプロセスは、 そのプロセスの実行を監視しながらエージェント24と同時に実行される。常に 、エージェント24はプロセスの「プロセス状態」を知っている。この状態は、 好ましい実施例ではPS_RUNNING,PS_ERROR,PS_DEBU GまたはPS_EXITEDの1つである。 PS_RUNNING状態は周知の問題なしにプログラムプロセスが実行中で あることを示す。PS_ERROR状態は、プロセスが解決不可能な問題に遭遇 したことが判明したことを示し、さらに(1)プロセスがエラー条件(信号また はエラートラップ)を合図するか、(2)障害を示すエラー状況で終了したか、 または(3)通常ではない方式で終了したか(たとえば、中止またはオペレータ による手段終了など)を示している。PS_EXITED状態は、プロセスが首 尾よく実行を完了し、通常の方式で終了したことを示している。PS_DEBU G状態は以下の「デバッギング」で説明される。 好ましい実施例では、ドライバプログラム14は「ProcState」RPCコマン ドを使用してプロセスの状態を尋ねることができる。各エージェント24は、集 合プロセス状態も維持し、エージェントが全体として開始するよう指令されたす べてのプロセスの状態を示す。この集合状態は「ノードプロセス状態」と呼ばれ 、ノードのコミット/ロールバック状態(実行中、準備完了、コミット中、エラ ー)から離れている。ノードプロセス状態はこれら4つのプロセス状態と同じで あり、以下のように定義される。 (1)任意のプロセスがPS_DEBUG状態にある場合、集合状態はPS_D EBUGである。そうでない場合、 (2)任意のプロセスがPS_ERROR状態にある場合、集合状態がPS_E RRORである。そうでない場合、 (3)任意のプロセスがPS_RUNNING状態にある場合、集合状態はPS _RUNNINGである。そうでない場合、 (4)集合状態はPS_EXITEDである(すべてのプロセスは通常に終了し た)。 ノードプロセス状態の遷移はノードのコミット/ロールバック状態に影響を及 ぼす。特に、ノードプロセス状態がPS_ERROR状態に遷移する場合、ノー ドのコミット/ロールバック状態は自動的にエラー状態に遷移する。さらに、プ ロセス状態がPS_EXITEDの場合には、実行中状態から準備完了状態また は準備完了状態からコミット状態への遷移だけが唯一つの規約順守である。 集合プロセス状態はノード状態エージェントコマンドによりドライバプログラ ム14により検索可能である。 好ましい実施例では、複数のプロセスは標準エラー入出力チャンネルを介して エラーメッセージを発する。たとえば、UNIXでは、これは「stderr」入出力 ファイルである。こうした出力はオプションとして、任意のプロセスからエージ ェント24に経路設定可能であり、「Eread」RPCコマンドを介してドライバ プログラム14に利用可能である。 ドライバプログラム14は、1つのノードまたはノードのセットにおいて始ま ったすべてのプロセスが実行を完了するまで実行を継続できない環境にしばしば 入る。この環境に適応するには、エージェント24はドライバプログラム14か ら「待機」コマンドを指示する。待機コマンドにより、ノードプロセス状態がP S_RUNNING状態を終えるまで(すなわち、状態はPS_DEBUG,P S_ERRORまたはPS_EXITED)エージェント24はその応答を遅延 させる。待機コマンドへの応答は、待機状態を終了させる処理を示している。ド ライバプログラム14は、待機状態中にエージェント24に「sync」RPCコマ ンドを送ることで待機状態を取り消すこともできる。介入待機応答が偶然受信さ れてもされなくてもSync(同期)コマンドは動作する(とういのは、待機応答お よび同期コマンドがコマンドチャンネル18で交差しているからである)。 プロセスデバッギング 時には、ドライバプログラム14によりユーザがシステムの特定のプロセスを デバッグできるようにすることが有益である。デバッギングは、特定のオペレー ティングシステムの元で利用可能な標準デバッガの制御下でのプロセスの実行を 必要とする。ユーザは実行の最初からプロセスのデバッグを希望できる。代りに 、プロセスがエラー状態に遭遇する場合、すなわち、プロセスがPS_ERRO Rプロセス状態に遷移するときのみに、ユーザはそのプロセスのデバッグを希望 できる。 好ましい実施例では、あるプロセスが(開始プロセスコマンドを用いて)始め られる場合、そのプロセスは、DEBUG_NONE,DEBUG_START 及びDEBUG_TRACEの3つのデバッグモードの任意のもので実行可能に なるように指定できる。DEBUG_NONEデバッグモードのプロセスではデ バッガを動作させる必要はない。DEBUG_STARTモードで指定された処 理は関連するデバッガにより始めから実行されることになる。DEBUG_TR ACEモードで指定された処理はエージェント24により監視され、こうした処 理が様々な検出可能エラー状態(エラートラップ、信号または打切りなど)の任 意の状態に入る場合、こうした状態は停止され、デバッガは障害プロセスに接続 された状態で実行される。 好ましい実施例では、エージェント24はデバッガを自主的に起動しない。代 りに、プロセスが(デバッグモードにより指示されたように)デバッギングが必 要な場合には、エージェント24はプロセスをPS_DEBUGプロセス状態に 遷移する。これにより集合プロセス状態はPS_DEBUGに遷移する。この状 態はドライバプログラム14に伝えられる(たとえば、この状態は待機状態を終 了させることになる)。この時点で、ドライバプログラム14は「デバッグ」R PCコマンドを用いてプロセス用のデバッガを呼び出すことができる。このコマ ンドは実行すべきプログラム、おそらくはシェルスクリプトを指定し、選択のデ バッガを起動するのに十分な情報が(引数リストを介して)そのプログラムに送 られる。 回復 各エージェントは、そのエージェントSDBに記憶されているローカル段階番 号と状態を維持する。段階番号は準備/コミットプロトコルを介してホストプロ グラム12のそれと同期する。段階状態は、プロセス状態から主に誘導され、ア プリケーション用の現段階の状態を全体的に計算するためにドライバプログラム 14により使用される。 ドライバプログラム14は、障害により再呼出しに失敗すると、ホストプログ ラム12にジョブを開始するよう伝える。「回復ファイル」が発見されると、ホ ストプログラム12は「回復モード」に入り、以下のようにエージェント24の 状態を回復する。 (1)ホストSDBは、障害時に実行中の一連のエージェント24のプロセスを 判定するのに使用される。 (2)新しいエージェント24は各ノードで作成される。 (3)新しいエージェント24には、ジョブIDをもつ「エージェント開始」コ マンドが付与される。 (4)エージェントSDBは依然として存在しているから(その名前はジョブI Dから誘導される)、エージェント24はこのジョブIDを従来のアプリケーシ ョンとして認識する。 (5)各エージェント24はそのログから再構成されたSDBを開き、現段階番 号、状態およびコミット−ロールバックリストを抽出する。 (6)ホストプログラム12は、コミット中以外の状態にある場合、エージェン ト24にロールバックコマンドを送る。このコマンドによりエージェント24は その段階で実行された動作すべてを逆の順序で以前の状態に戻す。他方、ホスト プログラム12は、コミット状態にある場合には、エージェント24にコミット コマンドを再発行する。コミット状態にあることが判明しているエージェント2 4は、コミット−ロールバックリストを準方向に横切り、すべての入力のコミッ ト方法を実行することで明らかに割り込みコミット動作であるものを完了するこ とになる。実行状態にあることが判明しているエージェント24は、コミットコ マンドを空コマンドとして処理することになる(というのは、以前のコミット動 作が他のノードではまだだがそのノードでは明らかに完了しているからである) 。 (7)その時点では、エージェント24は実行状態にあるその段階の開始時にあ ると考えて、ドライバプログラム14からの複数のコマンドの取出しを開始する 。 要約 図4は、本発明の反復実施例の基本機能動作を要約形式で示す流れ図である。 ドライバプログラム14はリモートシステム20で複数のプロセスを開始する( ステップ40)。ホストプログラム12は、ドライバプログラム14からのすべ ての制御コマンドを、ドライバプログラム14へのすべての応答と同様に(ステ ップ42)、記録する(ステップ41)。各エージェント24は、その各リモー トシステム20の各段階でアプリケーションを実行する(ステップ43)。アプ リケーションは準備−コミットプロトコルを実行して、システムの一貫性を維持 しながらシステムおよびファイルの状態を記憶する(ステップ44)。障害が発 生すると、システムの状態が回復され、ドライバプログラム14が再起動し、ホ ストプログラム12にコマンドを発行する(ステップ45)。ホストプログラム 12は各コマンドに対する応答を読み取り、実行されるまで、反復モードでドラ イバプログラム14に応答を送る(ステップ46)。次いで、ドライバプログラ ム14は、最後の良好なチェックポイントからアプリケーションプロセスの制御 を続ける。 図5は、本発明の回復実施例の基本機能動作を要約形式で示す流れ図である。 ドライバプログラム14はリモートシステム20でプロセスを開始する(ステッ プ50)。各エージェント24は、その各リモートシステム20で各段階のアプ リケーションを実行する(ステップ51)。アプリケーションはコミットプロト コルの準備部分を実行して、システムおよびファイルの状態を記憶する(ステッ プ52)。準備プロトコルが実行されるとドライバメモリ14のメモリイメージ が記憶される(ステップ53)。アプリケーションがコミットプロトコルを実行 して、システムの一貫性を維持しながらシステムおよびファイル状態の保存を完 了する(ステップ54)。障害が発生すると、システムの状態が回復して、ドラ イバプログラム14の記憶メモリイメージがメモリに再ロードされる(ステップ 55)。次いで、ドライバプログラム14は、最後の良好なチェックポイントか らアプリケーションプロセスの制御を続ける(ステップ56)。 本発明について多くの実施例が説明されてきた。しかし、本発明の精神と範囲 から逸脱することなく様々な修正を加えることが可能なことを理解すべきである 。たとえば、本発明はCPUが1つのシステムに適用可能である。さらに、2相 コミットプロトコルが好ましいが、システム一貫性を維持しながらシステムの状 態を安全に保存する他のコミットプロトコルが使用できる。したがって、本発明 は特定の例示実施例によって制限されるものではなく、添付の請求の範囲によっ てのみ制限されるものであることを理解すべきである。
【手続補正書】 【提出日】平成10年7月7日(1998.7.7) 【補正内容】 請求の範囲(19条補正) 1. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る工程と、 (b)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する工程と、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録する工程 と、 (d)首尾よく完了した実行段階それぞれの終了状態を保存する工程と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する工程と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 2. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行 、 (b)複数のコマンドとそれらのコマンドへの応答を発行することで前記アプ リケーションの各実行段階の処理を制御、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録、 (d)首尾よく完了した実行段階それぞれの終了状態を保存、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する、よ うに前記コンピュータシステムを構成するコンピュータプログラム。 3. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)複数のコマンドとこうしたコマンドへの応答を発行することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (d)首尾よく終了した実行段階それぞれの終了状態を保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。 4. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)アプリケーションを個々の実行段階に分割する工程と、 (b)並列処理システムで前記アプリケーションの実行を開始する工程と、 (c)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する工程と、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録する工程 と、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する工程と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する工程と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 5. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)アプリケーションを個々の実行段階に分割、 (b)並列処理システムで前記アプリケーションの実行を開始、 (c)複数のコマンドを発行、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する、よ うに前記コンピュータシステムを構成するコンピュータプログラム。 6. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記録媒体。 7. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る工程と、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する工程と、 (c)首尾よく完了した実行段階それぞれの終了状態を保存する工程と、 (d)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存する工程と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (g)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復する工程と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 8. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行 、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御、 (c)首尾よく完了した実行段階それぞれの終了状態を保存、 (d)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復、 (g)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する、よ うに前記コンピュータシステムを構成するコンピュータプログラム。 9. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (c)首尾よく完了した実行段階それぞれの終了状態を保存する機能と、 (d)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。 10. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行する方法であって、 (a)アプリケーションを個々の実行段階に分割する工程と、 (b)並列処理システムで前記アプリケーションの実行を開始する工程と、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する工程と、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する工程と、 (e)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存する工程と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (h)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復する工程と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 11. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行するコンピュータプログラ ムであって、該コンピュータプログラムはコンピュータシステムにより読取可能 な媒体に記憶されており、前記コンピュータシステムにより読み取られ実行され ると、 (a)アプリケーションを個々の実行段階に分割、 (b)並列処理システムで前記アプリケーションの実行を開始、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存、 (e)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復、 (h)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する、よ うに前記コンピュータシステムを構成するコンピュータプログラム。 12. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行するコンピュータプログラ ムにより構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (e)首尾よく完了した実行段階それぞれの終了時において、少なくとも前記 ドライバプログラムが保存状態を再作成するのに必要な前記ドライバプログラム のデータ構造 を保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記ドライバプログラムの保存データ構造をメモリに再ロードすること で、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプログ ラムを回復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),EA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BA,BB,BG,BR,BY,CA,CH,CN, CU,CZ,DE,DK,EE,ES,FI,GB,G E,HU,IL,IS,JP,KE,KG,KP,KR ,KZ,LK,LR,LS,LT,LU,LV,MD, MG,MK,MN,MW,MX,NO,NZ,PL,P T,RO,RU,SD,SE,SG,SI,SK,TJ ,TM,TR,TT,UA,UG,UZ,VN (72)発明者 レッサー,クリフ アメリカ合衆国 02139 マサチューセッ ツ州,ケンブリッジ,リー ストリート 15,アパートメント ナンバー1 (72)発明者 ローディ,ロバート アメリカ合衆国 01778 マサチューセッ ツ州,ウェイランド,バウ ロード 33

Claims (1)

  1. 【特許請求の範囲】 1. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る工程と、 (b)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する工程と、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録する工程 と、 (d)首尾よく完了した実行段階それぞれの終了状態を保存する工程と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する工程と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 2. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)複数のコマンドとそれらのコマンドへの応答を発行することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (d)首尾よく完了した実行段階それぞれの終了状態を保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行するように前記コンピュータシステムを構成するコンピュータプ ログラム。 3. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)複数のコマンドとこうしたコマンドへの応答を発行することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (c)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (d)首尾よく終了した実行段階それぞれの終了状態を保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。 4. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)アプリケーションを個々の実行段階に分割する工程と、 (b)並列処理システムで前記アプリケーションの実行を開始する工程と、 (c)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する工程と、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録する工程 と、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する工程と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する工程と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 5. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行するように前記コンピュータシステムを構成するコンピュータプ ログラム。 6. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)複数のコマンドを発行し、こうしたコマンドに応答することで前記アプ リケーションの各実行段階の処理を制御する機能と、 (d)こうしたコマンドとこれらコマンドに対する応答すべてを記録する機能 と、 (e)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記アプリケーションの実行の開始から障害が検出された実行段階の前 の実行段階の最後に保存された終了状態までの記録コマンドおよびこうしたコマ ンドに対する応答すべてを反復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記録媒体。 7. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行する方法であって、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る工程と、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する工程と、 (c)首尾よく完了した実行段階それぞれの終了状態を保存する工程と、 (d)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する工程と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (g)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する工程と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 8. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム であって、該コンピュータプログラムはコンピュータシステムにより読取可能な 媒体に記憶されており、前記コンピュータシステムにより読み取られ実行される と、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (c)首尾よく完了した実行段階それぞれの終了状態を保存する機能と、 (d)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行するように前記コンピュータシステムを構成するコンピュータプ ログラム。 9. 並列処理システムにおいて事前プログラム式チェックポインティング機能 を備えてないコンピュータアプリケーションを実行するコンピュータプログラム により構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)並列処理システムにおいて個々の実行段階でアプリケーションを実行す る機能と、 (b)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (c)首尾よく完了した実行段階それぞれの終了状態を保存する機能と、 (d)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する機能と、 (e)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (f)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (g)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する機能と、 (h)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。 10. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行する方法であって、 (a)アプリケーションを個々の実行段階に分割する工程と、 (b)並列処理システムで前記アプリケーションの実行を開始する工程と、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する工程と、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する工程と、 (e)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する工程と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する工程と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する工程と、 (h)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する工程と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 工程と、から成る前記方法。 11. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行するコンピュータプログラ ムであって、該コンピュータプログラムはコンピュータシステムにより読取可能 な媒体に記憶されており、前記コンピュータシステムにより読み取られ実行され ると、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (e)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行するように前記コンピュータシステムを構成するコンピュータプ ログラム。 12. 並列処理システムにおいて事前プログラム式チェックポインティング機 能を備えてないコンピュータアプリケーションを実行するコンピュータプログラ ムにより構成され、コンピュータを特定の事前に定義された方式で動作させて、 (a)アプリケーションを個々の実行段階に分割する機能と、 (b)並列処理システムで前記アプリケーションの実行を開始する機能と、 (c)ドライバプログラムにより前記アプリケーションの各実行段階の処理を 制御する機能と、 (d)2相コミットプロトコルにより首尾よく完了した実行段階それぞれの終 了状態を保存する機能と、 (e)首尾よく完了した実行段階それぞれの終了時における前記ドライバプロ グラムのメモリイメージを保存する機能と、 (f)こうした実行段階の任意の段階での前記アプリケーションの障害を検出 する機能と、 (g)障害が検出された実行段階の前の実行段階の最後に保存された終了状態 を回復する機能と、 (h)前記ドライバプログラムの保存メモリイメージをメモリに再ロードする ことで、障害が検出された実行段階の前の実行段階の終わりまで前記ドライバプ ログラムを回復する機能と、 (i)障害が検出された実行段階の開始から前記アプリケーションを再開する 機能と、を実行させるように構成されたコンピュータ読取可能な記憶媒体。
JP52221797A 1995-12-11 1996-12-11 計算の状態を再構成する方法ならびにシステム Expired - Lifetime JP3573463B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/570,724 1995-12-11
US08/570,724 US5712971A (en) 1995-12-11 1995-12-11 Methods and systems for reconstructing the state of a computation
PCT/US1996/019836 WO1997022052A1 (en) 1995-12-11 1996-12-11 Methods and systems for reconstructing the state of a computation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003349169A Division JP3675802B2 (ja) 1995-12-11 2003-10-08 計算の状態を再構成する方法ならびにシステム

Publications (2)

Publication Number Publication Date
JP2002505768A true JP2002505768A (ja) 2002-02-19
JP3573463B2 JP3573463B2 (ja) 2004-10-06

Family

ID=24280795

Family Applications (2)

Application Number Title Priority Date Filing Date
JP52221797A Expired - Lifetime JP3573463B2 (ja) 1995-12-11 1996-12-11 計算の状態を再構成する方法ならびにシステム
JP2003349169A Expired - Lifetime JP3675802B2 (ja) 1995-12-11 2003-10-08 計算の状態を再構成する方法ならびにシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003349169A Expired - Lifetime JP3675802B2 (ja) 1995-12-11 2003-10-08 計算の状態を再構成する方法ならびにシステム

Country Status (11)

Country Link
US (1) US5712971A (ja)
EP (1) EP0954779B8 (ja)
JP (2) JP3573463B2 (ja)
AT (1) ATE423351T1 (ja)
AU (1) AU1288897A (ja)
CA (1) CA2240347C (ja)
DE (1) DE69637836D1 (ja)
DK (1) DK0954779T3 (ja)
ES (1) ES2320601T3 (ja)
PT (1) PT954779E (ja)
WO (1) WO1997022052A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502953A (ja) * 2003-11-17 2008-01-31 ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行
JP2011510381A (ja) * 2008-01-11 2011-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法
JP2017041263A (ja) * 2011-02-18 2017-02-23 アビニシオ テクノロジー エルエルシー プロセスの再開

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931954A (en) * 1996-01-31 1999-08-03 Kabushiki Kaisha Toshiba I/O control apparatus having check recovery function
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
US5909681A (en) 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
US6324567B2 (en) * 1997-06-11 2001-11-27 Oracle Corporation Method and apparatus for providing multiple commands to a server
AU8674098A (en) * 1997-07-31 1999-02-22 Data Net Corporation Method and apparatus for implementing software connectivity for client/server applications
US6009258A (en) * 1997-09-26 1999-12-28 Symantec Corporation Methods and devices for unwinding stack of frozen program and for restarting the program from unwound state
US5911060A (en) * 1997-09-26 1999-06-08 Symantec Corporation Computer method and apparatus for unfreezing an apparently frozen application program being executed under control of an operating system
US6029177A (en) * 1997-11-13 2000-02-22 Electronic Data Systems Corporation Method and system for maintaining the integrity of a database providing persistent storage for objects
JPH11282684A (ja) * 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
US6477663B1 (en) * 1998-04-09 2002-11-05 Compaq Computer Corporation Method and apparatus for providing process pair protection for complex applications
US6175932B1 (en) * 1998-04-20 2001-01-16 National Instruments Corporation System and method for providing state capture and restoration to an I/O system
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6226759B1 (en) 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6397351B1 (en) 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6393583B1 (en) 1998-10-29 2002-05-21 International Business Machines Corporation Method of performing checkpoint/restart of a parallel program
US6256751B1 (en) * 1998-10-29 2001-07-03 International Business Machines Corporation Restoring checkpointed processes without restoring attributes of external data referenced by the processes
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6338147B1 (en) 1998-10-29 2002-01-08 International Business Machines Corporation Program products for performing checkpoint/restart of a parallel program
WO2000036506A1 (en) 1998-12-16 2000-06-22 Kent Ridge Digital Labs Process oriented computing environment
US7047232B1 (en) * 1999-01-13 2006-05-16 Ab Initio Software Corporation Parallelizing applications of script-driven tools
JP4237354B2 (ja) * 1999-09-29 2009-03-11 株式会社東芝 トランザクション処理方法及びトランザクション処理システム
US6662310B2 (en) 1999-11-10 2003-12-09 Symantec Corporation Methods for automatically locating url-containing or other data-containing windows in frozen browser or other application program, saving contents, and relaunching application program with link to saved data
US6630946B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods for automatically locating data-containing windows in frozen applications program and saving contents
US6631480B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods and systems for protecting data from potential corruption by a crashed computer program
US6584581B1 (en) * 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US6678701B1 (en) 2000-01-05 2004-01-13 International Business Machines Corporation Technique for establishing a point of consistency in a parallel database loading system
EP1128266A3 (en) * 2000-02-22 2004-02-25 Orsus Solutions Limited Cooperative software application architecture
TW525329B (en) * 2000-05-29 2003-03-21 Omron Tateisi Electronics Co Power supply module and power supply unit using the same
US6944790B2 (en) * 2001-04-05 2005-09-13 International Business Machines Corporation System and method for collecting and restoring user environment data using removable storage
US8234156B2 (en) * 2001-06-28 2012-07-31 Jpmorgan Chase Bank, N.A. System and method for characterizing and selecting technology transition options
US6883114B2 (en) * 2001-11-08 2005-04-19 M-Systems Flash Disk Pioneers Ltd. Block device driver enabling a ruggedized file system
KR20030056540A (ko) * 2001-12-28 2003-07-04 한국전자통신연구원 데이터베이스 관리 시스템에서 시스템 고장에 대비한 파일삭제 및 회복 방법
US7168008B2 (en) * 2002-01-18 2007-01-23 Mobitv, Inc. Method and system for isolating and protecting software components
US6880051B2 (en) * 2002-03-14 2005-04-12 International Business Machines Corporation Method, system, and program for maintaining backup copies of files in a backup storage device
GB0211179D0 (en) * 2002-05-16 2002-06-26 Ibm A method,apparatus and computer program for reducing the amount of data checkpointed
US7024591B2 (en) * 2002-07-12 2006-04-04 Crossroads Systems, Inc. Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
US20040083158A1 (en) * 2002-10-09 2004-04-29 Mark Addison Systems and methods for distributing pricing data for complex derivative securities
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7340650B2 (en) * 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
US7149752B2 (en) * 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US7085759B2 (en) 2002-12-06 2006-08-01 Jpmorgan Chase Bank System and method for communicating data to a process
US8032439B2 (en) 2003-01-07 2011-10-04 Jpmorgan Chase Bank, N.A. System and method for process scheduling
US7401156B2 (en) * 2003-02-03 2008-07-15 Jp Morgan Chase Bank Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment
US7484087B2 (en) * 2003-02-24 2009-01-27 Jp Morgan Chase Bank Systems, methods, and software for preventing redundant processing of transmissions sent to a remote host computer
JP4345334B2 (ja) * 2003-03-28 2009-10-14 日本電気株式会社 耐障害計算機システム、プログラム並列実行方法およびプログラム
US7379998B2 (en) * 2003-03-31 2008-05-27 Jp Morgan Chase Bank System and method for multi-platform queue queries
US20040230602A1 (en) * 2003-05-14 2004-11-18 Andrew Doddington System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system
US7366722B2 (en) * 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
US7509641B2 (en) * 2003-05-16 2009-03-24 Jp Morgan Chase Bank Job processing framework
US7634500B1 (en) 2003-11-03 2009-12-15 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
US7281023B2 (en) * 2003-12-15 2007-10-09 At&T Knowledge Ventures, L.P. Architecture of database application with robust online recoverability
US20050144174A1 (en) * 2003-12-31 2005-06-30 Leonid Pesenson Framework for providing remote processing of a graphical user interface
US8689185B1 (en) * 2004-01-27 2014-04-01 United Services Automobile Association (Usaa) System and method for processing electronic data
US7650606B2 (en) * 2004-01-30 2010-01-19 International Business Machines Corporation System recovery
US7366801B2 (en) * 2004-01-30 2008-04-29 International Business Machines Corporation Method for buffering work requests
US8140348B2 (en) * 2004-01-30 2012-03-20 International Business Machines Corporation Method, system, and program for facilitating flow control
US7702767B2 (en) * 2004-03-09 2010-04-20 Jp Morgan Chase Bank User connectivity process management system
US20050222990A1 (en) * 2004-04-06 2005-10-06 Milne Kenneth T Methods and systems for using script files to obtain, format and disseminate database information
US9734222B1 (en) 2004-04-06 2017-08-15 Jpmorgan Chase Bank, N.A. Methods and systems for using script files to obtain, format and transport data
US7376830B2 (en) * 2004-04-26 2008-05-20 Jp Morgan Chase Bank System and method for routing messages
US7665127B1 (en) 2004-06-30 2010-02-16 Jp Morgan Chase Bank System and method for providing access to protected services
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
US7392471B1 (en) 2004-07-28 2008-06-24 Jp Morgan Chase Bank System and method for comparing extensible markup language (XML) documents
US20060085492A1 (en) * 2004-10-14 2006-04-20 Singh Arun K System and method for modifying process navigation
FR2882448B1 (fr) * 2005-01-21 2007-05-04 Meiosys Soc Par Actions Simpli Procede de gestion, de journalisation ou de rejeu du deroulement d'un processus applicatif
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
EP1899902B1 (en) * 2005-05-30 2011-12-28 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8572516B1 (en) 2005-08-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
US7636946B2 (en) * 2005-08-31 2009-12-22 Microsoft Corporation Unwanted file modification and transactions
US7353332B2 (en) * 2005-10-11 2008-04-01 Integrated Device Technology, Inc. Switching circuit implementing variable string matching
US7499933B1 (en) 2005-11-12 2009-03-03 Jpmorgan Chase Bank, N.A. System and method for managing enterprise application configuration
US8181016B1 (en) 2005-12-01 2012-05-15 Jpmorgan Chase Bank, N.A. Applications access re-certification system
KR100833681B1 (ko) 2005-12-08 2008-05-29 한국전자통신연구원 커밋 프로토콜을 이용한 병행 프로세스 메모리 관리 시스템및 관리 방법
US7716461B2 (en) * 2006-01-12 2010-05-11 Microsoft Corporation Capturing and restoring application state after unexpected application shutdown
US7574591B2 (en) * 2006-01-12 2009-08-11 Microsoft Corporation Capturing and restoring application state after unexpected application shutdown
US7913249B1 (en) 2006-03-07 2011-03-22 Jpmorgan Chase Bank, N.A. Software installation checker
US7895565B1 (en) 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US7571347B2 (en) * 2006-03-20 2009-08-04 Sun Microsystems, Inc. Method and apparatus for providing fault-tolerance in parallel-processing systems
US20070276879A1 (en) * 2006-05-26 2007-11-29 Rothman Michael A Sparse checkpoint and rollback
US7610172B2 (en) * 2006-06-16 2009-10-27 Jpmorgan Chase Bank, N.A. Method and system for monitoring non-occurring events
EP1873643A1 (en) * 2006-06-30 2008-01-02 Alcatel Lucent Service objects with rollback-recovery
WO2008021953A2 (en) 2006-08-10 2008-02-21 Ab Initio Software Llc Distributing services in graph-based computations
US7783654B1 (en) 2006-09-19 2010-08-24 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
US7529746B2 (en) * 2006-09-19 2009-05-05 Netlogic Microsystems, Inc. Search circuit having individually selectable search engines
US7624105B2 (en) * 2006-09-19 2009-11-24 Netlogic Microsystems, Inc. Search engine having multiple co-processors for performing inexact pattern search operations
US7644080B2 (en) * 2006-09-19 2010-01-05 Netlogic Microsystems, Inc. Method and apparatus for managing multiple data flows in a content search system
US7539032B2 (en) * 2006-09-19 2009-05-26 Netlogic Microsystems, Inc. Regular expression searching of packet contents using dedicated search circuits
US7539031B2 (en) * 2006-09-19 2009-05-26 Netlogic Microsystems, Inc. Inexact pattern searching using bitmap contained in a bitcheck command
US7860849B1 (en) 2007-01-18 2010-12-28 Netlogic Microsystems, Inc. Optimizing search trees by increasing success size parameter
US8924782B2 (en) * 2007-01-26 2014-12-30 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for recovering an application from a fault or attack
US7630982B2 (en) 2007-02-24 2009-12-08 Trend Micro Incorporated Fast identification of complex strings in a data stream
JP5251002B2 (ja) * 2007-05-25 2013-07-31 富士通株式会社 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
JP5520219B2 (ja) 2007-07-26 2014-06-11 アビニシオ テクノロジー エルエルシー エラーハンドリングをもつトランザクションのグラフ型計算
US7643353B1 (en) * 2007-10-25 2010-01-05 Netlogic Microsystems, Inc. Content addressable memory having programmable interconnect structure
WO2009134264A1 (en) * 2008-05-01 2009-11-05 Hewlett-Packard Development Company, L.P. Storing checkpoint data in non-volatile memory
US8112742B2 (en) * 2008-05-12 2012-02-07 Expressor Software Method and system for debugging data integration applications with reusable synthetic data values
US7924589B1 (en) 2008-06-03 2011-04-12 Netlogic Microsystems, Inc. Row redundancy for content addressable memory having programmable interconnect structure
US8291261B2 (en) * 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
JP2010165251A (ja) 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
KR20150038758A (ko) * 2009-02-13 2015-04-08 아브 이니티오 테크놀로지 엘엘시 태스크 실행 관리
US7924590B1 (en) 2009-08-10 2011-04-12 Netlogic Microsystems, Inc. Compiling regular expressions for programmable content addressable memory devices
US7916510B1 (en) 2009-08-10 2011-03-29 Netlogic Microsystems, Inc. Reformulating regular expressions into architecture-dependent bit groups
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US9665620B2 (en) * 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
CN102263652A (zh) * 2010-05-31 2011-11-30 鸿富锦精密工业(深圳)有限公司 网络装置及更改其参数设定的方法
US8875145B2 (en) 2010-06-15 2014-10-28 Ab Initio Technology Llc Dynamically loading graph-based computations
US8527488B1 (en) 2010-07-08 2013-09-03 Netlogic Microsystems, Inc. Negative regular expression search operations
US9002946B2 (en) * 2010-08-25 2015-04-07 Autodesk, Inc. Dual modeling environment in which commands are executed concurrently and independently on both a light weight version of a proxy module on a client and a precise version of the proxy module on a server
US8862603B1 (en) 2010-11-03 2014-10-14 Netlogic Microsystems, Inc. Minimizing state lists for non-deterministic finite state automatons
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US9135124B2 (en) * 2012-04-30 2015-09-15 Hewlett-Packard Development Company, L.P. Sequence indicator for command communicated to a sequential access storage device
US9317467B2 (en) 2012-09-27 2016-04-19 Hewlett Packard Enterprise Development Lp Session key associated with communication path
JP6085897B2 (ja) * 2012-10-09 2017-03-01 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ウェブアプリケーションにデータベースの変更内容を取得させるための方法及びシステム
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US10002041B1 (en) 2013-02-01 2018-06-19 Jpmorgan Chase Bank, N.A. System and method for maintaining the health of a machine
US9720655B1 (en) 2013-02-01 2017-08-01 Jpmorgan Chase Bank, N.A. User interface event orchestration
US9088459B1 (en) 2013-02-22 2015-07-21 Jpmorgan Chase Bank, N.A. Breadth-first resource allocation system and methods
US9619410B1 (en) 2013-10-03 2017-04-11 Jpmorgan Chase Bank, N.A. Systems and methods for packet switching
JP6400695B2 (ja) 2013-10-21 2018-10-03 アビニシオ テクノロジー エルエルシー データユニットの集合のチェックポイント作成
CA2932763C (en) 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
AU2014360106B2 (en) 2013-12-06 2019-05-23 Ab Initio Technology Llc Source code translation
US9542259B1 (en) 2013-12-23 2017-01-10 Jpmorgan Chase Bank, N.A. Automated incident resolution system and method
US9868054B1 (en) 2014-02-10 2018-01-16 Jpmorgan Chase Bank, N.A. Dynamic game deployment
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
EP3779674B1 (en) 2015-12-21 2023-02-01 AB Initio Technology LLC Sub-graph interface generation
US10601890B2 (en) 2016-01-14 2020-03-24 Ab Initio Technology Llc Recoverable stream processing
JP6665892B2 (ja) * 2018-07-04 2020-03-13 富士通株式会社 情報処理システム,情報処理装置および制御プログラム
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US11847027B2 (en) 2022-03-15 2023-12-19 Microsoft Technology Licensing, Llc Automated configuration conflict resolution and lightweight restoration

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US4703481A (en) * 1985-08-16 1987-10-27 Hewlett-Packard Company Method and apparatus for fault recovery within a computing system
US5121486A (en) * 1987-11-20 1992-06-09 Hitachi, Ltd Network control system for dynamically switching a logical connection between an identified terminal device and an indicated processing unit
US5313584A (en) * 1991-11-25 1994-05-17 Unisys Corporation Multiple I/O processor system
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5435003A (en) * 1993-10-07 1995-07-18 British Telecommunications Public Limited Company Restoration in communications networks
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
US5530802A (en) * 1994-06-22 1996-06-25 At&T Corp. Input sequence reordering method for software failure recovery
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502953A (ja) * 2003-11-17 2008-01-31 ヴァージニア テック インテレクチュアル プロパティーズ,インコーポレイテッド 分散システムにおけるトランスペアレントなチェックポインティング及びプロセス移行
JP2011510381A (ja) * 2008-01-11 2011-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・コンポーネントの再開可能なプロビジョニングのためのシステムおよび方法
US8776018B2 (en) 2008-01-11 2014-07-08 International Business Machines Corporation System and method for restartable provisioning of software components
JP2017041263A (ja) * 2011-02-18 2017-02-23 アビニシオ テクノロジー エルエルシー プロセスの再開

Also Published As

Publication number Publication date
EP0954779B8 (en) 2009-04-22
CA2240347C (en) 2001-07-10
WO1997022052A1 (en) 1997-06-19
JP3573463B2 (ja) 2004-10-06
EP0954779A1 (en) 1999-11-10
EP0954779A4 (en) 2007-05-09
AU1288897A (en) 1997-07-03
DK0954779T3 (da) 2009-04-06
JP2004094963A (ja) 2004-03-25
US5712971A (en) 1998-01-27
CA2240347A1 (en) 1997-06-19
PT954779E (pt) 2009-04-28
EP0954779B1 (en) 2009-02-18
ES2320601T3 (es) 2009-05-25
ATE423351T1 (de) 2009-03-15
JP3675802B2 (ja) 2005-07-27
DE69637836D1 (en) 2009-04-02

Similar Documents

Publication Publication Date Title
JP3573463B2 (ja) 計算の状態を再構成する方法ならびにシステム
US5065311A (en) Distributed data base system of composite subsystem type, and method fault recovery for the system
US7516361B2 (en) Method for automatic checkpoint of system and application software
US5802267A (en) Method for checkpointing in computer system under distributed processing environment
US5968185A (en) Transparent fault tolerant computer system
US4648031A (en) Method and apparatus for restarting a computing system
US9323550B2 (en) Mechanism for providing virtual machines for use by multiple users
US6766471B2 (en) User-level checkpoint and restart for groups of processes
US6205558B1 (en) Recovery of file systems after modification failure
JP2505112B2 (ja) トランザクション管理方法
EP0236743A2 (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system
JPH11134117A (ja) コンピュータシステム
US6256751B1 (en) Restoring checkpointed processes without restoring attributes of external data referenced by the processes
CN112256485A (zh) 数据备份方法、装置、介质和计算设备
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system
CN118467256B (zh) 一种集群的业务故障恢复方法、装置、介质以及产品
JPH07168730A (ja) チェックポイント採取方式
JP2909128B2 (ja) 起動処理の引き継ぎ処理装置
JPH06214848A (ja) データベース管理システム
JPH0552538B2 (ja)
JPH04105159A (ja) 業務代行方式
JPS59218565A (ja) 運転フアイル複写方式
JPH0991159A (ja) 計算機システム
JPH03204741A (ja) ファイルリカバリ方式

Legal Events

Date Code Title Description
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: 20040608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080709

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090709

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100709

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20110709

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120709

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term