JP5419166B2 - チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム - Google Patents

チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム Download PDF

Info

Publication number
JP5419166B2
JP5419166B2 JP2010164607A JP2010164607A JP5419166B2 JP 5419166 B2 JP5419166 B2 JP 5419166B2 JP 2010164607 A JP2010164607 A JP 2010164607A JP 2010164607 A JP2010164607 A JP 2010164607A JP 5419166 B2 JP5419166 B2 JP 5419166B2
Authority
JP
Japan
Prior art keywords
checkpoint
service
thread
list
stop
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
JP2010164607A
Other languages
English (en)
Other versions
JP2012027634A (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.)
Nippon Telegraph and Telephone Corp
Osaka University NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Osaka University NUC
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 Nippon Telegraph and Telephone Corp, Osaka University NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010164607A priority Critical patent/JP5419166B2/ja
Publication of JP2012027634A publication Critical patent/JP2012027634A/ja
Application granted granted Critical
Publication of JP5419166B2 publication Critical patent/JP5419166B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は分散システムを構成する分散処理装置におけるチェックポイントを作成する技術に関する。
分散処理装置のクラッシュ故障に対応する従来技術として、チェックポイント法とメッセージログ法とが知られている。
チェックポイント法では、分散システムを構成する計算機のある時点における状態(以下「チェックポイント」という)を定期的にハードディスク等の安定記憶手段に保存する。そして、クラッシュ故障発生時にいくつかの計算機が過去の記録状態にロールバックして矛盾のない実行を回復する。
分散システムを構成する各計算機においてチェックポイントを作成する場合には、最新の状態へロールバックしたときに計算機間で矛盾が生じないようにするために、他の計算機とも協調してチェックポイントを作成する。このような協調チェックポイント法が、長期間のサービス提供を行う分散システムでは効果的である。なお、エージェント数が変化しないシステムのチェックポイントを作成する方法として非特許文献1が、エージェント数が変化するシステムのチェックポイントを作成する方法として非特許文献2が知られている。
メッセージログ法は、各計算機がサービス実行中に送受信したメッセージを各計算機のメモリ(揮発性記憶媒体)または安定記憶手段に保存し、クラッシュ故障発生時、クラッシュした計算機は、初期状態にする。クラッシュした計算機は、正常なプロセスから、そのメモリや安定記憶手段に記憶されている通信記録をもとに、他の計算機から過去にどのようなメッセージを送受信したかの情報を送信してもらい、その情報をもとに、アプリケーションを再実行して全体として矛盾の無い状態に復帰する。但し、メッセージログ法単独では、メッセージ記録が累積する問題があるため、通常は前述した協調チェックポイント法と組み合わせて利用する。なお、メッセージログ法では故障した計算機だけをロールバックすればよいが、同時に複数の計算機が故障する場合には、その回復が難しいという問題がある。
K.M. Chandy and L. Lamport, "Distributed snapshots: Determining global states of distributed systems", ACM Transactions on Computer Systems, 1985, Volume 3, Issue 1, pp.63 - 75 守屋宣, 櫟粛之著、"インターネットエージェントのための動的スナップショットアルゴリズムと部分ロールバックアルゴリズム"、電子情報通信学会論文誌、2003,Vol. J86-D-I, No.5, pp.301-317
従来技術は1台の分散処理装置上で1つのアプリケーションやサービスエージェント等のプログラムが動作することを想定しているため、1台の分散処理装置上で1以上のサービススレッドが動作する際に、効率よくマーカ等を送受信する方法がないという問題がある。
上記の課題を解決するために、本発明に係るチェックポイント作成技術では、分散処理装置上で、1つ以上のサービススレッドと、1つ以上のフラグスレッドと、チェックポイントスレッドとが動作し、停止フラグは分散処理装置上で動作するサービススレッドの停止を意味するか否かを示す情報とし、実行リストは分散処理装置上で動作するサービススレッドのリストとし、停止リストは分散処理装置上で動作を停止しているサービススレッドのリストとしたとき、サービススレッドが、分散システム上で動作するアプリケーションまたは他のサービススレッドの要求に応じて処理を行い、各サービススレッドの実行履歴をリクエストログとして記憶し、チェックポイントスレッドが、分散処理装置に最初にマーカが届いたときに、または、分散処理装置がスナップショットを起動したときに、停止フラグをこのチェックポイント作成装置上で動作するサービススレッドの停止を意味するものに更新し、サービススレッドが要求に応じて処理を行う前に、または、フラグスレッドが定期的に、停止フラグを参照し、停止フラグがチェックポイント作成装置上で動作するサービススレッドの停止を意味するものであった場合に、サービススレッドの処理を停止し、実行リストと停止リストに記憶されるサービススレッドが一致すると、故障によって失われない記憶領域にリクエストログを記憶する。
本発明は、1台の分散処理装置上で動作する1以上のサービススレッドを一括して管理するため、効率よくマーカを送受信することができ、分散システムにおけるネットワークの通信量を減らし、送受信に係る処理(計算量)を減らすことができるという効果を奏する。
分散システム10の構成例を示す図。 チェックポイント作成装置100−nのソフトウェア構成例を示す図。 チェックポイント作成装置100−nの機能ブロック図。 リクエストログ記憶手段103aに記憶されるリクエストログのデータ例を示す図。 停止フラグ記憶手段103bに記憶される停止フラグのデータ例を示す図。 マーカリスト記憶手段103cに記憶されるマーカリストのデータ例を示す図。 実行リスト記憶手段103dに記憶される実行リストのデータ例を示す図。 停止リスト記憶手段103eに記憶される停止リストのデータ例を示す図。 サービススレッドの処理フローを示す図。 チェックポイントスレッドの処理フローを示す図。 フラグスレッドの処理フロー例を示す図。 分散システム10の処理フロー例を示す図。 分散システム10の処理フロー例を示す図。 分散処理装置100−nのハードウェア構成を例示したブロック図。
以下、本発明の実施の形態について、詳細に説明する。
<分散システム10>
実施例1に係る分散システム10を説明する。図1に示すように分散システム10は、ネットワークでつながれたN個の分散処理装置100−n(n=1,2,…,Nである。図1ではN=3)からなる。エンドユーザは利用者端末90を用い、インターネットを介して、分散処理システム10にアクセスしサービスを要求する。分散システム10において、N個の分散処理装置100−nがネットワークを通じて互いに情報を送受信して処理を行い、エンドユーザに対しサービスを提供する。
<分散処理装置100−n>
図2及び図3を用いて分散処理装置100−nを説明する。分散システム10において一部の分散処理装置のクラッシュ故障に備えて、各分散処理装置100−nは、他の分散処理装置100−p(n≠p)と矛盾しない内容でハードディスクなどの安定記憶手段に、その状態を記録する。つまり、各分散処理装置100−nは、チェックポイントを作成しながら処理を進めていく。そのため、分散処理装置をチェックポイント作成装置とも呼ぶ。
図2に示すように、分散システム10を構成する一つの分散処理装置100−n上にwebサービスミドルウェア21が実装される。さらに、webサービスミドルウェア21上でサービスを処理するM個のサービススレッド22−m(m=1,2,…,M)が動作している。1つの分散処理装置100−nにはQ個のデータベース23−q(q=1,2,…,Q)があり、各サービススレッドはこれらのデータベースを共有することができる。サービススレッドの詳細については後述する。
図3に示すように、分散処理装置100−nは、入出力手段101、記憶手段103、制御手段105、M個のサービススレッド手段110−m(m=1,2,…,M)、チェックポイントスレッド130、R個のフラグスレッド手段140−r(r=1,2,…,R、但し、フラグスレッドは、実行中の各サービススレッドに高々1個付随するため、R≦Mである)を備える。
なお、webサービスミドルウェアとは、オペレーションシステム(以下「OS」という)とwebサービスソフトの中間的な処理・動作を行うソフトウェアのことであり、webサービスソフトに共通して使用する機会の多い処理や機能を提供する。
本実施例では、webサービスの構築でよく利用されるwebサービスミドルウェアに直接協調チェックポイント法を導入する手段を与える。特に、各分散処理装置で再実行可能な無矛盾チェックポイントの作成法を与える。
このような構成とすることで、アプリケーション開発と耐故障方式の実装作業を分離することができる。そのため、アプリケーション開発者は耐故障方式を意識することなく、その機能を利用することができ、アプリケーション開発に専念できる。その結果、アプリケーション開発が促進される。
また、ユーザもwebサービスに高度な耐故障機能が保証されているため、安心してサービスを利用することができ、webサービスの利用も促進される。
<入出力手段101>
入出力手段101は、例えば、データが入力される入力デバイス(例えばキーボード、マウス等)の出力信号や外部記憶装置より読み出される信号やネットワークから受信した信号等を入力するための入力インタフェースと、例えば、データが出力される出力デバイス(例えばディスプレイ、プリンタ等)の出力信号や外部記憶装置に書き出す信号やネットワークへ送信する信号等を出力するための出力インタフェースからなる。
<記憶手段103及び制御手段105>
記憶手段103は、入力デジタル信号や、処理途中の信号や各種パラメータ等が記憶する。制御手段105は、記憶手段103に対し、各処理過程で所定の信号やパラメータの読み書きを行う。但し、制御手段105は、必ずしも記憶手段103に対し各データの読み書きを行わなければならないわけではなく、各手段間で直接データを受け渡すように制御してもよい。
例えば、記憶手段103は、リクエストログ記憶手段103aと、停止フラグ記憶手段103bと、マーカリスト記憶手段103cと、実行リスト記憶手段103dと、停止リスト記憶手段103e及び安定記憶手段103fを含む。
なお、リクエストログは、後述するサービススレッドの状態を表現するために用いられるデータである。例えば、リクエストログは、サービス内容、実行カウンタ、実行履歴の組合せからなる(図4参照)。サービス内容とは、そのサービススレッドが呼び出されたときのサービス名と引数の対である。このとき、呼び出し元のアプリケーション名やサービススレッド名や出された順番や時間等を引数としてもよく、このようなデータとすることで、サービススレッド手段を一意に特定することができる。実行カウンタとは、現在そのサービススレッドがその生成から数えて何番目のサービススレッド動作を実行しているかを表す数であり、ロールバックにより復旧するときには、記憶した実行カウンタが示す実行の部分から処理を再開する。実行履歴とは、例えば、過去に行ったサービススレッドの動作(以下「サービススレッド動作」という)のうち、同期型リクエスト送信及びデータベースの読み出し動作の履歴データである。
停止フラグとはこのチェックポイント作成装置100−n上で動作するM個のサービススレッド手段110−1,…,110−Mの停止を意味するか否かを示す情報であり(例えば、本実施例では停止フラグが「on」であればサービススレッド手段の停止を意味し、「off」であれば停止を意味しないものとする、図5参照)、マーカリストとはチェックポイントスレッド130がマーカを送信するチェックポイント作成装置のリストであり(サービススレッド毎ではなくチェックポイント作成装置毎に登録される、図6参照)、実行リストとはこのチェックポイント作成装置100−n上で動作するサービススレッド手段110−mのリストであり(図7参照)、停止リストとはこのチェックポイント作成装置100−n上で動作を停止しているサービススレッド手段110−mのリストである(図8参照)。なお、停止フラグ、マーカリスト、実行リスト、停止リストは各チェックポイント作成装置に1つ設けられ、リクエストログはサービススレッド毎に設けられる。
安定記憶手段103fは故障によって失われない記憶領域(例えば、不揮発性メモリであるハードディスクやROM等)である。
<サービススレッド手段110−m>
サービススレッドは、分散システム上で動作するアプリケーションまたは他のサービススレッド手段の要求に応じて処理を行うサービススレッド手段110−mとしてコンピュータを機能させるためのプログラムである。サービススレッド手段を単にサービススレッドとも呼ぶ。
外部から観測できるサービススレッド動作は、他の分散処理装置のwebサービスミドルウェアへのリクエストの送信、自分の動作している分散処理装置のデータベースへのアクセスである。リクエストの送信は、リクエストの応答を必要としない非同期型と、結果の応答を待つ同期型にわかれる。またデータベースへのアクセスは「書き込み」と「読み出し」がある。その他に、サービススレッドは、内部計算等の処理を行うである。
図9を用いてサービススレッドの処理フローを説明する。サービススレッドは生成されると、チェックポイントスレッドに実行リストの登録申請を行い、サービス内容からなるリクエストログ(図4参照)を生成する(s111)。次に、サービススレッドは、停止フラグ記憶手段103bを参照し(s112)、停止フラグがonの場合には、チェックポイントスレッド130に停止リストへ登録申請を行い(s113)、定期的に停止フラグを参照する(s114)。s112、s114において、停止フラグがoffの場合には、以下の処理を行う。なお、停止フラグは後述するチェックポイントスレッドによりonまたはoffに更新される。サービススレッド動作の種類が同期型リクエスト送信動作またはデータベース読み出し動作の場合には(s115)、サービススレッドは、後述するフラグスレッドを生成する(s116)。
サービススレッドは、リクエストログ記憶手段103aに記憶されているリクエストログの実行カウンタを1つ増やし、実行履歴にサービス処理の内容を登録し(s117)、サービスを提供し(s118)、処理結果に応じてリクエストログの実行履歴を更新する(s119)。
サービススレッド動作の種類が同期型リクエスト送信動作またはデータベース読み出し動作の場合には(s120)、サービススレッドは、フラグスレッドを終了する(s121)。このサービススレッド動作でサービス要求が終了の場合には(s122)、そのサービス要求に対応するリクエストログをリクエストログ記憶手段103aから消去する。さらに、サービススレッドは、チェックポイントスレッドに実行リストからの削除申請を行う(s123)。サービス要求が終了ではない場合には(s122)、s112〜s121をサービスの終了まで繰り返す。
(リクエストログの更新)
リクエストログの更新はサービススレッドによって以下のように行われる。他の分散処理装置からリクエストが届いたとき、そのリクエストを処理するため、新たにサービススレッドが生成される。このとき、そのサービススレッドに対応したリクエストログを生成する。例えば、サービス内容(サービス名とその呼び出し元や呼び出された順番等である引数)と実行カウンタ(例えば生成時は実行カウンタを0に設定する)を登録する。その後、そのサービススレッドがサービススレッド動作を行う毎に実行カウンタを1ずつ増加させる。また、同期型リクエスト送信、またはデータベース読み出しを行う場合は、リクエスト送信動作、データベース読み出し動作に加えて、各々応答結果、読み出し結果も実行履歴に登録する。登録は実行順に並べられる。なお、リクエスト送信動作の場合には、実行履歴として、サービス名(図4中、service1、service2と示す)、引数(図4中、v2、v3と示す)、対象チェックポイント装置名(図4中、分散処理装置100−2、100−1と示す)及び応答結果を登録する。また、データベース読み出し動作の場合には、実行履歴として、SQL文(図4中、read1,read2,read3と示す)と対象データベース名(図4中、d1,d2,d3と示す)及び読み出し結果(図4中、w1、w2、w3と示す)を登録する。なお、応答結果、読み出し結果得られるまで、実行履歴の応答結果、読み出し結果部分は未定として登録しておく。
<チェックポイントスレッド手段130>
チェックポイントスレッドは分散処理装置間で送受信するマーカメッセージの送受信を行い、停止フラグ及びマーカリストを更新するようにコンピュータを機能させるチェックポイントスレッド手段130としてコンピュータを機能させるためのプログラムである。なお、チェックポイントスレッドは各分散処理装置に1つ存在する。チェックポイントスレッド手段を単にチェックポイントスレッドとも呼ぶ。
また、チェックポイントスレッドはサービススレッドmが送信したリクエストの送信先、サービススレッドmの生成元をマーカリストに登録し、更新する。なお、webサービスの通信においては、メッセージの通信は、サービススレッドを生成するためのリクエスト送信か、リクエストの返り値を返す送信に限られるので、上記2つを登録すればよい。マーカリストの作成方法、更新法やマーカの送信については、説明を省略する。詳しくは非特許文献2に詳述されている。但し、非特許文献2ではマーカの送受信をエージェント単位で行っているが、本発明は分散処理装置単位でマーカの送受信を行う点が異なる。
図10を用いてチェックポイントスレッドの処理フローを説明する。チェックポイントスレッドは、サービススレッドから実行リストへの登録申請または削除申請がある場合には(s130)、実行リストへの登録または実行リストから削除を行う(s131)。チェックポイントスレッドは、他の分散処理装置から最初にマーカが届くか、または、この分散処理装置がスナップショットを起動した場合には(s132)、停止フラグをonに更新する(s133)。その後、サービススレッドまたはフラグスレッドから停止リストの登録申請がある場合には(s134)、対象のサービススレッドを停止リストに登録し(s135)、実行状態を登録している全てのサービススレッドから停止報告があったか判断し(つまり、実行リストに登録されているサービススレッドと停止リストに登録されているサービススレッドが一致するか否か判断する、s136)、全てのサービススレッドから停止報告があった場合(一致する場合)には、停止リストをリセットし、停止フラグをoffに更新する(s137)。そしてマーカをマーカリストに登録されている分散処理装置に送信する。実行リストに登録されているサービススレッドと停止リストに登録されているサービススレッドが一致しない場合には(s136)、一致するまでs134及びs135を繰り返す。
<フラグスレッド手段140−r>
フラグスレッドは、停止フラグを参照するフラグスレッド手段140−rとしてコンピュータを機能させるためのプログラムである。例えば、サービススレッドのサービススレッド動作が同期型リクエスト送信動作またはデータベース読み出し動作の場合にフラグスレッドを生成する。フラグスレッド手段を単にフラグスレッドとも呼ぶ。
図11を用いてフラグスレッドの処理フローを説明する。生成されたフラグスレッドは定期的に(例えば所定時間経過する毎に(s141))停止フラグ記憶手段103bの停止フラグを参照し(s143)、停止フラグがonの場合には(s145)、チェックポイントスレッドに、対応するサービススレッドの停止リストへの登録を申請する(s147)。
協調チェックポイント法では、分散処理装置間でマーカを送受信して、チェックポイントの開始、終了、保存すべきメッセージの決定を行う。本実施例では、このマーカに基づいて、チェックポイントが作成される。
なお、リクエストログの安定記憶手段103fへの記録時には、同期リクエスト送信や、データベース読み出しの応答結果が得られていない場合がある。データベース読み出しに関しては、応答があった時点で、安定記憶手段103fに追加する。同期型リクエスト送信の戻り値に関しては、送信先の分散処理装置のマーカが到達する前に戻り値が返った場合にはその値を安定記憶に追加する。戻り値よりもそのマーカが先に届いた場合には戻り値未定でそのサービススレッドのリクエストログの記録を確定する。このような処理を行うことにより分散システムについて、無矛盾なチェックポイントを作成することができる。
<動作例>
図12及び図13を用いて、動作例を説明する。分散処理装置100−1、分散処理装置100−2があり、分散システム10で動作するアプリケーションの要求により、分散処理装置100−1にサービス名service1、引数v1でサービススレッド1が生成されたとする(s61)。チェックポイントスレッドがサービススレッド1を実行リストに登録し、サービススレッド1がリクエストログを生成し、リクエストログ記憶手段103aにリクエストログとしてサービス内容(service1,v1)を記憶する(s62)。サービススレッド1の最初のサービススレッド動作がデータベースd1の読み出しだったとする。サービススレッド1は、実行前に停止フラグ記憶手段103bに記憶されている停止フラグを参照する。この動作例では、停止フラグの初期状態はoffとし、チェックポイントスレッドにより更新される。サービススレッド1は、停止フラグがoffなので、フラグスレッドを生成し、実行カウンタを1増やし、リクエストログの実行履歴にサービススレッド動作であるデータベース読み出し(read1,d1)を登録する(s63)。次に、データベースを読み出して、サービス処理を実行する(s64)。また、フラグスレッドは定期的に停止フラグ記憶手段103bの停止フラグを参照している。本実施例では、未だ停止フラグはoffなので、フラグスレッドは停止リストの登録申請等は行わない。サービススレッド1は、動作の結果、データベースd1の読み出しから値w1を得て、その値をリクエストログに記録してリクエストログを更新し、フラグスレッドを終了させる(s65)。次に、サービススレッド1のサービススレッド動作が、分散処理装置100−2への同期型リクエスト送信であり、サービス名service2、引数v2とする。まず、サービススレッド1は停止フラグを参照し、停止フラグがoffなので、サービススレッド1は新たにフラグスレッドを生成し、リクエストログに同期リクエスト送信(service2,v2,分散処理装置100−2)を登録する(s66)。リクエスト送信を行い、サービス処理を実行する(s67)。
このリクエストを受信した分散処理装置100−2のwebサービスミドルウェアは、サービス内容(serviece2,v2)のサービススレッド2を生成する(s68)。チェックポイントスレッドはサービススレッド2を実行リストに登録し、サービススレッド2は、そのリクエストログを生成する(s69)。サービススレッド2の最初のサービススレッド動作が分散処理装置100−1に同期型リクエスト送信(service3,v3)だったとする。サービススレッド2は、停止フラグを参照する。このとき、チェックポイント処理装置100−2の停止フラグはoffだったとする。サービススレッド2は、フラグスレッドを生成し、リクエストログに(service3,v3,分散処理装置100−1)を登録する(s70)。サービススレッド2はリクエスト送信し、サービス処理を行う(s71)。
このリクエストを受信した分散処理装置100−1のwebサービスミドルウェアは、サービス内容(serviece3,v3)のサービススレッド3を生成する(s72)。分散処理装置100−1のチェックポイントスレッドがサービススレッド3を実行リストに登録する。サービススレッド3はサービス内容を(service3,v3)としてリクエストログを生成する(s73)。サービススレッド3の最初のサービススレッド動作がデータベースd2の読み出しだったとする。サービススレッド3は、停止フラグを参照し、停止フラグがoffなので、フラグスレッドを生成し、リクエストログの実行履歴に(read2,d2)を登録する(s74)。データベースを読み出し、サービス処理を行う(s75)。その後、サービススレッド3は、戻り値w2を得て、これをリクエストログの実行履歴に記録し、リクエストログを更新し、フラグスレッドを終了させる(s76)。
このとき、分散処理装置100−1に最初のマーカが届いたとする。チェックポイントスレッドは停止フラグをonに更新する。なお、最初のマーカは、各チェックポイント作成装置にサービススレッドの停止を開始させる役割を持つ。マーカには、スナップショットを起動したサービススレッドの識別子や起動した順番や時刻等が含まれ、同じスナップショットプログラムに起因するマーカをチェックポイントスレッドは判別することができる。最初のマーカとは同じスナップショットプログラムに起因する最初のマーカを意味する。
その後、サービススレッド3が次のサービススレッド動作がデータベースd4の読み出しだったとする。サービススレッド3は、データベースd4の読み出しを実行する前に停止フラグを参照する。停止フラグはonなので、サービススレッド3は、チェックポイントスレッドに対し、サービススレッド3の停止リスト登録申請を行い、実行を停止する(s77)。
そのうち、サービススレッド1に対応するフラグスレッドが停止フラグを参照し、停止フラグがonなので、フラグスレッドは、チェックポイントスレッドに対し、サービススレッド1の停止リスト登録申請を行い、サービススレッド1に対し実行の停止を指示する。サービススレッド1はこの停止支持を受け実行を停止する(s78)。
チェックポイントスレッドは、停止リストにサービススレッド1とサービススレッド3を登録する。これにより、実行リストと停止リストの内容が一致したので、チェックポイントスレッドはサービススレッド1及びサービススレッド3に対するリクエストログをそれぞれ安定記憶手段103fに記録するように指示する。さらに、マーカを分散処理装置100−2に送信し、停止リストをリセットし(サービススレッドの登録が全くない状態にする)、停止フラグをoffに更新する。
最初のマーカを受信した分散処理装置100−2のチェックポイントスレッドは停止フラグをonにする。その後、サービススレッド2に対応するフラグスレッドは、この停止フラグを参照し、チェックポイントスレッドに対し、サービススレッド2の停止リスト登録申請を行い、サービススレッド2に実行の停止を指示する。この指示を受け、サービススレッド2はその実行を停止する(s79)。このとき、分散処理装置100−2の実行リストと停止リストが一致するので、チェックポイントスレッドは、サービススレッド2に対するリクエストログを安定記憶手段103fに記録し、マーカを分散処理装置100−1に送信し、停止リストをリセットし、停止フラグをoffに更新する。
実行を再開したサービススレッド3は、フラグスレッドを生成し、リクエストログの実行履歴にデータベースd4の読み出し(read4,d4)を登録する(s80)。サービススレッド3は、データベースd4の読み出しを実行し、実行結果をリクエストログの実行履歴に記録し、リクエストログを更新する。さらにフラグスレッドを終了する(s81)。そしてサービススレッド3は、サービススレッド2に取得した戻り値w4を返す。この処理により、サービススレッド3は、サービス要求を終了したとする。サービススレッド3は、リクエストログ記憶部103fから対応するリクエストログを消去し、実行リストからサービススレッド3を削除するようにチェックポイントスレッドに申請し、消滅する(s82)。
このとき、サービススレッド2も戻り値w4を受信し、その実行を進める。
一方、分散処理装置100−1は分散処理装置100−2よりマーカを受信し、サービススレッド1は、分散処理装置100−2のサービススレッド2からの戻り値より先に分散処理装置100−2からのマーカを受信したので、リクエストログのサービススレッドからの戻り値は未定のまま、リクエストログの記録は確定する。
<効果>
本実施例の分散処理装置は、非特許文献1と同様に無矛盾なチェックポイントを作成することができ、さらに、1台の分散処理装置上で1以上のサービススレッドを一括して管理するため、効率よくマーカを送受信することができ、分散システムにおけるネットワークの通信量を減らし、送受信に係る処理(計算量)を減らすことができるという効果を奏する。
従来、耐クラッシュ故障の実現(実装)は、運用するサービスアプリケーション毎に工夫されてきた。しかし、耐クラッシュ故障の実現には耐故障に関する専門知識が必要で、サービスアプリケーション開発者にはその実装が容易ではなかった。本実施例のような構成であれば、耐クラッシュ故障の実現をwebサービスミドルウェアにより行うことができ、アプリケーション開発と耐故障方式の実装作業を分離することができる。よって、大規模な分散システムの耐クラッシュ故障に適した協調チェックポイント法を対象に、各計算機でチェックポイントを作成することができる。
[変形例]
サービススレッドの実行リスト及び停止リストへの登録は、チェックポイントスレッドが行うのではなく、サービススレッドまたはフラグスレッドが行ってもよい。また、サービススレッドの実行リストからの削除は、チェックポイントスレッドが行うのではなく、サービススレッド自身が終了前に行ってもよい。
<ハードウェア構成>
図14は、本実施例における分散処理装置100−nのハードウェア構成を例示したブロック図である。図14に例示するように、この例の分散処理装置100−nは、それぞれCPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インタフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インタフェース、ディスプレイ、プリンタ等である。補助記憶装置14は、例えば、ハードディスク、半導体メモリ等であり、分散処理装置100−nとしてコンピュータを機能させるためのプログラムや各種データが格納される。また、RAM16には、上記のプログラムや各種データが展開され、CPU11等から利用される。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
<プログラム構成>
上述のように、補助記憶装置14には、本実施例の分散処理装置100−nの各処理を実行するための各プログラムが格納される。チェックポイント作成プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。
<ハードウェアとプログラムとの協働>
CPU11は、読み込まれたOSプログラムに従い、補助記憶装置14に格納されている上述のプログラムや各種データをRAM16に展開する。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
図3は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成される分散処理装置100−nの機能構成を例示したブロック図である。
ここで、記憶部103は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、サービススレッド手段110−m、チェックポイントスレッド手段130
及びフラグスレッド140−rは、CPU11にチェックポイント作成プログラムを実行させることにより構成されるものである。
本発明で作成したチェックポイントを用いてロールバックに利用することができる。
10 分散システム
100−n チェックポイント作成装置
103 記憶手段
110−m サービススレッド手段
130 チェックポイントスレッド手段
140−r フラグスレッド手段

Claims (4)

  1. 分散システムを構成し、チェックポイントを作成しながら処理を進めていくチェックポイント作成装置であって、
    前記分散システム上で動作するアプリケーションまたは他のサービススレッド手段の要求に応じて処理を行う1以上のサービススレッド手段と、
    このチェックポイント作成装置上で動作するサービススレッド手段の停止を意味するか否かを示す停止フラグと、このチェックポイント作成装置上で動作するサービススレッド手段のリストである実行リストと、このチェックポイント作成装置上で動作を停止している前記サービススレッド手段のリストである停止リストと、各前記サービススレッド手段の実行履歴からなるリクエストログと、を記憶する記憶手段と、
    故障によって失われない記憶領域である安定記憶手段と、
    前記停止フラグを更新するチェックポイントスレッド手段と、
    前記停止フラグを参照するフラグスレッド手段と、を備え、
    前記チェックポイントスレッド手段は、このチェックポイント作成装置に最初にマーカが届いたときに、または、このチェックポイント作成装置がスナップショットを起動したときに、停止フラグをこのチェックポイント作成装置上で動作するサービススレッド手段の停止を意味する停止フラグにし、前記実行リストと前記停止リストとに記憶されるサービススレッド手段が一致すると、前記安定記憶手段に前記リクエストログを記憶する、
    ことを特徴とするチェックポイント作成装置。
  2. チェックポイントを作成しながら処理を進めていく1以上のチェックポイント作成装置からなるチェックポイント作成システムであって、
    このチェックポイント作成システムを構成する各前記チェックポイント作成装置は、
    このチェックポイント作成システム上で動作するアプリケーションまたは他のサービススレッド手段の要求に応じて処理を行う1以上のサービススレッド手段と、
    このチェックポイント作成装置上で動作するサービススレッド手段の停止を意味するか否かを示す停止フラグと、チェックポイント作成システムを構成するチェックポイント作成装置間で送受信されるマーカメッセージの送信先のリストであるマーカリストと、このチェックポイント作成装置上で動作するサービススレッド手段のリストである実行リストと、このチェックポイント作成装置上で動作を停止している前記サービススレッド手段のリストである停止リストと、各前記サービススレッド手段の実行履歴からなるリクエストログと、を記憶する記憶手段と、
    故障によって失われない記憶領域である安定記憶手段と、
    前記マーカメッセージの送受信を行い、前記停止フラグと前記マーカリストを更新するチェックポイントスレッド手段と、
    前記停止フラグを参照するフラグスレッド手段と、を備え、
    各前記チェックポイント作成装置のチェックポイントスレッド手段は、他のチェックポイント作成装置から最初にマーカが届いたときに、または、このチェックポイント作成装置がスナップショットを起動したときに、停止フラグをこのチェックポイント作成装置上で動作するサービススレッド手段の停止を意味する停止フラグにし、前記実行リストと前記停止リストとに記憶されるサービススレッド手段が一致すると、前記安定記憶手段に前記リクエストログを記憶し、前記停止フラグをこのチェックポイント作成装置上で動作するサービススレッド手段の停止を意味しない停止フラグにし、前記停止リストをリセットし、他のチェックポイントスレッド手段にマーカメッセージの送信する、
    ことを特徴とするチェックポイント作成システム。
  3. 分散システムを構成する分散処理装置のチェックポイント作成方法であって、
    前記分散処理装置上で、1つ以上のサービススレッドと、1つ以上のフラグスレッドと、チェックポイントスレッドとが動作し、停止フラグは分散処理装置上で動作するサービススレッドの停止を意味するか否かを示す情報とし、実行リストは分散処理装置上で動作するサービススレッドのリストとし、停止リストは分散処理装置上で動作を停止している前記サービススレッドのリストとし、
    前記サービススレッドが、前記分散システム上で動作するアプリケーションまたは他のサービススレッドの要求に応じて処理を行うサービススレッドステップと、
    各前記サービススレッドの実行履歴をリクエストログとして記憶するリクエストログ記憶ステップと、
    前記チェックポイントスレッドが、前記分散処理装置に最初にマーカが届いたときに、または、前記分散処理装置がスナップショットを起動したときに、前記停止フラグをこのチェックポイント作成装置上で動作するサービススレッドの停止を意味するものに更新するステップと、
    前記サービススレッドが要求に応じて処理を行う前に、または、前記フラグスレッドが定期的に、停止フラグを参照し、停止フラグがチェックポイント作成装置上で動作するサービススレッドの停止を意味するものであった場合に、サービススレッドの処理を停止するステップと、
    前記実行リストと前記停止リストに記憶されるサービススレッドが一致すると、故障によって失われない記憶領域に前記リクエストログを記憶する安定記憶ステップと、を備える、
    ことを特徴とするチェックポイント作成方法。
  4. 請求項1記載のチェックポイント作成装置として、コンピュータを機能させるためのプログラム。
