(57)【要約】【課題】計算ノードの機能を複雑にせず、かつ、データの復元時に時間的オーバーヘッドを小さくする。【解決手段】データ管理装置１００は、計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新手段１１０と、被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送るデータ位置管理手段１２０と、を含む。【選択図】      図１
2018147242.tif 000002
【特許請求の範囲】
【請求項１】
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新手段と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送るデータ位置管理手段と、
を含むことを特徴とするデータ管理装置。
【請求項２】
前記チェックポイントデータは、前回のチェックポイントにおける前記アプリケーションプログラムのデータと今回のデータとの差分であることを特徴とする請求項１のデータ管理装置。
【請求項３】
前記データ更新手段は、前記アプリケーションプログラムが、複数の前記計算ノードに分散され並列に実行されている場合、前記複数の前記計算ノード全ての前記チェックポイントデータを前記復元データに上書きし、最新のチェックポイントにおける前記復元データに更新することを特徴とする請求項１、または、２のデータ管理装置。
【請求項４】
前記データ更新手段は、前記アプリケーションプログラムが分散され並列に実行されている前記計算ノード全てから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取ってから、最新のチェックポイントにおける前記復元データに更新することを特徴とする請求項３のデータ管理装置。
【請求項５】
前記データ更新手段は、前記アプリケーションプログラムが分散され並列に実行されている前記計算ノードから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取るごとに、最新のチェックポイントにおける前記復元データに更新することを特徴とする請求項３のデータ管理装置。
【請求項６】
請求項１ないし５のいずれか１項の前記データ管理装置と、計算ノードと、グローバルストレージと、
を含むことを特徴とする情報処理システム。
【請求項７】
前記計算ノードは、チェックポイントごとに、前記チェックポイントデータを作成し、前記グローバルストレージに保存し、前記終了通知を前記データ処理装置に送るローカルチェックポイント管理プログラムを実行することを特徴とする請求項６の情報処理システム。
【請求項８】
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新し、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送ることを特徴とするデータ管理方法。
【請求項９】
前記チェックポイントデータは、前回のチェックポイントにおける前記アプリケーションプログラムのデータと今回のデータとの差分であることを特徴とする請求項８のデータ管理方法。
【請求項１０】
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新する処理と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送る処理と、
をコンピュータに実行させること特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理装置、情報処理システム、データ管理方法、および、プログラムに関する。
【背景技術】
【０００２】
大規模システムで長時間実行されるプログラムに対し、適当な間隔でチェックポイント処理を実行してデータを保存し、障害時に、チェックポイントで保存した時点から実行を再開する技術が存在する。チェックポイントの時間間隔は、構成要素となっているシステムの故障率等を参考にして決定できる。
【０００３】
この時間間隔は、大規模システムになるほど短くなる。このため、チェックポイントの時間間隔が短くなる大規模システムにおいては、チェックポイント処理に要する時間を短くすることが重要になっている。
【０００４】
チェックポイントに関する技術の一例が、特許文献１に記載されている。この技術では、稼働系の仮想計算機を持つ物理計算機がチェックポイントごとに、その仮想計算機のスナップショット差分情報を作成し、待機系の物理計算機に送信する。そして、この技術では、待機系の物理計算機に稼働系の仮想計算機が生成される。
【０００５】
また、チェックポイントに関する技術の別の一例が、非特許文献１に記載されている。この技術では、チェックポイントごとに、前回のチェックポイントで保存したデータの差分がページベースの手法を用いて作成され、チェックポイントデータとして保存される。
【０００６】
そして、この技術では、チェックポイントデータが数回保存されてから、チェックポイントデータが反映された復元データが作成される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−１０２７２４号公報
【非特許文献】
【０００８】
【非特許文献１】C. Wang, F. Mueller, C. Engelmann, and S. L. Scott, 「Hybrid Fu11/Incrementa1 Checkpoint/Restart for MPI Jobs in HPC Environment」 Technica1 Report North Carolina State University TR-2009-14, 2009
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術においては、待機系の物理計算機が、チェックポイントごとに、稼働系の仮想計算機を生成する。したがって、稼働系、および、待機系が計算ノードである構成においては、計算ノードの機能が複雑になるという問題がある。
【００１０】
また、非特許文献１の技術においては、チェックポイントデータが数回保存されてから、チェックポイントデータが反映された復元データが作成される。したがって、データの復元時に、時間的オーバーヘッドが大きいという問題がある。
【００１１】
本発明の目的は、上記問題点を解決するデータ管理装置、情報処理システム、データ管理方法、および、プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明のデータ管理装置は、計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新手段と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送るデータ位置管理手段と、を含む。
【００１３】
本発明のデータ管理方法は、計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新し、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送る。
【００１４】
本発明のプログラムは、計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新する処理と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送る処理と、をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明は、計算ノードの機能が複雑にならず、かつ、データの復元時に時間的オーバーヘッドが大きくないという効果を持つ。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示す動作説明図である。
【図３】本発明の第２の実施の形態の構成を示すブロック図である。
【図４】本発明の第２の実施の形態の動作を示す動作説明図である。
【図５】本発明の第２の実施の形態の動作を示す動作説明図である。
【図６】チェックポイントデータ、復元データの時間的変化を示す説明図である
【図７】本発明の第２の実施の形態の動作を示す動作説明図である。
【発明を実施するための形態】
【００１７】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、第１の実施の形態の構成を示すブロック図である。図１を参照すると、第１の実施の形態のデータ管理装置１００は、データ更新手段１１０、および、データ位置管理手段１２０を含む。
【００１９】
データ管理装置１００は、グローバルストレージ、および、計算ノードに接続される。データ管理装置１００は、ネットワークを介して、グローバルストレージ、および、計算ノードに接続されてもよい。
【００２０】
次に、第１の実施の形態の動作について図面を参照して詳細に説明する。
【００２１】
図２は、第１の実施の形態の動作を示す動作説明図である。図２を参照すると、データ更新手段１１０は、計算ノードによりグローバルストレージに格納されたチェックポイントデータに基づいて復元データをグローバルストレージに作成、または、復元データを更新する（ステップＳ６０１）。
【００２２】
また、データ位置管理手段１２０は、ある計算ノード（被代替）の障害時等に、アプリケーションプログラムの実行を引き継ぐ代替計算ノードからの通知を受け取る（ステップＳ６０２）。そして、データ位置管理手段１２０は、被代替計算ノードの復元データが更新済み（すなわち、更新完了で最新）であれば（ステップＳ６０３／Ｙ）、復元データの位置情報を、通知元の計算ノードに送る（ステップＳ６０４）。ここで、復元データが更新途中である場合、データ更新手段１１０による更新が完了してから、ステップＳ６０４に進む方式が可能である。
【００２３】
被代替計算ノードの復元データが未更新であれば（ステップＳ６０３／Ｎ）、データ位置管理手段１２０は、復元データの位置情報、および、チェックポイントデータの位置情報を、通知元の計算ノードに送る（ステップＳ６０５）。この未更新とは、更新未開始のことである。
【００２４】
ここで、位置情報とは、たとえば、グローバルストレージ上のアドレスのことである。障害時等に、通知を出した計算ノードは、復元データの位置情報、または、チェックポイントの位置情報を受け取ると、復元データ、または、チェックポイントデータをストレージから取り出し、障害の復旧を図ることができる。
【００２５】
次に、第１の実施の形態の効果について説明する。
【００２６】
第１の実施の形態は、計算ノードとは独立したデータ管理装置１００が、チェックポイントデータに基づいて復元データをグローバルストレージに作成、または、復元データを更新する構成である。したがって、第１の実施の形態は、計算ノードの構成が複雑にならないという効果を持つ。
【００２７】
また、第１の実施の形態は、計算ノードとは独立したデータ管理装置１００が、チェックポイントごとに、チェックポイントデータに基づいて復元データを更新する構成である。したがって、第１の実施の形態は、データの復元時に、最新の復元データがすでに保存されている確率が非常に大きいので、時間的オーバーヘッドが少ないという効果を持つ。
【００２８】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００２９】
図３は、第２の実施の形態の構成を示すブロック図である。図３を参照すると、第２の実施の形態の情報処理システム５００は、データ管理装置１００、１以上の計算ノード２１０〜計算ノード２ｎ０（ｎは整数）、および、グローバルストレージ３００が、ネットワーク４００で接続される構成である。
【００３０】
計算ノード２１０〜計算ノード２ｎ０に関しては、同一構成なので、以下、計算ノード２１０について説明する。計算ノード２１０は、プロセッサ２１１、および、ローカルストレージ２１２を含む。プロセッサ２１１上で、オペレーティングシステム２１３、アプリケーションプログラム２１４、および、ローカルチェックポイント管理プログラム２１５が動作する。
【００３１】
ローカルストレージ２１２には、オペレーティングシステム２１３、アプリケーションプログラム２１４、および、ローカルチェックポイント管理プログラム２１５が格納され、プロセッサ２１１に読み出され実行される。また、ローカルストレージ２１２には、アプリケーションプログラム２１４で使用されるデータが格納される。
【００３２】
オペレーティングシステム２１３、アプリケーションプログラム２１４、および、ローカルチェックポイント管理プログラム２１５は、プロセッサ２１１内のハードウェアとして実現される構成が可能である。この場合、たとえば、ローカルチェックポイント管理プログラム２１５は、ハードウェアのローカルチェックポイント管理手段である。
【００３３】
グローバルストレージ３００には、チェックポイントデータ３０１、および、復元データ３０２が格納される。
【００３４】
次に、第２の実施の形態の動作について説明する。
【００３５】
計算ノード２１０のオペレーティングシステム２１３の管理下でアプリケーションプログラム２１４が実行され、その実行中にアプリケーションプログラム２１４に対応するチェックポイントの処理が行われる場合について説明する。
【００３６】
まず、動作の概要について説明する。
【００３７】
アプリケーションプログラム２１４は、実行時に一定時間が経過すると、その実行を中断する。そして、ローカルチェックポイント管理プログラム２１５が、チェックポイントデータ３０１をグローバルストレージ３００に保存する処理を行い、その後、アプリケーションプログラム２１４が実行を再開する。
【００３８】
データ管理装置１００は、保存されたチェックポイントデータ３０１を復元データ３０２に適用して復元データ３０２を更新する。
【００３９】
障害発生に対処するリスタートの処理においては、たとえば、代替の計算ノード２１０のローカルチェックポイント管理プログラム２１５が、データ管理装置１００に復元データ３０２の問い合わせを行う。そして、データ管理装置１００が、復元データ３０２の位置情報を計算ノード２１０に送る。ローカルチェックポイント管理プログラム２１５は、復元データ３０２の位置情報の位置情報を受け取り、グローバルストレージ３００から復元データ３０２を取り出す。アプリケーションプログラム２１４は、その復元データを用いて実行を再開する。
【００４０】
また、データ管理装置１００が、復元データ３０２の位置情報、および、チェックポイントデータ３０１の位置情報の両方を送る場合がある。チェックポイントデータ３０１の位置情報が必要となるのは、以前のチェックポイントでチェックポイントデータ３０１が保存され、それを復元データ３０２に反映させる上書き処理が行われていない場合である。
【００４１】
この場合、ローカルチェックポイント管理プログラム２１５は、チェックポイントデータ３０１の位置情報に基づきチェックポイントデータ３０１を取りだし、復元データ３０２に反映する（上書きする）。そして、アプリケーションプログラム２１４は、その復元データ３０２を用いて実行を再開する。
【００４２】
次に、第２の実施の形態の動作について、さらに詳細に図面を参照して説明する。
【００４３】
まず、チェックポイントデータ３０１の保存の動作について説明する。図４は、第２の実施の形態の計算ノード２１０におけるチェックポイントデータ３０１の保存動作を示す動作説明図である。
【００４４】
図４を参照すると、計算ノード２１０のオペレーティングシステム２１３が、一定時間の経過を認識し、実行されているアプリケーションプログラム２１４に実行の中断を指示する。アプリケーションプログラム２１４は、この指示を受け、実行を中断する（ステップＳ６２１）。
【００４５】
このアプリケーションプログラム２１４が、計算ノード２１０〜計算ノード２ｎ０の複数に分散されて並列に実行されている場合、オペレーティングシステム２１３が、同期処理を行う（ステップＳ６２２）。すなわち、全ての計算ノード２１０〜計算ノード２ｎ０のオペレーティングシステム２１３が連携し、分散され並列に実行されているアプリケーションプログラム２１４を中断させる。計算ノード２１０〜計算ノード２ｎ０相互の通信処理の完了の確認は、同期処理に含まれる。
【００４６】
次に、中断されたアプリケーションプログラム２１４を含む計算ノード２１０〜計算ノード２ｎ０のローカルチェックポイント管理プログラム２１５がそれぞれのオペレーティングシステム２１３により起動される（ステップＳ６２３）。
【００４７】
そして、各ローカルチェックポイント管理プログラム２１５は、アプリケーションプログラム２１４により作成、編集されたデータに基づき、チェックポイントデータ３０１を作成し、グローバルストレージ３００に保存する（ステップＳ６２４）。
【００４８】
保存するデータ量を削減するために、前回のチェックポイントで保存したチェックポイントデータ３０１が含まれるデータ（すなわち、復元データ３０２相当）から変更された差分をチェックポイントデータ３０１とする手法が適用可能である。チェックポイントごとに、前回のチェックポイント時のデータと今回のデータとの差分を取る手法としては、たとえば、ページベースの手法、ハッシュベースの手法等がある。
【００４９】
次に、各ローカルチェックポイント管理プログラム２１５は、データ管理装置１００にチェックポイントデータ３０１の保存が終了したことを示す終了通知を送る（ステップＳ６２５）。各ローカルチェックポイント管理プログラム２１５は、アプリケーションプログラム２１４を含む全ての計算ノード２１０〜計算ノード２ｎ０におけるチェックポイントデータ３０１の保存が完了することを確認する同期処理を行う（ステップＳ６２６）。
【００５０】
この同期処理が完了すると、各ローカルチェックポイント管理プログラム２１５は、同期の完了をそれぞれのオペレーティングシステム２１３に通知する（ステップＳ６２７）。各オペレーティングシステム２１３は、通知を受け取ると、中断していた各アプリケーションプログラム２１４に実行の再開を指示し、各アプリケーションプログラム２１４は、この指示を受け、実行を再開する（ステップＳ６２８）。
【００５１】
次に、保存されたチェックポイントデータ３０１と復元データ３０２とを組み合わせて復元データ３０２を更新する動作について説明する。図５は、第２の実施の形態のデータ管理装置１００の動作を示す動作説明図である。
【００５２】
図４のステップＳ６２５に示されるように、各ローカルチェックポイント管理プログラム２１５は、データ管理装置１００にチェックポイントデータ３０１の保存が終了したことを示す終了通知を送る。
【００５３】
図５を参照すると、データ管理装置１００のデータ更新手段１１０は、アプリケーションプログラム２１４が実行されている計算ノード２１０〜計算ノード２ｎ０全てから終了通知を受け取ったかどうかを確認する（ステップＳ６４１）。
【００５４】
まだ、受け取ってなければ（ステップＳ６４１／Ｎ）、データ更新手段１１０は、確認を繰り返す（ステップＳ６４１）。データ更新手段１１０は、アプリケーションプログラム２１４が実行されている計算ノード２１０〜計算ノード２ｎ０全てから終了通知を受け取ると（ステップＳ６４１／Ｙ）、ステップＳ６４２以降の処理に進む。すなわち、データ更新手段１１０は、終了通知に対応して、順次、復元データ３０２を更新する処理を行う。
【００５５】
データ更新手段１１０は、終了通知を受け取り、かつ、対応する復元データ３０２を更新していない（最新でない）計算ノード２１０〜計算ノード２ｎ０が存在するかどうかを確認する（ステップＳ６４２）。
【００５６】
対応する復元データ３０２を更新していない計算ノード２１０〜計算ノード２ｎ０が存在する場合（ステップＳ６４２／Ｙ）、データ更新手段１１０は、その計算ノード２１０〜計算ノード２ｎ０を選択する（ステップＳ６４３）。次に、データ更新手段１１０は、選択した計算ノード２１０〜計算ノード２ｎ０の復元データ３０２に、対応するチェックポイントデータ３０１を上書きして最新のチェックポイントにおける復元データ３０２の内容に更新する（ステップＳ６４４）。そして、データ更新手段１１０は、ステップＳ６４２の処理に戻る。
【００５７】
対応する復元データ３０２を更新していない計算ノード２１０〜計算ノード２ｎ０が存在しない場合（ステップＳ６４２／Ｎ）、データ更新手段１１０は、処理を終了する。
【００５８】
以上では、アプリケーションプログラム２１４が実行されている計算ノード２１０〜計算ノード２ｎ０全てから終了通知を受け取ったかどうかを確認してから、ステップＳ６４２以降の復元データ３０２の更新が実施された。別の方式として、データ更新手段１１０が、終了通知を受け取るごとに、その計算ノード２１０〜計算ノード２ｎ０に対応する復元データ３０２を更新する方式も可能である。
【００５９】
上記のデータ管理装置１００の処理は、アプリケーションプログラム２１４の実行と並列して実行されることが可能である。復元データ３０２の更新は、保存したチェックポイントデータ３０１を復元データ３０２に上書きする書き込み処理であるため、通常は、複雑な処理を行うアプリケーションプログラム２１４の実行時間の間に十分に終了可能である。
【００６０】
次に、以上で説明したチェックポイントデータ３０１、および、復元データ３０２の時間的変化について説明する。
【００６１】
図６は、チェックポイントデータ３０１、および、復元データ３０２の時間的変化を示す説明図である。図６を参照すると、アプリケーションプログラム２１４の実行が開始され、最初のチェックポイントにおけるチェックポイントデータ３０１がＦ０である。この場合、全てのデータであるＦ０が、チェックポイントデータ３０１としてグローバルストレージ３００に保存される。そして、このチェックポイントデータ３０１（Ｆ０）が、そのまま復元データ３０２（Ｆ０）となる。
【００６２】
次のチェックポイントにおいて、前のチェックポイント時のデータＦ０と現在のデータＦ１との差分Ｄ１がチェックポイントデータ３０１としてグローバルストレージ３００に保存される。データ管理装置１００は、差分Ｄ１を、この時点の復元データ３０２であるＦ０に上書きする処理を行い、復元データ３０２をＦ１と同等にする。
【００６３】
これ以降も同様に、データ管理装置１００は、チェックポイントデータ３０１（Ｄ２、…、Ｄｍ）を使用して復元データ３０２（Ｆ２、…、Ｆｍ）を更新する。このｍは、整数である。以上のようにして、最新のチェックポイント時点の復元データ３０２をグローバルストレージ３００に保持することが可能となる。
【００６４】
次に、障害等により実行を再開するリスタート処理の動作について説明する。障害等が発生して動作不可能な計算ノード２ｉ０（ｉは整数）がある場合、代替の計算ノード２ｊ０（ｊは整数）が割り当てられて、アプリケーションプログラム２１４の実行が再開される。
【００６５】
代替の計算ノード２ｊ０が、計算ノード２１０である場合について説明する。すなわち、代替の計算ノード２１０のアプリケーションプログラム２１４が、グローバルストレージ３００に保持されている復元データ３０２を使って引き継ぎを行う場合について説明する。
【００６６】
まず、計算ノード２１０のローカルチェックポイント管理プログラム２１５が実行を再開するデータを得るため、データ管理装置１００に復元データ３０２の問い合わせを行う。
【００６７】
図７は、上記問い合わせを受け取ったデータ管理装置１００の動作を示す動作説明図である。図７を参照すると、データ管理装置１００のデータ位置管理手段１２０は、計算ノード２１０からの問い合わせを受け取り（ステップＳ６５１）、障害の発生した計算ノード２ｉ０の復元データ３０２の更新状態を確認する（ステップＳ６５２）。
【００６８】
復元データ３０２が、未更新である場合（ステップＳ６５３／Ｙ）、データ位置管理手段１２０は、計算ノード２ｉ０の復元データ３０２の位置情報、および、チェックポイントデータ３０１の位置情報を計算ノード２１０に返却する（ステップＳ６５４）。そして、データ位置管理手段１２０は、処理を終了する。この場合、未更新は、更新途中を含まない。
【００６９】
復元データ３０２が更新途中、または、更新済みである場合（ステップＳ６５３／Ｎ）、データ位置管理手段１２０は、更新途中であるかどうかをデータ更新手段１１０に確認する（ステップＳ６５５）。更新途中である場合は（ステップＳ６５５／Ｙ）、データ位置管理手段１２０は、確認を繰り返す（ステップＳ６５５）。すなわち、データ位置管理手段１２０は、データ更新手段１１０による更新が完了するまで待つ。
【００７０】
更新途中でない場合（ステップＳ６５５／Ｎ）、データ位置管理手段１２０は、障害の発生した計算ノード２ｉ０の復元データ３０２の位置情報を計算ノード２１０に返却して（ステップＳ６５６）、処理を終了する。
【００７１】
以上説明したように、障害発生のタイミングにより、復元データ３０２の状態は、３種の状態のいずれかである。第１種の状態は、保存された最新のチェックポイントデータ３０１による更新が済んだ復元データ３０２となっている状態である。
【００７２】
第２種の状態は、保存された最新のチェックポイントデータ３０１による更新処理が開始されているが、まだ、完了していない途中の状態である。第３種の状態は、保存された最新のチェックポイントデータ３０１による更新処理がまだ開始されていない状態である。
【００７３】
第１種の状態、または、第２種の状態の場合、計算ノード２１０は、返却された復元データ３０２の位置情報を使用して、復元データ３０２をグローバルストレージ３００から取り出し、障害の発生した計算ノード２ｉ０の処理を引き継ぐことができる。
【００７４】
たとえば、計算ノード２１０のローカルチェックポイント管理プログラム２１５が、復元データ３０２をローカルストレージ２１２に取り出し、アプリケーションプログラム２１４が、その復元データ３０２を使用して、引き継ぎの実行を開始する。
【００７５】
第３種の状態の場合、計算ノード２１０において、復元データ３０２にチェックポイントデータ３０１の上書きが必要になる。チェックポイントデータ３０１が前回との差分であれば（ハッシュベースの手法等）、オーバーヘッドは少ない。
【００７６】
この場合、ローカルチェックポイント管理プログラム２１５が、ローカルストレージ２１２に取り出した復元データ３０２にチェックポイントデータ３０１の上書きを行う。そして、アプリケーションプログラム２１４が、上書きされた復元データ３０２を使用して、引き継ぎの実行を開始する。
【００７７】
次に、第２の実施の形態の効果について説明する。
【００７８】
第２の実施の形態は、第１の実施の形態の一例なので、第１の実施の形態と同一の効果を持つ。また、第２の実施の形態は、差分をチェックポイントデータ３０１として使用しているので、復元データ３０２の更新の時間が短いという効果を持つ。
【００７９】
上記の実施の形態の一部、または、全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００８０】
［付記１］
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新手段と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送るデータ位置管理手段と、
を含むことを特徴とするデータ管理装置。
【００８１】
［付記２］
前記チェックポイントデータは、前回のチェックポイントにおける前記アプリケーションプログラムのデータと今回のデータとの差分であることを特徴とする付記１のデータ管理装置。
【００８２】
［付記３］
前記データ更新手段は、前記アプリケーションプログラムが、複数の前記計算ノードに分散され並列に実行されている場合、前記複数の前記計算ノード全ての前記チェックポイントデータを前記復元データに上書きし、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記１、または、２のデータ管理装置。
【００８３】
［付記４］
前記データ更新手段は、前記アプリケーションプログラムが分散され並列に実行されている前記計算ノード全てから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取ってから、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記３のデータ管理装置。
【００８４】
［付記５］
前記データ更新手段は、前記アプリケーションプログラムが分散され並列に実行されている前記計算ノードから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取るごとに、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記３のデータ管理装置。
【００８５】
［付記６］  付記１ないし５のいずれか１つの前記データ管理装置と、計算ノードと、グローバルストレージと、
を含むことを特徴とする情報処理システム。
【００８６】
［付記７］
前記計算ノードは、チェックポイントごとに、前記チェックポイントデータを作成し、前記グローバルストレージに保存し、前記終了通知を前記データ処理装置に送るローカルチェックポイント管理プログラムを実行することを特徴とする付記６の情報処理システム。
【００８７】
［付記８］
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新し、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送ることを特徴とするデータ管理方法。
【００８８】
［付記９］
前記チェックポイントデータは、前回のチェックポイントにおける前記アプリケーションプログラムのデータと今回のデータとの差分であることを特徴とする付記８のデータ管理方法。
【００８９】
［付記１０］
前記アプリケーションプログラムが、複数の前記計算ノードに分散され並列に実行されている場合、前記複数の前記計算ノード全ての前記チェックポイントデータを前記復元データに上書きし、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記８、または、９のデータ管理方法。
【００９０】
［付記１１］
前記アプリケーションプログラムが分散され並列に実行されている前記計算ノード全てから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取ってから、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記１０のデータ管理方法。
【００９１】
［付記１２］
前記アプリケーションプログラムが分散され並列に実行されている前記計算ノードから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取るごとに、最新のチェックポイントにおける前記復元データに更新することを特徴とする付記１０のデータ管理方法。
【００９２】
［付記１３］
計算ノードによりグローバルストレージに格納されたアプリケーションプログラムのチェックポイントデータに基づいて、前記グローバルストレージに復元データを作成、または、前記グローバルストレージの前記復元データを更新するデータ更新する処理と、
被代替の前記計算ノードの前記復元データが更新完了であれば前記復元データの位置情報を、更新途中であれば更新が完了してから前記復元データの位置情報を、更新未開始であれば前記復元データの位置情報および対応する前記チェックポイントデータの位置情報を、前記アプリケーションプログラムの実行を引き継ぐ代替の前記計算ノードに送る処理と、
をコンピュータに実行させること特徴とするプログラム。
【００９３】
［付記１４］
前記チェックポイントデータは、前回のチェックポイントにおける前記アプリケーションプログラムのデータと今回のデータとの差分であることを特徴とする付記１３のプログラム。
【００９４】
［付記１５］
前記アプリケーションプログラムが、複数の前記計算ノードに分散され並列に実行されている場合、前記複数の前記計算ノード全ての前記チェックポイントデータを前記復元データに上書きし、最新のチェックポイントにおける前記復元データに更新する処理をコンピュータに実行させることを特徴とする付記１３、または、１４のプログラム。
【００９５】
［付記１６］
前記アプリケーションプログラムが分散され並列に実行されている前記計算ノード全てから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取ってから、最新のチェックポイントにおける前記復元データに更新する処理をコンピュータに実行させることを特徴とする付記１５のプログラム。
【００９６】
［付記１７］
前記アプリケーションプログラムが分散され並列に実行されている前記計算ノードから前記チェックポイントデータの保存が終了したことを示す終了通知を受け取るごとに、最新のチェックポイントにおける前記復元データに更新する処理をコンピュータに実行させることを特徴とする付記１５のプログラム。
【符号の説明】
【００９７】
１００    データ管理装置
１１０    データ更新手段
１２０    データ位置管理手段
２１０    計算ノード
２ｉ０    計算ノード
２ｊ０    計算ノード
２ｎ０    計算ノード
２１１    プロセッサ
２１２    ローカルストレージ
２１３    オペレーティングシステム
２１４    アプリケーションプログラム
２１５    ローカルチェックポイント管理プログラム
３００    グローバルストレージ
４００    ネットワーク
５００    情報処理システム
【図１】
2018147242.tif 000003
【図２】
2018147242.tif 000004
【図３】
2018147242.tif 000005
【図４】
2018147242.tif 000006
【図５】
2018147242.tif 000007
【図６】
2018147242.tif 000008
【図７】
2018147242.tif 000009