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

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

Info

Publication number
JP5897747B2
JP5897747B2 JP2015040581A JP2015040581A JP5897747B2 JP 5897747 B2 JP5897747 B2 JP 5897747B2 JP 2015040581 A JP2015040581 A JP 2015040581A JP 2015040581 A JP2015040581 A JP 2015040581A JP 5897747 B2 JP5897747 B2 JP 5897747B2
Authority
JP
Japan
Prior art keywords
data
checkpoint
batch
processing
work unit
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.)
Active
Application number
JP2015040581A
Other languages
English (en)
Other versions
JP2015143999A (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 JP2015143999A publication Critical patent/JP2015143999A/ja
Application granted granted Critical
Publication of JP5897747B2 publication Critical patent/JP5897747B2/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

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 (39)

  1. 一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、
    1つ又は複数の前記レコードに関連付けられたそれぞれのワークユニットとともに、個別のワークユニットの順に入力データの前記バッチを配列すること、および、
    前記ワークユニットについての計算を実行することであって、少なくとも1つであり且つ全てよりも少ない計算が前記バッチに関連付けられた前記ワークユニットについてのチェックポイント処理を含む、又は関連付けられる、前記実行すること、を含む、
    データのバッチ処理をフォールトトレラントに行う方法において、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くことであって、アクションが実行されるとき、前記チェックポイントバッファは、前記ワークユニットのうちのいずれにおいて前記アクションが実行されるかを特定し、それぞれの前記ワークユニットについての前記アクションの実行を結論付ける、前記開くこと、
    前記バッチからの各ワークユニットについて、前記チェックポイントバッファにおいて前記ワークユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなく前記ワークユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファに前記ワークユニットに対する前記アクションを実行した結果が保存されていなければ、前記ワークユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて、(ii)いずれの前記アクションが実行されたかについての前記ワークユニットを識別する情報に関連して、(i)前記アクションを実行した結果を保存すること、を含む、
    データのバッチ処理をフォールトトレラントに行う方法。
  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. 一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取る手段、
    1つ又は複数の前記レコードに関連付けられたそれぞれのワークユニットとともに、個別のワークユニットの順に入力データの前記バッチを配列する手段、および、
    前記ワークユニットについての計算を実行する手段であって、少なくとも1つであり且つ全てよりも少ない計算が、前記バッチに関連付けられた前記ワークユニットについてのチェックポイント処理を含む、又は関連付けられる、前記実行する手段、を含む、
    データのバッチ処理をフォールトトレラントに行うためのシステムにおいて、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くことであって、アクションが実行されるとき、前記チェックポイントバッファは、前記ワークユニットのうちのいずれにおいて前記アクションが実行されるかを特定し、それぞれの前記ワークユニットについての前記アクションの実行を結論付ける、前記開くこと、
    前記バッチからの各ワークユニットについて、前記チェックポイントバッファにおいて前記ワークユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなく前記ワークユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファに前記ワークユニットに対する前記アクションを実行した結果が保存されていなければ、前記ワークユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて、(ii)いずれの前記アクションが実行されたかについての前記ワークユニットを識別する情報に関連して、(i)前記アクションを実行した結果を保存すること、を含む、
    データのバッチ処理をフォールトトレラントに行うためのシステム。
  15. 請求項14に記載のシステムにおいて、
    前記アクションがリモートサーバとの通信を含む、データのバッチ処理をフォールトトレラントに行うシステム。
  16. 請求項15に記載のシステムにおいて、
    前記アクションを実行した結果が、前記ワークユニットについての前記リモートサーバとの通信からの情報を含む、データのバッチ処理をフォールトトレラントに行うシステム。
  17. 請求項16に記載のシステムであって、
    前記バッチの処理が完了したときに前記チェックポイントバッファを消去することを更に含む、データのバッチ処理をフォールトトレラントに行うシステム。
  18. 請求項15に記載のシステムにおいて、
    前記リモートサーバとの通信が通知される、データのバッチ処理をフォールトトレラントに行うシステム。
  19. 請求項15に記載のシステムにおいて、
    前記リモートサーバとの通信の結果が、揮発性のメモリに格納され、トリガイベントが生じたときに前記チェックポイントバッファにグループ形式にて保存される、データのバッチ処理をフォールトトレラントに行うシステム。
  20. 請求項19に記載のシステムにおいて、
    前記トリガイベントが、チェックポイントマネージャからの信号である、データのバッチ処理をフォールトトレラントに行うシステム。
  21. 請求項19に記載のシステムにおいて、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからのレコードの処理の数である、データのバッチ処理をフォールトトレラントに行うシステム。
  22. 請求項19に記載のシステムにおいて、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからの時間の経過である、データのバッチ処理をフォールトトレラントに行うシステム。
  23. 請求項14に記載のシステムにおいて、
    前記チェックポイント処理を含むコンポーネントが、複数の処理デバイス上にて並行して実行される、データのバッチ処理をフォールトトレラントに行うシステム。
  24. 請求項23に記載のシステムにおいて、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが前記バッチの実行の間にてコンシステントであり、それぞれの処理デバイスが独立したチェックポイントバッファを維持する、データのバッチ処理をフォールトトレラントに行うシステム。
  25. 請求項23に記載のシステムにおいて、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが動的であり、前記処理デバイスが、シェアされた不揮発性メモリに格納された単一のチェックポイントバッファへのアクセスを、チェックポイントマネージャによって制御される前記チェックポイントバッファへの書き込みとともに、シェアする、データのバッチ処理をフォールトトレラントに行うシステム。
  26. 請求項14に記載のシステムであって、
    フォールト状態が生じた後に処理を再スタートすること、
    一または複数のデータソースからの前記複数のレコードを含む入力データの前記バッチに基づく前記ワークユニットを読み取ること、
    前記計算に入力として前記ワークユニットを再度渡すこと、
    チェックポイントでのコンポーネントに対し、各ワークユニットについて、前記ワークユニットの前記実行から得られる結果が前記チェックポイントバッファにおいて以前保存されたものであるかどうかをチェックすること、
    を更に含む、データのバッチ処理をフォールトトレラントに行うシステム。
  27. データのバッチ処理をフォールトトレラントに行うためのコンピュータプログラムにおいて、前記コンピュータプログラムは、
    一または複数のデータソースからの複数のレコードを含む入力データのバッチを読み取ること、
    1つ又は複数の前記レコードに関連付けられたそれぞれのワークユニットとともに、個別のワークユニットの順に入力データの前記バッチを配列すること、および、
    前記ワークユニットについての計算を実行することであって、少なくとも1つであり且つ全てよりも少ない計算が前記バッチに関連付けられた前記ワークユニットについてのチェックポイント処理を含む、又は関連付けられる、前記実行すること、
    をコンピュータに実行させる命令を含み、
    前記チェックポイント処理は、
    前記バッチの処理を開始するときに不揮発性メモリに格納されたチェックポイントバッファを開くことであって、アクションが実行されるとき、前記チェックポイントバッファは、前記ワークユニットのうちのいずれにおいて前記アクションが実行されるかを特定し、それぞれの前記ワークユニットについての前記アクションの実行を結論付ける、前記開くこと、
    前記バッチからの各ワークユニットについて、前記チェックポイントバッファにおいて前記ワークユニットに対する前記アクションを実行した結果が既に保存されていれば、前記アクションを再び実行することなく前記ワークユニットの処理を完了するために保存されている結果を用いること、または、前記チェックポイントバッファに前記ワークユニットに対する前記アクションを実行した結果が保存されていなければ、前記ワークユニットの処理を完了するために前記アクションを実行して前記チェックポイントバッファにおいて、(ii)いずれの前記アクションが実行されたかについての前記ワークユニットを識別する情報に関連して、(i)前記アクションを実行した結果を保存すること、を含む、
    コンピュータプログラム。
  28. 請求項27に記載のコンピュータプログラムにおいて、
    前記アクションがリモートサーバとの通信を含む、コンピュータプログラム。
  29. 請求項28に記載のコンピュータプログラムにおいて、
    前記アクションを実行した結果が、前記ワークユニットについての前記リモートサーバとの通信からの情報を含む、コンピュータプログラム。
  30. 請求項27に記載のコンピュータプログラムであって、
    前記バッチの処理が完了したときに前記チェックポイントバッファを消去することを更にコンピュータに実行させる命令を含む、コンピュータプログラム。
  31. 請求項28に記載のコンピュータプログラムにおいて、
    前記リモートサーバとの通信が通知される、コンピュータプログラム。
  32. 請求項28に記載のコンピュータプログラムにおいて、
    前記リモートサーバとの通信の結果が、揮発性のメモリに格納され、トリガイベントが生じたときに前記チェックポイントバッファにグループ形式にて保存される、コンピュータプログラム。
  33. 請求項32に記載のコンピュータプログラムにおいて、
    前記トリガイベントが、チェックポイントマネージャからの信号である、コンピュータプログラム。
  34. 請求項32に記載のコンピュータプログラムにおいて、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからのレコードの処理の数である、コンピュータプログラム。
  35. 請求項32に記載のコンピュータプログラムにおいて、
    前記トリガイベントが、前記チェックポイントバッファへの最後の書き込みからの時間の経過である、コンピュータプログラム。
  36. 請求項27に記載のコンピュータプログラムにおいて、
    前記チェックポイント処理を含むコンポーネントが、複数の処理デバイス上にて並行して実行される、コンピュータプログラム。
  37. 請求項36に記載のコンピュータプログラムにおいて、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが前記バッチの実行の間にてコンシステントであり、それぞれの処理デバイスが独立したチェックポイントバッファを維持する、コンピュータプログラム。
  38. 請求項36に記載のコンピュータプログラムにおいて、
    前記複数の並行した処理デバイス間のデータレコードの割り当てが動的であり、前記処理デバイスが、シェアされた不揮発性メモリに格納された単一のチェックポイントバッファへのアクセスを、チェックポイントマネージャによって制御される前記チェックポイントバッファへの書き込みとともに、シェアする、コンピュータプログラム。
  39. 請求項27に記載のコンピュータプログラムであって、
    フォールト状態が生じた後に処理を再スタートすること、
    一または複数のデータソースからの前記複数のレコードを含む入力データの前記バッチに基づく前記ワークユニットを読み取ること、
    前記計算に入力として前記ワークユニットを再度渡すこと、
    チェックポイントでのコンポーネントに対し、各ワークユニットについて、前記ワークユニットの前記実行から得られる結果が前記チェックポイントバッファにおいて以前保存されたものであるかどうかをチェックすること、
    を更にコンピュータに実行させる命令を含む、コンピュータプログラム。
JP2015040581A 2009-07-14 2015-03-02 フォールトトレラントバッチ処理 Active JP5897747B2 (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
JP2012520711A Division JP5735961B2 (ja) 2009-07-14 2010-07-13 フォールトトレラントバッチ処理

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2015143999A JP2015143999A (ja) 2015-08-06
JP5897747B2 true JP5897747B2 (ja) 2016-03-30

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 (1)

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

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016040269A Active JP6499986B2 (ja) 2009-07-14 2016-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) CN105573866B (ja)
AU (1) AU2010273531B2 (ja)
CA (1) CA2767667C (ja)
HK (2) HK1165051A1 (ja)
WO (1) WO2011008734A1 (ja)

Families Citing this family (36)

* 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
EP2174222A4 (en) 2007-07-26 2010-10-27 Ab Initio Technology Llc TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
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
KR20150042297A (ko) 2010-06-15 2015-04-20 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
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
US20140137121A1 (en) * 2012-10-05 2014-05-15 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
US9323619B2 (en) 2013-03-15 2016-04-26 International Business Machines Corporation Deploying parallel data integration applications to distributed computing environments
US9401835B2 (en) 2013-03-15 2016-07-26 International Business Machines Corporation Data integration on retargetable engines in a networked environment
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
CA2932763C (en) 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US10496619B2 (en) 2014-09-02 2019-12-03 Ab Initio Technology Llc Compiling graph-based program specifications
CN106687920B (zh) * 2014-09-02 2020-07-03 起元科技有限公司 管理任务的调用
EP3189422A1 (en) 2014-09-02 2017-07-12 AB Initio Technology LLC Executing graph-based program specifications
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
KR102184280B1 (ko) * 2015-12-17 2020-11-30 아브 이니티오 테크놀로지 엘엘시 동적 파티셔닝을 이용한 데이터 프로세싱
CN108475189B (zh) 2015-12-21 2021-07-09 起元技术有限责任公司 子图接口生成的方法、系统及计算机可读介质
JP6764938B2 (ja) * 2016-01-14 2020-10-07 アビニシオ テクノロジー エルエルシー リカバリ可能なストリーム処理
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
KR102625797B1 (ko) * 2023-03-06 2024-01-16 주식회사 모레 파이프라인 병렬 처리 컴파일링 방법 및 장치

Family Cites Families (43)

* 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 情報処理装置
EP0554854A3 (en) * 1992-02-04 1996-02-28 Digital Equipment Corp System and method for executing, tracking and recovering long running computations
JPH06274401A (ja) * 1993-03-18 1994-09-30 Nec Corp 分散データベース制御方式
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
JP2000039990A (ja) * 1998-07-24 2000-02-08 Nippon Telegr & Teleph Corp <Ntt> 情報提供装置および方法と情報提供プログラムを記録した記録媒体
US6401216B1 (en) * 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
JP4094752B2 (ja) * 1998-11-27 2008-06-04 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6584581B1 (en) * 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
JP3463020B2 (ja) * 2000-06-14 2003-11-05 日本電信電話株式会社 ワークフロー実行方法および装置とワークフロー実行プログラムを記録した記録媒体
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
JP2003085021A (ja) * 2001-09-07 2003-03-20 Nippon Soken Holdings:Kk リカバリ・リスタート機能を備えたバッチ処理システム、リカバリ・リスタート機能を備えたバッチ処理システム用プログラム、及びそのプログラムを記録した記録媒体
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
JP2004178316A (ja) * 2002-11-27 2004-06-24 Computer Consulting:Kk プログラム生成装置および方法
US7340741B2 (en) * 2003-02-28 2008-03-04 International Business Machines Corporation Auto-restart processing in an IMS batch application
ATE515746T1 (de) * 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
CN1853181A (zh) * 2003-09-15 2006-10-25 Ab开元软件公司 数据归档
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
JP4710380B2 (ja) * 2005-03-31 2011-06-29 日本電気株式会社 分散処理システム及び分散処理方法
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
AU2007286155B2 (en) * 2006-08-10 2013-12-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
JP5251002B2 (ja) * 2007-05-25 2013-07-31 富士通株式会社 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
US7779298B2 (en) * 2007-06-11 2010-08-17 International Business Machines Corporation Distributed job manager recovery
US8954482B2 (en) * 2007-09-20 2015-02-10 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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6499986B2 (ja) フォールトトレラントバッチ処理
US8739171B2 (en) High-throughput-computing in a hybrid computing environment
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
US9401835B2 (en) Data integration on retargetable engines in a networked environment
JP2016106329A (ja) エラーハンドリングをもつトランザクションのグラフ型計算
US11048577B2 (en) Automatic correcting of computing cluster execution failure
CN113064744A (zh) 任务处理方法、装置、计算机可读介质及电子设备
Ousterhout et al. Performance clarity as a first-class design principle
WO2020238348A1 (zh) 区块的验证方法、装置及设备
AU2014274491B2 (en) Fault tolerant batch processing
US20240303109A1 (en) Reducing Processing Bandwidth of Networked Services by Consolidating Service Tasks
CN114237870A (zh) 任务运行方法、装置、计算机设备和存储介质
Monum Evaluating Container-based and WebAssembly-based Serverless Platforms
CN117194002A (zh) 一种应用于分布式计算引擎的处理方法及装置
von Massow Performance simulation of runtime reconfigurable software architectures
Krishna Performance Evaluation of Scheduling Algorithms for Real Time Cloud Computing Systems
Natarajan et al. Lean and Efficient Business Tier for Performance Scaling

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151210

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160302

R150 Certificate of patent or registration of utility model

Ref document number: 5897747

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

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