以下、本発明を実施するための形態について、適宜図面を参照しながら詳細に説明する。本発明の実施形態は、コネクションレス型のデータ転送方式を用いて、送信先端末装置(受信装置)からの要求に同期して送信元端末装置(送信装置)がデータを情報処理端末装置(中継装置)へ送信し、情報処理端末装置が受信したデータに所定の情報処理を施して情報処理後のデータを送信先端末装置へ転送する並列分散処理システムにおいて、情報処理端末装置のCPU負荷が増加してボトルネックが発生したり、情報処理端末装置に備えた受信バッファのキュー(転送用のキュー)の長さが所定の閾値を超えたりした場合に、情報処理端末装置が、受信バッファに格納されたパケットに対し、そのヘッダを書き換えることで未処理チャンクのパケットであることを識別できるように設定し、情報処理を施すことなく送信し、スイッチが、未処理チャンクのパケットのヘッダを書き換えて予備情報処理端末装置(予備の中継装置)へ転送し、予備情報処理端末装置が、未処理チャンクのパケットに情報処理を施して送信先端末装置へ転送することを特徴とする。すなわち、管理装置(並列分散管理装置)が、情報処理端末装置に対し、未処理チャンクのパケットのヘッダを書き換えるように指示し、スイッチに対し、未処理チャンクのパケットのヘッダを書き換えて予備情報処理端末装置へ転送するように指示し、予備情報処理端末装置に対し、未処理チャンクのパケットに情報処理を施して送信先端末装置へ転送するように指示する。
これにより、予備情報処理端末装置により情報処理が施されたパケットは、送信先端末装置にて予め確保した領域に格納できるようになる。また、情報処理端末装置で発生した一時的なCPU負荷増加の影響を回避したり、並列化数の変更処理(フローを追加して情報処理端末装置を増加し、情報処理端末装置としてプロセスが起動するまでの処理)等が完了するまでの高負荷状態を回避したりすることができ、情報処理端末装置に備えた転送用のキューが長くなるのを抑制し、ストリーミングデータの処理等を締切時間に遅れないように完了することができる。
〔並列分散処理システム〕
まず、本発明の実施形態による管理装置を含む並列分散処理システムについて説明する。図1は、並列分散処理システムの全体構成を示す概略図である。この並列分散処理システムは、送信元端末装置(送信装置)1、情報処理端末装置(中継装置)2−1,2−2、送信先端末装置(受信装置)3、予備情報処理端末装置(予備の中継装置)4、複数のスイッチ5及び管理装置(並列分散管理装置)6を備えて構成される。並列分散処理システムを構成するこれらの装置は、通信回線(ネットワーク)7を介して接続される。
並列分散処理システムは、送信元端末装置1、情報処理端末装置2−1,2−2(総称して情報処理端末装置2という。)、送信先端末装置3、予備情報処理端末装置4及び複数のスイッチ5を使用して、管理装置6からの制御に応じて、データの並列分散処理を行う。
送信元端末装置1は、データを送信先端末装置3へ送信するサーバである。送信元端末装置1は、並列分散処理の対象となるデータを蓄積し、蓄積したデータを予め指定されたサイズ(粒度)で分割し、チャンクのデータをパケット化する。また、送信元端末装置1は、送信先端末装置3から情報処理端末装置2を介して同期パケットを受信し、同期パケットの要求に従ったデータパケット(以下、パケットという。)を、情報処理端末装置2を介して送信先端末装置3へ送信する。
情報処理端末装置2は、送信元端末装置1と送信先端末装置3との間を中継するサーバである。情報処理端末装置2は、送信先端末装置3から同期パケットを受信して送信元端末装置1へ転送し、送信元端末装置1からパケットを受信し、受信したパケットからチャンクを再構成し、チャンクのデータに所定の情報処理を施し、情報処理後のチャンクのデータをパケット化して送信先端末装置3へ転送する。
送信先端末装置3は、送信元端末装置1からパケットを受信してチャンクを再構成し、蓄積するサーバである。送信先端末装置3は、送信元端末装置1から所望のデータを受信するためのチャンク番号を指定すると共に、受信したデータのチャンク番号を含む同期パケットを生成し、所定のフローに対応する情報処理端末装置2を介して送信元端末装置1へ同期パケットを送信する。また、送信先端末装置3は、送信元端末装置1から所定のフローに対応する情報処理端末装置2を介して所望のチャンク番号のパケット(情報処理後のパケット)を受信し、受信したパケットをチャンク番号に従って所定の順番に配列してチャンクのデータを復元し、蓄積する。
予備情報処理端末装置4は、情報処理端末装置2が後述するチャンクの振分け処理を行ったときに機能するサーバであり、チャンクの振分け処理を行った情報処理端末装置2と送信先端末装置3との間を中継する。予備情報処理端末装置4は、情報処理端末装置2と同様に動作し、情報処理端末装置2から未処理チャンクのパケット(情報処理端末装置2において情報処理が施されていないパケット)を受信し、受信したパケットのデータに所定の情報処理を施し、情報処理後のパケットを送信先端末装置3へ転送する。
スイッチ5は、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4であるサーバの間で、パケット転送制御を行う装置である。本実施形態では、パケット転送制御を行う手段としてOpenFlow(オープンフロー)を用いるため、スイッチ5はオープンフロー対応スイッチであるものとする。OpenFlow(オープンフロー)の詳細については後述する。
管理装置6は、並列分散処理を行うために必要な情報を送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4から収集して管理するためのFMFTPの制御を行うと共に、パケットの転送経路をスイッチ5に指示するための経路制御を行う。具体的には、管理装置6は、後述する並列プロセス制御、ボトルネックの検出、フローテーブルの登録等の処理を行う。詳細については後述する。
通信回線7は、送信元端末装置1、情報処理端末装置2、送信先端末装置3、予備情報処理端末装置4、スイッチ5及び管理装置6をそれぞれ接続するLAN(Local Area Network)ケーブルである。
〔情報処理の一例〕
次に、図1に示した並列分散処理システムが行う情報処理の一例について説明する。この情報処理は、送信元端末装置1と送信先端末装置3との間を中継する複数の情報処理端末装置2により行われる。
並列分散処理システムは、例えば、情報処理として、送信対象の映像データに対し、トランスコーディング等の映像加工処理を行う。すなわち、並列分散処理システムの送信元端末装置1は、蓄積した映像データを分割してパケット化し、各情報処理端末装置2へ送信する。そして、各情報処理端末装置2は、映像データのパケットをそれぞれ受信し、映像データに対して映像加工処理を並列に施し、映像加工処理を施した映像データのパケットを送信先端末装置3へそれぞれ転送する。そして、送信先端末装置3は、映像加工処理が施された映像データのパケットを受信し、映像データを所定の順番で配列することで、映像加工処理済みのデータを復元して蓄積する。
尚、本発明において、並列分散処理システムが行う情報処理は、前述の映像加工処理に限定されないことは言うまでもない。
〔OpenFlow〕
次に、図1に示した並列分散処理システムが用いるOpenFlow(オープンフロー)によるパケット転送制御の概要を説明する。尚、オープンフローによるパケット転送制御の詳細については以下のサイトを参照されたい。
“The OpenFlow Switch Consortium”、[online]、[平成25年5月9日検索]、インターネット<URL:http://www.Openflowswitch.org/>
図1に示した並列分散処理システムにおいて、管理装置6がオープンフローコントローラに相当し、スイッチ5がオープンフロー対応スイッチに相当する。オープンフロー対応スイッチであるスイッチ5は、従来のネットワークスイッチにおける経路制御及びパケット転送制御のうち、パケット転送制御のみを行う。オープンフローコントローラである管理装置6は、スイッチ5に対して経路の集中制御を行う。
オープンフローではフローが経路制御単位であり、各スイッチ5は、転送方法を規定したフローテーブルを保持する。図11は、フローテーブルの構成を示す図である。フローテーブルは、例えば、条件、アクション及び統計情報により構成される。
条件は、入力スイッチポート、送信元/宛先MAC(Media Access Control)アドレス、送信元/宛先IP(Internet Protocol)アドレス、送信元/宛先ポート番号等の識別情報により、フローを識別する規則である。後述するように、スイッチ5は、情報処理端末装置2から受信した未処理チャンクのパケットを予備情報処理端末装置4へ転送する場合、予約IPアドレス宛のパケットを受信することを示す条件が格納されたフローテーブルを保持する。
アクションは、予め設定される転送方法の処理が定義された情報である。例えば、出力スイッチポートの指定によって、または送信元IPアドレス、送信先IPアドレス、TCP/UDPポート番号の書き換え、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4であるサーバとスイッチ5との間で直接経路を設定したり、送信元を偽装したりすることができる。後述するように、情報処理端末装置2から受信した未処理チャンクのパケットを予備情報処理端末装置4へ転送する場合、予約IPアドレス宛のパケットを受信することを示す条件に対応して、予備情報処理端末装置4のIPアドレス宛へ転送することを示すアクションが格納されたフローテーブルを保持する。
スイッチ5は、パケットを受信すると、受信したパケットが示す条件が格納されたフローテーブルを保持しているか否かを確認する。スイッチ5は、その条件のフローテーブルを保持している場合、フローテーブルに格納されているその条件に対応するアクションを実行する。一方、スイッチ5は、受信したパケットが示す条件が格納されたフローテーブルを保持していない場合、受信したパケットを転送方法不明パケットとして管理装置6へ送信し、その条件に対応するアクションである転送方法を、オープンフローコントローラである管理装置6に問い合わせる。管理装置6は、その条件のアクションである転送方法を決定し、その条件、及び当該条件に対応するアクション等をフローテーブルに格納し、フローテーブルをスイッチ5へ送信する。
これにより、管理装置6は、スイッチ5が受信したパケットが示す条件に対応するアクション(受信したパケットの転送方法)を、スイッチ5に指示することができる。つまり、管理装置6は、受信したパケットの転送経路をスイッチ5に指示することができる。
本実施形態では、管理装置6がタスク起動時に、予約IPアドレスを情報処理端末装置2へ予め送信しておき、情報処理端末装置2は、管理装置6がボトルネックを判定したとき等の当該情報処理端末装置2においてCPU負荷が高くなったときに(後述する閾値1,2を転送用キューの長さが超えたときに)、パケットのヘッダにおける送信先IPアドレスの領域に予約IPアドレスを設定して転送する。そして、スイッチ5は、そのパケットを受信すると、予約IPアドレス宛のパケットを受信することを示す条件が格納されたフローテーブルを保持していない場合、管理装置6から、その条件及び予備情報処理端末装置4のIPアドレス宛へ転送することを示すアクション等が格納されたフローテーブルを受信して保持し、パケットを予備情報処理端末装置4へ転送する。一方、スイッチ5は、予約IPアドレス宛のパケットを受信することを示す条件が格納されたフローテーブルを保持している場合、そのフローテーブルに従って、受信したパケットを予備情報処理端末装置4へ転送する。
統計情報は、フロー毎のパケットの転送量及びエラーをカウントした情報である。
ここで、フローとプロセスとの関係について説明する。前述のとおり、プロセスとは、処理を実行するプログラムの実行単位をいう。図1に示した並列分散処理システムにおいては、フローとプロセスとが対応することから、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4のサーバで起動したプロセス間でのデータ転送処理が1フローとなる。例えば、送信元端末装置1で起動したプロセスと情報処理端末装置2で起動したプロセスとの間のデータ転送処理が1フローとなり、情報処理端末装置2で起動したプロセスと送信先端末装置3で起動したプロセスとの間のデータ転送処理が1フローとなる。
〔管理装置の構成〕
次に、図1に示した管理装置6の構成について説明する。図2は、本発明の実施形態による管理装置6の構成を示すブロック図である。図2において、並列分散処理のために必要な情報の入出力を分かり易くするため、管理装置6と送信元端末装置1等のサーバとの間で各情報の入出力を示す矢印を直接示しているが、実際には、スイッチ5を介して各情報が入出力される。
この管理装置6は、タスク入力手段110、情報管理手段120、電文受信手段130、並列プロセス計算手段140、並列プロセス制御手段150、フローテーブル計算手段160及びフローテーブル制御手段170を備えている。タスク入力手段110、並列プロセス計算手段140及び並列プロセス制御手段150が、FMFTPによる並列分散処理のメインとなる処理を行い、情報管理手段120が、並列分散処理の情報を管理し、フローテーブル計算手段160及びフローテーブル制御手段170が、オープンフローによるパケット転送制御のためのフローテーブルを管理する。また、並列プロセス計算手段140及び並列プロセス制御手段150は、制御命令生成送信手段として機能し、フローテーブル計算手段160及びフローテーブル制御手段170は、テーブル生成送信手段として機能する。
タスク入力手段110は、利用者により指定されたタスク情報を入力し、タスク情報を並列プロセス計算手段140に出力する。例えば、タスク入力手段110は、利用者によりウェブブラウザのようなインターフェースを介して指定されたタスク情報を入力するようにしてもよいし、利用者によりタスク情報の内容が記述されたテキストファイルを入力するようにしてもよい。ここで、利用者とは、例えば、並列分散処理システムの管理者または使用者のことである。
図12は、タスク情報の構成を示す図である。タスク情報は、並列分散処理に必要な情報であり、例えば、タスクに対応するプロセスを実行する送信元端末装置1等のサーバのサーバ識別子、並列分散処理を行う数(並列化数)、データの分割サイズ(粒度)、並列分散処理に用いるデータ(ファイル)へのパスにより構成される。
例えば、サーバ識別子には、データの送信元としてタスクを実行する送信元端末装置1のIPアドレス、及びデータの送信先としてタスクを実行する送信先端末装置3のIPアドレスが含まれる。また、情報処理端末装置2となり得るサーバのIPアドレスも含まれる。
また、並列化数には、並列分散処理を行う数、つまり、情報処理端末装置2で起動するプロセスの数が含まれる。例えば、並列化数は、情報処理端末装置2が情報処理として映像の色を変える映像加工処理を行う場合、その映像加工処理を行うプロセスの数を示す。
尚、前述のとおり、プロセスは、送信元端末装置1等のサーバの役割に応じた処理を実行するプログラムの実行単位である。このプロセスは、管理装置6の並列プロセス制御手段150からの制御命令に従って、送信元端末装置1等のサーバに備えた後述する並列処理実行手段230にて起動される。本実施形態では、説明を簡単にするために、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4のサーバにおける何れの役割であっても、各サーバがプロセスを1つだけ起動するものとする。つまり、本実施形態では、並列化数は、並列分散処理を行う情報処理端末装置2の数を示すものとする。
並列プロセス計算手段140は、タスク入力手段110からタスク情報を入力し、タスク情報に基づいて、タスクに対応するプロセスを実行する送信元端末装置1等のサーバを決定し、これらのサーバ識別子を含むサーバ特定情報を生成して並列プロセス制御手段150に出力する。
例えば、並列プロセス計算手段140は、タスク情報に含まれるサーバ識別子を参照し、送信元端末装置1及び送信先端末装置3を決定する。また、並列プロセス計算手段140は、ラウンドロビンにより、タスク情報に含まれる情報処理端末装置2となり得る全てのサーバ識別子のサーバのうち、決定した送信元端末装置1及び送信先端末装置3以外の残りのサーバから、タスク情報に含まれる並列化数と同じ台数のサーバを、情報処理端末装置2として決定する。
そして、並列プロセス計算手段140は、タスク情報に基づいて、決定した各サーバで起動するプロセスの内容を決定し、決定したサーバのサーバ識別子と、各サーバで起動するプロセスの内容とを含むサーバ特定情報を生成し、サーバ特定情報を並列プロセス制御手段150に出力する。
図13は、サーバ特定情報の構成を示す図である。サーバ特定情報は、例えば、並列プロセス計算手段140により決定された送信元端末装置1、情報処理端末装置2及び送信先端末装置3の各サーバのサーバ識別子、各サーバで起動するプロセスの内容により構成される。
並列プロセス制御手段150は、並列プロセス計算手段140からサーバ特定情報を入力し、並列プロセス制御を行う。具体的には、並列プロセス制御手段150は、タスクを開始するために、サーバ特定情報に基づいて、タスクを実行するために必要なプロセスの起動及び転送コネクションの作成を指示するための制御命令、並びにパラメータ(閾値1,2、予約IPアドレス、プロセスの内容等)を生成する。そして、並列プロセス制御手段150は、これらの情報を送信元端末装置1等のサーバへ送信する。例えば、制御命令及びパラメータを受信した情報処理端末装置2は、制御命令を実行し、パラメータに含まれる閾値による判定にて、受信したパケットのデータに情報処理を施した場合、処理済みチャンクのパケットとして送信し、データに情報処理を施さなかった場合、ヘッダの送信先IPアドレスに、パラメータに含まれる予約IPアドレスを設定し、未処理チャンクのパケットとして送信する。
この場合、並列プロセス制御手段150は、プロセス毎に別の宛先ポート番号を付与する。並列プロセス制御手段150は、複数のプロセスを起動できるため、情報処理端末装置2においてパケットの転送処理及び情報処理を並列化することができる。パラメータには、例えば、映像加工処理におけるトランスコードの有無及びビットレートが含まれる。閾値1,2及び予約IPアドレスのパラメータは、並列分散処理システムの起動時に、利用者により予め設定されて蓄積手段124に蓄積されており、並列プロセス制御手段150は、蓄積手段124から閾値1,2及び予約IPアドレスを読み出す。
また、並列プロセス制御手段150は、後述するボトルネック判定手段122によりボトルネックが発生したと判定されたときに、または、フローテーブル計算手段160により予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したと判定されたときに、プロセスの起動及び転送コネクションの作成を指示するための制御命令、並びにパラメータ(閾値1,2、予約IPアドレス、プロセスの内容等)に加え、送信先端末装置3のIPアドレスのパラメータを生成する。そして、並列プロセス制御手段150は、これらの情報を、予備サーバ割当手段121により割り当てられた予備情報処理端末装置4へ送信する。この場合、並列プロセス制御手段150は、フローテーブル計算手段160により予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したと判定されたときに、さらに、予備情報処理端末装置4において情報処理を所定時間内に行ったか否かを判定するためのアイドル時間のパラメータも予備情報処理端末装置4へ送信する。また、並列プロセス制御手段150は、ボトルネックが発生した情報処理端末装置2または予約IPアドレスをパケットのヘッダに設定した情報処理端末装置2に対する閾値1を有効にするための制御命令を生成し、当該情報処理端末装置2へ送信する。そして、並列プロセス制御手段150は、電文受信手段130から並列化数制御完了情報または未知パケット処理完了情報を入力すると、送信済みの制御命令を解除するためのメッセージ(制御命令解除メッセージ)を、予備情報処理端末装置4及び当該情報処理端末装置2へ送信する。
また、並列プロセス制御手段150は、サーバ特定情報に基づいて、タスク開始により転送コネクション情報を生成し、生成した転送コネクション情報を蓄積手段124に蓄積する。
図14は、転送コネクション情報の構成を示す図である。転送コネクション情報は、例えば、タスク識別子、サーバ識別子、フロー識別子、及びフロー毎に固有のプロセスのポート番号を対応付けた情報により構成される。タスク識別子は、当該並列分散処理システムで固有に付けられたタスクのID(IDentification)である。フロー識別子は、当該並列分散処理システムで固有に付けられたフローのIDであり、フロー識別子の数は、同一タスクに対応して並列化数と同じである。
情報管理手段120は、並列分散処理に必要な情報を管理(蓄積)する手段であり、予備サーバ割当手段(予備割当手段)121、ボトルネック判定手段122、タスク完了判定手段123及び蓄積手段124を備えている。
予備サーバ割当手段121は、後述するボトルネック判定手段122からボトルネック情報を入力し、ボトルネック判定手段122によりボトルネックが発生したと判定されたことを判断する。また、予備サーバ割当手段121は、フローテーブル計算手段160から転送方法問い合わせ情報を入力し、フローテーブル計算手段160により予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したと判定されたことを判断する。ボトルネック情報及び転送方法問い合わせ情報の詳細については後述する。
予備サーバ割当手段121は、ボトルネックまたは転送方法の問い合わせの発生を判断すると、ボトルネック情報または転送方法問い合わせ情報及びタスク情報に基づいて、ボトルネックが発生したタスクまたは転送方法の問い合わせが発生したタスクに使用していない情報処理端末装置2の中から、ラウンドロビンにより、予備情報処理端末装置4として使用する予備サーバを割り当る。そして、予備サーバ割当手段121は、割り当てた予備情報処理端末装置4のサーバ識別子を含む予備サーバ情報を生成し、予備サーバ情報を蓄積手段124に蓄積する。また、予備サーバ割当手段121は、ボトルネック判定手段122からボトルネック情報を入力した場合、生成した予備サーバ情報を並列プロセス計算手段140に出力し、フローテーブル計算手段160から転送方法問い合わせ情報を入力した場合、生成した予備サーバ情報をフローテーブル計算手段160に出力する。
図15は、予備サーバ情報の構成を示す図である。予備サーバ情報は、例えば、予備情報処理端末装置4のサーバ識別子により構成される。予備情報処理端末装置4のサーバ識別子は、例えば予備情報処理端末装置4のIPアドレスである。
ボトルネック判定手段122は、後述する電文受信手段130から処理進行状況情報を入力すると共に、並列プロセス制御手段150から転送コネクション情報を入力し、これらの情報に基づいて、実行中のタスクでボトルネックが発生したか否かを判定する。そして、ボトルネック判定手段122は、ボトルネックが発生したと判定した場合、ボトルネックが発生したタスクのタスク識別子、ボトルネックが発生した情報処理端末装置2のサーバ識別子、及びボトルネックが発生したフローのフロー識別子を含むボトルネック情報を生成し、ボトルネック情報を蓄積手段124に蓄積すると共に、予備サーバ割当手段121及び並列プロセス計算手段140に出力する。尚、処理進行状況情報は、情報処理端末装置2等のサーバから送信される情報である。
図16は、ボトルネック情報の構成を示す図である。ボトルネック情報は、例えば、ボトルネックが発生したタスクのタスク識別子、ボトルネックが発生した情報処理端末装置2のサーバ識別子、ボトルネックが発生したフローのフロー識別子により構成される。
図17は、処理進行状況情報の構成を示す図である。処理進行状況情報は、情報処理端末装置2及び予備情報処理端末装置4等の各サーバにより生成され、当該管理装置6の電文受信手段130が受信する情報である。処理進行状況情報は、例えば、当該サーバにおいて実行しているタスクのタスク識別子、当該サーバのサーバ識別子、後述する受信バッファにおける転送用キューの長さ、最後に所定の情報処理を行ってからの経過時間により構成される。尚、予備情報処理端末装置4により生成される処理進行状況情報には、所定のアイドル時間内にデータに情報処理が施されたか否かを示す情報が含まれる場合もある。詳細については後述する。
例えば、ボトルネック判定手段122は、情報処理端末装置2からの処理進行状況情報に含まれるキューの長さが、予め設定された閾値よりも長くなり、その状態が所定時間経過していることを判断すると、当該情報処理端末装置2においてボトルネックが発生したと判定する。
タスク完了判定手段123は、電文受信手段130からタスク完了情報を入力することで、タスクが完了したか否かを判定する。タスク完了判定手段123は、タスク完了情報を入力した場合、タスク完了情報に含まれるタスク識別子のタスクが完了したと判定し、完了したタスクの転送コネクション情報を蓄積手段124から削除する。一方、タスク完了判定手段123は、タスク完了情報を入力しない場合、タスクが完了していないと判定し、タスク完了情報を入力するまで待つ。
図18は、タスク完了情報の構成を示す図である。タスク完了情報は、送信先端末装置3のサーバにより生成され、当該管理装置6の電文受信手段130が受信する情報である。タスク完了情報は、例えば、全ての処理が完了したタスクのタスク識別子により構成される。
蓄積手段124は、メモリ、ハードディスク等の記憶装置であり、並列プロセス制御手段150により生成された転送コネクション情報、フローテーブル計算手段160により生成されたフローテーブル、利用者により予め設定された閾値1,2及び予約IPアドレス、予備サーバ割当手段121により生成された予備サーバ情報、ボトルネック判定手段122により生成されたボトルネック情報等が蓄積される。
電文受信手段130は、並列分散処理に必要な情報を受信する。具体的には、電文受信手段130は、情報処理端末装置2及び予備情報処理端末装置4等のサーバから処理進行状況情報を受信し、送信先端末装置3からタスク完了情報及び並列化数制御完了情報を受信する。また、電文受信手段130は、スイッチ5から転送方法不明パケットを受信する。そして、電文受信手段130は、処理進行状況情報をボトルネック判定手段122に出力し、タスク完了情報をタスク完了判定手段123に出力し、並列化数制御完了情報を並列プロセス制御手段150に出力し、並列化数制御完了情報及び転送方法不明パケットをフローテーブル計算手段160に出力する。また、電文受信手段130は、予備情報処理端末装置4から受信した処理進行状況情報に含まれる所定のアイドル時間内にデータに情報処理が施されたか否かを示す情報に基づいて、予備情報処理端末装置4において未処理チャンクのパケットに対する情報処理が完了したことを示す未知パケット処理完了情報を生成し、未知パケット処理完了情報を並列プロセス制御手段150及びフローテーブル計算手段160に出力する。詳細については後述する。
フローテーブル計算手段160は、スイッチ5がパケットを転送するための条件毎に、転送方法のアクションが格納されたフローテーブルを計算して作成し、フローテーブルをフローテーブル制御手段170に出力する。具体的には、フローテーブル計算手段160は、電文受信手段130から転送方法不明パケットを入力し、当該パケットが予約IPアドレス宛である場合、転送方法問い合わせ情報を生成して予備サーバ割当手段121に出力する。
図19は、転送方法問い合わせ情報の構成を示す図である。転送方法問い合わせ情報は、例えば、予約IPアドレス宛の未知パケット(転送方法不明パケット)について転送方法の問い合わせが発生したタスクのタスク識別子、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生した情報処理端末装置2(当該予約IPアドレスを設定した情報処理端末装置2)のサーバ識別子、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したフローのフロー識別子から構成される。
また、フローテーブル計算手段160は、予備サーバ割当手段121から予備サーバ情報を入力し、スイッチ5が情報処理端末装置2から受信した未処理チャンクのパケットを予備情報処理端末装置4へ転送するために、予約IPアドレス宛のパケットを受信することを示す条件に対応して、予備情報処理端末装置4のIPアドレス宛へ転送することを示すアクションが格納されたフローテーブルを計算して作成し、フローテーブルをフローテーブル制御手段170に出力する。また、フローテーブル計算手段160は、電文受信手段130から並列化数制御完了情報または未知パケット処理完了情報を入力し、当該並列化数制御完了情報または未知パケット処理完了情報に対応するタスク識別子のタスクについて、スイッチ5が情報処理端末装置2から受信した未処理チャンクのパケットを予備情報処理端末装置4へ転送するための、予約IPアドレス宛のパケットを受信することを示す条件、及び予備情報処理端末装置4のIPアドレス宛へ転送することを示すアクションが格納されたフローテーブルを削除するために、フローテーブル削除メッセージを作成し、フローテーブル削除メッセージをフローテーブル制御手段170に出力する。
フローテーブル制御手段170は、フローテーブル計算手段160からフローテーブルを入力し、フローテーブルをスイッチ5へ送信すると共に、蓄積手段124に蓄積する。また、フローテーブル制御手段170は、フローテーブル計算手段160からフローテーブル削除メッセージを入力し、フローテーブル削除メッセージをスイッチ5へ送信すると共に、当該フローテーブルを蓄積手段124から削除する。
〔サーバの構成〕
次に、図1に示した送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4のサーバの構成について説明する。図3は、送信元端末装置1等のサーバの構成を示すブロック図である。
この送信元端末装置1等のサーバは、命令実行手段210、情報収集手段220、並列処理実行手段230、蓄積手段240及び未処理データ振分け手段250を備えている。命令実行手段210は、管理装置6からタスクを実行するために必要なプロセスの起動及び転送コネクションの作成を指示するための制御命令、パラメータ、閾値1を有効にする制御命令、制御命令を解除するメッセージ等を受信し、受信した制御命令等を並列処理実行手段230及び未処理データ振分け手段250に出力し、制御命令に応じた処理を並列処理実行手段230に実行させ、未処理データ振分け処理を未処理データ振分け手段250に実行させる。
情報収集手段220は、並列処理実行手段230により実行される処理の進行状況を収集し、処理進行状況情報として管理装置6へ送信する。具体的には、情報収集手段220は、キューの長さの情報を並列処理実行手段230から入力すると共に、並列処理実行手段230において最後にチャンクの処理を行ってからの経過時間を測定すること等により、処理進行状況情報を生成する。この処理進行状況情報は、図17に示したとおりであり、サーバが予備情報処理端末装置4の場合、情報収集手段220は、アイドル時間内にデータに情報処理を施したか否かを示す情報を含む処理進行状況情報を生成して管理装置6へ送信する。
また、サーバが送信先端末装置3の場合、情報収集手段220は、予め設定されたタスク完了条件を満たすか否かを判定し、タスク完了条件を満たさないと判定した場合、満たすまで待つ。一方、情報収集手段220は、タスク完了条件を満たすと判定した場合、図18に示したように、タスクが完了したタスク識別子を含むタスク完了情報を生成して管理装置6へ送信する。
タスク完了条件とは、タスクが完了したことを示す条件であり、例えば、情報処理端末装置2から情報処理後の全てのデータを送信先端末装置3が受信したことを示す条件である。
並列処理実行手段230は、命令実行手段210から制御命令等を入力し、制御命令等に従って、タスクを実行するために必要なプロセスを起動し、転送コネクションを作成する。具体的には、並列処理実行手段230は、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4におけるそれぞれの役割に応じたタスクを実行する。
サーバが送信元端末装置1として動作する場合、並列処理実行手段230は、映像データ等のパケットを送信するというタスクを実行するためのプロセスを起動し、転送コネクションを作成する。そして、並列処理実行手段230は、起動したプロセスにより、蓄積手段240に蓄積されているデータを分割してパケット化し、パケットを情報処理端末装置2へ送信する。
サーバが情報処理端末装置2として動作する場合、並列処理実行手段230は、パケットを受信して所定の情報処理を施し、転送するというタスクを実行するためのプロセスを起動し、転送コネクションを作成する。
図4は、サーバが情報処理端末装置2として動作する場合の並列分散処理実行手段230の構成を示すブロック図である。サーバが情報処理端末装置2として動作する場合、並列処理実行手段230は、プロセスを起動することで、受信手段231、バッファ232−1,232−2、映像処理手段233及び送信手段234として機能する。つまり、並列処理実行手段230は、受信手段231、バッファ232−1,232−2、映像処理手段233及び送信手段234を備えている。
受信手段231は、送信元端末装置1からパケットを受信し、バッファ232−1に格納する。映像処理手段233は、バッファ232−1からパケットを読み出してパケットに含まれるデータに所定の情報処理(映像加工処理)を施し、情報処理後のパケットをバッファ232−2に格納する。送信手段234は、バッファ232−2から情報処理後のパケットを読み出して送信先端末装置3へ送信する。このように、パケットは、受信手段231と映像処理手段233との間、及び映像処理手段233と送信手段234との間でやり取りが行われる。そして、送信元端末装置1から受信したパケットは、情報処理が施され、情報処理後のパケットとして送信先端末装置3へ転送される。
尚、並列処理実行手段230の映像処理手段233は、未処理データ振分け手段250から、キューの長さが閾値1,2を超えたことを示す閾値超え情報を入力した場合、バッファ232−1から読み出したパケットに所定の情報処理を施すことなく、パケットのヘッダフィールドにおける送信先IPアドレスに予約IPアドレスを設定し、予約IPアドレスを設定したパケットをバッファ232−2に格納する。予約IPアドレスを設定する処理については後述する。このように、送信元端末装置1から受信したパケットは、キューの長さが閾値1,2を超えた場合、情報処理が施されずに送信先IPアドレスに予約IPアドレスが設定されたパケットとして送信先端末装置3へ転送される。尚、予約IPアドレスは、タスク起動時に、命令実行手段210からパラメータとして入力される。
また、サーバが送信先端末装置3として動作する場合、並列処理実行手段230は、パケット(情報処理後のパケット)を受信し、所定の順番で配列して復元するというタスクを実行するためのプロセスを起動し、転送コネクションを作成する。そして、並列処理実行手段230は、起動したプロセスにより、情報処理端末装置2から受信した情報処理後のパケットを、所定の順番で配列することで、情報処理済みのデータを復元し、蓄積手段240に蓄積する。
また、サーバが予備情報処理端末装置4として動作する場合、並列処理実行手段230は、情報処理端末装置2の場合と同様に、パケットを受信して所定の情報処理を施し、転送するというタスクを実行するためのプロセスを起動し、転送コネクションを作成する。具体的には、並列処理実行手段230は、図4に示したとおり、受信手段231がパケットを受信し、映像処理手段233が、パケットに所定の情報処理を施し、情報処理後のパケットの送信先IPアドレスに送信先端末装置3のIPアドレスを設定し、送信手段234が、パケットを送信先端末装置3へ送信する。このように、受信したパケットは、情報処理が施され、情報処理後のパケットとして送信先端末装置3へ転送される。尚、送信先端末装置3のIPアドレスは、管理装置6のボトルネック判定手段122によりボトルネックが発生したと判定されたときに、または、フローテーブル計算手段160により予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したと判定されたときに、命令実行手段210からパラメータとして入力される。
図3に戻って、蓄積手段240は、並列分散処理の対象となるデータ等を蓄積するメモリ、ハードディスク等の記憶装置である。
未処理データ振分け手段250は、サーバが情報処理端末装置2(または予備情報処理端末装置4)として動作する場合にのみ機能する。未処理データ振分け手段250は、命令実行手段210から閾値1,2を含むパラメータを入力し、通常時に、閾値2による判定を行う。また、未処理データ振分け手段250は、命令実行手段210から閾値1を有効にする制御命令を入力した場合、閾値1による判定を行い、命令実行手段210から制御命令解除メッセージ(閾値1を有効にする制御命令に対する解除メッセージ)を入力した場合、閾値1による判定を止めて、通常時の閾値2による判定を行う。尚、後述するように、閾値1<閾値2である。
具体的には、未処理データ振分け手段250は、図4に示したバッファ232−1に格納されたパケットについて、バッファ232−1のキューの長さが閾値1,2を超えたか否かを判定する。未処理データ振分け手段250は、キューの長さが閾値1,2を超えたと判定した場合、閾値超え情報を並列処理実行手段230の映像処理手段233に出力する。これにより、未処理データ振分け手段250は、並列処理実行手段230の映像処理手段233に対し、閾値1,2を超えた分のパケットである未処理チャンクのパケットには情報処理を施さないように指示することができ、送信先IPアドレスを予約IPアドレスに設定するように指示することができる。
図5は、バッファ232−1のキューの長さ及び閾値1,2を説明する図である。キューの長さは、バッファ232−1に格納されたパケットの量を示す。閾値1,2は、当該並列分散処理システムの利用者により設定され、タスク開始時に管理装置6から送信されたパラメータに含まれており、通常、図5に示すように、閾値1<閾値2である。
閾値1は、管理装置6のボトルネック判定手段122がボトルネックの発生を判定したとき、または、フローテーブル計算手段160が予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したと判定したときに有効となる閾値である。
閾値1が有効になっているとき、閾値1を超える未処理チャンクのパケットは、スイッチ5を介して予備情報処理端末装置4へ転送される。ボトルネックの発生が判定された場合には、管理装置6による並列化数制御によりフローが増加して情報処理端末装置2を追加する制御が行われる。この制御が行われているときは、ボトルネックがさらに悪化する可能性が高い。そこで、情報処理端末装置2は、閾値2よりも小さい値の閾値1を有効にすることで、キューに蓄積されている閾値1を超える未処理チャンクのパケットを、スイッチ5を介して予備情報処理端末装置4へ転送し、当該情報処理端末装置2の代わりに予備情報処理端末装置4に情報処理を行わせる。これにより、情報処理端末装置2におけるボトルネックの悪化を回避することができる。
未処理データ振分け手段250は、管理装置6から受信した閾値1を有効にする制御命令を命令実行手段210から入力した場合に、閾値1による判定を行う。したがって、未処理データ振分け手段250は、閾値1を有効にする制御命令を入力する前は、キューの長さが閾値1を超えたと判定しても、閾値超え情報を並列処理実行手段230の映像処理手段233に出力することはなく、映像処理手段233により予約IPアドレスの設定も行われない。
閾値2は、管理装置6からの制御命令に関わらず、常に有効な閾値である。したがって、未処理データ振分け手段250は、通常時に、キューの長さが閾値2を超えたか否かを判定し、キューの長さが閾値2を超えたと判定した場合、閾値超え情報を並列処理実行手段230の映像処理手段233に出力する。これにより、映像処理手段233により、閾値2を超えた分の未処理チャンクのパケットには情報処理が施されず、送信先IPアドレスが予約IPアドレスに設定される。
このように、サーバが情報処理端末装置2(または予備情報処理端末装置4)として動作する場合、並列処理実行手段230は、キューの長さが閾値1,2を超えたときに、パケットに情報処理を施さず、パケットのヘッダフィールドの値を用いて未処理チャンクのパケットであることを示すための情報を設定して、パケットを転送する。具体的には、並列処理実行手段230の映像処理手段233は、未処理データ振分け手段250から閾値超え情報を入力した場合、バッファ232−1から読み出したパケットに対し、情報処理を施すことなく、パケットのヘッダフィールドにおける送信先IPアドレスに、命令実行手段210から入力したパラメータに含まれる予約IPアドレスを設定する。これにより、スイッチ5は、予約IPアドレスが設定されたパケットを受信し、送信先IPアドレスに予約IPアドレスが設定されていることを判断することができ、フローテーブルに従ってフローを識別することができる。
また、ボトルネックは、管理装置6のボトルネック判定手段122によりバッファ232−1のキューが所定の閾値を超えた長い状態で所定時間が経過した場合に判定されるのに対し、未処理データ振分け手段250による閾値超えは、閾値1,2を用いて、キューの長さのみで判定される。これにより、後者の方が、よりバースト的な負荷に対応し、負荷の変化に迅速に対応することができる。
ここで、予約IPアドレスは、一般にIPネットワークで使用可能なIPアドレスであるが、図1に示した並列分散処理システムのネットワークにおいては、予約して使用するIPアドレスであり、管理装置6の予備サーバ割当手段121において割り当てが禁止されている。尚、予約IPアドレスは、並列分散処理システムの起動時に、利用者により設定され、管理装置6の蓄積手段124に蓄積される。
〔スイッチの構成〕
次に、図1に示したスイッチ5について説明する。図6は、スイッチ5の構成を示すブロック図である。このスイッチ5は、前述のとおり、オープンフローによるパケット転送制御を行うオープンフロー対応スイッチであり、命令実行手段310及びパケット転送手段320を備えている。
命令実行手段310は、管理装置6から、図11に示した条件及びアクション等が格納されたフローテーブルを受信して保持し、保持したフローテーブルに従って、情報処理端末装置2等のサーバから受信したパケットの転送処理をパケット転送手段320に実行させる。また、命令実行手段310は、管理装置6からフローテーブル削除メッセージを受信し、当該フローテーブル削除メッセージが示すフローテーブルを削除する。
パケット転送手段320は、情報処理端末装置2等のサーバからパケットを受信し、命令実行手段310が保持しているフローテーブルに従って、受信したパケットの転送処理を行う。例えば、パケット転送手段320は、受信したパケットが示す条件に対応するフローテーブルを命令実行手段310が保持している場合、その条件に対応するアクションにパケットヘッダの書き換えが記述されているときは、受信したパケットのヘッダを書き換えた後、パケットを転送する。また、パケット転送手段320は、受信したパケットが示す条件に対応するフローテーブルを命令実行手段310が保持していない場合、すなわち、転送方法を特定できない転送方法不明パケットを受信した場合、当該転送方法不明パケットを管理装置6へ送信し、転送方法を管理装置6へ問い合わせる。
また、パケット転送手段320は、並列分散処理に必要な情報を、管理装置6と送信元端末装置1等のサーバとの間で転送する。
〔並列分散処理〕
次に、管理装置6による並列分散処理について説明する。図7は、管理装置6による並列分散処理を示すフローチャートである。この処理は、入力したタスク情報に基づいて、タスクの処理を行う送信元端末装置1等のサーバを決定してプロセスを起動し、データの転送経路が定義された転送コネクション情報を生成して蓄積し、サーバによる処理が終了してタスクが完了したときに、蓄積した転送コネクション情報を削除する一連の処理である。
管理装置6のタスク入力手段110は、利用者により指定されたタスク情報(図12を参照)を入力し、タスク情報を並列プロセス計算手段140に出力する(ステップS701)。
並列プロセス計算手段140は、並列プロセスを計算する(ステップS702)。具体的には、並列プロセス計算手段140は、タスク入力手段110からタスク情報を入力し、タスク情報に基づいて、タスクを実行する送信元端末装置1、情報処理端末装置2及び送信先端末装置3の各サーバを決定すると共に、決定した各サーバで起動するプロセスの内容を決定し、各サーバを特定するためのサーバ識別子及びプロセスの内容を含むサーバ特定情報(図13を参照)を生成し、並列プロセス制御手段150に出力する。
並列プロセス制御手段150は、並列プロセス制御を行う(ステップS703)。具体的には、並列プロセス制御手段150は、並列プロセス計算手段140からサーバ特定情報を入力し、サーバ特定情報に基づいて転送コネクション情報(図14を参照)を生成する。また、並列プロセス制御手段150は、サーバ特定情報に含まれるサーバ識別子が示す送信元端末装置1、情報処理端末装置2及び送信先端末装置3の各サーバに対し、プロセスの起動及び転送コネクションの作成を命令すると共に、パラメータ(閾値1,2、予約IPアドレス等)を送信する。また、並列プロセス制御手段150は、生成した転送コネクション情報を蓄積手段124に蓄積する(ステップS704)。
電文受信手段130は、送信先端末装置3からタスク完了情報を受信してタスク完了判定手段123に出力し、タスク完了判定手段123は、電文受信手段130からタスク完了情報を入力したか否か、すなわちタスクが完了したか否かを判定する(ステップS705)。
タスク完了判定手段123は、ステップS705において、タスクが完了していないと判定した場合(ステップS705:No)、タスクが完了するまで待つ。一方、タスク完了判定手段123は、ステップS705において、タスクが完了していると判定した場合(ステップS705:Yes)、蓄積手段124に蓄積した転送コネクション情報(当該タスクに対応する転送コネクション情報)を削除する(ステップS706)。
このように、管理装置6は、並列分散処理として、入力したタスク情報に基づいて、タスクの処理を行う送信元端末装置1等のサーバを決定してプロセスを起動し、データの転送経路が定義された転送コネクション情報を生成して蓄積し、サーバによる処理が終了してタスクが完了したときに、蓄積した転送コネクション情報を削除する。
〔チャンクの振分け処理〕
次に、チャンクの振分け処理について説明する。チャンクの振分けは、スイッチ5により行われ、情報処理が施されたパケットと情報処理が施されていないパケットとを振り分ける処理をいう。図8は、チャンクの振分け処理を説明する図である。以下、チャンクの振分け処理を、情報処理端末装置2、送信先端末装置3、予備情報処理端末装置4及びスイッチ5により説明する。尚、送信元端末装置1及び管理装置6は、チャンクの振分け処理に直接関係しないから省略してある。
情報処理端末装置2の並列処理実行手段230は、未処理データ振分け手段250によりバッファ232−1のキューの長さが所定の閾値1,2を超えたと判定された場合、受信したパケットに情報処理を施すことなくチャンクを未処理のままで、送信先IPアドレスに予約IPアドレスを設定し、未処理チャンクのパケットとして転送する(ルートB)。一方、並列処理実行手段230は、未処理データ振分け手段250によりバッファ232−1のキューの長さが所定の閾値1,2を超えていないと判定された場合、パケットに情報処理を施し、処理済みチャンクのパケットとして転送する(ルートA)。この場合、送信先IPアドレスには予約IPアドレスが設定されない。
スイッチ5のパケット転送手段320は、情報処理端末装置2からパケットを受信すると、保持しているフローテーブルに基づいて、フローテーブルに格納された送信先IPアドレスについてのマッチングルールの条件を判定する。フローテーブルの条件として、受信したパケットの送信先IPアドレスと予約IPアドレスとのマッチングルールが記述されており、当該条件に対応するアクションとして、予備情報処理端末装置4のIPアドレス宛に転送することが記述されている場合、パケット転送手段320は、受信したパケットが未処理チャンクのときに、その送信先IPアドレスには予約IPアドレスが設定されているから、フローテーブルの条件を満たすと判定する。そして、パケット転送手段320は、アクションの記述に従って、受信したパケットの送信先IPアドレスとして設定されている予約IPアドレスを、予備情報処理端末装置4のIPアドレスに書き換え、予備情報処理端末装置4宛にパケットを転送する(ルートB)。
尚、スイッチ5は、条件として、受信したパケットの送信先IPアドレスと予約IPアドレスとのマッチングルールが記述されており、当該条件に対応するアクションとして、予備情報処理端末装置4のIPアドレス宛に転送することが記述されているフローテーブルを、予め管理装置6から受信し、保持しているものとする。スイッチ5がこのフローテーブルを保持するのは、管理装置6が、情報処理端末装置2にボトルネックが発生したことを判定したとき、または、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したことを判定したときである。
一方、スイッチ5のパケット転送手段320は、受信したパケットが未処理チャンクであり、前述のフローテーブル(予約IPアドレスの条件及び予備情報処理端末装置4に転送するアクションが記述されたフローテーブル)を保持していない場合、このフローテーブルの条件を満たさないと判定する。そして、パケット転送手段320は、オープンフローの仕様に従い、受信したパケットを転送方法不明パケットとして管理装置6へ転送することで、転送方法の問い合わせを行い、管理装置6から前述のフローテーブルを受信して保持する。そして、パケット転送手段320は、受信したパケットについて、前述のフローテーブルの条件を満たすと判定し、アクションの記述に従って、受信したパケットの送信先IPアドレスとして設定されている予約IPアドレスを、予備情報処理端末装置4のIPアドレスに書き換え、予備情報処理端末装置4宛にパケットを転送する(ルートB)。転送方法不明パケットを受信して転送方法の問い合わせを受け、フローテーブルをスイッチ5へ送信する管理装置6の処理については後述する。
予備情報処理端末装置4の並列処理実行手段230は、管理装置6から受信した制御命令等に従って、タスクを実行するために必要なプロセスを起動し、転送コネクションを作成済みであるとする。また、並列処理実行手段230は、管理装置6から受信した送信先端末装置3のIPアドレスを保持しているものとする。
予備情報処理端末装置4の並列処理実行手段230は、スイッチ5から未処理チャンクのパケットを受信すると、所定の情報処理を施し、受信したパケットの送信先IPアドレスとして設定されている予約IPアドレスを、送信先端末装置3のIPアドレスに書き換え、送信先端末装置3のIPアドレス宛に処理済みチャンクのパケットを転送する(ルートB)。ここで、並列処理実行手段230は、宛先ポート番号として、情報処理端末装置2がパケットを転送したときに設定した宛先ポート番号(予備情報処理端末装置4が受信したパケットの宛先ポート番号)と同一の番号を設定する。
送信先端末装置3は、スイッチ5または予備情報処理端末装置4から処理済みチャンクのパケットを受信し、パケットの転送ルートであるルートA,Bに関わらず、ルートAにおいて情報処理端末装置2により情報処理が施された処理済みチャンクのパケットとして扱い、データ転送の要求前に予め確保した領域に格納する。
このように、情報処理端末装置2として動作するサーバに、予備情報処理端末装置4として動作するサーバのIPアドレスを事前に付与する必要がない。これにより、管理装置6は、負荷状況に応じて必要なときに予備情報処理端末装置4の割り当てを行うことができる。また、タスクにボトルネックが生じないときは、予備情報処理端末装置4の割り当てが行われることなくタスクが実行されるから、使用するリソースを削減することができる。また、情報処理端末装置2の構成及びデータ転送のパケット構造、並びにプル型転送の方式を変更することなく、情報処理端末装置2に未処理データ振分け手段250を加えるだけで、スイッチ5は、未処理チャンクのパケットを予備情報処理端末装置4に振り分けることができる。
〔ボトルネック回避のための並列化数制御時の未処理チャンク振分け処理〕
次に、管理装置6によるボトルネック回避のための並列化数制御時の未処理チャンク振分け処理(ボトルネック判定時の処理)について説明する。図9は、管理装置6によるボトルネック判定時の処理を示すフローチャートである。この処理は、ボトルネック判定時に、並列化数制御によるフローの増加に伴い追加する情報処理端末装置2を決定して処理を行わせ、また、未処理チャンクのパケットを転送するための予備情報処理端末装置4を割り当てて処理を行わせると共にフローテーブルを作成し、情報処理端末装置2に対して閾値1(通常時の閾値2よりも小さい閾値1)による判定を行わせることでボトルネックの悪化を回避し、さらに、並列化数制御が完了したときに、予備情報処理端末装置4の処理を停止すると共に情報処理端末装置2に対して閾値2による判定に戻す一連の処理である。これにより、並列化数制御によりフローが増加して情報処理端末装置2を追加する制御が行われているときに、ボトルネックが発生した情報処理端末装置2のキューに蓄積されている閾値1を超える未処理チャンクのパケットを、新たなフローテーブルに従うスイッチ5を介して予備情報処理端末装置4へ転送し、当該情報処理端末装置2の代わりに予備情報処理端末装置4に情報処理を行わせることができる。したがって、ボトルネックの悪化を回避することができる。
管理装置6の電文受信手段130は、情報処理端末装置2等のサーバから処理進行状況情報を受信する(ステップS901)。そして、電文受信手段130は、受信した処理進行状況情報をボトルネック判定手段122に出力する。
ボトルネック判定手段122は、電文受信手段130から処理進行状況情報を入力すると共に、並列プロセス制御手段150から転送コネクション情報を入力し、処理進行状況情報及び転送コネクション情報に基づいて、処理進行状況情報が示すタスクにおいて、ボトルネックが発生したか否かを判定する(ステップS902)。具体的には、ボトルネック判定手段122は、処理進行状況情報に含まれるタスク識別子及びサーバ識別子からタスク及び情報処理端末装置2をそれぞれ特定し、これらに対応するフローを、転送コネクション情報に含まれるタスク識別子、サーバ識別子及びフロー識別子から特定する。そして、ボトルネック判定手段122は、処理進行状況情報に含まれるキューの長さが、予め設定された閾値よりも長くなり、その状態が所定時間経過していることを判断すると、特定したタスク、フロー及び情報処理端末装置2においてボトルネックが発生したと判定する。尚、ボトルネック判定手段122は、転送コネクション情報を、並列プロセス制御手段150から入力する代わりに蓄積手段124から読み出すようにしてもよい。
ボトルネック判定手段122は、ステップS902において、ボトルネックが発生したことを判定した場合(ステップS902:Yes)、ボトルネックが発生したタスクのタスク識別子、情報処理端末装置2のサーバ識別子及びフローのフロー識別子を含むボトルネック情報を生成し、ボトルネック情報を並列プロセス計算手段140及び予備サーバ割当手段121に出力すると共に、蓄積手段124に蓄積する。
一方、ボトルネック判定手段122は、ステップS902において、ボトルネックが発生していないことを判定した場合(ステップS902:No)、処理を終了する。
並列プロセス計算手段140は、ステップS902から移行して、ボトルネック判定手段122からボトルネック情報を入力し、ボトルネック情報に基づいて新たな並列化数(例えば、以前の並列化数に1を加算した数)を計算する。並列プロセス計算手段140及び並列プロセス制御手段150は、新たな並列化数による並列化数制御を行う(ステップS903)。
具体的には、並列プロセス計算手段140は、新たな並列化数にするために追加する情報処理端末装置2を特定してサーバ特定情報を生成し、新たなサーバ特定情報を並列プロセス制御手段150に出力する。そして、並列プロセス制御手段150は、並列プロセス計算手段140から新たなサーバ特定情報を入力し、サーバ特定情報に基づいて、追加する情報処理端末装置2のフローを含む転送コネクション情報を生成し、転送コネクション情報を蓄積手段124に蓄積する。また、並列プロセス制御手段150は、新たなサーバ特定情報に基づいて、プロセスの起動及び転送コネクションの作成を、追加する情報処理端末装置2等のサーバへ命令し、予め利用者により設定された閾値1,2及び予約IPアドレス等のパラメータも送信する。
予備サーバ割当手段121は、ボトルネック判定手段122からボトルネック情報を入力すると、ボトルネックが発生したことを判断し、ボトルネック情報に含まれるタスク識別子が示すタスクに使用していない情報処理端末装置2の中から、ラウンドロビンにより、同タスクで予備情報処理端末装置4として使用する予備サーバを割り当て、割り当てた予備情報処理端末装置4のIPアドレスであるサーバ識別子を含む予備サーバ情報を生成し、並列プロセス計算手段140及びフローテーブル計算手段160に出力すると共に、予備サーバ情報を蓄積手段124に蓄積する(ステップS904)。
フローテーブル計算手段160は、予備サーバ割当手段121から予備サーバ情報を入力し、各スイッチ5がパケットを転送するための条件及びアクションとして、予約IPアドレス宛のパケットを、予備サーバ情報が示すIPアドレスの予備情報処理端末装置4へ転送するためのフローテーブルを計算して作成し、フローテーブルをフローテーブル制御手段170に出力する。フローテーブル制御手段170は、フローテーブル計算手段160からフローテーブルを入力し、フローテーブルをスイッチ5へ送信すると共に、蓄積手段124に蓄積する(ステップS905)。これにより、スイッチ5は、このフローテーブルを保持する。
並列プロセス計算手段140は、予備サーバ割当手段121から予備サーバ情報を入力し、蓄積手段124に蓄積された転送コネクション情報等に基づいて、同タスクの処理内容、送信先端末装置3のIPアドレス、予備情報処理端末装置4のIPアドレス等を特定し、これらの情報を並列プロセス制御手段150に出力する。
並列プロセス制御手段150は、並列プロセス計算手段140から同タスクの処理内容及び送信先端末装置3のIPアドレス等を入力し、これらの情報を予備情報処理端末装置4へ送信する。すなわち、並列プロセス制御手段150は、プロセスの起動及び転送コネクションを作成するための制御命令、並びに送信先端末装置3のIPアドレス等のパラメータを予備情報処理端末装置4へ送信する。また、並列プロセス制御手段150は、これらの情報を蓄積手段124に蓄積する。また、並列プロセス制御手段150は、ボトルネックが発生した情報処理端末装置2に対して、閾値1を有効にするための制御命令を送信すると共に、この情報を蓄積手段124に蓄積する(ステップS906)。これにより、予備情報処理端末装置4が稼動し、ボトルネックが発生した情報処理端末装置2における閾値1が有効になる。
電文受信手段130は、送信先端末装置3から並列化数制御が完了したことを示すメッセージ(並列化数制御完了情報:ステップS903における並列化数制御による制御命令に従ったプロセスの起動が完了したことを示すメッセージ)を受信したか否かを判定する(ステップS907)。電文受信手段130は、ステップS907において、並列化数制御完了情報を受信していないことを判定した場合(ステップS907:No)、受信するまで待つ。
一方、電文受信手段130は、ステップS907において、並列化数制御完了情報を受信したことを判定した場合(ステップS907:Yes)、並列化数制御完了情報を並列プロセス制御手段150及びフローテーブル計算手段160に出力する。
並列プロセス制御手段150は、電文受信手段130から並列化数制御完了情報を入力すると、ステップS906にて送信した制御命令を解除するためのメッセージを、予備情報処理端末装置4及びボトルネックが発生した情報処理端末装置2へ送信すると共に、この情報を蓄積手段124に蓄積する(ステップS908)。すなわち、並列プロセス制御手段150は、プロセスの起動及び転送コネクションを作成する制御命令を解消するための制御命令解除メッセージを予備情報処理端末装置4へ送信すると共に、閾値1を有効にする制御命令を解消するための制御命令解除メッセージを、ボトルネックが発生した情報処理端末装置2へ送信する。これにより、予備情報処理端末装置4の稼動が停止し、ボトルネックが発生した情報処理端末装置2における閾値1が無効になり、元の閾値2による判定に戻る。
フローテーブル計算手段160は、電文受信手段130から並列化数制御完了情報を入力すると、ステップS905にて登録したフローテーブルを削除するメッセージをフローテーブル制御手段170に出力する。フローテーブル制御手段170は、フローテーブル計算手段160からフローテーブル削除メッセージを入力し、当該メッセージをスイッチ5へ送信すると共に、蓄積手段124に蓄積する(ステップS909)。そして、ステップS901へ移行する。
このように、管理装置6は、ボトルネック判定時に、並列化数制御によるフローの増加に伴い追加する情報処理端末装置2を決定して処理を行わせ、また、未処理チャンクのパケットを転送するための予備情報処理端末装置4を割り当てて処理を行わせると共にフローテーブルを作成し、情報処理端末装置2に対して閾値1(通常時の閾値2よりも小さい閾値1)による判定を行わせる。これにより、ボトルネックが発生した情報処理端末装置2は、閾値1を超える未処理チャンクのパケットを、新たなフローテーブルに従うスイッチ5を介して予備情報処理端末装置4へ転送し、当該情報処理端末装置2の代わりに予備情報処理端末装置4に情報処理を行わせることができる。したがって、並列化数制御により情報処理端末装置2を追加しているときにボトルネックは悪化するが、未処理チャンクのパケットが予備情報処理端末装置4へ転送されるから、ボトルネックの悪化を回避することができる。つまり、送信先端末装置3へパケットの到着が遅れる高負荷状態を回避し、ボトルネックが発生した情報処理端末装置2のキューが長くなるのを抑制することができる。そして、管理装置6は、並列化数制御が完了したとき(新たな並列化数による並列化数制御のプロセスの起動が完了したとき)に、このときまでには未処理チャンクの転送によってボトルネックが解消されているものとみなし、予備情報処理端末装置4の処理を停止すると共に情報処理端末装置2に対して閾値2による判定に戻す。これにより、情報処理端末装置2を追加した状態で、通常の並列化数制御によるパケット転送が行われる。
〔予約IPアドレス宛の未知パケットの処理〕
次に、管理装置6による予約IPアドレス宛の未知パケットの処理について説明する。図10は、管理装置6による予約IPアドレス宛の未知パケットの処理を示すフローチャートである。この処理は、スイッチ5から受信した転送方法不明パケットが予約IPアドレス宛の未知パケットであると判定したときに、未処理チャンクのパケットを転送するための予備情報処理端末装置4を割り当てて当該予備情報処理端末装置4に処理を行わせると共にフローテーブルを作成し、情報処理端末装置2に対して閾値1(通常時の閾値2よりも小さい閾値1)による判定を行わせ、さらに、予備情報処理端末装置4において所定アイドル時間内にデータが処理されていないと判定したときに、予備情報処理端末装置4の処理を停止すると共に情報処理端末装置2に対して閾値2による判定に戻す一連の処理である。これにより、情報処理端末装置2のキューの長さが閾値2を超えた場合に、管理装置6は、転送方法不明パケットが予約IPアドレス宛の未知パケットであると判定し、情報処理端末装置2のキューに蓄積されている閾値1を超える未処理チャンクのパケットを、新たなフローテーブルに従うスイッチ5を介して予備情報処理端末装置4へ転送し、当該情報処理端末装置2の代わりに予備情報処理端末装置4に情報処理を行わせることができる。したがって、閾値2を超えるパケットが蓄積された情報処理端末装置2の負荷を低減することができる。
管理装置6の電文受信手段130は、スイッチ5から転送方法不明パケットを受信し、転送方法不明パケットをフローテーブル計算手段160に出力する(ステップS1001)。前述のとおり、スイッチ5は、受信したパケットについて、当該パケットが示す条件に対応するフローテーブルを保持していない場合、すなわち、転送方法を特定できないパケットを受信した場合、転送方法不明パケットとして管理装置6へ送信し、その転送方法を管理装置6へ問い合わせる。
フローテーブル計算手段160は、電文受信手段130から転送方法不明パケットを入力すると、蓄積手段124に蓄積されている予約IPアドレスの情報に基づいて、入力した転送方法不明パケットが予約IPアドレス宛の未知パケットであるか否かを判定する(ステップS1002)。
フローテーブル計算手段160は、ステップS1002において、予約IPアドレス宛の未知パケットであると判定した場合(ステップS1002:Yes)、当該未知パケットについて転送方法の問い合わせが発生したフローのフロー識別子を蓄積手段124に蓄積して、ステップS1003へ移行する。また、フローテーブル計算手段160は、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したことを示す転送方法問い合わせ情報を生成して予備サーバ割当手段121に出力する。尚、転送方法不明パケットが予約IPアドレス宛の未知パケットである場合、当該転送方法不明パケットは、情報処理端末装置2においてキューの長さが閾値2を超えた分のパケットであって、予約IPアドレスが設定された未処理チャンクのパケットである。
一方、フローテーブル計算手段160は、ステップS1002において、予約IPアドレス宛の未知パケットでないと判定した場合(ステップS1002:No)、処理を終了する。
予備サーバ割当手段121は、フローテーブル計算手段160から転送方法問い合わせ情報を入力すると、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したことを判断し、蓄積手段124に蓄積された転送コネクション情報及び未知パケットについて転送方法の問い合わせが発生したフローのフロー識別子に基づいて、未知パケットの問い合わせが発生したタスクを特定し、そのタスクに使用していない情報処理端末装置2の中から、ラウンドロビンにより、同タスクで予備情報処理端末装置4として使用する予備サーバを割り当て、割り当てた予備情報処理端末装置4のIPアドレスであるサーバ識別子を含む予備サーバ情報を生成し、予備サーバ情報を並列プロセス計算手段140及びフローテーブル計算手段160に出力すると共に、蓄積手段124に蓄積する(ステップS1003)。
フローテーブル計算手段160は、予備サーバ割当手段121から予備サーバ情報を入力し、図9に示したステップS905と同様の処理を行う。すなわち、フローテーブル計算手段160は、各スイッチ5がパケットを転送するための条件及びアクションとして、予約IPアドレス宛のパケットを、予備サーバ割当手段121により割り当てられた予備情報処理端末装置4へ転送するためのフローテーブルを計算して作成し、フローテーブル制御手段170は、フローテーブルをスイッチ5へ送信すると共に、蓄積手段124に蓄積する(ステップS1004)。これにより、スイッチ5は、このフローテーブルを保持する。
並列プロセス計算手段140は、予備サーバ割当手段121から予備サーバ情報を入力し、蓄積手段124に蓄積された転送コネクション情報等に基づいて、同タスクの処理内容、送信先端末装置3のIPアドレス、予備情報処理端末装置4のIPアドレス等を特定し、これらの情報及び利用者により予め設定されたアイドル時間を並列プロセス制御手段150に出力する。
並列プロセス制御手段150は、並列プロセス計算手段140から同タスクの処理内容及び送信先端末装置3のIPアドレス等を入力し、これらの情報を予備情報処理端末装置4へ送信する。すなわち、並列プロセス制御手段150は、プロセスの起動及び転送コネクションを作成するための制御命令、並びに送信先端末装置3のIPアドレス及びアイドル時間等のパラメータを予備情報処理端末装置4へ送信する。また、並列プロセス制御手段150は、これらの情報を蓄積手段124に蓄積する。また、並列プロセス制御手段150は、未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2に対して、閾値1を有効にするための制御命令を送信すると共に、この情報を蓄積手段124に蓄積する(ステップS1005)。これにより、予備情報処理端末装置4が稼動し、未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2における閾値1が有効になる。
電文受信手段130は、予備情報処理端末装置4から処理進行状況情報を受信し、処理信号状況情報に含まれる、アイドル時間内にデータに情報処理が施されたか否かを示す情報に基づいて、所定アイドル時間内に予備情報処理端末装置4においてデータが処理されたか否かを判定する(ステップS1006)。この場合、予備情報処理端末装置4は、ステップS1005において、制御命令と共にアイドル時間を含むパラメータを受信し、制御命令に従ったプロセスを実行した後、パケットに対する情報処理が終わってからアイドル時間内に次のパケットに対する情報処理を行ったか否かを示す情報(アイドル時間内にデータに情報処理が施されたか否かを示す情報)を含む処理進行状況情報を生成し、処理進行状況情報を管理装置6へ送信する。
電文受信手段130は、ステップS1006において、所定アイドル時間内にデータが処理されたことを判定した場合(ステップS1006:Yes)、所定アイドル時間内にデータが処理されていないと判定するまで待つ。
一方、電文受信手段130は、ステップS1006において、所定アイドル時間内にデータが処理されていないと判定した場合(ステップS1006:No)、予備情報処理端末装置4において未処理チャンクのパケットに対する情報処理が完了したことを示す未知パケット処理完了情報を生成し、未知パケット処理完了情報を並列プロセス制御手段150及びフローテーブル計算手段160に出力する。
並列プロセス制御手段150は、電文受信手段130から未知パケット処理完了情報を入力すると、ステップS1005にて送信した制御命令を解消するための解消命令を、予備情報処理端末装置4及び未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2へ送信すると共に、この情報を蓄積手段124に蓄積する(ステップS1007)。すなわち、並列プロセス制御手段150は、プロセスの起動及び転送コネクションを作成する制御命令を解消するための制御命令解除メッセージを予備情報処理端末装置4へ送信すると共に、閾値1を有効にする制御命令を解消するための制御命令解除メッセージを、未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2へ送信する。これにより、予備情報処理端末装置4の稼動が停止し、当該情報処理端末装置2における閾値1が無効になり、元の閾値2による判定に戻る。
フローテーブル計算手段160は、電文受信手段130から未知パケット処理完了情報を入力すると、ステップS1004にて登録したフローテーブルを削除するメッセージをフローテーブル制御手段170に出力する。フローテーブル制御手段170は、フローテーブル計算手段160からフローテーブル削除メッセージを入力すると、当該メッセージをスイッチ5へ送信すると共に、蓄積手段124に蓄積する(ステップS1008)。そして、ステップS1001へ移行する。
このように、管理装置6は、スイッチ5から受信した転送方法不明パケットが予約IPアドレス宛の未知パケットであると判定したときに、未処理チャンクのパケットを転送するための予備情報処理端末装置4を割り当てて処理を行わせると共にフローテーブルを作成し、未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2に対して閾値1(通常時の閾値2よりも小さい閾値1)による判定を行わせる。これにより、その情報処理端末装置2は、閾値1を超える未処理チャンクのパケットを、新たなフローテーブルに従うスイッチ5を介して予備情報処理端末装置4へ転送し、当該情報処理端末装置2の代わりに予備情報処理端末装置4に情報処理を行わせることができる。したがって、未処理チャンクのパケットが予備情報処理端末装置4へ転送されるから、閾値2を超えるキューの長さを閾値1以下に抑えることができ、閾値2を超えるパケットが蓄積された情報処理端末装置2の負荷を低減することができる。つまり、送信先端末装置3へパケットの到着が遅れる高負荷状態を回避し、情報処理端末装置2のキューが長くなるのを抑制することができる。そして、管理装置6は、予備情報処理端末装置4による情報処理が所定のアイドル時間内で行われていないことを判定すると、このときまでには未処理チャンクの転送によって閾値2を超えるキューの長さが短くなり閾値1以下に抑えられているとみなし、予備情報処理端末装置4の処理を停止すると共に情報処理端末装置2に対して閾値2による判定に戻す。これにより、通常のパケット転送状態に戻すことができる。
〔ボトルネック判定時のシーケンス〕
次に、ボトルネック判定時のシーケンスについて説明する。図20は、ボトルネック判定時のシーケンスを示す図である。図7に示した並列分散処理により、タスクを実行する送信元端末装置1、情報処理端末装置2及び送信先端末装置3は、所定のプロセスを起動しており、スイッチ5は、処理済みチャンクのパケットを送信先端末装置3へ送信する等の転送制御を行っているものとする。
情報処理端末装置2は、送信元端末装置1からパケットを受信し、キューの長さが閾値2を超えていないと判定してチャンク(チャンクを構成する複数のパケット毎)に情報処理を施し、処理済みチャンクのパケットとしてスイッチ5へ転送し、スイッチ5は、処理済みチャンクのパケットを、フローテーブルに従って送信先端末装置3へ転送する(ステップS2001)。これらのシーケンスは、図8に示したルートAの経路に対応する。また、管理装置6は、情報処理端末装置2から受信した処理進行状況情報に基づいて、ボトルネックが発生していないと判定する(ステップS2002)。
いま、情報処理端末装置2のCPU負荷等が原因となって、情報処理端末装置2のキューに一定量のパケットが蓄積されたとする。管理装置6は、図9のステップS901〜ステップS903のように、情報処理端末装置2から受信した処理進行状況情報に含まれるキューの長さが所定の閾値を超えていると判断してボトルネックの発生を判定し、フローを増加して情報処理端末装置2を追加する並列化数制御を行い、制御命令等を追加する情報処理端末装置2等へ送信する(ステップS2003)。これにより、追加された情報処理端末装置2は、制御命令に従って所定のプロセスを起動する。
そして、管理装置6は、図9のステップS904〜ステップS906のように、予備情報処理端末装置4を割り当てると共に、予約IPアドレス宛のパケットを予備情報処理端末装置4へ転送するためのフローテーブルを作成し、フローテーブルをスイッチ5へ送信し、制御命令及び送信先端末装置3のIPアドレス等のパラメータを予備情報処理端末装置4へ送信すると共に、閾値1を有効にするための制御命令をボトルネックが発生した情報処理端末装置2へ送信する(ステップS2004)。これにより、予備情報処理端末装置4は、制御命令に従って所定のプロセスを起動する。
ボトルネックが発生した情報処理端末装置2は、ステップS2004において閾値1を有効にするための制御命令を受信すると、閾値2による判定から閾値1による判定に変更し、閾値1を超えるパケットに対し、情報処理を施さないで送信先IPアドレスに予約IPアドレスを設定し、未処理チャンクのパケットとして転送する(ステップS2005)。これにより、キューが短くなる(キューのチャンク数が減少する)。
スイッチ5は、ステップS2004において、予約IPアドレス宛のパケットを予備情報処理端末装置4へ転送するためのフローテーブルを受信すると、当該フローテーブルを保持する。そして、スイッチ5は、情報処理端末装置2から未処理チャンクのパケットを受信すると、未処理チャンクのパケットには予約IPアドレスが設定されているから、フローテーブルに従って、未処理チャンクのパケットを予備情報処理端末装置4へ転送する(ステップS2006)。
予備情報処理端末装置4は、ステップS2004において、制御命令及び送信先端末装置3のIPアドレス等のパラメータを受信し、制御命令に従ってプロセスを起動する。そして、予備情報処理端末装置4は、スイッチ5から未処理チャンクのパケットを受信すると、情報処理を施して処理済みチャンクのパケットとして送信先端末装置3へ送信する(ステップS2007)。ステップS2005〜ステップS2007に示すこれらのシーケンスは、図8に示したルートBの経路に対応する。
これにより、ステップS2005〜ステップS2007の処理が繰り返されることで、ボトルネックが発生した情報処理端末装置2のキューが短くなってボトルネックが解消する。
送信先端末装置3は、ステップS2004において受信した制御命令に従ってプロセスの起動が完了すると、並列化数制御完了情報を管理装置6へ送信する(ステップS2008)。
管理装置6は、図9のステップS907〜ステップS909のように、並列化数制御完了情報を受信すると、並列化数制御が完了したものと判断し、ステップS2004にて送信した制御命令を解除するためのメッセージを、予備情報処理端末装置4及びボトルネックが発生した情報処理端末装置2へ送信すると共に、ステップS2004にて登録した、予約IPアドレスについてのフローテーブルを削除するメッセージをスイッチ5へ送信する(ステップS2009)。これにより、予備情報処理端末装置4にて起動しているプロセスの稼動が停止し、ボトルネックが発生した情報処理端末装置2における閾値1が無効になり、元の閾値2による判定に戻る。また、スイッチ5が保持していた予約IPアドレスについてのフローテーブルが削除される。
このように、ボトルネック判定時に、送信先端末装置3へパケットの到着が遅れる高負荷状態である情報処理端末装置2のボトルネックを回避し、情報処理端末装置2のキューが長くなるのを抑制することができる。
〔予約IPアドレス宛の未知パケットに関する転送方法問い合わせ発生時のシーケンス〕
次に、予約IPアドレス宛の未知パケットに関する転送方法問い合わせ発生時のシーケンスについて説明する。このシーケンスは、情報処理端末装置2においてキューの長さが閾値2を超えたときのシーケンスでもある。図21は、予約IPアドレス宛の未知パケットに関する転送方法問い合わせ発生時のシーケンスを示す図である。図7に示した並列分散処理により、タスクを実行する送信元端末装置1等は、所定のプロセスを起動しており、スイッチ5は、所定の転送制御を行っているものとする。
情報処理端末装置2は、送信元端末装置1からパケットを受信し、キューの長さが閾値2を超えていないと判定してチャンクに情報処理を施し、処理済みチャンクのパケットとしてスイッチ5へ転送し、スイッチ5は、処理済みチャンクのパケットを、フローテーブルに従って送信先端末装置3へ転送する(ステップS2101)。これらのシーケンスは、図8に示したルートAの経路に対応する。
いま、情報処理端末装置2のCPU負荷等が原因となって、情報処理端末装置2のキューが長くなった場合を想定する。情報処理端末装置2は、キューの長さが閾値2を超えていると判定すると、チャンクに情報処理を施すことなく送信先IPアドレスに予約IPアドレスを設定し、未処理チャンクのパケットとしてスイッチ5へ転送し、スイッチ5は、予約IPアドレスに対応するフローテーブルを保持していないと判断して転送方法不明パケットを管理装置6へ送信し、管理装置6は、図10のステップS1001〜ステップS1005のように、予備情報処理端末装置4を割り当てると共に、予約IPアドレス宛のパケットを予備情報処理端末装置4へ転送するためのフローテーブルを作成し、フローテーブルをスイッチ5へ送信し、制御命令並びに送信先端末装置3のIPアドレス及びアイドル時間等のパラメータを予備情報処理端末装置4へ送信すると共に、閾値1を有効にするための制御命令を未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2へ送信する(ステップS2102)。予備情報処理端末装置4は、制御命令に従って所定のプロセスを起動する。
そして、スイッチ5は、受信したフローテーブルを保持し、当該フローテーブルに従って、情報処理端末装置2から受信した未処理チャンクのパケットを予備情報処理端末装置4へ転送する(ステップS2103)。予備情報処理端末装置4は、ステップS2102において制御命令等を受信し、制御命令に従ってプロセスを起動し、スイッチ5から未処理チャンクのパケットを受信すると、情報処理を施して処理済みチャンクのパケットとして送信先端末装置3へ送信する(ステップS2104)。
情報処理端末装置2は、ステップS2102において閾値1を有効にするための制御命令を受信すると、閾値2による判定から閾値1による判定に変更し、閾値1を超えるパケットに対し、情報処理を施さないで送信先IPアドレスに予約IPアドレスを設定し、未処理チャンクのパケットとして送信する(ステップS2105)。これにより、キューが短くなる(キューのチャンク数が減少する)。
スイッチ5は、情報処理端末装置2から未処理チャンクのパケットを受信すると、未処理チャンクのパケットには予約IPアドレスが設定されているから、フローテーブルに従って、未処理チャンクのパケットを予備情報処理端末装置4へ転送する(ステップS2106)。
予備情報処理端末装置4は、スイッチ5から未処理チャンクのパケットを受信すると、情報処理を施して処理済みチャンクのパケットとして送信先端末装置3へ送信する(ステップS2107)。ステップS2105〜ステップS2107に示すこれらのシーケンスは、図8に示したルートBの経路に対応する。
これにより、ステップS2105〜ステップS2107の処理が繰り返されることで、未知パケットについて転送方法の問い合わせが発生した(パケットに予約IPアドレスを設定した)情報処理端末装置2のキューが短くなる。
予備情報処理端末装置4は、ステップS2102において制御命令に従ったプロセスを実行した後、チャンクに対する情報処理が終わってから、アイドル時間内に次のチャンクに対する情報処理を行ったか否かを示す情報(アイドル時間内にデータに情報処理が施されたか否かを示す情報)を含む処理進行状況情報を生成し、処理進行状況情報を管理装置6へ送信する。
ステップS2105〜ステップS2107の処理が繰り返されているときは、予備情報処理端末装置4によりチャンクに対する情報処理が順次行われるから、予備情報処理端末装置4は、アイドル時間内に次のチャンクに対する情報処理を行ったことを示す情報(アイドル時間内にデータに情報処理が施されたことを示す情報)を含む処理進行状況情報を管理装置6へ送信し、管理装置6は、アイドル時間内にデータが情報処理されたことを判定する(ステップS2108)。
そして、情報処理端末装置2においてキューの長さが閾値1を超えなくなると、情報処理端末装置2により情報処理が行われるから、ステップS2105〜ステップS2107の処理は行われなくなり、処理済みチャンクのパケットは、情報処理端末装置2からスイッチ5を介して送信先端末装置3へ送信される。そうすると、未処理チャンクのパケットは、スイッチ5を介して予備情報処理端末装置4へ転送されなくなる。予備情報処理端末装置4は、アイドル時間内に次のチャンクに対する情報処理を行っていないことを示す情報(アイドル時間内にデータに情報処理が施されなかったことを示す情報)を含む処理進行状況情報を管理装置6へ送信し、管理装置6は、図10のステップS1006のように、アイドル時間内にデータが情報処理されなかったことを判定する(ステップS2109)。
管理装置6は、図10のステップS1007及びステップS1008のように、情報処理端末装置2において閾値2を超えるキューの長さが短くなり閾値1以下に抑えられていると判断し、ステップS2102にて送信した制御命令を解消するための解消命令を、予備情報処理端末装置4及び情報処理端末装置2へ送信すると共に、ステップS2102にて登録した、予約IPアドレスについてのフローテーブルを削除するメッセージをスイッチ5へ送信する(ステップS2110)。これにより、予備情報処理端末装置4にて起動しているプロセスの稼動が停止し、情報処理端末装置2における閾値1が無効になり、元の閾値2による判定に戻る。また、スイッチ5が保持していた予約IPアドレスについてのフローテーブルが削除される。
このように、情報処理端末装置2においてキューの長さが閾値2を超えたときに、送信先端末装置3へパケットの到着が遅れる高負荷状態である情報処理端末装置2の状態を回避し、情報処理端末装置2のキューが長くなるのを抑制することができる。
以上のように、本発明の実施形態による管理装置6によれば、並列分散処理システムが並列分散処理を行う際に、受信側の要求に同期した転送とバッファオーバーフローの防止というプル型のファイル転送の利点を生かしたまま、情報処理端末装置2のCPU負荷変動を監視し、情報処理端末装置2の並列化数等を変更すると共に、予備情報処理端末装置4を使用して情報処理端末装置2の代わりに予備情報処理端末装置4で情報処理を行わせることによって、高負荷状態で発生する情報処理端末装置2におけるキューが一時的に長くなるのを抑制することができる。これにより、全てのフローにおける情報処理端末装置2のキューを短い状態で維持して、ストリーミングデータに対しても、処理が遅れることがない。
さらに、本発明の実施形態による管理装置6によれば、ボトルネックの発生を判定すると、スイッチ5に対して予備情報処理端末装置4へ未処理チャンクのパケットを転送するように指示するようにした。これにより、情報処理端末装置2に予備となる予備情報処理端末装置4のIPアドレスを事前に付与する必要がない。予備情報処理端末装置4を複数のタスク及びフローで共用することができ、予備系のためのリソースを予め用意する必要がなく、リソースを削減することができる。
尚、本発明は、前記実施形態に限定されず、その趣旨を逸脱しない範囲で様々な変形を加えることができる。以下、本発明の実施形態の変形例について、具体的に説明する。
(変形例1)
前記実施形態では、スイッチ5は、パケットの転送方法のルールとして、宛先IPアドレスの装置へパケットを転送する転送方法をアクションとして格納したフローテーブルを保持するようにしたが、このルールは、オープンフローにて利用可能であれば、宛先IPアドレスに限定されることはない。例えば、ポート番号でもよい。
(変形例2)
前記実施形態では、サーバが、送信元端末装置1、情報処理端末装置2、送信先端末装置3または予備情報処理端末装置4のいずれかの役割を担う装置であるとして説明したが、本発明は、これに限定されない。例えば、サーバは、決められた役割を予め与える必要はない。また、サーバは、送信元端末装置1及び送信先端末装置3の役割を兼用する等、複数の役割を同時に担うようにしてもよい。
(変形例3)
前記実施形態では、管理装置6は、ステップS903に示したように、ボトルネックを回避するために並列化数制御を行うようにしたが、本発明は、これに限定されない。例えば、管理装置6は、フロー毎の転送量を調整するようにしてもよいし、通信経路制御を行うようにしてもよい。フロー毎の転送量の調整とは、例えば、ボトルネックが発生したフローの転送量を所定量に減らし、その分、他のフローの転送量を増やすことにより、全体の転送量を維持したまま、処理が遅れないようにするものである。通信経路制御とは、例えば、ネットワークの輻輳によるボトルネックが発生したときに、フローの通信経路を迂回するように制御することにより、輻輳を回避するものである。
(変形例4)
前記実施形態では、ボトルネックが発生するフローは一つであるとして説明したが、本発明は、これに限定されない。例えば、管理装置6は、複数のフローにボトルネックが発生したことを判定すると、1台の予備情報処理端末装置4に対し、複数のフローにおける未処理チャンクのパケットを転送するようにしてもよい。
(変形例5)
前記実施形態では、管理装置6は、ボトルネックが発生したことを判定したとき、及び、予約IPアドレス宛の未知パケットについて転送方法の問い合わせが発生したことを判定したときに、タスクを実行するためのプロセスの制御命令を予備情報処理端末装置4へ送信するようにしたが、本発明は、これに限定されない。例えば、管理装置6は、タスク開始時に、タスク毎に予備情報処理端末装置4を予め予約しておき、タスクを実行するためのプロセスの内容を予備情報処理端末装置4へ送信しておくようにしてもよい。
(変形例6)
前記実施形態では、管理装置6は、1台の予備情報処理端末装置4を割り当てるようにしたが、複数の予備情報処理端末装置4を割り当てるようにしてもよい。例えば、スイッチ5は、管理装置6から送信されたフローテーブルに従い、ポート番号によりタスクまたはフローを識別し、タスク毎またはフロー毎に、異なる予備情報処理端末装置4へパケットを転送するようにパケットヘッダを書き換えるようにしてもよい。また、予備情報処理端末装置4は、情報処理端末装置2と同様に機能するものとし、当該予備情報処理端末装置4における情報処理が遅れてキューの長さが閾値1,2を超えた場合、前記実施形態と同様に、スイッチ5を介して別の予備情報処理端末装置4へ未処理チャンクのパケットを転送するようにしてもよい。
(変形例7)
前記実施形態では、管理装置6は、ラウンドロビンにより、情報処理端末装置2を決定し、予備情報処理端末装置4を割り当てるようにしたが、本発明は、これに限定されない。例えば、管理装置6は、情報処理端末装置2または予備情報処理端末装置4の処理性能、物理的な配置場所、使用履歴等に基づいて、情報処理端末装置2を決定し、または予備情報処理端末装置4を割り当てるようにしてもよい。
(変形例8)
前記実施形態では、送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4の各サーバは、プロセスを1つだけ起動するようにしたが、本発明はこれに限定されるものでなく、複数のプロセスを起動するようにしてもよい。
尚、本発明の実施形態または実施形態の変形例による送信元端末装置1、情報処理端末装置2、送信先端末装置3、予備情報処理端末装置4、スイッチ5及び管理装置6のハードウェア構成としては、通常のコンピュータをそれぞれ使用することができる。送信元端末装置1、情報処理端末装置2、送信先端末装置3、予備情報処理端末装置4、スイッチ5及び管理装置6のそれぞれは、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。送信元端末装置1、情報処理端末装置2、送信先端末装置3及び予備情報処理端末装置4の各サーバに備えた命令実行手段210、情報収集手段220、受信手段231とバッファ232−1と映像処理手段233とバッファ232−2と送信手段234とを備えた並列処理実行手段230、蓄積手段240及び未処理データ振分け手段250の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、スイッチ5に備えた命令実行手段310及びパケット転送手段320の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、管理装置6に備えたタスク入力手段110、予備サーバ割当手段121とボトルネック判定手段122とタスク完了判定手段123と蓄積手段124とを備えた情報管理手段120、電文受信手段130、並列プロセス計算手段140、並列プロセス制御手段150、フローテーブル計算手段160及びフローテーブル制御手段170の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。