JP2016129056A - フォールトトレラントバッチ処理 - Google Patents

フォールトトレラントバッチ処理 Download PDF

Info

Publication number
JP2016129056A
JP2016129056A JP2016040269A JP2016040269A JP2016129056A JP 2016129056 A JP2016129056 A JP 2016129056A JP 2016040269 A JP2016040269 A JP 2016040269A JP 2016040269 A JP2016040269 A JP 2016040269A JP 2016129056 A JP2016129056 A JP 2016129056A
Authority
JP
Japan
Prior art keywords
data
processing
batch
checkpoint
work
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
JP2016040269A
Other languages
English (en)
Other versions
JP6499986B2 (ja
Inventor
ブライアン フィル ドーロス
Phil Douros Bryan
ブライアン フィル ドーロス
マシュー ダーシー アッタベリー
Darcy Atterbury Matthew
マシュー ダーシー アッタベリー
ティム ウェイクリング
Tim Wakeling
ティム ウェイクリング
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 JP2016129056A publication Critical patent/JP2016129056A/ja
Application granted granted Critical
Publication of JP6499986B2 publication Critical patent/JP6499986B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

【課題】チェックポイントバッファにおいてアクションを実行した結果を保存するフォールトトレラントバッチ処理方法を提供する。【解決手段】入力データのバッチ処理は、複数のレコードを含むバッチを読み取ることおよびデータフローグラフを通じてバッチを渡すこと、を含む。チェックポイント処理は、処理を開始するときにチェックポイントバッファを開く207,208。ワークのユニットに対するアクションを実行した結果が既に保存されていれば225、保存されている結果は、アクションを再び実行することなくワークのユニットの処理を完了するために用いられる250。ワークのユニットに対するアクションを実行した結果が保存されていなければ、ワークのユニットの処理を完了するためにアクションを実行し230、チェックポイントバッファにおいてアクションを実行した結果を保存する240。【選択図】図2

Description

本記載は、データのバッチ処理をフォールトトレラントに行うことに関連する。
複雑な計算は、ノード(または頂点)に関連付けられた計算のコンポーネントと、そのコンポーネント間のデータフローに関連付けられたノード間のリンク(または弧、辺)と、を有する有向グラフ(「データフローグラフ」とも称呼される。)として表現し得ることが多い。そのコンポーネントは、データを処理するデータ処理コンポーネントと、データフローのソースまたはシンクとして機能するコンポーネントと、を含む。データ処理コンポーネントは、データの処理を複数のステージにて並行して処理が可能なパイプライン型システムを形成する。このようなグラフベース計算を実行するシステムは、米国特許第5,966,072号「グラフとして表現される計算の実行」に記載されている。いくつかのケースにおいて、グラフベース計算は、入力データのフローを受け取り、データの連続するフローを処理し、計算がシャットダウンされるまで一または複数のコンポーネントからの結果を無制限に提供する、ように構成される。いくつかのケースにおいて、グラフベース計算は、入力データのバッチを受け取り、データのバッチを処理し、そのバッチへの結果を提供し、バッチが処理された後にシャットダウンまたはアイドル状態に戻る、ように構成される。
一の態様において、一般に、データのバッチ処理をフォールトトレラントに行う方法は、一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、および、コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡すこと、を含む。前記チェックポイント処理は、前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を含む。
いくつかの態様には、後述する特性の一または複数が含まれ得る。
前記アクションが、リモートサーバとの通信を含む。
前記アクションを実行した結果が、ワークの前記ユニットについての前記リモートサーバとの通信からの情報を含む。
前記方法が、前記バッチの処理が完了したときに前記チェックポイントバッファを消去することを更に含む。
前記リモートサーバとの通信が通知される。
前記リモートサーバとの通信の結果が、揮発性のメモリに格納され、トリガイベントが生じたときに前記チェックポイントバッファにグループ形式にて保存される。
前記トリガイベントが、チェックポイントマネージャからの信号である。
前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからのレコードの処理の数である。
前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからの時間の経過である。
前記チェックポイント処理を含むコンポーネントが、複数の処理デバイス上にて並行して実行される。
前記複数の並行した処理デバイス間のデータレコードの割り当てが前記バッチの実行の間にてコンシステントであり、それぞれの処理デバイスが独立したチェックポイントバッファを維持する。
前記複数の並行した処理デバイス間のデータレコードの割り当てが動的であり、前記処理デバイスが、シェアされた不揮発性メモリに格納された単一のチェックポイントバッファへのアクセスを、チェックポイントマネージャによって制御される前記チェックポイントバッファへの書き込みとともに、シェアする。
前記方法が、フォールト状態が生じた後に前記データフローグラフにおける全ての前記コンポーネントを再スタートすること、一または複数のデータソースからの複数のレコードを含む入力データの前記バッチを読み取ること、前記データフローグラフを通じて前記バッチを渡すこと、を更に含む。
前記アクションが、リモートサーバと通信することを含む。
別の態様において、一般に、コンピュータ読み取り可能な媒体は、データのバッチ処理をフォールトトレラントに行うためのコンピュータプログラムを格納する。前記コンピュータプログラムは、一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、および、コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡すこと、
をコンピュータに実行させる命令を含む。前記チェックポイント処理は、前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を更に含む。
別の態様において、一般に、データのバッチ処理をフォールトトレラントに行うためのシステムは、一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取る手段、および、コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡す手段、を含む。前記チェックポイント処理は、前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を含む。
態様は、一または複数の後述される効果を有する。すなわち、前記データフローグラフにおける異なるコンポーネント間の通信に関連するチェックポイントの必要を排除することができる。フォールトリカバリの間の複数のステップのバッチ処理における複雑な又はコストのかかるステップの繰り返しが、全体のパイプライン型システムのチェックポイントを設ける複雑さ又はコストなしに、選択的に回避される。例えば、この方法は、課金サービスへの繰り返しの呼び出しを避けることによってコストを抑えるように用いられ得る。
本発明の他の特性、目的および利点は、同記述、同図面および請求の範囲から理解され得る。
入出力チェックポイントを設けたバッチデータ処理システムのブロック図である。 チェックポイント処理のフローチャートである。 並列処理において入出力チェックポイント処理を設けたバッチデータ処理システムのブロック図である。 並列処理においてチェックポイントマネージャを設けるとともに入出力チェックポイント処理を設けたバッチデータ処理システムのブロック図である。
グラフベースデータ処理システムは、データフローグラフにおける1つのコンポーネントの中間的な結果を、フォールト状態に起因して入力データのバッチ処理が再スタートせしめられる場合にそれらを検索および再利用可能なバッファに保存することを含む、フォールトトレラントな入力データのバッチ処理に適用され得る。
図1は、データ処理システム100の実施例である。データは、一または複数のデータソースから一または複数のデータシンクへのデータフローを処理するデータフローグラフのデータ処理コンポーネントを順に通過する。データフローグラフにおける種々のデータ処理コンポーネントは異なる処理デバイスにて実行される処理によって実装され得る。または、複数のデータ処理コンポーネントは単一の処理デバイスにおいて実行される一または複数の処理によって実装されてもよい。データは、システム100によって処理される入力データレコードのセットを特定するバッチにおいて処理されてもよい。
システム100によるデータのバッチ処理は、ユーザ入力またはタイマの終了などの他のイベントによって始動されてもよい。データのバッチ処理が開始されたとき、入力データレコードが一または複数の入力データソースから読み込まれる。例えば、入力データは、データストレージコンポーネント110によって表されるようなコンピュータ読み取り可能な記憶装置に格納されている一または複数のファイルから読み込まれる。入力データレコードは、データストレージコンポーネント112によって表されるようなサーバにて実行されているデータベースから読み込まれてもよい。結合コンポーネント120は、複数のデータソースから順にデータ(例えば、レコード)を読み込み、その入力データを個別のワークユニットの順に配列する。ワークユニットは、例えば、入力レコードに基づく所定のフォーマットにて格納されているレコードを表してもよく、例えば、処理されるトランザクションを表してもよい。いくつかの実装において、各ワークユニットは、処理されたワークユニットの数のようなバッチ内にて固有の番号によって特定されてもよい。ワークユニットは、データフローグラフにおける次のコンポーネントに順に渡される。
システム100を実装するデータフローグラフの実施例も、データ処理コンポーネント130および140を含んでいる。データ処理コンポーネント130は、通常はバッチ処理の過程にて不揮発性メモリにその処理の状態情報を保存するチェックポイント処理を含む。フォールト状態が生じてバッチが再スタートされる必要があるとき、チェックポイント処理されたコンポーネント130は、バッチが繰り返し実行される間に繰り返されるべき処理の量を減少させるべく、保存された状態情報にアクセスする。チェックポイント処理は、不揮発性メモリのリソースを用いることと、データ処理コンポーネント130に複雑さを追加することと、によってフォールトトレランスをもたらす。データ処理コンポーネント140は、チェックポイント処理を設けていないコンポーネントである。他のデータフローグラフは、より多くの又はより少ないデータ処理コンポーネントを含み得る。必要なだけの数のデータ処理コンポーネントが、チェックポイント処理を設けるように構成されればよい。典型的には、フォールト状態の場合にシステム100におけるコストの高い処理ステップがバッチにおける全てのワークユニットについて繰り返される必要がないように、ディレイまたは他のメトリックの点にて高いコストを伴うコンポーネントがチェックポイント処理を含むように構成される。
データ処理コンポーネント130は、リモートサーバ150にアクセスするステップを含む。処理された各ワークユニットについて、第1処理コンポーネント130は、リモートサーバ150に要求を送り、リモートサーバから結果(データベースからのデータ)を受け取る。この種の処理は、リモートサーバとの通信において生じるネットワークディレイまたはリモートサーバにて提供されるサービスの監視を含む種々の理由によってコストがかかる。結果を受け取った後、コンポーネント130は、次のデータ処理コンポーネント140への出力を生成する。コンポーネント130はチェックポイント処理を含むように構成されているので、ワークユニットへの出力を次のデータ処理コンポーネント140に渡して処理を完了して次のワークユニットの処理を開始する前に、リモートサーバ150からの結果を処理状態情報の一部として保存する。処理状態情報は、チェックポイント処理を実行している処理デバイスの揮発性メモリに一時的に保存されてもよい。フォールト状態の場合に利用可能であるように、一定の時間毎に、一または複数のワークユニットについての処理状態情報は不揮発性メモリに保存されたチェックポイントバッファに書き込まれる。
ワークユニットがデータフローグラフのデータ処理コンポーネントを通過して前進すると、各ワークユニットに関連する最終結果はデータシンク160に移動する。最終結果がデータシンク160に移動される前に、ワークユニットは個別に移動され得るし、または、いくつかの実装においてワークユニットは最終結果をインクリメンタルに更新するために用いられ得るし、または、蓄積され得る(例えば、待ち行列をなすように)。データシンク160は、例えば、ワークユニットまたはワークユニットに基づいて蓄積された出力を記憶するデータストレージコンポーネントであり得るし、例えば、データシンク160はワークユニットがパブリッシュされる待ち行列であり得るし、最終結果を受け取るための他の種のシンクであり得る。バッチにおける全てのワークユニットの結果がデータシンク160に移動されたとき、バッチ処理は終了する。この時点にて、データフローグラフのコンポーネントに関連付けられた処理は終了される。チェックポイント処理されたコンポーネントに関連するチェックポイント処理は、終了ルーチンの一部として、チェックポイントバッファを消去してもよい。
図2は、チェックポイント処理されたコンポーネントをチェックポイント処理する処理200の実施例のフローチャートである。処理200は、例えばデータフローグラフを通じたバッチ処理を実装しているソフトウェアからの外部呼び出しがあったとき、201から処理を開始する。処理開始には、チェックポイント処理されたコンポーネントが実行される処理デバイスにおける処理200について揮発性メモリを割り当てること及び他の必要なリソースをリザーブすることが含まれ得る。処理200は、次に、205にてこの処理に関連するチェックポイントバッファが既に不揮発性メモリに保存されているか否かをチェックする。チェックポイントバッファが存在しない場合、207にて、新しいチェックポイントバッファが不揮発性メモリに生成される。すでにチェックポイントバッファが格納されている場合、208にて、それが開かれる。208にてチェックポイントバッファを開くことには、不揮発性メモリにおけるチェックポイントバッファの位置を見つけること、または、場合によってチェックポイントバッファの全部または一部を処理デバイスの揮発性メモリにコピーすること、を含み得る。
各ワークユニットを扱うループの最初に、210にて、ワークユニットと関連付けられた入力データがデータフローグラフにおける前に位置するコンポーネントから又はソースから受け取られる。事前処理220は、ワークユニットに応じて選択的に実行される。事前処理220は、例えば、データレコードの再フォーマット、ワークユニットに関連付けられた結果についてのチェックポイントバッファを探すために用いられ得る値の決定、を含み得る。チェックポイント処理200のチェックポイントバッファは、225にて、このワークユニットの結果がチェックポイントバッファに格納されているか否か判定される(例えば、以前の中断されたバッチ処理)。
関連する結果がチェックポイントバッファに格納されていない場合、230にて、コストの高いアクションを含む処理がワークユニットに対して行われる。コストの高いアクションの例には、ネットワークを介してリモートサーバ上のリソースにアクセスし、著しいディレイを生じ又は変更を監視することが含まれ得る。この処理の結果は、240にて、チェックポイントバッファに保存される。結果は、インクリメント・カウンタを用いて処理されるワークユニットに関連付けられ得る。インクリメント・カウンタは、例えばワークユニットと関連付けられた結果とを同じカウンタ値によって識別する。その結果は、不揮発性メモリに直接に書き込まれてもよく、トリガとなるイベントがそれを不揮発性メモリにコピーすることを引き起こすまで揮発性メモリに一時的に書き込まれてもよい。トリガとなるイベントの例として、特定の数のワークユニットが処理されること、時間が経過すること、外部プロセスからの信号、が含まれる。
関連付けられた結果がチェックポイントバッファに格納されている場合、250にて、チェックポイントバッファからその結果が検索される。
事後処理260は、ワークユニットの処理を完了するために選択的に実行される。事後処理260は、例えば、データの再フォーマット、または、データフローグラフにおける次のコンポーネントにデータを渡すこと、を含み得る。ワークユニットの処理が完了した後、チェックポイント処理200は、270にて、他のワークユニットの処理が残っているか否かをチェックする。
他のワークユニットがあれば、チェックポイント処理200は、次のワークユニットに関連付けられた入力データを読み込むためにループ・バックする。ワークユニットの処理が残っていなければ、チェックポイント処理200は、280にて、バッチ処理が完了しそれを終了する外部信号を待つ。終了信号を受け取ったとき、チェックポイント処理200は、285にて、終了シーケンス290の前にそのチェックポイントバッファを不揮発性メモリから消去する。終了シーケンス290が完了することは、処理デバイスの揮発性メモリまたは他のリザーブされたリソースを開放することを含み得る。
図3は、データ処理システム300の実施例のブロック図である。この図においては、データフローグラフは、分散型のチェックポイント処理を伴う並列コンポーネントを含むシステム300を実装している。データフローグラフにおける一または複数のコンポーネントは、複数の処理デバイス(例えば、複数のコンピュータまたは複数のプロセッサまたは並列プロセッサのプロセッサコア)にて並列に実行され得る。この例において、チェックポイント処理された並列コンポーネントである複数のインスタンス331,332,333が明示されている。並列コンポーネントの一つのインスタンスは各処理デバイスにて実行され、各インスタンスはバッチのワークユニットのサブセットを処理する。分散型チェックポイント処理のアプローチである本例において、並列コンポーネントの3つのインスタンスのそれぞれについて異なるチェックポイント処理が実行される。
データのバッチ処理が開始されたとき、一または複数の入力データソースから入力データレコードが読み込まれる。例えば、入力データは、データストレージコンポーネント310によって表されるようなコンピュータ読み取り可能な記憶装置に格納されている一または複数のファイルから読み込まれる。入力データレコードは、データストレージコンポーネント312によって表されるようなサーバにて実行されているデータベースから読み込まれてもよい。結合コンポーネント320は、複数のデータソースから順にデータを読み込み、その入力データを個別のワークユニットの順に配列する。ワークユニットは、データフローグラフにおける次のコンポーネントに順に渡される。
データフローグラフにおける次のデータ処理コンポーネントは並列コンポーネントであるので、ワークユニットは、ワークユニットパーティションコンポーネント330によって分割されるとともに複数のコンポーネントインスタンスに割り当てられる。この例において、インスタンスへのワークユニットの割り当ては異なるバッチ処理の実行の間にてコンシステントであり、インスタンスが他のインスタンスに割り当てられたワークユニットの状態情報にアクセスする必要がない。ワークユニットパーティションコンポーネント330は、フォールト状態が生じてバッチが再び実行される必要があってもコンシステントな結果が得られるように繰り返され得るコンシステントなアルゴリズムに基づき、特定のインスタンスにワークユニットを割り当てる。例えば、ワークユニット割り当てパーティションコンポーネント330は、単に、各コンポーネントインスタンスに順に一つずつワークユニットを割り当て、ワークユニットの数が並列インスタンスの数を超えたときに最初のインスタンスにループしてもよい。他の例として、ワークユニットパーティションコンポーネント330は、実行間にてコンシステントな割り当てを生じることが保証されておらず不揮発性メモリに割り当て情報を保存するパーティションアルゴリズムを適用してもよく、バッチの繰り返し実行が要求されるときに同じ割り当てが繰り返され得る。
チェックポイント処理された並列コンポーネントである各インスタンス331,332,333は、図1のチェックポイント処理されたコンポーネント130に関して説明された方法を用いてそれに割り当てられたワークユニットを、独立して実行する。各インスタンス331,332,333は、そのチェックポイントバッファを不揮発性メモリに生成し維持する。ワークユニットが処理されるとき、インスタンスは、そのチェックポイントバッファをチェックし、そのワークユニットが先行するバッチの実行中に以前に処理されたか否かを判定する。実施例であるシステム300において、チェックポイント処理された並列コンポーネントは、各ワークユニットの情報を得るためのリモートサーバ350との通信のアクションを含む。他の例において、チェックポイント処理された並列コンポーネントは、フォールトトレランスのためにチェックポイントバッファのメンテンナンスを正当化することに関する高いコストのかかる他のアクションを含み得る。
ワークユニットの処理が完了したとき、その結果は、収集コンポーネント338に渡される。収集コンポーネント338は、複数のインスタンスから結果を集め、データフローグラフにおける次のデータ処理コンポーネントにそれらを渡す。
データ処理コンポーネント340は、チェックポイント処理を設けていないコンポーネントである。他の例において、データフローグラフにおいてチェックポイント処理を含むコンポーネントがいくつ存在してもよい。いくつかの例において、コストのかかるアクションが実行されるコンポーネントについてチェックポイント処理を制限することには、利点がある。他のデータフローグラフは、任意のデータ処理コンポーネントについて、並列または並列でなくより多くの又はより少ないデータ処理コンポーネントを含み得る。
ワークユニットがデータフローグラフのデータ処理コンポーネントを通過して前進すると、各ワークユニットに関連する最終結果はデータシンク360に移動する。バッチにおける全てのワークユニットの結果がデータシンク360に移動されたとき、バッチ処理は終了する。この時点にて、データフローグラフのコンポーネントに関連付けられた処理は終了される。特定のインスタンスに関連するチェックポイント処理は、終了ルーチンの一部として、チェックポイントバッファを消去してもよい。
図4は、データ処理システム400の実施例を表すブロック図である。ここでは、システム400を実装しているデータフローグラフが、集中型のチェックポイント処理を行う並列コンポーネントを含む。この例において、チェックポイント処理された並列コンポーネントである複数のインスタンス431,432,433が明示されている。並列コンポーネントの一つのインスタンスは各処理デバイスにて実行され、各インスタンスはバッチのワークユニットのサブセットを処理する。集中型チェックポイント処理のアプローチである本例において、チェックポイントマネージャ436は、少なくとも並列コンポーネントの3つのインスタンスのそれぞれに関連するチェックポイント処理のいくつかを、処理する。チェックポイントマネージャ436は、並列コンポーネントのインスタンスにおいて実行されている処理デバイスの一つ、または、別の処理デバイスにおいて実行され得る。
データのバッチ処理が開始されたとき、データストレージコンポーネント410および412から入力データレコードが読み込まれる。結合コンポーネント420は、複数のデータソースから順にデータを読み込み、その入力データを個別のワークユニットの順に配列する。ワークユニットは、データフローグラフにおける次のコンポーネントに順に渡される。これが、本実施例におけるチェックポイント処理された並列コンポーネントである。
図4の例において、チェックポイントマネージャ436は、インスタンス431,432,433によってシェアされる単一のチェックポイントバッファへのアクセスを制御する。バッチにおいて単一のチェックポイントバッファを全てのワークユニットについてシェアすることにより、バッチの過去の実行から割り当てをマッチすることを必要とすることなく、ワークユニットが動的にインスタンスに割り当てられることが可能となる。シェアされたチェックポイントバッファは、全てのインスタンスがバス或いは通信ネットワークを介して直接的に、または、チェックポイントマネージャ436との通信を経由して間接的に、アクセスすることができるシェアされた不揮発性メモリ435に格納される。インスタンス431,432,433は、ワークユニットを処理するとき、チェックポイントバッファをチェックするために、シェアされた不揮発性メモリ435を読み込み得る。チェックポイントバッファに現在のワークユニットが見つかった場合、コストの高いアクションを繰り返すことを避けるべく、保存されている結果が用いられる。チェックポイントバッファに現在のワークユニットが見つからなかった場合、ワークユニットについてのアクションが実行され、その結果がチェックポイントバッファに格納される。チェックポイントバッファに書き込むために、インスタンス431,432,433は、チェックポイントマネージャ436に書き込みリクエストのメッセージを送る。チェックポイントマネージャ436は、チェックポイントバッファを更新するべく、シェアされた不揮発性メモリ435に書き込む。他の例において、チェックポイントマネージャ436は、チェックポイントバッファを更新するため、シェアされた不揮発性メモリ435に書き込むことを許可するトークンを、リクエストしているインスタンスに送る。
シェアされたチェックポイントバッファは全てのインスタンス431,432,433に用いられるので、ワークユニットパーティションコンポーネント430は、データのバッチのそれぞれの実行中にインスタンス間に動的に異なるようにワークユニットを割り当ててもよい。例えば、ワークユニットパーティションコンポーネント430は、ランタイムにおける各処理デバイスの準備可能な容量(実行毎に異なる)に基づき、各ワークユニットを動的に割り当ててもよい。この方法により、ワークユニットパーティションコンポーネント430が異なる数の並列インスタンスを用いることが可能となる。例えば、フォールト状態の後、並列コンポーネントの一つのインスタンスを実行している一つの処理デバイス(インスタンス433のような)は、実行不能または利用不能とされてもよい。バッチが再スタートされたとき、ワークユニットパーティションコンポーネント430は、全てのワークユニットを残りのインスタンス431,432に割り当ててもよい。それらインスタンス431,432は、実行不能なインスタンス433によって以前に処理されたワークユニットについてのチェックポイントバッファエントリーに、シームレスにアクセス可能である。
チェックポイントマネージャ436は、別の処理デバイスにおいて実行される処理によって実装されてもよく、並列コンポーネントのインスタンスが実行されている処理デバイスの一つにおいて実行される処理によって実装されてもよい。インスタンス431,432,433は、チェックポイントバッファの更新イベントの間、チェックポイントバッファの更新をローカルの揮発性メモリにバッファしてもよい。チェックポイントマネージャ436は、揮発性メモリにバッファされた情報にてチェックポイントバッファを更新することをインスタンスに開始させることをトリガするインスタンスに、信号を送ってもよい。
ワークユニットの処理が完了したとき、その結果は、収集コンポーネント438に渡される。収集コンポーネント438は、複数のインスタンスから結果を集め、データフローグラフにおける次のデータ処理コンポーネントにそれらを渡す。
データ処理コンポーネント440は、チェックポイント処理を設けていないコンポーネントである。他の例において、データフローグラフにおいてチェックポイント処理を含むコンポーネントがいくつ存在してもよい。いくつかの例において、コストのかかるアクションが実行されるコンポーネントについてチェックポイント処理を制限することには、利点がある。他のデータフローグラフは、任意のデータ処理コンポーネントについて、並列または並列でなくより多くの又はより少ないデータ処理コンポーネントを含み得る。
ワークユニットがデータフローグラフのデータ処理コンポーネントを通過して前進すると、各ワークユニットに関連する最終結果はデータシンク460に移動する。バッチにおける全てのワークユニットの結果がデータシンク460に移動されたとき、バッチ処理は終了する。この時点にて、データフローグラフのコンポーネントに関連付けられた処理は終了される。チェックポイントマネージャ436は、終了ルーチンの一部として、チェックポイントバッファを消去してもよい。
上述したフォールトトレラントなバッチ処理アプローチは、コンピュータにて実行可能なソフトウェアを用いて実装することができる。例えば、ソフトウェアは、各々が少なくとも1つのプロセッサ、少なくとも1つのデータストレージシステム(揮発性または不揮発性のメモリおよび/またはストレージ要素を含む)、少なくとも1つの入力デバイスまたはポート、および、少なくとも1つの出力デバイスまたはポート、を含む一または複数のプログラムされたまたはプログラム可能なコンピュータシステム(分散、クライアント/サーバ、または、グリッドのような種々のアーキテクチャであり得る)において実行する一または複数のコンピュータプログラムにおける手順を構成する。ソフトウェアは、より大きなプログラムの一または複数のモジュール(例えば、デザインおよびグラフ計算の構成に関連する他のサービスを提供する。)を構成してもよい。グラフのノードおよび要素は、コンピュータ読み取り可能な媒体に格納されるデータ構造として、または、データリポジトリに格納されるデータモデルに準拠する他の体系化データとして、実現され得る。
ソフトウェアは、汎用または専用のプログラマブルコンピュータによって読み取り可能な記憶媒体(CD−ROM等)上において提供されてもよく、または、ネットワークの通信媒体を介してソフトウェアが実行されるコンピュータに伝送されてもよい(伝搬信号にエンコードされてもよい。)。関数の全ては、専用コンピュータ上にて、または、コプロセッサなどの専用ハードウエアを用いて、実行され得る。ソフトウェアは、分散方式(ソフトウェアが規定する計算の異なる部分が、異なるコンピュータにより実行される。)にて実行され得る。そのようなコンピュータプログラムの各々は、汎用または専用のプログラマブルコンピュータによって読み取り可能な記録媒体または記憶装置(例えば、固体メモリまたは媒体、あるいは、磁気媒体または光媒体)に格納されるか又はダウンロードされるか、が好ましい。これにより、コンピュータシステムが記憶媒体または記憶装置を読み取ってここに記載されているプロシージャを実行する際、コンピュータが構成されて実行される。本発明のシステムは、コンピュータプログラムにて構成されたコンピュータ読み取り可能な記憶媒体として実施されると考えることもできる。そのように構成された記憶媒体により、コンピュータシステムは、ここに記載した機能を実行する特定の及び所定の方法にて作動する。
本発明のいくつかの実施形態を説明した。しかし、当然のことながら、本発明の精神および範囲を逸脱することなく多様な改変を実施し得る。例えば、上述したいくつかのステップの順序は自由であるので、上記と異なる順序にて実行され得る。
当然のことながら、上記記載は、本発明を説明することを意図したものであって本発明の範囲を限定することを意図するものではない。本発明は、添付される特許請求の範囲によって定義される。例えば、上述したいくつかの機能ステップは、全体のプロセスに実質的な影響を与えることなく異なる順序にて実行され得る。他の態様は以下の特許請求の範囲に含まれる。

Claims (16)

  1. 一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、および、
    コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡すこと、を含む、
    データのバッチ処理をフォールトトレラントに行う方法において、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、
    前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を含む、
    データのバッチ処理をフォールトトレラントに行う方法。
  2. 請求項1に記載の方法において、
    前記アクションがリモートサーバとの通信を含む、データのバッチ処理をフォールトトレラントに行う方法。
  3. 請求項2に記載の方法において、
    前記アクションを実行した結果が、ワークの前記ユニットについての前記リモートサーバとの通信からの情報を含む、データのバッチ処理をフォールトトレラントに行う方法。
  4. 請求項1に記載の方法であって、
    前記バッチの処理が完了したときに前記チェックポイントバッファを消去することを更に含む、データのバッチ処理をフォールトトレラントに行う方法。
  5. 請求項2に記載の方法において、
    前記リモートサーバとの通信が通知される、データのバッチ処理をフォールトトレラントに行う方法。
  6. 請求項2に記載の方法において、
    前記リモートサーバとの通信の結果が、揮発性のメモリに格納され、トリガイベントが生じたときに前記チェックポイントバッファにグループ形式にて保存される、データのバッチ処理をフォールトトレラントに行う方法。
  7. 請求項6に記載の方法において、
    前記トリガイベントが、チェックポイントマネージャからの信号である、データのバッチ処理をフォールトトレラントに行う方法。
  8. 請求項6に記載の方法において、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからのレコードの処理の数である、データのバッチ処理をフォールトトレラントに行う方法。
  9. 請求項6に記載の方法において、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからの時間の経過である、データのバッチ処理をフォールトトレラントに行う方法。
  10. 請求項1に記載の方法において、
    前記チェックポイント処理を含むコンポーネントが、複数の処理デバイス上にて並行して実行される、データのバッチ処理をフォールトトレラントに行う方法。
  11. 請求項10に記載の方法において、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが前記バッチの実行の間にてコンシステントであり、それぞれの処理デバイスが独立したチェックポイントバッファを維持する、データのバッチ処理をフォールトトレラントに行う方法。
  12. 請求項10に記載の方法において、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが動的であり、前記処理デバイスが、シェアされた不揮発性メモリに格納された単一のチェックポイントバッファへのアクセスを、チェックポイントマネージャによって制御される前記チェックポイントバッファへの書き込みとともに、シェアする、データのバッチ処理をフォールトトレラントに行う方法。
  13. 請求項1に記載の方法であって、
    フォールト状態が生じた後に前記データフローグラフにおける全ての前記コンポーネントを再スタートすること、
    一または複数のデータソースからの複数のレコードを含む入力データの前記バッチを読み取ること、
    前記データフローグラフを通じて前記バッチを渡すこと、
    を更に含む、データのバッチ処理をフォールトトレラントに行う方法。
  14. 請求項13に記載の方法において、
    前記アクションがリモートサーバと通信することを含む、データのバッチ処理をフォールトトレラントに行う方法。
  15. データのバッチ処理をフォールトトレラントに行うためのコンピュータプログラムを格納するコンピュータ読み取り可能な媒体において、前記コンピュータプログラムは、
    一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、および、
    コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡すこと、
    をコンピュータに実行させる命令を含み、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、
    前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を更に含む、
    コンピュータ読み取り可能な媒体。
  16. 一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取る手段、および、
    コンポーネント間のデータのフローを表すリンクによって接続された前記コンポーネントを表す2以上のノードを含むデータフローグラフであって、少なくとも1つであり且つ全てよりも少ないコンポーネントが前記レコードの一または複数に関連付けられたワークの複数のユニットのそれぞれに対するアクションについてのチェックポイント処理を含むデータフローグラフ、を通じて前記バッチを渡す手段、を含む、
    データのバッチ処理をフォールトトレラントに行うためのシステムにおいて、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くこと、
    前記バッチからのワークの各ユニットについて、前記チェックポイントバッファにおいてワークの前記ユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなくワークの前記ユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファにワークの前記ユニットに対する前記アクションを実行した結果が保存されていなければ、ワークの前記ユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて前記アクションを実行した結果を保存すること、を含む、
    データのバッチ処理をフォールトトレラントに行うためのシステム。
JP2016040269A 2009-07-14 2016-03-02 フォールトトレラントバッチ処理 Active JP6499986B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/502,851 US8205113B2 (en) 2009-07-14 2009-07-14 Fault tolerant batch processing
US12/502,851 2009-07-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015040581A Division JP5897747B2 (ja) 2009-07-14 2015-03-02 フォールトトレラントバッチ処理

Publications (2)

Publication Number Publication Date
JP2016129056A true JP2016129056A (ja) 2016-07-14
JP6499986B2 JP6499986B2 (ja) 2019-04-10

Family

ID=43449727

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012520711A Active JP5735961B2 (ja) 2009-07-14 2010-07-13 フォールトトレラントバッチ処理
JP2015040581A Active JP5897747B2 (ja) 2009-07-14 2015-03-02 フォールトトレラントバッチ処理
JP2016040269A Active JP6499986B2 (ja) 2009-07-14 2016-03-02 フォールトトレラントバッチ処理

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2012520711A Active JP5735961B2 (ja) 2009-07-14 2010-07-13 フォールトトレラントバッチ処理
JP2015040581A Active JP5897747B2 (ja) 2009-07-14 2015-03-02 フォールトトレラントバッチ処理

Country Status (9)

Country Link
US (3) US8205113B2 (ja)
EP (2) EP2851799B1 (ja)
JP (3) JP5735961B2 (ja)
KR (3) KR101721466B1 (ja)
CN (2) CN102473122B (ja)
AU (1) AU2010273531B2 (ja)
CA (1) CA2767667C (ja)
HK (2) HK1165051A1 (ja)
WO (1) WO2011008734A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8706667B2 (en) 2007-07-26 2014-04-22 Ab Initio Technology Llc Transactional graph-based computation with error handling
CN105843684B (zh) 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US20110051729A1 (en) * 2009-08-28 2011-03-03 Industrial Technology Research Institute and National Taiwan University Methods and apparatuses relating to pseudo random network coding design
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
WO2011159759A1 (en) 2010-06-15 2011-12-22 Ab Initio Technology Llc Dynamically loading graph-based computations
US8839252B1 (en) 2010-09-01 2014-09-16 Misys Ireland Limited Parallel execution of batch data based on modeled batch processing workflow and contention context information
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
US8849929B2 (en) * 2011-04-27 2014-09-30 Microsoft Corporation Applying actions to item sets within a constraint
US8924974B1 (en) * 2011-06-08 2014-12-30 Workday, Inc. System for error checking of process definitions for batch processes
WO2014054079A1 (en) * 2012-10-05 2014-04-10 Hitachi, Ltd. Job management system and job control method
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US9256460B2 (en) * 2013-03-15 2016-02-09 International Business Machines Corporation Selective checkpointing of links in a data flow based on a set of predefined criteria
US9401835B2 (en) 2013-03-15 2016-07-26 International Business Machines Corporation Data integration on retargetable engines in a networked environment
US9323619B2 (en) 2013-03-15 2016-04-26 International Business Machines Corporation Deploying parallel data integration applications to distributed computing environments
US9223806B2 (en) * 2013-03-28 2015-12-29 International Business Machines Corporation Restarting a batch process from an execution point
US9477511B2 (en) 2013-08-14 2016-10-25 International Business Machines Corporation Task-based modeling for parallel data integration
EP3092557B1 (en) 2013-12-05 2024-03-27 AB Initio Technology LLC Managing interfaces for dataflow graphs composed of sub-graphs
CA2959534C (en) 2014-09-02 2021-06-29 Ab Initio Technology Llc Compiling graph-based program specifications
EP3189422A1 (en) 2014-09-02 2017-07-12 AB Initio Technology LLC Executing graph-based program specifications
JP6626497B2 (ja) * 2014-09-02 2019-12-25 アビニシオ テクノロジー エルエルシー タスクの呼び出しの管理
CN104536893B (zh) * 2015-01-05 2018-01-30 中国农业银行股份有限公司 一种批量处理程序容报错处理方法及装置
US10191948B2 (en) * 2015-02-27 2019-01-29 Microsoft Technology Licensing, Llc Joins and aggregations on massive graphs using large-scale graph processing
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
EP3391214B1 (en) * 2015-12-17 2021-09-08 AB Initio Technology LLC Processing data using dynamic partitioning
WO2017112654A2 (en) 2015-12-21 2017-06-29 Ab Initio Technology Llc Sub-graph interface generation
KR102121139B1 (ko) * 2016-01-14 2020-06-17 아브 이니티오 테크놀로지 엘엘시 복구 가능한 스트림 프로세싱
US10073746B2 (en) * 2016-07-12 2018-09-11 Advanced Micro Devices, Inc. Method and apparatus for providing distributed checkpointing
US10802945B2 (en) * 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
CN108009037A (zh) * 2017-11-24 2018-05-08 中国银行股份有限公司 批处理作业故障处理方法、装置、存储介质及设备
CN108491159B (zh) * 2018-03-07 2020-07-17 北京航空航天大学 一种基于随机延迟缓解i/o瓶颈的大规模并行系统检查点数据写入方法
US11886433B2 (en) * 2022-01-10 2024-01-30 Red Hat, Inc. Dynamic data batching for graph-based structures

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212532A (ja) * 1988-06-30 1990-01-17 Toshiba Corp 情報処理装置
JPH06274401A (ja) * 1993-03-18 1994-09-30 Nec Corp 分散データベース制御方式
JP2000039990A (ja) * 1998-07-24 2000-02-08 Nippon Telegr & Teleph Corp <Ntt> 情報提供装置および方法と情報提供プログラムを記録した記録媒体
JP2000163372A (ja) * 1998-11-27 2000-06-16 Hitachi Ltd トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2001356946A (ja) * 2000-06-14 2001-12-26 Nippon Telegr & Teleph Corp <Ntt> ワークフロー実行方法および装置とワークフロー実行プログラムを記録した記録媒体
JP2003085021A (ja) * 2001-09-07 2003-03-20 Nippon Soken Holdings:Kk リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体
JP2003516581A (ja) * 1999-12-06 2003-05-13 エービー イニティオ ソフトウェア コーポレーション 連続フローチェックポイント設定データ処理法
JP2004178316A (ja) * 2002-11-27 2004-06-24 Computer Consulting:Kk プログラム生成装置および方法
JP2006285576A (ja) * 2005-03-31 2006-10-19 Nec Corp 分散処理システム及び分散処理方法
JP2008293358A (ja) * 2007-05-25 2008-12-04 Fujitsu Ltd 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0554854A3 (en) * 1992-02-04 1996-02-28 Digital Equipment Corp System and method for executing, tracking and recovering long running computations
US5819021A (en) 1995-12-11 1998-10-06 Ab Initio Software Corporation Overpartitioning system and method for increasing checkpoints in component-based parallel applications
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6154877A (en) 1997-07-03 2000-11-28 The University Of Iowa Research Foundation Method and apparatus for portable checkpointing using data structure metrics and conversion functions
US6401216B1 (en) * 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US7412520B2 (en) * 2001-06-07 2008-08-12 Intel Corporation Systems and methods for recoverable workflow
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7206964B2 (en) * 2002-08-30 2007-04-17 Availigent, Inc. Consistent asynchronous checkpointing of multithreaded application programs based on semi-active or passive replication
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7340741B2 (en) * 2003-02-28 2008-03-04 International Business Machines Corporation Auto-restart processing in an IMS batch application
CN101271472B (zh) * 2003-09-15 2011-04-13 起元科技有限公司 数据处理方法和数据处理系统
EP1676217B1 (en) 2003-09-15 2011-07-06 Ab Initio Technology LLC Data profiling
US8024733B2 (en) * 2004-05-13 2011-09-20 International Business Machines Corporation Component model for batch computing in a distributed object environment
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
US7543001B2 (en) * 2004-06-17 2009-06-02 International Business Machines Corporation Storing object recovery information within the object
DE102004037713A1 (de) * 2004-08-04 2006-03-16 Robert Bosch Gmbh Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms
US7899833B2 (en) 2004-11-02 2011-03-01 Ab Initio Technology Llc Managing related data objects
US7665093B2 (en) * 2004-12-22 2010-02-16 Microsoft Corporation Synchronization of runtime and application state via batching of workflow transactions
US7634687B2 (en) * 2005-01-13 2009-12-15 Microsoft Corporation Checkpoint restart system and method
US7613749B2 (en) * 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7870556B2 (en) * 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
US20080005227A1 (en) * 2006-07-03 2008-01-03 Srinivasan Subbian Method and system for content processing
EP2527983A3 (en) 2006-08-10 2013-06-12 Ab Initio Technology LLC Distributing services in graph-based computations
CN100444121C (zh) * 2006-09-11 2008-12-17 中国工商银行股份有限公司 批量任务调度引擎及调度方法
JP5018133B2 (ja) * 2007-02-27 2012-09-05 富士通株式会社 ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US7900015B2 (en) * 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US7895474B2 (en) * 2007-05-03 2011-02-22 International Business Machines Corporation Recovery and restart of a batch application
US7779298B2 (en) * 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
WO2009039352A1 (en) * 2007-09-20 2009-03-26 Ab Initio Technology Llc Managing data flows in graph-based computations
US8949801B2 (en) * 2009-05-13 2015-02-03 International Business Machines Corporation Failure recovery for stream processing applications
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212532A (ja) * 1988-06-30 1990-01-17 Toshiba Corp 情報処理装置
JPH06274401A (ja) * 1993-03-18 1994-09-30 Nec Corp 分散データベース制御方式
JP2000039990A (ja) * 1998-07-24 2000-02-08 Nippon Telegr & Teleph Corp <Ntt> 情報提供装置および方法と情報提供プログラムを記録した記録媒体
JP2000163372A (ja) * 1998-11-27 2000-06-16 Hitachi Ltd トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2003516581A (ja) * 1999-12-06 2003-05-13 エービー イニティオ ソフトウェア コーポレーション 連続フローチェックポイント設定データ処理法
JP2001356946A (ja) * 2000-06-14 2001-12-26 Nippon Telegr & Teleph Corp <Ntt> ワークフロー実行方法および装置とワークフロー実行プログラムを記録した記録媒体
JP2003085021A (ja) * 2001-09-07 2003-03-20 Nippon Soken Holdings:Kk リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体
JP2004178316A (ja) * 2002-11-27 2004-06-24 Computer Consulting:Kk プログラム生成装置および方法
JP2006285576A (ja) * 2005-03-31 2006-10-19 Nec Corp 分散処理システム及び分散処理方法
JP2008293358A (ja) * 2007-05-25 2008-12-04 Fujitsu Ltd 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム

Also Published As

Publication number Publication date
US9304807B2 (en) 2016-04-05
CA2767667C (en) 2020-08-18
CN102473122B (zh) 2016-01-20
JP6499986B2 (ja) 2019-04-10
KR20120040707A (ko) 2012-04-27
HK1202951A1 (zh) 2015-10-09
CN105573866B (zh) 2018-11-13
US8566641B2 (en) 2013-10-22
HK1165051A1 (en) 2012-09-28
CN102473122A (zh) 2012-05-23
CN105573866A (zh) 2016-05-11
EP2851799A1 (en) 2015-03-25
JP5897747B2 (ja) 2016-03-30
KR101691126B1 (ko) 2016-12-29
JP5735961B2 (ja) 2015-06-17
WO2011008734A1 (en) 2011-01-20
US20120311588A1 (en) 2012-12-06
EP2454666A1 (en) 2012-05-23
EP2851799B1 (en) 2016-02-17
JP2015143999A (ja) 2015-08-06
US20140053159A1 (en) 2014-02-20
AU2010273531A1 (en) 2012-01-19
CA2767667A1 (en) 2011-01-20
KR20160150126A (ko) 2016-12-28
AU2010273531B2 (en) 2014-09-25
US20110016354A1 (en) 2011-01-20
KR101721466B1 (ko) 2017-03-30
KR20150042873A (ko) 2015-04-21
JP2012533796A (ja) 2012-12-27
EP2454666A4 (en) 2013-04-24
EP2454666B1 (en) 2014-11-12
US8205113B2 (en) 2012-06-19

Similar Documents

Publication Publication Date Title
JP6499986B2 (ja) フォールトトレラントバッチ処理
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US9401835B2 (en) Data integration on retargetable engines in a networked environment
JP2016106329A (ja) エラーハンドリングをもつトランザクションのグラフ型計算
JP2010079622A (ja) マルチコアプロセッサシステム、および、そのタスク制御方法
CN113064744A (zh) 任务处理方法、装置、计算机可读介质及电子设备
Reano et al. Intra-node memory safe gpu co-scheduling
US8977752B2 (en) Event-based dynamic resource provisioning
Ousterhout et al. Performance clarity as a first-class design principle
CN107958414B (zh) 一种清除cics系统长交易的方法及系统
CN113269554B (zh) 数据对比方法、系统以及存储介质
AU2014274491B2 (en) Fault tolerant batch processing
Morisawa et al. Flexible executor allocation without latency increase for stream processing in apache spark
CN114237870A (zh) 任务运行方法、装置、计算机设备和存储介质
CN116820715A (zh) 作业重启方法、装置、计算机设备和可读存储介质
CN115481156A (zh) 一种数据处理方法、装置、设备及介质
CN117891744A (zh) 分布式测试用例的方法及装置
CN115858667A (zh) 用于同步数据的方法、装置、设备和存储介质
CN116302546A (zh) 流处理系统、状态恢复方法、设备及存储介质
Krishna Performance Evaluation of Scheduling Algorithms for Real Time Cloud Computing Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170327

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180814

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190318

R150 Certificate of patent or registration of utility model

Ref document number: 6499986

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