JP6662847B2 - 分散コンピューティング用のプロアクティブ障害回復モデル - Google Patents

分散コンピューティング用のプロアクティブ障害回復モデル Download PDF

Info

Publication number
JP6662847B2
JP6662847B2 JP2017505069A JP2017505069A JP6662847B2 JP 6662847 B2 JP6662847 B2 JP 6662847B2 JP 2017505069 A JP2017505069 A JP 2017505069A JP 2017505069 A JP2017505069 A JP 2017505069A JP 6662847 B2 JP6662847 B2 JP 6662847B2
Authority
JP
Japan
Prior art keywords
node
computing
nodes
computing node
mtbf
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
JP2017505069A
Other languages
English (en)
Other versions
JP2017527893A (ja
JP2017527893A5 (ja
Inventor
エス. アル−ワハビ,ハリド
エス. アル−ワハビ,ハリド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Saudi Arabian Oil Co
Original Assignee
Saudi Arabian Oil Co
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 Saudi Arabian Oil Co filed Critical Saudi Arabian Oil Co
Publication of JP2017527893A publication Critical patent/JP2017527893A/ja
Publication of JP2017527893A5 publication Critical patent/JP2017527893A5/ja
Application granted granted Critical
Publication of JP6662847B2 publication Critical patent/JP6662847B2/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
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Description

本発明は、分散コンピューティング用のプロアクティブ障害回復モデルに関する。
優先権の主張
本願は、2014年7月29日に出願された米国特許出願第14/445,369号に基づく優先権を主張し、当該米国特許出願のすべての記載内容を援用する。
何千もの科学技術アプリケーションプロセスを用いる分散コンピューティングシステム(例えば、同種(クラスタ)、異種(グリッド及びクラウド)、等)上で地震データ処理、三次元リザーバ不確実性モデリング、及びシミュレーション等のクリティカル/リアルタイム科学技術アプリケーションを実行することは、所望の解答を生成するために、何日も又は何週間ものデータ処理を命じることが可能な高機能コンピューティング能力を必要とする。長時間のジョブ実行の成功は、システムの信頼性にかかっている。スーパーコンピュータ上に展開される大多数の科学技術アプリケーションは、そのプロセスのうちの1つだけが失敗した場合に失敗する可能性があるため、分散システムにおける故障許容は、複合コンピューティング環境において重要な特徴である。何らかの種類のコンピュータ処理障害をリアクティブ(事後対処的)に許容することは、通常、1つ以上のプロセスのステータス(状態)を定期的にチェックポインティングすることを可能にするかどうかの選択を伴い、これは、高性能コンピューティング環境において広く適用可能な効果的な技法である。しかし、この技法は、最適なチェックポイント間隔及びチェックポイントデータのための安定したストレージ(格納)位置を選択することに関するオーバーヘッド問題を有している。加えて、現在の障害回復モデルは、通常、数種類のコンピューティング障害に限られており、それらの有用性及び効率を制限するコンピューティング障害(単数又は複数)の場合に、手動で呼び出されている。
本開示は、実装に従って、分散コンピューティング用のプロアクティブ障害回復モデルを提供するための、コンピュータに実装される方法、コンピュータプログラム製品、及びコンピュータシステムを含む方法及びシステムについて説明する。1つのコンピュータに実装される方法は、複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築するステップと、仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するよう、ハードウェアプロセッサによって、ノード障害予測モデルを実行するステップと、計算したMTBFと、最大及び最小閾値との比較に基づいて、コンピューティングノードのチェックポイントを実行するかどうか決定するステップと、コンピューティングノードから回復ノードとして機能する異なるコンピューティングノードへプロセスを移行するステップと、異なるコンピューティングノード上でプロセスの実行を再開するステップとを含む。
この局面の他の実装は、1つ以上のコンピュータ読取り可能媒体/ストレージデバイス上に記録され、それぞれが方法のアクションを実行するよう構成された、対応するコンピュータシステム、装置、及びコンピュータプログラムを含む。1つ以上のコンピュータのシステムは、動作において、システムにアクションを実行させる、システム上にインストールされるソフトウェア、ファームウェア、ハードウェア、若しくは、ソフトウェア、ファームウェア、又はハードウェアの組み合わせを有することによって、特定の動作又はアクションを実行するよう構成することができる。1つ以上のコンピュータプログラムは、データ処理装置によって実行される場合に、装置にアクションを実行させる命令を含むことによって、特定の動作又はアクションを実行するよう構成することができる。
前記及び他の実装は、以下の特徴のうちの1つ以上を、単独又は組み合わせで、それぞれ任意に含むことができる。
一般的な実装と組み合わせることができる第1の局面は、更に、各コンピューティングノードに対する少なくともコンピューティング能力及びノード位置パラメータ値を収集するステップと、それらのノード位置パラメータに基づいて、コンピューティングノードをコレクション(集合体)に分割するステップと、コンピューティング能力パラメータに基づいて、各コレクション内のノードをソートするステップとを含む。
先の局面のいずれかと組み合わせることができる第2の局面は、更に、ソートしたコンピューティングノードのレベルを決定するよう上限及び下限を特定するステップと、コンピューティング能力パラメータ並びに上限及び下限に基づいて、各コレクション内のコンピューティングノードを水平レベルにソートするステップと、水平レベル配置及び垂直配置を、各コンピューティングノードに関連するノード記録情報テーブルに記録するステップと、指定された回復ノードを各ノード記録情報テーブルに登録するステップとを含む。
先の局面のいずれかと組み合わせることができる第3の局面では、上限及び下限が、各コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、垂直配置が、各コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される。
先の局面のいずれかと組み合わせることができる第4の局面では、MTBFが、ネットワーク又はデータストレージ障害に少なくとも基づいて計算される。
先の局面のいずれかと組み合わせることができる第5の局面は、コンピューティングノードのMTBFが下限未満である場合にチェックポイントを作成するステップと、MTBFに等しくなるように、コンピューティングノードに関連する下限を更新するステップとを更に含む。
先の局面のいずれかと組み合わせることができる第6の局面は、コンピューティングノードの障害が発生したことを判断するステップと、コンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いるステップとを更に含む。
本明細書中に説明する主題は、以下の利点のうちの1つ以上を実現するように、特定の実装において実装することができる。第1に、説明する障害回復モデルシステム及び方法は、部分的/深刻な計算ノード(例えば、コンピュータサーバ、等)障害が発生した場合でさえも、計算プロセスの信頼性のある、継続的な動作を可能にする安価なフレームワーク設計を有し、ビジネス継続性最適化を向上している。障害回復モデルシステムは、継続的な動作を可能にし、失敗したジョブ実行を最適に実行するための高性能定格を達成する。障害回復モデルはプロアクティブ(リアクティブではなく)であるため、コストはジョブを再処理することに対して更に低減され、障害回復実施からのコスト回避並びに時間及び労力両方の節約を可能にする。第2に、フレームワークは、膨大な数の計算ノードに対して適応性がある。第3に、フレームワーク設計は、異なる災害回復原理要因を考慮している。第4に、説明するシステム及び方法は、不必要なプロセスチェックポインティングによって生じるオーバーヘッドを極めて最小限にする。第5に、説明するシステム及び方法は、処理を最適化するためにどのような種類の負荷分散技法も実施するよう構成することができる。第6に、システム及び方法は、動作のために局所型又は集中型のチェックポイントストレージに依存しない。第7に、システム及び方法は、チェックポイントプロセスの最適配置を制御するために障害断定モデルに依存している。第8に、提案するシステム及び方法設計は、高度なビジネス継続性最適化を可能にする。他の利点は、当業者にとって明らかであろう。第9に、このフレームワーク設計内の障害断定モデルは、どのような種類の障害(電力供給、ソフトウェア、ハードウェア、ネットワーク、等)も捕捉及び対処できる。
本明細書の主題のひとつ以上の実装の詳細を、添付図面および以下の説明において述べる。主題の他の特徴、局面、及び利点は、明細書、図面、及び特許請求の範囲から明らかとなろう。
図1Aは、実装に従って分散コンピューティング用のプロアクティブ障害回復モデルを提供するための方法を示す。 図1Bは、実装に従って分散コンピューティング用のプロアクティブ障害回復モデルを提供するための方法を示す。 図1Cは、実装に従って分散コンピューティング用のプロアクティブ障害回復モデルを提供するための方法を示す。
図2は、実装に従ってノード仮想ツリー状構造を構築するために用いることができる、ノードから収集されたパラメータのクロスプロット例を示す。
図3は、実装によるノードの仮想ツリー状構造例を示す。
図4Aは、実装に従ってMTBFの計算に用いられるノード性能値を示す。
図4Bは、実装に従ってノードに対するMTBFを計算するために用いられる典型的な学術的数式を示す。
図5は、実装に従ってMTBFに関連するチェックポイント間隔配置を示すグラフである。
図6は、部分的ノード障害が発生した場合の、どのように回復モデルが実装に従って回復に対して用いられるかの、ノードの仮想ツリー状構造例を示す。
図7は、実装に従ってノードが半故障を経験している場合の、仮想ツリー状構造のノードに対するチェックポインティングデータストレージノードを示す。
図8は、実装に従ってアプリケーション計算に参加しているノードを示す。
図9A及び9Bは、実装に従って独立及び従属プロセスに関するチェックポインティングノードリクエストを示す。
図10は、実装に従って分散コンピューティング用のプロアクティブ障害回復モデルを提供するために用いられるコンピューティングデバイス例を示すブロック図である。
種々の図面における同様の参照番号及び符号は、同様の構成要素を示している。
以下の詳細な説明は、当業者が開示された主題を製造し、用いることを可能にするよう表され、1つ以上の特定の実装の文脈において提供される。開示された実装に対する様々な変更は、当業者に容易に明らかとなり、本明細書中で定義される一般原理は、開示の適用範囲から逸脱することなく、他の実装及び用途に適用されてもよい。従って、本開示は、説明及び/又は図示する実装に限定する意図はないが、本明細書中に開示する原理及び特徴と一致する最も広い適用範囲と一致するものとする。
この開示は、概して、コンピューティングノード(例えば、コンピュータサーバ、等)障害の場合にビジネス継続性最適化を可能にするよう、分散コンピューティング用のプロアクティブ(事前対策的)障害回復モデル(FRM)を提供するための、コンピュータに実装される方法、コンピュータプログラム製品、及びコンピュータシステムを含む方法及びシステムを説明する。以下の説明は、特定の実装に焦点を合わせているが、具体的な実装は、説明する主題の適用範囲を、他の使用に対し、及び、この開示と一致する方法で限定することを意味していない。
何千ものプロセスを用いる分散コンピューティングシステム(例えば、同種(クラスタ)、異種(グリッド及びクラウド)、等)上で地震データ処理及び三次元リザーバ不確実性シミュレーション及びモデリング等のクリティカル/リアルタイム科学技術アプリケーションを実行することは、高機能コンピュータ出力を必要とし、科学技術アプリケーションは、所望の解答を生成するために何日も、又は時には、何週間もデータを処理することに費やす可能性がある。長時間の実行の成功は、システムの信頼性にかかっている。スーパーコンピュータ上に展開される大多数の科学技術アプリケーションは、そのプロセスのうちの1つだけが失敗した場合に失敗する可能性があるため、分散システムにおける故障許容は、複合コンピューティング環境において重要な特徴である。何らかの種類のコンピュータ処理障害をリアクティブ(事後対処的)に許容することは、通常、1つ以上のプロセスのステータス(状態)を定期的にチェックポインティングすることを可能にするかどうかの選択を伴う。
チェックポインティングは、高性能コンピューティング環境において広く適用可能な効果的な技法であり、分散システムにおけるプロセス実行中の障害の場合に用いられる最も効果的な故障許容型の技法である。チェックポインティングにおいて、ノード上で実行するプロセスの状態は、ハードディスク、フラッシュメモリ、等のような信頼性があり、安定したストレージ上に定期的に保存される。いくつかの実装において、チェックポインティングは、オペレーティングシステムが後でプロセスを再構築するために用いることができる、実行しているプロセス(例えば、上で説明した「プロセスの状態」)を説明するファイルを作成する。例えば、チェックポイントファイルは、チェックポインティングされたプロセスのスタック、ヒープ、レジスタ(単数又は複数)に関するデータを含むことができる。チェックポイントファイルは、また、ペンディング信号のステータス、シグナルハンドラ、アカウント記録、端末状態、及び、所定時点でのプロセスを再構築するために必要なその他必要なデータを含むことができる。プロセスは、従って、プロセスを再度新たに再開することによって開始するのではなく、特定のチェックポイントが取得された点において、及び、そこから実行を継続することを可能にしている。
高い水準において、FRMは、一貫した対象アプリケーション/プロセススループットを維持し、プロセス再処理実行時間を最適化/最小化するためにチェックポイントの最小限必要なセットを維持し、回復生存ノード(以下でより詳細に説明する)の中で最適な負荷分散ストラテジを達成し、ディスクレス又は入力/出力操作を最小限にし、チェックポイントデータを安定及び安全なストレージに格納し、及び/又は、メモリオーバーヘッドを最小限にするよう構成される。場合により、FRMは、また、処理ジョブが復旧に参加しているノードにおいてホストとして処理されていない限り、実行モード中である処理ジョブをブロックしない非ブロックチェックポインティングの使用を介して、チェックポインティング待ち時間(プロセスがチェックポイントリクエストを開始し、グローバル(広域)チェックポイントプロセスがそれを完了するまでの時間)を低減することができる。結果として、処理ジョブ実行待ち時間が低減される。
より詳細には、説明するFRMは、場合により、1)無障害コンピューティングの場合は高性能、安定性コンピューティングシステムを支持する拡張可能な仮想ツリー状構造、及び、障害発生の場合は回復リソースの高稼働率、並びに、2)各チェックポイントリクエストの有効性及びそれに関する必要性を測定することによって、チェックポイントベースのアルゴリズムの協調及びコンテキスト切り替えのオーバーヘッドを最小限にするために典型例において用いられる障害予測モデル(FPM)として実装される。
仮想ツリー状構造コンピューティングトポロジー設計
階層ツリー状コンピューティングトポロジー設計は、回復ノードと、異なる物理的な位置に存在してもよい遠隔の指定されたチェックポイントデータ格納ノードとの両方の割り当てに対する多数の選択を可能にする。通常の実装において、分散コンピューティング作業に参加している全てのコンピューティングノード(ノード)は、仮想ツリー状構造を構築するよう2つの異なるパラメータ:1)コンピューティング能力(computing power)(CP−Y軸上に置かれる)及び2)ノード位置(node location)(NLOC−X軸上に置かれる)によって決定されるような仮想ツリー状構造に仮想的に置かれる。他の実装において、他のパラメータが、明白/有意の分類を可能にするため、及び、説明する仮想ツリー状構造を構築するため、Y又はX軸のどちらか一方で収集及び/又は用いられてもよい。
ノード障害予測モデル
障害予測は、長い間、主に、実際の生産システムからの現実的な障害データの不足による研究問題に挑戦することとして見なされてきた。しかし、計算された平均故障間隔(MTBF)、ノードの信頼性を表すために用いられる統計パラメータは、ノードのための近い将来の所定期間内の故障率に対する良好な指標となることができる。
分散コンピューティング環境における障害は、いくつかの実装において、ロバストで総合的な障害回復モデルを確実にすると見なさなければならない5つの異なるカテゴリに分類することができる。例えば、カテゴリは以下を含むことができる:1)クラッシュ障害−サーバは停止するが、それが停止するまで正しく動作する;2)脱落障害(受信又は送信脱落のどちらか)−サーバが着信リクエストに応答することに失敗する、サーバが着信メッセージを受信することに失敗する、サーバがメッセージを送信することに失敗する;3)タイミング障害−サーバの応答が指定された時間間隔の外側に位置する;4)応答障害(値又は状態遷移障害)−サーバの応答が不正確;応答の値が間違っている、サーバが正しい制御フローから外れている;5)任意障害−サーバが任意応答を任意時間に生成している恐れがある。
一般に、分散コンピューティングノード構造(例えば、ノードN0;N1;N2;...;Nn)は、ネットワーク接続によって、ローカル又はグローバル(例えば、インターネット又は他のネットワーククラウド)に接続される。各ノードは、通常、それ自体の物理的なメモリ及びローカルディスク(例えば、独立型(スタンドアローン)コンピューティングデバイス)を有し、安定した共有ストレージは、ノード間で共有される大量のデータセットのために配備される。科学技術、リアルタイム、等のアプリケーションにおいて、ノードのプロセス間の通信は、メッセージパッシングインターフェース(MPI)、プロセス間のグローバル送信/受信リクエストのために指定される共有メモリ、及び/又は他の通信方法を介して達成することができる。通常、各プロセスは異なるノード上に常駐するが、2つ以上の別々のプロセスが単一ノード上で実行されてもよい。
プロセス間の通信チャンネルが安定し、信頼性があり、分散コンピューティングシステム内の各ノードが揮発性である(ノードが障害により分散コンピューティングシステムを離れるか、回復後に分散コンピューティングシステムに接合する可能性があることを意味する)と仮定し−また、故障したノードがコンピューティング環境から切り離されるフェイルストップモデルと仮定すると−ノードの障害は、故障したノード上のすべてのプロセスが動作を停止する原因となる(故障ノード上の影響を受けたプロセスの全てのデータが失われる)。ここで、FRM回復/スペアノードが、それぞれ影響を受けたプロセスのために、(障害が物理的に修復されるまでアプリケーションを一時停止するのではなく)最後のチェックポイントから処理を継続するために用いることができる。
特定のノードに対するノード障害状況は、通常、決定される(例えば、ノードのソフトウェアエージェント−各ノードは通常それ自体のサービスデーモン「エージェント」を有する−によって予測される)/仮想ツリー状構造内の特定のノードと同じレベルに常駐するいずれかのノードによって(コンピューティング環境の構造を記述する、各ノードに保存された記録テーブル内の指定された参加ノードに)協力的に通知される。特定ノードの障害の断定は、近い将来のいつかに対する障害のリスクの評価を可能にし、特定ノードに関連するプロセス状態のより細かい進展(より高い粒度)を保存するようプロアクティブステップをとるための重要な指標である。従って、深刻な障害が、故障しそうだと既に予測された場合に、特定のノードに発生した場合、多大な再処理時間は、特定ノードに関連するプロセスを回復するために用いることができる利用可能なノード状態におけるより細かい粒度によって回避することができる。通常、ノード障害の断定は、チェックポイントを取得/格納するコストに対するバランスを保つ。
図1A〜1Cは、実装に従って分散コンピューティング用のプロアクティブ障害回復モデルを提供するための(下位方法100a、100b、100cに分割される)集合的な方法100を示している。他の実装において、分散コンピューティング用のプロアクティブ障害回復モデルを提供することは、説明する各ステップ/操作よりも多くを含む、より多くの、又は、より少ないステップ/操作を含むことができる。方法100(又はその個々の下位方法のいずれか)は、適切なシステム、環境、ソフトウェア、及び/又はハードウェア、又は、必要に応じて、システム、環境、ソフトウェア、及び/又はハードウェアの組み合わせ(例えば、以下で図10において説明するコンピュータシステム)によって実行されてもよい。いくつかの実装において、方法100の様々なステップは、並列に、組み合わせで、ループで、又は何らかの順序で実行することができる。
コンピューティングノードの仮想ツリー状構造化モデルを構築
図1Aに目を向けると、102において、ノードの仮想ツリー状構造化モデルが、分散コンピューティングシステム内で利用可能なノードを用いて構築されている。ツリー状構造は、ノードのツリーが実際にはツリー状構造で配置されていないが、親/子型の関係で通信するよう、この方法でマッピングされているため、「仮想的」と考えられる。当業者によって正しく認識されるように、コンピューティング能力(CP)及びノード位置(NLOC)パラメータの使用は、ノードの仮想ツリー状構造化モデルを構築する唯一可能な実装であり、この開示と一致する他のパラメータ(例えば、計算ハードウェア型及び/又はバージョン、ソフトウェアバージョン、等)は、他の実装において用いられてもよい。CP及びNLOCパラメータの使用は、説明する主題をどのような形でも限定することを意味せず、他のパラメータは、この開示の適用範囲(scope)内として想定される。通常の実装において、CPはY軸上にあると考えられ、NLOC(又は他のパラメータ(単数又は複数))は、ノードの仮想ツリー状構造化モデルのX軸上にあると考えることができる。
103aにおいて、少なくともコンピューティング能力(CP)、ノード位置(NLOC)、及び/又は他のパラメータは、例えば、計算プロセスの処理に参加する分散コンピューティングシステムの全てのノードのために収集される。いくつかの実装において、この収集されたデータは、仮想ツリー作成プロセス(不図示)による使用のために、データ構造、ファイル、等(例えば、ノード記録情報テーブル)内に置かれる。いくつかの実装において、各ノードは、全ての他のノード及び関連するパラメータを知っている。例えば、各ノードは、分散コンピューティングシステム内のノードのための収集されたパラメータ情報を含むデータ構造/ファイルに対するアクセスを有することができる。この情報は、各ノードが、兄弟、下位、等を知ることができるよう用いられてもよい。103aから、方法100aは103bに進む。
103bにおいて、ノードは、それらの位置(NLOC)に基づいてコレクション毎に分割される。103bから、方法100aは103cに進む。
103cにおいて、ノードは、ノードCPパラメータに基づいて、各コレクション内でソートされる。103cから、方法100aは103dに進む。
103dにおいて、各レベルの下限及び上限(すなわち、閾値)は、ノードから収集されたパラメータのクロスプロットから決定される。ここで図2に目を向けると、図2は、実装に従ってノード仮想ツリー状構造を構築するために用いることができるノードから収集されたパラメータのクロスプロット例を示している。図示の通り、各ノード(ハッシング/パターンは異なる位置(NLOC)を示すための色を表すことができることに留意されたい−例えば、全ての「青色」にプロットされたノードは特定の位置におけるものである一方で、全ての「緑色」にプロットされたノードは異なる特定の位置におけるものである)は、いくつかの実装において、X軸202上のメモリパラメータ値(例えば、低から高−8GB〜64GB範囲のコンピュータサーバメモリを表す)及びY軸204上のCPパラメータ値(低から高−1.6〜3.5GHz範囲のプロセッサクロックを表す)に従ってプロットすることができる。当業者によって正しく認識されるように、これは、クロスプロットを生成する多数の可能な方法のうちの1つに過ぎない。この開示と一致する何らかの適切なパラメータの使用は、この開示の適用範囲内にあるよう想定される。
いくつかの実装において、ノードの水平配置(すなわち、ノードが一部である水平「線」)は、図2のクロスプロット内のノードの位置により、CPに基づいている。例えば、ノードのCPパラメータ及び位置に基づいて、ノードは、仮想ツリー状構造内の下部、中間、又は上部位置にあってもよい。図示の実施例において、水平配置は、場合により、概して、下部に付けられたノードの大部分が、最も高いCPパラメータ値(より高い計算能力)を有するノードである一方で、ツリー状構造で、ノードが置かれる位置が高ければ高いほど、CPパラメータ値は低くなる(より低い計算能力)という可能性がある。
いくつかの実装において、ノードの垂直配置(例えば、上で説明した水平「線」に沿った左又は右−図3下部において、ノード304bが置かれているような)は、例えば、物理的位置、サブネット、帯域幅速度、電力供給ライン、等の異なる分類可能な基準によって決まり、初期設定により仮想ツリー状構造のバランスを保つ。例えば、クロスプロットにおいて用いられるX軸基準がツリー構造内の特定ノードの配置を案内する場合、仮想ツリー状構造はバランスが保たれ、正しい物理的災害−回復セットアップが計算環境に適用されるかどうかに関する指標として用いることができる。ノードを垂直に分けるために用いられる追加基準は、数ある中でも、物理的位置、サブネット、帯域幅速度、電力供給ライン、及び/又は他の追加基準を含むことができる。103dから、方法100aは103eに進む。
103eにおいて、各ノードのための水平及び/又は垂直ツリー配置入力が、ノード記録情報テーブルに行われる。103eから、方法100aは103fに進む。
103fにおいて、各ノードのためのノード記録情報テーブルは、ノードのための関連して指定されたチェックポイント及び/又は回復ノード(単数又は複数)が格納される。仮想ツリー状構造内の水平/垂直位置に基づいて、上位及び下位ノードを、仮想ツリー状構造内の各ノードのために決定することができ、ノード記録情報テーブルをこの情報で更新することができる。加えて、各特定ノードに対して、別のノード(例えば、1つ以上の直接的な子供)を、特定ノードのための初期設定の回復ノードとして指定することができ、別のノード(単数又は複数)を、特定ノードのチェックポイントノードとして指定することができる。通常、チェックポイントノードは、仮想ツリー状構造内の特定ノードの兄弟、子供、又は上位ノードではない。いくつかの実装において、特定ノードのための指定した回復ノード及びチェックポイントノードは、同じであってもよい。103fから、方法100aは104(ノード障害予測モデル)に進む。
ここで図3に目を向けると、図3は、実装による(例えば、上記の103a〜103fによって構築されるような)ノードの仮想ツリー状構造例300を示している。上記の103bで説明したように、302a、302b、・・・、302nは、位置(NLOC)、例えば、異なるネットワークサブネットにおける場所による、ノードのコレクションを示している。上記の103c及び103dで説明したように、304a、304b、・・・、304nは、CPパラメータによってソートされ、ノードから収集されたパラメータのクロスプロットによって水平レベルに分割されたノードである。例えば、ノード304aは、ノード304nよりも高いCPパラメータ値を有していてもよい。更に、ノード(例えば、306a及び306b)は、例えば、物理的位置、サブネット、帯域幅速度、等の上で説明した(又は他の)異なる分類可能な基準に基づいて、同じ水平レベル内で垂直に切り離される。一意のノード識別(ノードID)値例が、いくつかのノードの内部(例えば、304nはレベル1、ノード1のために「N1(1)」を表示し、ノード306bはレベル2、ノード13のために「N2(13)」を表示する)等に(N2の下のノードIDは示されていないが)示されている。いずれかの適切な一意のノード識別子も、この開示の適用範囲内にあるよう想定される。
仮想ツリー状構造のトポロジーは順応性であることに留意されたい。例えば、より多くの、又は、より少ないノードが特定位置に追加される場合、ノードCP値は変化し、ノードはより高いCP/メモリモデル等のためにスワップされ、そのNLOC分割されたコレクション内の関係ツリーは更新することができ、他のNLOC分割されたコレクションにおける他のノードとの関係も、更新することができる。例えば、新規ノードが分散コンピューティングシステムに追加される場合、仮想ツリー状構造基準プロセスは、再度実行することができる。場合により、ツリーは部分的又は全体的に再構築することができる。
図4Aに目を向けると、図4Aは、実装に従ってMTBFの計算に用いられるノード性能値400aを示している。ここで、402は障害開始点(障害が始まった時間(又は「ダウンタイム」))であり、404は回復開始点404(処理が再開した時間(又は「アップタイム」))である。406は障害間の時間(「ダウンタイム」と「アップタイム」との間の差は2つの事象間で動作した時間)である。408は障害を表している。
図4Bに目を向けると、図4Bは、実装に従ってノードに対するMTBFを計算するために用いられる典型的な学術的数式400bを示している。ここで、MTBFは、(例えば、ノードに対する)多数の観測された障害408(例えば、再度ノードにとっての)によって分割される運転期間の合計である。当業者によって正しく認識されるように、より多くの、又は、より少ないデータ値を用いて、この開示と一致するMTBF又は類似した値の他の変化は、ノード障害の予測及び以下で説明するような結果として生じる動作に用いられてもよい。104から、方法100aは方法100b(図1B)に進む。
図1Bにおいて、プロセス状態をチェックポインティングするか、及び/又は、プロセス(ジョブ)を移行させるかどうかの決定100bが行われる。チェックポイント時間計算とは、ノードのチェックポイントを取得することのシステムオーバーヘッドを、(例えば、ノードに対するMTBFに基づいて)より必要であると考えられる時間に最小化することである。
106において、方法100aにおいて計算されたノードに対するMTBFは、最小閾値(MinLimit)及び最大閾値(MaxLimit)と比較される。最初に、MinLimit及びMaxLimitは、いくつかの所定の時間値に設定される。MinLimit値は、(例えば、ノードに関する次の健全性チェックを実行する場合に決定するよう)必要に応じて変更することができる。MaxLimitも、(例えば、増加するMTBF値を反映するよう)必要に応じて変更することができる。
106において、MTBFがMinLimitとMaxLimitとの間(例えば、MinLimit以上で、MaxLimit以下)である場合、方法100bは108に進む。108において、ノードのチェックポイントは全く取得されない。108から、方法100bは110に進む。
110において、次のチェックポイントを取得するための時間が、ノードのためのソフトウェアエージェントによってノードに対して実行される新規MTBF計算に基づいて調整される(障害の観点−最新の時間においていくつの障害が起こったか−からノードの現在の状態を評価する)。この様に、チェックポイント間隔は、ノードの状態に応じて動的に調整することができる。例えば、最初のチェックポイントの後、仮に5分間が次のチェックポイントのために設定された場合、5分間待機する。次のチェックポイントの後、MTBF評価が、最新の5分間内の障害(もしあれば)に基づいて実行される。計算されたMTBFに基づいて、チェックポイント間隔を、上又は下に調整することができる(例えば、図5におけるように)。110から、方法100bは、図1Aに関して説明する104に進む。
仮に106において、MTBFがMaxLimitよりも大きい場合、方法100bは112に進む。
112において、ノードのチェックポイントは全く取得されず、MaxLimitはMTBFと等しくなるよう更新される。いくつかの実装において、特定の閾値より上のMaxLimitは、MaxLimitが高すぎる旨の警告の生成を開始できる。112から、方法100bは110に進む。
仮に106において、MTBFがMinLimitよりも小さい場合、方法100bは114に進む。114において、ノードのチェックポイントが取得され、MinLimitは現在計算されているMTBF値と等しくなるよう更新される。いくつかの実装において、チェックポイントは、数ある中でも、プロセス状態(レジスタ内容)、メモリ内容、通信状態(例えば、開いたファイル及びメッセージチャンネル)、関連するカーネルコンテキスト、及び/又は待ち行列のジョブを含むことができる。114から、方法100bは116に進む。
116において、移行すべきジョブ(プロセス)がプロアクティブ障害回復のための閾値に基づいているか(例えば、106において判断されたようにMTBF<MinLimit値)どうかに関して、決定が行われる。閾値は、特定ノードにおける障害頻度に応じて、主観的に強要されてもよい。ジョブを移行すべきではないと判断された場合、方法100bは110に進む。ジョブを移行すべきと判断された場合、方法100bは、ジョブ移行を実行するよう118に進む。
ここで図5に目を向けると、図5は、実装によるMTBFに関連するチェックポイント間隔配置を示すグラフである。図示の通り、チェックポイント間の時間(チェックポイント間隔)(例えば、502a、502b、及び502c)は、MTBFが減少するにつれて(例えば、それぞれチェックポイント間隔例に対応する504a、504b、及び504c)短くなる。MTBFが増加するにつれて(例えば、504dにおいて)、チェックポイント間隔が減少する(例えば、502dにおいて)。これは、障害のリスクが増加するにつれて(減少したMTBFのために)、より短い間隔でノードに対するチェックポイントを作成して、オーバーヘッドを最小限にし、ノードが故障した場合に(失う処理を最小限にするよう、実際の障害時間に近い点で回復できる)ビジネス継続性の最適性を最大化することが有利であるであることを確実にするためである。
ここで図1Cに目を向けると、図1Cは、ノード間でジョブを移行するための方法フロー100cを示している。
119aにおいて、回復ノードソフトウェアエージェントは、どのノードが移行するためのジョブのホストを務めるべきかを決定するようネゴシエートする。いくつかの実装において、ネゴシエーションは、負荷分散目的である。他の実装において、他のパラメータ/基準が、ネゴシエーションの目的で用いられてもよい。119aから、方法100cは109bに進む。
119bにおいて、ノードの障害が発生したかどうかに関する判定が行われる。ノードの障害は発生していないと判定された場合、方法100cは119cに進む。ノードの障害が発生したと判定された場合、方法100cは119dに進む。
119cにおいて、ノードのプロセス状態が抽出される。いくつかの実装において、プロセス状態は、数ある中でも、プロセス状態(レジスタ内容)、メモリ内容、通信状態(例えば、開いたファイル及びメッセージチャンネル)、関連するカーネルコンテキスト、及び/又は待ち行列のジョブを含むことができる。119cから、方法100cは119eに進む。
119dにおいて、最後のチェックポイントが、現在のノード状態の代わりに用いられる(ノードが故障し、「ダウン」している/それからプロセス状態を取得することができないため)。いくつかの実装において、チェックポイントは、数ある中でも、プロセス状態(レジスタ内容)、メモリ内容、通信状態(例えば、開いたファイル及びメッセージチャンネル)、関連するカーネルコンテキスト、及び/又は待ち行列のジョブを含むことができる。119dから、方法100cは119eに進む。
119eにおいて、障害のある上位回復ノードソフトウェアエージェントは、信号/通信を新規の回復ノードに転送し続ける(例えば、通信プロトコルレベルでメッセージを検索することによって)。いくつかの実装において、故障したノードが修復された場合、信号/通信を転送する責務は、(修復されたノードが信号/通信を転送するプロセスに引き渡された時点で)修復されたノードによって行われてもよいことに留意されたい。119eから、方法100cは119fに進む。
119fにおいて、プロセス譲渡が、「ダウン」したノードから回復ノードへ行われる。譲渡された状態は、通常、プロセスのアドレス空間、実行ポイント(レジスタ内容)、通信状態(例えば、開いたファイル及びメッセージチャンネル)、及び/又は他のオペレーティングシステムに依存する状態を含んでいる。119fから、方法100cは119gに進む。
119gにおいて、プロセスは、回復ノード上で実行するよう再開される。119gから、方法100cは停止する。図1Bに戻ると、118から特定のダウンノードのために方法118は停止する。通常の実装において、故障ノードは、ジョブ移行がそのために行われた場合に現在の計算実行から隔離され、故障ノードは、たとえ修復されたとしても、同じジョブファミリーに戻り、参加することはできない(例えば、ノードは、仮想ツリー状構造内の1つ以上のノードに対するノード記録情報テーブルから削除され、新しい計算実行の開始まで待機しなければならない)。処理は、ノード障害予測モデルを用いる異なるノードのために図1Aに戻る。他の実装において、故障ノードを修復することが可能である(例えば、修復されたノードは、仮想ツリー状構造ノード記録情報テーブルに再度組み込まれ、ノード障害予測モデルによって処理され、処理、信号/通信を転送することを開始する、等が可能である)。
図1Aに戻ると、104で、いくつかの実装において、ノード障害予測モデルが、数ある中でも、ノードのチェックポイントを実行するか、1つのノードから別のノードへジョブ(プロセス)を移行するかどうか等を決定するために、各ノードに対する現在の機械状態を評価するよう実行される。各ノードに対するMTBFの計算は、障害状況のために評価すべき特定のノードとツリー構造内で同じレベルに存在する少なくとも1つのノード上及び/又は特定のノード自体上に常駐する/実行するソフトウェアエージェントによって計算される。例えば、図3において、ノード304bが存在するレベルのいずれかのノードもノード304bに対するMTBFを判断でき、及び、この判断の適切なノードを通知できる。
104に図示の通り、いくつかの実装において、障害予測モデルに用いられる値は、例えば、「健全性チェック」型/「ハートビート」プログラムによって生成される1つ以上のシステムログ105a(例えば、ネットワーク接続障害/拒否、パケット損失、計算速度低下、低いメモリ状態、ストレージ/ネットワーク問題、等)、チェックする期間に対する調整105b(例えば、計算に参加する各ノード上で実行される関数によって行われる次の健全性チェックを実行するために待機する期間を表す動的に計算される値。関数は、次の期間を決定するよう、チェックする期間105b値を動的に計算した後、呼び出される)、及び、定期的に(例えば、tp期間)収集される障害クラスディクショナリ105cを含んでいる。いくつかの実装において、問題、障害、等の種類は、重み付けされてもよい(例えば、ネットワーク/ストレージがより重要である、等)。
105dにおいて、障害種類頻度は、tp期間毎に障害頻度を計算する場合に影響を測定するよう、障害の各クラスに主観的に割り当てられる重み値により障害毎に分類することによって計算される。例えば、電力供給及びネットワーク接続性は監視することができ、それらの障害種類頻度は、特定の期間tpに計算することができる。他の実装において、障害種類頻度は、何らかの適切なアルゴリズムを用いて計算することができる。105eで、いくつかの実装において、MTBFは、1を、計算した障害種類頻度で除算することによって計算することができる。
図6は、部分的ノード障害が発生した場合の、どのように回復モデルが実装に従って回復に対して用いられるかの、ノードの仮想ツリー状構造例600を示している。仮想ツリー状構造において回復を実現することは、最初に、回復すべき故障ノードの下位の同じレベルのいずれかのノードからの通知によって達成され、そうでなければ、通知は故障ノードの上位に送信される。
実施例において、ノード602が故障した場合、ノード602の直接の子供(下位)604又は、その親ノードより高い計算能力を有する更なる下位606は、問題が生じたこと(例えば、ノード602との接続の損失、ノード602からのデータ受信が停止、ノード502に対するハートビート検出がノード障害を示している、等)を検出する。問題は、ビジネス継続性を最適化するよう、ノード602によって実行されるジョブを扱うために、どの他のノード(単数又は複数)がノード602と置き換えるべきか、である。選択は、親ノード604若しくは下位ノード606又は608のどちらか一方である。この場合、ノード606又は608には、ビジネス継続性を最適化するよう、早い期間で元はノード602上で実行されていたジョブを完了させるために、(それらの十分に高いコンピューティング能力CPにより)ノード602に対するジョブを割り当てることができる。ノード602の下位を用いる決定は、また、下位ノードの負荷分散解析によって判断されるような子ノードの負荷追加に依存してもよい。
ノードの兄弟−下位(故障ノードの直接的な下位のうちの1つも活動していない場合)から、いずれかの、活動していて、利用可能な、軽く負荷がかかった(システム内の負荷分散によって決定される)ノードを割り当てることによるいずれかの故障ノードに対する回復は、世代停止と称される。例えば、ノード610が故障した場合、ノード610の子供が、ノード610の故障を検出するべきである。しかし、この実施例において、ノード610の全ての子供もダウンしている。次いで、ノード510のジョブを完了させるために、どのノード(単数又は複数)がノード510と置き換えるべきか、という問題ができる。ここで、上位ノード612は、(例えば、メッセージパッシングインターフェース(MPI)及び/又は他のプロトコル等の、2つの異なるノード上に存在する2つのジョブ間の通信プロトコルによって)ノード610の障害を通知され、少なくとも故障したノード610のジョブ(及び、場合により、ノード610の下位のジョブ)の処理を引き継ぐよう、その同じレベルにある親族を探し求める。ここで、ノード612は、それとその子供が故障したノード610のジョブの処理を引き受けることができるかどうかを見るために、ノード614と通信する(ノード614は異なるサブネット内にあってもよい−図3を参照)。この実施例において、ノード614がこの障害回復タスクを引き受けたと仮定すると、それは、ビジネス継続性を最適化するよう、(例えば、コンピューティング能力、主題、負荷分散等に基づいて)必要に応じてジョブをそれらの子供等に委任することができるその直接的な子供にジョブを委任することができる。また、この実施例において、ノード614の1つの又は両方の直接的な子ノードも、故障ノード610又はノード614及びその右側に対するその兄弟618(又は612のレベルにある他のノード)に元々関連付けられたジョブに取り組むその助けも確保するよう、異なる親ノード(例えば、ノード616)の子ノードと通信することができる。通常、この場合、回復は、最も多くのボトムアップノード(より高いCP値を有する)から開始して実行されるべきであり、ここで、他の兄弟の下位ノードの最も多くの下位ノードが、葉ノードのみの回復に参加し、それ故、葉ノードはそれらの上位ツリーの回復に参加する。
ここで図7に目を向けると、図7は、実装により、ノードが半故障を経験している場合の、仮想ツリー状構造のノードに対するチェックポインティングデータストレージノードを示している。例えば、ノード610は、チェックポイントデータを格納するための指定された1つ以上のチェックポインティングデータストレージノード702を有している。同様に、ノード704も、ノード610に対するチェックポインティングデータストレージノードとして指定された1つ以上のチェックポインティングデータストレージノード702を有している。いくつかの実装において、多数のノードは、同じチェックポインティングデータストレージノード(単数又は複数)を共有できる。他の実装において、チェックポインティングデータストレージノード702は、1つ以上のチェックポインティングデータストレージノードの故障が多くのチェックポインティングデータの損失の原因とならないように、チェックポインティングデータストレージノードの数を拡張するよう、1つのノード又は少数のノード(例えば、同じサブネット内、兄弟、等)によってのみ用いられる。ノードが故障した場合、そのノードに対する回復を課せられているノードは、初期設定で指定された回復ノード及び故障ノードに対するチェックポインティングデータストレージノードを決定するよう、ノード記録情報テーブルにアクセスできる。
通常の実装において、各プロセスは1つだけの永久チェックポイントを維持している。これは、全体のストレージオーバーヘッドを低減し、未使用/破棄チェックポイントを処分するためのガーベージコレクション活動の必要性を排除する。いくつかの実装において、各ノードのためのチェックポイントデータは、同時のそれらのノードの故障の可能性が低いため、ノードの同じレベル(例えば、兄弟内)にあるノードに保存される。通常の実装において、チェックポイントデータストレージノードは、ローカルジョブのための安全状態を獲得するリスクを最小限にするこの方法で実装される。チェックポイントデータストレージノードは、それらのジョブのためにメモリに常駐する作業セットデータを含む実行モードでの、又は、待ち行列内に入れられるかのどちらか一方の現在関係するジョブに対する情報を有している。
ここで図8に目を向けると、図8は、実装によりアプリケーション計算に参加しているノードを示している。先に説明したように、チェックポイントリクエストは、断定モデル又は所望の信頼性の度合いがチェックポイントを必要とするノードのソフトウェアエージェントによって開始される。ノードが独立したプロセス(例えば、スレッド、等)Xを有する場合、それは、(独立プロセスXに参加する他のノードが全く存在しないように)他のノードに対するリクエストを伝えることなく、ツリー内のそれ自体の対応するチェックポイントストレージノードによるチェックポインティング活動を単に実行する。
しかし、プロセスが(例えば、他のプロセスに従属する)従属プロセスだった場合、チェックポイント開始ノードが、最後のチェックポイント/正常通信以降通信しており、リクエストをそれらの全てに伝えているプロセスの全てを識別する場合に、最小限のチェックポイントアプローチが適用される。リクエストを受信すると、各プロセスは、それ以上プロセスを識別できなくなるまで、順に、それが通信したプロセス全てを識別し、それらにリクエストを伝える等を行う。
図8を参照すると、従属プロセスノード802及び独立プロセスノード804の両方が識別される。例えば、従属プロセスノード例に対して、ノード806は、特定のプロセスに対する最上位ノードである。ノード806のプロセスに従属するプロセスを実行するノードは、対応する矢印によって示されている。従属プロセスノード(例えば、806)に対して、障害は、それらが共に作業しているため、全ての参加プロセスノード(例えば、812、等)に(例えば、親ノード810によって)通信され、他のノードにとって、他の従属プロセスノード(例えば、806)が復旧し、次いで、従属プロセスが、それらが中断された箇所を続けることができるまで、それらのプロセスの状態を保存することが必要である。しかし、ノード808は、独立プロセスを実行しており、何の従属性も有していないため、回復は、独立ノードでそれ自体を単に心配する必要がある。
図9A及び9Bを参照すると、図9A及び9Bは、実装により、それぞれ独立及び従属プロセス900a及び900bに関するチェックポインティングノードリクエストを示している。図9Aは独立プロセスを示している。例えば、独立プロセスN3 902がチェックポイントリクエストを受信した場合、N3のチェックポイントは、他のプロセスに関係なく実行される。図9Bのような従属プロセスN2 902bの場合において、一旦チェックポイントリクエストが受信されると、プロセスN2 902bは、チェックポイントリクエストをそれに直接従属するプロセス、例えば、従属プロセスN3 904bに渡す。従属プロセス904Bは、次いで、チェックポイントリクエストをそれに直接従属するプロセス(例えば、従属プロセスN41 906b及びN46 908b)、及びその他に渡す。チェックポイントは、従属プロセスからチェックポイントを通知/要求するための時間のため、上の「親」従属プロセス(例えば、従属プロセスN3 904b)に対するチェックポイントよりも低いレベルの従属プロセス(例えば、従属プロセスN41 906b及びN46 908b)のために若干遅く発生する可能性があることに留意されたい。いくつかの実装において、各従属プロセスは、要求する従属プロセスに、そのチェックポインティング操作が完了する時を通知できる。
図10に目を向けると、図10は、実装により分散コンピューティング用のプロアクティブ障害回復モデルを提供するために用いられるコンピューティングデバイス例1000を示すブロック図である。いくつかの実装において、EDCS1000はコンピュータ1002及びネットワーク1030を含んでいる。他の実装において、多数のコンピュータ及び/又はネットワークが、上で説明した方法(単数又は複数)を実行するよう共に作業できる。
図示のコンピュータ1002は、コンピュータサーバ等のコンピューティングデバイスを包含するよう意図されているが、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、無線データポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピューティングデバイス、これらのデバイス内部の1つ以上のプロセッサ、又は、コンピューティングデバイスの物理的及び/又は仮想インスタンスの両方を含むその他の適切な処理装置を含むこともできる。コンピュータ1002は、キーパッド、キーボード、タッチスクリーン、又はユーザ情報を受け入れることができる他のデバイス(不図示)等の入力デバイスと、デジタルデータ、視覚及び/又は音声情報、又はユーザインターフェースを含む、コンピュータ1002の動作に関連する情報を伝達する出力デバイス(不図示)とを含むコンピュータを備えていてもよい。
いくつかの実装において、コンピュータ1002は、クライアント及び/又はサーバとして機能できる。通常の実装において、コンピュータ1002は、並列処理ノード及び、また、この開示と一致する(不図示だとしても)ホスト、数ある中でも、ソフトウェアエージェント又は他のアプリケーション、プロセス、方法、等(例えば、アプリケーション1007)のいずれか一方として作動する。図示のコンピュータ1002は、ネットワーク1030と通信可能に連結される。いくつかの実装において、コンピュータ1002の1つ以上のコンポーネントは、並列処理及び/又はクラウドコンピューティングベースの環境内で動作するよう構成されてもよい。コンピュータ1002の実装は、また、ネットワーク1030上のメッセージパッシングインターフェース(MPI)又は他のインターフェースを用いて通信できる。
高いレベルにおいて、コンピュータ1002は、実装に従い分散コンピューティング用のプロアクティブ障害回復モデルを提供することに関連するデータ及び情報を受信、送信、処理、格納、又は管理するよう動作可能な電子コンピューティングデバイスである。いくつかの実装によれば、コンピュータ1002は、また、シミュレーションサーバ、アプリケーションサーバ、電子メールサーバ、webサーバ、キャッシングサーバ、ストリーミングデータサーバ、解析サーバ、及び/又はその他のサーバを含むか、それらと通信可能に連結されてもよい。
コンピュータ1002は、ネットワーク1030上で(例えば、別のコンピュータ1002上で実行する)アプリケーション1007からのリクエストを受信し、適切なソフトウェアアプリケーション1007において前記リクエストを処理することによって受信したリクエストに応答することができる。加えて、リクエストは、また、内部ユーザ(例えば、コマンドコンソールから、又は、他の適切なアクセス方法によって)、外部又は第三者、他の自動化アプリケーション、並びにその他の適切な団体、個人、システム、又はコンピュータからコンピュータ1002に送信されてもよい。
コンピュータ1002のコンポーネントのそれぞれは、システムバス1003を用いて通信できる。いくつかの実装において、コンピュータ1002のいずれか及び/又は全てのコンポーネント、ハードウェア及び/又はソフトウェアの両方は、アプリケーションプログラミングインターフェース(API)1012及び/又はサービス層1013を用いてシステムバス1003上で、互いに、及び/又は、インターフェース1004とインターフェース接続してもよい。API1012は、ルーチン、データ構造、及びオブジェクトクラスに対する仕様を含んでいてもよい。API1012は、コンピュータ言語非依存又は依存のどちらか一方であってもよく、完全なインターフェース、単一の関数、又はAPIのセットでさえも参照してもよい。サービス層1013は、ソフトウェアサービスをコンピュータ1002、及び/又は、コンピュータ1002がその一部であるシステムに提供する。コンピュータ1002の機能性は、このサービス層を用いて全てのサービス消費者のためにアクセス可能であってもよい。サービス層1013によって提供されるもののようなソフトウェアサービスは、規定されたインターフェースを介して再利用可能な、規定されたビジネス機能性を提供する。例えば、インターフェースは、拡張マークアップ言語(XML)形式、又は他の適切な形式において、データを提供するJAVA(登録商標)、C++、又は他の適切な言語で書かれたソフトウェアであってもよい。コンピュータ1002の統合型コンポーネントとして説明される一方で、代替の実装が、コンピュータ1002の他のコンポーネントに関連して、独立型コンポーネントとしてAPI1012及び/又はサービス層1013を説明してもよい。その上、API1012及び/又はサービス層1013のいずれか又は全ての部分は、この開示の適用範囲から逸脱することなく、別のソフトウェアモジュールの子又はサブモジュール、企業用アプリケーション、又はハードウェアモジュールとして実装されてもよい。
コンピュータ1002はインターフェース1004を含んでいる。図10において単一のインターフェース1004として図示しているが、2つ以上のインターフェース1004が、特定の必要性、要望、又はコンピュータ1002の特定の実装に従って用いられてもよい。インターフェース1004は、ネットワーク1030に(図示であろうと不図示であろうと)接続される並列処理環境を含む分散環境内の他のシステムと通信するためにコンピュータ1002によって用いられる。一般に、インターフェース1004は、適切な組み合わせでソフトウェア及び/又はハードウェア内で符号化され、ネットワーク1030と通信するよう可能なロジックを備えている。より詳細には、インターフェース1004は、ネットワーク1030上での通信に関連する1つ以上の通信プロトコルに対応するソフトウェアを備えていてもよい。
コンピュータ1002はプロセッサ1005を含んでいる。図10において単一のプロセッサ1005として図示しているが、2つ以上のプロセッサが、特定の必要性、要望、又はコンピュータ1002の特定の実装に従って用いられてもよい。一般に、プロセッサ1005は、命令を実行し、コンピュータ1002の動作を行うよう、データを操作する。特に、プロセッサ1005は、分散コンピューティング用のプロアクティブ障害回復モデルを提供するために必要とされる機能を実行する。
コンピュータ1002は、コンピュータ1002及び/又はコンピュータがその一部であるシステムの他のコンポーネントのためのデータを保持するメモリ1006も含んでいる。図10において単一のメモリ1006として図示しているが、2つ以上のメモリが、特定の必要性、要望、又はコンピュータ1002の特定の実装に従って用いられてもよい。メモリ1006は、コンピュータ1002の統合型コンポーネントとして図示される一方で、代替の実装において、メモリ1006はコンピュータ1002の外部にあってもよい。いくつかの実装において、メモリ1006は、方法100に関して説明された何らかのデータ(例えば、チェックポイントデータ有効範囲スコア、同一性スコア、深さ比、等)及び/又はこの開示と一致するその他の適切なデータのうちの1つ以上を保持及び/又は参照することができる。
アプリケーション1007は、特に、いくつかの実装に対して、分散コンピューティング用のプロアクティブ障害回復モデルを提供するために必要とされる機能に関して、特定の必要性、要望、若しくは、コンピュータ1002及び/又はコンピュータ1002がその一部であるシステムの特定の実装による機能を提供するアルゴリズムソフトウェアエンジンである。例えば、アプリケーション1007は、ソフトウェアホスト、科学技術処理アプリケーション、チェックポインティングアプリケーション、回復アプリケーション、及び/又はこの開示と一致する(図示であろうと不図示であろうと)その他の種類のアプリケーション(又はその一部)として機能できる。単一のアプリケーション1007として図示しているが、アプリケーション1007は、コンピュータ1002上で多数のアプリケーション1007として実装されてもよい。加えて、コンピュータ1002と一体化するものとして図示されているが、代替の実装において、アプリケーション1007は、コンピュータ1002の外部にあり、それとは別に実行できる。
この開示と一致する機能を実行する分散コンピュータシステムに関連するいくつの数のコンピュータ1002が存在してもよい。更に、用語「クライアント」、「ユーザ」、及び他の適切な用語は、この開示の適用範囲から逸脱することなく、必要に応じて、交換可能に用いられてもよい。その上、この開示は、多くのユーザ/プロセスが1つのコンピュータ1002を用いてもよいこと、又は、1つのユーザ/プロセスが多数のコンピュータ1002を用いてもよいことを想定している。
本明細書中で説明した主題及び機能的動作の実装は、デジタル電子回路において、又は、本明細書中に開示した構造及びそれらの構造的均等物を含む無形で具現化されたコンピュータソフトウェア又はファームウェアにおいて、若しくはコンピュータハードウェアにおいて、又は、それらのうちの1つ以上の組み合わせにおいて実装することができる。本明細書中で説明した主題の実装は、データ処理装置による実行のため、又は、その動作を制御するよう、無形の非一時的なコンピュータストレージ媒体上で符号化された、1つ以上のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つ以上のモジュールとして実装することができる。代替として、又は、加えて、プログラム命令は、人工的に生成される伝搬信号、例えば、データ処理装置による実行のために適切な受信機装置への送信のための情報を符号化するよう生成される、機械生成される電気的、光学的、又は電磁的信号上で符号化されてもよい。コンピュータストレージ媒体は、機械読取可能ストレージデバイス、機械読取可能ストレージ基板、ランダム又はシリアルアクセスメモリデバイス、又はそれらのうちの1つ以上の組み合わせであってもよい。
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、プログラム可能なプロセッサ、コンピュータ、若しくはマルチプロセッサ又はコンピュータを含むデータを処理するための全ての種類の装置、デバイス、及び機械を包含する。装置は、特殊用途論理回路、例えば、中央処理装置(CPU)、コプロセッサ(例えば、グラフィック/視覚処理装置(GPU/VPU))、FPGA(フィールドプログラマブルゲートアレイ)、又はASIC(特定用途向け集積回路)であってもよく、又は、更にそれらを含むこともできる。いくつかの実装において、データ処理装置及び/又は特殊用途論理回路は、ハードウェアベース及び/又はソフトウェアベースであってもよい。装置は、コンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードを任意に含むことができる。本開示は、従来のオペレーティングシステム、例えば、LINUX、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、IOS又はその他の適切な従来のオペレーティングシステムを用いるか、又はそれらを用いないデータ処理装置の利用を想定している。
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、又はコードとも称されるか、それらとして説明されてもよいコンピュータプログラムは、コンパイル又はインタープリタ言語、若しくは宣言型又は手続き型言語を含むどのような形態のプログラミング言語で書かれてもよく、それは、独立型プログラムとして、若しくは、モジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に適した他の単位として含むどのような形態で展開されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、そうである必要はない。プログラムは、他のプログラム又はデータ、例えば、マークアップ言語文書に格納される1つ以上のスクリプトを保持するファイルの一部に、問題とするプログラム専用の単一ファイル内に、若しくは、多数の整合させたファイル、例えば、1つ以上のモジュール、サブプログラム、又はコードの一部を格納するファイル内に、格納することができる。コンピュータプログラムは、1つのコンピュータ、又は、一箇所に位置するか、多数箇所にわたって分散され、通信ネットワークによって相互接続される多数のコンピュータ上で実行されるよう展開することができる。様々な形で説明したプログラムの一部は、様々なオブジェクト、方法、又は他のプロセスを介して様々な特徴及び機能を実装する個々のモジュールとして示されているが、プログラムは、代わりに、必要に応じて、多くのサブモジュール、サードパーティサービス、コンポーネント、ライブラリ等を含んでいてもよい。反対に、様々なコンポーネントの特徴及び機能は、必要に応じて、単一のコンポーネントに結合することができる。
本明細書中に説明するプロセス及び論理フローは、入力データ上で操作し、出力を生成することによって機能を実行するよう、1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なコンピュータによって実行することができる。プロセス及び論理フローは、また、特殊用途論理回路、例えば、CPU、FPGA、又はASICによって実行することができ、装置は、また、それらとして実装することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用又は特殊用途マイクロプロセッサ、両方、又はその他の種類のCPUに基づくことができる。一般に、CPUは、読出し専用メモリ(ROM)又はランダムアクセスメモリ(RAM)若しくは両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実施又は実行するためのCPUと、命令及びデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータは、データを格納するための1つ以上の大容量ストレージデバイス、例えば、磁気、光磁気ディスク、又は光学ディスクも含むか、動作可能に結合され、それからデータを受信するか、それにデータを送信するか、又は両方を行う。しかし、コンピュータはかかるデバイスを有する必要はない。その上、コンピュータは、例えば、ほんの数例を挙げると、携帯電話、携帯情報端末(PDA)、携帯用音声又は動画プレーヤ、ゲーム機、全地球測位システム(GPS)受信機、又は可搬型ストレージデバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブの、別のデバイスに組み込まれてもよい。
コンピュータプログラム命令及びデータを格納することに適したコンピュータ読取り可能媒体(必要に応じて、一時的又は非一時的)は、例として、半導体メモリデバイス、例えば、消去可能なプログラム可能読出し専用メモリ(EPROM)、電気消去可能なプログラム可能読出し専用メモリ(EEPROM)、及びフラッシュメモリデバイス;磁気ディスク、例えば、内部ハードディスク又はリムーバブルディスク;光磁気ディスク;並びに、CD−ROM、DVD+/−R、DVD−RAM、及びDVD−ROMディスクを含む全ての形態の不揮発性メモリ、媒体、及びメモリデバイスを含んでいる。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、バックアップデータ、ジョブ、webページ、webページテンプレート、データベーステーブル、ビジネス及び/又は動的情報を格納するリポジトリ、及び、何らかのパラメータ、変数、アルゴリズム、命令、規則、制約、又はそれらに対する参照を含むその他の適切な情報を含んでいる様々なオブジェクト又はデータを格納してもよい。加えて、メモリは、ログ、ポリシー、セキュリティ又はアクセスデータ、報告ファイル、並びにその他等のその他の適切なデータを含んでいてもよい。プロセッサ及びメモリは、特殊用途論理回路によって補われてもよく、又は、それに組み込まれてもよい。
ユーザとの対話を提供するため、本明細書中に説明する主題の実装は、情報をユーザに表示するための表示デバイス、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、又はプラズマモニタと、ユーザがコンピュータに入力を提供できるキーボードと、ポインティングデバイス、例えば、マウス、トラックボール、又はタッチパッドとを有するコンピュータ上で実装することができる。入力は、また、感圧性を有するタブレットコンピュータ表面等のタッチスクリーン、静電容量又は電気検知を用いるマルチタッチスクリーン、又は他の種類のタッチスクリーンを用いて、コンピュータに提供されてもよい。他の種類のデバイスが、同様にユーザとの対話を備えるよう用いられてもよく;例えば、ユーザに提供されるフィードバックは、いずれかの形態の感覚フィードバック、例えば、視覚フィードバック、音声フィードバック、又は触覚フィードバックであってもよく;そして、ユーザからの入力は、音響、音声、又は触覚入力を含むいずれかの形態で受信されてもよい。加えて、コンピュータは、ユーザによって用いられるデバイスにドキュメントを送信し、それからドキュメントを受信することによって、例えば、webブラウザから受信したリクエストに応答して、ユーザのクライアントデバイス上のwebブラウザにwebページを送信することによって、ユーザと対話できる。
用語「グラフィカルユーザインターフェース」、すなわちGUIは、1つ以上のグラフィカルユーザインターフェース及び特定のグラフィカルユーザインターフェースの表示のそれぞれを説明するために単数形又は複数形で用いられてもよい。従って、GUIは、情報を処理し、ユーザに情報結果を効果的に表すwebブラウザ、タッチスクリーン、又はコマンドラインインターフェース(CLI)を含むが、これらに限定されない、何らかのグラフィカルユーザインターフェースを表してもよい。一般に、GUIは、ビジネススイートユーザによって操作可能な対話フィールド、プルダウンリスト、及びボタン等の、そのいくつか又は全てがwebブラウザに関連する複数のUI要素を含んでいてもよい。これら及び他のUI要素は、webブラウザの機能に関するか、それを表してもよい。
本明細書中に説明する主題の実装は、例えば、データサーバのようなバックエンドコンポーネントを含むか、例えば、アプリケーションサーバのミドルウェアコンポーネントを含むか、ユーザが本明細書中に説明する主題の実装と対話できるグラフィカルユーザインターフェース又はWebブラウザを有する、例えば、クライアントコンピュータのフロントエンドコンポーネントを含むコンピューティングシステム、又は1つ以上のかかるバックエンド、ミドルウェア、又はフロントエンドコンポーネントの何らかの組み合わせにおいて実装することができる。システムのコンポーネントは、有線及び/又は無線デジタルデータ通信、例えば、通信ネットワークの何らかの形態又は媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、大都市エリアネットワーク(MAN)、広域ネットワーク(WAN)、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WIMAX)、例えば、802.11a/b/g/n及び/又は802.20を用いる無線ローカルエリアネットワーク(WLAN)、インターネットの全て又は一部、及び/又はその他の通信システム又は1つ以上の位置におけるシステムを含んでいる。ネットワークは、例えば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、動画、データ、及び/又はネットワークアドレス間の他の適切な情報により通信してもよい。
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般に、互いに遠隔にあり、通常、通信ネットワークを介して相互に作用する。クライアント及びサーバの関係は、それぞれのコンピュータ上で動作し、互いにクライアント−サーバ関係を有するコンピュータプログラムのために生じる。
いくつかの実装において、コンピュータシステムのいずれか又は全てのコンポーネント、ハードウェア及び/又はソフトウェアの両方は、アプリケーションプログラミングインターフェース(API)及び/又はサービス層を用いて、互いに、及び/又は、インターフェースとインターフェース接続してもよい。APIは、ルーチン、データ構造、及びオブジェクトクラスに対する仕様を含んでいてもよい。APIは、コンピュータ言語非依存又は依存のどちらか一方であってもよく、完全なインターフェース、単一の関数、又はAPIのセットでさえも参照してもよい。サービス層はソフトウェアサービスをコンピューティングシステムに提供する。コンピューティングシステムの様々なコンポーネントの機能性は、このサービス層を介して全てのサービス消費者のためにアクセス可能であってもよい。ソフトウェアサービスは、定義されたインターフェースを介して再利用可能な、定義されたビジネス機能性を提供する。例えば、インターフェースは、拡張マークアップ言語(XML)形式、又は他の適切な形式において、データを提供するJAVA(登録商標)、C++、又は他の適切な言語で書かれたソフトウェアであってもよい。API及び/又はサービス層は、コンピューティングシステムの他のコンポーネントに関する統合型及び/又は独立型コンポーネントであってもよい。その上、サービス層のいずれか又は全ての部分は、この開示の適用範囲から逸脱することなく、別のソフトウェアモジュールの子又はサブモジュール、企業用アプリケーション、又はハードウェアモジュールとして実装されてもよい。
この明細書は、多くの具体的な実装詳細を含んでいる一方で、これらは、いずれかの発明の適用範囲に関するか、又は、請求されるであろう適用範囲に関する限定として解釈すべきではないが、どちらかというと、特定の発明の特定の実装に対して特有であってもよい特徴の説明として解釈すべきである。別々の実装の文脈において本明細書中で説明するある特定の特徴も、単一の実装において組み合わせて実装することができる。反対に、単一の実装の文脈において説明される様々な特徴も、別々に多数の実装において、又は、何らかの適切な部分的組み合わせにおいて実装することができる。その上、特徴は、ある特定の組み合わせにおいて機能するように上で説明され、更にはそういうものとして最初に主張されたかもしれないが、主張した組み合わせからの1つ以上の特徴は、いくつかの場合において、その組み合わせから削除されてもよく、主張した組み合わせは、部分的組み合わせ又は部分的組み合わせの変形例に向けられてもよい。
同様に、動作は特定の順序で図面に示されているが、これは、かかる動作が図示した特定の順序又は一連の順序で実行されること、又は、図示したすべての動作が所望の結果を達成するよう実行されることが必要であると理解すべきではない。ある特定の状況において、マルチタスク及び並列処理が有利であってもよい。その上、上で説明した実装における様々なシステムモジュール及びコンポーネントの分離及び/又は統合は、すべての実装においてかかる分離及び/又は統合が必要であると理解すべきではなく、説明したプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品に共に統合されるか、多数のソフトウェア製品にパッケージ化されてもよいことは、言うまでもない。
主題の特定の実装を説明してきた。説明した実装の他の実装、代替、及び置換は、当業者に対して明らかなように、以下の特許請求の範囲の適用範囲内である。例えば、特許請求の範囲において列挙される動作は、異なる順序で実行され、依然として所望の結果を達成することができる。
従って、実装例の上記説明は、この開示を定義し、限定するものではない。他の変更、代用、又は代替も、この開示の精神及び適用範囲から逸脱することなく可能である。
特許請求の範囲
[第1の局面]
複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築するステップと;
前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ハードウェアプロセッサによって、ノード障害予測モデルを実行するステップと;
計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、コンピューティングノードのチェックポイントを実行するかどうかを決定するステップと;
前記コンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行するステップと;
前記異なるコンピューティングノード上で前記プロセスの実行を再開するステップと;を備える、
コンピュータに実装される方法。
[第2の局面]
前記各コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集するステップと;
前記ノード位置パラメータに基づいて、コンピューティングノードをコレクションに分割するステップと;
前記コンピューティング能力パラメータに基づいて、前記各コレクション内のノードをソートするステップと;をさらに備える、
第1の局面の方法。
[第3の局面]
ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定するステップと;
前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内のコンピューティングノードを水平レベルにソートするステップと;
前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したノード記録情報テーブルに記録するステップと;
指定された回復ノードを前記各ノード記録情報テーブルに登録するステップと;をさらに備える、
第2の局面の方法。
[第4の局面]
前記上限及び前記下限が、前記各コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
前記垂直配置が、前記各コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
第3の局面の方法。
[第5の局面]
前記MTBFが、ネットワーク又はデータストレージ障害に少なくとも基づいて計算される、
第1の局面の方法。
[第6の局面]
前記コンピューティングノードのMTBFが前記下限未満である場合にチェックポイントを作成するステップと;
前記MTBFに等しくなるように、前記コンピューティングノードに関連する下限を更新するステップと;をさらに備える、
第1の局面の方法。
[第7の局面]
前記コンピューティングノードの障害が発生したことを判断するステップと;
前記コンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いるステップとをさらに備える;
第6の局面の方法。
[第8の局面]
コンピュータ読取可能命令を格納している非一時的なコンピュータストレージ媒体であって、
コンピュータにより実行可能な前記命令が、
複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築する;
前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行する;
計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、コンピューティングノードのチェックポイントを実行するかどうかを決定する;
前記コンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行する;および、
前記異なるコンピューティングノード上で前記プロセスの実行を再開する;ように構成されている、
非一時的なコンピュータストレージ媒体。
[第9の局面]
前記各コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集する;
前記ノード位置パラメータに基づいて、コンピューティングノードをコレクションに分割する;および、
前記コンピューティング能力パラメータに基づいて、前記各コレクション内のノードをソートする;命令をさらに含む、
第8の局面の媒体。
[第10の局面]
ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定する;
前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内のコンピューティングノードを水平レベルにソートする;
前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したノード記録情報テーブルに記録する;および、
指定された回復ノードを前記各ノード記録情報テーブルに登録する;命令をさらに含む、
第9の局面の媒体。
[第11の局面]
前記上限及び前記下限が、前記各コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
前記垂直配置が、前記各コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
第10の局面の媒体。
[第12の局面]
前記MTBFが、ネットワーク又はデータストレージ障害に少なくとも基づいて計算される、
第8の局面の媒体。
[第13の局面]
前記コンピューティングノードのMTBFが前記下限未満である場合にチェックポイントを作成する;および、
前記MTBFに等しくなるように、前記コンピューティングノードに関連する下限を更新する;命令をさらに含む、
第8の局面の媒体。
[第14の局面]
前記コンピューティングノードの障害が発生したことを判断する;および、
前記コンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いる;命令をさらに含む、
第13の局面の媒体。
[第15の局面]
メモリストレージと相互運用可能な少なくとも1つのハードウェアプロセッサを備え:
複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築する;
前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行する;
計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、コンピューティングノードのチェックポイントを実行するかどうかを決定する;
前記コンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行する;および、
前記異なるコンピューティングノード上で前記プロセスの実行を再開する;ように構成された、
コンピュータシステム。
[第16の局面]
前記各コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集する;
前記ノード位置パラメータに基づいて、コンピューティングノードをコレクションに分割する;および、
前記コンピューティング能力パラメータに基づいて、前記各コレクション内のノードをソートする;ようにさらに構成された、
第15の局面のシステム。
[第17の局面]
ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定する;
前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内のコンピューティングノードを水平レベルにソートする;
前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したノード記録情報テーブルに記録する;および、
指定された回復ノードを前記各ノード記録情報テーブルに登録する;ようにさらに構成された、
第16の局面のシステム。
[第18の局面]
前記上限及び前記下限が、前記各コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
前記垂直配置が、各コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
第17の局面のシステム。
[第19の局面]
前記MTBFが、ネットワーク又はデータストレージ障害に少なくとも基づいて計算される、
第15の局面のシステム。
[第20の局面]
前記コンピューティングノードのMTBFが前記下限未満である場合にチェックポイントを作成する;
前記MTBFに等しくなるように、前記コンピューティングノードに関連する下限を更新する;
前記コンピューティングノードの障害が発生したことを判断する;および、
前記コンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いる;ようにさらに構成された、
第15の局面のシステム。

