JP6036690B2 - 分散実行システム及び分散プログラム実行方法 - Google Patents
分散実行システム及び分散プログラム実行方法 Download PDFInfo
- Publication number
- JP6036690B2 JP6036690B2 JP2013522701A JP2013522701A JP6036690B2 JP 6036690 B2 JP6036690 B2 JP 6036690B2 JP 2013522701 A JP2013522701 A JP 2013522701A JP 2013522701 A JP2013522701 A JP 2013522701A JP 6036690 B2 JP6036690 B2 JP 6036690B2
- Authority
- JP
- Japan
- Prior art keywords
- worker
- program
- execution
- pipe
- output
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
Description
〔システム構成〕
図1は、第1実施形態における分散実行システムの構成例を概念的に示す図である。第1実施形態における分散実行システム1は、パイププログラム、このパイププログラムにより実現されるパイプを介して相互に接続する第1分散プログラム及び第2分散プログラムを実行する。
以下、第1実施形態における分散実行システム1の動作例について、図2から図5を用いて、場面毎にそれぞれ説明する。図2から図5では、分散実行システム1上で実行されるパイププログラム及び分散プログラムが示されている。
上述の説明では特に明記していなかったが、図9A及び図9Bに示されるように、出力側パイプワーカ40と入力側パイプワーカ50との接続形態は、1対1であってもよいし、1対多であってもよいし、多対1であってもよい。図9Aは、出力側パイプワーカ40と入力側パイプワーカ50との1対1の接続形態及び1対多の接続形態を概念的に示す図である。図9Bは、出力側パイプワーカ40と入力側パイプワーカ50との多対1の接続形態を概念的に示す図である。
第2実施形態における分散実行システム1は、分散プログラムとパイププログラムとの接続形態にループが含まれる場合にも適応する。図12は、複数のプログラムがパイプを介して接続する形態にループが含まれる場合の例を論理的に示す図である。
上述の第1実施形態及び第2実施形態では、出力側の分散プログラム(例えば、第1分散プログラム)が、出力側マスタ10及び出力側ワーカ15を実現し、入力側の分散プログラム(例えば、第2分散プログラム)が、入力側マスタ20及び入力側ワーカ25を実現する例を示した。しかしながら、本発明はこのような各形態に限定されない。
前記第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカと、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカと、
を備え、
前記出力側パイプワーカは、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得するプログラム接続部と、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得する情報取得部と、
前記プログラム接続部により取得されたシーケンス番号と前記情報取得部により取得された回復シーケンス番号とを比較し、前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない第1通信部と、
を含む、分散実行システム。
前記出力側パイプワーカから送信された出力データ及びシーケンス番号を受信する第2通信部と、
前記第2通信部により受信されたシーケンス番号に基づいて、送信元の出力側パイプワーカ毎の最新シーケンス番号を保持する保持部と、
を含み、
前記分散実行システムは、
前記入力側パイプワーカの前記保持部により保持される最新シーケンス番号を取得し、取得された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送るワーカ制御部を含むパイプマスタ、
を更に備える付記1に記載の分散実行システム。
前記第1通信部により前記入力側パイプワーカへ送信された出力データに対応する最新シーケンス番号を保持する保持部、
を更に含み、
前記出力側ワーカ及び前記入力側ワーカは、各時点での実行状態を、各実行状態を特定するための状態特定情報とそれぞれ関連づけた状態で保存し、
前記パイプマスタは、
前記出力側ワーカ又は前記入力側ワーカが実行状態を保存した時点で、前記出力側パイプワーカの前記保持部に保持される最新シーケンス番号を取得し、取得された最新シーケンス番号と、保存された実行状態を特定するための状態特定情報とを関連付けて保持する関連保持部、
を更に含み、
前記パイプマスタの前記ワーカ制御部は、前記入力側ワーカにより最近保存された実行状態を特定するための状態特定情報と関連付けられて前記関連保持部に保持されるシーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
付記2に記載の分散実行システム。
前記出力側ワーカは、保存される実行状態のうち、前記パイプマスタから送られた状態特定情報で特定される実行状態に戻る、
付記3に記載の分散実行システム。
前記出力側パイプワーカの前記第1通信部は、前記プログラム接続部により取得されたシーケンス番号及び出力データの送信先を前記各入力側パイプワーカ間で切り替え、
前記パイプマスタの前記ワーカ制御部は、前記各入力側パイプワーカの各保持部により保持される最新シーケンス番号をそれぞれ収集し、収集されたシーケンス番号の中から前記出力側パイプワーカに関する最新シーケンス番号を抽出し、抽出された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
付記1から4のいずれか1つに記載の分散実行システム。
前記複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを備え、
前記複数の分散プログラムの中のリーダプログラムは、リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカは、プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
分散実行システム。
パイプを介して第2分散プログラムと接続される第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカを起動し、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカを起動し、
前記出力側パイプワーカが、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得し、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得し、
前記シーケンス番号と回復シーケンス番号とを比較し、
前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない、
ことを含む分散プログラム実行方法。
前記出力側パイプワーカから送信された出力データ及びシーケンス番号を受信し、
前記受信されたシーケンス番号に基づいて、送信元の出力側パイプワーカ毎の最新シーケンス番号を保持し、
前記複数のコンピュータの中の少なくとも1つが、
パイプマスタを起動し、
前記パイプマスタが、
前記入力側パイプワーカにより保持される最新シーケンス番号を取得し、
前記取得された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
ことを更に含む付記7に記載の分散プログラム実行方法。
前記第1通信部により前記入力側パイプワーカへ送信された出力データに対応する最新シーケンス番号を保持し、
前記出力側ワーカ及び前記入力側ワーカが、
各時点での実行状態を、各実行状態を特定するための状態特定情報とそれぞれ関連づけた状態で保存し、
前記パイプマスタが、
前記出力側ワーカ又は前記入力側ワーカが実行状態を保存した時点で、前記出力側パイプワーカに保持される最新シーケンス番号を取得し、
前記取得された最新シーケンス番号と、保存された実行状態を特定するための状態特定情報とを関連付けて保持し、
前記入力側ワーカにより最近保存された実行状態を特定するための状態特定情報と関連付けられて保持されるシーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
ことを更に含む付記8に記載の分散プログラム実行方法。
前記出力側パイプワーカに前記回復シーケンス番号として送られたシーケンス番号以前の順番を示すシーケンス番号と関連付けられて前記関連保持部に保持される、前記出力側ワーカに関する状態特定情報を前記出力側ワーカに送り、
前記出力側ワーカが、
保存される実行状態のうち、前記パイプマスタから送られた状態特定情報で特定される実行状態に戻る、
ことを更に含む付記9に記載の分散プログラム実行方法。
前記出力側パイプワーカが、
前記プログラム接続部により取得されたシーケンス番号及び出力データの送信先を前記各入力側パイプワーカ間で切り替え、
前記パイプマスタが、
前記各入力側パイプワーカにより保持される最新シーケンス番号をそれぞれ収集し、
前記収集されたシーケンス番号の中から前記出力側パイプワーカに関する最新シーケンス番号を抽出し、
前記抽出された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
ことを更に含む付記7から10のいずれか1つに記載の分散プログラム実行方法。
パイプで相互に接続される複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを起動し、
前記複数の分散プログラムの中のリーダプログラムが、
リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカが、
プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、
前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、
前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、
上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
ことを含む分散プログラム実行方法。
前記第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカと、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカと、
を実現させ、
前記出力側パイプワーカは、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得するプログラム接続部と、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得する情報取得部と、
前記プログラム接続部により取得されたシーケンス番号と前記情報取得部により取得された回復シーケンス番号とを比較し、前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない第1通信部と、
を含む、分散実行プログラム。
前記出力側パイプワーカから送信された出力データ及びシーケンス番号を受信する第2通信部と、
前記第2通信部により受信されたシーケンス番号に基づいて、送信元の出力側パイプワーカ毎の最新シーケンス番号を保持する保持部と、
を含み、
前記複数のコンピュータの中の少なくとも1つに、
前記入力側パイプワーカの前記保持部により保持される最新シーケンス番号を取得し、取得された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送るワーカ制御部を含むパイプマスタ、
を更に実現させる付記13に記載の分散実行プログラム。
前記第1通信部により前記入力側パイプワーカへ送信された出力データに対応する最新シーケンス番号を保持する保持部、
を更に含み、
前記出力側ワーカ及び前記入力側ワーカは、各時点での実行状態を、各実行状態を特定するための状態特定情報とそれぞれ関連づけた状態で保存し、
前記パイプマスタは、
前記出力側ワーカ又は前記入力側ワーカが実行状態を保存した時点で、前記出力側パイプワーカの前記保持部に保持される最新シーケンス番号を取得し、取得された最新シーケンス番号と、保存された実行状態を特定するための状態特定情報とを関連付けて保持する関連保持部、
を更に含み、
前記パイプマスタの前記ワーカ制御部は、前記入力側ワーカにより最近保存された実行状態を特定するための状態特定情報と関連付けられて前記関連保持部に保持されるシーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
付記14に記載の分散実行プログラム。
前記出力側ワーカは、保存される実行状態のうち、前記パイプマスタから送られた状態特定情報で特定される実行状態に戻る、
付記15に記載の分散実行プログラム。
前記出力側パイプワーカの前記第1通信部は、前記プログラム接続部により取得されたシーケンス番号及び出力データの送信先を前記各入力側パイプワーカ間で切り替え、
前記パイプマスタの前記ワーカ制御部は、前記各入力側パイプワーカの各保持部により保持される最新シーケンス番号をそれぞれ収集し、収集されたシーケンス番号の中から前記出力側パイプワーカに関する最新シーケンス番号を抽出し、抽出された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
付記13から16のいずれか1つに記載の分散実行プログラム。
前記複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを、
実現させ、
前記複数の分散プログラムの中のリーダプログラムは、リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカは、プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
分散実行プログラム。
Claims (10)
- パイプを介して接続される第1分散プログラム及び第2分散プログラムを実行する分散実行システムにおいて、
前記第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカと、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカと、
を備え、
前記出力側パイプワーカは、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得するプログラム接続部と、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得する情報取得部と、
前記プログラム接続部により取得されたシーケンス番号と前記情報取得部により取得された回復シーケンス番号とを比較し、前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない第1通信部と、
を含む、分散実行システム。 - 前記入力側パイプワーカは、
前記出力側パイプワーカから送信された出力データ及びシーケンス番号を受信する第2通信部と、
前記第2通信部により受信されたシーケンス番号に基づいて、送信元の出力側パイプワーカ毎の最新シーケンス番号を保持する保持部と、
を含み、
前記分散実行システムは、
前記入力側パイプワーカの前記保持部により保持される最新シーケンス番号を取得し、取得された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送るワーカ制御部を含むパイプマスタ、
を更に備える請求項1に記載の分散実行システム。 - 前記出力側パイプワーカは、
前記第1通信部により前記入力側パイプワーカへ送信された出力データに対応する最新シーケンス番号を保持する保持部、
を更に含み、
前記出力側ワーカ及び前記入力側ワーカは、各時点での実行状態を、各実行状態を特定するための状態特定情報とそれぞれ関連づけた状態で保存し、
前記パイプマスタは、
前記出力側ワーカ又は前記入力側ワーカが実行状態を保存した時点で、前記出力側パイプワーカの前記保持部に保持される最新シーケンス番号を取得し、取得された最新シーケンス番号と、保存された実行状態を特定するための状態特定情報とを関連付けて保持する関連保持部、
を更に含み、
前記パイプマスタの前記ワーカ制御部は、前記入力側ワーカにより最近保存された実行状態を特定するための状態特定情報と関連付けられて前記関連保持部に保持されるシーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
請求項2に記載の分散実行システム。 - 前記パイプマスタの前記ワーカ制御部は、前記出力側パイプワーカに前記回復シーケンス番号として送られたシーケンス番号以前の順番を示すシーケンス番号と関連付けられて前記関連保持部に保持される、前記出力側ワーカに関する状態特定情報を前記出力側ワーカに送り、
前記出力側ワーカは、保存される実行状態のうち、前記パイプマスタから送られた状態特定情報で特定される実行状態に戻る、
請求項3に記載の分散実行システム。 - 前記第2分散プログラムは複数の入力側ワーカを実現し、各入力側ワーカについて各入力側パイプワーカがそれぞれ設けられており、
前記出力側パイプワーカの前記第1通信部は、前記プログラム接続部により取得されたシーケンス番号及び出力データの送信先を前記各入力側パイプワーカ間で切り替え、
前記パイプマスタの前記ワーカ制御部は、前記各入力側パイプワーカの各保持部により保持される最新シーケンス番号をそれぞれ収集し、収集されたシーケンス番号の中から前記出力側パイプワーカに関する最新シーケンス番号を抽出し、抽出された最新シーケンス番号を前記回復シーケンス番号として前記出力側パイプワーカに送る、
請求項2から4のいずれか1項に記載の分散実行システム。 - パイプで相互に接続される複数の分散プログラムを実行する分散実行システムにおいて、
前記複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを備え、
前記複数の分散プログラムの中のリーダプログラムは、リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカは、プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
分散実行システム。 - 複数のコンピュータが、
パイプを介して第2分散プログラムと接続される第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカを起動し、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカを起動し、
前記出力側パイプワーカが、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得し、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得し、
前記シーケンス番号と回復シーケンス番号とを比較し、
前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない、
ことを含む分散プログラム実行方法。 - 複数のコンピュータが、
パイプで相互に接続される複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを起動し、
前記複数の分散プログラムの中のリーダプログラムが、
リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカが、
プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、
前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、
前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、
上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
ことを含む分散プログラム実行方法。 - パイプを介して接続される第1分散プログラム及び第2分散プログラムを実行する複数のコンピュータに、
前記第1分散プログラムで実現される出力側ワーカと同じノード上で動作する出力側パイプワーカと、
前記第2分散プログラムで実現される入力側ワーカと同じノード上で動作し、前記出力側パイプワーカから前記出力側ワーカの出力データを受信し、この出力データをその入力側ワーカに渡す入力側パイプワーカと、
を実現させ、
前記出力側パイプワーカは、
前記出力側ワーカから、出力データと共にその出力データが前記入力側ワーカへ送られる順番を示すシーケンス番号を取得するプログラム接続部と、
前記入力側ワーカの実行状態に対応する回復シーケンス番号を取得する情報取得部と、
前記プログラム接続部により取得されたシーケンス番号と前記情報取得部により取得された回復シーケンス番号とを比較し、前記回復シーケンス番号以前の順番を示すシーケンス番号と共に取得された出力データについては前記入力側パイプワーカへ転送しない第1通信部と、
を含む、分散実行プログラム。 - パイプで相互に接続される複数の分散プログラムを実行する複数のコンピュータに、
前記複数の分散プログラムにより実現される複数のプログラムワーカであって、上流のプログラムワーカからの出力データをパイプを介して取得し、下流のプログラムワーカへ自身の出力データを送る複数のプログラムワーカを、
実現させ、
前記複数の分散プログラムの中のリーダプログラムは、リーダプログラムにより実現されるプログラムワーカの実行を停止させると共に、前記上流のプログラムワーカ及び前記下流のプログラムワーカへそれぞれ実行状態保存要求を送信し、
前記実行状態保存要求を受信した各プログラムワーカは、プログラムワーカ自身の実行を停止させると共に、前記実行状態保存要求の送信元以外のパイプを介して接続される他のプログラムワーカに前記実行状態保存要求を転送し、前記実行状態保存要求の送信元となる全ての下流のプログラムワーカに実行停止の完了を通知し、前記実行状態保存要求の転送先の中の全ての上流のプログラムワーカから実行停止の完了の通知を受けた後、プログラムワーカ自身の実行状態の保存を実行し、上流のプログラムワーカに実行状態保存の完了を通知し、全ての下流のプログラムワーカから実行状態保存の完了を通知された後、プログラムワーカ自身の実行を再開する、
分散実行プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011150619 | 2011-07-07 | ||
JP2011150619 | 2011-07-07 | ||
PCT/JP2012/003475 WO2013005370A1 (ja) | 2011-07-07 | 2012-05-28 | 分散実行システム及び分散プログラム実行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013005370A1 JPWO2013005370A1 (ja) | 2015-02-23 |
JP6036690B2 true JP6036690B2 (ja) | 2016-11-30 |
Family
ID=47436738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013522701A Active JP6036690B2 (ja) | 2011-07-07 | 2012-05-28 | 分散実行システム及び分散プログラム実行方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9396050B2 (ja) |
JP (1) | JP6036690B2 (ja) |
WO (1) | WO2013005370A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5994601B2 (ja) * | 2012-11-27 | 2016-09-21 | 富士通株式会社 | 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63143657A (ja) * | 1986-12-05 | 1988-06-15 | Nec Corp | フアイル転送制御方式 |
JPH02260055A (ja) * | 1989-03-31 | 1990-10-22 | Nec Corp | コンピュータ間ファイル転送方式 |
JPH0341522A (ja) | 1989-07-10 | 1991-02-22 | Fujitsu Ltd | メッセージ紛失検出処理方式 |
JPH09146782A (ja) * | 1995-11-24 | 1997-06-06 | Hitachi Ltd | ジョブ間データ引き継ぎにおける異常発生時の対応方法 |
JPH11237996A (ja) * | 1998-02-24 | 1999-08-31 | Hitachi Ltd | 計算機間のデータ連携方法 |
US7221677B1 (en) * | 2000-10-19 | 2007-05-22 | Interactic Holdings, Llc | Scalable apparatus and method for increasing throughput in multiple level minimum logic networks using a plurality of control lines |
US7882181B2 (en) * | 2005-06-03 | 2011-02-01 | Microsoft Corporation | Minimizing data transfer from POP3 servers |
US8789013B1 (en) * | 2006-08-28 | 2014-07-22 | Rockwell Automation Technologies, Inc. | Ordered execution of events in a data-driven architecture |
US7895280B2 (en) * | 2008-09-03 | 2011-02-22 | Microsoft Corporation | Composing message processing pipelines |
US8200765B2 (en) * | 2009-01-12 | 2012-06-12 | International Business Machines Corporation | Preserving message order using a message ordering manager |
US20130304886A1 (en) * | 2012-05-14 | 2013-11-14 | International Business Machines Corporation | Load balancing for messaging transport |
-
2012
- 2012-05-28 WO PCT/JP2012/003475 patent/WO2013005370A1/ja active Application Filing
- 2012-05-28 JP JP2013522701A patent/JP6036690B2/ja active Active
- 2012-05-28 US US14/130,229 patent/US9396050B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9396050B2 (en) | 2016-07-19 |
US20140137127A1 (en) | 2014-05-15 |
JPWO2013005370A1 (ja) | 2015-02-23 |
WO2013005370A1 (ja) | 2013-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5191062B2 (ja) | ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム | |
US9934242B2 (en) | Replication of data between mirrored data sites | |
CN106843749B (zh) | 写入请求处理方法、装置及设备 | |
US20160275123A1 (en) | Pipeline execution of multiple map-reduce jobs | |
US10114848B2 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
JP5966927B2 (ja) | 分散処理装置及び分散処理システム | |
JP2007286860A (ja) | データ転送方法及び情報処理装置 | |
US20170168756A1 (en) | Storage transactions | |
WO2019223599A1 (zh) | 数据采集系统、方法、节点设备及存储介质 | |
WO2014059804A1 (zh) | 数据同步方法及系统 | |
WO2015090245A1 (zh) | 文件传输方法、装置及分布式集群文件系统 | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
CN103634411B (zh) | 一种具有状态一致性的市场数据实时广播系统及方法 | |
CN105493474A (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
CN106855834B (zh) | 一种数据备份方法、装置和系统 | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
JP5561334B2 (ja) | データ転送装置 | |
WO2017096942A1 (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
JP7192388B2 (ja) | 並列処理装置、並列演算実行プログラムおよびバックアップ方法 | |
JP2009080705A (ja) | 仮想計算機システム及び同システムにおける仮想計算機復元方法 | |
JP2022521412A (ja) | 分散システムにおける非同期ストレージ管理 | |
JP6036690B2 (ja) | 分散実行システム及び分散プログラム実行方法 | |
JP2006072684A (ja) | ストレージネットワークシステム及び管理サーバ、ホストとストレージ装置 | |
EP4170519A1 (en) | Data synchronization method and device | |
KR102084014B1 (ko) | 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160705 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160825 |
|
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: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161017 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6036690 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |