(57)【要約】  本発明のデータセット多重度変更装置は、ジョブの開始後に、多重度管理対象であるデータセットへのアクセス効率ができるだけ高くなるように、そのデータセットの数（多重度）を変更できる。そのデータセット多重度変更装置は、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出部と、前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更する多重度変更処理を行う多重度管理部とを有する。
2014119269.tif 000002
【特許請求の範囲】
【請求項１】
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出手段と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える
データセット多重度変更装置。
【請求項２】
前記優先度算出手段は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
請求項１記載のデータセット多重度変更装置。
【請求項３】
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
請求項１または２記載のデータセット多重度変更装置。
【請求項４】
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出手段は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理を実施する際に、前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
請求項１乃至３の何れかに記載のデータセット多重度変更装置。
【請求項５】
前記優先度算出手段は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理において、前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記多重度変更処理を実施し、前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記多重度変更処理を実施する
請求項１乃至４の何れかに記載のデータセット多重度変更装置。
【請求項６】
前記優先度算出手段は、
前記第１の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
請求項５記載のデータセット多重度変更装置。
【請求項７】
請求項１乃至６の何れかに記載のデータセット多重度変更装置を備え、
前記複数ノードによる前記ジョブの並列処理を制御する
サーバ。
【請求項８】
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、情報処理装置を用いて算出し、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する
データセット多重度変更方法。
【請求項９】
前記優先度情報を算出する際に、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
請求項８記載のデータセット多重度変更方法。
【請求項１０】
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
請求項８または９記載のデータセット多重度変更方法。
【請求項１１】
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度情報の算出の際に、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
請求項８乃至１０の何れかに記載のデータセット多重度変更方法。
【請求項１２】
前記優先度情報の算出の際に、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記多重度変更処理を実施し、
前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記多重度変更処理を実施する
請求項８乃至１１の何れかに記載のデータセット多重度変更方法。
【請求項１３】
前記第１の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
請求項１２記載のデータセット多重度変更方法。
【請求項１４】
データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体であって、  複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出処理と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実行させるコンピュータ・プログラムを記録した記録媒体。
【請求項１５】
前記優先度算出処理は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
請求項１４記載のコンピュータ・プログラムを記録した記録媒体。
【請求項１６】
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
請求項１４または１５記載のコンピュータ・プログラムを記録した記録媒体。
【請求項１７】
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出処理は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度変更処理は、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
請求項１４乃至１６の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
【請求項１８】
前記優先度算出処理は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度変更処理は、
前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記データセットの多重度を変更する
請求項１４乃至１７の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
【請求項１９】
前記優先度算出処理は、
前記第１の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
請求項１８記載のコンピュータ・プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、情報処理装置（コンピュータ）を用いた分散並列処理システムにおけるデータ管理技術に関する。特に、本発明は、データセットの多重管理における多重度の変更技術に関する。
【背景技術】
【０００２】
バッチ処理は、予め定められたタイミングで開始し、与えられた入力データに対して、サーバ等の情報処理装置を用いて繰り返し同じ処理を行うことにより、処理結果を得る技術である。近年、バッチ処理における処理対象データ量の増大や処理時間短縮のニーズが高まっている。また、バッチ処理を高速化する技術として、複数のサーバ（ノード）を用いて実現する分散並列処理を利用する技術が普及している。以下に、係る分散並列バッチ処理システムの一例について、図２と図４とを参照して説明する。【０００３】
図２は、関連技術としての分散並列バッチ処理システムを含む通信環境の一例を示す構成図である。図４は、関連技術としての分散並列バッチ処理システムにおける分散データストア内のデータ配置の一例を示す図である。なお、図２及び図４は本発明の第２の実施形態の説明において使用する図面であるが、ここではその図面を利用して関連技術の一般的な分散並列バッチ処理システムの構成及び動作について説明する。【０００４】
図２に示すように、分散並列バッチ処理システム１は、３つのノード２０〜２２と、分散並列バッチ処理サーバ１０と、マスタデータサーバ１００と、クライアント５００と、これらを接続する通信ネットワーク（以後、単に「ネットワーク」と略称する。）１０００とから構成されている。【０００５】
３つのノード２０〜２２は、分散並列バッチ処理サーバ１０によって分割されたバッチ処理を、それぞれのノードにおいて並列的（「並行的」と表現することもできる。以下の説明においても同様）に実行することができる。また、ノード２０〜２２は、図４に示すように、それぞれメモリ４０〜４２とディスク５０〜５２とを備える。【０００６】
分散並列バッチ処理サーバ１０は、３つのノード２０〜２２を制御することにより、係るバッチ処理を実行する。【０００７】
クライアント５００は、分散並列バッチ処理サーバ１０に対し、バッチ処理の実行を要求する。【０００８】
マスタデータサーバ１００は、バッチ処理における処理対象である複数件の入力データを含む入力データセットと、処理中に参照するデータ類を含む参照データセットとを含むマスタデータセット１２０を、分散並列バッチ処理サーバ１０に提供する。マスタデータセット１２０は、あらかじめデータベース１１０内に格納される。【０００９】
分散並列バッチ処理サーバ１０、ノード２０〜２２、マスタデータサーバ１００およびクライアント５００は、プログラム制御により動作する一般的なコンピュータである。【００１０】
ここで、本分散並列バッチ処理システムにおける前提（または、前提要件とも言う）を説明する。【００１１】
まず、バッチ処理とは、最小の処理単位である「ジョブ」を連続して実行することとする。ただし、説明を簡単にするため、以下では、バッチ処理は、１つのジョブで構成されることを前提とする。【００１２】
次に、ノード２０〜２２が以前実行したジョブに使用した入力データセットや参照データセットなどのファイルは、削除が必要になるまでは、ジョブ処理終了後もノード２０〜２２のディスク５０〜５２、およびメモリ４０〜４２にそのまま保持する。これらのデータセット類は、次のジョブの実行において、必要ならば再利用可能である。これは、分散並列バッチ処理システムでは、同じようなデータセットを利用する複数のジョブを連続的に実行することがあるからである。係る複数のジョブの例には、商品の受注処理、その注文に対する請求書発行処理、注文された商品の出庫処理などが考えられる。【００１３】
前提の最後として、ジョブの処理内容を記述したコンピュータ・プログラムであるアプリケーションプログラムを記述するファイルは、分散並列バッチ処理サーバ１０のディスク（図示せず）にあらかじめ格納される。【００１４】
次に、関連技術の分散並列バッチ処理システムの動作について説明する。【００１５】
図２において、初めに、クライアント５００が、分散並列バッチ処理サーバ１０に、ジョブの実行を要求する。ジョブの実行要求において、クライアント５００は、ジョブの処理プログラムであるアプリケーションプログラム名と、ジョブの実行に必要な各種定義情報とを指定する。各種定義情報には、ジョブの処理対象であるデータを示す入力データセット名と、処理中に参照するデータ類を示す参照データセット名が含まれる。入力データセットは、例えば、ある店舗の取引（注文など）データの集合体である。参照データセットは、例えば、各商品についての情報を含むデータまたは各商品の曜日別の割引率を定義するデータなどの集合体である。【００１６】
次に、ジョブの実行要求を受けた分散並列バッチ処理サーバ１０は、ジョブの実行要求において指定された入力データセットを、ノード２０〜２２の数に合わせて、３つの入力データセットＡ〜Ｃに分割する。そして、分散並列バッチ処理サーバ１０は、３つのノード２０〜２２に対して、分割した入力データセットＡ〜Ｃを１つずつ、各ノードの処理対象として割り当てる。一般に、入力データセットの分割において、分散並列バッチ処理サーバ１０は、分割した各入力データセットＡ〜Ｃの処理時間がなるべく均等になるように分割を行う。また、分散並列バッチ処理サーバ１０は、ノード２０〜２２のディスク５０〜５２及びメモリ４０〜４２（図４）に対し、読み込まれているデータセットの配置に基づいて、分割した入力データセットＡ〜Ｃを割り当てる。この場合、分散並列バッチ処理サーバ１０は、入力データセットＡ〜Ｃの処理のために必要なデータセットが保持されているノードをできるだけ選んで、分割した入力データセットＡ〜Ｃを割り当てる。【００１７】
次に、分散並列バッチ処理サーバ１０は、ジョブの実行要求において指定されたアプリケーションプログラム名に対応するファイルを自サーバのディスクから取得した後、当該ファイルに含まれるプログラムを３つのノード２０〜２２において開始する。以降、ノード２０〜２２においてジョブの処理が記述されたプログラムを実行している処理実体を「タスク」と言う。すなわち、ノード２０〜２２におけるそれぞれのタスク３０〜３２（図４）が行う処理は、扱う入力データセットの内容が異なるだけで、処理（プログラム）は同じである。【００１８】
次に、ジョブ処理に必要なデータセットが、ノード２０〜２２のディスク５０〜５２またはメモリ４０〜４２に存在しない場合、各ノードは、次の処理を行う。すなわち、各ノードは、不足しているデータセットを、マスタデータサーバ１００を介して、マスタデータセット１２０から自ノード２０〜２２のディスク５０〜５２またはメモリ４０〜４２にコピーする。必要なデータセットのコピーが終了した後、ノード２０〜２２において、それぞれのタスク３０〜３２が処理を開始する。【００１９】
このようにして、分散並列バッチ処理サーバ１０は、入力データセットを３つに分割した後、分割した各入力データセットＡ〜Ｃを３つのノード２０〜２２の各タスクで並列的に処理することにより、ジョブ全体としての処理時間を短縮可能としている。【００２０】
一般に、分散並列バッチ処理システム１においては、さらに、各ノード２０〜２２の記憶装置を統合した「分散データストア」と呼ばれる管理を行うことによって、各ノード２０〜２２のタスク３０〜３２からの各種データセットへのアクセス効率の向上を図っている。ここで言う「データストア」とは、分散並列バッチ処理サーバ１０からの要求、および各ノード２０〜２２におけるそれぞれのタスク３０〜３２からの要求に応じて、データファイルの生成、読み込み、更新、および削除などの操作が実行できるデータの保持先（メモリやディスク）の総称である。【００２１】
分散データストア２は、図４に示すように、ノード２０〜２２のそれぞれに、メモリ４０〜４２と、ディスク５０〜５２と、入出力管理部６０〜６２と、図示しない分散データストア２全体を管理する管理部とを備える。一般に、分散データストア２全体を管理する管理部は、分散並列バッチ処理サーバ１０が備える。【００２２】
分散データストア２のうち比較的高速なメモリ４０〜４２から構成される部分は、オンメモリ型データストア３と呼ばれる。一方、分散データストア２のうち比較的低速なディスク５０〜５２から構成される部分は、ディスク型データストア４と呼ばれる。なお、説明を簡易にするため、本例における分散データストア２は、ノード２０〜２２がローカルに持つ記憶装置だけを有するが、ネットワーク１０００を介して利用可能なリモートのコンピュータにおいて実行されるファイルシステムやデータベースを含むこともある。【００２３】
ノード２０〜２２において動作しているタスク３０〜３２は、分散データストア２に記憶されているデータに対して、自ノードにある入出力管理部６０〜６２を介してアクセスする。入出力管理部６０〜６２は、データの格納先がどのノードのいずれの記憶装置（ディスクやメモリ）であるかに関わらず、タスク３０〜３２から分散データストア２のデータへのアクセスを透過的に利用可能とする機能を提供している。【００２４】
例えば、ノード２０にあるタスク３０が、ノード２０のメモリ４０にもディスク５０にもないデータセットＸ２の読み出しを要求したとする。その要求に基づき、ノード２０の入出力管理部６０は、ノード２１の入出力管理部６１またはノード２２の入出力管理部６２を介して、ノード２１のメモリ４１またはノード２２のメモリ４２に記憶されているデータセットＸ２を取得した後に、タスク３０へデータセットＸ２のデータを提供する。すなわち、タスク３０は、データセットＸ２が自ノード２０に記憶されている場合と同じアクセス方法で、ノード２１またはノード２２上にあるデータセットＸ２にアクセスできる。さらに、この機能により、ノード２０〜２２が、処理に使用する全てのデータセットを、個別に持つ必要はなくなる。【００２５】
なお、一般的に、タスク３０からデータセットへアクセスする速度は、自ノード２０のディスク５０に当該データセットがある場合より、他のノード２１〜２２の各メモリ４１〜４２に当該データセットがある場合の方が、かなり速い。システム構成に依存するが、一般に、分散データストア２における保存場所別のデータセットへのアクセス速度は、不等号を使用すると次の関係となる。【００２６】
（自ノードのメモリ）＞（他ノードのオンメモリ型データストア）≫（自ノードのディスク）＞（他ノードのディスク型データストア）
すなわち、自ノードのメモリへのアクセス速度が最も高速で、他ノードのディスク型データストアへのアクセス速度が最も低速である。【００２７】
複数のジョブの連続実行の際に、処理に必要なデータセット類へのアクセス効率を向上するためには、このような分散データストア２の性質から、タスクからのディスクアクセスをできるだけ減らすことが効果的である。すなわち、アクセス効率を向上するには、処理に必要なデータセットのうち、できるだけ多数のデータセットを、オンメモリ型データストア３に記憶することが望ましい。【００２８】
しかし、近年では、処理中に扱うデータ量が増大している。このため、半導体メモリ装置などで実現されるメモリ４０〜４２からなるオンメモリ型データストア３が、処理対象であるすべてのデータセットを格納しきれるとは限らない。一方、ハードディスク装置などで実現される各ノードのディスク５０〜５２は、一般に、オンメモリ型データストア３の１０〜１００００倍以上の記憶容量を備えているため、処理対象である全データを格納可能であることが多い。このため、一般に、オンメモリ型データストア３は、複数のジョブに共通して使用する可能性が高い、一部のデータセットを常時記憶する。そして、次のジョブへ切り替わる際に、分散並列バッチ処理サーバ１０が、そのときのオンメモリ型データストア３におけるデータセットの配置状況に合わせて、処理を各ノード２０〜２２に割り当てる。【００２９】
さらに、オンメモリ型データストア３では、常時記憶しておくデータセットの複製を、複数のノード２０〜２２のメモリ４０〜４２に保持することが、行われている。ここで、複数のノード２０〜２２に同一内容のデータセットを記憶しておくことの主な目的は、２点ある。【００３０】
目的の１点目は、ファイルの破損やノードがダウンするなどの問題が発生した際に特定のノードのメモリに記憶されているデータセットへアクセスできなくなるという事態に備えて、データの保全に対する信頼性を増すためである。すなわち、上記のような問題が発生した場合、タスクが、ディスクに記憶された（代替の）データセットにアクセスするのではなく、他のノードのメモリに存在する、もう一つのデータセットにアクセス可能とするためである。これにより、問題の発生時においても、タスクは、オンメモリ型データストア３へのアクセスと比較して非常に低速なディスクへのアクセスを行わずに済む。したがって、タスクが処理対象データセットへアクセスする際に、アクセス性能が、極端に低下することを防止できる。【００３１】
目的の２点目は、複数のタスクが同じデータを必要とするとき、各タスクが、複数のノードのメモリに分散配置した複数のデータセットにアクセスすることで、アクセス集中による性能の低下を防ぐためである。言い換えると、各タスクが、１つのデータセットにアクセスすることを防ぎ、アクセス集中を防止することである。【００３２】
以下では、上記のような、同一内容のデータセットの複製を、オンメモリ型分散データストア３に含まれる複数のノード２０〜２２のメモリ４０〜４２に分散して保持するような管理方法を「多重度管理」と呼ぶ。また、以下では、多重度管理の対象となるデータセットを「多重度管理対象データセット」と呼ぶ。さらに、以下では、オンメモリ型分散データストア３に持つデータセットの複製の数を「多重度Ｍ」という指標で表す。例えば、オンメモリ型分散データストア３に同一のデータセットの複製が２つ存在する場合、多重度Ｍは、２である。【００３３】
図４は、上述した分散並列バッチ処理サーバ１０がノード２０〜２２上のタスク３０〜３２を用いた並列処理を開始した時点の、分散データストア２におけるデータセットの配置状態の一例を示す。図４において、２つのデータセットＸ１およびＸ２が、多重度管理対象データセットである。多重度Ｍは、２である。なお、本例では、多重度管理の簡易化のため、同じ多重度Ｍの値が、すべての多重度管理対象データセットに対して適用されている。【００３４】
図４を参照すると、データセットＸ１は、ノード２０のメモリ４０とノード２１のメモリ４１に、合わせて２つが常時記憶されている。また、データセットＸ２は、ノード２１のメモリ４１とノード２２のメモリ４２に、合わせて２つが常時記憶されている。【００３５】
多重度管理対象ではない（以下、「非管理対象」と言う）データセットであるデータセットＹ１〜Ｙ４が、ノード２０〜２２のディスク５０〜５２に、それぞれ記憶されている。また、３つに分割した入力データセットＡ〜Ｃは、分散並列バッチ処理サーバ１０が定めた割り当てに従って配置されている。すなわち、ディスク５０、ディスク５１、およびディスク５２には、それぞれ入力データセットＡ、入力データセットＢ、および入力データセットＣが、記憶されている。なお、本例では、入力データセットＡ〜Ｃは、非管理対象である。【００３６】
各ノード２０〜２２で動作しているオペレーティングシステム（ＯＳ）が、非管理対象のデータセットに関するメモリへの読み込みを制御する。すなわち、ＯＳは、タスク３０〜３２からのアクセス要求に応じて、オンメモリ型データストア３内における空いている記憶領域（すなわち、多重度管理対象データセットを格納するために占有されていない記憶領域）に、非管理対象のデータセットを適宜読み込む。【００３７】
なお、ＯＳによるメモリの制御方法としては、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムが良く知られている。基本的に、ＬＲＵは、小容量で高速な記憶装置に新たなデータを読み込むときに空き容量が不足した場合に、空き容量を確保する。この場合、ＬＲＵは、高速な記憶装置にある中で未使用の時間が最も長いデータを、大容量で低速な記憶装置へ退避（移動）することによって、空き容量を確保する。なお、本例では、「小容量で高速な記憶装置」と「大容量で低速な記憶装置」とは、それぞれ「オンメモリ型データストア３」と「ディスク型データストア４」とに相当する。したがって、タスクの処理に要する非管理対象のデータセットが多い場合には、ＬＲＵが行うディスクへのデータ退避が多発することの結果として、タスクの処理性能が、低下することがある。【００３８】
分散並列バッチ処理サーバ１０は、新たなジョブを実施するにあたって、上記のような問題が発生する恐れがある場合、多重度Ｍを下げる（低減する、削減する）ことによって、オンメモリ型データストア３の空き領域を増やすための調整を行うことがある。その逆に、分散並列バッチ処理サーバ１０は、オンメモリ型データストア３の空き領域に十分な余裕があると予想した場合、現行より多重度Ｍを上げる（増加する）ことによって、データ保全に関する信頼性を上げるための調整を行うことがある。【００３９】
通常、分散並列バッチ処理サーバ１０は、各ノード上のタスクの処理を実行する前の準備段階においては、上述したような多重度Ｍの変更を行うが、一旦タスクの処理を開始した後には、多重度Ｍの変更は行わない。【００４０】
また、本出願に先立って存在する関連技術としては、例えば、以下の特許文献１がある。【００４１】
すなわち、特許文献１は、長所と短所がそれぞれ異なる、いくつかのファイル複製方法のうちから、複製対象のファイルごとに該ファイルの各種特性（ファイルの格納場所、ファイルタイプ等）に適した複製方法を自動的に決定するメカニズムを開示する。【００４２】
また、特許文献２は、分散システム環境において、バッチジョブ依頼サーバが、依頼対象であるバッチジョブの資源使用特性（各種資源の使用率）と、各ジョブ実行サーバから定期的に取得する資源負荷状況とから、当該バッチジョブの処理を依頼するサーバを決定する。【００４３】
また、特許文献３は、ジョブの実行とデータの配置を管理する計算機が、ジョブを実行する際に、ジョブを実行する各計算機に配置された分散データのレコード数の比率に応じて、各計算機への複製の配置を決定する。そして、いずれかの計算機におけるジョブの実行に障害が発生した場合には、管理を実行する計算機が、障害が発生した計算機に配置された分散データの複製を持つ計算機に、ジョブの再実行を要求する。
【先行技術文献】
【特許文献】
【００４４】
【特許文献１】特表２００９−５２６３１２号公報
【特許文献２】特開平１０−３３４０５７号公報
【特許文献３】特開２０１２−０７３９７５号公報
【発明の開示】
【発明が解決しようとする課題】
【００４５】
しかしながら、分散並列バッチ処理システムの運用にあたっては、多重度管理対象データセットの多重度Ｍを変更したいという要求が、ジョブの実行途中において、発生することがある。【００４６】
例えば、ジョブを開始後、その処理がはかどらないことにより、ジョブが、利用者の期待する終了予定時刻に終わらない見込みとなることがある。上述したとおり、一般に、分散並列バッチ処理システムにおけるバッチ処理（ジョブ）は、予め定められたタイミングで処理を開始するように運用される。すなわち、ジョブは、次の処理を計画通りに開始できるように、予定時刻までに終了することも期待される。ジョブが遅延した際、その原因は、タスクの処理に要する非管理対象のデータセットの数やサイズが事前の予想より多いことが原因である可能性もある。その場合、遅延判明後に行う対策としては、オンメモリデータストア３の空き領域を増やすことが有効である。すなわち、分散並列バッチ処理システムは、ジョブの途中で多重度管理対象データセットの多重度Ｍを下げる。これによって、それ以降のジョブの処理速度を上げることができれば、ジョブが、当初の予想より早く終了できる可能性がある。【００４７】
一方、ジョブを開始後、ジョブの処理が、予定よりかなり早く終わる見込みとなることもある。その場合、ジョブが早く終わることが判明した後に、多重度管理対象データセットの多重度Ｍを上げることによって、データ保全に関する信頼性を向上させれば、その後のジョブの実行が、さらに確実になる。【００４８】
他に、ジョブ自身の進捗状況には関係なく、利用者が、ジョブを実行しているノードにおいて他の処理を行えるように急遽メモリの使用量を削減したいという場合もある。【００４９】
このように、様々な要因によって、多重度Ｍを変更したいという要求が、ジョブの開始後に発生することがある。【００５０】
しかし、利用者が、途中で多重度を変更する場合に、多重度管理対象データセットへのアクセス効率ができるだけ低下しないデータ配置を適切に選択することは困難である。【００５１】
例えば、図４において、多重度Ｍを２から１に削減する方法は、以下の４通りある。具体的に言うと、第１の方法は、ノード２０のデータセットＸ１とノード２１のデータセットＸ２とを残す方法である。第２の方法は、ノード２０のデータセット１とノード２２のデータセットＸ２とを残す方法である。第３の方法は、ノード２１のデータセットＸ１とノード２３のデータセットＸ２とを残す方法である。第４の方法は、ノード２１のデータセットＸ１とＸ２とを残す方法である。【００５２】
ここで、例えば、データセットＸ１に最も多数回アクセスを行うタスクが動作するノードにおいて、利用者が当該ノードのメモリにあったデータセットＸ１を削除したと仮定する。この結果、当該タスクは、次にデータセットＸ１を参照する際、それまでは自ノードのメモリにアクセスしていたにもかかわらず、多重度Ｍの変更後に、他ノードのメモリにアクセスしなければならなくなる。すなわち、多重度Ｍを変更したために当該タスクの処理性能が大きく低下し、結果として、ジョブ全体が、終了予定時刻までに終了しなくなる恐れがある。このように、現状では、利用者は、上述した４通りの多重度削減方法のいずれが、多重度管理対象データセットへのアクセス効率の低下をできるだけ避け得る方法であるのか、を判断することができないという問題がある。【００５３】
上述した特許文献１乃至３には、以上の問題を解決するための構成及び方法については、開示されていない。【００５４】
本発明は、上述した問題点を解決できるデータセット多重度変更装置及び方法を提供することにある。すなわち、本発明の主たる目的は、ジョブの処理途中において多重度Ｍを変更する際、アクセス効率の低下をできるだけ避けるように、多重度管理対象データセットの配置を変更することができるデータセット多重度変更装置及び方法を提供することにある。
【課題を解決するための手段】
【００５５】
上記の目的を達成すべく、本発明の一形態であるデータセット多重度変更装置は、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出手段と、前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える。【００５６】
また、同目的を達成する本発明の一形態であるサーバは、上述した構成を備えるデータセット多重度変更装置を備え、前記複数ノードによる前記ジョブの並列処理を制御する。【００５７】
また、上記の同目的を達成する本発明の一形態であるデータセット多重度変更方法は、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、情報処理装置を用いて算出し、前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する。【００５８】
さらに、同目的は、データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体であって、
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出処理と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実行させるコンピュータ・プログラムを記録した記録媒体によっても達成される。
【発明の効果】
【００５９】
本発明によれば、ジョブの開始後に、多重度管理対象データセットへのアクセス効率ができるだけ高くなるように、そのデータセットの数（多重度Ｍ）を変更することが可能になる。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態におけるデータセット多重度変更装置を含む分散並列バッチ処理システムの構成を示すブロック図である。
【図２】本発明の第２の実施形態に適用される通信環境を示し、また関連技術としての分散並列バッチ処理システムにおける通信環境の一例を説明するための構成図である。
【図３】図２に示した構成を有する通信環境において、第２の実施形態に係る分散並列バッチ処理システムを実現する場合の構成を示すブロック図である。
【図４】本発明の第２の実施形態を説明するためのノードにおけるデータ配置の一例を示し、また関連技術としての分散並列バッチ処理システムにおける分散データストア内のデータ配置の一例を説明するための図である。
【図５】本発明の第２の実施形態におけるジョブ定義情報１６の一例を示す図である。
【図６】本発明の第２の実施形態における入力データセットの一例を示す図である。
【図７】本発明の第２の実施形態における多重度管理対象である参照データセットＸ１の一例を示す図である。
【図８】本発明の第２の実施形態における多重度管理を行わない参照データセットＹ１の一例を示す図である。
【図９】本発明の第２の実施形態における分散並列バッチ処理システムのジョブ配備処理からジョブ実行処理までの動作を示すフローチャートである。
【図１０】本発明の第２の実施形態におけるアプリケーション解析処理の詳細を示すフローチャートである。
【図１１】本発明の第２の実施形態における分散並列バッチ処理システムの多重度変更の動作を示すフローチャートである。
【図１２】本発明の第２の実施形態におけるアプリケーション解析により取得したデータセット別のアクセス回数を示す情報の一例を示す図である。
【図１３】本発明の第２の実施形態における優先度情報１８の一例を示す図である。
【図１４】本発明の第２の実施形態における多重度変更後の分散データストアのデータ配置の一例を示す図である。
【図１５】本発明の各実施形態、および、その変形例に係る分散並列バッチ処理システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。
【発明を実施するための形態】
【００６１】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００６２】
＜第１の実施形態＞
図１は、本発明の第１の実施形態におけるデータセット多重度変更装置を含む分散並列処理システムの構成を示すブロック図である。図１を参照すると、分散並列処理システムは、データセット多重度変更装置３００、および複数のノード３２０から構成される。
【００６３】
複数のノード３２０は、ジョブを分割した各処理を、タスクとして並列的に実行可能である。各ノード３２０は、タスクが処理中に参照するデータ類を含むデータセット３２２の一部または全部を、ジョブの開始前にメモリ（記憶領域）３２１に格納することができる。分散並列処理システムは、多重度Ｍという指標で定めた数のデータセット３２２の複製を、システムに含まれる複数のノード３２０のメモリ３２１に分散して格納する（多重度管理する）ことができる。すなわち、データセット３２２は、多重度管理対象のデータセットである。なお、以下の実施形態において、「データセットの数」とは、データセットの“数量（ｑｕａｎｔｉｔｙ）”と捉えることもできると共に、多重度Ｍという指標（パラメータ）と捉える観点からは“数値（ｎｕｍｅｒｉｃａｌ  ｖａｌｕｅ）”と捉えることもできる。
【００６４】
なお、ジョブの分割方法、並びに、分割されたジョブを各ノードが並列的に実行する技術については、前述の関連技術で説明したとおり、現在では一般的な技術を採用することができる。したがって、この点に関する本実施形態における重複する説明は、省略する。
【００６５】
データセット多重度変更装置３００は、優先度算出部３０１、および多重度管理部３０２を有する。
【００６６】
優先度算出部３０１は、データセット利用関連情報３３０を取得する。そして、優先度算出部３０１は、取得したデータセット利用関連情報３３０を用いて、各データセット３２２を適切な順番でノード３２０のメモリ３２１に格納するために必要な情報であって、データを格納するべきノードの指示順番を表す優先度情報３１１を算出する。
【００６７】
ここで、データセット利用関連情報３３０とは、多重度管理対象であるデータセット３２２に関連する情報の総称である。データセット利用関連情報３３０には、例えば、データセット３２２を対象とした参照、コピー作成、および転送等の操作に要する時間または性能に関連する情報が含まれる。また、データセット利用関連情報３３０は、ジョブの実行前にシステム外から与えられる設定に関する情報、またはジョブ処理内容に関連する解析を行うことで取得できる処理実行回数の情報を含んでもよい。また、データセット利用関連情報３３０は、ジョブ実行中に取得できるデータ転送速度の測定値の情報を含んでもよい。
【００６８】
データセット利用関連情報３３０の具体例としては、各ノード３２０で動作するタスクからデータセット３２２への予想アクセス回数、１つのノード３２０から他のノード３２０へデータセット３２２のデータを転送するときのデータ転送速度、あるいは、データセット３２２のファイルサイズなどが考えられる。データセット利用関連情報３３０は、ジョブの性質や動作環境に合わせた情報であって、ノード３２０で動作するタスクからデータセット３２２を参照する際のアクセス効率に与える影響の程度（度合い）を示す情報によって構成されてもよい。
【００６９】
優先度算出部３０１は、データセット３２２ごとに、以下の式（１）に示されるような関数ｆを用いて各ノード３２０における優先度情報３１１を算出する。
【００７０】
ｆ（ｘ１，ｘ２，・・・，ｘｎ）＝ａ１ｘ１＋ａ２ｘ２＋・・・＋ａｎｘｎ  −−−（１）
式（１）で、データセット利用関連情報３３０の種類の数は「ｎ」とし、ｘ１，ｘ２，・・・，ｘｎは、データセット利用関連情報３３０の種類ごとの値を表す。ａ１，ａ２，・・・，ａｎは、データセット利用関連情報３３０の種類ごとの係数を表す。すなわち、優先度情報３１１を決定するための関数ｆは、データセット利用関連情報３３０の種類ごとの値とその種類ごとの係数との積の総和である。これにより、優先度算出部３０１は、１種以上のデータセット利用関連情報３３０を用いて優先度情報３１１を算出することができる。なお、優先度３１１を算出する算出式には、様々な形態があり、上述した例には限定されない。また、優先度算出部３０１は、算出式の結果の数値をそのまま優先度情報３１１として用いても良い。または、優先度算出部３０１は、数値の大きさの順番を示す値（数値が大きい順に、１、２、３・・・とするなど）に置き換えて、優先度情報３１１としてもよい。優先度情報３１１の数値が大きいほど（または小さいほど）、対応するノード３２０の優先度がより高い（より低い）ことを示す。
【００７１】
多重度管理部３０２は、各ノード３２０のメモリ３２１にどのデータセット３２２を格納しているかを示す情報を含むデータセット配置情報３１２を参照することができる。
【００７２】
また、多重度管理部３０２は、ジョブの開始後、利用者等からデータセット３２２の複製の数（多重度Ｍ）を変更する要求を受けた場合、優先度情報３１１とデータセット配置情報３１２とを用いて、多重度変更の操作対象とするノード３２０を決定する。なお、多重度管理部３０２は、多重度管理対象として複数のデータセット３２２がある場合、各データセット３２２について個別に以下の処理を行う。
【００７３】
具体的に説明すると、多重度Ｍの削減（低減）が要求された場合、多重度管理部３０２は、まず、データセット配置情報３１２を用いて、データセット３２２の複製が存在するノード３２０を把握する。次に、多重度管理部３０２は、データセットの複製が存在するノード３２０のうち、優先度情報３１１において最も優先度が低いノード３２０を、データセット３２２の複製を削除する対象として決定する。
【００７４】
一方、多重度の増加が要求された場合、多重度管理部３０２は、まず、データセット配置情報３１２を用いて、データセット３２２の複製を保持していないノード３２０を把握する。次に、多重度管理部３０２は、データセットの複製を保持していないノード３２０のうち、優先度情報３１１において最も優先度が高いノード３２０を、データセット３２２の複製を追加する対象として決定する。
【００７５】
最終的に、多重度管理部３０２は、多重度変更の対象として決定したノード３２０におけるメモリ３２１に対して、多重度変更の操作を行う。すなわち、多重度管理部３０２は、メモリ３２１に対して、データセット３２２の複製の削減または追加を実行する。
【００７６】
このようにして、本実施形態によれば、データセット多重度変更装置３００は、ジョブの開始後に、多重度管理対象であるデータセット３２２へのアクセス効率ができるだけ高くなるように多重度を変更できる。その理由は、多重度管理部３０２が、優先度算出部３０１によってデータセット利用関連情報３３０を基に算出された、ノード３２０ごとの優先度情報３１１に基づいて、多重度変更の操作対象とするノード３２０を決定できるからである。
【００７７】
また、本実施形態によれば、データセット多重度変更装置３００は、ジョブの開始後においても、利用者等から多重度の変更を要求された場合、速やかに多重度変更を実施することができるという効果もある。その理由は、優先度算出部３０１によって優先度情報３１１を予め算出するので、多重度管理部３０２が、変更要求を受けた際、優先度情報３１１を用いて、速やかに多重度変更の操作対象とするノード３２０を決定できるからである。
【００７８】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする第２の実施形態について、図２〜図１４を参照して説明する。なお、本実施形態は、関連技術として説明した分散並列バッチ処理システム１を含む通信環境（図２、図４）を利用した例でもある。すなわち、本実施形態において、関連技術と共通する分散並列バッチ処理システムにおける前提要件、分散データストアの構造、タスクを用いたジョブの並列実行など、分散並列バッチ処理システムにおける一般的な構成部分については、関連技術と同様であると仮定する。
【００７９】
以下では、図２及び図４を利用しながら第２の実施形態に係る特徴的な部分を中心に説明し、関連技術として説明した分散並列バッチ処理システムにおける一般的な動作については、重複する詳細な説明を省略する。
【００８０】
図２は、本発明の第２の実施形態に係る分散並列バッチ処理システムにおける通信環境の一例を示す構成図である。図２を参照すると、本実施形態は、３つのノード２０〜２２および分散並列バッチ処理サーバ１０を含む分散並列バッチ処理システム１と、マスタデータサーバ１００と、クライアント５００と、ネットワーク１０００とから構成されている。ここで、ノード２０〜２２は、第１の実施形態における複数のノード３２０に対応する。
【００８１】
本実施形態における分散並列バッチ処理サーバ１０、ノード２０〜２２、マスタデータサーバ１００およびクライアント５００は、それぞれプログラム制御により動作する一般的なコンピュータ（情報処理装置）によって構成されても良いし、専用のハードウェア回路で構成されても良い。なお、分散並列バッチ処理サーバ１０をコンピュータで実現した場合のハードウェア構成例については、図１５を参照して後述する。
【００８２】
分散並列バッチ処理サーバ１０、ノード２０〜２２、マスタデータサーバ１００、およびクライアント５００は、インターネットや構内ＬＡＮ（ローカルエリアネットワーク）等のネットワーク（通信ネットワーク）１０００を介して通信可能である。
【００８３】
クライアント５００は、ジョブの実行準備を求めるジョブ配備要求と、ジョブの実行開始を求めるジョブ実行要求とを、分散並列バッチ処理サーバ１０に対して送信する。また、クライアント５００は、分散並列バッチ処理システム１内でジョブの処理開始後、必要に応じて、多重度管理対象データセットの多重度Ｍの増加または削減を求める多重度変更要求を分散並列バッチ処理サーバ１０に対して送信する。
【００８４】
第２の実施形態における分散並列バッチ処理サーバ１０、ノード２０〜２２、およびマスタデータサーバ１００の構成について、図３及び図４を参照して説明する。図３は、図２に示した構成を有する通信環境において、第２の実施形態に係る分散並列バッチ処理システムを実現する場合の特徴的な構成を示すブロック図である。図３及び図４を参照すると、３つのノード２０〜２２は、それぞれ、タスク３０〜３２と、メモリ（記憶領域）４０〜４２と、ディスク５０〜５２と、入出力管理部６０〜６２とを有する。
【００８５】
タスク３０〜３２は、ジョブ実行要求における実行対象であるジョブの処理が記述されたプログラムを並列的に実行する処理実体である。タスク３０〜３２の構造、および動作は、関連技術と同様であるため、詳細な説明を省略する。
【００８６】
メモリ４０〜４２は、後述するディスク５０〜５２より高速な半導体メモリ装置によって実現される。メモリ４０〜４２は、ジョブの実行に必要なデータセットを格納することができる。
【００８７】
ディスク５０〜５２は、メモリ４０〜４２より低速なディスク装置によって実現される。ディスク５０〜５２は、ジョブの実行に必要なデータセットを格納することができる。
【００８８】
入出力管理部６０〜６２は、各ノードのメモリ４０〜４２およびディスク５０〜５２に格納するデータの入出力を制御することができる。
【００８９】
メモリ４０〜４２、ディスク５０〜５２、および入出力管理部６０〜６２の構造と動作は、関連技術と同様である。すなわち、入出力管理部６０〜６２は、データの格納先がどのノードのいずれの記憶装置であるかに関わらず、タスク３０〜３２に対してデータの所在先を意識せずに利用可能なアクセス機能を実現することができる。また、関連技術において説明したように、ノード２０〜２２の記憶装置は、互いに統合管理されることにより、図４に示すような分散データストア２を構成することができる。したがって、本実施形態におけるオンメモリ型データストア３は、一例として、ノード２０〜２２のメモリ４０〜４２から構成される。また、本実施形態におけるディスク型データストア４は、一例として、ノード２０〜２２のディスク４０〜４２から構成される。
【００９０】
図３を参照すると、図２に示す通信環境を採用する本実施形態において、分散並列バッチ処理サーバ１０は、優先度算出部１１と、ジョブ制御部１２と、分散データストア管理部１３とディスク１４とを含む。
【００９１】
なお、分散並列バッチ処理サーバ１０は、第１の実施形態におけるデータセット多重度変更装置３００に対応する（基本とする）。また、優先度算出部１１は、第１の実施形態における優先度算出部３０１に対応する（基本とする）。さらに、分散データストア管理部１３は、第１の実施形態における多重度管理部３０２に対応する（基本とする）。
【００９２】
ディスク１４は、優先度算出部１１と、分散データストア管理部１３からアクセス可能である。ディスク１４は、アプリケーションプログラム１５と、ジョブ定義情報１６と、データセット配置情報１７と、優先度情報１８とを格納することができる。分散並列バッチ処理サーバ１０は、アプリケーションプログラム１５、ジョブ定義情報１６、およびデータセット配置情報１７を、クライアント５００がジョブ配備要求を送信するより前に、ディスク１４に格納する。優先度情報１８は、優先度算出部１１によって生成される。
【００９３】
アプリケーションプログラム１５は、ジョブの処理内容を記述したコンピュータ・プログラムである。
【００９４】
ジョブ定義情報１６は、ジョブ実行に必要な各種定義を記述した情報である。具体的に、ジョブ定義情報１６は、ジョブの処理内容であるアプリケーションプログラム１５の名称を指定する情報と、ジョブの処理対象である入力データセット名と、ジョブ処理中に参照する参照データセット名とを含む。
【００９５】
データセット配置情報１７は、各多重度管理対象データセットのオンメモリ型データストア３における配置を示す情報を含む。すなわち、データセット配置情報１７は、多重度管理対象データセットのそれぞれが格納されているノード２０〜２２を示す情報である。なお、データセット配置情報１７は、非管理対象であるデータセットの配置情報を含んでもよい。また、データセット配置情報１７は、ディスク５０〜５２におけるデータセットの配置情報を含んでも良い。
【００９６】
優先度情報１８は、各多重度管理対象データセットを、適切な順番でノード２０〜２２のメモリ４０〜４２に格納するために必要な情報であり、データを格納するべきノードの指定順番を表す情報である。
【００９７】
優先度算出部１１は、最初、ジョブ定義情報１６、アプリケーションプログラム１５、および、マスタデータサーバ１００（後述）から取得した入力データセットに関する情報を基に解析を行うことにより、データセット別の予測アクセス回数を表す情報（解析情報）を得る。本実施形態では、優先度算出部１１が算出する解析情報の一例として、データセット別の予測アクセス回数とするが、優先度算出部１１が算出する解析情報は、これに限定されない。データセット別の予測アクセス回数を表す情報（以下、「予測アクセス回数情報」と言う。）とは、タスク３０〜３２がジョブの処理を実行する際に、多重度管理対象データセットのそれぞれにアクセスする見込みの回数を示す情報である。
【００９８】
次に、優先度算出部１１は、取得したデータセット別の予測アクセス回数情報を用いて、優先度情報１８を算出する。算出された優先度情報１８は、ディスク１４に格納される。なお、データセット別の予測アクセス回数情報、優先度情報１８は、それぞれ第１の実施形態におけるデータセット利用関連情報３３０、優先度情報３１１に対応する。
【００９９】
ジョブ制御部１２は、クライアント５００からの各種要求を受け付け、受信した要求に応じて、分散並列バッチ処理サーバ１０およびノード２０〜２２の各部を制御する。
【０１００】
分散データストア管理部１３は、分散データストア２（図４）が保持するデータセットに関する情報を統合的に管理する。データセットに関する情報とは、例えば、各データセットの名称や、格納場所を示す配置情報などがある。
【０１０１】
また、分散データストア管理部１３は、クライアント５００からの多重度変更要求を受け付けたジョブ制御部１２からの指示に応じて、多重度管理対象データセットの多重度Ｍを変更する。すなわち、分散データストア管理部１３は、ディスク１４に格納された優先度情報１８およびデータセット配置情報１７に基づいて、多重度管理対象データセットごとに、データの追加または削除を行う対象とするノード２０〜２２（ノード２０〜２２のうちのいずれか１つ以上）を決定する。そして、分散データストア管理部１３は、決定したノード２０〜２２のメモリ４０〜４２に対し、各ノードの入出力管理部６０を介して、各多重度管理対象データセットの追加または削除を行う。また、分散データストア管理部１３は、多重度管理対象データセットの追加と削除に際して、データセット配置情報１７を更新する。
【０１０２】
図３を参照すると、マスタデータサーバ１００は、データベース１１０と、マスタデータ管理部１３０とから構成される。
【０１０３】
データベース１１０は、マスタデータセット１２０を格納することができる。
【０１０４】
マスタデータセット１２０は、ジョブの処理対象である複数件の入力データを含む入力データセットと、処理中に参照するデータ類を含む参照データセットとを含む。
【０１０５】
データベース１１０、およびマスタデータセット１２０の構造と内容とは、関連技術と同様であるので、重複する詳細な説明は、省略する。
【０１０６】
マスタデータ管理部１３０は、分散並列バッチ処理サーバ１０およびノード２０〜２２からの要求に応じて、マスタデータセット１２０に含まれるデータセットを提供することができる。また、マスタデータ管理部１３０は、分散並列バッチ処理サーバ１０およびノード２０〜２２からの要求に応じて、マスタデータセット１２０に記憶されているデータセットに関する情報を提供することができる。その情報とは、データセットに含まれるデータ件数やデータサイズなどである。
【０１０７】
次に、上述した構成を備える本実施形態に係る分散並列バッチ処理システムは、概略以下のように動作する。
【０１０８】
すなわち、本実施形態の分散並列バッチ処理サーバ１０におけるジョブ制御部１２は、ジョブの実行手順のうち、分散並列バッチ処理サーバ１０が実行する手順に相当する処理を実行する。一方、優先度算出部１１は、ジョブの実行を開始する前の段階において、優先度情報１８を算出し、ディスク１４に格納する。ジョブの処理中にクライアント５００から多重度変更が要求された場合、分散データストア管理部１３が、ジョブ制御部１２を介して当該要求を受ける。さらに、分散データストア管理部１３は、その要求に対する応答結果として、ディスク１４に格納された優先度情報１８と、当該要求受付の時点でのデータセット配置情報１７とを基に、多重度を変更する。
【０１０９】
次に、図９を参照して、分散並列バッチ処理サーバ１０において、優先度算出部１１およびジョブ制御部１２が行う、ジョブの配備（実行準備）からジョブの実行までの処理について詳細に説明する。図９は、本発明の第２の実施形態における分散並列バッチ処理システムのジョブ配備処理からジョブ実行処理までの動作を示すフローチャートである。
【０１１０】
なお、上述したように、本実施形態における前提事項は、関連技術の分散並列バッチ処理システムと同様である。すなわち、ノード２０〜２２において、前に実行したジョブ処理の際に使用した入力データセットや参照データセットなどのファイルは、分散データストア２にそのまま保持されている。それに伴い、本実施形態の動作開始時点におけるデータセット配置情報１７の内容は、その時の分散データストア２に保持されているデータセットの配置状況に合っていることを前提とする。
【０１１１】
初めに、クライアント５００は、分散並列バッチ処理サーバ１０に、ジョブの配備要求を送信する（ステップＳ１００）。ジョブの配備要求において、クライアント５００は、ジョブの実行に必要な各種定義情報を含むジョブ定義情報１６を指定する。図５は、本発明の第２の実施形態におけるジョブ定義情報１６の一例である。
【０１１２】
図５を参照すると、ジョブ定義情報１６におけるレコードは、定義情報の種別を示す「キー」欄と、定義情報の内容を示す「値」欄から構成される。ここで、「キー」欄が「ｊｏｂＮａｍｅ」（以下、キー「ｊｏｂＮａｍｅ」のように表記する）であるレコードにおける「値」欄では、ジョブの処理内容を記述したアプリケーションプログラム１５を示すアプリケーションプログラム名が指定される。本実施形態におけるアプリケーションプログラム名は「ｊｏｂ１」である。キー「ｊｏｂ１．ｉｎｐｕｔＤａｔａ」であるレコードにおける「値」欄では、ジョブの処理対象である入力データセットの名称が指定される。本実施形態における入力データセットの名称は、「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｉｎｐｕｔ＿ｔａｂｌｅ１」である。キー「ｊｏｂ１．ｒｅｆＤａｔａ」であるレコードにおける「値」欄では、ジョブ処理中に参照する参照データセットの名称が指定される。本実施形態における参照データセットの名称は、「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｒｅｆ＿ｔａｂｌｅ１−Ｘ１」などの６つの文字列によって、６つの参照データセットの名称が記述されている。
【０１１３】
なお、以降の説明において、例えば、データセット「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｒｅｆ＿ｔａｂｌｅ１−Ｘ１」は、末尾の２文字を用いて「データセットＸ１」と表記する。その他の参照データセットについても、同様の表記とする。すなわち、本実施形態における参照データセットは、データセットＸ１、Ｘ２、Ｙ１、Ｙ２、Ｙ３、およびＹ４の６つである。
【０１１４】
また、ジョブ定義情報１６には、上記以外の情報を含んでもよい。例えば、本実施形態では、キー「ｊｏｂ１．ｄａｔａｂａｓｅＡｃｃｅｓｓ」であるレコードが、ジョブの処理結果の出力先を指定している。
【０１１５】
また、本実施形態では、多重度管理対象データセットは、処理に使用するデータセット（入力データセットおよび参照データセット）のうち、データセットＸ１およびデータセットＸ２の２つであることとする。また、多重度Ｍは、２であることとする。すなわち、以下で説明する動作の開始時点において、データセットＸ１、およびＸ２は、ノード２０〜２２に搭載されたメモリ４０〜４２のいずれかに２つずつ分散して配置された状態である。具体的には、図４に示すように、データセットＸ１は、ノード２０およびノード２１に配置することとする。また、データセットＸ２は、ノード２１およびノード２２に配置することとする。
【０１１６】
ここで、図６乃至図８を参照して、本実施形態におけるジョブの処理に使用するデータセット、および処理内容の具体例を説明する。図６は、本発明の第２の実施形態における入力データセットの一例である。図７は、本発明の第２の実施形態における多重度管理対象である参照データセットＸ１の一例である。図８は、本発明の第２の実施形態における多重度管理を行わない参照データセットＹ１の一例である。
【０１１７】
本実施形態における入力データセットの内容は、ある店舗における取引（注文）を示す入力データである。図６を参照すると、入力データは、「取引番号」欄と、「商品番号」欄と、「個数」欄と、「日時」欄とを含む。「取引番号」欄は、当該店舗における各取引を一意に識別する番号を含む。「商品番号」欄は、注文された商品を示す番号を含む。「個数」欄は、注文された商品の数を含む。「日時」欄は、注文された日を含む。入力データセット「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｉｎｐｕｔ＿ｔａｂｌｅ１」に含まれる入力データは、３０００件あるとする。
【０１１８】
また、本実施形態における参照データセットの内容は、商品に関する情報である商品データ（データセットＸｎ、ｎ＝１〜２）と、商品価格における曜日別の割引率データ（データセットＹｎ、ｎ＝１〜４）との２種ある。図７を参照すると、データセットＸ１に含まれる商品データは、「商品番号」欄と、「商品名」欄と、「価格」欄とを含む。「商品番号」欄は、商品を一意に識別する番号を含む。「商品名」欄は、商品の名称を含む。「価格」欄は、商品の単価を含む。なお、データセットＸ２は、データセットＸ１と同じ構造であるが、データセットＸ１とは異なる商品番号帯の商品データを含む。例えば、データセットＸ１は、１〜９９９番までの商品データを含む。一方、データセットＸ２は、１０００番台の商品データを含む。
【０１１９】
図８を参照すると、データセットＹ１に含まれる割引率データは、「曜日」欄と、「割引率」欄とを含む。「曜日」欄は、商品の割引を適用する曜日を示す。「割引率」欄は、商品に適用する割引率の％単位の値を示す。なお、データセットＹ２〜Ｙ４は、データセットＹ１と同じ構造であるが、データセットＹ１とは異なる条件の取引に対して適用される割引率データを含む。例えば、データセットＹ１とＹ２とは、共に商品番号０１〜９９９の商品の取引に適用される。一方、データセットＹ２は、その取引のうちの合計価格が１０，０００円以上の取引にだけ適用される。データセットＹ３〜Ｙ４についても、同様に、割引率が適用される商品番号帯および合計価格の条件が異なるという違いがあることとする。
【０１２０】
以下では、図６に示す入力データセットにおける１件目の入力データ（取引番号「００００１」、商品番号「０１」、個数「３」、日時「５月１７日」）に対する処理を例として、本実施形態におけるジョブ名「ｊｏｂ１」（すなわち、アプリケーションプログラム「ｊｏｂ１」）の処理内容を説明する。ここで、「５月１７日」は、日曜日とする。
【０１２１】
アプリケーションプログラム「ｊｏｂ１」を実行するタスク（以降、タスク３０Ｊと呼ぶ）は、入力データセットから入力データを１件ずつ読み込み、読み込んだ各入力データの示す取引における売上高を出力する。より具体的には、タスク３０Ｊは、商品番号「０１」の商品データを含む参照データセットＸ１にアクセスすることにより、対応する価格「１００」円を取得する。次に、タスク３０Ｊは、取得した価格と、入力データにおける個数とに基づいて、合計価格（１００円×３個＝３００円）を求める。次に、タスク３０Ｊは、算出した合計価格「３００」円に対応する割引率データを含む参照データセットＹ１にアクセスすることにより、日時「５月１７日」（日曜日）に適用する割引率「３％」を取得する。最後に、タスク３０Ｊは、取得した割引率「３％」を合計価格「３００」円に適用した売上高「２９１」円を、処理結果として出力する。すなわち、アプリケーションプログラム「ｊｏｂ１」の処理では、入力データ１つについて、データセットＸｎのいずれか１つと、データセットＹｎのいずれか１つとに１回ずつアクセスが発生する。このようなタスクを実行するための分散並列バッチ処理におけるジョブの配備処理について、以降、さらに詳しく説明する。
【０１２２】
再び、図９を参照する動作の説明に戻る。
【０１２３】
分散並列バッチ処理サーバ１０においては、ジョブ制御部１２が、ジョブの配備要求を受け付ける（ステップＳ１０１）。そして、ジョブ制御部１２は、ジョブの配備要求において指定されたジョブ定義情報１６から、入力データセットの名称を得る。具体的には、ジョブ制御部１２は、ジョブ定義情報１６（図５）における、キー「ｊｏｂ１．ｉｎｐｕｔＤａｔａ」に対応する「値」欄に格納された文字列「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｉｎｐｕｔ＿ｔａｂｌｅ１」を、入力データセットの名称として取得する。
【０１２４】
次に、ジョブ制御部１２は、指定された入力データセットをノード２０〜２２の数に合わせて３つの入力データセットＡ〜Ｃに分割する（ステップＳ１０２）。入力データセットの分割方法は、ここでは、一例として、入力データセットに含まれる入力データの件数を基に分割する方法とする。より具体的には、ジョブ制御部１２は、まず、マスタデータサーバ１００におけるマスタデータ管理部１３０に対して、入力データセット「ｈｏｓｔ１／ｐｏｒｔ１／ｄｂ１／ｉｎｐｕｔ＿ｔａｂｌｅ１」に含まれる総データ件数を要求し、その応答として当該データ件数（３０００件）を取得する。そして、ジョブ制御部１２は、入力データ（３０００件）を３分割することにより、それぞれ１０００件ずつの入力データを含む入力データセットＡ〜Ｃとする。
【０１２５】
次に、ジョブ制御部１２は、３つのノード２０〜２２に対して、分割した入力データセットＡ〜Ｃを１つずつ、各ノードの処理対象として割り当てる（指定する）。そして、ジョブ制御部１２は、３つのノード２０〜２２に対して、タスクの起動を指示する（ステップＳ１０３）。ジョブ制御部１２は、関連技術で説明したジョブの実行手順と同様に、分散データストア３に既に配置されているデータセットをできるだけ生かすように、分割した入力データセットＡ〜Ｃを割り当てる。より具体的には、ジョブ制御部１２は、ジョブ定義情報１６から得られる参照データセットの名称や、データセット配置情報１７または分散データストア管理部１３から得られるデータセットの配置情報を基に、入力データセットＡ〜Ｃを割り当てるノードを決定する。ここでは、ジョブ制御部１２は、入力データセットＡをノード２０に、入力データセットＢをノード２１に、入力データセットＣをノード２２に、それぞれ割り当てたとする。
【０１２６】
タスクの起動を指示されたノード２０〜２２は、それぞれのノード上でタスク３０〜３２を起動する（ステップＳ１０６）。
【０１２７】
その後、タスク３０〜３２は、入出力管理部６０を介して、マスタデータサーバ１００から、不足するデータセットを読み込む（ステップＳ１０７）。すなわち、タスク３０〜３２は、分散データストア３内にまだ読み込まれていない参照データセットおよび入力データセットＡ〜Ｃを、マスタデータサーバ１００に接続されるデータベース１１０から取得する。タスク３０〜３２は、必要なデータセットの読み込みが終了した後、ジョブ開始の指示があるまで待機する。
【０１２８】
ステップＳ１０７が終了した時点における、分散データストア２内のデータセットの配置状態は、図４の通りである。すなわち、本実施形態におけるジョブ実行開始前の分散データストア２の状態は、関連技術におけるそれと同じである。
【０１２９】
一方、分散並列バッチ処理サーバ１０においては、ジョブ制御部１２がステップＳ１０３に記載した処理を実行した後、優先度算出部１１が、アプリケーション解析を行う（ステップＳ１０４）。
【０１３０】
本実施形態におけるアプリケーション解析処理は、第１の実施形態において、優先度算出部３０１がデータセット利用関連情報３３０を取得する処理に相当する。ここで、図１０を参照して、優先度算出部１１のアプリケーション解析処理（ステップＳ１０４）の詳細を説明する。図１０は、本発明の第２の実施形態におけるアプリケーション解析処理の詳細を示すフローチャートである。
【０１３１】
まず、優先度算出部１１は、ジョブ定義情報１６からアプリケーションプログラム名、入力データセットの名称、および参照データセットの名称を取得する。また、優先度算出部１１は、さらに、ジョブ制御部１２から各ノード２０〜２２に割り当てた入力データセットＡ〜Ｃに関する情報を取得する。そして、優先度算出部１１は、取得した情報を基に、アプリケーションプログラム名で指定されるアプリケーションプログラム１５（アプリケーションプログラム「ｊｏｂ１」）が、入力データセットに対してどのような処理を行うのかを解析する。
【０１３２】
本実施形態では、一例として、優先度算出部１１は、アプリケーションプログラム１５における入力データセットに対する処理を行う箇所を解析し、その処理中に実施される各多重度管理対象データセットへのアクセスの回数を予測する。すなわち、優先度算出部１１は、アプリケーション解析の結果として、多重度管理対象データセット別の予測アクセス回数情報（以下、「データセット別の予想アクセス回数情報」と言う。）を取得（算出）する。「データセット別の予測アクセス回数情報」は、アプリケーションプログラム１５の実行中に各データセットへのアクセスを必要とする程度（必要性の度合い）を示しているので、上述したとおり、第１の実施形態におけるデータセット利用関連情報３３０に対応する。
【０１３３】
なお、解析に際し、優先度算出部１１は、マスタデータ管理部１３０からアプリケーションプログラム１５の処理において利用されるデータセット（入力データセットおよび参照データセット）に関する情報を取得して、その情報を解析に使用してもよい。
【０１３４】
より具体的には、優先度算出部１１は、アプリケーションプログラム１５を解析することにより、各入力データにおける「商品番号」欄に対応する商品データを含むデータセットＸｎに対して、各１回のアクセスが発生することを突き止める（ステップＳ２００）。次に、優先度算出部１１は、マスタデータ管理部１３０から、入力データセットＡについて、「商品番号」欄が１〜９９９番である入力データの件数を取得する。具体的に、優先度算出部１１は、マスタデータ管理部１３０に対し、入力データセットAの情報を要求する（ステップS２０１）。次にマスタデータ管理部１３０は、その要求に基づき、入力データセットAの情報を検索する（ステップＳ２０２）。そして、マスタデータ管理部１３０は、検索した入力データセットAを優先度算出部１１に送信する（ステップS２０３）。優先度算出部１１は、取得した入力データセットAのデータの総件数（１０００件）を、入力データセットＡの処理（すなわち、入力データセットＡが割り当てられたノード２０による処理）におけるデータセットＸ１への予想アクセス回数とする。さらに、優先度算出部１１は、入力データセットＡのデータの総件数（１０００件）から、データセットＸ１への予想アクセス回数（１０００件）を引いた件数（０件）を、データセットＸ２への予想アクセス回数とする（ステップＳ２０４）。
【０１３５】
同様に、優先度算出部１１は、入力データセットＢおよび入力データセットＣ（すなわち、ノード２１およびノード２２）についてもデータセットＸｎへの予想アクセス回数を割り出す。
【０１３６】
なお、本実施形態では、優先度算出部１１は、データセットＸｎに対応する商品番号の範囲、および多重度管理対象データセットが、データセットＸ１およびデータセットＸ２の２つであることなどは、予め知らされていることを前提とする。このようなアプリケーション解析の結果の一例を図１２に示す。図１２の詳細は、後述する）。
【０１３７】
再び、図９を参照する動作の説明に戻る。
【０１３８】
優先度算出部１１は、アプリケーション解析により取得した「データセット別の予測アクセス回数情報」を基に、多重度管理対象データセットごとの優先度情報１８を算出する（ステップＳ１０５）。本実施形態における各データセットごとの優先度情報は、以下の優先度算出式（式（２））で算出される結果の値（以下、「仮優先度」と言う。）が大きい順に、仮優先度に対応するノードへ高い優先度を与える方法で決定する。
【０１３９】
ｆ（ｘ）＝ａ１ｘ１  −−−（２）
ここで、データセット利用関連情報３３０の種類ごとの値である「ｘ１」は、「データセット別の予測アクセス回数」である。また、データセット利用関連情報３３０の種類ごとの係数である「ａ１」は、「１」である。すなわち、本実施形態では、優先度算出部１１は、データセット別の予測アクセス回数が大きい順に高い優先度を与える。
【０１４０】
図１２を参照して、具体的な優先度の算出処理を説明する。図１２は、本発明の第２の実施形態におけるアプリケーション解析により取得したデータセット別の予測アクセス回数を示す情報の一例である。
【０１４１】
まず、優先度算出部１１は、データセットＸ１に関して、各ノード２０〜２２に対する仮優先度を求める。図１２を参照すると、データセットＸ１に関する仮優先度は、ノード２０〜２２に対して、順に、１０００、５００、２００である。次に、優先度算出部１１は、仮優先度の値が最も大きいノードから順に１、２、３・・・のように、優先度を与える。すなわち、データセットＸ１に関する優先度は、ノード２０〜２２に対して、順に、「１」、「２」、「３」である。同様に、優先度算出部１１は、データセットＸ２についても、各ノード２０〜２２に対する優先度を算出する。データセットＸ２に関する優先度は、ノード２０〜２２に対して、順に、「３」、「２」、「１」である。
【０１４２】
優先度算出部１１は、算出した各多重度管理対象データセットに関する優先度の情報を優先度情報１８としてディスク１４に格納する。図１３は、本発明の第２の実施形態における優先度情報１８の一例である。
【０１４３】
以上で、分散並列バッチ処理サーバ１０におけるジョブ配備処理は、完了である。ここで、ジョブ制御部１２は、ジョブ配備処理の完了をクライアント５００に通知しても良い。
【０１４４】
次に、クライアント５００は、ジョブ配備処理の終了通知を受信した後、または、ジョブ配備処理要求後に十分な時間を空けて、分散並列バッチ処理サーバ１０に、ジョブ配備要求において対象としたジョブの実行要求を送信する（ステップＳ１１０）。
【０１４５】
分散並列バッチ処理サーバ１０においては、ジョブ制御部１２が、ジョブの実行要求を受け付ける（ステップＳ１１１）。そして、ジョブ制御部１２は、ノード２０〜２２において待機しているタスク３０〜３２に対し、ジョブ開始を指示する（ステップＳ１１２）。
【０１４６】
ジョブ開始を指示されたタスク３０〜３２は、ジョブの処理を開始する（ステップＳ１１３）。
【０１４７】
以上が、分散並列バッチ処理サーバ１０におけるジョブの配備（実行準備）からジョブの実行までの処理である。
【０１４８】
次に、図１１を参照して、データセットの多重度変更処理について詳細に説明する。データセットの多重度変更処理は、分散並列バッチ処理サーバ１０においてジョブ制御部１２および分散データストア管理部１３が行う。図１１は、本発明の第２の実施形態における分散並列バッチ処理システムの多重度変更の動作を示すフローチャートである。
【０１４９】
なお、ステップＳ１０７で説明した通り、この時点におけるデータセット配置情報１７の内容は、図４に示すオンメモリ型データストア３内のデータセットＸ１およびデータセットＸ２の配置に合致している。すなわち、データセットＸ１は、ノード２０およびノード２１にある。また、データセットＸ２は、ノード２１およびノード２２にある。また、多重度Ｍは、「２」である。ただし、この時点における非管理対象である参照データセットＹ１〜Ｙ４および入力データセットＡ〜Ｃの配置に関しては、図４と異なる可能性がある。すなわち、非管理対象であるデータセット類は、タスク３０〜３２の処理に応じてオンメモリ型データストア３内に読み込まれている可能性がある。
【０１５０】
まず、分散並列バッチ処理システムにおいて、ジョブの処理が継続している間のあるタイミングにおいて、クライアント５００は、多重度管理対象データセットの多重度を変更することを決定したとき、分散並列バッチ処理サーバ１０に、多重度変更要求を送信する（ステップＳ３００）。クライアント５００は、多重度変更要求において、多重度Ｍの変更内容を指定する。
【０１５１】
ここでは、まず、クライアント５００が、多重度１つの削減を指示した場合の動作を説明する。多重度の増加を指示する場合の動作は、削減動作の説明後に説明する。多重度Ｍの変更内容の指定方法としては、変更後の多重度の数値を指定するなど、他にも方法がある。
【０１５２】
なお、クライアント５００が多重度管理対象データセットの多重度変更を決定する方法は、様々考えられる。例えば、バッチ処理の利用者、または、バッチ処理の進捗状況の管理を行う外部機能（図示せず）が、当該バッチ処理の進捗の遅れ（前倒し）を検出した場合に、クライアント５００を介して多重度を削減（増加）するような変更要求を送信してもよい。
【０１５３】
多重度変更要求を受信した分散並列バッチ処理サーバ１０においては、分散データストア管理部１３が、ジョブ制御部１２を介して多重度変更要求を受け付ける（ステップＳ３０１）。
【０１５４】
次に、分散データストア管理部１３は、優先度算出部１１がステップS105（図９）で算出した優先度情報１８と、データセット配置情報１７とを用いて、多重度管理対象データセットごとに、配置を変更する対象とするノード２０〜２２を決定する（ステップＳ３０２）。
【０１５５】
多重度変更要求において多重度Ｍの削減が指示された場合、分散データストア管理部１３は、多重度管理対象データセットが現在格納されているノードのうち、より優先度が低いノードを、配置変更（削除）対象のノードとする。より具体的には、分散データストア管理部１３は、まず、データセット配置情報１７を基に、データセットＸ１がノード２０およびノード２１にあることを認識する。次に、分散データストア管理部１３は、優先度情報１８（図１３）を基に、データセットＸ１に関する優先度においては、ノード２１（優先度は「２」）の方が、ノード２０（優先度は「１」）よりも優先度が低いことを認識する。その結果、分散データストア管理部１３は、ノード２１をデータセットＸ１に関する変更（削除）対象として決定する。同様の方法で、分散データストア管理部１３は、ノード２１をデータセットＸ２に関する変更（削除）対象として決定する。
【０１５６】
次に、分散データストア管理部１３は、多重度管理対象データセットごとに、変更対象であるノード２０〜２２の入出力管理部６０〜６２に対し、特定の多重度管理対象データセットの配置変更（追加、または、削除）を指示する（ステップＳ３０３）。より具体的には、分散データストア管理部１３は、ノード２１の入出力管理部６１に対して、データセットＸ１の削除を指示する。また同様に、分散データストア管理部１３は、ノード２１の入出力管理部６１に対して、データセットＸ２の削除を指示する。
【０１５７】
データセットの配置変更を指示されたノード２０〜２２においては、入出力管理部６０〜６２が、それぞれのノードにおけるメモリ４０〜４２に対して、指示内容に応じた多重度管理対象データセットの配置変更を実施する（ステップＳ３１０）。
【０１５８】
すなわち、指示内容が多重度管理対象データセットの削除である場合は、入出力管理部６０〜６２は、指定された多重度管理対象データセットを削除する（ステップＳ３１１）。具体的には、ノード２１の入出力管理部６１は、データセットＸ１の削除指示に応じて、メモリ４１からデータセットＸ１を削除する。また、入出力管理部６１は、データセットＸ２の削除指示に応じて、メモリ４１からデータセットＸ２を削除する。
【０１５９】
ステップＳ３１１が終了した時点における分散データストア２内のデータセットの配置状態は、図１４の通りである。図１４は、本発明の第２の実施形態における多重度変更後の分散データストアのデータ配置の一例を示す図である。図１４を参照すると、多重度管理対象データセットであるデータセットＸ１、およびデータセットＸ２は、ノード２０およびノード２２にそれぞれ一つずつ格納されている。すなわち、多重度変更要求（削減）に応じて、多重度Ｍは、「２」から「１」に削減されている。なお、非管理対象である参照データセットＹ１〜Ｙ４および入力データセットＡ〜Ｃの配置は、図１４と異なる可能性がある。
【０１６０】
一方、分散並列バッチ処理サーバ１０においては、分散データストア管理部１３は、ステップＳ３０３に記載した処理を実行した後、入出力管理部６０〜６２に対して指示したデータセットの配置変更を反映するように、データセット配置情報１７を更新する（ステップＳ３０４）。すなわち、分散データストア管理部１３は、図１４に示すオンメモリ型データストア３の内のデータセットＸ１およびデータセットＸ２の配置に合致するように、データセット配置情報１７を更新する。
【０１６１】
このようにして、分散並列バッチ処理サーバ１０におけるジョブ制御部１２および分散データストア管理部１３は、クライアント５００からの多重度変更要求（削減）に応じて、多重度Ｍを削減する。
【０１６２】
次に、ステップＳ３００において、クライアント５００が、多重度Ｍを「１」から「２」に増加する場合を例として、以下に、多重度１つの増加を指示した場合の動作を説明する。このときのデータセット配置情報１７、およびオンメモリ型データストア３の状態は、図１４に対応していることを前提とする。
【０１６３】
多重度変更要求を受信した分散並列バッチ処理サーバ１０においては、分散データストア管理部１３が、ジョブ制御部１２を介して多重度変更要求を受け付ける（ステップＳ３０１）。
【０１６４】
次に、分散データストア管理部１３は、優先度算出部１１が算出しておいた優先度情報１８と、データセット配置情報１７とを用いて、多重度管理対象データセットごとに、配置を変更する対象とするノード２０〜２２を決定する（ステップＳ３０２）。
【０１６５】
多重度変更要求において多重度Ｍの追加が指示された場合、分散データストア管理部１３は、多重度管理対象データセットが現在格納されていないノードのうち、より優先度が高いノードを、配置変更（追加）対象のノードとする。より具体的には、分散データストア管理部１３は、まず、データセット配置情報１７を基に、データセットＸ１がノード２１およびノード２２には格納されていないことを認識する。次に、分散データストア管理部１３は、優先度情報１８（図１３）を基に、データセットＸ１に関する優先度においては、ノード２１（優先度は「２」）の方がノード２２（優先度は「３」）よりも優先度が高いことを認識する。その結果、分散データストア管理部１３は、ノード２１をデータセットＸ１に関する変更（追加）対象として決定する。同様の方法で、分散データストア管理部１３は、ノード２１をデータセットＸ２に関する変更（追加）対象として決定する。
【０１６６】
次に、分散データストア管理部１３は、多重度管理対象データセットごとに、変更対象であるノード２０〜２２の入出力管理部６０〜６２に対し、特定の多重度管理対象データセットの配置変更（追加、または、削除）を指示する（ステップＳ３０３）。より具体的には、分散データストア管理部１３は、ノード２１の入出力管理部６１に対して、データセットＸ１の追加を指示する。また同様に、分散データストア管理部１３は、ノード２１の入出力管理部６１に対して、データセットＸ２の追加を指示する。
【０１６７】
データセットの配置変更を指示されたノード２０〜２２においては、入出力管理部６０〜６２が、それぞれのノードにおけるメモリ４０〜４２に対して、指示内容に応じた多重度管理対象データセットの配置変更を実施する（ステップＳ３１０）。
【０１６８】
すなわち、指示内容が多重度管理対象データセットの追加である場合は、入出力管理部６０〜６２は、指定された多重度管理対象データセットを他のノードにあるメモリ４０〜４２などから読み込み、そのコピーを自ノードのメモリ４０〜４２に追加する（ステップＳ３１２）。具体的には、ノード２１の入出力管理部６１は、データセットＸ１の追加指示に応じて、メモリ４０からメモリ４１へデータセットＸ１をコピーする。また、入出力管理部６１は、データセットＸ２の追加指示に応じて、メモリ４２からメモリ４１へデータセットＸ２をコピーする。
【０１６９】
ステップＳ３１２が終了した時点における分散データストア２内のデータセットの配置状態は、図４の通りである。上述したとおり、図４を参照すると、データセットＸ１は、ノード２０およびノード２１にある。また、データセットＸ２は、ノード２１およびノード２２にある。すなわち、多重度変更要求（増加）に応じて、多重度Ｍは、「１」から「２」に増加されている。なお、非管理対象である参照データセットＹ１〜Ｙ４および入力データセットＡ〜Ｃの配置は、図４と異なる可能性がある。
【０１７０】
一方、分散並列バッチ処理サーバ１０においては、分散データストア管理部１３は、ステップＳ３０３に記載した処理を実行した後、入出力管理部６０〜６２に対して指示したデータセットの配置変更を反映するように、データセット配置情報１７を更新する（ステップＳ３０４）。これは、多重度変更要求（削除）の場合と同様である。
【０１７１】
このようにして、分散並列バッチ処理サーバ１０におけるジョブ制御部１２および分散データストア管理部１３は、クライアント５００からの多重度変更要求（増加）に応じて、多重度Ｍを増加する。
【０１７２】
以上で、多重度Ｍの削減、および増加の場合における多重度変更処理の説明を終了する。
【０１７３】
ここで、本実施形態の効果を示すため、図４において多重度Ｍを２から１に削減する４通りの方法を例として、各削減方法における多重度管理対象データセットへのアクセス性能への影響を比較する。これら４通りの方法は、関連技術でも説明した削減方法である。
【０１７４】
まず、図４において、多重度Ｍを２から１に削減する方法は、以下の４通りある。具体的に言うと、第１の方法は、ノード２０のデータセットＸ１とノード２１のデータセットＸ２とを残す方法である。第２の方法は、ノード２０のデータセット１とノード２２のデータセットＸ２とを残す方法である。第３の方法は、ノード２１のデータセットＸ１とノード２３のデータセットＸ２とを残す方法である。そして、第４の方法は、ノード２１のデータセットＸ１とＸ２とを残す方法である。
【０１７５】
本実施形態において、多重度Ｍを削減する際に実施した削減方法は、第２の方法である。
【０１７６】
これら４つの削減方法に関して、各多重度管理対象データセットへのアクセス時間の合計を比較する。選択した削減方法のアクセス性能への影響が最も大きく現れる事例として、多重度変更（削減）が、ジョブ実行後すぐに実行されたことを前提とする。
【０１７７】
多重度管理対象データセットへのアクセス時間の合計は、全ノード２０〜２２の処理中におけるデータセットＸ１およびデータセットＸ２に対するアクセス時間を足した値とする。一つのノードにおけるジョブ処理中に特定のデータセットへアクセスする時間を示すデータセットへのアクセス時間は、以下の式（３）で計算する。
【０１７８】
（データセットへのアクセス時間）＝（アクセス速度）×（アクセス回数）  −−−（３）
ここでは、自ノードのメモリにあるデータセットにアクセスする場合のアクセス速度を「１」として、他のノードへのアクセス速度は、「５」であることを前提とする。これは、一般に、データセットへのアクセス速度は、（自ノードのメモリ）＞（他ノードのオンメモリ型データストア）の順に高速であるからである。また、アクセス回数は、図１２に示すデータセット別の予測アクセス回数情報を使用する。
【０１７９】
多重度管理対象データセットへのアクセス時間の合計は、システム内の全ノードからの多重度管理対象データセットに対するアクセスに要する時間の合計である。したがって、アクセス時間の合計の数値が小さい方が、アクセスに要する時間が少なくて済む（効率が良い）ことを表す。
【０１８０】
まず、前述の第１の方法に関して、各多重度管理対象データセットへのアクセス時間の合計を計算する。図１２を参照すると、ノード２０のタスク３０（以下、単に「ノード２０」のように記述する。）は、データセットＸ１に１０００回アクセスするが、データセットＸ２にはアクセスしない。したがって、第１の方法において、ノード２０は、自ノード２０のメモリ４０（以下、単に「ノード２０」のように記述する。）にあるデータセットＸ１に１０００回アクセスする。ノード２０における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
［ノード２０のアクセス時間］（１×１０００）＝１０００
である。
【０１８１】
ノード２１は、データセットＸ１に５００回、およびデータセットＸ２に５００回アクセスする。第１の方法では、ノード２１にはデータセットＸ１がないので、ノード２１は、他のノード（すなわちノード２０）にあるデータセットＸ１にアクセスする。したがって、ノード２１における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
［ノード２１のアクセス時間］（５×５００）＋（１×５００）＝３０００
である。
【０１８２】
同様に、ノード２２における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
［ノード２２のアクセス時間］（５×２００）＋（５×８００）＝５０００
である。
【０１８３】
第１の方法に関する各多重度管理対象データセットへのアクセス時間の合計（以下、単に「第１の方法におけるアクセス合計時間」のように記述する。）は、ノード２０〜２２のアクセス時間を合計した結果、以下の通りとなる。すなわち、
［アクセス合計時間］１０００＋３０００＋５０００＝９０００
である。
【０１８４】
次に、第２〜４の方法に関しても、各多重度管理対象データセットへのアクセス合計時間を計算する。計算方法は上記と同様であるので、以下には、計算過程を示す式のみ記述する。
【０１８５】
以下は、前述の第２の方法におけるアクセス合計時間の計算式である。すなわち、
［ノード２０のアクセス時間］（１×１０００）＝１０００
［ノード２１のアクセス時間］（５×５００）＋（５×５００）＝５０００
［ノード２２のアクセス時間］（５×２００）＋（１×８００）＝１８００
である。よって、  ［アクセス合計時間］１０００＋５０００＋１８００＝７８００
である。
【０１８６】
以下は、前述の第３の方法におけるアクセス合計時間の計算式である。すなわち、
［ノード２０のアクセス時間］（５×１０００）＝５０００
［ノード２１のアクセス時間］（１×５００）＋（５×５００）＝３０００
［ノード２２のアクセス時間］（５×２００）＋（１×８００）＝１８００
である。よって、［アクセス合計時間］５０００＋３０００＋１８０００＝９８００
である。
【０１８７】
以下は、前述の第４の方法におけるアクセス合計時間の計算式である。すなわち、
［ノード２０のアクセス時間］（５×１０００）＝５０００
［ノード２１のアクセス時間］（１×５００）＋（１×５００）＝１０００
［ノード２２のアクセス時間］（５×２００）＋（５×８００）＝５０００
である。よって、［アクセス合計時間］５０００＋１０００＋５０００＝１１０００
である。
【０１８８】
上述した４通りの削減方法におけるアクセス合計時間の数値を比較すると、最も少ないアクセス合計時間であるのは、第２の方法（本実施形態において実施した削減方法）である。すなわち、本実施形態によれば、ジョブの処理途中において多重度Ｍを変更する際、多重度管理対象データセットへのアクセス効率の低下をできるだけ避け得る当該データセットの配置となるように、多重度Ｍを変更することができる。
【０１８９】
その理由は、優先度算出部１１が、多重度管理対象データセットへのアクセス効率に与える影響の程度を示す情報であるデータセット利用関連情報に基づいて、優先度情報１８を算出するからである。さらに、分散データストア管理部１３が、当該優先度情報１８に基づいて、多重度管理対象データセットごとに多重度Ｍの変更対象とするノードを選択するからである。具体的には、優先度算出部１１が、多重度管理対象データセットへのアクセスの必要性の度合いを示す情報であるアクセス予測回数に基づいて、優先度情報１８を算出する。さらに、分散データストア管理部１３が、当該優先度情報１８に基づいて、多重度管理対象データセットごとに配置を変更する対象とするノードを選択することができるからである。
【０１９０】
また、本実施形態によれば、ジョブの処理途中における多重度Ｍの変更を任意のタイミングで迅速に行うことができる。その理由は、分散データストア管理部１３が、あらかじめ算出しておいた優先度情報１８を基に、多重度管理対象データセットごとに多重度Ｍの変更対象とするノードを判定するので、変更対象ノードの選定を迅速に行うことができるからである。これにより、分散データストア管理部１３は、例えば、ジョブ処理を連続実行する場合に、前のジョブのデータセットの配置をそのまま利用することによりジョブ実行準備期間を短縮する。さらに、分散データストア管理部１３は、その後、ジョブの進捗に問題が出た場合だけ、多重度Ｍを変更するによって進捗の調整を図る、というような運用が容易になることが期待できる。
【０１９１】
本実施形態では、ジョブ制御部１２がノードへタスクを割り当てる処理（ステップＳ１０３）を実施後に、優先度算出部１１がアプリケーション解析処理（ステップＳ１０４）と、優先度算出処理（ステップＳ１０５）とを実行した。これらの処理順は変更しても良い。例えば、ステップＳ１０２の後、優先度算出部１１がアプリケーション解析処理（ステップＳ１０４）と、優先度算出処理（ステップＳ１０５）とを先に行う。その後、ジョブ制御部１２が、算出された優先度情報１８を参考にして、タスクのノードへの割り当て処理（ステップＳ１０３）を行うようにしても良い。
【０１９２】
この場合、優先度算出部１１は、アプリケーション解析処理、および優先度算出処理において、ノード２０〜２２を対象としてアクセス予測回数や優先度情報を算出するのではなく、入力データセットＡ〜Ｃを処理するタスクＡ〜Ｃを仮の算出対象として、これらの算出処理を行う。そして、最後のタスクのノードへの割り当て処理の際に、ジョブ制御部１２は、仮のタスクＡ〜Ｃを、入力データセットＡ〜Ｃと共にノード２０〜２２へ割り当てる。
【０１９３】
また、優先度算出部１１が優先度情報１８を算出するタイミングは、クライアントによる多重度変更要求が送信される前のいつでも良い。さらに、優先度算出部１１は、ジョブの処理実行中など、任意のタイミングで優先度情報１８を更新しても良い。
【０１９４】
また、分散並列バッチ処理サーバ１０における各機能部、およびディスク１４に格納した各種データ類は、必ずしもノード２０〜２２やマスタデータサーバ１００と異なる情報処理装置に置く必要はない。さらに、分散並列バッチ処理サーバ１０における各機能部、およびディスク１４に格納した各データは、必要な相互通信や情報の共有が適宜可能であれば、単一の情報処理装置に置く必要はない。
【０１９５】
（第２の実施形態の変形例）
なお、本実施形態の変形例としては以下のようなものが考えられる。
【０１９６】
例えば、本実施形態では、バッチ処理は１つのジョブで構成されることを前提としていたが、本実施形態は、バッチ処理を複数のジョブから構成されるとした場合にも適用することができる。この変形例は、ジョブが複数ある場合（すなわち、アプリケーションプログラム１５が複数ある場合）を想定している。この場合への本実施形態を適用する方法の一つには、バッチ処理に含まれるすべてのジョブを対象にして、一つの優先度情報１８を算出する方法が考えられる。しかし、各ジョブに含まれる処理内容の違いが大きい場合、係る優先度情報１８は、多くのジョブに対して適合していない可能性がある。したがって、多重度Ｍを変更する際、係る優先度情報１８に基づいて決定した多重度管理対象データセットの配置では、処理効率が低下する恐れがある。
【０１９７】
そこで、複数のジョブを連続実行するバッチ処理に対しては、分散並列バッチ処理サーバ１０は、優先度情報１８を複数設けても良い。すなわち、優先度算出部１１は、ステップＳ１０４において、複数のジョブに対応する各アプリケーションプログラム１５を対象にアプリケーション解析を行う。その結果、優先度算出部１１は、アプリケーションプログラム１５ごとに異なる優先度情報１８（以降、「ジョブごとの優先度情報１８」と記述する）を算出する。そして、優先度算出部１１は、ディスク１４に、ジョブごとの優先度情報１８を保持しておく。ジョブの実行開始後、ジョブ制御部１２は、クライアント５００から多重度変更要求を受信した際には、多重度変更要求の情報と共に、その時点で実行中のジョブの情報も、分散データストア管理部１３に提供する。分散データストア管理部１３は、実行中のジョブに対応する「ジョブごとの優先度情報１８」に基づいて、多重度Ｍの変更対象とするノード２０〜２２を決定する（ステップＳ３０２）。
【０１９８】
このようにして、分散並列バッチ処理サーバ１０は、複数のジョブを連続実行するバッチ処理に関して、優先度情報１８をジョブごとに複数持つことにより、バッチ処理を構成する各ジョブに対しても本実施形態と同様の効果をもたらすことができる。
【０１９９】
また、他の変形例として、多重度Ｍの「削減」と「増加」との多重度変更の種類によって、異なる優先度情報１８を使い分けることができる。例えば、多重度Ｍが増加する場合、ノード２０〜２２は、指定された多重度管理対象データセットを他のノードにあるメモリ４０〜４２などから読み込み、そのコピーを自ノードのメモリ４０〜４２を追加する（ステップＳ３１２）。
【０２００】
すなわち、多重度Ｍの増加が実現するまでには、ノード２０〜２２において多重度管理対象データセットの転写（コピー）が完了するまでの時間が必要である。したがって、分散データストア管理部１３が、特にデータ転送速度が遅いノードに対して、多重度管理対象データセットの追加を指示した場合、他のノードへ追加を指示した場合に比べて、多重度Ｍの増加処理に時間が掛かる恐れがある。そこで、優先度算出部１１は、多重度管理対象データセットごとの優先度情報を算出する処理（ステップＳ１０５）の際に、各ノード間のデータ転送速度を、優先度算出式における二つ目のデータセット利用関連情報３３０として用いてもよい。
【０２０１】
なお、ステップＳ１０５の前に、優先度算出部１１は、各ノード間のデータ転送速度の情報を、あらかじめディスク１４に格納しておいたファイルやシステム外部などから取得することとする。このときの優先度算出式は、以下に示す式（４）の通りである。すなわち、
ｆ（ｘ）＝ａ１ｘ１＋ａ２ｘ２  −−−（４）。
【０２０２】
ここで、「ｘ１」は、本実施形態と同様、「データセット別の予測アクセス回数」である。また、「ｘ２」は、「算出対象のノードと他のノードとの間のデータ転送速度に基づく数値」を示す。また、データセット利用関連情報３３０の種類ごとの係数である「ａ１」および「ａ２」は、システムの状況に応じて、「データセット別の予想アクセス回数」と「算出対象のノードと他のノードとの間のデータ転送速度に基づく数値」との重み付けに適した値を採用する。優先度算出部１１が、このような２つのデータセット利用関連情報３３０に基づいて算出した第２の優先度情報１８を用いることにより分散データストア管理部１３は、コピーに要する時間が余計に掛かるノードの優先度を下げることができる。その結果として、分散データストア管理部１３は、多重度Ｍの増加を早く完了する配置を選択することが可能になる。
【０２０３】
ただし、本変形例において、多重度Ｍを削減させる場合、分散データストア管理部１３からデータセットの配置変更指示を受けたノードは、指定された多重度管理対象データセットを削除する（ステップＳ３１１）が、他のノードにあるデータセットを参照しない。このため、ノード間のデータ転送速度は、一般に、多重度Ｍの削減完了までの時間には影響しない。したがって、分散データストア管理部１３は、多重度Ｍの増加の場合は第２の優先度情報１８を適用し、一方、多重度Ｍの削減の場合は、例えば、第２の実施形態で算出した優先度情報１８を適用してもよい。このように、分散並列バッチ処理サーバ１０は、多重度変更要求の内容（削減、または増加）に応じて、複数の優先度情報１８を使い分ける。これによって、本変形例では、当該多重度変更要求の内容に適応した多重度変更方法を実現することができる。
【０２０４】
なお、上述した各実施形態、および、その変形例（以降、単に「各実施形態等」とも記述する。）において図１乃至図３に示した各部は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捕らえることができる。ただし、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。以下に、このような場合におけるハードウェア環境の一例を図１５を参照して説明する。
【０２０５】
図１５は、本発明の各実施形態、および、その変形例に係る分散並列バッチ処理システムに適用可能なコンピュータ（情報処理装置）の構成を例示する図である。すなわち、図１５は、上述した各実施形態等における分散並列バッチ処理サーバ１０、ノード２０〜２２、マスタデータサーバ１００、データベース１１０、データセット多重度変更装置３００、ノード３２０、クライアント５００の少なくともいずれかを実現可能なコンピュータの構成であって、上述した実施形態等における各機能を実現可能なハードウェア環境を示す。
【０２０６】
図１５に示したコンピュータ９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、通信インタフェース（Ｉ／Ｆ）９０４、ディスプレイ９０５、及びハードディスク装置（ＨＤＤ）９０６を備え、これらがバス９０７を介して接続された構成を有する。なお、図１５に示したコンピュータは、分散並列バッチ処理サーバ１０、ノード２０〜２２、マスタデータサーバ１００、データベース１１０、データセット多重度変更装置３００、およびノード３２０のうちのいずれかとして機能する。ただし、ディスプレイ９０５は常時設けられる必要はない。また、通信インタフェース９０４は、ネットワーク１０００を介して、コンピュータ９００と外部装置との通信を実現する一般的な通信手段である。ハードディスク装置９０６には、プログラム群９０６Ａと、各種の記憶情報９０６Ｂとが格納されている。
【０２０７】
プログラム群９０６Ａは、例えば、上述した図１乃至図３に示した各ブロック（各部）に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報９０６Ｂは、例えば、図１および図３に示した優先度情報１８、３１１、データセット配置情報１７、３１２、データセット７０、８０、３２２および、図３に示したアプリケーションプログラム１５、ジョブ定義情報１６、図２および図３に示したマスタデータセット１２０などである。このようなハードウェア構成において、ＣＰＵ９０１は、コンピュータ９００の全体の動作を司る。
【０２０８】
そして、上述した実施形態等を例に説明した本発明は、各実施形態等の説明において参照したブロック構成図（図１乃至図３）あるいはフローチャート（図９乃至図１１）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ９０１に読み出して実行することによって達成される。また、このコンピュータ内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ９０３またはハードディスク装置１０６等の不揮発性の記憶デバイス（記憶媒体）に格納すれば良い。
【０２０９】
たとえば、データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体の場合、次の処理をコンピュータに実行させるプログラムを永久的に記録する。その処理は、第１に、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、データセットを格納するべき複数ノードの順番を表す優先度情報を算出する優先度算出処理である。その処理は、第２に、優先度情報と、データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、データセットの多重度を変更する多重度変更処理である。
【０２１０】
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線１０００を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
【０２１１】
なお、本発明は上述した実施形態及びその変形例の一部または全部は、以下の付記のようにも記載されうるが、以下の付記に限定されるものではない。
【０２１２】
（付記１）
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出手段と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える
データセット多重度変更装置。
【０２１３】
（付記２）
前記優先度算出手段は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記１記載のデータセット多重度変更装置。
【０２１４】
（付記３）
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記１または２記載のデータセット多重度変更装置。
【０２１５】
（付記４）
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出手段は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理を実施する際に、前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
付記１乃至３の何れかに記載のデータセット多重度変更装置。
【０２１６】
（付記５）
前記優先度算出手段は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理において、前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記多重度変更処理を実施し、前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記多重度変更処理を実施する
付記１乃至４の何れかに記載のデータセット多重度変更装置。
【０２１７】
（付記６）
前記優先度算出手段は、
前記第１の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記５記載のデータセット多重度変更装置。
【０２１８】
（付記７）
付記１乃至６の何れかに記載のデータセット多重度変更装置を備え、
前記複数ノードによる前記ジョブの並列処理を制御する
サーバ。
【０２１９】
（付記８）
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、情報処理装置を用いて算出し、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する
データセット多重度変更方法。
【０２２０】
（付記９）
前記優先度情報を算出する際に、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記８記載のデータセット多重度変更方法。
【０２２１】
（付記１０）
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記８または９記載のデータセット多重度変更方法。
【０２２２】
（付記１１）
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度情報の算出の際に、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
付記８乃至１０の何れかに記載のデータセット多重度変更方法。
【０２２３】
（付記１２）
前記優先度情報の算出の際に、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記多重度変更処理を実施し、
前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記多重度変更処理を実施する
付記８乃至１１の何れかに記載のデータセット多重度変更方法。
【０２２４】
（付記１３）
前記第１の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記１２記載のデータセット多重度変更方法。
【０２２５】
（付記１４）
データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体であって、  複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出処理と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実現させる
コンピュータ・プログラムを記録した記録媒体。
【０２２６】
（付記１５）
前記優先度算出処理は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記１４記載のコンピュータ・プログラムを記録した記録媒体。
【０２２７】
（付記１６）
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記１４または１５記載のコンピュータ・プログラムを記録した記録媒体。
【０２２８】
（付記１７）
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出処理は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度管理処理は、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
付記１４乃至１６の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
【０２２９】
（付記１８）
前記優先度算出処理は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度管理処理は、
前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記データセットの多重度を変更する
付記１４乃至１７の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
【０２３０】
（付記１９）
前記優先度算出処理は、
前記第１の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記１８記載のコンピュータ・プログラムを記録した記録媒体。
【０２３１】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【０２３２】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０２３３】
この出願は、２０１３年２月４日に出願された日本出願特願２０１３−０１９４０３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２３４】
１    分散並列バッチ処理システム
２    分散データストア
３    オンメモリ型データストア
４    ディスク型データストア
１０    分散並列バッチ処理サーバ
１１    優先度算出部
１２    ジョブ制御部
１３    分散データストア管理部
１４    ディスク
１５    アプリケーションプログラム
１６    ジョブ定義情報
１７    データセット配置情報
１８    優先度情報
２０〜２２    ノード
３０〜３２    タスク
４０〜４２    メモリ（記憶領域）
５０〜５２    ディスク
６０〜６２    入出力管理部
７０〜７２、８０〜８２    データセット
１００    マスタデータサーバ
１１０    データベース
１２０    マスタデータセット
１３０    マスタデータ管理部
２００    ジョブ
３００    データセット多重度変更装置
３０１    優先度算出部
３０２    多重度管理部
３１１    優先度情報
３１２    データセット配置情報
３２０    ノード
３２１    メモリ（記憶領域）    
３２２    データセット
３３０    データセット利用関連情報
５００    クライアント
９００    情報処理装置（コンピュータ）
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    通信インタフェース（Ｉ／Ｆ）
９０５    ディスプレイ
９０６    ハードディスク装置（ＨＤＤ）
９０６Ａ    プログラム群
９０６Ｂ    各種の記憶情報
９０７    バス
１０００    ネットワーク（通信ネットワーク）
【図１】
2014119269.tif 000003
【図２】
2014119269.tif 000004
【図３】
2014119269.tif 000005
【図４】
2014119269.tif 000006
【図５】
2014119269.tif 000007
【図６】
2014119269.tif 000008
【図７】
2014119269.tif 000009
【図８】
2014119269.tif 000010
【図９】
2014119269.tif 000011
【図１０】
2014119269.tif 000012
【図１１】
2014119269.tif 000013
【図１２】
2014119269.tif 000014
【図１３】
2014119269.tif 000015
【図１４】
2014119269.tif 000016
【図１５】
2014119269.tif 000017
【手続補正書】
【提出日】平成27年7月13日(2015.7.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出手段と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える
データセット多重度変更装置。
【請求項２】
前記優先度算出手段は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
請求項１記載のデータセット多重度変更装置。
【請求項３】
請求項１または２に記載のデータセット多重度変更装置を備え、
前記複数ノードによる前記ジョブの並列処理を制御する
サーバ。
【請求項４】
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、情報処理装置を用いて算出し、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する
データセット多重度変更方法。
【請求項５】
データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムであって、
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出処理と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実行させるコンピュータ・プログラム。
【請求項６】
前記優先度算出処理は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
請求項５記載のコンピュータ・プログラム。
【請求項７】
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
請求項５または６記載のコンピュータ・プログラム。
【請求項８】
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出処理は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度変更処理は、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
請求項５乃至７の何れか１つに記載のコンピュータ・プログラム。
【請求項９】
前記優先度算出処理は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第１の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第２の優先度情報を算出し、
前記多重度変更処理は、
前記多重度低減を行う場合は、前記第１の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第２の優先度情報に基づいて前記データセットの多重度を変更する
請求項５乃至８の何れか１つに記載のコンピュータ・プログラム。
【請求項１０】
前記優先度算出処理は、
前記第１の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第２の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
請求項９記載のコンピュータ・プログラム。
【国際調査報告】
2014119269.tif 000018
2014119269.tif 000019
2014119269.tif 000020
2014119269.tif 000021