Claims (23)

  1. 親/子型の関係で通信するようにマッピングされた、複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築するステップであって、前記コンピューティングノードのそれぞれに対して、1つ又は複数の直接の子供が初期設定の回復ノードとして指定され、別のノードがチェックポイントノードとして指定される、前記構築するステップと;
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ハードウェアプロセッサによって、ノード障害予測モデルを実行するステップと;
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行することを決定するステップと;
    前記第1のコンピューティングノードから、前記第1のコンピューティングノードのために指定された初期設定の回復ノード、プロセスを移行するステップと;
    前記第1のコンピューティングノードのために指定された初期設定の回復ノード上で前記プロセスの実行を再開するステップと;を備える、
    コンピュータに実装される方法。
  2. コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集するステップと;
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクション(集合体)に分割するステップと;
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートするステップと;をさらに備える、
    請求項1に記載コンピュータに実装される方法。
  3. 複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築するステップと;
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ハードウェアプロセッサによって、ノード障害予測モデルを実行するステップと;
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行するかどうかを決定するステップと;
    前記第1のコンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行するステップと;
    前記異なるコンピューティングノード上で前記プロセスの実行を再開するステップと;
    コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集するステップと;
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクションに分割するステップと;
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートするステップと;をえる、
    コンピュータに実装される方法。
  4. ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定するステップと;
    前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内の前記コンピューティングノードを水平レベルにソートするステップと;
    前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したそれぞれのノード記録情報テーブルに記録するステップと;
    指定された初期設定の回復ノードを前記ード記録情報テーブルに登録するステップと;をさらに備える、
    請求項2または請求項3に記載コンピュータに実装される方法。
  5. 前記上限及び前記下限が、コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
    前記垂直配置が、コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
    請求項4に記載コンピュータに実装される方法。
  6. 前記MTBFが、ネットワーク又はデータストレージの障害に少なくとも基づいて計算される、
    請求項1または請求項3に記載コンピュータに実装される方法。
  7. 前記コンピューティングノードのMTBFが前記最小閾値未満である場合にチェックポイントを作成するステップと;
    前記MTBFに等しくなるように、前記コンピューティングノードに関連する前記最小閾値を更新するステップと;をさらに備える、
    請求項1または請求項3に記載コンピュータに実装される方法。
  8. 前記第1のコンピューティングノードの障害が発生したことを判断するステップと;
    前記第1のコンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いるステップとをさらに備える
    請求項7に記載コンピュータに実装される方法。
  9. コンピュータ読取可能命令を格納している非一時的なコンピュータ読取可能媒体であって、
    コンピュータにより実行可能な前記命令は:
    親/子型の関係で通信するようにマッピングされた、複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築することであって、前記コンピューティングノードのそれぞれに対して、1つ又は複数の直接の子供が初期設定の回復ノードとして指定され、別のノードがチェックポイントノードとして指定される、前記構築することと
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行することと
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行することを決定することと
    前記第1のコンピューティングノードから、前記第1のコンピューティングノードのために指定された初期設定の回復ノード、プロセスを移行することと
    前記第1のコンピューティングノードのために指定された初期設定の回復ノード上で前記プロセスの実行を再開することとを含む動作をコンピュータに実行させるためのものである
    非一時的なコンピュータ読取可能媒体。
  10. 前記動作は:
    コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集することと
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクション(集合体)に分割することと
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートすることとをさらに含む
    請求項9に記載コンピュータ読取可能媒体。
  11. コンピュータ読取可能命令を格納している非一時的なコンピュータ読取可能媒体であって、
    コンピュータにより実行可能な前記命令は:
    複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築することと
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行することと
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行するかどうかを決定することと
    前記第1のコンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行することと;
    前記異なるコンピューティングノード上で前記プロセスの実行を再開することと
    コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集することと
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクションに分割することと
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートすることとを含む動作をコンピュータに実行させるためのものである
    非一時的なコンピュータ読取可能媒体。
  12. 前記動作は:
    ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定することと
    前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内の前記コンピューティングノードを水平レベルにソートすることと
    前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したそれぞれのノード記録情報テーブルに記録することと
    指定された初期設定の回復ノードを前記ード記録情報テーブルに登録することとをさらに含む
    請求項10または請求項11に記載コンピュータ読取可能媒体。
  13. 前記上限及び前記下限が、コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
    前記垂直配置が、コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
    請求項12に記載コンピュータ読取可能媒体。
  14. 前記MTBFが、ネットワーク又はデータストレージの障害に少なくとも基づいて計算される、
    請求項9または請求項11に記載コンピュータ読取可能媒体。
  15. 前記動作は:
    前記コンピューティングノードのMTBFが前記最小閾値未満である場合にチェックポイントを作成することと;
    前記MTBFに等しくなるように、前記コンピューティングノードに関連する前記最小閾値を更新することと;さらに含む、
    請求項9または請求項11に記載コンピュータ読取可能媒体。
  16. 前記動作は:
    前記第1のコンピューティングノードの障害が発生したことを判断することと;
    前記第1のコンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いることと;さらに含む、
    請求項15に記載コンピュータ読取可能媒体。
  17. メモリストレージと相互運用可能な少なくとも1つのハードウェアプロセッサを備え:
    親/子型の関係で通信するようにマッピングされた、複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築する、なお、前記コンピューティングノードのそれぞれに対して、1つ又は複数の直接の子供が初期設定の回復ノードとして指定され、別のノードがチェックポイントノードとして指定される
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行する;
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行することを決定する;
    前記第1のコンピューティングノードから、前記第1のコンピューティングノードのために指定された前記初期設定の回復ノード、プロセスを移行する;および、
    前記第1のコンピューティングノードのために指定された初期設定の回復ノード上で前記プロセスの実行を再開する;ように構成された、
    コンピュータシステム。
  18. コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集する;
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクション(集合体)に分割する;および、
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートする;ようにさらに構成された、
    請求項17に記載コンピュータシステム。
  19. メモリストレージと相互運用可能な少なくとも1つのハードウェアプロセッサを備え:
    複数のコンピューティングノードの仮想ツリー状コンピューティング構造を構築する;
    前記仮想ツリー状コンピューティング構造の各コンピューティングノードに対して、コンピューティングノードに関連する平均故障間隔(MTBF)を計算するために、ノード障害予測モデルを実行する;
    計算された前記MTBFと、最大閾値及び最小閾値との比較に基づいて、第1のコンピューティングノードのチェックポイントを実行するかどうかを決定する;
    前記第1のコンピューティングノードから、回復ノードとして機能する異なるコンピューティングノードへ、プロセスを移行する
    記異なるコンピューティングノード上で前記プロセスの実行を再開する;
    コンピューティングノードに対し、少なくともコンピューティング能力パラメータ値及びノード位置パラメータ値を収集する;
    前記ノード位置パラメータに基づいて、前記コンピューティングノードをコレクションに分割する;および、
    前記コンピューティング能力パラメータに基づいて、コレクション内の前記コンピューティングノードをソートする;ように成された、
    コンピュータシステム。
  20. ソートした前記コンピューティングノードのレベルを決定するために、上限及び下限を特定する;
    前記コンピューティング能力パラメータ並びに前記上限及び前記下限に基づいて、各コレクション内の前記コンピューティングノードを水平レベルにソートする;
    前記水平レベル配置及び垂直配置を、各コンピューティングノードに関連したそれぞれのノード記録情報テーブルに記録する;および、
    指定された初期設定の回復ノードを前記ード記録情報テーブルに登録する;ようにさらに構成された、
    請求項18または請求項19に記載コンピュータシステム。
  21. 前記上限及び前記下限が、コンピューティングノードに対して収集されたコンピューティング能力及びノード位置パラメータのクロスプロットから決定され、
    前記垂直配置が、各コンピューティングノードに対するノード位置パラメータに少なくとも基づいて決定される、
    請求項20に記載コンピュータシステム。
  22. 前記MTBFが、ネットワーク又はデータストレージ障害に少なくとも基づいて計算される、
    請求項17または請求項19に記載コンピュータシステム。
  23. 前記コンピューティングノードのMTBFが前記最小閾値未満である場合にチェックポイントを作成する;
    前記MTBFに等しくなるように、前記コンピューティングノードに関連する前記最小閾値を更新する;
    前記第1のコンピューティングノードの障害が発生したことを判断する;および、
    前記第1のコンピューティングノードに対して取得された最新のチェックポイントをプロセス状態として用いる;ようにさらに構成された、
    請求項17または請求項19に記載コンピュータシステム。