JP2010164607A 2010-07-22 2010-07-22 チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム Active JP5419166B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010164607A JP5419166B2 (ja) 2010-07-22 2010-07-22 チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010164607A JP5419166B2 (ja) 2010-07-22 2010-07-22 チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム

Publications (2)

Publication Number Publication Date
JP2012027634A JP2012027634A (ja) 2012-02-09
JP5419166B2 true JP5419166B2 (ja) 2014-02-19

Family

ID=45780503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010164607A Active JP5419166B2 (ja) 2010-07-22 2010-07-22 チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム

Country Status (1)

Country Link
JP (1) JP5419166B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6318031B2 (ja) * 2014-07-08 2018-04-25 株式会社野村総合研究所 バッチサーバメンテナンス方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3154942B2 (ja) * 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
JP2003150568A (ja) * 2001-11-08 2003-05-23 Nippon Telegr & Teleph Corp <Ntt> ネットワークシステムのバックアップ方法、バックアッププログラム並びにそのプログラムを記録した記録媒体
JP4773715B2 (ja) * 2004-12-01 2011-09-14 富士通株式会社 チェックポイント取得方法

Also Published As

Publication number Publication date
JP2012027634A (ja) 2012-02-09

Similar Documents

Publication Publication Date Title
US8627135B2 (en) Management of a distributed computing system through replication of write ahead logs
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
JP4405509B2 (ja) データ管理方法、システム、およびプログラム(リモート記憶位置にフェイルオーバを行うための方法、システム、およびプログラム)
KR101602312B1 (ko) 데이터 송신 방법, 데이터 수신 방법, 및 저장 장치
US20180150501A1 (en) Database system, server device, computer program product, and information processing method
US8707085B2 (en) High availability data storage systems and methods
US9710344B1 (en) Locality based quorum eligibility
CN107544783B (zh) 一种数据更新方法、装置及***
JP2007286860A (ja) データ転送方法及び情報処理装置
US9389968B2 (en) Preventing non-detectable data loss during site switchover
CN106855834B (zh) 一种数据备份方法、装置和***
US20230333945A1 (en) Scalable Low-Loss Disaster Recovery for Data Stores
JP4560074B2 (ja) 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP2004199682A (ja) 高可用性クラスタにおける活性判定用通信ネットワークとしての記憶媒体の使用
US9367413B2 (en) Detecting data loss during site switchover
US20230315713A1 (en) Operation request processing method, apparatus, device, readable storage medium, and system
US10146648B1 (en) Preserving disaster recovery protection for a data storage object
US11016863B2 (en) Self-contained disaster detection for replicated multi-controller systems
JP5419166B2 (ja) チェックポイント作成装置、チェックポイント作成システム、チェックポイント作成方法及びチェックポイント作成プログラム
JP4563412B2 (ja) ソフトウェア複製
CN107168774A (zh) 一种基于本地存储的虚拟机迁移方法及***
Gog et al. Falkirk wheel: Rollback recovery for dataflow systems
JP4461777B2 (ja) トランザクション処理システムおよび方法ならびにプログラム
JP3467750B2 (ja) 分散オブジェクト処理システム
US11669516B2 (en) Fault tolerance for transaction mirroring

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20111121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131114

R150 Certificate of patent or registration of utility model

Ref document number: 5419166

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250