(57)【要約】【課題】多数の実行ノードからの実行状態更新要求が集中して管理ノードの負荷が増大すること。【解決手段】複数の実行ノードに接続された管理ノードは、複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、タスクを分割して複数の実行ノードへ割り付けて実行を依頼する分散タスク管理部と、実行ノードからの実行状態更新要求を受信して永続記憶装置に記録されたタスクの実行状態情報を更新する実行状態情報記録更新部とを有する。分散タスク管理部は、タスクの割り付けでは、単位量の処理対象を処理するのに要する処理時間である第１の時間と実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、複数の実行ノードのうちの任意の２つの実行ノードにおいて割り付けられたタスクの完了時刻の差が第２の時間より大きくなるように、各々の実行ノードへ割り付けるタスクで処理する処理対象の量の差を決定する。【選択図】図１
2014191594.tif 000002
【特許請求の範囲】
【請求項１】
管理ノードと複数の実行ノードとを有する分散処理システムにおいて、
前記管理ノードは、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
各々の前記実行ノードは、
前記管理ノードから割り付けられたタスクを実行し、その実行完了時に前記実行状態更新要求を前記管理ノードへ送信する分散タスク実行部を有し、
前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記複数の実行ノードのうちの任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
分散処理システム。
【請求項２】
前記管理ノードは、
前記分散タスク管理部によって各々の前記実行ノードへ割り付けられたタスクで処理する前記処理対象の数の大小関係に基づいて定まる、複数の前記実行ノードの実行状態更新要求受付予定順序を記憶する受付予定順序記録部と、
前記分散タスク管理部における複数の前記実行ノードからの前記実行状態更新要求の受付順序と、前記受付予定順序記録部に記憶されている前記実行状態更新要求受付予定順序とを照合し、前記実行状態更新要求受付予定順序で予定されいる受付順序であるのにもかかわらず前記実行状態更新要求が受け付けられなかった前記実行ノードを異常ノードとして検出する順序照合部と
を有する
請求項１に記載の分散処理システム。
【請求項３】
前記管理ノードは、
前記分散タスク管理部による複数の前記実行ノードへのタスクの割付履歴を記憶する割付履歴記憶部を有し、
前記分散タスク実行部は、前記割付履歴記憶部に記憶された複数の前記実行ノードへのタスクの割付履歴を参照して、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量に差を付けるか否かを決定する
請求項１または２に記載の分散処理システム。
【請求項４】
管理ノードと複数の実行ノードとを有する分散処理システムにおいて、
前記管理ノードは、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
複数の前記実行ノードから実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
複数の前記実行ノードは、複数のグループに分割され、各々の前記グループに属する複数の前記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能し、前記サブ実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行完了時に前記実行状態更新要求を前記メイン実行ノードへ送信する第１の分散タスク実行管理部を有し、前記メイン実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行が完了し且つ自ノードが所属する前記グループの前記サブ実行ノードの全てから前記実行状態更新要求を受信した時に自ノードおよび前記サブ実行ノードの前記実行状態更新要求を前記管理ノードへ送信する第２の分散タスク実行管理部を有し、
前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記グループ内の任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなり、且つ、前記任意の２つの前記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
分散処理システム。
【請求項５】
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置を有する管理ノードと複数の実行ノードとを有する分散処理システムが実行する分散処理方法であって、
前記管理ノードが、前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼し、
各々の前記実行ノードが、前記管理ノードから割り付けられたタスクを実行し、その実行完了時に実行状態更新要求を前記管理ノードへ送信し、
前記管理ノードが、前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新し、
前記管理ノードの前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記複数の実行ノードのうちの任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
分散処理方法。
【請求項６】
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置を有する管理ノードと、複数の実行ノードとを有し、複数の前記実行ノードは、複数のグループに分割され、各々の前記グループに属する複数の前記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能する分散処理システムにおける分散処理方法であって、
前記管理ノードが、前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼し、
各々の前記実行ノードが、前記管理ノードから割り付けられたタスクを実行し、自ノードが前記サブ実行ノードならば、割り付けられたタスクの実行完了時に実行状態更新要求を前記メイン実行ノードへ送信し、自ノードが前記メイン実行ノードならば、割り付けられたタスクの実行が完了し且つ自ノードが所属する前記グループの前記サブ実行ノードの全てから前記実行状態更新要求を受信した時に自ノードおよび前記サブ実行ノードの前記実行状態更新要求を前記管理ノードへ送信し、
前記管理ノードが、複数の前記実行ノードから前記実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新し、
前記管理ノードの前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記グループ内の任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなり、且つ、前記任意の２つの前記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
分散処理方法。
【請求項７】
複数の実行ノードに接続されたノード装置であって、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記複数の実行ノードのうちの任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
ノード装置。
【請求項８】
複数の実行ノードに接続されたノード装置であって、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
複数の前記実行ノードが、複数のグループに分割され、各々の前記グループに属する複数の前記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能し、前記サブ実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行完了時に前記実行状態更新要求を前記メイン実行ノードへ送信し、前記メイン実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行が完了し且つ自ノードが所属する前記グループの前記サブ実行ノードの全てから前記実行状態更新要求を受信した時に自ノードおよび前記サブ実行ノードの前記実行状態更新要求を前記管理ノードへ送信する場合、前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記グループ内の任意の２つの前記サブ実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなり、且つ、前記任意の２つの前記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
ノード装置。
【請求項９】
複数の実行ノードに接続されたノード装置を構成するコンピュータを、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶部と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部と
して機能させ、
前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記複数の実行ノードのうちの任意の２つの前記実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
プログラム。
【請求項１０】
複数の実行ノードに接続されたノード装置を構成するコンピュータを、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
前記タスクを分割して複数の前記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
前記実行ノードからの実行状態更新要求を受信して前記永続記憶装置に記録された前記タスクの実行状態情報を更新する実行状態情報記録更新部と
して機能させ、
複数の前記実行ノードが、複数のグループに分割され、各々の前記グループに属する複数の前記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能し、前記サブ実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行完了時に前記実行状態更新要求を前記メイン実行ノードへ送信し、前記メイン実行ノードは、前記管理ノードから割り付けられたタスクを実行し、その実行が完了し且つ自ノードが所属する前記グループの前記サブ実行ノードの全てから前記実行状態更新要求を受信した時に自ノードおよび前記サブ実行ノードの前記実行状態更新要求を前記管理ノードへ送信する場合、前記分散タスク管理部は、前記タスクの割り付けでは、単位量の前記処理対象を処理するのに要する処理時間である第１の時間と前記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、前記グループ内の任意の２つの前記サブ実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなり、且つ、前記任意の２つの前記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が前記第２の時間より大きくなるように、各々の前記実行ノードへ割り付けるタスクで処理する前記処理対象の量の差を決定する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、分散処理方法、ノード装置、およびプログラムに関する。
【背景技術】
【０００２】
バッチ処理は、コンピュータのデータ処理方法の一種であり、データを一定期間あるいは一定量をまとめてから、一つのタスクとして一括して処理を行う方式のことである。大量のデータを一括して処理するため、途中で異常終了した際、最初から再実行するとコストが高くなる傾向がある。このため、タスクの実行状態を適宜に記憶装置に保存しておき、万が一に異常終了した際、タスクの途中から再実行するシステムが提案ないし実用化されている（例えば特許文献１参照）。
【０００３】
また、バッチ処理は、単純な処理の繰り返しが比較的多い。例えばエンタープライズバッチ処理では、入力アイテム（データ）列に対してそれぞれ同等の処理を行い、その結果を出力するという処理が典型的に存在する。このため、タスク処理を複数のノード（コンピュータ）を利用して、分散して実行することがある（例えば特許文献２参照）。このような処理を分散タスク処理あるいは単に分散処理、それを実行するシステムを分散処理システムと言う。分散処理システムでは、複数のノードにおけるタスクの実行状態は、リカバリ処理などに備えて、永続記憶装置に集約されて記録され管理されることが多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２８２１９２号公報
【特許文献２】特開平１０−３２６２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
今、図１２に示されるような管理ノードと複数の実行ノードとから構成され、タスクの実行状態を管理ノード側の永続記憶装置で一元管理する分散処理システムを考える。この分散管理システムでは、管理ノードは、入力されるタスクを分割して個々の実行ノードに割り付ける。各々の実行ノードは、割り付けられたタスクを実行し、その実行完了時に実行状態更新要求を管理ノードへ送信する。管理ノードは、受信した実行状態更新要求に従って永続記憶装置に記録されたタスクの実行状態情報を更新する。これによって、複数の実行ノードで実行されるタスクの実行状態が永続記憶装置に集約され、一貫した情報として永続化することができる。
【０００６】
上記のような分散管理システムにおいて、入力タスクに対して均質なタスク処理を分散実行するために、図１３に示されるように、分散処理を実行するノードを均等に利用するように分散タスクを割り付けると、各実行ノード上でのタスクの実行がほぼ同時刻に完了するケースが多発する。なお、図１３において、矩形形状の小片は１つの処理対象であるアイテムを示す。そのため、図１４に示されるように、全ての実行ノードがほぼ同時刻に実行状態更新要求を管理ノードへ送信するケースが発生し、管理ノードに一度に大量の実行状態更新要求が到着することになる。このため、同時実行可能な実行状態更新要求の処理数に制限がある管理ノードでは、整合性のとれた実行状態更新処理が困難になり、一貫性のある集約されたタスク実行状態の記録が困難になる。
【０００７】
本発明の目的は、上述した課題、すなわち、多数の実行ノードからの実行状態更新要求が一時に管理ノードに集中する、という課題を解決する分散処理システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点に係る分散処理システムは、
管理ノードと複数の実行ノードとを有する分散処理システムにおいて、
上記管理ノードは、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
上記実行ノードからの実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
各々の上記実行ノードは、
上記管理ノードから割り付けられたタスクを実行し、その実行完了時に上記実行状態更新要求を上記管理ノードへ送信する分散タスク実行部を有し、
上記分散タスク管理部は、上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記複数の実行ノードのうちの任意の２つの上記実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【０００９】
本発明の第２の観点に係る分散処理システムは、
管理ノードと複数の実行ノードとを有する分散処理システムにおいて、
上記管理ノードは、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
複数の上記実行ノードから実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
複数の上記実行ノードは、複数のグループに分割され、各々の上記グループに属する複数の上記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能し、上記サブ実行ノードは、上記管理ノードから割り付けられたタスクを実行し、その実行完了時に上記実行状態更新要求を上記メイン実行ノードへ送信する第１の分散タスク実行管理部を有し、上記メイン実行ノードは、上記管理ノードから割り付けられたタスクを実行し、その実行が完了し且つ自ノードが所属する上記グループの上記サブ実行ノードの全てから上記実行状態更新要求を受信した時に自ノードおよび上記サブ実行ノードの上記実行状態更新要求を上記管理ノードへ送信する第２の分散タスク実行管理部を有し、
上記分散タスク管理部は、上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記グループ内の任意の２つの上記実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなり、且つ、上記任意の２つの上記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【００１０】
本発明の第３の観点にかかる分散処理方法は、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置を有する管理ノードと複数の実行ノードとを有する分散処理システムが実行する分散処理方法であって、
上記管理ノードが、上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼し、
各々の上記実行ノードが、上記管理ノードから割り付けられたタスクを実行し、その実行完了時に実行状態更新要求を上記管理ノードへ送信し、
上記管理ノードが、上記実行ノードからの実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新し、
上記管理ノードの上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記複数の実行ノードのうちの任意の２つの上記実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【００１１】
本発明の第４の観点に係る分散処理方法は、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置を有する管理ノードと、複数の実行ノードとを有し、複数の上記実行ノードは、複数のグループに分割され、各々の上記グループに属する複数の上記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能する分散処理システムにおける分散処理方法であって、
上記管理ノードが、上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼し、
各々の上記実行ノードが、上記管理ノードから割り付けられたタスクを実行し、自ノードが上記サブ実行ノードならば、割り付けられたタスクの実行完了時に上記実行状態更新要求を上記メイン実行ノードへ送信し、自ノードが上記メイン実行ノードならば、割り付けられたタスクの実行が完了し且つ自ノードが所属する上記グループの上記サブ実行ノードの全てから上記実行状態更新要求を受信した時に自ノードおよび上記サブ実行ノードの上記実行状態更新要求を上記管理ノードへ送信し、
上記管理ノードが、複数の上記実行ノードから上記実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新し、
上記管理ノードの上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記グループ内の任意の２つの上記実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなり、且つ、上記任意の２つの上記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【００１２】
本発明の第５の観点に係るノード装置は、
複数の実行ノードに接続されたノード装置であって、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
上記実行ノードからの実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
上記分散タスク管理部は、上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記複数の実行ノードのうちの任意の２つの上記実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【００１３】
本発明の第６の観点に係るノード装置は、
複数の実行ノードに接続されたノード装置であって、
複数の処理対象から構成されるタスクの実行状態情報を記録する永続記憶装置と、
上記タスクを分割して複数の上記実行ノードへ割り付けて実行を依頼する分散タスク管理部と、
上記実行ノードからの実行状態更新要求を受信して上記永続記憶装置に記録された上記タスクの実行状態情報を更新する実行状態情報記録更新部とを有し、
複数の上記実行ノードが、複数のグループに分割され、各々の上記グループに属する複数の上記実行ノードのうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能し、上記サブ実行ノードは、上記管理ノードから割り付けられたタスクを実行し、その実行完了時に上記実行状態更新要求を上記メイン実行ノードへ送信し、上記メイン実行ノードは、上記管理ノードから割り付けられたタスクを実行し、その実行が完了し且つ自ノードが所属する上記グループの上記サブ実行ノードの全てから上記実行状態更新要求を受信した時に自ノードおよび上記サブ実行ノードの上記実行状態更新要求を上記管理ノードへ送信する場合、上記分散タスク管理部は、上記タスクの割り付けでは、単位量の上記処理対象を処理するのに要する処理時間である第１の時間と上記実行状態更新要求の処理に要する処理時間である第２の時間とに基づいて、上記グループ内の任意の２つの上記サブ実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなり、且つ、上記任意の２つの上記メイン実行ノードにおいて割り付けられたタスクの完了時刻の差が上記第２の時間より大きくなるように、各々の上記実行ノードへ割り付けるタスクで処理する上記処理対象の量の差を決定する。
【発明の効果】
【００１４】
本発明は上述した構成を有するため、多数の実行ノードから管理ノードに対して同時期に実行状態更新要求が送信されることがなくなり、実行状態更新要求に係る管理ノードの負荷を時間的に分散することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態のブロック図である。
【図２】本発明の第１の実施形態における実行ノードへの分散タスクの割付例を示す図である。
【図３】本発明の第１の実施形態における実行ノードから送信される実行状態更新要求のタイミングの説明図である。
【図４】本発明の第２の実施形態のブロック図である。
【図５】本発明の第３の実施形態のブロック図である。
【図６】本発明の第３の実施形態における実行ノードへの分散タスクの割付例を示す図である。
【図７】本発明の第３の実施形態における実行ノードへの分散タスクの割付例と比較するための他の割付例を示す図である。
【図８】本発明の第４の実施形態のブロック図である。
【図９】本発明の第４の実施形態における実行ノードへの分散タスクの割付例を示す図である。
【図１０】本発明の第４の実施形態における実行ノードから送信される実行状態更新要求のタイミングの説明図である。
【図１１】本発明の第４の実施形態における実行ノードへの分散タスクの割付例と比較するための他の割付例を示す図である。
【図１２】本発明に関連する分散処理システムのブロック図である。
【図１３】本発明に関連する分散処理システムにおける実行ノードへの分散タスクの割付例を示す図である。
【図１４】本発明に関連する分散処理システムにおける実行ノードから送信される実行状態更新要求のタイミングの説明図である。
【発明を実施するための形態】
【００１６】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態にかかる分散処理システム１００は、管理ノード１１０と複数の実行ノード１２０と実行状態永続記録装置１３０とを有する。一般に管理ノード１１０と各々の実行ノード１２０とはネットワークを介して接続される。
【００１７】
実行状態永続記録装置１３０は、ハードディスク等の永続記録装置であり、タスクの実行状態情報を記憶する機能を有する。タスクの実行状態情報は、例えば、タスクを特定する識別名と当該タスクを構成するアイテム（処理対象）を特定する識別名と当該アイテムの実行状態（例えば実行済、未実行など）との組み合わせから成る。勿論、タスクの実行状態情報の形式は上記の例に限定されず、複数のアイテム単位で実行状態を記録する等、他の形式であってもよい。この実行状態永続記録装置１３０は、管理ノード１１０のローカルな記憶装置であってもよいし、管理ノード１１０にネットワークを通じて接続された記憶装置であってもよい。
【００１８】
管理ノード１１０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク管理部１１１と実行状態情報記録更新部１１２と単位アイテム処理コスト算出部１１３と状態更新コスト算出部１１４とがある。
【００１９】
実行状態情報記録更新部１１２は、分散タスク管理部１１１から実行状態更新要求を受け取り、その実行状態更新要求に従って、実行状態永続記録装置１３０に記録されている実行状態情報を更新する。例えば、実行状態更新要求には、タスク識別子とアイテム識別子と実行状態とが含まれており、実行状態情報記録更新部１１２は、実行状態更新要求に含まれるタスク識別子とアイテム識別子とに対応する実行状態永続記録装置１３０の実行状態情報を、実行状態更新要求中の実行状態で更新する。
【００２０】
状態更新コスト算出部１１４は、単位数の実行状態更新要求を実行状態情報記録更新部１１２が処理するのに要する時間ｔex-updateを算出し、分散タスク管理部１１１に提供する機能を有する。時間ｔex-updateの算出方法は任意である。例えば、ユーザによる設定値に基づく方法や、実行状態情報記録更新部１１２をテスト実行させ、その際の実行時間を採取して記録する方法などが考えられる。
【００２１】
単位アイテム処理コスト算出部１１３は、単位量のアイテムを実行ノード１２０で処理するのに要する時間ｔitemを算出し、分散タスク管理部１１１に提供する機能を有する。時間ｔitemの算出方法は任意である。例えば、ユーザによる設定値に基づく方法や、実行ノード１２０の後述する分散タスク実行部をテスト実行させ、その際の実行時間を採取して記録する方法などが考えられる。
【００２２】
分散タスク管理部１１１は、管理ノード１１０に投入されたタスク１４０を分割して実行ノード１２０に割り付け、実行ノード１２０へ分散タスクの実行を依頼する機能を有する。また分散タスク管理部１１１は、実行ノード１２０から実行状態更新要求を受信すると、それを実行状態情報記録更新部１１２に伝達して処理を依頼する機能を有する。さらに分散タスク管理部１１１は、上記タスクの割付では、単位アイテム処理コスト算出部１１３から時間ｔitemを取得し、状態更新コスト算出部１１４から時間ｔex-updateを取得し、これらの時間に基づいて、複数の実行ノード１２０のうちの任意の２つの実行ノードにおいて割り付けられたタスクの完了時刻の差が時間ｔex-updateより大きくなるように、各々の実行ノード１２０へ割り付けるタスクで処理するアイテムの量の差を決定する機能を有する。以下に割り付け量を算出する方法の具体例を説明する。
【００２３】
まず分散タスク管理部１１１は、時間ｔex-updateが何個分の単位アイテムの処理時間になるかを以下の式により決定する。なお、Δitemは、ｔex-update／ｔitemの小数点以下を切り上げた整数である。
Δitem＝ｔex-update／ｔitem      …（１）
【００２４】
次に分散タスク管理部１１１は、実行ノード数をｎ、タスクで処理すべき全体の単位アイテム総数をｍ、実行ノードのノード番号をｉ（０＜ｉ＜ｎ）とするとき、ノード番号ｉの実行ノードに割り付けるアイテムの総量Ｎ（ｉ）を次式により算出する。
Ｎ（ｉ）＝（ｍ／ｎ）＋（ｉ−ｎ／２）×Δitem      …（２）
但し、上記式２で算出したアイテムの総量がｍを超える場合には、例えば、割当アイテム数のより少ない１或いは複数の実行ノードから過剰分のアイテムを削減して、総量がｍになるように調整する。
【００２５】
実行ノード１２０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク実行部１２１がある。
【００２６】
分散タスク実行部１２１は、管理ノード１１０の分散タスク管理部１１１から割り付けられたタスクを実行する機能と、割り付けられたタスクの実行完了時に実行状態更新要求を管理ノード１１０の分散タスク管理部１１１へ送信する機能とを有する。実行状態更新要求には、例えば、タスク識別子とアイテム識別子と実行状態とが含まれる。
【００２７】
次に本実施形態に係る分散処理システムの動作を説明する。
【００２８】
図１において、管理ノード１１０の分散タスク管理部１１１は、タスク１４０が投入されると、単位アイテム処理コスト算出部１１３から単位アイテムの処理に必要な時間ｔitemを、また状態更新コスト算出部１１４から単位数の実行状態更新要求を処理するのに要する時間ｔex-updateをそれぞれ取得する。次に、取得したｔitemとｔex-updateを基にして、任意の２つの実行ノード１２０において割り付けられたタスクの完了時刻の差がｔex-updateより大きくなるように、各実行ノード１２０へ割り付けるタスクで処理すべき単位アイテムの量を決定する。具体的には、前述した式１および式２を用いて、各実行ノード１２０に割り付けるアイテム数を算出する。そして、この算出したアイテム数の処理を分散タスクとして割り付け、各実行ノードの分散タスク実行部１２１に対して分散タスクの実行を依頼する。
【００２９】
図２は、実行ノード１２０の総数が６、タスク１４０のアイテム数が６０、前記式１のΔitemが１の場合の分散タスクの割付結果の一例を示す。
【００３０】
各々の実行ノード１２０の分散タスク実行部１２１は、管理ノード１１０から分散タスクが割り当てられて実行が依頼されると、分散タスクの各アイテムを順番に実行する。そして、分散タスクの全てのアイテムの処理を完了すると、その旨を記述した実行状態更新要求を管理ノード１１０の分散タスク管理部１１１へ送信する。
【００３１】
図３は、各々の実行ノード１２０が管理ノード１１０に対して実行状態更新要求を送信するタイミングを示している。ノード番号１、２、３、４、５、６の実行ノード１２０は、割り当てられたアイテム数が６個、８個、１０個、１１個、１２個、１３個と互いに相違するため、各実行ノード１２０から管理ノード１１０への実行状態更新要求の送信タイミングは、最低でもΔitemだけ時間的に離れている。この結果、管理ノード１１０における実行ノード１２０からの実行状態更新要求の多重度が１を超えることが無くなり、実行状態更新要求に係る管理ノード１１０の負荷を時間的に分散することが可能になる。これに対して均等に割り付けた場合には、図１４に示されるように、時刻１０×ｔitemのタイミングで実行ノードからの実行状態更新要求が６多重で行われることになる。
【００３２】
従って、本実施形態によれば、多数の実行ノードから管理ノードに対して同時期に実行状態更新要求が送信されることがなくなり、実行状態更新要求に係る管理ノードの負荷を時間的に分散することが可能になる。その結果、多重接続を受け入れるための管理ノードにおける要求リソースの削減が可能となり、性能の改善およびスケーラビリティの向上効果が得られる。
【００３３】
[第２の実施形態]
図４を参照すると、本発明の第２の実施形態にかかる分散処理システム２００は、管理ノード２１０と複数の実行ノード２２０と実行状態永続記録装置２３０とを有する。一般に管理ノード２１０と各々の実行ノード２２０とはネットワークを介して接続される。
【００３４】
実行ノード２２０とその内部の分散タスク管理部２１１、および、実行状態永続記録装置２３０は、図１に示した第１の実施形態における実行ノード１２０とその内部の分散タスク管理部１１１、および、実行状態永続記録装置１３０と同じ機能を有する。
【００３５】
管理ノード２１０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク管理部２１１と実行状態情報記録更新部２１２と単位アイテム処理コスト算出部２１３と状態更新コスト算出部２１４と状態更新要求受付予定順序記録部２１５と状態更新要求順序照合部２１６とがある。
【００３６】
実行状態情報記録更新部２１２と単位アイテム処理コスト算出部２１３と状態更新コスト算出部２１４とは、図１に示した第１の実施形態における実行状態情報記録更新部１１２と単位アイテム処理コスト算出部１１３と状態更新コスト算出部１１４と同じ機能を有する。
【００３７】
状態更新要求受付予定順序記録部２１５は、複数の実行ノード２２０からの実行状態更新要求の受付予定順序を記憶する機能を有する。
【００３８】
状態更新要求順序照合部２１６は、分散タスク管理部２１１における複数の実行ノード２２０からの実行状態更新要求の受付順序と、状態更新要求受付予定順序記録部２１５に記憶されている複数の実行ノード２２０からの実行状態更新要求の受付予定順序とを照合し、受付予定順序であるのにもかかわらず実行状態更新要求が受け付けられなかった実行ノード２２０を異常ノードとして検出する機能を有する。
【００３９】
分散タスク管理部２１１は、図１に示した第１の実施形態における分散タスク管理部１１１と同じ機能を有すると共に、以下のような機能を有する。まず分散タスク管理部２１１は、各実行ノード２２０へのタスク割当時に、単位アイテム数の割当量の大小順を各実行ノード２２０の実行状態更新要求受付予定順序として状態更新要求受付予定順序記録部２１５に記録する。ここで、単位アイテム数の割当量を上記式１、式２により算出する場合、単位アイテム数の割当量の大小順はノード番号順になる。また分散タスク管理部２１１は、タスク実行開始後に実行ノード２２０から実行状態更新要求を受け付けると、それを実行状態情報記録更新部２１２に伝達すると共に状態更新要求順序照合部２１６に伝達する。
【００４０】
次に本実施形態に係る分散処理システムの動作を説明する。本実施形態の動作は、分散タスク管理部２１１と状態更新要求受付予定順序記録部２１５と状態更新要求順序照合部２１６の動作が図１に示した第１の実施形態と相違し、それ以外は第１の実施形態と同じである。以下では、主に第１の実施形態と相違する動作について説明する。
【００４１】
図４において、管理ノード２１０の分散タスク管理部２１１は、タスク２４０が投入されると、第１の実施形態と同様に、前述した式１および式２を用いて、各実行ノード２２０に割り付けるアイテム数を算出し、この算出したアイテム数の処理を分散タスクとして割り付け、各実行ノード２２０に対して分散タスクの実行を依頼する。このとき分散タスク管理部２１１は、アイテム数の割当量の大小順を各実行ノード２２０の状態更新要求受付予定順序として状態更新要求受付予定順序記録部２１５に記録する。
【００４２】
その後、各実行ノード２２０の分散タスク実行部２２１で分散タスクの処理が実行され、分散タスクの処理を完了した実行ノード２２０から順に実行状態更新要求が管理ノード２１０へ送信されてくる。分散タスク管理部２１１は、何れかの実行ノード２２０から実行状態更新要求を受信すると、それを実行状態情報記録更新部２１２に伝達すると共に状態更新要求順序照合部２１６に伝達する。実行状態情報記録更新部２１２では第１の実施形態における実行状態情報記録更新部１１２と同様の動作を行う。
【００４３】
他方、状態更新要求順序照合部２１６は、分散タスク管理部２１１から受け取った実行ノード２２０からの実行状態更新要求の受付順序を、自身に記録されている複数の実行ノード２２０からの実行状態更新要求の受付予定順序と照合する。そして、受付予定順序であるのにもかかわらず実行状態更新要求が受け付けられなかった実行ノード２２０が存在したならば、その実行ノード２２０を異常ノードとして検出する。例えば、受付予定順序が、実行ノード２２０−１、実行ノード２２０−２、実行ノード２２０−３の順であるとき、実行ノード２２０−１から実行状態更新要求を受け付けた後、次に受け付けられた実行状態更新要求が実行ノード２２０−３からのものであった場合、実行ノード２２０−２が異常ノードとして検出される。
【００４４】
異常ノードを検出したときの動作は任意である。例えば、状態更新要求順序照合部２１６は、検出した異常ノードを分散タスク管理部２１１を通じて実行状態情報記録更新部２１２に通知し、実行状態情報記録更新部２１２が実行状態永続記録装置２３０に異常ノードに関する情報を記録するようにしてよい。あるいは状態更新要求順序照合部２１６は、検出した異常ノードを通信回線を介して接続された外部装置に通知するようにしてよい。
【００４５】
このように本実施形態によれば、分散タスクの完了時刻がノード番号順（基本アイテムの割当量の大小順）に整列することを利用して、実行ノードにおける異常を早期に検出することが可能になる。
【００４６】
[第３の実施形態]
図５を参照すると、本発明の第３の実施形態にかかる分散処理システム３００は、管理ノード３１０と複数の実行ノード３２０と実行状態永続記録装置３３０とを有する。一般に管理ノード３１０と各々の実行ノード３２０とはネットワークを介して接続される。
【００４７】
実行ノード３２０とその内部の分散タスク管理部３２１、および、実行状態永続記録装置３３０は、図１に示した第１の実施形態における実行ノード１２０とその内部の分散タスク管理部１１１、および、実行状態永続記録装置１３０と同じ機能を有する。
【００４８】
管理ノード３１０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク管理部３１１と実行状態情報記録更新部３１２と単位アイテム処理コスト算出部３１３と状態更新コスト算出部３１４と傾斜割付履歴記憶部３１５とがある。
【００４９】
実行状態情報記録更新部３１２と単位アイテム処理コスト算出部３１３と状態更新コスト算出部３１４とは、図１に示した第１の実施形態における実行状態情報記録更新部１１２と単位アイテム処理コスト算出部１１３と状態更新コスト算出部１１４と同じ機能を有する。
【００５０】
傾斜割付履歴記憶部３１５は、複数の実行ノード３２０へのタスクの割当履歴を記憶する機能を有する。
【００５１】
分散タスク管理部３１１は、図１に示した第１の実施形態における分散タスク管理部１１１と同じ機能を有すると共に、以下のような機能を有する。まず分散タスク管理部３１１は、各実行ノード２２０へのタスク割当時、各々の実行ノード３２０へ割り付けるタスクで処理するアイテムの量に差を付けた場合、その割付履歴を傾斜割付履歴記憶部３１５に記憶する。また分散タスク管理部３１１は、複数の実行ノード３２０へ割り付ける分散タスクで処理するアイテムの量を計算する際、傾斜割付履歴記憶部３１５に記憶された割付履歴を参照し、各々の実行ノード３２０へ割り付けるタスクで処理するアイテムの量に差を付けた割付（傾斜割付）の履歴が存在するならば、傾斜割付を行わず均等割り付けを行い、傾斜割付履歴が存在しないならば傾斜割付を行う。ここで、傾斜割付とは、第１の実施形態で説明したように、複数の実行ノードのうちの任意の２つの実行ノードにおいて割り付けられたタスクの完了時刻の差が少なくともｔex-updateより大きくなるように、各々の実行ノードへ割り付けるタスクで処理する処理対象の量に差を付けて割付けることである。
【００５２】
次に本実施形態に係る分散処理システムの動作を説明する。本実施形態の動作は、分散タスク管理部３１１と傾斜割付履歴記憶部３１５の動作が図１に示した第１の実施形態と相違し、それ以外は第１の実施形態と同じである。以下では、主に第１の実施形態と相違する動作について説明する。
【００５３】
図５において、管理ノード３１０の分散タスク管理部３１１は、最初のタスク３４０が投入されると、第１の実施形態と同様に、前述した式１および式２を用いて、各実行ノード３２０に割り付けるアイテム数を算出し、この算出したアイテム数の処理を分散タスクとして割り付け、各実行ノード３２０に対して分散タスクの実行を依頼する。このとき分散タスク管理部３１１は、傾斜割付の実行履歴を傾斜割付履歴記憶部３１５に記憶する。
【００５４】
次に、上記最初のタスク３４０に続いて２番目のタスク３４０が投入されると、管理ノード３１０の分散タスク管理部３１１は、傾斜割付履歴記憶部３１５に傾斜割付の実行履歴が記憶されているので、前述した式１および式２による傾斜割付は実行せず、入力タスク３４０に対して均質なタスク処理を分散実行するために、分散処理を実行するノード３２０を均等に利用するように分散タスクを割り付ける。
【００５５】
図６は、２つのタスク３４０が連続して投入される場合の分散タスク割付例を示す。最初のタスク１が傾斜割付されているため、後続のタスク２が均等割付されていても任意の２つの実行ノード３２０において割り付けられたタスクの完了時刻の差が最低でもΔitemだけ時間的に離れている。この結果、管理ノード３１０における実行ノード３２０からの実行状態更新要求の多重度がタスク１、タスク２共に１を超えることが無くなり、実行状態更新要求に係る管理ノード３１０の負荷を時間的に分散することが可能になる。
【００５６】
これに対して、後続のタスク２をタスク１と同様に傾斜割付すると、その分散タスク割付状況は図７に示すようになる。図７においては、後続のタスク２に関し任意の２つの実行ノードにおいて割り付けられたタスクの完了時刻の差が最低でもΔitem×２だけ時間的に離れている。すなわち、実行状態更新要求のタイミングの競合を避けるために最低限必要な時間の倍の時間差が生じている。この結果、図７ではタスク２が完了するまでに２６ｔitemの時間がかかっている。一方、本実施形態による図６では、２３ｔitemの時間でタスク２が完了することになり、より効率的な実行が可能となる。
【００５７】
[第４の実施形態]
図８を参照すると、本発明の第４の実施形態にかかる分散処理システム４００は、管理ノード４１０と複数の実行ノード４２０と実行状態永続記録装置４３０とを有する。一般に管理ノード４１０と各々の実行ノード４２０とはネットワークを介して接続される。
【００５８】
実行ノード４２０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク実行部４２１がある。
【００５９】
本実施形態では、複数の実行ノード４２０は、複数のグループに分割され、各々のグループに属する実行ノード４２０のうち、何れか一つがメイン実行ノード、残りがサブ実行ノードとして機能する。図８に示す例では、実行ノード４２０は合計９個あり、３分割されて、実行ノード４２０−１〜４２０−３がグループＧ１、実行ノード４２０−４〜４２０−６がグループＧ２、実行ノード４２０−７〜４２０−９がグループＧ３を形成している。また、グループＧ１では、実行ノード４２０−１がメイン、実行ノード４２０−２、４２０−３がサブとして機能し、グループＧ２では、実行ノード４２０−４がメイン、実行ノード４２０−５、４２０−６がサブとして機能し、グループＧ３では、実行ノード４２０−７がメイン、実行ノード４２０−８、４２０−９がサブとして機能する。
【００６０】
サブの実行ノードの分散タスク実行部４２１は、管理ノード４１０から割り付けられたタスクを実行する機能と、その実行完了時に実行状態更新要求を自グループのメインの実行ノードへ送信する機能とを有する。
【００６１】
他方、メインの実行ノードの分散タスク実行部４２１は、管理ノード４１０から割り付けられたタスクを実行する機能と、自グループのサブの実行ノードから実行状態更新要求を受信する機能と、自ノードに割り付けられたタスクの実行が完了し、且つ、自グループの全てのサブの実行ノードから実行状態更新要求を受信した時、自ノードおよび全てのサブ実行ノードの実行状態更新要求をまとめて管理ノード４１０へ送信する機能とを有する。
【００６２】
管理ノード４１０は、例えば、ＭＰＵ等のプロセッサと、ＲＡＭ等の記憶部と、ネットワークインターフェイスカード等の通信部と、キーボード等の操作入力部と、液晶ディスプレイ等の画面表示部とを有するコンピュータで構成される。上記記憶部にはプログラムが記憶されており、プロセッサはプログラムを読み取って実行することにより、ハードウェアとプログラムとを協働させて各種処理部を実現する。上記プロセッサで実現される主な処理部として、分散タスク管理部４１１と実行状態情報記録更新部４１２と単位アイテム処理コスト算出部４１３と状態更新コスト算出部４１４とグループ情報記憶部４１５とがある。
【００６３】
実行状態情報記録更新部４１２と単位アイテム処理コスト算出部４１３と状態更新コスト算出部４１４とは、図１に示した第１の実施形態における実行状態情報記録更新部１１２と単位アイテム処理コスト算出部１１３と状態更新コスト算出部１１４と同じ機能を有する。
【００６４】
グループ情報記憶部４１５は、複数の実行ノード４２０により構成される各グループの情報を記憶する機能を有する。各々のグループの情報には、そのグループのメインの実行ノードを特定する識別子等の情報、そのグループのサブの実行ノードを特定する識別子等の情報が含まれる。
【００６５】
分散タスク管理部３１１は、管理ノード４１０に投入されたタスク４４０を分割して実行ノード４２０に割り付け、実行ノード４２０へ分散タスクの実行を依頼する機能を有する。また分散タスク管理部４１１は、実行ノード４２０から実行状態更新要求を受信すると、それを実行状態情報記録更新部４１２に伝達して処理を依頼する機能を有する。さらに分散タスク管理部４１１は、上記タスクの割付では、単位アイテム処理コスト算出部４１３から時間ｔitemを取得し、状態更新コスト算出部４１４から時間ｔex-updateを取得し、これらの時間に基づいて、グループ内の任意の２つの実行ノードにおいて割り付けられたタスクの完了時刻の差がｔex-updateより大きくなり、且つ、任意の２つのメイン実行ノードにおいて割り付けられたタスクの完了時刻の差がｔex-updateより大きくなるように、各々の実行ノードへ割り付けるタスクで処理するアイテムの量の差を決定する機能を有する。以下に割り付け量を算出する方法の具体例を説明する。
【００６６】
まず分散タスク管理部４１１は、時間ｔex-updateが何個分の単位アイテムの処理時間になるかを前述した式１により決定する。
【００６７】
次に分散タスク管理部４１１は、グループ数をｇ、タスクで処理すべき全体の単位アイテム総数をｍ、グループ番号をｊ（０＜ｊ＜ｇ）、グループ内のノード数をｓとするとき、グループ番号ｊのグループ全体に割り付けるアイテムの総量Ｍ（ｊ）を次式により算出する。
Ｍ（ｊ）＝（ｍ／ｇ）＋（ｊ−ｇ／２）×ｓΔitem      …（３）
但し、上記式３で算出したアイテムの総量がｍを超える場合には、各グループから過剰分のアイテムを削減して、総量がｍになるように調整する。このとき、任意のグループ間のアイテム総数の差がｓΔitemより小さくならないようにする。
【００６８】
次に分散タスク管理部４１１は、各グループ毎に、そのグループに属する実行ノードに割り付けるアイテムの総量を算出する。この算出は、第１の実施形態における式２と同様に行う。即ち、グループに属する実行ノード数をｎ’、グループ全体の単位アイテム総数をｍ’、グループ内での実行ノードのノード番号をｉ’（０＜ｉ＜ｓ、メイン実行ノードのノード番号は１）とするとき、ノード番号ｉの実行ノードに割り付けるアイテムの総量Ｎ’（ｉ）を次式により算出する。
Ｎ’（ｉ）＝（ｍ’／ｎ’）＋（ｉ−ｎ’／２）×Δitem      …（４）
但し、上記式４で算出したアイテムの総量がｍ’を超える場合には、過剰分のアイテムを削減して、総量がｍ’になるように調整する。
【００６９】
次に本実施形態に係る分散処理システムの動作を説明する。本実施形態の動作は、分散タスク管理部４１１とグループ情報記憶部４１５の動作が図１に示した第１の実施形態と相違し、それ以外は第１の実施形態と同じである。以下では、主に第１の実施形態と相違する動作について説明する。
【００７０】
図８において、管理ノード４１０の分散タスク管理部４１１は、タスク４４０が投入されると、グループ情報記憶部４１５を参照し、複数の実行ノード４２０がグループ化されているならば、前述した式３、式４を用いて、各実行ノード４２０に割り付けるアイテム数を算出し、この算出したアイテム数の処理を分散タスクとして割り付け、各実行ノード４２０に対して分散タスクの実行を依頼する。
【００７１】
図９は、分散タスク割付例を示す。図９を参照すると、９個の実行ノードを３グループに分割して４５アイテムを処理する場合、グループＧ１に１２個、グループＧ２に１５個、グループＧ３に１８個のアイテムが割り当てられる。また、グループＧ１内ではメインの実行ノード１に３個、サブの実行ノード２に４個、サブの実行ノード３に５個のアイテムが割り当てられ、グループＧ２内ではメインの実行ノード４に４個、サブの実行ノード５に５個、サブの実行ノード６に６個のアイテムが割り当てられ、グループＧ３内ではメインの実行ノード７に５個、サブの実行ノード８に６個、サブの実行ノード９に７個のアイテムが割り当てられる。
【００７２】
各々の実行ノード４２０の分散タスク実行部４２１は、管理ノード４１０から分散タスクが割り当てられて実行が依頼されると、分散タスクの各アイテムを順番に実行する。そして、分散タスクの全てのアイテムの処理を完了すると、サブ実行ノードの分散タスク実行部４２１は実行状態更新要求を自グループのメイン実行ノードへ送信する。またメイン実行ノードの分散タスク実行部４２１は、自ノードに割り当てられた分散タスクの全てのアイテムの処理が完了し、且つ、自グループの全てのサブ実行ノードから実行状態更新要求を受信すると、自ノードの実行状態更新要求およびサブ実行ノードの実行状態更新要求をまとめて管理ノード４１０の分散タスク管理部４１１へ送信する。
【００７３】
図１０は、各々の実行ノードが実行状態更新要求を送信するタイミングの説明図である。図９および図１０を参照すると、時刻５×ｔitemの時点では、サブの実行ノード２とサブの実行ノード３の実行状態はメインの実行ノード１を介して、メインの実行ノード１の実行状態と一緒に管理ノード４１０へ更新要求がなされるが、同時刻に処理が完了したサブの実行ノード５の実行状態はそのノード５が所属するグループのメインの実行ノード４が受け取るのみで、管理ノード４１０への同時アクセスとならない。また、同様に、同時刻に処理が完了するメインの実行ノード７の実行状態は、サブの実行ノード８、サブの実行ノード９からの実行状態がまだ届いていないので、自ノード７で保持されており、管理ノード４１０への同時アクセスとはならない。よって、実行状態更新要求に係る管理ノード４１０の負荷を時間的に分散することが可能になる。
【００７４】
また図１０を参照すると、最小の処理アイテム数が割り当てられたタスクの処理アイテム数は３、最大の処理アイテム数が割り当てられたタスクの処理アイテム数は７であり、その差は４である。一方、グループ分割せずに分散タスクの割り当てを行った場合、図１１に示されるように、最小の処理アイテム数が割り当てられたタスクの処理アイテム数は１、最大の処理アイテム数が割り当てられたタスクの処理アイテム数は９であり、その差は８である。従って、本実施形態の方が、割り当てられた処理アイテム数が少ない実行ノードの計算リソースが遊休状態になる時間を短縮することができ、効率的な分散処理が可能になる。
【００７５】
一般的に、グループ分割しない場合、分散タスクの割付の偏りがノード数に比例して増大してしまう。例えば実行ノード数がｎの場合、最小の処理アイテム数が割り当てられたタスクと最大の処理アイテム数が割り当てられたタスクの処理アイテム数の差はΔitem×ｎとなり、ｎが１０００など大きくなった場合に、割り当てられた処理アイテム数が少ない実行ノードの計算リソースが遊休状態になる時間が極端に長くなってしまい、非効率となる。これに対して、本実施形態のようにグループ化して割り付けると、総実行ノード数ｎ、グループ分割数をＧとした場合、最小の処理アイテム数が割り当てられたタスクと最大の処理アイテム数が割り当てられたタスクの処理アイテム数の差は、一般的にΔitem×ｎ／Ｇとなり、１／Ｇに緩和することができる。
【００７６】
なお、本実施形態では、グルーピングが１階層のみの例を説明したが、グルーピングを階層化して、ツリー状にメイン実行ノードを配置することも考えられる。
【産業上の利用可能性】
【００７７】
本発明は管理ノードと複数の実行ノードから構成される分散処理システム、例えばエンタープライズバッチ処理システムなどに利用することができる。
【符号の説明】
【００７８】
１００…分散処理システム
１１０…管理ノード
１１１…分散タスク管理部
１１２…実行状態情報記録更新部
１１３…単位アイテム処理コスト算出部
１１４…状態更新コスト算出部
１２０…実行ノード
１２１…分散タスク実行部
１３０…実行状態永続記録装置
１４０…タスク
【図１】
2014191594.tif 000003
【図２】
2014191594.tif 000004
【図３】
2014191594.tif 000005
【図４】
2014191594.tif 000006
【図５】
2014191594.tif 000007
【図６】
2014191594.tif 000008
【図７】
2014191594.tif 000009
【図８】
2014191594.tif 000010
【図９】
2014191594.tif 000011
【図１０】
2014191594.tif 000012
【図１１】
2014191594.tif 000013
【図１２】
2014191594.tif 000014
【図１３】
2014191594.tif 000015
【図１４】
2014191594.tif 000016