JP2017041263A - プロセスの再開 - Google Patents

プロセスの再開 Download PDF

Info

Publication number
JP2017041263A
JP2017041263A JP2016201286A JP2016201286A JP2017041263A JP 2017041263 A JP2017041263 A JP 2017041263A JP 2016201286 A JP2016201286 A JP 2016201286A JP 2016201286 A JP2016201286 A JP 2016201286A JP 2017041263 A JP2017041263 A JP 2017041263A
Authority
JP
Japan
Prior art keywords
execution
computer
implemented method
state
checkpoint
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
JP2016201286A
Other languages
English (en)
Other versions
JP6556110B2 (ja
Inventor
フィル ドゥラス,ブライアン
Phil Douros Bryan
フィル ドゥラス,ブライアン
スケフィントン ザ サード ホーリー,ジョセフ
Skeffington Wholey Joseph Iii
スケフィントン ザ サード ホーリー,ジョセフ
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of JP2017041263A publication Critical patent/JP2017041263A/ja
Application granted granted Critical
Publication of JP6556110B2 publication Critical patent/JP6556110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

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

Abstract

【課題】プロセス処理の効率を向上させるとともに処理リソースの消費を軽減する。【解決手段】コンピュータにより実施される方法であって、初期化の時にプロセスの初期状態に関する情報を記憶し602、少なくとも1つの実行フェーズを実行するプロセスにおいて、実行フェーズの実行完了時に実行フェーズの終了状態を表す情報を記憶し604、所定のイベントに応答してプロセスの実行を中断し608、プロセスをシャットダウンする必要なく、保存された初期状態及び終了状態の一方からプロセスの実行を再開610する。【選択図】図6

Description

関連出願の相互参照
本出願は、2011年2月18日に出願された「Restarting Processes」と題する米国特許出願第13/030,998号に対する優先権を主張する。その全体的な内容は参照により本願にも含まれるものとする。
本記載はプロセスの再開に関する。
シングルプロセッサコンピュータによって提供される計算速度は、過去数十年間で飛躍的に進歩している。しかしながら、かかるプロセッサにより実行される多くのアプリケーションが必要とする計算容量は、最速のシングルプロセッサコンピュータをも超える場合がある。例えば、航空予約システムのようなトランザクショナルシステムにおいて、多数のユーザがコンピュータリソースに同時にアクセスすることがある。こういったユーザは通常、応答時間が短いことを期待している。シングルプロセッサコンピュータは、かかる要求に追いつくことができない恐れがある。このようなアプリケーションを処理して性能を向上させるために、並列処理システム等の多種多様なアーキテクチャが開発されている。一般に、並列処理システムによって用いられる多数のプロセッサは、単一の場所に配置するか又は遠隔分散させることができる。場合によっては、本質的に連続的かつリアルタイムに近い処理を含む大量のデータを処理するアプリケーションでは、処理能力のため、そういった並列処理システムに頼るようになっている。かかる処理能力は、システム障害に対してロバスト(robust)でレジスタンス(resistance)であること、すなわちフォルトトレラントであることが期待される。
これらの能力は、大規模なインターネットベースのデータ処理からプライベートなネットワーク及び通信システム(例えば企業内「イントラネット」等)までに及ぶあらゆる種類及びサイズのコンピュータネットワークにとって有用である。
一態様において、概して、コンピュータにより実施される方法は、初期化の時にプロセスの初期状態に関する情報を記憶することであって、プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、及び実行フェーズの実行の完了時に実行フェーズの終了状態を表す情報を記憶することと、所定のイベントに応答してプロセスの実行をアボートすることと、プロセスをシャットダウンする必要なく、保存された初期状態及び終了状態の一方からプロセスの実行を再開することと、を含む。
複数の態様は以下の1つ以上を含むことができる。
所定のイベントは、外部デバイスに対する接続の切断である場合がある。所定のイベントは、外部デバイスによるエラーである。外部デバイスに対する接続が復元された場合に、プロセスの実行を再開することができる。外部デバイスによるエラーがクリアされた場合に、プロセスの実行を再開することができる。所定のイベントが発生した実行フェーズの前に記憶された終了状態から、プロセスの実行を再開することができる。プロセスの起動の実質的に直後の実行フェーズ中に所定のイベントが発生した場合、初期状態からプロセスの実行を再開することができる。実行フェーズの実行は、受信したデータストリームに1つ以上の処理アクションを実行して実行フェーズに対応した出力データを生成することを含むことができる。
この方法は、1つ以上の実行フェーズに対応した出力データを記憶することと、プロセスの実行が再開された場合に出力データを再現することと、を更に含むことができる。プロセスは、プロセスステージの一部であり、データ経路を介してプロセスステージにおける第2の異なるプロセスと通信状態にある場合がある。この方法は、プロセスステージにおける各プロセスを介してチェックポイントコマンドメッセージを伝達することと、各プロセスにおいて、チェックポイントコマンドメッセージの受信時に初期状態又は終了状態に関する新しい情報を保存することであって、保存することが、プロセスの動作を中断すること及び新しい情報を記憶領域に保存することを含む、ことと、を更に含むことができる。コンピュータにより実施される方法は、古い保存された初期状態又は終了状態を新しい初期状態又は終了状態で上書きすることを更に含むことができる。
各プロセスは、プロセスのためのデータを受信しキューに入れるためのデータキューと通信状態にある場合がある。この方法は、トリガイベントの検出に応答してチェックポイントコマンドメッセージを生成することを更に含むことができる。トリガイベントは、ネットワークイベントに関する情報を含むことができる。この方法は、チェックポイントコマンドメッセージを定期的に生成することを更に含むことができる。
この方法は、処理している受信データレコード内の又はこのデータレコードから導出される選択されたデータ値の発生に応答してチェックポイントコマンドメッセージを生成することを更に含むことができる。この方法は、所定のイベントに応答してアボートコマンドメッセージを発生することと、プロセスステージにおける各プロセスを介してアボートコマンドメッセージを伝達することと、各プロセスにおけるアボートコマンドメッセージの受信時に、プロセスの実行をアボートし、アボートコマンドメッセージを次のプロセスに伝達することと、を更に含むことができる。この方法は、処理再開メッセージに含まれた情報に部分的に基づいて、保存された初期状態又は終了状態の選択された一方からプロセスの実行を再開することを更に含むことができる。この方法は、プロセスを初期化しプロセスの初期状態に関する情報を保存した実質的に直後の第1の実行フェーズ中にアボートコマンドメッセージを受信することと、プロセスをシャットダウンして再開する必要なく、保存された初期状態からプロセスの実行を再開することと、を更に含むことができる。
別の態様において、概して、コンピュータプログラムを記憶するコンピュータ読み取り可能記憶媒体は、初期化の時にプロセスの初期状態に関する情報を記憶することであって、プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、及び実行フェーズの実行の完了時に実行フェーズの終了状態を表す情報を記憶することと、所定のイベントに応答してプロセスの実行をアボートすることと、プロセスをシャットダウンする必要なく、保存された初期状態及び終了状態の一方からプロセスの実行を再開することと、をコンピューティングシステムに実行させるための命令を含む。
別の態様において、概して、コンピューティングシステムは、初期化の時にプロセスの初期状態に関する情報を受信し記憶するように構成され、プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、更に、実行フェーズの実行の完了時に実行フェーズの終了状態を表す情報を記憶する、入力デバイス又はポートと、少なくとも1つのプロセッサであって、所定のイベントに応答してプロセスの実行をアボートし、プロセスをシャットダウンする必要なく、保存された初期状態及び終了状態の一方からプロセスの実行を再開する、ように構成された少なくとも1つのプロセッサと、を含む。
別の態様において、概して、コンピューティングシステムは、初期化の時にプロセスの初期状態に関する情報を記憶し、プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、更に、実行フェーズの実行の完了時に実行フェーズの終了状態を表す情報を記憶するための手段と、プロセスの実行を制御するための手段であって、制御が、所定のイベントに応答してプロセスの実行をアボートすることと、プロセスをシャットダウンする必要なく、保存された初期状態及び終了状態の一方からプロセスの実行を再開することと、を含む、手段と、を含む。
複数の態様は以下の利点の1つ以上を含むことができる。
マルチプロセス処理システムにおけるプロセスは、別個の実行フェーズにおいて実行することができる。システム障害のイベントでは、処理システムを終結させて最後に完了したチェックポイントから再開することは、必要以上の量の処理時間及びリソースを消費する可能性がある。例外条件に応答して処理システムがそのアクティビティを終結させた後、処理システムは、かかるシステムの経験者である情報技術の専門家によって手作業で再初期化しなければならない場合がある。この結果、著しいシステムダウンタイムとなることがある。ある例では、システム障害を検出して専門家に通知するために別個のプロセスを設計する必要がある場合がある。このため、効率を向上させると共に処理リソースの消費を軽減するため、処理システム内のプロセスは、プロセスに対する接続障害の復元時に、システム全体を再開するのではなく、最後に記録したチェックポイントから実行することができる。1つの実施においては、システム全体を終結させて再開するのではなく、接続障害が復元されるまで処理を中断することをシステム内の個々のプロセスに通知することができる。
本発明の他の特性及び利点は、以下の記載から及び特許請求の範囲から明らかとなろう。
マルチプロセスデータ処理システムのブロック図である。 例示的なマルチプロセスデータ処理システムを示す。 例示的なマルチプロセスデータ処理システムを示す。 例示的なチェックポインティングプロセスを示すフローチャートである。 例示的な回復機構のフローチャートである。 例示的な回復機構のフローチャートである。
図1を参照すると、データ処理システム100は、データを処理するために合理的に配置された多数のプロセスを提供する。例示的なシステム100内で、データは、データソース102(例えばウェブサーバとして機能するサーバ104上で実行されているアプリケーション)から受信される。そして、データは、コンピュータシステム108上で実行されているか又は分散して(例えば2つ以上のネットワーク化コンピュータ端末によって)実行されているマルチプロセスデータ処理モジュール106に伝達される。データ処理モジュール106は、システム100のデータ処理の側面を監視し、制御し、実行する。かかる処理を提供するため、データ処理モジュール106は、1つ以上のプロセス116、118による処理対象のデータを記憶することができる1つ以上のキュー110、112、114を含む。この例では、図示のように、データソース102から受信されたデータは、初期データキュー110に記憶され、定期的に初期プロセス116に与えられる。プロセス116は、データを処理(例えば変換、フィルタリング、内容確認等)し、処理したデータを1つ以上の下流データキュー112、112’に提供する。次のプロセス118、118’は、キュー112、112’からのデータが与えられ、他の(又は同様の)処理を実行することができ、この後でその結果を他の下流データキュー114、114’に送出する。例示するデータ処理モジュール106のキュー及びプロセスのレイアウトは、利用可能な多くの考えられる処理スキームの1つである。例えば、データ処理モジュール106は、図示するプロセスの上流、下流、又はこのプロセスとは無関係に配置することができる追加プロセス(例えば並列又は直列の実行のため)を含むことも可能である。ある例では、最後のキューセット(例えばキュー114及び114’)からのデータは、リレーショナルデータベース管理システム(RDBMS)等の宛先アプリケーション120(又は多数のアプリケーション)に出力することができる。
データ処理モジュール106に含まれるプロセスは、外部デバイス及び/又は他の処理システム(例えばコンピュータシステム122)と通信状態にすることができる。例えば、プロセスは、他のシステムからこのプロセスにメッセージを提供するJMS(Java (登録商標) Message Service)キューと通信状態にすることができる。ある例では、データ処理モジュール106内のプロセスは、(例えば外部システム122に配置された)1つ以上のデータベースと通信状態にすることができる。例えば、モジュール106は、1つ以上の現金自動預払機(ATM)において対応する顧客のセッションから受信された情報に基づいて、銀行データベース内の顧客の金融口座に対する更新を実行することができる。
一例として、図2は、処理システム200を示し、これは、遠隔で実行される処理モジュール202(ATM204により実行される)を有する。モジュール202は、中央位置で処理するデータを提供するために用いられている。図示する例では、例えばATM読み出しプロセス206のような初期プロセスが、ATMから(例えばトランザクションに関連付けられた)顧客の口座データを受信し、口座の詳細を認証するためにこのデータを口座確認プロセス208に渡すことができる。この例では、口座確認プロセス208は、顧客が個人識別番号(PIN)データベース210に対して入力したPINを検証することができる。一旦、顧客の本人確認が認証されると、更にデータレコードを下流の残高チェックプロセス212に伝達することができる。プロセス212は、例えば識別した顧客口座の残高をチェックするために第2の異なるデータベース214と通信を行うことができる。更に別のトランザクションが完了した後、追加データを下流の残高更新プロセス216に送信することができる。プロセス216は、例えば顧客口座に関連付けられた残高情報を更新するために第3のデータベース218と通信を行うことができる。回答生成プロセス220では、トランザクションの出力概要を用意することができ、これを(例えば顧客に対してATM204上で表示するために)出力表示プロセス222に提供することができる。システムレベルのモニタリング(例えばシステム品質保証)又は他の用途では、データベース210、214、及び218は、マスターデータサーバ224と通信状態にすることができる。ある実施において、データベースは、例えばスタンドアロンのコンピュータシステム226によって実行されてもよい。
かかるマルチプロセス処理システムにおけるプロセスは、別個の実行フェーズにおいて実行することができる。プロセスの実行は、別個の実行フェーズにおけるプロセス内での1つ以上のタスクの実行を含むことができる。このようなフェーズに実行をセグメント化することによって、別個の実行フェーズを、例えばデータ処理における多数の論理エンドポイント又はブレークポイントによって終結させることができる。各実行フェーズは、その実行フェーズの目的を達成するために1つ以上の処理アクションを有する場合がある。一例として、口座確認プロセス208は、1つ以上の方法で別個の実行フェーズで実行することができる。例えば第1の実行フェーズとして、口座確認プロセス208は最初に顧客から個人識別番号(PIN)情報を受信することができる。顧客からPIN情報を受信する際の様々な処理アクションは、例えば、ATMディスプレイ上にプロンプトを表示すること、及びPIN情報のデータ入力を検証するためのルーチンを実行することを含むことができる。次の実行フェーズでは、プロセス208は、データベース210に対する接続を確立し、PIN情報をキーとして用いて顧客のレコードを識別することができる。一旦、プロセス208が、顧客のレコードとのトランザクションを完了したら、データベース210に対する接続を終結させることができる。最後の実行フェーズでは、プロセス208は、前述のトランザクションに基づく結果を発生することができる。このように、これらの実行フェーズの各々は、口座確認プロセス208を一時的に中断及び/又は再開することができる別個の論理エンドポイント(又は処理ブレークポイント)を含む。
ある状況において、正常なシステム動作の過程に影響を及ぼす傾向がある1つ以上のイベントが発生することがある。かかるイベントは、処理システムに含まれるハードウェアモジュール又はソフトウェアモジュールのいずれかにより生じる例外又はエラーであり得る。例えば、ハードウェアの例外又はエラーは、1つ以上のハードウェアユニットからのリセット、割込、又は他の信号を含む場合がある。また、ゼロ除算、オーバーフロー、命令復号エラー、未定義命令等の数値的エラーについて、演算論理によって例外が発生する場合がある。1つ以上のそのようなイベントの発生に基づいて、補正アクション(例えば保守、二次システムへの切り換え等)を行うために、データベースの1つ以上の動作を一時的に停止させる必要がある場合がある。
動作の停止及び補正アクションを必要とする場合がある他のイベントには、データベース210〜224の1つ以上の障害の検出が含まれ得る。かかる障害は、様々な理由で発生する可能性がある。例えば、メモリ割り当てにエラーがあるか、又はメモリ空間への書き込みに競合がある場合に障害が起こり得る。また、プロセスが残高ゼロの口座から資金を引き出そうとした場合等、根本的なデータ動作のエラーでも障害が起こり得る。一時的な障害があるイベントに加えて、オペレータの介入によって誘発されるイベントによっても障害が起こり得る。ある実施では、オペレータは、障害を引き起こした状況を補正することができ、又は、システムがやがてその状況を補正する場合がある。イベントの例は、ネットワークに接続された1つ以上のデバイスの障害、保守のための1つ以上のデバイス又はソフトウェアサービスのシャットダウン、デバイス又はソフトウェアサービスの障害及び切り換え、記憶空間等のリソースの使い果たし、処理ユニットの過負荷、1つ以上のソフトウェアサービスのタイムアウトを含み得るが、これらに限られるものではない。
かかるイベントを検出し、これに対処するため、データ処理システムは、チェックポインティング技法と称されることが多い1つ以上の技法を用いて、障害イベントにおいて又はシステムが保守又は切り換えのためにオフラインとなった場合においてシステムダウンタイムを最小限に抑えることを保証することができる。チェックポインティング技法は、概して、プロセスの現在の状態の詳細をチェックポイントレコードとして記憶することを含み、プロセスが、後にその状態から再開するために、記憶された情報を用いることができる。例えば、口座確認プロセス208は、各実行フェーズの完了時に(次の実行フェーズ又は他の処理の実行を開始する前に)チェックポイントレコードにその現在の状態を保存することができる。
チェックポイントレコードは、プロセス値、処理が成功したレコードに関する情報、及びプロセスの現在の実行フェーズに関連した他の詳細等、様々なタイプの情報を含むことができる。例えばチェックポイントレコードは、データが処理されているデータキュー(例えば図1のデータキュー112)内の現在の位置に関する情報を含むことができる。このため、動作の停止後、このキュー位置から処理を再開することができる。これによって、システム障害からの回復後、プロセスは、初期状態から再開するのではなく、記憶した中間チェックポイントから再開することができる。
一例として、PINデータベース210に障害が発生した場合、口座確認プロセス208は例外を生じて処理システム全体を終結させることができる。再開時、処理システム内のプロセス(又はプロセスの一部)は、最後のチェックポイント状態から処理を継続することができる。この例では、顧客が自身のPIN情報を提供した後の時点で、障害及び再開が発生するので、PIN情報はプロセスに復元され、顧客からPIN情報を再収集する必要はない。従って、顧客にPIN情報を提供するように再び要求する必要をなくすことができる。
システム障害のイベントでは、処理システムを終結させ、最後に完了したチェックポイントから処理システムを再開することは、必要以上の量の処理時間及びリソースを消費する可能性がある。例外条件に応答して処理システムがそのアクティビティを終結させた後、処理システムは、かかるシステムの経験者である情報技術の専門家によって手作業で再初期化しなければならない場合がある。この結果、著しいシステムダウンタイムとなることがある。ある例では、システム障害を検出して専門家に通知するために、別個のプロセスを設計することを必要とすることがある。チェックポインティングシステムの例は、「Continuous Flow Checkpointing Data Processing」と題する米国特許第6,584,581号、「Overpartitioning system and method for increasing checkpoints in component-based parallel applications」と題する米国特許第5,819,021号、及び「Methods and Systems for Reconstructing the State of a Computation」と題する米国特許第5,712,971号に記載されている。これらの各々の内容はその全体が本願にも含まれるものとする。
効率を向上させると共に処理リソースの消費を軽減するため、処理システム内のプロセスは、プロセスに対する接続障害の復元時に、システム全体を再開するのではなく、最後に記録したチェックポイントから実行する。1つの実施においては、システム全体を終結させて再開するのではなく、接続障害が復元されるまで処理を中断することをシステム内の個々のプロセスに通知することができる。
図3は、マルチプロセスシステム300のブロック図を示す。システム300は、データソースプロセス302、プロセス304a〜n、データシンクプロセス306、及び他のプロセス(プロセス302、304a〜n)の各々と通信状態にあるフォルトトレランスマネージャ308を含む。ある実施において、フォルトトレランスマネージャ308は、マルチプロセスシステム300内の別のプロセスとして実行することができる。ある状況では、フォルトトレランスマネージャ308は、別個のコンピュータシステム(図示せず)上で実行しているか又はチェックポイントプロセッサ等の専用プロセッサで実行されているアプリケーションであってもよい。チェックポイントプロセッサは、例えば「Continuous Flow Checkpointing Data Processing」と題する米国特許第6,584,581号に記載されている。その内容は全体が本願にも含まれるものとする。
1つ以上の技法を実施して、プロセス302〜306とフォルトトレランスマネージャ308との間の通信を確立することができる。例えば、プロセス302〜306で発生し得る例外条件に関する情報を伝達するために、個々の例外チャネル310a〜nを用いることができる。チャネル310a〜nは、有線、無線、又は有線及び無線を組み合わせたネットワークシステムの一部とすることができる。チャネル310a〜nは、プロセス302〜306により用いられて、プロセス302〜306に関するエラー情報をフォルトトレンランスマネージャ308に伝達することができる。例えば、プロセス304aと通信状態にある外部デバイスに障害が発生した場合、プロセス304aは、直ちにエラーフラグを立てて、このエラーを、例外チャネル310bを介してフォルトトレランスマネージャ308に伝達することができる。
例外チャネル310a〜nに加えて、フォルトトレランスマネージャ308は、対応する通信チャネル312a〜eを介してプロセス302〜306にコマンドメッセージ(例えばチェックポイントコマンドメッセージ)を送信することができる。通信チャネル312a〜eは、フォルトトレンランスマネージャ308からのコマンドメッセージをプロセス302〜306の各々に順次送信するように構成されている。例えば、フォルトトレンランスマネージャ308からのメッセージは、最初にデータソースプロセス302に伝達され、次いでチャネル312b〜dを介して各々のプロセス304a〜n及びデータシンクプロセス306にシリアルに送ることができる。データシンクプロセス306は、チャネル312eを用いてコマンドメッセージをフォルトトレンランスマネージャ308に伝達することができる。
各々のプロセス302、304a〜n、306に関連付けられた各チェックポイントデータを記憶するため、各プロセスに記憶領域(例えばメモリ)を割り当てることができる。各プロセスは、別個の実行フェーズの終了時に、その現在の動作を定期的に中断し、そのチェックポイントデータを関連付けられた記憶領域に記憶する。例えば、データソースプロセス302は、処理における別個の実行フェーズの終了時に(受信データのストリームにおける論理ブレークポイント等)、その現在の動作を定期的に中断することができ、チェックポイント情報を記憶領域312に記憶する。このように、プロセス302、304a〜n、306の各々が実行されると、対応する記憶領域312、314a〜n、及び316は、定期的にチェックポイントデータを保存する。記憶領域312〜316は、例えば磁気媒体のような不揮発性記憶等、ハードディスクドライブ等の様々なタイプの記憶技法によって実施することができる。ある例では、単一の記憶領域を2つ以上のプロセスによって共有することも可能である。チェックポイントデータは、現在の状態に関する情報及び/又はプロセス302〜306に関連付けられたデータを含んで、後の時点でそれらの状態の再構築を可能とすることができる。
ある例では、データ記憶領域312〜316は、プロセスに関連付けられたデータキュー(例えば図1のキュー110、112、及び114)も記憶することができる。例えば記憶領域316は、プロセス304nから処理済みデータを受信するためのキューを含むことができ、ここからデータを出力又は公表(例えば印刷又は表示)することができる。
フォルトトレンランスマネージャ308は、チェックポイントコマンドメッセージを生成し、通信チャネル312a〜eを介して各プロセス302〜306に順次送ることによって、チェックポインティング動作を管理する。チェックポイントコマンドメッセージは、各プロセス302〜306を通るので、プロセスは、メッセージを受信するとその現在の状態のチェックポイントを行うことができる。このように、チェックポイントコマンドメッセージは、データソースプロセス302に伝わり、次いで各プロセス304a〜n及びデータシンクプロセス306を順次通り、その後でフォルトトレンラスマネージャ308に戻される。このチェックポインティング動作は、一定間隔で自動的に開始することができる。例えばフォルトトレランスマネージャ308は、例えば5分ごと等の所定の定期的なペースでチェックポイントコマンドメッセージを送信することができる。定期的なペースは、デフォルト値に設定することができ、又はユーザにより調節することも可能である。
システムに含まれるプロセスについてチェックポイントを記憶する動作を開始するために、1つ以上の技法を実施することができる。例えば、1つ以上の外部トリガが、チェックポイント情報を記憶するための動作を開始することができる。一例では、ネットワークメッセージが、フォルトトレランスマネージャ308に、今にも起こりそうなネットワークシャットダウンを通知し、これによってチェックポインティング動作をトリガすることができる。ある実施では、チェックポインティング動作は、処理しているデータレコード内の又はそれから導出される値に応答してトリガすることができる。例えば、処理済みデータレコードは、チェックポインティングを実行することができる論理ポイントと考えられるタイムスタンプ又はブレークポイント値を含むことができる。
システムによってデータを処理している期間中にチェックポイント情報を記憶することに加えて、データ処理の前に情報を記憶することが可能である。1つの実施では、マルチプロセスシステム300が最初に初期化された時、例えば起動中に、初期チェックポインティング動作をトリガすることができる。フォルトトレランスマネージャ308は、各々のプロセス302〜306を経るように初期チェックポイントコマンドメッセージを送ることができる。図3に示す例では、初期チェックポイントメッセージは、最初にデータソースプロセス302に伝達される。データソースプロセス302は、直ちにチェックポイントを行う。例えば、その初期状態を表すデータを関連付けられたデータ記憶空間312に記憶し、初期チェックポイントメッセージを下流の次のプロセス304aに渡す。この初期チェックポイント状態をチェックポイント状態ゼロと称する。
同様に、シリアルに、各々のプロセス304〜306は、その初期状態及び関連付けられたデータ値を適切な記憶領域にチェックポイント状態ゼロとして同様に記憶することができる。例として、初期状態及び関連付けられたデータ値は、グローバル変数の初期値、参照データ情報、及びカウンタの初期値を含む監査変数(auditing variables)を含むことができる。
各々のプロセス302〜306が、その初期状態を記憶した後、初期チェックポイントコマンドメッセージは、チャネル312eを介してフォルトトレンランスマネージャ308に戻される。プロセス302、304a〜n、306を通って一周した後にメッセージをフォルトトレンランスマネージャ308に戻すことに基づいて、フォルトトレランスマネージャは、プロセス302〜306がチェックポイント状態ゼロを完了したことを通知される。ある実施では、下流プロセスが現在の状態を保存している間、ソース及び他の上流プロセスは、全てのプロセスが状態を保存するのを待つことなく、データの受信及び他の機能の実行を続けることができる。
同様に、プロセス302〜306の各別個の実行フェーズについて、追加のチェックポインティングを実行可能である。このため、初期チェックポイント情報を表すデータを記憶することに加えて、フォルトトレンランスマネージャ308は、例えば以降のチェックポイントサイクル(例えばチェックポイント状態1、2、3、...n)に関連付けられた情報を表す追加情報の記憶を開始することができる。以降のチェックポイント情報の記憶を開始するため、プロセス302、304a〜n、306に更に別のチェックポイントコマンドメッセージを伝搬する等の技法を利用することができる。チェックポイントコマンドメッセージを受信すると、プロセス304aは、進行中のタスクを完了するか、又は未完了のタスクを中断することができる。ある例では、プロセス304aは、データ記憶314に記憶された以前に生成したチェックポイントレコードを削除し、記憶空間を取り戻すことができる。次いでプロセス304は、その現在の状態及び関連付けられたデータのための新しいチェックポイントレコードを生成することができる。ある状況では、チェックポイントレコードは、メモリに永続的に記憶されるか、又は新しいチェックポイントレコードによって上書きされる。チェックポインティングレコードに記憶される情報の更に別の例が米国特許第6,584,581号に与えられている。その内容は全体が本願にも含まれるものとする。
ある実施において、プロセス304aは、(コンピュータシステム320上で実行される)外部データベース318と更に通信状態にすることができる。時に、データベース318に対する接続に障害が発生する場合があり、又はデータベース318が保守のためにオフラインとなる場合がある。この障害は、データベース318を実行しているコンピュータシステム320のハードウェア障害であり得る。かかる状況では、プロセス304aは、例外チャネル310bを介してエラーフラグを立てて、接続が失われたことをフォルトトレランスマネージャ308に通知することができる。
エラーの通知を受信すると、フォルトトレンランスマネージャ308は、アボート(abort)コマンドメッセージを生成して、このコマンドを、プロセス302〜306を介して伝搬させることができる。アボートコマンドメッセージは、典型的に、最初にチャネル312aによってデータソースプロセス302に伝達され、次いでチャネル312b〜dによって各々のプロセス302〜306に送られ、最後にチャネル312eによってフォルトトレンランスマネージャ308に戻される。各々のプロセス302〜306は、アボートコマンドメッセージを受信すると、(もしあれば)比較的小さい遅延でその現在のアクティビティをアボートし、最後のチェックポイント状態の後に処理されたかもしれない未完了のタスク又はレコードを流す(flush)/処分する。プロセスは、アクティビティをアボートした後、アボートコマンドメッセージを次の下流プロセスに渡すことができる。このように、アボートコマンドメッセージは、シンクプロセス306まで伝搬し、その後でフォルトトレンランスマネージャ308に戻される。フォルトトレンランスマネージャ308は、シンクプロセス306からアボートコマンドメッセージを受信するまで待機し、これによって、プロセス302〜306の全てが現在の処理タスクをアボートした(例えば休止状態にある)ことを確実とする。
コンピュータシステム320におけるハードウェア障害のために、データベース318に障害が発生した状況では、プロセス302〜306は、処理をアボートするように指示される。ある実施では、システムがその処理を完全にアボートした後、プロセス302は、指定可能な時間量(障害を補正するために要する平均時間量を反映するはずの時間)だけ待機し、最後に保存されたチェックポイント状態から再び処理を開始する。ある実施では、プロセス304aは、定期的にデータベース318をポーリングして、その状態をチェックする(すなわちデータベース318が動作可能であるか否かをチェックする)ことができる。ある例では、コンピュータシステム320は、データベース318が動作可能状態に復元された場合にプロセス304aに自動的に通知するように構成することができる。処理システム300は、データベース318との接続が復元されると、最後に保存されたチェックポイント状態から再び処理を開始することができる。
この点に関して、プロセス304aは、フォルトトレンランスマネージャ308に接続が復元されたことを通知する。フォルトトレンランスマネージャ308は、各々のプロセス302〜306について最後に正常に完了したチェックポイント状態を判定し、各々のプロセス302〜306に処理再開メッセージを送信する。他のコマンドメッセージと同様に、処理再開メッセージは、通信チャネル312a〜eを介して各々のプロセス302〜306に順次伝搬する。処理再開メッセージは、プロセス302〜306が処理を再開するチェックポイント状態を指定する。
ある例では、フォルトトレンランスマネージャ308は、前のチェックポインティング動作が現在実行されている間に追加のチェックポインティング動作を開始することができる。例えば、プロセス304nが任意のチェックポイント状態(例えばチェックポイントコマンドメッセージNに対応するチェックポイントN)を処理している間に、フォルトトレンランスマネージャ308は、次のチェックポイントコマンドメッセージN+1を生成してソースプロセス302に送信することによって次のチェックポイント状態(例えばチェックポイント状態N+1)を開始することができる。これによって、チェックポイントコマンドメッセージNがまだプロセス302〜306を伝わっている時に、新しい次のチェックポイントコマンドメッセージN+1を生成してプロセス302〜306に送信することができる。このように、フォルトトレンランスマネージャ308によって、前のチェックポインティング状態が完了するまで待つ必要なく、プロセス状態のチェックポインティングの頻度を高くすることができる。
ある状況では、1つ以上のチェックポイントコマンドメッセージがプロセス302、304a〜n、306を移動している間にシステム障害が発生し得る。例えば、フォルトトレンランスマネージャ308が、チェックポイントコマンドメッセージNを発生することでチェックポイント状態Nを開始したという状況について考える。チェックポイントコマンドメッセージNがプロセス302〜306により処理されている間、プロセスの1つ(例えばプロセス304a)と外部システム(例えばデータベース312)との間の接続に障害が発生する場合がある。この状況が警告されると、フォルトトレンランスマネージャ308は、これに応答して、プロセス302〜306にアボートコマンドメッセージを送信することができる。アボートコマンドメッセージは、まだチェックポイント状態Nを処理している(例えばチェックポイントNに関連付けられたチェックポイント情報を記憶している)プロセス(例えばプロセス304n)に到達することができる。アボートコマンドの受信に基づいて、プロセス304nは、1つ以上のアクションを実行することができる。例えばプロセス304nは、チェックポイント状態Nを完了させ、全ての更に別の処理をアボートすることができる。別の状況では、プロセス304nは、前のチェックポイント状態N−1以後の現在の状態及び以降の状態に関連付けられた結果を直ちに処分し、更に別の処理をアボートすることができる。この結果、システム300が休止となった場合、各々のプロセス302〜306は、異なるチェックポイント状態にあることがある。例えば、プロセス304nの上流にある全てのプロセス(例えばデータシンクプロセス306)は、チェックポイント状態Nを完了しており、一方でプロセス304nの下流にある全てのプロセス(例えばプロセス304a及びデータソースプロセス302)は、チェックポイントN−1のみを完了している場合がある。
システム300が処理を再開する準備ができたら、フォルトトレンランスマネージャ308は、通信チャネル312a〜eを介して各プロセスに1つ以上の処理再開メッセージを送信する。処理再開メッセージは、プロセスに対して、それらが実行するべきである最も早い完全にコミットされた(又は完了した)チェックポイントされた状態(例えばチェックポイント状態N−1)を示す。ある例では、すでにチェックポイント状態Nを完了したプロセスは、チェックポイント状態N−1からチェックポイント状態Nへ、その結果を単に再現することができる。このように、プロセス302〜306は、以前の作業の繰り返しを回避することができる。ある例では、チェックポイント状態N−1からチェックポイント状態Nへの結果の再現は、2つのチェックポイント状態間に発生したかもしれない以前の処理アクションの結果を再現することを含む。
例として、実質的に起動直後に、システム障害が発生することがある。かかる状況では、プロセス302〜306の多くがチェックポイント状態ゼロのみを完了している場合がある。これらのプロセス302〜306は、対応するチェックポイントレコードに記憶された初期化データ及び起動値に基づいてチェックポイント状態ゼロから処理を再開することができる。
図4は、マルチプロセスシステム内のプロセス(例えば図3のプロセス302)の例示的な実行を示すフローチャートである。起動時に、プロセスは、その初期状態をチェックポイント状態ゼロとしてデータ記憶部に直ちに記憶する(ステップ402)。プロセスは次いで別個の実行フェーズ(例えば実行フェーズ1、2、...N−1)で実行することができる。各実行フェーズの完了時に、プロセスはその終了状態をデータ記憶部に保存することができる。例えば、終了状態をチェックポイント状態として記憶することができる。例えば第1の実行フェーズ後、プロセスは、第1の実行フェーズの終了状態をチェックポイント状態1として保存することができる(ステップ404)。同様に、以降の実行フェーズ後、プロセスは、実行フェーズの終了状態をチェックポイント状態2、...N−1、及びNとして保存することができる(ステップ406〜410)。
図5は、外部システムに障害が発生したか又は保守のためにオフラインとなった場合に実行される例示的なステップを示すフローチャートである。例えば、外部システムは、処理システム内のプロセスと通信状態にあるデータベース(例えば図3のデータベース312)であってもよい。外部システムが保守のためにオフラインとなるか又はこれに障害が発生すると、例えば障害が発生した外部システムと通信状態にあるプロセスによって、エラーフラグが立てられる(ステップ502)。エラーフラグに応答して、アボートコマンドメッセージが生成され、プロセスを介して伝搬される(ステップ504)。プロセスがアボートコマンドメッセージを受信すると、各プロセスの現在のアクティビティがアボートされる(ステップ506)。また、最後のチェックポイント状態以降に実行されたあらゆるトランザクションをプロセスによって処分することができる。次いで、外部システムに対する接続障害が復元されるまで更に別のアクションはアボートされる(ステップ508)。接続が復元されると、処理再開メッセージが各プロセスに送信される(ステップ510)。処理再開メッセージは、プロセスが処理を再開するべきであるチェックポイント状態を示す。このため、各プロセスは、関連付けられた記憶領域からチェックポイント状態に関する関連情報を検索する(ステップ512)。
図6は、プロセスの実行中にチェックポイントを記憶し、このチェックポイントから再開する際に実行される例示的なステップを示すフローチャートである。例えば、プロセスの初期化時に、プロセスの初期状態に関する情報が、関連付けられた記憶領域に記憶される(ステップ602)。次いでプロセスは、別個の実行フェーズで実行される。このため、各実行フェーズの終了時に、プロセスは、実行フェーズの終了状態を表す情報を記憶する(ステップ604)。所定のイベントが発生すると、例えば外部デバイスに対する接続が失われると(ステップ608)、プロセスの実行がアボートされる(ステップ606)。その間、プロセスは、アボートをトリガしたイベントがクリアされた(例えば外部デバイスに対する接続の復元)か否かを調べるためにチェックを行う。この時間中、プロセスは、シャットダウンされず、イベントがクリアされたと見なされるまで処理がアボートされる。プロセスの実行は、最後に保存された初期状態又は終了状態から再開される(ステップ610)。
上述の技法は、コンピュータ上で実行するためのソフトウェアを用いて実施可能である。例えばソフトウェアは、1つ以上のプログラミングされたか又はプログラマブルなコンピュータシステム(これは、分散型、クライアント/サーバ、又はグリッド等の様々なアーキテクチャのものであり得る)で実行する1つ以上のコンピュータプログラムにおいて手順を形成し、その各々のコンピュータシステムは、少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性及び不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つの入力デバイス又はポート、及び少なくとも1つの出力デバイス又はポートを含む。ソフトウェアは、例えばデータフローグラフの設計及び構成に関連した他のサービスを提供するもっと大型のプログラムの1つ以上のモジュールを形成することができる。グラフのノード及び要素は、コンピュータ読み取り可能媒体に記憶されたデータ構造又はデータレポジトリに記憶されたデータモデルに合致する他の組織化データとして実施することができる。
ソフトウェアは、汎用又は特殊目的のプログラマブルコンピュータによって読み取り可能なCD−ROM等の記憶媒体上で提供するか、又はソフトウェアが実行されるコンピュータに対するネットワークの通信媒体を介して送出する(伝搬信号に符号化されている)ことができる。機能は全て、特殊目的コンピュータ上で、又はコプロセッサ等の特殊目的ハードウェアを用いて実行可能である。ソフトウェアは分散型で実施して、ソフトウェアによって指定される計算の異なる部分を異なるコンピュータによって実行することができる。そのような各コンピュータプログラムは、好ましくは、汎用又は特殊目的のプログラマブルコンピュータによって読み取り可能な記憶媒体又はデバイス(例えば固体メモリもしくは媒体、又は磁気もしくは光媒体)上に記憶するか又はこれにダウンロードして、この記憶媒体又はデバイスがコンピュータシステムによって読み出されて本明細書に記載した手順を実行する場合にコンピュータを構成し動作させる。また、本発明のシステムは、コンピュータプログラムを用いて構成されるコンピュータ読み取り可能記憶媒体として実施されるものとして考えることができ、そのように構成された記憶媒体によってコンピュータシステムは特定の既定の方法で動作して本明細書に記載された機能を実行する。
本発明の多数の実施形態について記載した。しかしながら、本発明の精神及び範囲から逸脱することなく様々な変形を実施可能であることは理解されよう。例えば、上述のステップのいくつかは順序に依存せず、従って記載したものとは異なる順序で実行可能である。
前述の記載は、添付の特許請求の範囲によって規定される本発明の範囲を例示することを意図しており、これを限定することは意図していないことは理解されよう。例えば、上述の多数の機能ステップは、全体的な処理に著しい影響を及ぼすことなく異なる順序で実行可能である。他の実施形態も以下の特許請求の範囲内にある。

Claims (23)

  1. コンピュータにより実施される方法であって、
    初期化の時にプロセスの初期状態に関する情報を記憶することであって、前記プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、及び前記実行フェーズの前記実行の完了時に前記実行フェーズの終了状態を表す情報を記憶することと、
    所定のイベントに応答して前記プロセスの実行をアボートすることと、
    前記プロセスをシャットダウンする必要なく、前記保存された初期状態及び終了状態の一方から前記プロセスの実行を再開することと、
    を含む、方法。
  2. 前記所定のイベントが外部デバイスに対する接続の切断を表す、請求項1に記載のコンピュータにより実施される方法。
  3. 前記所定のイベントが外部デバイスによるエラーを表す、請求項1に記載のコンピュータにより実施される方法。
  4. 前記外部デバイスに対する前記接続が復元された場合に、前記プロセスの前記実行が再開される、請求項2に記載のコンピュータにより実施される方法。
  5. 前記外部デバイスによる前記エラーがクリアされた場合に、前記プロセスの前記実行が再開される、請求項3に記載のコンピュータにより実施される方法。
  6. 前記所定のイベントが発生した実行フェーズの前に記憶された終了状態から、前記プロセスの前記実行が再開される、請求項1に記載のコンピュータにより実施される方法。
  7. 前記プロセスの実質的に起動直後の実行フェーズ中に前記所定のイベントが発生した場合、前記初期状態から前記プロセスの前記実行を再開する、請求項1に記載のコンピュータにより実施される方法。
  8. 実行フェーズの実行が、受信したデータストリームに1つ以上の処理アクションを実行して前記実行フェーズに対応する出力データを生成することを含む、請求項1に記載のコンピュータにより実施される方法。
  9. 1つ以上の実行フェーズに対応した前記出力データを記憶することと、
    前記プロセスの実行が再開される場合に前記出力データを再現することと、
    を更に含む、請求項8に記載のコンピュータにより実施される方法。
  10. 前記プロセスが、プロセスステージの一部であり、データ経路を介して前記プロセスステージにおける第2の異なるプロセスと通信状態にある、請求項1に記載のコンピュータにより実施される方法。
  11. 前記プロセスステージにおける各プロセスを介してチェックポイントコマンドメッセージを伝達することと、
    各プロセスにおいて、前記チェックポイントコマンドメッセージの受信時に初期状態又は終了状態に関する新しい情報を保存することであって、前記保存することが、前記プロセスの動作を中断すること及び前記新しい情報を記憶領域に保存することを含む、ことと、
    を更に含む、請求項10に記載のコンピュータにより実施される方法。
  12. 古い保存された初期状態又は終了状態を前記新しい初期状態又は終了状態で上書きすることを更に含む、請求項11に記載のコンピュータにより実施される方法。
  13. 各プロセスが、前記プロセスのためのデータを受信しキューに入れるためのデータキューと通信状態にある、請求項11に記載のコンピュータにより実施される方法。
  14. トリガイベントの検出に応答して前記チェックポイントコマンドメッセージを生成することを更に含む、請求項11に記載のコンピュータにより実施される方法。
  15. 前記トリガイベントがネットワークイベントに関する情報を含む、請求項14に記載のコンピュータにより実施される方法。
  16. 前記チェックポイントコマンドメッセージを定期的に生成することを更に含む、請求項11に記載のコンピュータにより実施される方法。
  17. 処理している受信データレコード内の又は前記データレコードから導出される選択されたデータ値の発生に応答して前記チェックポイントコマンドメッセージを生成することを更に含む、請求項11に記載のコンピュータにより実施される方法。
  18. 前記所定のイベントに応答してアボートコマンドメッセージを生成することと、
    前記プロセスステージにおける各プロセスを介して前記アボートコマンドメッセージを伝達することと、
    各プロセスにおける前記アボートコマンドメッセージの受信時に、前記プロセスの実行をアボートし、前記アボートコマンドメッセージを次のプロセスに伝達することと、
    を更に含む、請求項11に記載のコンピュータにより実施される方法。
  19. 処理再開メッセージに含まれた情報に部分的に基づいて、前記保存された初期状態又は終了状態の選択された一方から前記プロセスの実行を再開することを更に含む、請求項1に記載のコンピュータにより実施される方法。
  20. 前記プロセスを初期化し前記プロセスの前記初期状態に関する情報を保存した実質的に直後の第1の実行フェーズ中に前記アボートコマンドメッセージを受信することと、
    前記プロセスをシャットダウンして再開する必要なく、前記保存された初期状態から前記プロセスの実行を再開することと、
    を更に含む、請求項17に記載のコンピュータにより実施される方法。
  21. 初期化の時にプロセスの初期状態に関する情報を記憶することであって、前記プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、及び前記実行フェーズの前記実行の完了時に前記実行フェーズの終了状態を表す情報を記憶することと、
    所定のイベントに応答して前記プロセスの実行をアボートすることと、
    前記プロセスをシャットダウンする必要なく、前記保存された初期状態及び終了状態の一方から前記プロセスの実行を再開することと、
    をコンピューティングシステムに実行させるための命令を含むコンピュータプログラムを記憶するコンピュータ読み取り可能な記憶媒体。
  22. 初期化の時にプロセスの初期状態に関する情報を受信し記憶するように構成され、前記プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、更に、前記実行フェーズの前記実行の完了時に前記実行フェーズの終了状態を表す情報を記憶する、入力デバイス又はポートと、
    少なくとも1つのプロセッサであって、
    所定のイベントに応答して前記プロセスの実行をアボートし、
    前記プロセスをシャットダウンする必要なく、前記保存された初期状態及び終了状態の一方から前記プロセスの実行を再開する、
    ように構成された少なくとも1つのプロセッサと、
    を含むコンピューティングシステム。
  23. 初期化の時にプロセスの初期状態に関する情報を記憶し、前記プロセスの実行が少なくとも1つの実行フェーズを実行することを含み、更に、前記実行フェーズの前記実行の完了時に前記実行フェーズの終了状態を表す情報を記憶するための手段と、
    前記プロセスの実行を制御するための手段であって、前記制御が、
    所定のイベントに応答して前記プロセスの実行をアボートすることと、
    前記プロセスをシャットダウンする必要なく、前記保存された初期状態及び終了状態の一方から前記プロセスの実行を再開することと、
    を含む、手段と、
    を含むコンピューティングシステム。
JP2016201286A 2011-02-18 2016-10-12 プロセスの再開 Active JP6556110B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/030,998 US9021299B2 (en) 2011-02-18 2011-02-18 Restarting processes
US13/030,998 2011-02-18

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013554594A Division JP2014509012A (ja) 2011-02-18 2012-02-16 プロセスの再開

Publications (2)

Publication Number Publication Date
JP2017041263A true JP2017041263A (ja) 2017-02-23
JP6556110B2 JP6556110B2 (ja) 2019-08-07

Family

ID=45809631

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013554594A Pending JP2014509012A (ja) 2011-02-18 2012-02-16 プロセスの再開
JP2016201286A Active JP6556110B2 (ja) 2011-02-18 2016-10-12 プロセスの再開

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013554594A Pending JP2014509012A (ja) 2011-02-18 2012-02-16 プロセスの再開

Country Status (8)

Country Link
US (2) US9021299B2 (ja)
EP (1) EP2676198A1 (ja)
JP (2) JP2014509012A (ja)
KR (1) KR20140004702A (ja)
CN (1) CN103370693B (ja)
AU (1) AU2012217621B2 (ja)
CA (1) CA2826282C (ja)
WO (1) WO2012112748A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
FR2991840A1 (fr) * 2012-06-11 2013-12-13 France Telecom Procede de traitement de donnees par un module de navigation
KR102179669B1 (ko) 2013-10-21 2020-11-17 아브 이니티오 테크놀로지 엘엘시 데이터 유닛들의 컬렉션 체크포인팅
CN104346233B (zh) * 2014-10-13 2017-12-26 中国外汇交易中心 一种用于计算机系统的故障恢复方法及装置
JP6495779B2 (ja) * 2015-08-11 2019-04-03 日本電信電話株式会社 演算処理管理方法及び演算装置
EP3614266B1 (en) * 2016-01-14 2022-03-09 AB Initio Technology LLC Recoverable stream processing
US10002004B2 (en) * 2016-05-26 2018-06-19 International Business Machines Corporation Stream computing application shutdown and restart without data loss
US10073746B2 (en) * 2016-07-12 2018-09-11 Advanced Micro Devices, Inc. Method and apparatus for providing distributed checkpointing
US10459811B2 (en) * 2016-08-19 2019-10-29 Bank Of America Corporation System for increasing intra-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US10180881B2 (en) * 2016-08-19 2019-01-15 Bank Of America Corporation System for increasing inter-application processing efficiency by transmitting failed processing work over a processing recovery network for resolution
US10270654B2 (en) 2016-08-19 2019-04-23 Bank Of America Corporation System for increasing computing efficiency of communication between applications running on networked machines
US10459894B2 (en) * 2016-09-22 2019-10-29 Bank Of America Corporation Database shutdown and restart stability optimizer
US10379968B2 (en) * 2017-05-05 2019-08-13 Pivotal Software, Inc. Backup and restore framework for distributed computing systems
CN108153620A (zh) * 2017-12-27 2018-06-12 深圳豪客互联网有限公司 一种进程控制方法及装置
CN110071880B (zh) * 2018-01-24 2021-06-18 北京金山云网络技术有限公司 报文转发方法、转发装置、服务器及存储介质
US10628321B2 (en) * 2018-02-28 2020-04-21 Qualcomm Incorporated Progressive flush of cache memory
CN108874549B (zh) * 2018-07-19 2021-02-02 北京百度网讯科技有限公司 资源复用方法、装置、终端和计算机可读存储介质
KR102700419B1 (ko) * 2018-09-04 2024-08-30 삼성전자주식회사 전자장치 및 그 제어방법
SG11202102413PA (en) * 2018-09-25 2021-04-29 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
CN109274544B (zh) * 2018-12-11 2021-06-29 浪潮(北京)电子信息产业有限公司 一种分布式存储系统的故障检测方法及装置
CN113256909A (zh) * 2020-12-31 2021-08-13 深圳怡化电脑股份有限公司 设备驱动自恢复的方法、系统、存取款设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189016A (ja) * 1992-01-10 1993-07-30 Mitsubishi Electric Corp シーケンスコントローラ及びその順序制御方法
JPH09269905A (ja) * 1996-01-31 1997-10-14 Toshiba Corp 計算機システム
JPH113293A (ja) * 1997-06-13 1999-01-06 Nec Software Ltd 計算機システム
JP2002505768A (ja) * 1995-12-11 2002-02-19 エービー イニティオ ソフトウェア コーポレーション 計算の状態を再構成する方法ならびにシステム
JP2003516581A (ja) * 1999-12-06 2003-05-13 エービー イニティオ ソフトウェア コーポレーション 連続フローチェックポイント設定データ処理法
JP2010012718A (ja) * 2008-07-04 2010-01-21 Canon Inc 印刷システム及び印刷制御方法、プログラム、印刷装置
JP2011022959A (ja) * 2009-07-21 2011-02-03 Mitsubishi Electric Corp プロセス実行装置及びコンピュータプログラム及びプロセス実行方法

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819021A (en) 1995-12-11 1998-10-06 Ab Initio Software Corporation Overpartitioning system and method for increasing checkpoints in component-based parallel applications
KR970029114U (ko) * 1995-12-28 1997-07-24 윈드 실드 글래스의 시일링 구조
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6289474B1 (en) 1998-06-24 2001-09-11 Torrent Systems, Inc. Computer system and process for checkpointing operations on data in a computer system by partitioning the data
US7203732B2 (en) * 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
US7213063B2 (en) * 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
GB0017336D0 (en) * 2000-07-15 2000-08-30 Ibm Preferable modes of software package deployment
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6766471B2 (en) * 2000-12-28 2004-07-20 International Business Machines Corporation User-level checkpoint and restart for groups of processes
US7412520B2 (en) 2001-06-07 2008-08-12 Intel Corporation Systems and methods for recoverable workflow
US7058634B2 (en) * 2002-02-06 2006-06-06 United Devices, Inc. Distributed blast processing architecture and associated systems and methods
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7080225B1 (en) * 2002-12-10 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a computer system
US8250406B2 (en) * 2003-08-19 2012-08-21 Intel Corporation Operational state preservation in the absence of AC power
US7174479B2 (en) * 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
US7849075B2 (en) 2003-09-15 2010-12-07 Ab Initio Technology Llc Joint field profiling
EP1690163A4 (en) * 2003-11-17 2011-07-13 Virginia Tech Intell Prop TRANSPARENT CREATION OF CONTROL POINTS AND MIGRATION OF PROCESSES IN A DISTRIBUTED SYSTEM
US7085788B2 (en) * 2003-12-03 2006-08-01 Hitachi, Ltd. Remote copy system configured to receive both a write request including a write time and a write request not including a write time.
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7275183B2 (en) 2004-04-30 2007-09-25 Hewlett-Packard Development Company, L.P. Method of restoring processes within process domain
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US8230426B2 (en) * 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7392428B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US7673190B1 (en) * 2005-09-14 2010-03-02 Unisys Corporation System and method for detecting and recovering from errors in an instruction stream of an electronic data processing system
US20070168720A1 (en) * 2005-11-30 2007-07-19 Oracle International Corporation Method and apparatus for providing fault tolerance in a collaboration environment
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US8572633B2 (en) * 2006-07-31 2013-10-29 Sap Ag Exception handling for collaborating process models
US7469406B2 (en) * 2006-07-31 2008-12-23 Sap Ag Process suspension through process model design
JP5894724B2 (ja) 2006-08-10 2016-03-30 アビニシオ テクノロジー エルエルシー グラフ型計算の分散サービス
US7669081B2 (en) * 2006-09-27 2010-02-23 Raytheon Company Systems and methods for scheduling, processing, and monitoring tasks
US7743276B2 (en) * 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
CN101595456A (zh) * 2006-12-27 2009-12-02 莫尔It资源有限公司 用于事务资源控制的方法和系统
WO2008114415A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッシングシステム
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
JP4375435B2 (ja) * 2007-05-23 2009-12-02 株式会社日立製作所 予知型データ移行を行う階層ストレージシステム
AU2008302144B2 (en) 2007-09-20 2014-09-11 Ab Initio Technology Llc Managing data flows in graph-based computations
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US20100011435A1 (en) * 2008-07-08 2010-01-14 Asp Works Pte Ltd Method and System for Providing Guaranteed File Transfer in Corporate Environment Behind Firewall
US9021485B2 (en) 2008-08-20 2015-04-28 Wal-Mart Stores, Inc. Automatically restarting a first child process based on presence of SQL code in a list
US8200771B2 (en) * 2008-10-10 2012-06-12 International Business Machines Corporation Workload migration using on demand remote paging
US7984332B2 (en) * 2008-11-17 2011-07-19 Microsoft Corporation Distributed system checker
CA2764235A1 (en) * 2009-06-19 2010-12-23 Core Technology Ltd Computer process management
US8103910B2 (en) * 2009-11-13 2012-01-24 International Business Machines Corporation Local rollback for fault-tolerance in parallel computing systems
US8108718B2 (en) * 2009-11-13 2012-01-31 Hewlett-Packard Development Company, L.P. Checkpointing in massively parallel processing
US8739164B2 (en) * 2010-02-24 2014-05-27 Advanced Micro Devices, Inc. Automatic suspend atomic hardware transactional memory in response to detecting an implicit suspend condition and resume thereof
US8627123B2 (en) * 2010-03-25 2014-01-07 Microsoft Corporation Managing power provisioning in distributed computing
US8862937B2 (en) * 2010-05-06 2014-10-14 Verizon Patent And Licensing Inc. Method and system for migrating data from multiple sources
US8850014B2 (en) 2010-05-06 2014-09-30 Telefonaktiebolaget L M Ericsson (Publ) Handling failure of request message during set up of label switched path
US9207993B2 (en) * 2010-05-13 2015-12-08 Microsoft Technology Licensing, Llc Dynamic application placement based on cost and availability of energy in datacenters
US8464104B2 (en) * 2010-09-10 2013-06-11 International Business Machines Corporation Mobility of versioned workload partitions
US20120158447A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Pricing batch computing jobs at data centers
US9164806B2 (en) * 2011-01-28 2015-10-20 Oracle International Corporation Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US9116759B2 (en) * 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189016A (ja) * 1992-01-10 1993-07-30 Mitsubishi Electric Corp シーケンスコントローラ及びその順序制御方法
JP2002505768A (ja) * 1995-12-11 2002-02-19 エービー イニティオ ソフトウェア コーポレーション 計算の状態を再構成する方法ならびにシステム
JP2004094963A (ja) * 1995-12-11 2004-03-25 Ab Initio Software Corp 計算の状態を再構成する方法ならびにシステム
JPH09269905A (ja) * 1996-01-31 1997-10-14 Toshiba Corp 計算機システム
JPH113293A (ja) * 1997-06-13 1999-01-06 Nec Software Ltd 計算機システム
JP2003516581A (ja) * 1999-12-06 2003-05-13 エービー イニティオ ソフトウェア コーポレーション 連続フローチェックポイント設定データ処理法
JP2010012718A (ja) * 2008-07-04 2010-01-21 Canon Inc 印刷システム及び印刷制御方法、プログラム、印刷装置
JP2011022959A (ja) * 2009-07-21 2011-02-03 Mitsubishi Electric Corp プロセス実行装置及びコンピュータプログラム及びプロセス実行方法

Also Published As

Publication number Publication date
WO2012112748A1 (en) 2012-08-23
CN103370693B (zh) 2016-09-14
JP2014509012A (ja) 2014-04-10
AU2012217621A1 (en) 2013-05-02
AU2012217621B2 (en) 2016-02-18
US9268645B2 (en) 2016-02-23
KR20140004702A (ko) 2014-01-13
JP6556110B2 (ja) 2019-08-07
EP2676198A1 (en) 2013-12-25
US20120216073A1 (en) 2012-08-23
US9021299B2 (en) 2015-04-28
CA2826282A1 (en) 2012-08-23
CA2826282C (en) 2019-06-04
CN103370693A (zh) 2013-10-23
US20150212891A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP6556110B2 (ja) プロセスの再開
JP6377703B2 (ja) データ処理システムの再開
JP6499986B2 (ja) フォールトトレラントバッチ処理
Qin et al. Rx: treating bugs as allergies---a safe method to survive software failures
JP2014509012A5 (ja)
JP2008529112A (ja) アプリケーション・プロセス実行の範囲内での非決定論的オペレーションを管理、ロギング、またはリプレイするための予測方法
US7581220B1 (en) System and method for modifying user memory from an arbitrary kernel state
US8453013B1 (en) System-hang recovery mechanisms for distributed systems
Sultan et al. Recovering internet service sessions from operating system failures
Dinu et al. Hadoop’s overload tolerant design exacerbates failure detection and recovery
Gupta et al. Just-In-Time Checkpointing: Low Cost Error Recovery from Deep Learning Training Failures
Farr et al. A case for high availability in a virtualized environment (HAVEN)
JP5791093B2 (ja) 情報処理装置及びその制御方法
JPS60241115A (ja) デ−タ処理装置における電源瞬断回復処理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190709

R150 Certificate of patent or registration of utility model

Ref document number: 6556110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250