JP2017505069A 2014-07-29 2015-07-20 分散コンピューティング用のプロアクティブ障害回復モデル Active JP6662847B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/445,369 2014-07-29
US14/445,369 US9348710B2 (en) 2014-07-29 2014-07-29 Proactive failure recovery model for distributed computing using a checkpoint frequency determined by a MTBF threshold
PCT/US2015/041121 WO2016018663A1 (en) 2014-07-29 2015-07-20 Proactive failure recovery model for distributed computing

Publications (3)

Publication Number Publication Date
JP2017527893A JP2017527893A (ja) 2017-09-21
JP2017527893A5 JP2017527893A5 (ja) 2018-08-30
JP6662847B2 true JP6662847B2 (ja) 2020-03-11

Family

ID=53801170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017505069A Active JP6662847B2 (ja) 2014-07-29 2015-07-20 分散コンピューティング用のプロアクティブ障害回復モデル

Country Status (6)

Country Link
US (1) US9348710B2 (ja)
EP (1) EP3175361B1 (ja)
JP (1) JP6662847B2 (ja)
CN (1) CN106796540B (ja)
CA (1) CA2956567A1 (ja)
WO (1) WO2016018663A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160155098A1 (en) * 2014-12-01 2016-06-02 Uptake, LLC Historical Health Metrics
CN105988918B (zh) 2015-02-26 2019-03-08 阿里巴巴集团控股有限公司 预测gpu故障的方法和装置
JP6259414B2 (ja) * 2015-03-24 2018-01-10 ファナック株式会社 不揮発性メモリに格納されたデータ等のメインテナンス機能を備えた数値制御装置
US9727366B2 (en) * 2015-04-23 2017-08-08 International Business Machines Corporation Machine learning for virtual machine migration plan generation
US10496421B1 (en) * 2015-09-29 2019-12-03 EMC IP Holding Company LLC Simulation of asynchronous modifications of shared data objects by a distributed application
US10437880B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US10437778B2 (en) 2016-02-08 2019-10-08 Bank Of America Corporation Archive validation system with data purge triggering
US9823958B2 (en) 2016-02-08 2017-11-21 Bank Of America Corporation System for processing data using different processing channels based on source error probability
US10460296B2 (en) 2016-02-08 2019-10-29 Bank Of America Corporation System for processing data using parameters associated with the data for auto-processing
US10067869B2 (en) 2016-02-12 2018-09-04 Bank Of America Corporation System for distributed data processing with automatic caching at various system levels
US9952942B2 (en) * 2016-02-12 2018-04-24 Bank Of America Corporation System for distributed data processing with auto-recovery
CN105868398B (zh) * 2016-04-20 2019-04-26 国网福建省电力有限公司 一种基于Fat-B树的分布式文件系统低开销数据传输方法
US9985823B1 (en) * 2016-06-17 2018-05-29 Gravic, Inc. Method and system for mitigating correlated failure modes
US10261874B2 (en) * 2016-12-01 2019-04-16 International Business Machines Corporation Enabling a cloud controller to communicate with power systems
CN106685710B (zh) * 2016-12-21 2019-11-05 海南大学 一种基于中间件的服务失败迁移方法
US10747606B1 (en) * 2016-12-21 2020-08-18 EMC IP Holding Company LLC Risk based analysis of adverse event impact on system availability
WO2018236350A1 (en) * 2017-06-20 2018-12-27 Hewlett-Packard Development Company, L.P. MANAGING RETAIL POSITION DEVICES
CN107391301A (zh) * 2017-08-16 2017-11-24 北京奇虎科技有限公司 存储系统的数据管理方法、装置、计算设备及存储介质
KR20200088803A (ko) 2017-11-16 2020-07-23 인텔 코포레이션 분산형 소프트웨어 정의식 산업 시스템
KR102468737B1 (ko) * 2017-12-19 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10938696B2 (en) 2017-12-21 2021-03-02 Apple Inc. Health status monitoring for services provided by computing devices
US10884843B2 (en) 2018-01-12 2021-01-05 International Business Machines Corporation Traffic and geography based cognitive disaster recovery
US20190324832A1 (en) * 2018-04-18 2019-10-24 Alberto Avritzer Metric for the assessment of distributed high-availability architectures using survivability modeling
US10776225B2 (en) 2018-06-29 2020-09-15 Hewlett Packard Enterprise Development Lp Proactive cluster compute node migration at next checkpoint of cluster cluster upon predicted node failure
EP3799653B1 (en) * 2018-06-29 2023-04-12 Microsoft Technology Licensing, LLC Multi-phase cloud service node error prediction
CN108921229A (zh) * 2018-07-17 2018-11-30 成都西加云杉科技有限公司 数据恢复方法及装置
TWI686696B (zh) * 2018-08-14 2020-03-01 財團法人工業技術研究院 計算節點及其失效偵測方法與雲端資料處理系統
US11474915B2 (en) * 2018-08-28 2022-10-18 Hewlett Packard Enterprise Development Lp Cluster recovery manager to remediate failovers
US11586510B2 (en) * 2018-10-19 2023-02-21 International Business Machines Corporation Dynamic checkpointing in a data processing system
US10997204B2 (en) * 2018-12-21 2021-05-04 Elasticsearch B.V. Cross cluster replication
US11209808B2 (en) 2019-05-21 2021-12-28 At&T Intellectual Property I, L.P. Systems and method for management and allocation of network assets
US11641395B2 (en) * 2019-07-31 2023-05-02 Stratus Technologies Ireland Ltd. Fault tolerant systems and methods incorporating a minimum checkpoint interval
CN112632005B (zh) * 2019-10-08 2024-01-23 中国石油化工股份有限公司 基于mpi的地震数据计算方法及系统
US11093358B2 (en) 2019-10-14 2021-08-17 International Business Machines Corporation Methods and systems for proactive management of node failure in distributed computing systems
US11593221B2 (en) * 2020-02-28 2023-02-28 EMC IP Holding Company LLC Methods and systems for determining backup schedules
US11554783B2 (en) * 2020-04-15 2023-01-17 Baidu Usa Llc Systems and methods to enhance early detection of performance induced risks for an autonomous driving vehicle
US20220258334A1 (en) * 2021-02-17 2022-08-18 Bank Of America Corporation System for decentralized edge computing enablement in robotic process automation
JP7355778B2 (ja) * 2021-04-27 2023-10-03 株式会社日立製作所 ストレージシステム、ストレージノード仮想計算機復旧方法、及び復旧プログラム
US20230342258A1 (en) * 2022-04-22 2023-10-26 Dell Products L.P. Method and apparatus for detecting pre-arrival of device or component failure
CN116755941B (zh) * 2023-08-21 2024-01-09 之江实验室 一种节点故障感知的分布式模型训练的方法及装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US6161219A (en) * 1997-07-03 2000-12-12 The University Of Iowa Research Foundation System and method for providing checkpointing with precompile directives and supporting software to produce checkpoints, independent of environment constraints
US6032194A (en) 1997-12-24 2000-02-29 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring computer networks
US6353902B1 (en) 1999-06-08 2002-03-05 Nortel Networks Limited Network fault prediction and proactive maintenance system
US6609212B1 (en) 2000-03-09 2003-08-19 International Business Machines Corporation Apparatus and method for sharing predictive failure information on a computer network
US6820215B2 (en) 2000-12-28 2004-11-16 International Business Machines Corporation System and method for performing automatic rejuvenation at the optimal time based on work load history in a distributed data processing environment
US7028228B1 (en) 2001-03-28 2006-04-11 The Shoregroup, Inc. Method and apparatus for identifying problems in computer networks
US6978398B2 (en) 2001-08-15 2005-12-20 International Business Machines Corporation Method and system for proactively reducing the outage time of a computer system
US7007084B1 (en) 2001-11-07 2006-02-28 At&T Corp. Proactive predictive preventative network management technique
US7269706B2 (en) * 2004-12-09 2007-09-11 International Business Machines Corporation Adaptive incremental checkpointing
JP2006172065A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd チェックポイント採取方法、システム及びプログラム
US7392433B2 (en) * 2005-01-25 2008-06-24 International Business Machines Corporation Method and system for deciding when to checkpoint an application based on risk analysis
JP2006251999A (ja) * 2005-03-09 2006-09-21 Mitsubishi Electric Corp 計算機クラスタシステム
JP2007213670A (ja) * 2006-02-08 2007-08-23 Funai Electric Co Ltd ハードディスク装置
US7721157B2 (en) 2006-03-08 2010-05-18 Omneon Video Networks Multi-node computer system component proactive monitoring and proactive repair
US7571347B2 (en) * 2006-03-20 2009-08-04 Sun Microsystems, Inc. Method and apparatus for providing fault-tolerance in parallel-processing systems
DE102006019896A1 (de) 2006-04-28 2007-10-31 Siemens Ag Verfahren zur Fehlerbaumanalyse
US7730364B2 (en) * 2007-04-05 2010-06-01 International Business Machines Corporation Systems and methods for predictive failure management
US7975175B2 (en) * 2008-07-09 2011-07-05 Oracle America, Inc. Risk indices for enhanced throughput in computing systems
US8127154B2 (en) * 2008-10-02 2012-02-28 International Business Machines Corporation Total cost based checkpoint selection
US8103916B2 (en) * 2008-12-01 2012-01-24 Sap Ag Scheduling of checks in computing systems
US8140914B2 (en) 2009-06-15 2012-03-20 Microsoft Corporation Failure-model-driven repair and backup
US8880931B2 (en) 2010-01-04 2014-11-04 Nec Corporation Method, distributed system and computer program for failure recovery
US8250405B2 (en) 2010-05-27 2012-08-21 International Business Machines Corporation Accelerating recovery in MPI environments
WO2012013509A1 (en) 2010-07-28 2012-02-02 Ecole Polytechnique Federale De Lausanne (Epfl) A method and device for predicting faults in an it system
US9495477B1 (en) * 2011-04-20 2016-11-15 Google Inc. Data storage in a graph processing system
WO2013101142A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Low latency cluster computing
US10467116B2 (en) * 2012-06-08 2019-11-05 Hewlett Packard Enterprise Development Lp Checkpointing using FPGA
CN103197982B (zh) * 2013-03-28 2016-03-09 哈尔滨工程大学 一种任务局部最优检查点间隔搜索方法
US9436552B2 (en) * 2014-06-12 2016-09-06 International Business Machines Corporation Checkpoint triggering in a computer system

