(57)【特許請求の範囲】
【請求項１】
複数の処理を受け付ける処理受付部と、
前記処理受付部が受け付けた処理のペアそれぞれについて、ある処理が他の処理とどの程度関連があるかを示し、関連があるほど予め定められた範囲内で高い値となる、予め定められた値である関連度を取得する関連度取得部と、
前記関連度取得部が取得した処理のペアごとの関連度に基づいて、実行予定の処理の中で関連度の最も低い処理のペアを集約する、または、実行予定の処理の中で組み合わせた際に関連度が最も高くなる組み合わせを分割することにより、実行予定の処理の中で関連度の値が高くなる処理を別々の処理ノードで実行するように、前記処理受付部が受け付けた処理を複数の前記処理ノードに対して分散指示する分散処理指示部と、
を有する
分散処理制御装置。
【請求項２】
請求項１に記載の分散処理制御装置であって、
前記分散処理指示部は、前記複数の処理ノードに対して分散指示する際にある処理ノードに対して複数の処理を指示する場合、前記関連度に基づいて選択した前記複数の処理を集約した処理を指示する
分散処理制御装置。
【請求項３】
請求項１又は２に記載の分散処理制御装置であって、
前記分散処理指示部は、前記処理受付部が受け付けた処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも大きい場合、前記関連度に基づいて選択した複数の処理を集約し、当該集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項４】
請求項３に記載の分散処理制御装置であって、
前記分散処理指示部は、前記集約した処理を含む処理の関連度であり、関連があるほど予め定められた範囲内で高い値となる集約後関連度を、集約前の処理のペアごとの関連度に基づいて算出し、当該算出した集約後関連度に基づいて前記集約した処理を含む処理から選択した複数の処理を再度集約し、当該再度集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項５】
請求項１乃至４のいずれかに記載の分散処理制御装置であって、
前記分散処理指示部は、前記処理受付部が受け付けた処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも小さい場合、前記関連度に基づいて選択した処理の一部を分割し、当該分割した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項６】
請求項５に記載の分散処理制御装置であって、
前記分散処理指示部は、前記分割した処理を含む処理の関連度であり、関連があるほど予め定められた範囲内で高い値となる分割後関連度を、分割前の処理のペアごとの関連度に基づいて算出し、当該算出した分割後関連度に基づいて前記分割した処理を含む処理から選択した処理の一部を再度分割し、当該再度分割した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項７】
請求項１乃至６のいずれかに記載の分散処理制御装置であって、
前記分散処理指示部は、処理ノードに対する信頼度を示す信頼度情報を取得し、前記関連度と、前記信頼度情報と、に基づいて、前記処理受付部が受け付けた処理を複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項８】
請求項１乃至７のいずれかに記載の分散処理制御装置であって、
前記処理受付部は、キーとバリューのペアを生成するＭａｐ処理を伴う一連の処理であるジョブを受け付けることで、当該受け付けたジョブに含まれる前記Ｍａｐ処理を受け付け、
前記関連度取得部は、前記処理受付部が単位時間あたりに受け付けたジョブに含まれる前記Ｍａｐ処理の関連度を算出し、
前記分散処理指示部は、前記Ｍａｐ処理の関連度に基づいて、前記Ｍａｐ処理を複数の処理ノードに対して分散指示する
分散処理制御装置。
【請求項９】
分散処理制御装置が、
複数の処理を受け付け、
受け付けた処理のペアそれぞれについて、ある処理が他の処理とどの程度関連があるかを示し、関連があるほど予め定められた範囲内で高い値となる、予め定められた値である関連度を取得し、
取得した処理のペアごとの関連度に基づいて、実行予定の処理の中で関連度の最も低い処理のペアを集約する、または、実行予定の処理の中で組み合わせた際に関連度が最も高くなる組み合わせを分割することにより、実行予定の処理の中で関連度の値が高くなる処理別々の処理ノードで実行するように、前記処理受付部が受け付けた処理を複数の前記処理ノードに対して分散指示する
分散処理制御方法。
【請求項１０】
分散処理制御装置に、
複数の処理を受け付ける処理受付手段と、
前記処理受付手段が受け付けた処理のペアそれぞれについて、ある処理が他の処理とどの程度関連があるかを示し、関連があるほど予め定められた範囲内で高い値となる、予め定められた値である関連度を取得する関連度取得手段と、
前記関連度取得手段が取得した処理のペアごとの関連度に基づいて、実行予定の処理の中で関連度の最も低い処理のペアを集約する、または、実行予定の処理の中で組み合わせた際に関連度が最も高くなる組み合わせを分割することにより、実行予定の処理の中で関連度の値が高くなる処理別々の処理ノードで実行するように、前記処理受付手段が受け付けた処理を複数の前記処理ノードに対して分散指示する分散処理指示手段と、
を実現させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理制御装置、分散処理制御方法、プログラムに関する。
【背景技術】
【０００２】
大規模データを分析・処理するための技術として、データの処理を複数のノードに分散して行わせる並列分散処理が知られている。
【０００３】
例えば、特許文献１には、ジョブ配置処理部を有するジョブ制御部を備えた分散計算制御システムが記載されている。特許文献１によると、ジョブ配置処理部は、計算処理のフローグラフと、そのとき利用可能な仮想マシンの集合と、を求める。続いて、ジョブ配置処理部は、フローグラフの各要素を仮想マシンの集合の属するいずれかの仮想マシンにランダムに配置した配置パターンの集合を求める。そして、ジョブ配置処理部は、配置パターンの集合を構成する各配置パターンのコストを算出し、コストが最小となる配置パターンを選択する。特許文献１によると、上記構成により、Ｍａｐ処理及び当該Ｍａｐ処理の処理結果を使用するＲｅｄｕｃｅ処理を同一の物理マシン上で動作する仮想マシンに分散配置することが出来る。
【０００４】
また、例えば、特許文献２には、ジョブのパラメータ情報を検出して格納するパラメータ検出手段と、新たに与えられたジョブの新パラメータ情報とパラメータ検出手段が格納したパラメータ情報とを比較して、パラメータに依存しない重複部分のジョブを統合するジョブ統合手段と、共有実行手段と、を有する処理装置が記載されている。特許文献２によると、上記構成により、パラメータに依存しない重複部分を統合して処理を行うことが可能となる。その結果、特許文献２によると、処理量の削減を行うことが可能となり、ＭａｐＲｅｄｕｃｅ処理の高速化を図ることが可能となる。
【０００５】
また、データを分割して複数のノードに分散する際の技術として、例えば、特許文献３が知られている。特許文献３には、クラウドストレージブローカを有する分散クラウドストレージシステムが記載されている。特許文献３によると、クラウドストレージブローカは、データ項目を細分する際に用いる第１のルールと、細分化したデータ項目を各クラウドストレージプラットフォームへ割り振る際に用いる第２のルールと、に基づいて、データ項目を各クラウドストレージプラットフォームに割り振る。その結果、特許文献３によると、データを侵害されたプラットフォームから発見される脆弱性を低減することが出来る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２１８３０７号公報
【特許文献２】特開２０１２−１６００１４号公報
【特許文献３】特開２０１４−５１５５２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１、２に記載の技術の場合、処理を実行する１つのノードに関連性の高い処理が集中することがあった。その結果、１つのノードが攻撃され処理結果が漏洩した場合に、漏洩する情報量が大きくなるおそれがある、という問題があった。
【０００８】
また、特許文献３を用いた場合でも、特許文献１、２と同様の事態が生じることがあった。そのため、特許文献３の技術を用いたとしても、上記特許文献１、２の場合と同様に、１つのノードが攻撃され処理結果が漏洩した場合に、漏洩する情報量が大きくなるおそれがある、という問題があった。
【０００９】
このように、複数のノードでデータを並列分散処理する場合、相互に関連する情報がまとまって漏洩するおそれがある、という問題が生じていた。
【００１０】
そこで、本発明の目的は、複数のノードでデータを並列分散処理する場合、相互に関連する情報がまとまって漏洩するおそれがある、という問題を解決する分散処理制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
かかる目的を達成するため本発明の一形態である分散処理制御装置は、
処理を受け付ける処理受付部と、
前記処理受付部が受け付けた処理の関連度を取得する関連度取得部と、
前記関連度取得部が取得した処理の関連度に基づいて、前記処理受付部が受け付けた処理を複数の処理ノードに対して分散指示する分散処理指示部と、
を有する
という構成を採る。
【００１２】
また、本発明の他の形態である分散処理制御方法は、
処理を受け付け、
受け付けた処理の関連度を取得し、
取得した前記処理の関連度に基づいて、受け付けた前記処理を複数の処理ノードに対して分散指示する
という構成を採る。
【００１３】
また、本発明の他の形態であるプログラムは、
分散処理制御装置に、
処理を受け付ける処理受付手段と、
前記処理受付手段が受け付けた処理の関連度を取得する関連度取得手段と、
前記関連度取得手段が取得した処理の関連度に基づいて、前記処理受付手段が受け付けた処理を複数の処理ノードに対して分散指示する分散処理指示手段と、
を実現させるためのプログラムである。
【発明の効果】
【００１４】
本発明は、以上のように構成されることにより、複数のノードでデータを並列分散処理する場合、相互に関連する情報がまとまって漏洩するおそれがある、という問題を解決する分散処理制御装置を提供することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る分散処理システムの全体の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る分散処理計画ノードの構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る分散処理計画ノードにおける処理情報の構成例を示す図である。
【図４】本発明の第１の実施形態に係る分散処理計画ノードにおける処理関連度情報の構成例を示す図である。
【図５】本発明の第１の実施形態に係る分散処理計画ノードにおける処理情報の具体的な一例を示す図である。
【図６】本発明の第１の実施形態に係る分散処理計画ノードにおいて処理を分割する際に利用される情報の一例である。
【図７】本発明の第１の実施形態に係る分散処理計画ノードにおける処理情報の他の具体的な一例を示す図である。
【図８】本発明の第１の実施形態に係る分散処理計画ノードにおける処理関連度情報の具体的な一例を示す図である。
【図９】本発明の第１の実施形態に係る分散処理計画ノードにおいて処理を集約後再計算した処理関連度情報の具体的な一例を示す図である。
【図１０】本発明の第１の実施形態に係る分散処理計画ノードにおける実行計画生産部が処理を分割する際に用いる情報の一例を示す図である。
【図１１】本発明の第１の実施形態に係る分散処理計画ノードにおいて処理を分割後再計算した処理関連度情報の具体的な一例を示す図である。
【図１２】本発明の第１の実施形態に係る分散処理計画ノードの動作の一例を示すフローチャートである。
【図１３】本発明の第２の実施形態に係る分散処理計画ノードの構成を示すブロック図である。
【図１４】本発明の第３の実施形態に係る分散処理制御装置の構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
［第１の実施形態］
図１は、分散処理システムの全体の構成を示すブロック図である。図２は、分散処理計画ノード１の構成を示すブロック図である。図３は、処理情報１４の構成例を示す図である。図４は、処理関連度情報１５の構成例を示す図である。図５は、処理情報１４の具体的な一例を示す図である。図６は、実行計画生成部１３が処理を分割する際に利用する情報の一例である。図７は、処理情報１４の他の具体的な一例を示す図である。図８は、処理関連度情報の具体的な一例を示す図である。図９は、実行計画生産部１３において処理を集約した後、再計算した処理関連度情報１５の具体的な一例を示す図である。図１０は、実行計画生産部１３が処理を分割する際に用いる情報の一例を示す図である。図１１は、実行計画生産部１３において処理を分割した後、再計算した処理関連度情報１５の具体的な一例を示す図である。図１２は、分散処理計画ノード１の動作の一例を示すフローチャートである。
【００１７】
本発明の第１の実施形態では、処理依頼元ノードから依頼された処理（Ｍａｐ処理）を、各処理ノードに対して分散指示する分散処理計画ノード１について説明する（図１参照）。後述するように、本実施形態における分散処理計画ノード１は、処理依頼元ノードからＭａｐ処理を伴う一連の処理（以下、ジョブと表現する）を受信する。続いて、分散処理計画ノード１は、単位時間あたりに取得したジョブに含まれるＭａｐ処理間の関連度を取得する。その後、分散処理計画ノード１は、取得したＭａｐ処理間の関連度に基づいて、受信したＭａｐ処理の実行を各処理ノードに対して分散指示する。
【００１８】
このように、本実施形態では、ＭａｐＲｅｄｕｃｅモデルを利用して並列分散処理を行う際に、Ｍａｐ処理を実行する各処理ノードに対してＭａｐ処理の実行を指示する分散処理計画ノード１について説明する。なお、図１では処理依頼元ノードが１つの場合について示した。しかしながら、分散処理計画ノード１は、複数の処理依頼元ノードからジョブを取得するよう構成しても構わない。また、分散処理計画ノード１が接続されている処理ノードの数は、２以上の任意の数で構わない。
【００１９】
図２を参照すると、本実施形態における分散処理計画ノード１は、処理受付部１１と、関連度解析部１２（関連度取得部）と、実行計画生成部１３（分散処理指示部の一部）と、分散処理命令部１４（分散処理指示部の一部）と、処理情報１５と、処理関連度情報１６と、を有している。
【００２０】
なお、分散処理計画ノード１は、図示しないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置と記憶装置とを有している。分散処理計画ノード１は、例えば、記憶装置が備えるプログラムを実行することで、上記各部の機能を実現することになる。
【００２１】
処理受付部１１は、処理依頼元ノードからジョブを受け付ける。そして、処理受付部１１は、単位時間あたり（所定の時間。時間の区切りは任意で構わない）に処理依頼元ノードから受け付けたジョブを関連度解析部１２へと送信する。
【００２２】
このように、処理受付部１１は、処理依頼元ノードから受け付けたジョブを所定時間ごとに関連度解析部１２に送信する。なお、上述したように、処理受付部１１が受け付けたジョブにはＭａｐ処理が含まれている。そのため、処理受付部１１は、ジョブを受け付けることで、Ｍａｐ処理を受け付けることになる。
【００２３】
関連度解析部１２は、処理受付部１１からジョブを受信すると、処理情報１５を参照することで、ジョブ中の処理（例えば、データ取得処理やＭａｐ処理など）の構成に関する情報を取得する。つまり、関連度解析部１２は、処理受付部１１からジョブを受信すると、処理情報１５を参照することで、取得したジョブをデータ取得処理やＭａｐ処理などの各種処理に細分化する。
【００２４】
また、関連度解析部１２は、処理関連度情報１６を参照することで、取得したジョブ中の処理のうちのＭａｐ処理（分散処理することになる処理）についての関連度を取得する。具体的には、関連度解析部１２は、処理関連度情報１６を参照することで、取得した各Ｍａｐ処理のペアについての関連度をそれぞれ取得する。
【００２５】
その後、関連度解析部１２は、取得した各Ｍａｐ処理のペアについての関連度を示す情報（例えば、関連度の一覧の情報）を実行計画生成部１３に送信する。
【００２６】
このように、関連度解析部１２は、処理受付部１１からジョブを受信すると、ジョブの構成を示す情報を取得することでジョブを細分化して、Ｍａｐ処理についての情報を取得する。続いて、関連度解析部１２は、取得した各Ｍａｐ処理間の関連度を示す情報を取得する。その後、関連度解析部１２は、関連度を示す情報を実行計画生成部１３へ送信する。
【００２７】
実行計画生成部１３は、関連度解析部１２から受信した関連度を示す情報と、処理ノードのリソースの空き状況を示す情報と、に基づいて、処理受付部１１が受け付けたジョブに含まれるＭａｐ処理をどの処理ノードに実行させるかを示す実行計画を生成する。
【００２８】
例えば、実行計画生成部１３は、関連度解析部１２から各Ｍａｐ処理のペアの関連度を示す情報を取得する。また、実行計画生成部１３は、各処理ノードを監視することで、Ｍａｐ処理を実行可能な（リソースに空きがある）処理ノードの数を監視する。そして、実行計画生成部１３は、上記ペアの関連度を示す情報と、Ｍａｐ処理を実行可能な処理ノードの数と、に基づいて、関連度が高いＭａｐ処理のペアが別々の処理ノードで実行されるように、実行計画を生成する。
【００２９】
具体的には、例えば、実行計画生成部１３は、各Ｍａｐ処理に対して、Ｍａｐ処理を実行する際に必要となる処理ノードの数を示す処理コストを算出する。そして、実行計画生成部１３は、Ｍａｐ処理を実行可能な処理ノードの数と、処理コストと、を比較する。なお、処理コストは、Ｍａｐ処理の種類や内容、対応する処理の量などに応じて変化することになる。
【００３０】
処理コストと実行可能な処理ノードの数とが等しい場合、実行計画部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。
【００３１】
この場合、実行計画生成部１３は、１つの処理ノードが１つの種類のＭａｐ処理を実行するよう実行計画を生成することになる。
【００３２】
また、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも大きい場合、Ｍａｐ処理間の関連度に基づいて集約する対象となるＭａｐ処理のペアを選択し、当該選択したＭａｐ処理を集約する。例えば、実行計画生成部１３は、関連度解析部１２が取得したうちの関連度の最も低いＭａｐ処理のペアを集約する。その後、実行計画生成部１３は、集約したＭａｐ処理をそれぞれの処理ノードで実行するよう実行計画を生成する。
【００３３】
この場合、実行計画生成部１３は、集約された複数のＭａｐ処理が一つの処理ノードで実行される実行計画を生成することがあることになる。ただし、上記のように、実行計画生成部１３は、関連度の低いペアを集約している。そのため、実行計画生成部１３は、ある処理ノードに関連度の高いＭａｐ処理が集中しないように実行計画を生成することになる。
【００３４】
なお、実行計画生成部１３がＭａｐ処理のペアを集約しても、依然として、処理コストが実行可能な処理ノードの数よりも大きい場合が考えられる。この場合、実行計画生成部１３は、集約後のＭａｐ処理の各ペアに対する関連度（集約後関連度）を算出して、当該算出した集約後関連度に基づいて再度Ｍａｐ処理を集約することが出来る。その後、実行計画生成部１３は、集約したＭａｐ処理をそれぞれの処理ノードで実行するよう実行計画を生成することになる。また、上記処理を行っても処理コストが実行可能な処理ノードの数よりも大きい場合、実行計画生成部１３は、更に上記処理を繰り返す。このように、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも大きい場合、Ｍａｐ処理の集約と関連度（集約後関連度）の算出とを繰り返すことで、関連度の低いＭａｐ処理のペアを集約して実行可能な実行計画を生成することになる。
【００３５】
また、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも小さい場合、Ｍａｐ処理間の関連度に基づいて分割する対象となるＭａｐ処理を選択し、当該選択したＭａｐ処理の一部を分割する。例えば、実行計画生成部１３は、組み合わせた際に関連度が最も高くなる組み合わせを分割する。その後、実行計画生成部１３は、分割したＭａｐ処理をそれぞれの処理ノードで実行するよう実行計画を生成する。
【００３６】
この場合、実行計画生成部１３は、１つの処理ノードに１つの種類のＭａｐ処理又は分割されたＭａｐ処理を実行するよう実行計画を生成することになる。上記のように、実行計画生成部１３は、組み合わせた際に関連度が最も高くなる組み合わせを分割している。そのため、実行計画生成部１３は、各処理ノードで実行するＭａｐ処理の関連度がさらに低くなるように、実行計画を生成することになる。
【００３７】
なお、実行計画生成部１３がＭａｐ処理のペアを分割しても、依然、処理コストが実行可能な処理ノードの数よりも小さい場合が考えられる。この場合、実行計画生成部１３は、分割後のＭａｐ処理の各ペアに対する関連度（分割後関連度）を算出して、当該算出した分割後関連度に基づいて再度Ｍａｐ処理を分割することが出来る。その後、実行計画生成部１３は、分割したＭａｐ処理をそれぞれの処理ノードで実行するよう実行計画を生成することになる。また、上記処理でも処理コストが実行可能な処理ノードの数よりも小さい場合、実行計画生成部１３は、更に上記処理を繰り返す。このように、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも小さい場合、Ｍａｐ処理の分割と関連度（分割後関連度）の算出とを繰り返すことで、各処理ノードで実行されるＭａｐ処理の関連度が低くなるように実行計画を生成することになる。
【００３８】
また、実行計画生成部１３は、Ｍａｐ処理を集約・分割する際に、各Ｍａｐ処理を構成する要素（例えば、男女の集計のＭａｐ処理の場合の要素は男性と女性など）の項目数やデータ型を考慮して集約・分割することが出来る。例えば、実行計画生成部１３は、関連度が最も高くなる組み合わせが複数ある場合、Ｍａｐ処理を構成する要素の数が最も大きいＭａｐ処理を分割するよう構成することが出来る。
【００３９】
分散処理命令部１４は、実行計画生成部１３から当該実行計画生成部１３が生成した実行計画を受信する。そして、分散処理命令部１４は、実行計画生成部１３が生成した実行計画に基づいて、各処理ノードに対してＭａｐ処理の実行を指示する。
【００４０】
分散処理命令部１４が実行計画に基づいて各処理ノードに対してＭａｐ処理の実行を指示することで、各処理ノードでＭａｐ処理が実行されることになる。
【００４１】
処理情報１５は、分散処理計画ノード１が有するハードディスクやメモリなどの記憶装置に記憶されている。処理情報１５は、ジョブの詳細情報として、どのようなデータに対してどのような処理を行うかを定義している。上述したように、処理情報１５は関連度解析部１２で利用されることになる。
【００４２】
図３は、処理情報１５の構成例である。処理情報１５では、例えば、ジョブの種類を示すジョブ名と、当該ジョブ中の処理（例えば、データ取得処理やＭａｐ処理など）を示すジョブ中の処理と、が対応付けられている。例えば、図３の１行目では、ジョブ名Ａにジョブ中の処理ａが対応づけられている。なお、ジョブ中の処理に含まれるデータ取得処理やＭａｐ処理などの処理の種類や数は、対応するジョブに応じて変わることになる。
【００４３】
処理関連度情報１６は、分散処理計画ノード１が有するハードディスクやメモリなどの記憶装置に記憶されている。処理関連度情報１６は、あるＭａｐ処理が他のＭａｐ処理とどの程度関連があるかを定義している。上述したように、処理関連度情報１６は、関連度解析部１２で利用されることになる。
【００４４】
図４は、処理関連度情報１６の構成例である。処理関連度情報１６では、例えば、Ｍａｐ処理の種類を示す処理名と、当該Ｍａｐ処理の他のＭａｐ処理との関係を示す他の処理との関連度と、が対応付けられている。例えば、図４の１行目では、処理名Ｘに他の処理との関連度ｘが対応付けられている。他の処理との関連度には、当該他の処理との関連度と対応付けられたＭａｐ処理と、他のＭａｐ処理それぞれとの関連度が含まれていることになる。
【００４５】
以上が、分散処理計画ノード１の構成の一例である。次に、上記構成の分散処理計画ノード１が行う処理の一例について説明する。例えば、分散処理計画ノード１が行う処理の一例として、売上明細のデータに対する各情報の集計を行う「商品の購入ユーザ分析」のジョブと、ある文書に対して単語毎に出現頻度をカウントして集計する「ワードカウント」のジョブと、の実行計画を生成して処理の実行を指示する場合について説明する。
【００４６】
図２で示すように、処理受付部１１は、処理依頼元ノードから、単位時間に「商品の購入ユーザ分析」のジョブと、「ワードカウント」のジョブと、を受け付ける。そして、処理受付部１１は、上記受け付けたジョブを関連度解析部１２に送信する。
【００４７】
続いて、関連度解析部１２は、処理情報１５を参照することで、ジョブ中の処理（例えば、データ取得処理やＭａｐ処理など）の構成に関する情報を取得する。
【００４８】
例えば、処理情報１５では、図５で示すような「商品の購入ユーザ分析」のジョブと下記処理１〜５までを含むジョブ中の処理との対応付けが行われているとする。
（処理名）              （処理属性）
・処理１  売上明細データ取得       データ取得（売上明細）
・処理２  購入者データ取得           データ取得（購入者）
・処理３  購入時期の集計              Ｍａｐ処理（購入日）
・処理４  年代の集計                     Ｍａｐ処理（購入者年齢）
・処理５  男女の集計                     Ｍａｐ処理（購入者性別）
【００４９】
この場合、関連度解析部１２は、処理情報１５を参照することで、上記処理１〜５を取得することになる。なお、上記処理のうち、処理１、処理２は、データ取得を行う処理であることを示している。そのため、処理１、処理２の処理により、例えば図６で示すようなＭａｐ処理に必要な入力データが生成されることになる。また、処理３、４、５は、Ｍａｐ処理を行う処理であることを示している。
【００５０】
また、例えば、処理情報１では、図７で示すような「ワードカウント」のジョブと下記処理１〜２までを含むジョブ中の処理との対応付けが行われているとする。
（処理名）              （処理属性）
・処理１  文書データ取得              データ取得（文書）
・処理２  単語の集計                     Ｍａｐ処理（単語）
【００５１】
この場合、関連度解析部１２は、処理情報１５を参照することで、上記処理１〜２を取得することになる。また、「ワードカウント」のジョブ中の処理２が、Ｍａｐ処理を行う処理に該当する。
【００５２】
以上より、関連度解析部１２は、処理情報１５を参照することで、例えばＭａｐ処理「購入時期の集計」、「年代の集計」、「男女の集計」、「単語の集計」、を取得する。
【００５３】
続いて、関連度解析部１２は、処理関連度情報１６を参照して、各Ｍａｐ処理の相互の関連度を取得する。例えば、関連度解析部１２は、図８で示すような各Ｍａｐ処理間の相互の関連度を取得する。
【００５４】
なお、本実施形態においては、処理の関連度を０〜１の数値で表現するものとする。また、関連度は、１に近いほど関連があるものとする。また、ジョブ「商品の購入ユーザ分析」中の処理と、ジョブ「ワードカウント」中の処理と、の間に関連はない（限りなく０に近い値として、例えば０．０１と定義する）ものとする。
【００５５】
図８を参照すると、関連度解析部１２は、「購入時期の集計」と「購入時期の集計」とのような同じ種類のＭａｐ処理間の関連度として、関連が非常に高いことを示す関連度１を取得する。また、関連度解析部１２は、「購入時期の集計」と「年代の集計」との関連度として、例えば関連度０．５を取得する。このように、問題解析部１２は、各Ｍａｐ処理間の関連度を取得する。
【００５６】
なお、関連度解析部１２は、例えば、「男女の集計」と「年代の集計」との関連度として、関連度０．７を取得する（図８参照）。このように、関連度解析部１２は、各Ｍａｐ処理のペアごとに与えられた関連度を取得する（異なるＭａｐ処理のペアが同じ値の関連度を有していても構わない）。また、関連度解析部１２は、上記のように、「購入時期の集計」、「年代の集計」、「男女の集計」と、「単語の集計」と、の関連度として、関連が非常に低いことを示す関連度０．０１を取得する。
【００５７】
そして、関連度解析部１２は、取得した関連度を示す情報（例えば、関連度の一覧の情報）を実行計画生成部１３に送信する。
【００５８】
実行計画生成部１３は、取得した各Ｍａｐ処理間の関連度を示す情報と、処理ノードのリソースの空き状況を示す情報と、各Ｍａｐ処理の処理コストと、に基づいて、実行計画を生成する。
【００５９】
実行計画生成部１３は、取得した各Ｍａｐ処理の処理コストを算出して、算出した処理コストと、処理ノードのリソースの空き状況と、の比較を行う。
【００６０】
例えば、実行計画生成部１３は、売上明細の３つの処理に対してそれぞれ１０ノードの処理コストが必要となり、単語出現頻度カウント処理に対して５ノードの処理コストが必要になるものとして各処理コストを算出する。つまり、実行計画生成部１３は、各Ｍａｐ処理を実行するために必要となる処理コストとして、下記処理コストを算出する。
・単語の集計                     ５ノード
・購入時期の集計              １０ノード
・年代の集計                     １０ノード
・男女の集計                     １０ノード
【００６１】
そして、実行計画生成部１３は、算出した処理コストとＭａｐ処理を実行可能な処理ノードの数との比較を行う。
【００６２】
例えば、実行可能な処理ノードの数が３５ノードである場合、処理コストと実行可能な処理ノードの数とが等しくなることになる。そこで、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。
【００６３】
また、例えば、実行可能な処理ノードの数が３０ノードの場合など３５ノード未満の場合、処理コストが実行可能な処理ノードの数よりも大きくなることになる。そこで、実行計画生成部１３は、例えば、関連度の最も低いＭａｐペアである「購入時期の集計」と「単語の集計」とを集約する。その結果、実行計画生成部１３が実行計画を生成するＭａｐ処理としては、「購入時期の集計」、「年代の集計」、「男女の集計」、「購入時期＋単語の集計」があることになる。また、処理コストは、例えば下記のようになることになる。
・単語の集計                     ５→０ノード
・購入時期の集計              １０→５ノード
・年代の集計                     １０ノード
・男女の集計                     １０ノード
・購入時期＋単語の集計    ０→５ノード
【００６４】
上記処理により、実行可能な処理ノードの数と処理コストとが等しくなった場合（この場合は、実行可能な処理ノードの数が３０ノードであった場合）、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。
【００６５】
また、例えば実行可能な処理ノードの数が２９ノード以下である場合、上記集約を行っても依然として、処理コストが実行可能な処理ノードの数よりも大きくなることになる。そこで、実行計画生成部１３は、集約後のＭａｐ処理の各ペアに対する関連度（集約後関連度）を算出する。例えば、実行計画生成部１３は、集約したＭａｐ処理の関連度を加算することで、集約後のＭａｐ処理の各ペアに対する関連度を算出する。
【００６６】
具体的には、図９で示すように、実行計画生成部１３は、集約した処理である「購入時期＋単語の集計」と「年代の集計」との関連度として０．５１を算出する。この値は、年代の集計と購入時期の集計と関連度である０．５と、年代の集計と単語の集計との関連度である０．０１と、を加算した値である。このように、実行計画生成部１３は、処理を集約した場合、集約した処理に応じて関連度を算出する。なお、算出の結果、関連度が１以上になる場合、実行計画生成部１３は、関連度１を算出する（関連度は１以下である）ものとする。
【００６７】
そして、実行計画生成部１３は、算出した関連度に基づいて再度関連度の最も低いＭａｐペアを集約する。例えば、実行計画生成部１３は、購入時期の集計と年代の集計とを集約する。そして、上記集約により実行可能な処理ノードの数と処理コストとが等しくなった場合、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。一方、上記集約を行ってもなお処理コストが実行可能な処理ノードの数よりも大きくなる場合、実行計画生成部１３は、集約後のＭａｐ処理の各ペアに対する関連度の算出と、当該算出した関連度に基づくＭａｐ処理の集約と、を再度行う。このように、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも大きい場合、Ｍａｐ処理の集約と関連度の算出とを繰り返す。これにより、実行計画生成部１３は、各処理ノードで実行されるＭａｐ処理の関連度が低くなるように実行計画を生成する。
【００６８】
また、例えば、実行可能な処理ノードの数が４０ノードの場合など処理コストの３５ノードよりも大きい場合、処理を同時実行する処理ノードに余裕があることになる。そこで、実行計画生成部１３は、例えば、組み合わせた際に関連度が最も高くなる組み合わせである「年代の集計」を分割する（「年代の集計」の組み合わせは関連度１であり関連度が最も高い）。その結果、実行計画生成部１３が実行計画を生成するＭａｐ処理としては、「購入時期の集計」、「年代の集計（〜１０代・２０代・３０代）」、「年代の集計（４０代、５０代、６０代〜）」、「男女の集計」、「購入時期＋単語の集計」があることになる。また、処理コストは、下記のようになることになる。
・単語の集計                     ５ノード
・購入時期の集計              １０ノード
・年代の集計                     １０→２０ノード
・男女の集計                     １０ノード
【００６９】
なお、上記分割の判断は、実行計画生成部１３が図示しない記憶装置から取得した図１０で示すようなＭａｐ処理別分割情報を参照して行うことが出来る。つまり、実行計画生成部１３は、各Ｍａｐ処理を構成する要素の項目数やデータ型を考慮して分割することが出来る。図１０を参照すると、組み合わせた際に関連度が最も高くなる組み合わせである「購入時期の集計」間、「年代の集計」間、「男女の集計」間のうち、「年代の集計」のＭａｐ処理が最も多くの要素から構成されている。そこで、例えば実行計画生成部１３は、「年代の集計」のＭａｐ処理を分割することを決定する。
【００７０】
上記処理により、実行可能な処理ノードの数と処理コストとが等しくなった場合（この場合は、実行可能な処理ノードの数が４５ノードであった場合）、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。
【００７１】
また、例えば実行可能な処理ノードの数が４６ノード以上である場合、上記分割を行っても、依然として、処理コストが実行可能な処理ノードの数よりも小さくなることになる。そこで、実行計画生成部１３は、分割後のＭａｐ処理の各ペアに対する関連度（分割後関連度）を算出する。例えば、実行計画生成部１３は、分割したＭａｐ処理の他のＭａｐ処理との関連度を減算することで、分割後のＭａｐ処理の各ペアに対する関連度を算出する。なお、減算する値の大きさは様々に調整して構わない。
【００７２】
具体的には、図１１で示すように、実行計画生成部１３は、分割した処理である「年代の集計（〜１０代、２０代、３０代）」と「購入時期の集計」との関連度として０．４を算出する。このように、実行計画生成部１３は、処理を分割した場合、分割した処理に応じて関連度を算出する。
【００７３】
そして、実行計画生成部１３は、組み合わせた際に関連度が最も高くなる組み合わせであるＭａｐペアを再度分割する。例えば、実行計画生成部１３は、男女の集計を分割する。そして、上記分割により実行可能な処理ノードの数と処理コストとが等しくなった場合、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。一方、上記分割を行ってもなお処理コストが実行可能な処理ノードの数よりも小さくなる場合、実行計画生成部１３は、分割後のＭａｐ処理の各ペアに対する関連度の算出と、当該算出した関連度に基づくＭａｐ処理の分割と、を再度行う。このように、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも小さい場合、Ｍａｐ処理の分割と関連度の算出とを繰り返す。これにより、実行計画生成部１３は、関連度の低いＭａｐ処理のペアを集約して実行可能な実行計画を生成する。
【００７４】
以上が、分散処理計画ノード１が行う処理の一例についての説明である。次に、分散処理計画ノード１の動作の一例について、図１２のフローチャートを参照して説明する。
【００７５】
図１２を参照すると、分散処理計画ノード１の処理受付部１１は、ジョブを受け付ける。そして、関連度解析部１２は、処理情報１５を参照して、処理受付部１１が単位時間に受け付けた全てのジョブに対して、当該ジョブに応じたＭａｐ処理を取得する（ステップＳ１０１）。
【００７６】
続いて、関連度解析部１２は、処理関連度情報１６を参照して、上記取得したＭａｐ処理間の相互の関連度を取得する（ステップＳ１０２）。そして、関連度解析部１２は、取得した関連度を実行計画生成部１３に送信する。
【００７７】
実行計画生成部１３は、各Ｍａｐ処理に対して処理コストを算出する。また、実行計画生成部１３は、処理ノードを監視して、リソースに空きがありＭａｐ処理を実行可能な処理ノードの数を取得する。そして、実行計画生成部１３は、算出した処理コストと、Ｍａｐ処理を実行可能な処理ノードの数と、を比較する（ステップＳ１０３）。
【００７８】
そして、処理コストと、Ｍａｐ処理を実行可能な処理ノードの数と、が等しい場合（ステップＳ１０３、処理コスト＝ノード）、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。その後、分散処理命令部１４は、処理計画生成部１３が生成した実行計画を用いて各処理ノードに対してＭａｐ処理を実行するよう命令する（ステップＳ１１０）。
【００７９】
また、処理コストが実行可能な処理ノードの数よりも大きい場合（ステップＳ１０３、処理コスト＞ノード）、実行計画生成部１３は、Ｍａｐ処理のペアの関連度に基づいて、Ｍａｐ処理の一部を集約する（ステップＳ１０４）。例えば、実行計画生成部１３は、関連度の最も低いＭａｐ処理のペアを集約する。
【００８０】
そして、実行計画生成部１３は、上記集約後のＭａｐ処理の処理コストと、処理を実行可能な処理ノードの数と、の比較を行う（ステップＳ１０５）。
【００８１】
Ｍａｐ処理の集約の結果、処理コストが処理を実行可能な処理ノードの数以下になった場合（ステップＳ１０５、Ｙｅｓ）、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。その後、分散処理命令部１４は、処理計画生成部１３が生成した実行計画を用いて各処理ノードに対してＭａｐ処理を実行するよう命令する（ステップＳ１１０）。
【００８２】
一方、Ｍａｐ処理の集約の結果、処理コストが処理を実行可能な処理ノードの数以下にならなかった場合（ステップＳ１０５、Ｎｏ）、実行計画生成部１３は、集約後のＭａｐ処理の関連度を算出する（ステップＳ１０６）。その後、実行計画生成部１３は、当該算出した関連度を用いて、再度Ｍａｐ処理の集約を行うことになる（ステップＳ１０４）。
【００８３】
また、処理コストが実行可能な処理ノードの数よりも小さい場合（ステップＳ１０３、処理コスト＜ノード）、実行計画生成部１３は、Ｍａｐ処理のペアの関連度に基づいて、Ｍａｐ処理の一部を分割する（ステップＳ１０７）。例えば、実行計画生成部１３は、組み合わせた際に関連度が最も高くなる組み合わせとなるＭａｐ処理を分割する。
【００８４】
そして、実行計画生成部１３は、上記分割後のＭａｐ処理の処理コストと、処理を実行可能な処理ノードの数と、の比較を行う（ステップＳ１０８）。
【００８５】
Ｍａｐ処理の分割の結果、処理コストが処理を実行可能な処理ノードの数に達した場合（ステップＳ１０８、Ｙｅｓ）、実行計画生成部１３は、それぞれの処理ノードでそれぞれのＭａｐ処理を実行するよう実行計画を生成する。その後、分散処理命令部１４は、処理計画生成部１３が生成した実行計画を用いて各処理ノードに対してＭａｐ処理を実行するよう命令する（ステップＳ１１０）。
【００８６】
一方、Ｍａｐ処理の分割の結果、処理コストが処理を実行可能な処理ノードの数に達しなかった場合（ステップＳ１０８、Ｎｏ）、実行計画生成部１３は、分割後のＭａｐ処理の関連度を算出する（ステップＳ１０９）。その後、実行計画生成部１３は、当該算出した関連度を用いて、再度Ｍａｐ処理の分割を行うことになる（ステップＳ１０７）。
【００８７】
このように、本実施形態における分散処理計画ノード１は、関連度解析部１２と、実行計画生成部１３と、を有している。このような構成により、分散処理計画ノード１の関連度解析部１２は、取得したジョブに応じたＭａｐ処理の関連度を取得することが出来る。また、実行計画生成部１３は、関連度解析部１２が取得した関連度に基づいて、一部の処理ノードに関連度の高いＭａｐ処理が集中しないように（関連度の高いＭａｐ処理を別々の処理ノードで実行するように）実行計画を生成することが出来る。その結果、分散処理計画ノード１は、Ｍａｐ処理を実行する各処理ノードに関連度の高いＭａｐ処理が集中することを防止することが可能となり、仮にあるノードが攻撃され処理結果が漏洩した場合でも、相互に関連する情報がまとまって漏洩することを防止することが可能となる。
【００８８】
なお、本実施形態においては、処理コストが実行可能な処理ノードの数よりも小さい場合、実行計画生成部１３は、Ｍａｐ処理の一部を分割するとした。しかしながら、実行計画生成部１３は、処理コストが実行可能な処理ノードの数よりも小さい場合、Ｍａｐ処理を分割せずに実行計画を生成するように構成しても構わない。
【００８９】
また、本実施形態においては、同じ種類のＭａｐ処理は関連度が高い（関連度が１である）とした。しかしながら、処理の性質などによっては、同じ種類のＭａｐ処理であっても関連度が低くなる場合がある。そのため、同じ種類のＭａｐ処理であってもその種類によっては、関連度が低くなるように構成しても構わない。
【００９０】
また、実行計画生成部１３は、集約・分割のパターンとそれにより予想される関連度とを先に算出し、算出結果に基づいてどのように集約・分割するかを判断するように構成しても構わない。
【００９１】
また、実行計画生成部１３は、Ｍａｐ処理を集約・分割する際に候補となるＭａｐ処理が複数ある場合、様々な方法を用いて集約・分割するＭａｐ処理を特定することが出来る。実行計画生成部１３は、上述したように、Ｍａｐ処理を構成する要素の項目数やデータ型を考慮して集約・分割することが出来る。また、実行計画生成部１３は、例えば、集約するＭａｐ処理の組み合わせを候補の中からランダムに選択しても構わない。このように、本発明は、実行計画生成部１３が複数の候補から集約・分割するＭａｐ処理を特定する際に用いる方法には依存せず実施可能である。
【００９２】
また、本実施形態ではＭａｐＲｅｄｕｃｅモデルを利用して並列分散処理を行う場合について説明したが、本発明の適用は、ＭａｐＲｅｄｕｃｅモデルを用いる場合に限られない。本発明は、ＭａｐＲｅｄｕｃｅモデルを利用する場合以外の並列分散処理を行う場合に適用しても構わない。
【００９３】
［第２の実施形態］
本発明の第２の実施形態では、処理依頼元ノードから依頼された処理（Ｍａｐ処理）の実行を、各処理ノードに対して分散指示する分散処理計画ノード２について説明する。後述するように、本実施形態における分散処理計画ノード２は、各処理ノードの信頼度を加味して、各処理ノードに対して分散指示することになる。
【００９４】
図１３を参照すると、本実施形態における分散処理計画ノード２は、第１の実施形態で説明した分散処理計画ノード１とほぼ同様の構成を有している。つまり、分散処理計画ノード２は、処理受付部１１と、関連度解析部１２と、実行計画生成部１３と、分散処理命令部１４と、処理情報１５と、処理関連度情報１６と、を有している。さらに、本実施形態における分散処理計画ノード２は、ノード信頼度情報２１を有している。
【００９５】
このように、本実施形態における分散処理計画ノード２は、第１の実施形態で説明した分散処理計画ノード１とほぼ同様の構成を有している。なお、本実施形態においては、第１の実施形態の説明と重複する内容については、その説明を省略する。そのため、以下においては、本実施形態に特徴的な構成について説明する。
【００９６】
ノード信頼度情報２１は、分散処理計画ノード１が有するハードディスクやメモリなどの記憶装置に記憶されている。ノード信頼度情報２１は、各処理ノードにおいて情報漏洩や改ざんが行われる可能性などを示す各処理ノードの信頼度を定義している。ノード信頼度情報２１は、例えば、実行計画生成部１３で利用されることになる。
【００９７】
実行計画生成部１３は、関連度解析部１２から受信した関連度を示す情報と、処理ノードのリソースの空き状況を示す情報と、ノード信頼度情報２１と、に基づいて、処理受付部１１が受け付けたジョブに含まれるＭａｐ処理をどの処理ノードに実行させるかを示す実行計画を生成する。
【００９８】
例えば、実行計画生成部１３は、集約したＭａｐ処理が信頼度の低い処理ノードで実行されないように、実行計画を生成する。このように、実行計画生成部１３は、各処理ノードの信頼度と関連度とを組み合わせて実行計画を生成する。なお、実行計画生成部１３は、上記例示した以外の方法により実行計画を生成しても構わない。
【００９９】
このように、本実施形態における分散処理計画ノード２は、ノード信頼度情報２１を有している。このような構成により、実行計画生成部１３は、各処理ノードの信頼度を加味して実行計画を生成することが出来る。その結果、関連度の高い情報が一度に漏洩する可能性をより低減することが可能となる。
【０１００】
なお、分散処理計画ノード２は、上記構成に加えて、各Ｍａｐ処理で扱う情報の重要度などを更に加味して実行計画生成部１３を生成するように構成しても構わない。
【０１０１】
また、分散処理計画ノード２は、第１の実施形態で説明した分散処理計画ノード１と同様の変更を行うことが出来る。
【０１０２】
［第３の実施形態］
本発明の第３の実施形態では、処理を受け付けて、受け付けた処理を分散指示する分散処理制御装置３について説明する。なお、本実施形態では、分散処理制御装置３の構成の概略について説明する。
【０１０３】
図１４を参照すると、分散処理制御装置３は、処理受付部３１と、関連度取得部３２と、分散処理指示部３３と、を有している。
【０１０４】
処理受付部３１は、処理を受け付ける。また、関連度取得部３２は、処理受付部３１が受け付けた処理の関連度を取得する。また、分散処理指示部３３は、関連度取得部３２が取得した処理の関連度に基づいて、処理受付部３１が受け付けた処理を複数の処理ノードに対して分散指示する。
【０１０５】
このように、本実施形態における分散処理制御装置３は、処理受付部３１と、関連度取得部３２と、分散処理指示部３３と、を有している。このような構成により、関連度取得部３２は、処理受付部３１が受け付けた処理の関連度を取得することが出来る。また、分散処理指示部３３は、関連度取得部３２が取得した関連度に基づいて、複数の処理ノードに対して分散指示することが出来る。その結果、各処理ノードには、関連度に応じた（例えば、関連度が低い）処理が送られることになる。これにより、分散処理制御装置３は、各処理ノードに関連度の高い処理が集中することを防止することが可能となり、仮にあるノードが攻撃され処理結果が漏洩した場合でも、相互に関連する情報がまとまって漏洩することを防止することが可能となる。
【０１０６】
また、上述した分散処理制御装置３は、分散処理制御装置３に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、分散処理制御装置に、処理を受け付ける処理受付手段と、処理受付手段が受け付けた処理の関連度を取得する関連度取得手段と、関連度取得手段が取得した処理の関連度に基づいて、処理受付手段が受け付けた処理を複数の処理ノードに対して分散指示する分散処理指示手段と、を実現させるためのプログラムである。
【０１０７】
また、上述した分散処理制御装置３が作動することにより実行される分散処理制御方法は、処理を受け付け、受け付けた処理の関連度を取得し、取得した処理の関連度に基づいて、受け付けた処理を複数の処理ノードに対して分散指示する、という方法である。
【０１０８】
上述した構成を有する、プログラム、又は、分散処理制御方法、の発明であっても、上記分散処理制御装置３と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【０１０９】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における分散処理制御装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１１０】
（付記１）
処理を受け付ける処理受付部と、
前記処理受付部が受け付けた処理の関連度を取得する関連度取得部と、
前記関連度取得部が取得した処理の関連度に基づいて、前記処理受付部が受け付けた処理を複数の処理ノードに対して分散指示する分散処理指示部と、
を有する
分散処理制御装置。
【０１１１】
（付記２）
付記１に記載の分散処理制御装置であって、
前記分散処理指示部は、前記複数の処理ノードに対して分散指示する際にある処理ノードに対して複数の処理を指示する場合、前記関連度に基づいて選択した前記複数の処理を集約した処理を指示する
分散処理制御装置。
【０１１２】
（付記３）
付記１又は２に記載の分散処理制御装置であって、
前記分散処理指示部は、前記処理受付部が受け付けた処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも大きい場合、前記関連度に基づいて選択した複数の処理を集約し、当該集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１３】
（付記４）
付記３に記載の分散処理制御装置であって、
前記分散処理指示部は、前記集約した処理を含む処理の関連度である集約後関連度を算出し、当該算出した集約後関連度に基づいて前記集約した処理を含む処理から選択した複数の処理を再度集約し、当該再度集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１４】
（付記５）
付記１乃至４のいずれかに記載の分散処理制御装置であって、
前記分散処理指示部は、前記処理受付部が受け付けた処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも小さい場合、前記関連度に基づいて選択した処理の一部を分割し、当該分割した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１５】
（付記６）
付記５に記載の分散処理制御装置であって、
前記分散処理指示部は、前記分割した処理を含む処理の関連度である分割後関連度を算出し、当該算出した分割後関連度に基づいて前記分割した処理を含む処理から選択した処理の一部を再度分割し、当該再度分割した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１６】
（付記７）
付記１乃至６のいずれかに記載の分散処理制御装置であって、
前記分散処理指示部は、処理ノードに対する信頼度を示す信頼度情報を取得し、前記関連度と、前記信頼度情報と、に基づいて、前記処理受付部が受け付けた処理を複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１７】
（付記８）
付記１乃至７のいずれかに記載の分散処理制御装置であって、
前記処理受付部は、キーとバリューのペアを生成するＭａｐ処理を伴う一連の処理であるジョブを受け付けることで、当該受け付けたジョブに含まれる前記Ｍａｐ処理を受け付け、
前記関連度取得部は、前記処理受付部が単位時間あたりに受け付けたジョブに含まれる前記Ｍａｐ処理の関連度を算出し、
前記分散処理指示部は、前記Ｍａｐ処理の関連度に基づいて、前記Ｍａｐ処理を複数の処理ノードに対して分散指示する
分散処理制御装置。
【０１１８】
（付記９）
処理を受け付け、
受け付けた処理の関連度を取得し、
取得した前記処理の関連度に基づいて、受け付けた前記処理を複数の処理ノードに対して分散指示する
分散処理制御方法。
【０１１９】
（付記９−１）
付記９に記載の分散処理制御方法であって、
前記複数の処理ノードに対して分散指示する際にある処理ノードに対して複数の処理を指示する場合、前記関連度に基づいて選択した前記複数の処理を集約した処理を指示する
分散処理制御方法。
【０１２０】
（付記９−２）
付記９又は９−１に記載の分散処理制御方法であって、
処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも大きい場合、前記関連度に基づいて選択した複数の処理を集約し、当該集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
分散処理制御方法。
【０１２１】
（付記１０）
分散処理制御装置に、
処理を受け付ける処理受付手段と、
前記処理受付手段が受け付けた処理の関連度を取得する関連度取得手段と、
前記関連度取得手段が取得した処理の関連度に基づいて、前記処理受付手段が受け付けた処理を複数の処理ノードに対して分散指示する分散処理指示手段と、
を実現させるための
プログラム。
【０１２２】
（付記１０−１）
付記１０に記載のプログラムであって、
前記分散処理指示手段は、前記複数の処理ノードに対して分散指示する際にある処理ノードに対して複数の処理を指示する場合、前記関連度に基づいて選択した前記複数の処理を集約した処理を指示する
プログラム。
【０１２３】
（付記１０−２）
付記１０又は１０−１に記載のプログラムであって、
前記分散処理指示手段は、前記処理受付手段が受け付けた処理を実行する際に必要となる処理ノードの数が処理を実行可能な処理ノードの数よりも大きい場合、前記関連度に基づいて選択した複数の処理を集約し、当該集約した処理を含む処理を前記複数の処理ノードに対して分散指示する
プログラム。
【０１２４】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１２５】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１２６】
１、２  分散処理計画ノード
１１  処理受付部
１２  関連度解析部
１３  実行計画生成部
１４  分散処理命令部
１５  処理情報
１６  処理関連度情報
２１  ノード信頼度情報
３  分散処理制御装置
３１  処理受付部
３２  関連度取得部
３３  分散処理指示部
【図１】
0006547342.tif 000002
【図２】
0006547342.tif 000003
【図３】
0006547342.tif 000004
【図４】
0006547342.tif 000005
【図５】
0006547342.tif 000006
【図６】
0006547342.tif 000007
【図７】
0006547342.tif 000008
【図８】
0006547342.tif 000009
【図９】
0006547342.tif 000010
【図１０】
0006547342.tif 000011
【図１１】
0006547342.tif 000012
【図１２】
0006547342.tif 000013
【図１３】
0006547342.tif 000014
【図１４】
0006547342.tif 000015