(57)【要約】【課題】複数ノードによる分散並列処理においてオンメモリ型データストアにおけるデータのより効率的な配置を決定する技術を提供すること。【解決手段】複数ノードを用いて分散並列実行するよう要求された処理における各データの各ノードによる利用度情報と、実行中の他の処理における各データの各ノードによる利用度情報とを統合する利用度情報統合部２１と、利用度統合情報に基づいて、並列実行される１以上の処理における１以上のデータについてデータ利用度順位を決定するデータ利用度順位決定部２２と、利用度統合情報に基づいて、並列実行される１以上の処理におけるデータ毎に配置先ノード優先順位を決定する配置先ノード優先順位決定部２３と、データ利用度順位および配置先ノード優先順位に基づいて、各ノードのメモリからなるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定するデータ配置部２４とを備える。【選択図】      図４
2014074950.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアを含む分散データストアを管理する分散データストア管理装置であって、
前記１つ以上のノードを含む複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定部と、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記オンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置部と、
を備えた分散データストア管理装置。
【請求項２】
前記データ利用度順位決定部は、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを前記利用度情報に基づいてソートした情報を、前記データ利用度順位を表す情報として生成することを特徴とする請求項１に記載の分散データストア管理装置。
【請求項３】
前記実行要求対象となりうる処理において利用される１つ以上のデータのうち、前記オンメモリ型データストアに少なくとも所定のミニマム配置数だけ配置されうる対象となる複製対象データがあらかじめ定められているとき、
前記データ配置部は、前記データ利用度順位の示すデータのうち前記複製対象データを上位から順に前記ミニマム配置数ずつ選択し、選択した複製対象データの配置先ノードを前記配置先ノード優先順位に基づいて決定後、前記オンメモリ型データストアの残りの空き領域に格納可能な分だけ、前記データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順にデータを選択し、選択したデータの配置先ノードを前記配置先ノード優先順位に基づいて決定することを特徴とする請求項１または請求項２に記載の分散データストア管理装置。
【請求項４】
前記データ利用度順位決定部は、利用度が同一のデータについて、前記複製対象データを、前記複製対象データではないデータより高い順位に決定することを特徴とする請求項３に記載の分散データストア管理装置。
【請求項５】
前記データ利用度順位決定部は、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データについて前記複数のノードからの合計の利用総数を算出しておき、前記利用度が同一のデータについて、前記利用総数がより多いデータをより高い順位に決定することを特徴とする請求項１から請求項４のいずれか１項に記載の分散データストア管理装置。
【請求項６】
複数のノードを用いて複数の処理を分散並列実行する分散並列処理実行装置であって、
処理の実行要求を受信する実行要求受信部と、
前記複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当てる割当部と、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を、請求項１から請求項５のいずれか１項に記載の分散データストア管理装置に出力する処理解析部と、
前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに、前記分散データストア管理装置を用いて配置する処理準備部と、
前記実行要求対象の処理を、前記割当部により割り当てられた１つ以上のノードに実行させる処理実行部と、
を備えた分散並列処理実行装置。
【請求項７】
請求項１から請求項５のいずれか１項に記載の分散データストア管理装置と、
請求項６に記載の分散並列処理実行装置と、
前記分散データストアと、
を備えた分散並列処理システム。
【請求項８】
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定し、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置する、分散データストア管理方法。
【請求項９】
処理の実行要求を受信し、
分散並列処理を実行可能な複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当て、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得し、
取得した各利用度情報を請求項８に記載の分散データストア管理方法を実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置し、
前記実行要求対象の処理を、割り当てられた１つ以上のノードに実行させる、分散並列処理実行方法。
【請求項１０】
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定ステップと、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ノードを用いて分散並列処理を行う際に、複数ノードに分散された分散データストアを管理する技術に関する。
【背景技術】
【０００２】
近年、複数のサーバによる分散並列処理により、大量のデータや大容量データに対する処理を高速化する分散並列処理システムがよく知られている。このような分散並列処理システムは、例えば、定められた範囲のデータに対して、あらかじめ定められたタイミングで同じ処理を繰り返すことにより結果を得るバッチ処理を行う用途に適している。
【０００３】
例えば、特許文献１には、実行対象のジョブの資源使用特性を分類することにより、定期的に取得される各サーバの資源負荷状況に基づいて、分類に適合する資源負荷状況にあるサーバを決定して該ジョブを実行させる技術が記載されている。
【０００４】
また、特許文献２には、並列実行されるバッチ処理ごとに、そのバッチ処理に資源ノードを割り当てる技術が記載されている。
【０００５】
このような分散並列処理システムでは、処理に用いるデータを、分散データストアに配置する。ここで、データストアとは、データの生成、読み込み、更新、削除が可能なデータの保持先の総称である。また、分散データストアとは、協調動作により単一のデータストアであるかのように振舞う複数のデータストアである。分散データストアは、分散並列処理システムを構成するサーバ（以下、ノードともいう）の主記憶装置（以下、単にメモリとも記載する）やハードディスク等の記憶装置によって構成される。また、各ノードのメモリを主体として構成される分散データストアを、オンメモリ型データストアとも呼ぶ。
【０００６】
ここで、一般的に、ハードディスク等の記憶装置は、オンメモリ型データストアと比較して大量のデータを格納可能である。したがって、分散データストアを構成するハードディスク等の記憶装置は、処理に用いられるデータサイズに対して十分な容量を備えていることが多い。一方、メモリは、処理に用いられるデータサイズに対して格納可能な容量に制約があるのが一般的である。また、オンメモリ型データストアは、通常、ハードディスク等の他の記憶装置に比べてデータの生成、読み込み、更新、削除の処理性能がより高速である。
【０００７】
そこで、このような分散並列処理システムは、オンメモリ型データストアにおいて、複数のノードに同じデータを配置することがある。以下では、このような同一のデータの個々を複製データと呼び、配置されたデータ数を複製数と呼ぶものとする。複数のノードのメモリに同じデータを配置することのメリットは、以下の２点である。
１．メモリ上のデータ破損やノードのダウンなどによりそのメモリ上のデータにアクセスできなくなった時、該データを必要とするノードは、ハードディスク等の記憶装置に対するディスクアクセスによらずに、正常な他のノードのメモリ上にあるそのデータにアクセスすることができる。これにより、このような分散並列処理システムは、ディスクアクセスを減らすことができ、性能の低下を防ぐことができる。
２．複数のノードがあるデータを必要とするときに、いずれかのノードのメモリ上にある1つのデータに複数のノードがアクセスするよりも、複数のノードに分散されている複製データに複数のノードがそれぞれアクセスする方が、分散並列処理システムの全体的な性能を上げることができる。
【０００８】
したがって、複製データとしては、例えば、破損によって再度メモリに読み込むのにコストがかかるデータや、複数のノードで使用される可能性があるデータ、また、単一のノードにおいても使用頻度が高いと予想されるデータなどが適切である。
【０００９】
また、このような分散並列処理システムは、効率の良い分散並列処理を行うために、オンメモリ型データストアへの複製データの読み込みおよび退避を明示的に行う。なお、このような分散並列処理システムは、複製データ以外のデータについては、必要な時にメモリに読み込み、ＬＲＵ（Least Recently Used）等による退避を行う。
【００１０】
このため、上述のような分散並列処理システムでは、オンメモリ型データストアに読み込むデータを明示的に選択し、その複製数や配置先を決定することが、システム全体の性能において重要となる。なお、以下では、オンメモリ型データストアに読み込むデータを選択し、その複製数や配置先を決定することを、単に“オンメモリ型データストアに読み込むデータの配置”ともいうものとする。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１０−３３４０５７号公報
【特許文献２】特開２００８−２２６１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１および特許文献２に記載されたものは、ジョブ毎またはバッチ処理毎に、サーバや資源の割当を決定している。
【００１３】
ところが、上述のような分散並列処理システムでは、オンメモリ型データストアに読み込むデータの配置を、ジョブ毎またはバッチ処理毎に決定すると、システム全体の性能を低下させる場合がある。
【００１４】
この問題について、具体例を用いて説明する。例えば、分散並列処理システムが第１から第４の４つのノードで構成され、２つのジョブを並列実行する場合について考える。このとき、第１のジョブはY1，Y2，Z1，Z2のデータを参照して処理を行い、第２のジョブはY1，Y2，Y3，Z3のデータを参照して処理を行うとする。また、各ノードのメモリには、データを３個ずつ配置可能であるものとする。なお、この具体例では、データサイズについては考慮しないものとする。また、分散並列処理システムは、第１のジョブを、第１および第２のノードで実行するよう割り当て、第２のジョブを、第３および第４のノードで実行するよう割り当てたものとする。また、この分散並列処理システムは、Y1〜Ｙ４のデータがより頻繁に参照されるデータであるとして、２つずつメモリに配置するものとする。
【００１５】
このとき、ジョブ毎にデータの配置を行うと、この分散並列処理システムは、第１のジョブについては、第１および第２のノードのメモリに、Y1およびY2を２つずつと、Z1およびZ2を１つずつとで、合計６個配置する。また、この分散並列処理システムは、第２のジョブについては、第３および第４のノードのメモリに、Y1、Y2、Y3を２つずつ合計６個配置する。すると、第３および第４のメモリにこれ以上空き領域がないため、この分散並列処理システムは、第２のジョブで利用されるZ3をメモリに配置することができない。したがって、この分散並列処理システムは、第２のジョブの実行中に、Z3を格納したハードディスク等の記憶装置または外部装置等を頻繁にアクセスしなければならず、処理性能を低下させる。
【００１６】
このように、上述の分散並列処理システムでは、オンメモリ型データストアに読み込むデータの配置に上述の特許文献１および特許文献２の技術を適用すると、ジョブ毎またはバッチ処理毎にデータの配置を決定してしまう。このため、ジョブによっては参照頻度の高いデータをメモリから参照できず、入出力に時間がかかる記憶装置から参照することになり、分散並列処理システム全体の処理性能を低下させていた。
【００１７】
本発明は、上述の課題を解決するためになされたもので、複数ノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおけるデータのより効率的な配置を決定する技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の分散データストア管理装置は、１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアを含む分散データストアを管理する分散データストア管理装置であって、前記１つ以上のノードを含む複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合部と、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定部と、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定部と、前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記オンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置部と、を備える。
【００１９】
また、本発明の分散並列処理実行装置は、複数のノードを用いて複数の処理を分散並列実行する分散並列処理実行装置であって、処理の実行要求を受信する実行要求受信部と、前記複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当てる割当部と、前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を、請求項１から請求項５のいずれか１項に記載の分散データストア管理装置に出力する処理解析部と、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに、前記分散データストア管理装置を用いて配置する処理準備部と、前記実行要求対象の処理を、前記割当部により割り当てられた１つ以上のノードに実行させる処理実行部と、を備える。
【００２０】
また、本発明の分散並列処理システムは、上述の分散データストア管理装置と、上述の分散並列処理実行装置と、前記分散データストアとを備える。
【００２１】
また、本発明の分散データストア管理方法は、複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定し、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定し、前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置する。
【００２２】
また、本発明の分散並列処理実行方法は、処理の実行要求を受信し、分散並列処理を実行可能な複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当て、前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得し、取得した各利用度情報を上述の分散データストア管理方法を実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置し、前記実行要求対象の処理を、割り当てられた１つ以上のノードに実行させる。
【００２３】
また、本発明のコンピュータ・プログラムは、複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合ステップと、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定ステップと、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定ステップと、前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置ステップと、
をコンピュータ装置に実行させる。
【発明の効果】
【００２４】
本発明は、複数ノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおけるデータのより効率的な配置を決定する技術を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施の形態としての分散並列処理システムのハードウェア構成図である。
【図２】本発明の第１の実施の形態としての分散並列処理システムの機能ブロック図である。
【図３】本発明の第１の実施の形態としての分散並列処理装置の機能ブロック図である。
【図４】本発明の第１の実施の形態としての分散データストア管理装置の機能ブロック図である。
【図５】本発明の第１の実施の形態としての分散並列処理システムの動作を説明するフローチャートである。
【図６】本発明の第１の実施の形態としての分散データストア管理装置の動作を説明するフローチャートである。
【図７】本発明の第２の実施の形態としての分散並列処理システムの機能ブロック図である。
【図８】本発明の第２の実施の形態としての分散データストア管理装置の機能ブロック図である。
【図９】本発明の第２の実施の形態としての分散並列処理システムのソフトウェア構成例を示す図である。
【図１０】（ａ）および（ｂ）は、本発明の第２の実施の形態における各処理の利用度情報の一例を示す図であり、（ｃ）は、本発明の第２の実施の形態における利用度統合情報の一例を示す図である。
【図１１】（ａ）〜（ｃ）は、本発明の第２の実施の形態におけるデータ利用度順位の一例を示す図である。
【図１２】本発明の第２の実施の形態におけるデータ利用総数の一例を示す図である。
【図１３】本発明の第２の実施の形態における配置先ノード優先順位の一例を示す図である。
【図１４】（ａ）および（ｂ）は、本発明の第２の実施の形態におけるデータの配置の一例を示す図である。
【図１５】本発明の第２の実施の形態における分散データストア管理装置の動作を説明するフローチャートである。
【図１６】本発明の第２の実施の形態における複製データの配置処理の詳細を説明するフローチャートである。
【図１７】本発明の第２の実施の形態における他のデータの配置処理の詳細を説明するフローチャートである。
【図１８】（ａ）は、本発明の第２の実施の形態における利用度情報の他の一例を示す図であり、（ｂ）は、データ利用度順位の他の一例を示す図であり、（ｃ）は、配置先ノード優先順位の他の一例を示す図である。
【図１９】（ａ）および（ｂ）は、図１８（ｂ）に示したデータ利用度順位から選択されるデータの一例を示す図である。
【図２０】（ａ）〜（ｃ）は、本発明の第２の実施の形態におけるデータの配置の他の一例を示す図である。
【図２１】（ａ）および（ｂ）は、図１１（ａ）に示したデータ利用度順位から選択されるデータの一例を示す図である。
【図２２】本発明の第２の実施の形態におけるデータの配置により各処理が参照データを効率よく参照できることを模式的に説明する図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２７】
（第１の実施の形態）
本発明の第１の実施の形態としての分散並列処理システム１のハードウェア構成を図１に示す。
【００２８】
図１において、分散並列処理システム１は、複数のノード１０００によって構成される。複数のノード１０００のそれぞれは、ＣＰＵ（Central Processing Unit）１００１と、ＲＡＭ（Random Access Memory）１００２と、ＲＯＭ（Read Only Memory）１００３と、ハードディスク等の記憶装置１００４と、ネットワークインタフェース１００５とを備えたコンピュータ装置によって構成される。また、複数のノード１０００は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。なお、図１には、４つのノード１０００を示しているが、本発明における分散並列処理システムを構成するノードの数を限定するものではない。また、分散並列処理システム１を構成する各ノード１０００のハードウェア構成は、上述の構成に限定されない。
【００２９】
次に、分散並列処理システム１の機能ブロック構成を図２に示す。
【００３０】
図２において、分散並列処理システム１は、分散並列処理実行装置１０と、分散データストア管理装置２０と、分散データストア３０とを含む。また、分散並列処理システム１は、分散並列処理システム１の外部のデータストア９００に接続されていてもよい。その場合、分散並列処理システム１は、外部のデータストア９００に、ネットワークインタフェース１００５または周辺装置接続インタフェース（図示せず）等を介して接続される。外部のデータストア９００は、外部のコンピュータ装置やストレージ装置によって構成されていてもよい。
【００３１】
分散並列処理実行装置１０は、複数のノード１０００を用いて、複数の処理を分散並列実行する装置である。分散並列処理実行装置１０は、いずれかのノード１０００を構成するコンピュータ装置によって構成されていてもよい。あるいは、分散並列処理実行装置１０は、その機能が複数のノード１０００に分散されて実現されたものであってもよい。
【００３２】
分散データストア３０は、オンメモリ型データストア３１を含む。オンメモリ型データストア３１は、１つ以上のノード１０００の有するメモリ（ＲＡＭ１００２）によって構成される。また、分散データストア３０は、他のデータストア３２を含んでいてもよい。他のデータストア３２は、１つ以上のノード１０００の有するハードディスク等の他の記憶装置１００４等によって構成される。他のデータストア３２は、分散並列処理システム１によって実行される処理で利用されるデータを保持している。これらのデータは、分散並列処理実行装置１０によって、外部のデータストア９００からあらかじめ読み込まれることにより他のデータストア３２に格納されていてもよい。また、これらのデータは、分散並列処理実行装置１０によって処理を実行する際に参照される他、処理の実行前にオンメモリ型データストア３１に読み込まれる場合もある。なお、図２には、分散データストア３０が、４つのノード１０００の有するメモリおよび記憶装置によって構成される例を示しているが、本発明における分散データストアを構成するノードの数を限定するものではない。また、本発明における分散データストアは、本発明の分散並列処理システムを構成するノードの一部によって構成されていてもよい。
【００３３】
分散データストア管理装置２０は、分散データストア３０を管理する装置である。分散データストア管理装置２０は、いずれかのノード１０００を構成するコンピュータ装置によって構成されていてもよい。あるいは、分散データストア管理装置２０は、その機能が複数のノード１０００に分散されて実現されたものであってもよい。
【００３４】
次に、分散並列処理実行装置１０の機能ブロックの詳細を図３に示す。
【００３５】
図３において、分散並列処理実行装置１０は、実行要求受信部１１と、割当部１２と、処理解析部１３と、処理準備部１４と、処理実行部１５とを備える。ここで、これらの各機能ブロックは、ネットワークインタフェース１００５と、ＲＯＭ１００３または記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１によって構成される。なお、分散並列処理実行装置１０を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００３６】
実行要求受信部１１は、処理の実行要求を受信する。例えば、実行要求受信部１１は、スケジュールにしたがって処理の実行要求を行うスケジュール管理部（図示せず）から実行要求を受信してもよい。その他、例えば、実行要求受信部１１は、処理の実行要求を行う他の機能ブロックや外部の装置から実行要求を受信してもよい。
【００３７】
割当部１２は、複数のノード１０００のうち１つ以上のノード１０００に、実行要求対象の処理を割り当てる。例えば、割当部１２は、実行要求対象の処理の定義に基づいて、その処理によって利用されるデータを多く保持している１つ以上のノード１０００にその処理を割り当ててもよい。このとき、割当部１２は、分散データストア管理装置２０に問い合わせることにより、どのノード１０００がどのデータを多く保持しているかを表す情報を取得可能である。なお、処理の定義とは、例えば、処理の内容、処理の実行順序、処理対象データ、処理対象データの所在パス、処理対象データのフォーマット、その他の任意のプロパティ情報、制御定義情報等が含まれる情報であってもよい。また、処理の定義は、該当する処理を構成するさらに細かい複数の処理の定義を含むものであってもよい。また、処理の定義は、分散並列実行におけるポリシ、例えば、他の処理の終了待ちに関するポリシ等を含んでいてもよい。もし、実行要求対象の処理がさらに細かい複数の処理によって構成されていれば、割当部１２は、細かい単位の処理のそれぞれについて１つ以上のノード１０００を割り当ててもよい。また、割当部１２は、１つの処理を、処理対象データの所在に応じて複数のノード１０００に割り当ててもよい。
【００３８】
処理解析部１３は、実行要求対象の処理および複数のノード１０００が実行中の他の処理を解析することにより、各処理において利用される各データの各ノード１０００による利用度情報を取得する。そして、処理解析部１３は、これらの利用度情報を分散データストア管理装置２０に出力する。ここで、利用度情報とは、ある処理において、各データが各ノード１０００によって利用される度合を表す情報である。例えば、利用度情報は、各データに対する各ノード１０００によるアクセス頻度であってもよい。
【００３９】
処理準備部１４は、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、分散データストア管理装置２０を用いてオンメモリ型データストア３１に配置する。
【００４０】
処理実行部１５は、処理準備部１４による準備完了後、実行要求対象の処理を、割当部１２により割り当てられた１つ以上のノード１０００に分散並列実行させる。このとき、処理実行部１５は、１つ以上のノード１０００が既に実行中の他の処理と、実行要求対象の処理とを分散並列実行することになる。
【００４１】
次に、分散データストア管理装置２０の機能ブロックの詳細を図４に示す。
【００４２】
図４において、分散データストア管理装置２０は、利用度情報統合部２１と、データ利用度順位決定部２２と、配置先ノード優先順位決定部２３と、データ配置部２４とを備える。これらの各機能ブロックは、ネットワークインタフェース１００５と、ＲＯＭ１００３および記憶装置１００４に記憶されたコンピュータ・プログラムおよび各種データをＲＡＭ１００２に読み込んで実行するＣＰＵ１００１とによって構成される。なお、分散データストア管理装置２０の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【００４３】
利用度情報統合部２１は、実行要求対象の処理において利用される各データの各ノード１０００による利用度情報と、複数のノード１０００が実行中の他の処理において利用される各データの各ノード１０００による利用度情報とを統合した利用度統合情報を生成する。
【００４４】
例えば、利用度情報統合部２１は、分散並列処理実行装置１０に対して、実行要求対象の処理における各データの各ノード１０００による利用度情報と、複数のノード１０００が実行中の他の処理における各データの各ノード１０００による利用度情報とを要求してもよい。そして、利用度情報統合部２１は、分散並列処理実行装置１０から取得した利用度情報を統合して利用度統合情報を生成すればよい。このようにして生成された利用度統合情報は、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理全体において利用される１つ以上の各データに対する各ノード１０００による利用度情報を含む情報となる。
【００４５】
データ利用度順位決定部２２は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて、利用度情報に基づく順位（データ利用度順位）を決定する。
【００４６】
例えば、データ利用度順位決定部２２は、実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを前記利用度情報に基づいてソートした情報を、データ利用度順位を表す情報として生成してもよい。例えば、実行要求対象の処理においてデータY1に対する第１のノード１０００によるアクセス頻度が１０００であり、データY2に対する第２のノード１０００によるアクセス頻度が８００であったとする。また、実行中の処理において、データY1に対する第３のノード１０００によるアクセス頻度が５００であり、データY3に対する第４のノード１０００によるアクセス頻度が３００であったとする。この場合、データ利用度順位決定部２２は、“Y1，Y2，Y1，Y3”を、データ利用度順位を表す情報として生成してもよい。
【００４７】
配置先ノード優先順位決定部２３は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノード１０００の優先順位（配置先ノード優先順位）を決定する。
【００４８】
例えば、配置先ノード優先順位決定部２３は、あるデータの配置先として、そのデータに対するアクセス頻度がより大きいノード１０００により高い優先順位を設定するようにしてもよい。例えば、上述の例では、配置先ノード優先順位決定部２３は、データY1について、第１のノード１０００の優先順位を、第３のノード１０００の優先順位より高く設定してもよい。
【００４９】
データ配置部２４は、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストア３１に読み込むデータを選択し、選択したデータの複製数および配置先ノード１０００を決定する。そして、データ配置部２４は、決定した配置にしたがって、選択したデータを該当するノード１０００のメモリに配置する。ここで、オンメモリ型データストア３１において、各ノード１０００のメモリに読み込むことが可能な容量はあらかじめ分かっているものとする。
【００５０】
例えば、データ配置部２４は、データ利用度順位に基づいて、順位の高いデータから順に、オンメモリ型データストア３１の総容量に達するまで所定の複製数ずつ選択していくようにしてもよい。
【００５１】
また、例えば、データ利用度順位が、各データを表す情報をその利用ノード数分ずつ含むリストがソートされた情報であれば、データ配置部２４は、データ利用度順位の上位の要素から順に総容量に達するまでの要素を選択することにより、各要素の表すデータの複製数を決定することになる。例えば、データ利用度順位が “Y1，Y2，Y1，Y3”である場合で、オンメモリ型データストア３１の総容量がデータ２個分である場合、データ配置部２４は、上位から順に“Y1，Y2”を選択することにより、Y1およびY2の複製数を１と決定する。あるいは、同様の例において、オンメモリ型データストア３１の総容量がデータ３個分である場合、データ配置部２４は、上位から順に“Y1，Y2，Y1”を選択することにより、Y1の複製数を２と決定し、Y2の複製数を１と決定することになる。
【００５２】
そして、データ配置部２４は、選択したデータ毎に、その配置先ノード優先順位に基づいて、優先順位の高いノード１０００から順に複製数の分だけのノード１０００を選択し、そのデータの配置先として決定すればよい。
【００５３】
以上のように構成された分散並列処理システム１の動作について、図面を参照して説明する。
【００５４】
まず、分散並列処理システム１の動作の概略を、図５に示す。なお、図５において、左図は分散並列処理実行装置１０の動作を示し、右図は分散データストア管理装置２０の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
【００５５】
図５では、まず、実行要求受信部１１は、処理の実行要求を受信する（ステップＳ１）。
【００５６】
次に、割当部１２は、１つ以上のノード１０００に、ステップＳ１で受信された実行要求対象の処理を割り当てる（ステップＳ２）。例えば、前述のように、割当部１２は、ステップＳ１で受信された処理の定義に基づいて、その処理で利用されるデータを多く保持している１つ以上のノード１０００に処理を割り当ててもよい。また、前述のように、割当部１２は、実行要求対象の処理がさらに細かい処理によって構成される場合、さらに細かい個々の処理についてそれぞれ１つ以上のノード１０００を割り当ててもよい。
【００５７】
次に、処理準備部１４は、実行要求対象の処理の実行準備として、分散並列実行されることになる１つ以上の処理で用いるデータの少なくとも一部をオンメモリ型データストア３１に読み込むよう、分散データストア管理装置２０に要求する（ステップＳ３）。
【００５８】
次に、分散データストア管理装置２０の利用度情報統合部２１は、分散並列処理実行装置１０に対して、実行要求対象の処理における各データの各ノード１０００による利用度情報と、複数のノード１０００が既に実行中の他の処理における各データの各ノード１０００による利用度情報とを要求する（ステップＳ４）。
【００５９】
次に、分散並列処理実行装置１０の処理解析部１３は、該当する各処理を解析することにより、要求された各利用度情報を分散データストア管理装置２０に送信する（ステップＳ５）。
【００６０】
次に、分散データストア管理装置２０は、受信した各利用度情報を統合した利用度統合情報に基づいて、分散並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、オンメモリ型データストア３１に配置する（ステップＳ６）。このステップの詳細については後述する。
【００６１】
次に、分散並列処理実行装置１０の処理実行部１５は、ステップＳ１で要求された実行要求対象の処理を、ステップＳ２で割り当てられた１つ以上のノード１０００に分散並列実行させる（ステップＳ７）。これにより、分散並列処理システム１は、既に実行中の他の処理と、実行要求対象の処理とを、分散並列実行することになる。
【００６２】
以上で、分散並列処理システム１の動作の概略の説明を終了する。
【００６３】
次に、ステップＳ６における分散データストア管理装置２０の動作の詳細を図６に示す。
【００６４】
図６では、まず、利用度情報統合部２１は、ステップＳ５で送信された利用度情報を統合した利用度統合情報を生成する（ステップＳ１１）。
【００６５】
次に、データ利用度順位決定部２２は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて、データ利用度順位を決定する（ステップＳ１２）。
【００６６】
次に、配置先ノード優先順位決定部２３は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先ノード優先順位を決定する（ステップＳ１３）。
【００６７】
次に、データ配置部２４は、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストア３１に読み込むデータを選択し、選択したデータの複製数および配置先ノードを決定する（ステップＳ１４）。
【００６８】
次に、データ配置部２４は、決定した内容にしたがって、データをオンメモリ型データストア３１に配置する（ステップＳ１５）。
【００６９】
以上で、ステップＳ６における分散データストア管理装置２０の動作の詳細な説明を終了する。
【００７０】
次に、本発明の第１の実施の形態の効果について述べる。
【００７１】
本発明の第１の実施の形態としての分散データストア管理装置は、複数のノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおけるデータのより効率的な配置を決定することができる。
【００７２】
その理由は、利用度情報統合部が、実行要求対象の処理において利用される各データの各ノードによる利用度情報と、既に実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、データ利用度順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる１つ以上の処理において利用されるデータに利用度情報に基づくデータ利用度順位を決定するからである。また、配置先ノード優先順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる１つ以上の処理において利用されるデータ毎に、その配置先となるノードの優先順位を決定するからである。そして、データ配置部が、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストアに読み込むデータを選択し、選択したデータの複製数および配置先ノードを決定するからである。
【００７３】
これにより、本発明の第１の実施の形態としての分散データストア管理装置は、処理の実行要求があるたびに、新たに分散並列処理されることになる１つ以上の処理全体において、各データがどのノードによってどの程度利用されるかに応じて、より利用されるデータをより利用するノードのオンメモリ型データストアに配置可能となる。
【００７４】
このような本実施の形態の分散データストア管理装置を用いてデータを配置する本発明の第１の実施の形態としての分散並列処理実行装置は、分散並列処理性能をより向上させる。
【００７５】
その理由は、処理の実行要求を受信する度に、処理解析部が、実行要求対象の処理および既に実行中の他の処理において利用される各データに対する各ノードの利用度情報を解析して分散データストア管理装置に出力し、処理準備部が、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用されるデータの少なくとも一部を、本実施の形態の分散データストア管理装置を用いてオンメモリ型データストアに配置後、処理実行部が、１つ以上のノードを用いて実行要求対象の処理を分散並列実行するからである。
【００７６】
これにより、本発明の第１の実施の形態の分散並列処理実行装置は、処理の実行中に他の処理の実行を開始しても、分散並列処理される１つ以上の処理全体において、各データがどのノードによってどの程度利用されるかに応じて、それらの処理において総合的に利用度の高いデータを効率よくオンメモリ型データストアに配置する。
【００７７】
したがって、本発明の第１の実施の形態としての分散並列処理システムは、分散並列処理対象の１つ以上の処理のうちのいずれかにおいて頻繁に利用されるデータであるにも関わらずオンメモリ型データストアに読み込むことができないといった状況を軽減することができる。したがって、本実施の形態としての分散並列処理システムは、各処理が頻繁に利用するデータをより多くメモリから参照可能となる。したがって、本実施の形態は、分散並列処理性能を向上させることになる。
【００７８】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の分散並列処理システムにおいて、１つ以上のバッチ処理を分散並列処理する例を中心に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００７９】
まず、本発明の第２の実施の形態としての分散並列処理システム２の機能ブロック構成を図７に示す。
【００８０】
図７において、分散並列処理システム２は、本発明の第１の実施の形態としての分散並列処理システム２に対して、分散データストア管理装置２０に替えて分散データストア管理装置４０を含む点が異なる。また、分散並列処理システム２は、参照データストア９０に接続されている。なお、分散並列処理システム２は、図１を用いて説明した本発明の第１の実施の形態と同様に複数のノード１０００によって構成される。
【００８１】
以下、本実施の形態において、分散並列処理システム２は、４つのノード１０００(Node-1〜Node-4)を含んで構成され、２つのバッチ処理（jobAを含むバッチ処理、および、jobBを含むバッチ処理）を分散並列実行する具体例を中心に説明する。なお、本実施の形態では、バッチ処理を構成する仕事の単位を“ジョブ”と呼ぶ。また、ジョブは、幾つかの“ステップ”と呼ばれる処理で構成され、jobAは、StepA1〜StepAn（ｎは１以上の整数）で構成され、jobBはStepB1〜StepBm（ｍは１以上の整数）で構成されるものとする。
【００８２】
また、本実施の形態におけるバッチ処理で利用されるデータには、バッチ処理対象の入力データと、処理において参照される参照データとがあるものとする。また、入力データは、各ノード１０００のハードディスクに既に格納され、参照データは、上述の参照データストア９０に格納されているものとする。参照データストア９０は、分散並列処理システム２の外部に接続されたファイルシステムやデータベース、あるいは、外部装置のメモリによって構成されていてもよい。なお、本実施の形態では、分散並列処理システム２は、バッチ処理で利用されるデータのうち参照データから、オンメモリ型データストア３１に配置するデータを選択するものとする。
【００８３】
また、本実施の形態において、分散並列処理システム２が実行するバッチ処理において利用される参照データのうち、複製対象データがあらかじめ定められているものとする。ここで、複製対象データとは、バッチ処理において利用される１つ以上のデータのうち、オンメモリ型データストア３１に少なくとも所定のミニマム配置数だけ配置されうる対象となるデータである。例えば、複製対象データとしては、破損によって再度メモリに読み込むのにコストがかかるデータや、複数のノード１０００で使用される可能性があるデータ、また、単一のノード１０００においても使用頻度が高いと予想されるデータなどが適している。また、ミニマム配置数は、あらかじめ定められているものとする。例えば、分散並列処理システム２は、ユーザによって入力されたミニマム配置数を表す情報を取得してもよい。本実施の形態では、バッチ処理において利用される参照データとしてYデータ(Y1,Y2,Y3・・・)とZデータ(Z1,Z2,Z3・・・)とがあるものとする。例えば、Yデータは、販売管理システムにおける商品マスタデータや顧客マスタデータなどのように、各バッチ処理において参照頻度が高いデータであり、Zデータは、Yデータに比べると参照頻度が低いデータであるとする。この場合、参照データのうち、Yデータが複製対象データとして定められているものとする。なお、分散並列処理システム２は、バッチ処理で利用されるデータのうちいずれが複製対象データであるかを、ジョブ定義に含まれる情報から判断してもよい。あるいは、分散並列処理システム２は、バッチ処理で利用されるデータのうちいずれが複製対象データであるかを、そのデータの格納場所やパス等により判断してもよい。
【００８４】
次に、分散データストア管理装置４０の機能ブロックを図８に示す。図８において、分散データストア管理装置４０は、本発明の第１の実施の形態としての分散データストア管理装置２０に対して、データ利用度順位決定部２２に替えてデータ利用度順位決定部４２と、データ配置部２４に替えてデータ配置部４４とを備える点が異なる。
【００８５】
ここで、このような分散並列処理システム２の各機能ブロックを実現するソフトウェア構成例について、図９を参照して説明する。
【００８６】
図９において、分散並列処理実行装置１０は、分散バッチ実行基盤ソフトウェアによって実現可能である。分散バッチ実行基盤ソフトウェアは、１つ以上のノード１０００上に配置された1つ以上のバッチ実行基盤ソフトウェアによって構成される。分散バッチ実行基盤ソフトウェアは、1つ以上のバッチ実行基盤ソフトウェアを用いて、同時に複数のバッチ処理を実行可能となっている。また、分散バッチ実行基盤ソフトウェアは、ジョブ制御インタフェース（ＩＦ）１０２と、ジョブ制御機能１０３と、アプリケーション管理機能１０４とを含む。ジョブ制御インタフェース１０２は、バッチ実行クライアントからのバッチ処理の実行要求を受け付けるインタフェースである。ジョブ制御機能１０３は、ジョブの実行準備や分散並列実行を制御する。なお、バッチ処理の処理内容や処理対象データは、予めプログラムとして記述される。ジョブ制御機能１０３は、バッチ処理を構成するジョブやステップを、該当するノード１０００のバッチ処理基盤ソフトウェア上に実行可能な状態で配置する。アプリケーション管理機能１０４は、分散バッチ実行基盤ソフトウェア上で実行するアプリケーション（バッチ処理）の管理を行う。
【００８７】
アプリケーション管理機能１０４は、各ノード１０００のバッチ処理実行基盤上に実行可能な状態で配置されたバッチ処理の解析を行い、バッチ処理が使用するデータを解析する機能を含む。アプリケーション管理機能１０４は、解析機能によって、ステップの実行順序、処理対象データ、処理対象データの所在パス、各種プロパティ情報、制御定義、各ノード１０００で実行されるステップ、各ノード１０００で処理される入力データとそれにひもづく参照データなどの情報を取得することができる。
【００８８】
このようなソフトウェア構成の場合、実行要求受信部１１は、ジョブ制御インタフェース１０２によって実現可能である。また、割当部１２と、処理準備部１４と、処理実行部１５とは、ジョブ制御機能１０３によって実現可能である。また、処理解析部１３は、アプリケーション管理機能１０４によって実現可能である。
【００８９】
また、図９において、分散データストア管理装置４０は、分散データストア管理機能２０１と、管理インタフェース（ＩＦ）２０２と、各ノード１０００の入出力インタフェース（ＩＦ）２０３および管理エージェント２０４とからなる。
【００９０】
分散データストア管理機能２０１は、オンメモリ型データストア３１上のデータの複製数やその配置場所を管理する。また、分散データストア管理機能２０１は、分散並列処理実行装置１０から得られるジョブの解析情報に基づいて、オンメモリ型データストア３１上のデータの複製数やその配置場所を決定する複製データ配置機能を有する。
【００９１】
管理インタフェース２０２は、分散データストア管理機能２０１に対するインタフェースである。
【００９２】
各ノード１０００の入出力インタフェース２０３は、管理エージェント２０４を介してメモリやハードディスク等に対するデータの入出力を行う。各ノード１０００の管理エージェント２０４は、互いに通信することにより他のノード１０００が保持するデータを知ることができる。また、管理エージェント２０４は、分散データストア管理機能２０１の制御の基に、オンメモリ型データストア３１へのデータのロードおよびパージを明示的に行う。
【００９３】
このようなソフトウェア構成の場合、利用度情報統合部２１は、管理インタフェース２０２および分散データストア管理機能２０１によって実現可能である。また、データ利用度順位決定部４２および配置先ノード優先順位決定部２３は、分散データストア管理機能２０１によって実現可能である。また、データ配置部４４は、分散データストア管理機能２０１、入出力インタフェース２０３および管理エージェント２０４によって実現可能である。
【００９４】
また、外部の参照データストア９０は、データストア管理機能３０１と、入出力インタフェース（ＩＦ）３０２と、データを格納したデータベースによって実現されていてもよい。
【００９５】
なお、本発明の分散並列処理システムの各機能ブロックを実現するソフトウェア構成は、上述の構成に限定されない。
【００９６】
図８に戻り、分散データストア管理装置４０の各機能ブロックの詳細について説明する。
【００９７】
利用度情報統合部２１は、本発明の第１の実施の形態と同様に構成される。ここでは、利用度情報統合部２１が、本実施の形態において生成する利用度統合情報の例について説明する。この例では、分散並列処理実行装置１０の処理解析部１３によって、図１０（ａ）に示すようなjobAの利用度情報が取得され、図１０（ｂ）に示すようなjobBの利用度情報が取得されたとする。なお、図１０では、利用度として各データに対する各ノードのアクセス頻度が採用されている。例えば、図１０（ａ）は、jobAで利用される参照データY1に対するNode-1からのアクセス頻度が1000であり、Node-2からのアクセス頻度も1000であることを示している。また、図１０（ｂ）は、jobBで利用される参照データY1に対するNode-3からのアクセス頻度が1000であり、Node-4からのアクセス頻度も1000であることを示している。この場合、利用度統合情報は、図１０（ｃ）に示すような利用度統合情報を生成する。
【００９８】
データ利用度順位決定部４２は、利用度統合情報に基づいて、実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを利用度情報に基づきソートしたものを、データ利用度順位を表す情報として生成する。例えば、図１０（ｃ）に示すような利用度統合情報が生成されている場合について説明する。この場合、並列実行されることになる１つ以上の処理（jobAおよびjobB）において利用されるデータは、Y1,Y2,Y3,Z1,Z2およびZ3である。ここで、データY1を利用するノード数は、Node-1~Node-4の４つである。また、Y2を利用するノード数は、Node-3~Node-4の２つである。また、Y3,Y3,Z1,Z2の各データの利用ノード数は、それぞれ４、２、２、２となる。したがって、これらの各データを表す情報をその利用ノード数ずつ含むリストとは、“Y1,Y1,Y1,Y1,Y2,Y2,Y3,Y3,Y3,Y3,Z1,Z1,Z2,Z2,Z3,Z3”となる。そこで、データ利用度順位決定部４２は、このリストを図１０（ｃ）に示した利用度（アクセス頻度）でソートする。これにより、図１１（ａ）に示すようなデータ利用度順位を表すリストが生成される。
【００９９】
なお、データ利用度順位決定部４２は、このようなデータ利用度順位を表すリストを生成する際に、利用度が同一の要素については、複製対象データを、複製対象データではないデータより高い順位に決定してもよい。
【０１００】
また、データ利用度順位決定部４２は、図１１（ａ）に一例を示したようなデータ利用度順位を表すリストを生成する際に、利用度が同一の要素については、利用総数がより多いデータをより高い順位に決定してもよい。ここで、利用総数とは、実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データについて、複数のノード１０００からの合計の利用総数である。データ利用度順位決定部４２は、利用度統合情報に基づいて、各データの利用総数を算出しておくことにより、利用度が同一の要素に関するデータ利用度順位を決定可能である。例えば、図１０（ｃ）に示した利用度統合情報が生成されている場合、データ利用度順位決定部４２は、図１２に示すようなアクセス総数を算出しておいてもよい。
【０１０１】
配置先ノード優先順位決定部２３は、本発明の第１の実施の形態と同様に構成される。ここでは、配置先ノード優先順位決定部２３が、本実施の形態において決定する配置先ノード優先順位の例について説明する。ここでは、図１０（ｃ）に示すような利用度統合情報が生成されていることを想定する。この場合、配置先ノード優先順位決定部２３は、並列実行されることになる１つ以上の処理（jobAおよびjobB）において利用されるデータのうち、例えばデータY1について、Node-1〜Node-4について、その利用度（アクセス頻度）の順に、優先順位を決定する。この場合、データY1のNode-1〜Node-4からの利用度は、全て同一（1000）であるため、配置先ノード優先順位決定部２３は、データY1の配置先ノード優先順位として、Node-1~Node-4に全て１を設定する（図１３参照）。また、データY2のNode-1、Node-2からの利用度は０であり、Node-3~Node-4からの利用度は８００である。そこで、配置先ノード優先順位決定部２３は、データY2の配置先ノード優先順位として、Node-3およびNode-4に１を設定し、Node-1およびNode-2に３を設定する。同様にして、配置先ノード優先順位決定部２３は、図１３に示すような配置先ノード優先順位を表す情報を生成すればよい。なお、図１３の例では、数値が小さいほど配置先ノード優先順位が高いことを表している。
【０１０２】
データ配置部４４は、データ利用度順位の表すデータの上位から順に、複製対象データを所定のミニマム配置数ずつ選択する。これにより、複製対象データは少なくともミニマム配置数ずつ選択される。そして、データ配置部４４は、選択した複製対象データの配置先ノードを、配置先ノード優先順位に基づいて決定する。その後、データ配置部４４は、オンメモリ型データストア３１の残りの空き領域の分だけ、データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順にデータを選択する。このとき、まだ選択されていない残りのリストには、参照データを示す要素がそれぞれ１つ以上ずつ含まれる。また、もし、利用ノード数がミニマム配置数より多い複製対象データがあれば、データ利用度順位の残りのリストには、複製対象データを示す要素も含まれている。したがって、データ配置部４４は、データ利用度順位の残りの上位から順に空き領域の分だけデータを選択することにより、各参照データの複製数を決定することになる。そして、データ配置部４４は、選択したデータの配置先ノードを配置先ノード優先順位に基づいて決定する。
【０１０３】
例えば、図１１（ａ）に示したデータ利用度順位および図１３に示した配置先ノード優先順位をそれぞれ表す情報が生成されていたとする。この場合、データ配置部４４は、まず、図１１（ａ）のデータ利用度順位の上位から順に、複製対象データであるYデータ(Y1,Y2,Y3)をミニマム配置数ずつ選択する。例えば、ミニマム配置数が１であれば、データ配置部４４は、図１１（ａ）に示すデータ利用度順位の上位から、Y1,Y2,Y3の順に選択すればよい。また、例えば、ミニマム配置数が２以上であれば、データ配置部４４は、図１１（ａ）に示すデータ利用度順位の上位から、Y1,Y2,Y3の順に１つずつ選択した後、再度、残りのリストの上位から順にY1,Y2,Y3の順に選択することを繰り返してもよい。図１１（ｂ）に、ミニマム配置数が１の場合に、データ利用度順位のリストから選択される複製対象データの一例を示す。なお、図１１（ｂ）では、ドットパターンで塗りつぶされたセルは、選択された複製対象データを示している。
【０１０４】
そして、データ配置部４４は、選択した複製対象データの配置先ノードを、配置先ノード優先順位にしたがって決定する。例えば、図１１（ｂ）に示す複製対象データが選択され、図１３に示した配置先ノード優先順位が生成されている場合を想定する。この場合、データ配置部４４による複製対象データの配置先ノードの決定例を図１４（ａ）に示す。図１４（ａ）において、データ配置部４４は、最初に選択したデータY1について、図１３に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY1に関する配置先ノード優先順位はこの例では全て１となっているため、データ配置部４４は、いずれかのノード１０００を配置先として選択すればよい。ここではNode-1を配置先として選択したものとする。次に、データ配置部４４は、次に選択したデータY2について、図１０に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY1に関してNode-3およびNode-4の順位が１である。したがって、データ配置部４４は、Node-3およびNode-4のいずれかをデータY2の配置先ノードとして選択すればよい。ここでは、Node-3を選択したものとする。次に、データ配置部４４は、次に選択したデータY3について、図１３に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY3に関してNode-1およびNode-2の順位が１である。したがって、データ配置部４４は、Node-1およびNode-2のいずれかをデータY3の配置先ノードとして選択すればよい。ただし、Node-1には既にデータY1が配置されているため、データ配置部４４は、空き領域の多いNode-2を選択してもよい。
【０１０５】
また、前述のように、データ配置部４４は、複製対象データをミニマム配置数ずつ配置後、オンメモリ型データストア３１の残りの空き領域の分だけ、データ利用度順位を表すリストの残りの上位からデータを順に選択する。そして、データ配置部４４は、選択したデータの配置先を配置先ノード優先順位に基づいて決定する。
【０１０６】
例えば、図１１（ａ）に示したデータ利用度順位および図１３に示した配置先ノード優先順位をそれぞれ表す情報が生成されていたとする。また、図１１（ｂ）に示す複製対象データがミニマム配置数（ここでは、１とする）ずつ選択されて図１４（ａ）に示すように配置されていたとする。ここでは、話を簡単にするため、オンメモリ型データストア３１において各ノード１０００のメモリに配置可能なデータの個数を３とし、参照データ個々についてのデータサイズについては考えないこととする。この場合、オンメモリ型データストア３１の残りの空き領域は、データ９個分である。そこで、データ配置部４４は、図１１（ｂ）のデータ利用度順位のうち、既に選択された複製対象データ（ドットパターンのセルが示すデータ）以外の要素の上位から順に、９つの要素（Y1,Y1,Y1,Y2,Y3,Z3,Z1,Z3,Z2）を選択する（図１１（ｃ）参照）。図１１（ｃ）では、斜線パターンで塗りつぶされたセルは、選択されたデータを示している。そして、データ配置部４４は、選択した９つの要素が示すデータについて、図１３に示す配置先ノード優先順位にしたがって、その配置先ノードを決定する。その結果、オンメモリ型データストア３１に読み込む参照データの配置は、図１４（ｂ）に示すとおりとなる。この例では、Y1の複製数は４、Y2,Y3およびZ3の複製数は２、Z1およびZ2の複製数は１となっている。
【０１０７】
以上のように構成された分散並列処理システム２の動作について説明する。なお、分散並列処理システム２の動作の概略については、図５を参照して説明した本発明の第１の実施の形態としての分散並列処理システム１の動作と同様であるため、本実施の形態における詳細な説明を省略する。
【０１０８】
ここでは、図５のステップＳ６における分散データストア管理装置４０の動作の詳細を図１５〜図１７を用いて説明する。
【０１０９】
図１５では、まず、利用度情報統合部２１は、ステップＳ５で送信された利用度情報を統合した利用度統合情報を生成する（ステップＳ１１）。
【０１１０】
次に、データ利用度順位決定部４２は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて、データ利用度順位を表すリストを生成する（ステップＳ２２）。具体的には、データ利用度順位決定部４２は、各データを表す情報をその利用ノード数ずつ含むリストをその利用度に基づいてソートしたリストを、データ利用度順位を表す情報として生成する。
【０１１１】
次に、配置先ノード優先順位決定部２３は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先ノード優先順位を決定する（ステップＳ１３）。
【０１１２】
次に、データ配置部４４は、所定のミニマム配置数が１以上であるか否かを判断する（ステップＳ２４）。
【０１１３】
ここで、ミニマム配置数が１以上でない場合、分散データストア管理装置４０の動作はステップＳ２６に進む。なお、ミニマム配置数が１以上でないとは、例えば、複製対象データを優先的にオンメモリ型データストア３１に配置することが無効とされていることを意味する。
【０１１４】
一方、ミニマム配置数が１以上である場合、データ配置部４４は、ステップＳ２２で生成したデータ利用度順位の上位から順に、複製対象データをミニマム配置数ずつ選択し、ステップＳ１３で生成した配置先ノード優先順位に基づいて配置する（ステップＳ２５）。このステップの詳細については後述する。
【０１１５】
次に、データ配置部４４は、オンメモリ型データストア３１に、まだ空き領域があるか否かを判断する（ステップＳ２６）。
【０１１６】
ここで、空き領域がないと判断された場合、分散データストア管理装置４０のステップＳ６における動作は終了する。
【０１１７】
一方、空き領域があると判断した場合、データ配置部４４は、データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順に、オンメモリ型データストア３１の空き領域の分だけデータを選択し、配置先ノード優先順位にしたがって配置する（ステップＳ２７）。このステップの詳細については後述する。
【０１１８】
以上で、分散データストア管理装置４０のステップＳ６における動作は終了する。
【０１１９】
次に、ステップＳ２５における複製対象データの配置処理の詳細を図１６に示す。
【０１２０】
図１６では、まず、データ配置部４４は、ステップＳ２２で生成したデータ利用度順位の上位から順に検索していき、複製対象データのうちまだｉ（ｉ＝１〜ミニマム配置数）個目を選択していないものを１つ選択する（ステップＳ３１）。
【０１２１】
詳細には、まず、データ配置部４４は、データ利用度順位のリストに残された要素の上位から、複製対象データのうちまだ１つも選択していないものを検索して１つ選択し、選択した複製対象データについて、ステップＳ３２〜Ｓ３５の処理を実行する。また、複製対象データを既に１つずつ選択済みとなっている場合、データ配置部４４は、データ利用度順位のリストに残された要素の上位から順に、複製対象データのうち２つ目を選択していないものを検索して１つ選択し、選択した複製対象データについて、ステップＳ３２〜Ｓ３５の処理を実行する。このようにして、データ配置部４４は、データ利用度順位のリストに残された要素の上位から順に、まだｉ個目を選択していないものを検索して選択し、ステップＳ３２〜Ｓ３５を実行する処理を、ｉ＝１〜ｎについて行えばよい。これにより、例えば、データ利用度順位のリストが“Y1,Y1,Y2,Y1,Y3,Y3,Z3,Z1,Z3,Z2,Z2,Y2,・・・”であり、ミニマム配置数が２以上の場合、データ配置部４４は、ステップＳ３１を実行する度に、Y1→Y2→Y3→Y1→Y3→Y2→・・の順にデータを選択することになる。
【０１２２】
次に、データ配置部４４は、選択した複製対象データを格納可能な空き領域がオンメモリ型データストア３１にあるか否かを判断する（ステップＳ３２）。
【０１２３】
ここで、空き領域がないと判断された場合、分散データストア管理装置４０は、複製対象データの配置処理を終了し、データ配置処理も終了する。
【０１２４】
一方、空き領域があると判断した場合、データ配置部４４は、選択した複製対象データの配置先となるノード１０００を、ステップＳ１３で決定した配置先ノード優先順位に基づいて決定する（ステップＳ３３）。
【０１２５】
次に、データ配置部４４は、ステップＳ３３で決定したノード１０００に、ステップＳ３１で選択した複製対象データを配置する（ステップＳ３４）。
【０１２６】
次に、データ配置部４４は、ステップＳ２２で生成されたデータ利用度順位のリストに含まれる全ての複製対象データを所定のミニマム配置数ずつ選択しその配置を終えたか否かを判断する（ステップＳ３５）。
【０１２７】
ここで、まだ全ての複製対象データについてミニマム配置数ずつ配置が完了していない場合、データ配置部４４は、ステップＳ３１からの処理を繰り返す。
【０１２８】
一方、全ての複製対象データについてミニマム配置数ずつ配置が完了している場合、データ配置部４４は、複製対象データの配置処理を終了する。
【０１２９】
次に、ステップＳ２７における他のデータの配置処理の詳細を図１７に示す。
【０１３０】
図１７では、まず、データ配置部４４は、ステップＳ２２で生成されたデータ利用度順位のリストのうちまだ選択されていない残りの要素の上位から１つデータを選択する（ステップＳ４１）。
【０１３１】
次に、データ配置部４４は、ステップＳ４１で選択したデータの配置先となるノード１０００を、ステップＳ１３で決定した配置先ノード優先順位に基づいて決定する（ステップＳ４２）。
【０１３２】
次に、データ配置部４４は、ステップＳ４２で決定したノード１０００に、ステップＳ４１で選択したデータを配置する（ステップＳ４３）。
【０１３３】
次に、データ配置部４４は、オンメモリ型データストア３１に空き領域があるか否かを判断する（ステップＳ４４）。
【０１３４】
ここで、空き領域があれば、データ配置部４４は、ステップＳ４１からの処理を繰り返す。
【０１３５】
一方、空き領域がなければ、データ配置部４４は、他のデータの配置処理を終了する。
【０１３６】
以上で、ステップＳ６における分散データストア管理装置４０の動作の詳細な説明を終了する。
【０１３７】
次に、分散並列処理システム２の動作の具体例について説明する。ここでは、分散並列処理システム２が、まずjobAからなるバッチ処理を実行し、その実行中に、jobBからなるバッチ処理の実行要求を受信した場合の動作例について説明する。なお、以下の具体例では、ミニマム配置数は２と定められているものとする。
【０１３８】
まず、分散並列処理実行装置１０の実行要求受信部１１は、jobAの実行要求を受信する（ステップＳ１）。
【０１３９】
次に、割当部１２は、jobAを実行するノード１０００を割り当てる。例えば、jobAに含まれるStepA1における処理対象の入力データA1〜A6がNode-1およびNode-2のハードディスクに配備されているとする。この場合、割当部１２は、jobAに含まれるstepA1をNode-1およびNode-2に割り当てる（ステップＳ２）。
【０１４０】
次に、処理解析部１３はjobAを解析して利用度情報を分散データストア管理装置４０に出力する（ステップＳ３〜Ｓ５）。
【０１４１】
ここで、この時点で既に実行中の処理はなかったものとする。そこで、分散データストア管理装置４０は、図１８（ａ）に示したjobAの利用度情報をそのまま利用度統合情報とする（ステップＳ１１）。
【０１４２】
次に、この利用度統合情報に基づいて、分散データストア管理装置４０は、図１８（ｂ）に示したデータ利用度順位および図１８（ｃ）に示した配置先ノード優先順位を決定する（ステップＳ２２、Ｓ１３）。
【０１４３】
次に、データ配置部４４は、図１８（ｂ）のデータ利用度順位から複製対象データのY1およびY3を２つずつ選択する（図１９（ａ）参照）。そして、データ配置部４４は、図１８（ｃ）の配置先ノード優先順位にしたがって、Y1の配置先ノードとしてNode-1およびNode-2を、Y3の配置先ノードとしてNode-1およびNode-2をそれぞれ決定し、配置する（ステップＳ２５）。
【０１４４】
ここで、Node-1およびNode-2のオンメモリ型データストア３１の空き領域はあとデータ２個分となる。そこで、データ配置部４４は、データ利用度順位のうち、図１９（ａ）で選択されたもの以外の残りの上位から、データZ1およびZ2を１つずつ選択する（図１９（ｂ）参照）。そして、データ配置部４４は、図１８（ｃ）の配置先ノード優先順位にしたがって、Z1の配置先ノードとしてNode-1を決定し、Z2の配置先としてNode-2を決定し、配置する（ステップＳ２７）。
【０１４５】
これにより、オンメモリ型データストア３１のデータ配置は図２０（ａ）に示すとおりとなる。
【０１４６】
ここで、分散並列処理実行装置１０の実行要求受信部１１は、jobＢの実行要求を受信する（ステップＳ１）。
【０１４７】
次に、割当部１２は、jobBを実行するノード１０００を割り当てる。例えば、jobBに含まれるStepB1における処理対象の入力データB1〜B6がNode-3およびNode-4のハードディスクに配備されているとする。この場合、割当部１２は、jobBに含まれるstepB1をNode-3およびNode-4に割り当てる（ステップＳ２）。
【０１４８】
次に、処理解析部１３は、既に実行中のjobAの利用度情報と、実行要求対象のjobBの利用度情報とを、分散データストア管理装置４０に出力する（ステップＳ３〜Ｓ５）。
【０１４９】
そこで、分散データストア管理装置４０は、図１０（ｃ）に示した利用度統合情報、図１１（ａ）に示したデータ利用度順位、図１３に示した配置先ノード優先順位を決定する（ステップＳ１１、Ｓ２２、Ｓ１３）。
【０１５０】
次に、データ配置部４４は、図１１（ａ）のデータ利用度順位の上位から順に、複製対象データをミニマム配置数である２つずつ選択する。ここでは、Y1、Y2、Y3が、それぞれ２つずつ選択される（図２１（ａ）参照）。そして、データ配置部４４は、図１３の配置先ノード優先順位にしたがって、選択した複製対象データをオンメモリ型データストア３１の各ノード１０００に配置する（ステップＳ２５）。
【０１５１】
なお、jobBの実行要求を受信後のステップＳ２５において、データ配置部４４は、既に配置されているデータの配置を考慮して、配置先ノードを決定してもよい。例えば、この場合、jobAの実行により既にNode-1およびNode-2にY1およびY3データが２つずつ配置されている。そこで、データ配置部４４は、今回選択した２つずつの複製対象データY1、Y2、Y3のうちY1およびY3については既に配置が済んでいるものとして、Y2について、その配置先ノード優先順位にしたがって配置先となる２つのノード１０００を決定してもよい。これにより、オンメモリ型データストア３１に配置されたデータは、図２０（ｂ）に示すとおりとなる。なお、データ配置部４４は、既に配置されているデータの配置を考慮せずに、配置先ノード優先順位にしたがって新たな配置を決定し、新たな配置を行ってもよい。
【０１５２】
ここで、Node-1からNode-4のオンメモリ型データストア３１の空き領域はあとデータ６個分となる。そこで、データ配置部４４は、データ利用度順位のうち、図２１（ａ）で選択された複製対象データ以外の残りの上位から、空き領域に格納可能な個数である６つ分だけデータを選択する（図２１（ｂ）参照）。ここでは、Y1およびZ3が２つずつと, Z1およびZ2が１つずつ選択される。そして、データ配置部４４は、図１３の配置先ノード優先順位にしたがって、選択したデータをオンメモリ型データストア３１の各ノード１０００に配置する（ステップＳ２７）。
【０１５３】
ここで、jobBの実行要求を受信後のステップＳ２７において、データ配置部４４は、既に配置されているデータの配置を考慮して、配置先ノードを決定してもよい。例えば、この場合、jobAの実行により既にNode-1およびNode-2にZ1およびZ2データが配置されている。そこで、データ配置部４４は、ステップＳ２７で選択したデータのうち、Z1およびZ2については既に配置が済んでいるものとし、Y1およびZ3について、その配置先ノード優先順位にしたがって配置先ノードを決定してもよい。これにより、オンメモリ型データストア３１に配置されたデータは、図２０（ｃ）に示すとおりとなる。あるいは、データ配置部４４は、既に配置されているデータの配置を考慮せずに、配置先ノード優先順位にしたがって新たな配置を決定し、新たな配置を行ってもよい。
【０１５４】
以上のように配置されたデータを用いて、分散並列処理システム２における各ジョブが参照データを参照する動作を図２２に模式的に示す。図２２において、jobAを実行するNode-1およびNode-2は、参照データY1,Y3,Z1,Z2を自ノードおよび他ノード（Node-1およびNode-2）のメモリから参照することができ、ハードディスク等の処理性能の遅い記憶装置をアクセスする必要がない。また、jobBを実行するNode-3およびNode-4は、参照データY1,Y2,Y3,Z3を自ノードおよび他ノード（Node-1〜Node-4）のメモリから参照することができ、ハードディスク等の処理性能の遅い記憶装置をアクセスする必要がない。
【０１５５】
以上で、分散並列処理システム２の動作の具体例の説明を終了する。
【０１５６】
次に、本発明の第２の実施の形態の効果について説明する。
【０１５７】
本発明の第２の実施の形態としての分散データストア管理装置は、複数のノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおいて、複製対象に適したデータをより確実にミニマム配置数ずつ配置することができる。
【０１５８】
その理由は、実行要求対象の処理において利用される各データの各ノードによる利用度と、実行中の他の処理において利用される各データの各ノードによる利用度とを統合した利用度統合情報に基づいて、データ利用度順位決定部が、分散並列実行されることになる１つ以上の処理において利用されるデータに利用度に基づくデータ利用度順位を決定するからである。そして、その際に、データ利用度順位決定部が、各データを表す情報をその利用ノード数ずつ含むリストがその利用度の順にソートされたリストを、データ利用度順位を表す情報として生成するからである。また、配置先ノード優先順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる１つ以上の処理において利用されるデータ毎に、その配置先となるノードの優先順位を決定するからである。そして、データ配置部は、データ利用度順位のリストの上位から、まず複製対象データを所定のミニマム配置数ずつ選択して、配置先ノード優先順位に基づいてオンメモリ型データストアに配置し、その後、オンメモリ型データストアの空き領域に格納可能な分だけ、データ利用度順位のリストの残りの上位から順にデータを選択して、配置先ノード優先順位に基づいてオンメモリ型データストアに配置するからである。このように、複製対象データを先に配置することにより、本実施の形態は、利用度が高く複製対象に適しているデータがオンメモリ型データストアに配置されないケースおよびその配置数がミニマム配置数を下回るケースを軽減し、複製対象に適しているデータをより確実にミニマム配置数ずつオンメモリ型データストアに配置することが可能となる。
【０１５９】
これにより、本発明の第２の実施の形態としての分散データストア管理装置は、処理の実行要求があるたびに、分散並列処理されることになる１つ以上の処理全体において総合的に利用度の高い複製対象データをより確実にミニマム配置数ずつオンメモリ型データストアに配置することが可能となる。しかも、本実施の形態としての分散データストア管理装置は、そのようにして複製対象データをミニマム配置数ずつ配置した後のオンメモリ型データストアに空き領域があれば、さらに、分散並列処理されることになる１つ以上の処理全体において利用度の高いデータをより利用度の高いノードのオンメモリ型データストアに配置可能となる。
【０１６０】
このような本実施の形態の分散データストア管理装置を用いてデータを配置する本発明の第２の実施の形態としての分散並列処理実行装置は、バッチ処理の分散並列処理性能をより向上させる。
【０１６１】
その理由は、バッチ処理を構成するジョブの実行要求を受信する度に、処理解析部が、実行要求対象のジョブおよび既に実行中の他のジョブにおいて利用される各データに対する各ノードの利用度情報を解析して分散データストア管理装置に出力するからである。これにより、処理準備部が、実行要求対象のジョブの実行により分散並列実行されることになる１つ以上のジョブにおいて利用されるデータのうち複製対象データを、本実施の形態の分散データストア管理装置を用いてオンメモリ型データストアにミニマム配置数ずつ配置し、オンメモリ型データストアの残りの空き領域にも、１つ以上の処理全体で総合的に利用度の高い残りのデータをさらに配置した上で、処理実行部が、実行要求対象のジョブを分散並列実行するからである。
【０１６２】
これにより、本発明の第２の実施の形態の分散並列処理実行装置は、バッチ処理の実行中に他のバッチ処理の実行を開始しても、各バッチ処理を構成するジョブにおいて利用度の高い複製対象データのオンメモリ型データストア上におけるミニマム配置数を下回らせることがない。
【０１６３】
したがって、本発明の第２の実施の形態としての分散並列処理システムは、分散並列処理対象の１つ以上のバッチ処理を構成するジョブのうちのいずれかにおいて頻繁に利用される複製対象データであるにも関わらずオンメモリ型データストアでの配置数がミニマム配置数を下回るといった状況を軽減することができる。したがって、本実施の形態としての分散並列処理システムは、各処理が頻繁に利用する複製対象データをより多くオンメモリ型データストアから参照可能となる。したがって、本実施の形態は、バッチ処理の分散並列処理性能を向上させることになる。
【０１６４】
なお、本実施の形態では、１バッチ処理が１ジョブで構成される例を中心に説明したが、本実施の形態は、１つのバッチ処理が複数ジョブで構成される場合にも適用可能である。その場合、分散並列処理実行装置は、新たに開始されるジョブの実行要求のたびに、分散並列実行されることになるジョブ全体における利用度統合情報に基づいて、データ利用度順位および配置先ノード優先順位を決定してデータを配置すればよい。
【０１６５】
また、本実施の形態では、分散並列処理システムがバッチ処理を分散並列処理する例を中心に説明したが、本実施の形態の分散並列処理システムは、バッチ処理に限らず、データの利用度を解析可能な処理を分散並列実行する場合にも適用可能である。
【０１６６】
また、本実施の形態では、オンメモリ型データストアに配置する対象の参照データが、外部の参照データストアに格納されている例を中心に説明した。この他、本実施の形態は、オンメモリ型データストアに配置する対象のデータが、各ノードのハードディスクやその他の記憶装置に格納されている場合にも適用可能である。
【０１６７】
また、上述した本発明の各実施の形態において、分散並列処理システムを構成するノードが４つである例を中心に説明したが、本発明における分散並列処理システムを構成するノード数を限定するものではない。
【０１６８】
また、上述した本発明の各実施の形態において、配置先ノード優先順位決定部は、利用度統合情報に基づいて、各データの配置先となりうるノードに優先順位を決定するものとして説明した。これに加えて、各実施の形態の配置先ノード優先順位決定部は、各データが各ノードに配置された場合の該データを利用するノードからの参照性能をさらに考慮して、配置先ノード優先順位を決定してもよい。このとき、配置先ノード優先順位決定部は、各ノードから自ノードのメモリに配置されたデータを参照する参照性能や、他ノードのメモリに配置されたデータを参照する参照性能、または、オンメモリ型データストアに配置されていないデータ（ハードディスク等に配置されているデータ）を参照する参照性能を考慮して、配置先ノード優先順位を決定可能である。
【０１６９】
また、上述した本発明の各実施の形態において、オンメモリ型データストアの各メモリに格納可能なデータの量を、データの個数を用いて判断する例を中心に説明したが、各実施の形態は、配置対象のデータサイズを考慮して、各メモリの空き領域の容量に基づいて動作することも可能である。
【０１７０】
また、上述した本発明の各実施の形態において、利用度として各ノードによる各データのアクセス頻度を適用する例を中心に説明したが、利用度は、各データが各ノードにより利用される程度を表す情報であれば、アクセス頻度以外の情報であってもよい。
【０１７１】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した分散データストア管理装置および分散並列処理実行装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０１７２】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１７３】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０１７４】
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアを含む分散データストアを管理する分散データストア管理装置であって、
前記１つ以上のノードを含む複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定部と、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記オンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置部と、
を備えた分散データストア管理装置。
（付記２）
前記データ利用度順位決定部は、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを前記利用度情報に基づいてソートした情報を、前記データ利用度順位を表す情報として生成することを特徴とする付記１に記載の分散データストア管理装置。
（付記３）
前記実行要求対象となりうる処理において利用される１つ以上のデータのうち、前記オンメモリ型データストアに少なくとも所定のミニマム配置数だけ配置されうる対象となる複製対象データがあらかじめ定められているとき、
前記データ配置部は、前記データ利用度順位の示すデータのうち前記複製対象データを上位から順に前記ミニマム配置数ずつ選択し、選択した複製対象データの配置先ノードを前記配置先ノード優先順位に基づいて決定後、前記オンメモリ型データストアの残りの空き領域に格納可能な分だけ、前記データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順にデータを選択し、選択したデータの配置先ノードを前記配置先ノード優先順位に基づいて決定することを特徴とする付記１または付記２に記載の分散データストア管理装置。
（付記４）
前記データ利用度順位決定部は、利用度が同一のデータについて、前記複製対象データを、前記複製対象データではないデータより高い順位に決定することを特徴とする付記３に記載の分散データストア管理装置。
（付記５）
前記データ利用度順位決定部は、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される各データについて前記複数のノードからの合計の利用総数を算出しておき、前記利用度が同一のデータについて、前記利用総数がより多いデータをより高い順位に決定することを特徴とする付記１から付記４のいずれか１つに記載の分散データストア管理装置。
（付記６）
前記配置先ノード優先順位決定部は、前記利用度統合情報に加えて、各データが各ノードに配置された場合に該データを利用するノードから参照される参照性能にさらに基づいて、前記配置先ノード優先順位を決定することを特徴とする付記１から付記５のいずれか１つに記載の分散データストア管理装置。
（付記７）
複数のノードを用いて複数の処理を分散並列実行する分散並列処理実行装置であって、
処理の実行要求を受信する実行要求受信部と、
前記複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当てる割当部と、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を、付記１から付記６のいずれか１つに記載の分散データストア管理装置に出力する処理解析部と、
前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに、前記分散データストア管理装置を用いて配置する処理準備部と、
前記実行要求対象の処理を、前記割当部により割り当てられた１つ以上のノードに実行させる処理実行部と、
を備えた分散並列処理実行装置。
（付記８）
付記１から付記６のいずれか１つに記載の分散データストア管理装置と、
付記７に記載の分散並列処理実行装置と、
前記分散データストアと、
を備えた分散並列処理システム。
（付記９）
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定し、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置する、分散データストア管理方法。
（付記１０）
処理の実行要求を受信し、
分散並列処理を実行可能な複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当て、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得し、
取得した各利用度情報を付記９に記載の分散データストア管理方法を実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置し、
前記実行要求対象の処理を、割り当てられた１つ以上のノードに実行させる、分散並列処理実行方法。
（付記１１）
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用される１つ以上のデータについて前記利用度情報に基づく順位（データ利用度順位）を決定するデータ利用度順位決定ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位（配置先ノード優先順位）を決定する配置先ノード優先順位決定ステップと、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち１つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
（付記１２）
処理の実行要求を受信する実行要求受信ステップと、
分散並列処理を実行可能な複数のノードのうち１つ以上のノードに、実行要求対象の処理を割り当てる割当ステップと、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得する処理解析ステップと、
前記処理解析ステップで取得された各利用度情報を付記１１に記載のコンピュータ・プログラムを実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる１つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち１つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置する処理準備ステップと、
前記実行要求対象の処理を、割り当てられた１つ以上のノードに実行させる処理実行ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
【符号の説明】
【０１７５】
１、２    分散並列処理システム
１０    分散並列処理実行装置
２０、４０    分散データストア管理装置
３０    分散データストア
１１    実行要求受信部
１２    割当部
１３    処理解析部
１４    処理準備部
１５    処理実行部
２１    利用度情報統合部
２２、４２    データ利用度順位決定部
２３    配置先ノード優先順位決定部
２４、４４    データ配置部
３１    オンメモリ型データストア
３２    他のデータストア
９０    参照データストア
１０２    ジョブ制御インタフェース
１０３    ジョブ制御機能
１０４    アプリケーション管理機能
２０１    分散データストア管理機能
２０２    管理インタフェース
２０３    入出力インタフェース
２０４    管理エージェント
９００    データストア
１０００    ノード
１００１    ＣＰＵ
１００２    ＲＡＭ
１００３    ＲＯＭ
１００４    記憶装置
１００５    ネットワークインタフェース
【図１】
2014074950.tif 000003
【図２】
2014074950.tif 000004
【図３】
2014074950.tif 000005
【図４】
2014074950.tif 000006
【図５】
2014074950.tif 000007
【図６】
2014074950.tif 000008
【図７】
2014074950.tif 000009
【図８】
2014074950.tif 000010
【図９】
2014074950.tif 000011
【図１０】
2014074950.tif 000012
【図１１】
2014074950.tif 000013
【図１２】
2014074950.tif 000014
【図１３】
2014074950.tif 000015
【図１４】
2014074950.tif 000016
【図１５】
2014074950.tif 000017
【図１６】
2014074950.tif 000018
【図１７】
2014074950.tif 000019
【図１８】
2014074950.tif 000020
【図１９】
2014074950.tif 000021
【図２０】
2014074950.tif 000022
【図２１】
2014074950.tif 000023
【図２２】
2014074950.tif 000024