Also Published As

Publication number Publication date
JP2017527893A (ja) 2017-09-21
US9348710B2 (en) 2016-05-24
US20160034362A1 (en) 2016-02-04
CA2956567A1 (en) 2016-02-04
EP3175361B1 (en) 2022-07-20
CN106796540A (zh) 2017-05-31
CN106796540B (zh) 2021-01-05
WO2016018663A1 (en) 2016-02-04
EP3175361A1 (en) 2017-06-07

Similar Documents

Publication Publication Date Title
JP6662847B2 (ja) 分散コンピューティング用のプロアクティブ障害回復モデル
US9729401B2 (en) Automatic remediation of poor-performing virtual machines for scalable applications
US10817501B1 (en) Systems and methods for using a reaction-based approach to managing shared state storage associated with a distributed database
US11321197B2 (en) File service auto-remediation in storage systems
US9690829B2 (en) Dynamic load balancing during distributed query processing using query operator motion
US9659057B2 (en) Fault tolerant distributed query processing using query operator motion
US20170017537A1 (en) Apparatus and method of leveraging semi-supervised machine learning principals to perform root cause analysis and derivation for remediation of issues in a computer environment
US10073739B2 (en) Methods, apparatus and system for selective duplication of subtasks
US9229839B2 (en) Implementing rate controls to limit timeout-based faults
Yang et al. Computing at massive scale: Scalability and dependability challenges
Pourmajidi et al. On challenges of cloud monitoring
Mahallat Fault-tolerance techniques in cloud storage: a survey
US20230222002A1 (en) Techniques for modifying cluster computing environments
KR20170041715A (ko) 시스템 장애로부터 클라우드 기반 서비스의 사용성 복구 기법
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US9678838B2 (en) Protecting virtual machines from network failures
CN105308553A (zh) 动态提供存储
Rehman et al. Fault-tolerance in the scope of cloud computing
Yang et al. Automatic and Scalable Data Replication Manager in Distributed Computation and Storage Infrastructure of Cyber-Physical Systems.
US10516756B1 (en) Selection of a distributed network service
US20230342174A1 (en) Intelligent capacity planning for storage in a hyperconverged infrastructure
Rahman et al. Aggressive fault tolerance in cloud computing using smart decision agent
US20220189615A1 (en) Decentralized health monitoring related task generation and management in a hyperconverged infrastructure (hci) environment
WO2018099301A1 (zh) 一种数据分析方法及装置
Bóhorquez et al. Running mpi applications over an opportunistic infrastructure

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200213

R150 Certificate of patent or registration of utility model

Ref document number: 6662847

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