以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての分散並列処理システム1のハードウェア構成を図1に示す。
図1において、分散並列処理システム1は、複数のノード1000によって構成される。複数のノード1000のそれぞれは、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成される。また、複数のノード1000は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。なお、図1には、4つのノード1000を示しているが、本発明における分散並列処理システムを構成するノードの数を限定するものではない。また、分散並列処理システム1を構成する各ノード1000のハードウェア構成は、上述の構成に限定されない。
次に、分散並列処理システム1の機能ブロック構成を図2に示す。
図2において、分散並列処理システム1は、分散並列処理実行装置10と、分散データストア管理装置20と、分散データストア30とを含む。また、分散並列処理システム1は、分散並列処理システム1の外部のデータストア900に接続されていてもよい。その場合、分散並列処理システム1は、外部のデータストア900に、ネットワークインタフェース1005または周辺装置接続インタフェース(図示せず)等を介して接続される。外部のデータストア900は、外部のコンピュータ装置やストレージ装置によって構成されていてもよい。
分散並列処理実行装置10は、複数のノード1000を用いて、複数の処理を分散並列実行する装置である。分散並列処理実行装置10は、いずれかのノード1000を構成するコンピュータ装置によって構成されていてもよい。あるいは、分散並列処理実行装置10は、その機能が複数のノード1000に分散されて実現されたものであってもよい。
分散データストア30は、オンメモリ型データストア31を含む。オンメモリ型データストア31は、1つ以上のノード1000の有するメモリ(RAM1002)によって構成される。また、分散データストア30は、他のデータストア32を含んでいてもよい。他のデータストア32は、1つ以上のノード1000の有するハードディスク等の他の記憶装置1004等によって構成される。他のデータストア32は、分散並列処理システム1によって実行される処理で利用されるデータを保持している。これらのデータは、分散並列処理実行装置10によって、外部のデータストア900からあらかじめ読み込まれることにより他のデータストア32に格納されていてもよい。また、これらのデータは、分散並列処理実行装置10によって処理を実行する際に参照される他、処理の実行前にオンメモリ型データストア31に読み込まれる場合もある。なお、図2には、分散データストア30が、4つのノード1000の有するメモリおよび記憶装置によって構成される例を示しているが、本発明における分散データストアを構成するノードの数を限定するものではない。また、本発明における分散データストアは、本発明の分散並列処理システムを構成するノードの一部によって構成されていてもよい。
分散データストア管理装置20は、分散データストア30を管理する装置である。分散データストア管理装置20は、いずれかのノード1000を構成するコンピュータ装置によって構成されていてもよい。あるいは、分散データストア管理装置20は、その機能が複数のノード1000に分散されて実現されたものであってもよい。
次に、分散並列処理実行装置10の機能ブロックの詳細を図3に示す。
図3において、分散並列処理実行装置10は、実行要求受信部11と、割当部12と、処理解析部13と、処理準備部14と、処理実行部15とを備える。ここで、これらの各機能ブロックは、ネットワークインタフェース1005と、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。なお、分散並列処理実行装置10を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。
実行要求受信部11は、処理の実行要求を受信する。例えば、実行要求受信部11は、スケジュールにしたがって処理の実行要求を行うスケジュール管理部(図示せず)から実行要求を受信してもよい。その他、例えば、実行要求受信部11は、処理の実行要求を行う他の機能ブロックや外部の装置から実行要求を受信してもよい。
割当部12は、複数のノード1000のうち1つ以上のノード1000に、実行要求対象の処理を割り当てる。例えば、割当部12は、実行要求対象の処理の定義に基づいて、その処理によって利用されるデータを多く保持している1つ以上のノード1000にその処理を割り当ててもよい。このとき、割当部12は、分散データストア管理装置20に問い合わせることにより、どのノード1000がどのデータを多く保持しているかを表す情報を取得可能である。なお、処理の定義とは、例えば、処理の内容、処理の実行順序、処理対象データ、処理対象データの所在パス、処理対象データのフォーマット、その他の任意のプロパティ情報、制御定義情報等が含まれる情報であってもよい。また、処理の定義は、該当する処理を構成するさらに細かい複数の処理の定義を含むものであってもよい。また、処理の定義は、分散並列実行におけるポリシ、例えば、他の処理の終了待ちに関するポリシ等を含んでいてもよい。もし、実行要求対象の処理がさらに細かい複数の処理によって構成されていれば、割当部12は、細かい単位の処理のそれぞれについて1つ以上のノード1000を割り当ててもよい。また、割当部12は、1つの処理を、処理対象データの所在に応じて複数のノード1000に割り当ててもよい。
処理解析部13は、実行要求対象の処理および複数のノード1000が実行中の他の処理を解析することにより、各処理において利用される各データの各ノード1000による利用度情報を取得する。そして、処理解析部13は、これらの利用度情報を分散データストア管理装置20に出力する。ここで、利用度情報とは、ある処理において、各データが各ノード1000によって利用される度合を表す情報である。例えば、利用度情報は、各データに対する各ノード1000によるアクセス頻度であってもよい。
処理準備部14は、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理で用いられるデータの少なくとも一部を、分散データストア管理装置20を用いてオンメモリ型データストア31に配置する。
処理実行部15は、処理準備部14による準備完了後、実行要求対象の処理を、割当部12により割り当てられた1つ以上のノード1000に分散並列実行させる。このとき、処理実行部15は、1つ以上のノード1000が既に実行中の他の処理と、実行要求対象の処理とを分散並列実行することになる。
次に、分散データストア管理装置20の機能ブロックの詳細を図4に示す。
図4において、分散データストア管理装置20は、利用度情報統合部21と、データ利用度順位決定部22と、配置先ノード優先順位決定部23と、データ配置部24とを備える。これらの各機能ブロックは、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。なお、分散データストア管理装置20の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
利用度情報統合部21は、実行要求対象の処理において利用される各データの各ノード1000による利用度情報と、複数のノード1000が実行中の他の処理において利用される各データの各ノード1000による利用度情報とを統合した利用度統合情報を生成する。
例えば、利用度情報統合部21は、分散並列処理実行装置10に対して、実行要求対象の処理における各データの各ノード1000による利用度情報と、複数のノード1000が実行中の他の処理における各データの各ノード1000による利用度情報とを要求してもよい。そして、利用度情報統合部21は、分散並列処理実行装置10から取得した利用度情報を統合して利用度統合情報を生成すればよい。このようにして生成された利用度統合情報は、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理全体において利用される1つ以上の各データに対する各ノード1000による利用度情報を含む情報となる。
データ利用度順位決定部22は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて、利用度情報に基づく順位(データ利用度順位)を決定する。
例えば、データ利用度順位決定部22は、実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを前記利用度情報に基づいてソートした情報を、データ利用度順位を表す情報として生成してもよい。例えば、実行要求対象の処理においてデータY1に対する第1のノード1000によるアクセス頻度が1000であり、データY2に対する第2のノード1000によるアクセス頻度が800であったとする。また、実行中の処理において、データY1に対する第3のノード1000によるアクセス頻度が500であり、データY3に対する第4のノード1000によるアクセス頻度が300であったとする。この場合、データ利用度順位決定部22は、“Y1,Y2,Y1,Y3”を、データ利用度順位を表す情報として生成してもよい。
配置先ノード優先順位決定部23は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先となるノード1000の優先順位(配置先ノード優先順位)を決定する。
例えば、配置先ノード優先順位決定部23は、あるデータの配置先として、そのデータに対するアクセス頻度がより大きいノード1000により高い優先順位を設定するようにしてもよい。例えば、上述の例では、配置先ノード優先順位決定部23は、データY1について、第1のノード1000の優先順位を、第3のノード1000の優先順位より高く設定してもよい。
データ配置部24は、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストア31に読み込むデータを選択し、選択したデータの複製数および配置先ノード1000を決定する。そして、データ配置部24は、決定した配置にしたがって、選択したデータを該当するノード1000のメモリに配置する。ここで、オンメモリ型データストア31において、各ノード1000のメモリに読み込むことが可能な容量はあらかじめ分かっているものとする。
例えば、データ配置部24は、データ利用度順位に基づいて、順位の高いデータから順に、オンメモリ型データストア31の総容量に達するまで所定の複製数ずつ選択していくようにしてもよい。
また、例えば、データ利用度順位が、各データを表す情報をその利用ノード数分ずつ含むリストがソートされた情報であれば、データ配置部24は、データ利用度順位の上位の要素から順に総容量に達するまでの要素を選択することにより、各要素の表すデータの複製数を決定することになる。例えば、データ利用度順位が “Y1,Y2,Y1,Y3”である場合で、オンメモリ型データストア31の総容量がデータ2個分である場合、データ配置部24は、上位から順に“Y1,Y2”を選択することにより、Y1およびY2の複製数を1と決定する。あるいは、同様の例において、オンメモリ型データストア31の総容量がデータ3個分である場合、データ配置部24は、上位から順に“Y1,Y2,Y1”を選択することにより、Y1の複製数を2と決定し、Y2の複製数を1と決定することになる。
そして、データ配置部24は、選択したデータ毎に、その配置先ノード優先順位に基づいて、優先順位の高いノード1000から順に複製数の分だけのノード1000を選択し、そのデータの配置先として決定すればよい。
以上のように構成された分散並列処理システム1の動作について、図面を参照して説明する。
まず、分散並列処理システム1の動作の概略を、図5に示す。なお、図5において、左図は分散並列処理実行装置10の動作を示し、右図は分散データストア管理装置20の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
図5では、まず、実行要求受信部11は、処理の実行要求を受信する(ステップS1)。
次に、割当部12は、1つ以上のノード1000に、ステップS1で受信された実行要求対象の処理を割り当てる(ステップS2)。例えば、前述のように、割当部12は、ステップS1で受信された処理の定義に基づいて、その処理で利用されるデータを多く保持している1つ以上のノード1000に処理を割り当ててもよい。また、前述のように、割当部12は、実行要求対象の処理がさらに細かい処理によって構成される場合、さらに細かい個々の処理についてそれぞれ1つ以上のノード1000を割り当ててもよい。
次に、処理準備部14は、実行要求対象の処理の実行準備として、分散並列実行されることになる1つ以上の処理で用いるデータの少なくとも一部をオンメモリ型データストア31に読み込むよう、分散データストア管理装置20に要求する(ステップS3)。
次に、分散データストア管理装置20の利用度情報統合部21は、分散並列処理実行装置10に対して、実行要求対象の処理における各データの各ノード1000による利用度情報と、複数のノード1000が既に実行中の他の処理における各データの各ノード1000による利用度情報とを要求する(ステップS4)。
次に、分散並列処理実行装置10の処理解析部13は、該当する各処理を解析することにより、要求された各利用度情報を分散データストア管理装置20に送信する(ステップS5)。
次に、分散データストア管理装置20は、受信した各利用度情報を統合した利用度統合情報に基づいて、分散並列実行されることになる1つ以上の処理で用いられるデータの少なくとも一部を、オンメモリ型データストア31に配置する(ステップS6)。このステップの詳細については後述する。
次に、分散並列処理実行装置10の処理実行部15は、ステップS1で要求された実行要求対象の処理を、ステップS2で割り当てられた1つ以上のノード1000に分散並列実行させる(ステップS7)。これにより、分散並列処理システム1は、既に実行中の他の処理と、実行要求対象の処理とを、分散並列実行することになる。
以上で、分散並列処理システム1の動作の概略の説明を終了する。
次に、ステップS6における分散データストア管理装置20の動作の詳細を図6に示す。
図6では、まず、利用度情報統合部21は、ステップS5で送信された利用度情報を統合した利用度統合情報を生成する(ステップS11)。
次に、データ利用度順位決定部22は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて、データ利用度順位を決定する(ステップS12)。
次に、配置先ノード優先順位決定部23は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先ノード優先順位を決定する(ステップS13)。
次に、データ配置部24は、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストア31に読み込むデータを選択し、選択したデータの複製数および配置先ノードを決定する(ステップS14)。
次に、データ配置部24は、決定した内容にしたがって、データをオンメモリ型データストア31に配置する(ステップS15)。
以上で、ステップS6における分散データストア管理装置20の動作の詳細な説明を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての分散データストア管理装置は、複数のノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおけるデータのより効率的な配置を決定することができる。
その理由は、利用度情報統合部が、実行要求対象の処理において利用される各データの各ノードによる利用度情報と、既に実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、データ利用度順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる1つ以上の処理において利用されるデータに利用度情報に基づくデータ利用度順位を決定するからである。また、配置先ノード優先順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる1つ以上の処理において利用されるデータ毎に、その配置先となるノードの優先順位を決定するからである。そして、データ配置部が、データ利用度順位および配置先ノード優先順位に基づいて、オンメモリ型データストアに読み込むデータを選択し、選択したデータの複製数および配置先ノードを決定するからである。
これにより、本発明の第1の実施の形態としての分散データストア管理装置は、処理の実行要求があるたびに、新たに分散並列処理されることになる1つ以上の処理全体において、各データがどのノードによってどの程度利用されるかに応じて、より利用されるデータをより利用するノードのオンメモリ型データストアに配置可能となる。
このような本実施の形態の分散データストア管理装置を用いてデータを配置する本発明の第1の実施の形態としての分散並列処理実行装置は、分散並列処理性能をより向上させる。
その理由は、処理の実行要求を受信する度に、処理解析部が、実行要求対象の処理および既に実行中の他の処理において利用される各データに対する各ノードの利用度情報を解析して分散データストア管理装置に出力し、処理準備部が、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用されるデータの少なくとも一部を、本実施の形態の分散データストア管理装置を用いてオンメモリ型データストアに配置後、処理実行部が、1つ以上のノードを用いて実行要求対象の処理を分散並列実行するからである。
これにより、本発明の第1の実施の形態の分散並列処理実行装置は、処理の実行中に他の処理の実行を開始しても、分散並列処理される1つ以上の処理全体において、各データがどのノードによってどの程度利用されるかに応じて、それらの処理において総合的に利用度の高いデータを効率よくオンメモリ型データストアに配置する。
したがって、本発明の第1の実施の形態としての分散並列処理システムは、分散並列処理対象の1つ以上の処理のうちのいずれかにおいて頻繁に利用されるデータであるにも関わらずオンメモリ型データストアに読み込むことができないといった状況を軽減することができる。したがって、本実施の形態としての分散並列処理システムは、各処理が頻繁に利用するデータをより多くメモリから参照可能となる。したがって、本実施の形態は、分散並列処理性能を向上させることになる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本実施の形態では、本発明の分散並列処理システムにおいて、1つ以上のバッチ処理を分散並列処理する例を中心に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としての分散並列処理システム2の機能ブロック構成を図7に示す。
図7において、分散並列処理システム2は、本発明の第1の実施の形態としての分散並列処理システム2に対して、分散データストア管理装置20に替えて分散データストア管理装置40を含む点が異なる。また、分散並列処理システム2は、参照データストア90に接続されている。なお、分散並列処理システム2は、図1を用いて説明した本発明の第1の実施の形態と同様に複数のノード1000によって構成される。
以下、本実施の形態において、分散並列処理システム2は、4つのノード1000(Node-1〜Node-4)を含んで構成され、2つのバッチ処理(jobAを含むバッチ処理、および、jobBを含むバッチ処理)を分散並列実行する具体例を中心に説明する。なお、本実施の形態では、バッチ処理を構成する仕事の単位を“ジョブ”と呼ぶ。また、ジョブは、幾つかの“ステップ”と呼ばれる処理で構成され、jobAは、StepA1〜StepAn(nは1以上の整数)で構成され、jobBはStepB1〜StepBm(mは1以上の整数)で構成されるものとする。
また、本実施の形態におけるバッチ処理で利用されるデータには、バッチ処理対象の入力データと、処理において参照される参照データとがあるものとする。また、入力データは、各ノード1000のハードディスクに既に格納され、参照データは、上述の参照データストア90に格納されているものとする。参照データストア90は、分散並列処理システム2の外部に接続されたファイルシステムやデータベース、あるいは、外部装置のメモリによって構成されていてもよい。なお、本実施の形態では、分散並列処理システム2は、バッチ処理で利用されるデータのうち参照データから、オンメモリ型データストア31に配置するデータを選択するものとする。
また、本実施の形態において、分散並列処理システム2が実行するバッチ処理において利用される参照データのうち、複製対象データがあらかじめ定められているものとする。ここで、複製対象データとは、バッチ処理において利用される1つ以上のデータのうち、オンメモリ型データストア31に少なくとも所定のミニマム配置数だけ配置されうる対象となるデータである。例えば、複製対象データとしては、破損によって再度メモリに読み込むのにコストがかかるデータや、複数のノード1000で使用される可能性があるデータ、また、単一のノード1000においても使用頻度が高いと予想されるデータなどが適している。また、ミニマム配置数は、あらかじめ定められているものとする。例えば、分散並列処理システム2は、ユーザによって入力されたミニマム配置数を表す情報を取得してもよい。本実施の形態では、バッチ処理において利用される参照データとしてYデータ(Y1,Y2,Y3・・・)とZデータ(Z1,Z2,Z3・・・)とがあるものとする。例えば、Yデータは、販売管理システムにおける商品マスタデータや顧客マスタデータなどのように、各バッチ処理において参照頻度が高いデータであり、Zデータは、Yデータに比べると参照頻度が低いデータであるとする。この場合、参照データのうち、Yデータが複製対象データとして定められているものとする。なお、分散並列処理システム2は、バッチ処理で利用されるデータのうちいずれが複製対象データであるかを、ジョブ定義に含まれる情報から判断してもよい。あるいは、分散並列処理システム2は、バッチ処理で利用されるデータのうちいずれが複製対象データであるかを、そのデータの格納場所やパス等により判断してもよい。
次に、分散データストア管理装置40の機能ブロックを図8に示す。図8において、分散データストア管理装置40は、本発明の第1の実施の形態としての分散データストア管理装置20に対して、データ利用度順位決定部22に替えてデータ利用度順位決定部42と、データ配置部24に替えてデータ配置部44とを備える点が異なる。
ここで、このような分散並列処理システム2の各機能ブロックを実現するソフトウェア構成例について、図9を参照して説明する。
図9において、分散並列処理実行装置10は、分散バッチ実行基盤ソフトウェアによって実現可能である。分散バッチ実行基盤ソフトウェアは、1つ以上のノード1000上に配置された1つ以上のバッチ実行基盤ソフトウェアによって構成される。分散バッチ実行基盤ソフトウェアは、1つ以上のバッチ実行基盤ソフトウェアを用いて、同時に複数のバッチ処理を実行可能となっている。また、分散バッチ実行基盤ソフトウェアは、ジョブ制御インタフェース(IF)102と、ジョブ制御機能103と、アプリケーション管理機能104とを含む。ジョブ制御インタフェース102は、バッチ実行クライアントからのバッチ処理の実行要求を受け付けるインタフェースである。ジョブ制御機能103は、ジョブの実行準備や分散並列実行を制御する。なお、バッチ処理の処理内容や処理対象データは、予めプログラムとして記述される。ジョブ制御機能103は、バッチ処理を構成するジョブやステップを、該当するノード1000のバッチ処理基盤ソフトウェア上に実行可能な状態で配置する。アプリケーション管理機能104は、分散バッチ実行基盤ソフトウェア上で実行するアプリケーション(バッチ処理)の管理を行う。
アプリケーション管理機能104は、各ノード1000のバッチ処理実行基盤上に実行可能な状態で配置されたバッチ処理の解析を行い、バッチ処理が使用するデータを解析する機能を含む。アプリケーション管理機能104は、解析機能によって、ステップの実行順序、処理対象データ、処理対象データの所在パス、各種プロパティ情報、制御定義、各ノード1000で実行されるステップ、各ノード1000で処理される入力データとそれにひもづく参照データなどの情報を取得することができる。
このようなソフトウェア構成の場合、実行要求受信部11は、ジョブ制御インタフェース102によって実現可能である。また、割当部12と、処理準備部14と、処理実行部15とは、ジョブ制御機能103によって実現可能である。また、処理解析部13は、アプリケーション管理機能104によって実現可能である。
また、図9において、分散データストア管理装置40は、分散データストア管理機能201と、管理インタフェース(IF)202と、各ノード1000の入出力インタフェース(IF)203および管理エージェント204とからなる。
分散データストア管理機能201は、オンメモリ型データストア31上のデータの複製数やその配置場所を管理する。また、分散データストア管理機能201は、分散並列処理実行装置10から得られるジョブの解析情報に基づいて、オンメモリ型データストア31上のデータの複製数やその配置場所を決定する複製データ配置機能を有する。
管理インタフェース202は、分散データストア管理機能201に対するインタフェースである。
各ノード1000の入出力インタフェース203は、管理エージェント204を介してメモリやハードディスク等に対するデータの入出力を行う。各ノード1000の管理エージェント204は、互いに通信することにより他のノード1000が保持するデータを知ることができる。また、管理エージェント204は、分散データストア管理機能201の制御の基に、オンメモリ型データストア31へのデータのロードおよびパージを明示的に行う。
このようなソフトウェア構成の場合、利用度情報統合部21は、管理インタフェース202および分散データストア管理機能201によって実現可能である。また、データ利用度順位決定部42および配置先ノード優先順位決定部23は、分散データストア管理機能201によって実現可能である。また、データ配置部44は、分散データストア管理機能201、入出力インタフェース203および管理エージェント204によって実現可能である。
また、外部の参照データストア90は、データストア管理機能301と、入出力インタフェース(IF)302と、データを格納したデータベースによって実現されていてもよい。
なお、本発明の分散並列処理システムの各機能ブロックを実現するソフトウェア構成は、上述の構成に限定されない。
図8に戻り、分散データストア管理装置40の各機能ブロックの詳細について説明する。
利用度情報統合部21は、本発明の第1の実施の形態と同様に構成される。ここでは、利用度情報統合部21が、本実施の形態において生成する利用度統合情報の例について説明する。この例では、分散並列処理実行装置10の処理解析部13によって、図10(a)に示すようなjobAの利用度情報が取得され、図10(b)に示すようなjobBの利用度情報が取得されたとする。なお、図10では、利用度として各データに対する各ノードのアクセス頻度が採用されている。例えば、図10(a)は、jobAで利用される参照データY1に対するNode-1からのアクセス頻度が1000であり、Node-2からのアクセス頻度も1000であることを示している。また、図10(b)は、jobBで利用される参照データY1に対するNode-3からのアクセス頻度が1000であり、Node-4からのアクセス頻度も1000であることを示している。この場合、利用度統合情報は、図10(c)に示すような利用度統合情報を生成する。
データ利用度順位決定部42は、利用度統合情報に基づいて、実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを利用度情報に基づきソートしたものを、データ利用度順位を表す情報として生成する。例えば、図10(c)に示すような利用度統合情報が生成されている場合について説明する。この場合、並列実行されることになる1つ以上の処理(jobAおよびjobB)において利用されるデータは、Y1,Y2,Y3,Z1,Z2およびZ3である。ここで、データY1を利用するノード数は、Node-1~Node-4の4つである。また、Y2を利用するノード数は、Node-3~Node-4の2つである。また、Y3,Y3,Z1,Z2の各データの利用ノード数は、それぞれ4、2、2、2となる。したがって、これらの各データを表す情報をその利用ノード数ずつ含むリストとは、“Y1,Y1,Y1,Y1,Y2,Y2,Y3,Y3,Y3,Y3,Z1,Z1,Z2,Z2,Z3,Z3”となる。そこで、データ利用度順位決定部42は、このリストを図10(c)に示した利用度(アクセス頻度)でソートする。これにより、図11(a)に示すようなデータ利用度順位を表すリストが生成される。
なお、データ利用度順位決定部42は、このようなデータ利用度順位を表すリストを生成する際に、利用度が同一の要素については、複製対象データを、複製対象データではないデータより高い順位に決定してもよい。
また、データ利用度順位決定部42は、図11(a)に一例を示したようなデータ利用度順位を表すリストを生成する際に、利用度が同一の要素については、利用総数がより多いデータをより高い順位に決定してもよい。ここで、利用総数とは、実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される各データについて、複数のノード1000からの合計の利用総数である。データ利用度順位決定部42は、利用度統合情報に基づいて、各データの利用総数を算出しておくことにより、利用度が同一の要素に関するデータ利用度順位を決定可能である。例えば、図10(c)に示した利用度統合情報が生成されている場合、データ利用度順位決定部42は、図12に示すようなアクセス総数を算出しておいてもよい。
配置先ノード優先順位決定部23は、本発明の第1の実施の形態と同様に構成される。ここでは、配置先ノード優先順位決定部23が、本実施の形態において決定する配置先ノード優先順位の例について説明する。ここでは、図10(c)に示すような利用度統合情報が生成されていることを想定する。この場合、配置先ノード優先順位決定部23は、並列実行されることになる1つ以上の処理(jobAおよびjobB)において利用されるデータのうち、例えばデータY1について、Node-1〜Node-4について、その利用度(アクセス頻度)の順に、優先順位を決定する。この場合、データY1のNode-1〜Node-4からの利用度は、全て同一(1000)であるため、配置先ノード優先順位決定部23は、データY1の配置先ノード優先順位として、Node-1~Node-4に全て1を設定する(図13参照)。また、データY2のNode-1、Node-2からの利用度は0であり、Node-3~Node-4からの利用度は800である。そこで、配置先ノード優先順位決定部23は、データY2の配置先ノード優先順位として、Node-3およびNode-4に1を設定し、Node-1およびNode-2に3を設定する。同様にして、配置先ノード優先順位決定部23は、図13に示すような配置先ノード優先順位を表す情報を生成すればよい。なお、図13の例では、数値が小さいほど配置先ノード優先順位が高いことを表している。
データ配置部44は、データ利用度順位の表すデータの上位から順に、複製対象データを所定のミニマム配置数ずつ選択する。これにより、複製対象データは少なくともミニマム配置数ずつ選択される。そして、データ配置部44は、選択した複製対象データの配置先ノードを、配置先ノード優先順位に基づいて決定する。その後、データ配置部44は、オンメモリ型データストア31の残りの空き領域の分だけ、データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順にデータを選択する。このとき、まだ選択されていない残りのリストには、参照データを示す要素がそれぞれ1つ以上ずつ含まれる。また、もし、利用ノード数がミニマム配置数より多い複製対象データがあれば、データ利用度順位の残りのリストには、複製対象データを示す要素も含まれている。したがって、データ配置部44は、データ利用度順位の残りの上位から順に空き領域の分だけデータを選択することにより、各参照データの複製数を決定することになる。そして、データ配置部44は、選択したデータの配置先ノードを配置先ノード優先順位に基づいて決定する。
例えば、図11(a)に示したデータ利用度順位および図13に示した配置先ノード優先順位をそれぞれ表す情報が生成されていたとする。この場合、データ配置部44は、まず、図11(a)のデータ利用度順位の上位から順に、複製対象データであるYデータ(Y1,Y2,Y3)をミニマム配置数ずつ選択する。例えば、ミニマム配置数が1であれば、データ配置部44は、図11(a)に示すデータ利用度順位の上位から、Y1,Y2,Y3の順に選択すればよい。また、例えば、ミニマム配置数が2以上であれば、データ配置部44は、図11(a)に示すデータ利用度順位の上位から、Y1,Y2,Y3の順に1つずつ選択した後、再度、残りのリストの上位から順にY1,Y2,Y3の順に選択することを繰り返してもよい。図11(b)に、ミニマム配置数が1の場合に、データ利用度順位のリストから選択される複製対象データの一例を示す。なお、図11(b)では、ドットパターンで塗りつぶされたセルは、選択された複製対象データを示している。
そして、データ配置部44は、選択した複製対象データの配置先ノードを、配置先ノード優先順位にしたがって決定する。例えば、図11(b)に示す複製対象データが選択され、図13に示した配置先ノード優先順位が生成されている場合を想定する。この場合、データ配置部44による複製対象データの配置先ノードの決定例を図14(a)に示す。図14(a)において、データ配置部44は、最初に選択したデータY1について、図13に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY1に関する配置先ノード優先順位はこの例では全て1となっているため、データ配置部44は、いずれかのノード1000を配置先として選択すればよい。ここではNode-1を配置先として選択したものとする。次に、データ配置部44は、次に選択したデータY2について、図10に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY1に関してNode-3およびNode-4の順位が1である。したがって、データ配置部44は、Node-3およびNode-4のいずれかをデータY2の配置先ノードとして選択すればよい。ここでは、Node-3を選択したものとする。次に、データ配置部44は、次に選択したデータY3について、図13に示した配置先ノード優先順位にしたがって、配置先ノードを決定する。このとき、データY3に関してNode-1およびNode-2の順位が1である。したがって、データ配置部44は、Node-1およびNode-2のいずれかをデータY3の配置先ノードとして選択すればよい。ただし、Node-1には既にデータY1が配置されているため、データ配置部44は、空き領域の多いNode-2を選択してもよい。
また、前述のように、データ配置部44は、複製対象データをミニマム配置数ずつ配置後、オンメモリ型データストア31の残りの空き領域の分だけ、データ利用度順位を表すリストの残りの上位からデータを順に選択する。そして、データ配置部44は、選択したデータの配置先を配置先ノード優先順位に基づいて決定する。
例えば、図11(a)に示したデータ利用度順位および図13に示した配置先ノード優先順位をそれぞれ表す情報が生成されていたとする。また、図11(b)に示す複製対象データがミニマム配置数(ここでは、1とする)ずつ選択されて図14(a)に示すように配置されていたとする。ここでは、話を簡単にするため、オンメモリ型データストア31において各ノード1000のメモリに配置可能なデータの個数を3とし、参照データ個々についてのデータサイズについては考えないこととする。この場合、オンメモリ型データストア31の残りの空き領域は、データ9個分である。そこで、データ配置部44は、図11(b)のデータ利用度順位のうち、既に選択された複製対象データ(ドットパターンのセルが示すデータ)以外の要素の上位から順に、9つの要素(Y1,Y1,Y1,Y2,Y3,Z3,Z1,Z3,Z2)を選択する(図11(c)参照)。図11(c)では、斜線パターンで塗りつぶされたセルは、選択されたデータを示している。そして、データ配置部44は、選択した9つの要素が示すデータについて、図13に示す配置先ノード優先順位にしたがって、その配置先ノードを決定する。その結果、オンメモリ型データストア31に読み込む参照データの配置は、図14(b)に示すとおりとなる。この例では、Y1の複製数は4、Y2,Y3およびZ3の複製数は2、Z1およびZ2の複製数は1となっている。
以上のように構成された分散並列処理システム2の動作について説明する。なお、分散並列処理システム2の動作の概略については、図5を参照して説明した本発明の第1の実施の形態としての分散並列処理システム1の動作と同様であるため、本実施の形態における詳細な説明を省略する。
ここでは、図5のステップS6における分散データストア管理装置40の動作の詳細を図15〜図17を用いて説明する。
図15では、まず、利用度情報統合部21は、ステップS5で送信された利用度情報を統合した利用度統合情報を生成する(ステップS11)。
次に、データ利用度順位決定部42は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて、データ利用度順位を表すリストを生成する(ステップS22)。具体的には、データ利用度順位決定部42は、各データを表す情報をその利用ノード数ずつ含むリストをその利用度に基づいてソートしたリストを、データ利用度順位を表す情報として生成する。
次に、配置先ノード優先順位決定部23は、利用度統合情報に基づいて、実行要求対象の処理の実行により分散並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先ノード優先順位を決定する(ステップS13)。
次に、データ配置部44は、所定のミニマム配置数が1以上であるか否かを判断する(ステップS24)。
ここで、ミニマム配置数が1以上でない場合、分散データストア管理装置40の動作はステップS26に進む。なお、ミニマム配置数が1以上でないとは、例えば、複製対象データを優先的にオンメモリ型データストア31に配置することが無効とされていることを意味する。
一方、ミニマム配置数が1以上である場合、データ配置部44は、ステップS22で生成したデータ利用度順位の上位から順に、複製対象データをミニマム配置数ずつ選択し、ステップS13で生成した配置先ノード優先順位に基づいて配置する(ステップS25)。このステップの詳細については後述する。
次に、データ配置部44は、オンメモリ型データストア31に、まだ空き領域があるか否かを判断する(ステップS26)。
ここで、空き領域がないと判断された場合、分散データストア管理装置40のステップS6における動作は終了する。
一方、空き領域があると判断した場合、データ配置部44は、データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順に、オンメモリ型データストア31の空き領域の分だけデータを選択し、配置先ノード優先順位にしたがって配置する(ステップS27)。このステップの詳細については後述する。
以上で、分散データストア管理装置40のステップS6における動作は終了する。
次に、ステップS25における複製対象データの配置処理の詳細を図16に示す。
図16では、まず、データ配置部44は、ステップS22で生成したデータ利用度順位の上位から順に検索していき、複製対象データのうちまだi(i=1〜ミニマム配置数)個目を選択していないものを1つ選択する(ステップS31)。
詳細には、まず、データ配置部44は、データ利用度順位のリストに残された要素の上位から、複製対象データのうちまだ1つも選択していないものを検索して1つ選択し、選択した複製対象データについて、ステップS32〜S35の処理を実行する。また、複製対象データを既に1つずつ選択済みとなっている場合、データ配置部44は、データ利用度順位のリストに残された要素の上位から順に、複製対象データのうち2つ目を選択していないものを検索して1つ選択し、選択した複製対象データについて、ステップS32〜S35の処理を実行する。このようにして、データ配置部44は、データ利用度順位のリストに残された要素の上位から順に、まだi個目を選択していないものを検索して選択し、ステップS32〜S35を実行する処理を、i=1〜nについて行えばよい。これにより、例えば、データ利用度順位のリストが“Y1,Y1,Y2,Y1,Y3,Y3,Z3,Z1,Z3,Z2,Z2,Y2,・・・”であり、ミニマム配置数が2以上の場合、データ配置部44は、ステップS31を実行する度に、Y1→Y2→Y3→Y1→Y3→Y2→・・の順にデータを選択することになる。
次に、データ配置部44は、選択した複製対象データを格納可能な空き領域がオンメモリ型データストア31にあるか否かを判断する(ステップS32)。
ここで、空き領域がないと判断された場合、分散データストア管理装置40は、複製対象データの配置処理を終了し、データ配置処理も終了する。
一方、空き領域があると判断した場合、データ配置部44は、選択した複製対象データの配置先となるノード1000を、ステップS13で決定した配置先ノード優先順位に基づいて決定する(ステップS33)。
次に、データ配置部44は、ステップS33で決定したノード1000に、ステップS31で選択した複製対象データを配置する(ステップS34)。
次に、データ配置部44は、ステップS22で生成されたデータ利用度順位のリストに含まれる全ての複製対象データを所定のミニマム配置数ずつ選択しその配置を終えたか否かを判断する(ステップS35)。
ここで、まだ全ての複製対象データについてミニマム配置数ずつ配置が完了していない場合、データ配置部44は、ステップS31からの処理を繰り返す。
一方、全ての複製対象データについてミニマム配置数ずつ配置が完了している場合、データ配置部44は、複製対象データの配置処理を終了する。
次に、ステップS27における他のデータの配置処理の詳細を図17に示す。
図17では、まず、データ配置部44は、ステップS22で生成されたデータ利用度順位のリストのうちまだ選択されていない残りの要素の上位から1つデータを選択する(ステップS41)。
次に、データ配置部44は、ステップS41で選択したデータの配置先となるノード1000を、ステップS13で決定した配置先ノード優先順位に基づいて決定する(ステップS42)。
次に、データ配置部44は、ステップS42で決定したノード1000に、ステップS41で選択したデータを配置する(ステップS43)。
次に、データ配置部44は、オンメモリ型データストア31に空き領域があるか否かを判断する(ステップS44)。
ここで、空き領域があれば、データ配置部44は、ステップS41からの処理を繰り返す。
一方、空き領域がなければ、データ配置部44は、他のデータの配置処理を終了する。
以上で、ステップS6における分散データストア管理装置40の動作の詳細な説明を終了する。
次に、分散並列処理システム2の動作の具体例について説明する。ここでは、分散並列処理システム2が、まずjobAからなるバッチ処理を実行し、その実行中に、jobBからなるバッチ処理の実行要求を受信した場合の動作例について説明する。なお、以下の具体例では、ミニマム配置数は2と定められているものとする。
まず、分散並列処理実行装置10の実行要求受信部11は、jobAの実行要求を受信する(ステップS1)。
次に、割当部12は、jobAを実行するノード1000を割り当てる。例えば、jobAに含まれるStepA1における処理対象の入力データA1〜A6がNode-1およびNode-2のハードディスクに配備されているとする。この場合、割当部12は、jobAに含まれるstepA1をNode-1およびNode-2に割り当てる(ステップS2)。
次に、処理解析部13はjobAを解析して利用度情報を分散データストア管理装置40に出力する(ステップS3〜S5)。
ここで、この時点で既に実行中の処理はなかったものとする。そこで、分散データストア管理装置40は、図18(a)に示したjobAの利用度情報をそのまま利用度統合情報とする(ステップS11)。
次に、この利用度統合情報に基づいて、分散データストア管理装置40は、図18(b)に示したデータ利用度順位および図18(c)に示した配置先ノード優先順位を決定する(ステップS22、S13)。
次に、データ配置部44は、図18(b)のデータ利用度順位から複製対象データのY1およびY3を2つずつ選択する(図19(a)参照)。そして、データ配置部44は、図18(c)の配置先ノード優先順位にしたがって、Y1の配置先ノードとしてNode-1およびNode-2を、Y3の配置先ノードとしてNode-1およびNode-2をそれぞれ決定し、配置する(ステップS25)。
ここで、Node-1およびNode-2のオンメモリ型データストア31の空き領域はあとデータ2個分となる。そこで、データ配置部44は、データ利用度順位のうち、図19(a)で選択されたもの以外の残りの上位から、データZ1およびZ2を1つずつ選択する(図19(b)参照)。そして、データ配置部44は、図18(c)の配置先ノード優先順位にしたがって、Z1の配置先ノードとしてNode-1を決定し、Z2の配置先としてNode-2を決定し、配置する(ステップS27)。
これにより、オンメモリ型データストア31のデータ配置は図20(a)に示すとおりとなる。
ここで、分散並列処理実行装置10の実行要求受信部11は、jobBの実行要求を受信する(ステップS1)。
次に、割当部12は、jobBを実行するノード1000を割り当てる。例えば、jobBに含まれるStepB1における処理対象の入力データB1〜B6がNode-3およびNode-4のハードディスクに配備されているとする。この場合、割当部12は、jobBに含まれるstepB1をNode-3およびNode-4に割り当てる(ステップS2)。
次に、処理解析部13は、既に実行中のjobAの利用度情報と、実行要求対象のjobBの利用度情報とを、分散データストア管理装置40に出力する(ステップS3〜S5)。
そこで、分散データストア管理装置40は、図10(c)に示した利用度統合情報、図11(a)に示したデータ利用度順位、図13に示した配置先ノード優先順位を決定する(ステップS11、S22、S13)。
次に、データ配置部44は、図11(a)のデータ利用度順位の上位から順に、複製対象データをミニマム配置数である2つずつ選択する。ここでは、Y1、Y2、Y3が、それぞれ2つずつ選択される(図21(a)参照)。そして、データ配置部44は、図13の配置先ノード優先順位にしたがって、選択した複製対象データをオンメモリ型データストア31の各ノード1000に配置する(ステップS25)。
なお、jobBの実行要求を受信後のステップS25において、データ配置部44は、既に配置されているデータの配置を考慮して、配置先ノードを決定してもよい。例えば、この場合、jobAの実行により既にNode-1およびNode-2にY1およびY3データが2つずつ配置されている。そこで、データ配置部44は、今回選択した2つずつの複製対象データY1、Y2、Y3のうちY1およびY3については既に配置が済んでいるものとして、Y2について、その配置先ノード優先順位にしたがって配置先となる2つのノード1000を決定してもよい。これにより、オンメモリ型データストア31に配置されたデータは、図20(b)に示すとおりとなる。なお、データ配置部44は、既に配置されているデータの配置を考慮せずに、配置先ノード優先順位にしたがって新たな配置を決定し、新たな配置を行ってもよい。
ここで、Node-1からNode-4のオンメモリ型データストア31の空き領域はあとデータ6個分となる。そこで、データ配置部44は、データ利用度順位のうち、図21(a)で選択された複製対象データ以外の残りの上位から、空き領域に格納可能な個数である6つ分だけデータを選択する(図21(b)参照)。ここでは、Y1およびZ3が2つずつと, Z1およびZ2が1つずつ選択される。そして、データ配置部44は、図13の配置先ノード優先順位にしたがって、選択したデータをオンメモリ型データストア31の各ノード1000に配置する(ステップS27)。
ここで、jobBの実行要求を受信後のステップS27において、データ配置部44は、既に配置されているデータの配置を考慮して、配置先ノードを決定してもよい。例えば、この場合、jobAの実行により既にNode-1およびNode-2にZ1およびZ2データが配置されている。そこで、データ配置部44は、ステップS27で選択したデータのうち、Z1およびZ2については既に配置が済んでいるものとし、Y1およびZ3について、その配置先ノード優先順位にしたがって配置先ノードを決定してもよい。これにより、オンメモリ型データストア31に配置されたデータは、図20(c)に示すとおりとなる。あるいは、データ配置部44は、既に配置されているデータの配置を考慮せずに、配置先ノード優先順位にしたがって新たな配置を決定し、新たな配置を行ってもよい。
以上のように配置されたデータを用いて、分散並列処理システム2における各ジョブが参照データを参照する動作を図22に模式的に示す。図22において、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)のメモリから参照することができ、ハードディスク等の処理性能の遅い記憶装置をアクセスする必要がない。
以上で、分散並列処理システム2の動作の具体例の説明を終了する。
次に、本発明の第2の実施の形態の効果について説明する。
本発明の第2の実施の形態としての分散データストア管理装置は、複数のノードによる分散並列処理性能をより向上させるよう、オンメモリ型データストアにおいて、複製対象に適したデータをより確実にミニマム配置数ずつ配置することができる。
その理由は、実行要求対象の処理において利用される各データの各ノードによる利用度と、実行中の他の処理において利用される各データの各ノードによる利用度とを統合した利用度統合情報に基づいて、データ利用度順位決定部が、分散並列実行されることになる1つ以上の処理において利用されるデータに利用度に基づくデータ利用度順位を決定するからである。そして、その際に、データ利用度順位決定部が、各データを表す情報をその利用ノード数ずつ含むリストがその利用度の順にソートされたリストを、データ利用度順位を表す情報として生成するからである。また、配置先ノード優先順位決定部が、利用度統合情報に基づいて、分散並列実行されることになる1つ以上の処理において利用されるデータ毎に、その配置先となるノードの優先順位を決定するからである。そして、データ配置部は、データ利用度順位のリストの上位から、まず複製対象データを所定のミニマム配置数ずつ選択して、配置先ノード優先順位に基づいてオンメモリ型データストアに配置し、その後、オンメモリ型データストアの空き領域に格納可能な分だけ、データ利用度順位のリストの残りの上位から順にデータを選択して、配置先ノード優先順位に基づいてオンメモリ型データストアに配置するからである。このように、複製対象データを先に配置することにより、本実施の形態は、利用度が高く複製対象に適しているデータがオンメモリ型データストアに配置されないケースおよびその配置数がミニマム配置数を下回るケースを軽減し、複製対象に適しているデータをより確実にミニマム配置数ずつオンメモリ型データストアに配置することが可能となる。
これにより、本発明の第2の実施の形態としての分散データストア管理装置は、処理の実行要求があるたびに、分散並列処理されることになる1つ以上の処理全体において総合的に利用度の高い複製対象データをより確実にミニマム配置数ずつオンメモリ型データストアに配置することが可能となる。しかも、本実施の形態としての分散データストア管理装置は、そのようにして複製対象データをミニマム配置数ずつ配置した後のオンメモリ型データストアに空き領域があれば、さらに、分散並列処理されることになる1つ以上の処理全体において利用度の高いデータをより利用度の高いノードのオンメモリ型データストアに配置可能となる。
このような本実施の形態の分散データストア管理装置を用いてデータを配置する本発明の第2の実施の形態としての分散並列処理実行装置は、バッチ処理の分散並列処理性能をより向上させる。
その理由は、バッチ処理を構成するジョブの実行要求を受信する度に、処理解析部が、実行要求対象のジョブおよび既に実行中の他のジョブにおいて利用される各データに対する各ノードの利用度情報を解析して分散データストア管理装置に出力するからである。これにより、処理準備部が、実行要求対象のジョブの実行により分散並列実行されることになる1つ以上のジョブにおいて利用されるデータのうち複製対象データを、本実施の形態の分散データストア管理装置を用いてオンメモリ型データストアにミニマム配置数ずつ配置し、オンメモリ型データストアの残りの空き領域にも、1つ以上の処理全体で総合的に利用度の高い残りのデータをさらに配置した上で、処理実行部が、実行要求対象のジョブを分散並列実行するからである。
これにより、本発明の第2の実施の形態の分散並列処理実行装置は、バッチ処理の実行中に他のバッチ処理の実行を開始しても、各バッチ処理を構成するジョブにおいて利用度の高い複製対象データのオンメモリ型データストア上におけるミニマム配置数を下回らせることがない。
したがって、本発明の第2の実施の形態としての分散並列処理システムは、分散並列処理対象の1つ以上のバッチ処理を構成するジョブのうちのいずれかにおいて頻繁に利用される複製対象データであるにも関わらずオンメモリ型データストアでの配置数がミニマム配置数を下回るといった状況を軽減することができる。したがって、本実施の形態としての分散並列処理システムは、各処理が頻繁に利用する複製対象データをより多くオンメモリ型データストアから参照可能となる。したがって、本実施の形態は、バッチ処理の分散並列処理性能を向上させることになる。
なお、本実施の形態では、1バッチ処理が1ジョブで構成される例を中心に説明したが、本実施の形態は、1つのバッチ処理が複数ジョブで構成される場合にも適用可能である。その場合、分散並列処理実行装置は、新たに開始されるジョブの実行要求のたびに、分散並列実行されることになるジョブ全体における利用度統合情報に基づいて、データ利用度順位および配置先ノード優先順位を決定してデータを配置すればよい。
また、本実施の形態では、分散並列処理システムがバッチ処理を分散並列処理する例を中心に説明したが、本実施の形態の分散並列処理システムは、バッチ処理に限らず、データの利用度を解析可能な処理を分散並列実行する場合にも適用可能である。
また、本実施の形態では、オンメモリ型データストアに配置する対象の参照データが、外部の参照データストアに格納されている例を中心に説明した。この他、本実施の形態は、オンメモリ型データストアに配置する対象のデータが、各ノードのハードディスクやその他の記憶装置に格納されている場合にも適用可能である。
また、上述した本発明の各実施の形態において、分散並列処理システムを構成するノードが4つである例を中心に説明したが、本発明における分散並列処理システムを構成するノード数を限定するものではない。
また、上述した本発明の各実施の形態において、配置先ノード優先順位決定部は、利用度統合情報に基づいて、各データの配置先となりうるノードに優先順位を決定するものとして説明した。これに加えて、各実施の形態の配置先ノード優先順位決定部は、各データが各ノードに配置された場合の該データを利用するノードからの参照性能をさらに考慮して、配置先ノード優先順位を決定してもよい。このとき、配置先ノード優先順位決定部は、各ノードから自ノードのメモリに配置されたデータを参照する参照性能や、他ノードのメモリに配置されたデータを参照する参照性能、または、オンメモリ型データストアに配置されていないデータ(ハードディスク等に配置されているデータ)を参照する参照性能を考慮して、配置先ノード優先順位を決定可能である。
また、上述した本発明の各実施の形態において、オンメモリ型データストアの各メモリに格納可能なデータの量を、データの個数を用いて判断する例を中心に説明したが、各実施の形態は、配置対象のデータサイズを考慮して、各メモリの空き領域の容量に基づいて動作することも可能である。
また、上述した本発明の各実施の形態において、利用度として各ノードによる各データのアクセス頻度を適用する例を中心に説明したが、利用度は、各データが各ノードにより利用される程度を表す情報であれば、アクセス頻度以外の情報であってもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した分散データストア管理装置および分散並列処理実行装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
1つ以上のノードが有するメモリによって構成されるオンメモリ型データストアを含む分散データストアを管理する分散データストア管理装置であって、
前記1つ以上のノードを含む複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて前記利用度情報に基づく順位(データ利用度順位)を決定するデータ利用度順位決定部と、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位(配置先ノード優先順位)を決定する配置先ノード優先順位決定部と、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記オンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置部と、
を備えた分散データストア管理装置。
(付記2)
前記データ利用度順位決定部は、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される各データを表す情報をそのデータを利用するノード数分ずつ含むリストを前記利用度情報に基づいてソートした情報を、前記データ利用度順位を表す情報として生成することを特徴とする付記1に記載の分散データストア管理装置。
(付記3)
前記実行要求対象となりうる処理において利用される1つ以上のデータのうち、前記オンメモリ型データストアに少なくとも所定のミニマム配置数だけ配置されうる対象となる複製対象データがあらかじめ定められているとき、
前記データ配置部は、前記データ利用度順位の示すデータのうち前記複製対象データを上位から順に前記ミニマム配置数ずつ選択し、選択した複製対象データの配置先ノードを前記配置先ノード優先順位に基づいて決定後、前記オンメモリ型データストアの残りの空き領域に格納可能な分だけ、前記データ利用度順位の示すデータのうちまだ選択されていない残りの上位から順にデータを選択し、選択したデータの配置先ノードを前記配置先ノード優先順位に基づいて決定することを特徴とする付記1または付記2に記載の分散データストア管理装置。
(付記4)
前記データ利用度順位決定部は、利用度が同一のデータについて、前記複製対象データを、前記複製対象データではないデータより高い順位に決定することを特徴とする付記3に記載の分散データストア管理装置。
(付記5)
前記データ利用度順位決定部は、前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される各データについて前記複数のノードからの合計の利用総数を算出しておき、前記利用度が同一のデータについて、前記利用総数がより多いデータをより高い順位に決定することを特徴とする付記1から付記4のいずれか1つに記載の分散データストア管理装置。
(付記6)
前記配置先ノード優先順位決定部は、前記利用度統合情報に加えて、各データが各ノードに配置された場合に該データを利用するノードから参照される参照性能にさらに基づいて、前記配置先ノード優先順位を決定することを特徴とする付記1から付記5のいずれか1つに記載の分散データストア管理装置。
(付記7)
複数のノードを用いて複数の処理を分散並列実行する分散並列処理実行装置であって、
処理の実行要求を受信する実行要求受信部と、
前記複数のノードのうち1つ以上のノードに、実行要求対象の処理を割り当てる割当部と、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を、付記1から付記6のいずれか1つに記載の分散データストア管理装置に出力する処理解析部と、
前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち1つ以上のノードのメモリによって構成されるオンメモリ型データストアに、前記分散データストア管理装置を用いて配置する処理準備部と、
前記実行要求対象の処理を、前記割当部により割り当てられた1つ以上のノードに実行させる処理実行部と、
を備えた分散並列処理実行装置。
(付記8)
付記1から付記6のいずれか1つに記載の分散データストア管理装置と、
付記7に記載の分散並列処理実行装置と、
前記分散データストアと、
を備えた分散並列処理システム。
(付記9)
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて前記利用度情報に基づく順位(データ利用度順位)を決定し、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位(配置先ノード優先順位)を決定し、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち1つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置する、分散データストア管理方法。
(付記10)
処理の実行要求を受信し、
分散並列処理を実行可能な複数のノードのうち1つ以上のノードに、実行要求対象の処理を割り当て、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得し、
取得した各利用度情報を付記9に記載の分散データストア管理方法を実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち1つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置し、
前記実行要求対象の処理を、割り当てられた1つ以上のノードに実行させる、分散並列処理実行方法。
(付記11)
複数のノードを用いて分散並列実行するよう要求された実行要求対象の処理において利用される各データが各ノードにより利用される度合を表す利用度情報と、前記複数のノードが実行中の他の処理において利用される各データの各ノードによる利用度情報とを統合した利用度統合情報を生成する利用度情報統合ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用される1つ以上のデータについて前記利用度情報に基づく順位(データ利用度順位)を決定するデータ利用度順位決定ステップと、
前記利用度統合情報に基づいて、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理において利用されるデータ毎に、該データの配置先となるノードの優先順位(配置先ノード優先順位)を決定する配置先ノード優先順位決定ステップと、
前記データ利用度順位および前記配置先ノード優先順位に基づいて、前記複数のノードのうち1つ以上のノードが有するメモリによって構成されるオンメモリ型データストアに読み込むデータを選択してその複製数および配置先ノードを決定し、決定した内容にしたがって前記オンメモリ型データストアにデータを配置するデータ配置ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
(付記12)
処理の実行要求を受信する実行要求受信ステップと、
分散並列処理を実行可能な複数のノードのうち1つ以上のノードに、実行要求対象の処理を割り当てる割当ステップと、
前記実行要求対象の処理および前記複数のノードが実行中の他の処理を解析することにより、各処理において利用される各データが各ノードにより利用される度合を表す利用度情報を取得する処理解析ステップと、
前記処理解析ステップで取得された各利用度情報を付記11に記載のコンピュータ・プログラムを実行する装置に出力することにより、前記実行要求対象の処理の実行により並列実行されることになる1つ以上の処理で用いられるデータの少なくとも一部を、前記複数のノードのうち1つ以上のノードのメモリによって構成されるオンメモリ型データストアに配置する処理準備ステップと、
前記実行要求対象の処理を、割り当てられた1つ以上のノードに実行させる処理実行ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。