[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6115575B2 - データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム - Google Patents

データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP6115575B2
JP6115575B2 JP2014559558A JP2014559558A JP6115575B2 JP 6115575 B2 JP6115575 B2 JP 6115575B2 JP 2014559558 A JP2014559558 A JP 2014559558A JP 2014559558 A JP2014559558 A JP 2014559558A JP 6115575 B2 JP6115575 B2 JP 6115575B2
Authority
JP
Japan
Prior art keywords
data set
multiplicity
information
data
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014559558A
Other languages
English (en)
Other versions
JPWO2014119269A1 (ja
Inventor
岳大 渡邊
岳大 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2014119269A1 publication Critical patent/JPWO2014119269A1/ja
Application granted granted Critical
Publication of JP6115575B2 publication Critical patent/JP6115575B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、例えば、情報処理装置(コンピュータ)を用いた分散並列処理システムにおけるデータ管理技術に関する。特に、本発明は、データセットの多重管理における多重度の変更技術に関する。
バッチ処理は、予め定められたタイミングで開始し、与えられた入力データに対して、サーバ等の情報処理装置を用いて繰り返し同じ処理を行うことにより、処理結果を得る技術である。近年、バッチ処理における処理対象データ量の増大や処理時間短縮のニーズが高まっている。また、バッチ処理を高速化する技術として、複数のサーバ(ノード)を用いて実現する分散並列処理を利用する技術が普及している。以下に、係る分散並列バッチ処理システムの一例について、図2と図4とを参照して説明する。
図2は、関連技術としての分散並列バッチ処理システムを含む通信環境の一例を示す構成図である。図4は、関連技術としての分散並列バッチ処理システムにおける分散データストア内のデータ配置の一例を示す図である。なお、図2及び図4は本発明の第2の実施形態の説明において使用する図面であるが、ここではその図面を利用して関連技術の一般的な分散並列バッチ処理システムの構成及び動作について説明する。
図2に示すように、分散並列バッチ処理システム1は、3つのノード20〜22と、分散並列バッチ処理サーバ10と、マスタデータサーバ100と、クライアント500と、これらを接続する通信ネットワーク(以後、単に「ネットワーク」と略称する。)1000とから構成されている。
3つのノード20〜22は、分散並列バッチ処理サーバ10によって分割されたバッチ処理を、それぞれのノードにおいて並列的(「並行的」と表現することもできる。以下の説明においても同様)に実行することができる。また、ノード20〜22は、図4に示すように、それぞれメモリ40〜42とディスク50〜52とを備える。
分散並列バッチ処理サーバ10は、3つのノード20〜22を制御することにより、係るバッチ処理を実行する。
クライアント500は、分散並列バッチ処理サーバ10に対し、バッチ処理の実行を要求する。
マスタデータサーバ100は、バッチ処理における処理対象である複数件の入力データを含む入力データセットと、処理中に参照するデータ類を含む参照データセットとを含むマスタデータセット120を、分散並列バッチ処理サーバ10に提供する。マスタデータセット120は、あらかじめデータベース110内に格納される。
分散並列バッチ処理サーバ10、ノード20〜22、マスタデータサーバ100およびクライアント500は、プログラム制御により動作する一般的なコンピュータである。
ここで、本分散並列バッチ処理システムにおける前提(または、前提要件とも言う)を説明する。
まず、バッチ処理とは、最小の処理単位である「ジョブ」を連続して実行することとする。ただし、説明を簡単にするため、以下では、バッチ処理は、1つのジョブで構成されることを前提とする。
次に、ノード20〜22が以前実行したジョブに使用した入力データセットや参照データセットなどのファイルは、削除が必要になるまでは、ジョブ処理終了後もノード20〜22のディスク50〜52、およびメモリ40〜42にそのまま保持する。これらのデータセット類は、次のジョブの実行において、必要ならば再利用可能である。これは、分散並列バッチ処理システムでは、同じようなデータセットを利用する複数のジョブを連続的に実行することがあるからである。係る複数のジョブの例には、商品の受注処理、その注文に対する請求書発行処理、注文された商品の出庫処理などが考えられる。
前提の最後として、ジョブの処理内容を記述したコンピュータ・プログラムであるアプリケーションプログラムを記述するファイルは、分散並列バッチ処理サーバ10のディスク(図示せず)にあらかじめ格納される。
次に、関連技術の分散並列バッチ処理システムの動作について説明する。
図2において、初めに、クライアント500が、分散並列バッチ処理サーバ10に、ジョブの実行を要求する。ジョブの実行要求において、クライアント500は、ジョブの処理プログラムであるアプリケーションプログラム名と、ジョブの実行に必要な各種定義情報とを指定する。各種定義情報には、ジョブの処理対象であるデータを示す入力データセット名と、処理中に参照するデータ類を示す参照データセット名が含まれる。入力データセットは、例えば、ある店舗の取引(注文など)データの集合体である。参照データセットは、例えば、各商品についての情報を含むデータまたは各商品の曜日別の割引率を定義するデータなどの集合体である。
次に、ジョブの実行要求を受けた分散並列バッチ処理サーバ10は、ジョブの実行要求において指定された入力データセットを、ノード20〜22の数に合わせて、3つの入力データセットA〜Cに分割する。そして、分散並列バッチ処理サーバ10は、3つのノード20〜22に対して、分割した入力データセットA〜Cを1つずつ、各ノードの処理対象として割り当てる。一般に、入力データセットの分割において、分散並列バッチ処理サーバ10は、分割した各入力データセットA〜Cの処理時間がなるべく均等になるように分割を行う。また、分散並列バッチ処理サーバ10は、ノード20〜22のディスク50〜52及びメモリ40〜42(図4)に対し、読み込まれているデータセットの配置に基づいて、分割した入力データセットA〜Cを割り当てる。この場合、分散並列バッチ処理サーバ10は、入力データセットA〜Cの処理のために必要なデータセットが保持されているノードをできるだけ選んで、分割した入力データセットA〜Cを割り当てる。
次に、分散並列バッチ処理サーバ10は、ジョブの実行要求において指定されたアプリケーションプログラム名に対応するファイルを自サーバのディスクから取得した後、当該ファイルに含まれるプログラムを3つのノード20〜22において開始する。以降、ノード20〜22においてジョブの処理が記述されたプログラムを実行している処理実体を「タスク」と言う。すなわち、ノード20〜22におけるそれぞれのタスク30〜32(図4)が行う処理は、扱う入力データセットの内容が異なるだけで、処理(プログラム)は同じである。
次に、ジョブ処理に必要なデータセットが、ノード20〜22のディスク50〜52またはメモリ40〜42に存在しない場合、各ノードは、次の処理を行う。すなわち、各ノードは、不足しているデータセットを、マスタデータサーバ100を介して、マスタデータセット120から自ノード20〜22のディスク50〜52またはメモリ40〜42にコピーする。必要なデータセットのコピーが終了した後、ノード20〜22において、それぞれのタスク30〜32が処理を開始する。
このようにして、分散並列バッチ処理サーバ10は、入力データセットを3つに分割した後、分割した各入力データセットA〜Cを3つのノード20〜22の各タスクで並列的に処理することにより、ジョブ全体としての処理時間を短縮可能としている。
一般に、分散並列バッチ処理システム1においては、さらに、各ノード20〜22の記憶装置を統合した「分散データストア」と呼ばれる管理を行うことによって、各ノード20〜22のタスク30〜32からの各種データセットへのアクセス効率の向上を図っている。ここで言う「データストア」とは、分散並列バッチ処理サーバ10からの要求、および各ノード20〜22におけるそれぞれのタスク30〜32からの要求に応じて、データファイルの生成、読み込み、更新、および削除などの操作が実行できるデータの保持先(メモリやディスク)の総称である。
分散データストア2は、図4に示すように、ノード20〜22のそれぞれに、メモリ40〜42と、ディスク50〜52と、入出力管理部60〜62と、図示しない分散データストア2全体を管理する管理部とを備える。一般に、分散データストア2全体を管理する管理部は、分散並列バッチ処理サーバ10が備える。
分散データストア2のうち比較的高速なメモリ40〜42から構成される部分は、オンメモリ型データストア3と呼ばれる。一方、分散データストア2のうち比較的低速なディスク50〜52から構成される部分は、ディスク型データストア4と呼ばれる。なお、説明を簡易にするため、本例における分散データストア2は、ノード20〜22がローカルに持つ記憶装置だけを有するが、ネットワーク1000を介して利用可能なリモートのコンピュータにおいて実行されるファイルシステムやデータベースを含むこともある。
ノード20〜22において動作しているタスク30〜32は、分散データストア2に記憶されているデータに対して、自ノードにある入出力管理部60〜62を介してアクセスする。入出力管理部60〜62は、データの格納先がどのノードのいずれの記憶装置(ディスクやメモリ)であるかに関わらず、タスク30〜32から分散データストア2のデータへのアクセスを透過的に利用可能とする機能を提供している。
例えば、ノード20にあるタスク30が、ノード20のメモリ40にもディスク50にもないデータセットX2の読み出しを要求したとする。その要求に基づき、ノード20の入出力管理部60は、ノード21の入出力管理部61またはノード22の入出力管理部62を介して、ノード21のメモリ41またはノード22のメモリ42に記憶されているデータセットX2を取得した後に、タスク30へデータセットX2のデータを提供する。すなわち、タスク30は、データセットX2が自ノード20に記憶されている場合と同じアクセス方法で、ノード21またはノード22上にあるデータセットX2にアクセスできる。さらに、この機能により、ノード20〜22が、処理に使用する全てのデータセットを、個別に持つ必要はなくなる。
なお、一般的に、タスク30からデータセットへアクセスする速度は、自ノード20のディスク50に当該データセットがある場合より、他のノード21〜22の各メモリ41〜42に当該データセットがある場合の方が、かなり速い。システム構成に依存するが、一般に、分散データストア2における保存場所別のデータセットへのアクセス速度は、不等号を使用すると次の関係となる。
(自ノードのメモリ)>(他ノードのオンメモリ型データストア)≫(自ノードのディスク)>(他ノードのディスク型データストア)
すなわち、自ノードのメモリへのアクセス速度が最も高速で、他ノードのディスク型データストアへのアクセス速度が最も低速である。
複数のジョブの連続実行の際に、処理に必要なデータセット類へのアクセス効率を向上するためには、このような分散データストア2の性質から、タスクからのディスクアクセスをできるだけ減らすことが効果的である。すなわち、アクセス効率を向上するには、処理に必要なデータセットのうち、できるだけ多数のデータセットを、オンメモリ型データストア3に記憶することが望ましい。
しかし、近年では、処理中に扱うデータ量が増大している。このため、半導体メモリ装置などで実現されるメモリ40〜42からなるオンメモリ型データストア3が、処理対象であるすべてのデータセットを格納しきれるとは限らない。一方、ハードディスク装置などで実現される各ノードのディスク50〜52は、一般に、オンメモリ型データストア3の10〜10000倍以上の記憶容量を備えているため、処理対象である全データを格納可能であることが多い。このため、一般に、オンメモリ型データストア3は、複数のジョブに共通して使用する可能性が高い、一部のデータセットを常時記憶する。そして、次のジョブへ切り替わる際に、分散並列バッチ処理サーバ10が、そのときのオンメモリ型データストア3におけるデータセットの配置状況に合わせて、処理を各ノード20〜22に割り当てる。
さらに、オンメモリ型データストア3では、常時記憶しておくデータセットの複製を、複数のノード20〜22のメモリ40〜42に保持することが、行われている。ここで、複数のノード20〜22に同一内容のデータセットを記憶しておくことの主な目的は、2点ある。
目的の1点目は、ファイルの破損やノードがダウンするなどの問題が発生した際に特定のノードのメモリに記憶されているデータセットへアクセスできなくなるという事態に備えて、データの保全に対する信頼性を増すためである。すなわち、上記のような問題が発生した場合、タスクが、ディスクに記憶された(代替の)データセットにアクセスするのではなく、他のノードのメモリに存在する、もう一つのデータセットにアクセス可能とするためである。これにより、問題の発生時においても、タスクは、オンメモリ型データストア3へのアクセスと比較して非常に低速なディスクへのアクセスを行わずに済む。したがって、タスクが処理対象データセットへアクセスする際に、アクセス性能が、極端に低下することを防止できる。
目的の2点目は、複数のタスクが同じデータを必要とするとき、各タスクが、複数のノードのメモリに分散配置した複数のデータセットにアクセスすることで、アクセス集中による性能の低下を防ぐためである。言い換えると、各タスクが、1つのデータセットにアクセスすることを防ぎ、アクセス集中を防止することである。
以下では、上記のような、同一内容のデータセットの複製を、オンメモリ型分散データストア3に含まれる複数のノード20〜22のメモリ40〜42に分散して保持するような管理方法を「多重度管理」と呼ぶ。また、以下では、多重度管理の対象となるデータセットを「多重度管理対象データセット」と呼ぶ。さらに、以下では、オンメモリ型分散データストア3に持つデータセットの複製の数を「多重度M」という指標で表す。例えば、オンメモリ型分散データストア3に同一のデータセットの複製が2つ存在する場合、多重度Mは、2である。
図4は、上述した分散並列バッチ処理サーバ10がノード20〜22上のタスク30〜32を用いた並列処理を開始した時点の、分散データストア2におけるデータセットの配置状態の一例を示す。図4において、2つのデータセットX1およびX2が、多重度管理対象データセットである。多重度Mは、2である。なお、本例では、多重度管理の簡易化のため、同じ多重度Mの値が、すべての多重度管理対象データセットに対して適用されている。
図4を参照すると、データセットX1は、ノード20のメモリ40とノード21のメモリ41に、合わせて2つが常時記憶されている。また、データセットX2は、ノード21のメモリ41とノード22のメモリ42に、合わせて2つが常時記憶されている。
多重度管理対象ではない(以下、「非管理対象」と言う)データセットであるデータセットY1〜Y4が、ノード20〜22のディスク50〜52に、それぞれ記憶されている。また、3つに分割した入力データセットA〜Cは、分散並列バッチ処理サーバ10が定めた割り当てに従って配置されている。すなわち、ディスク50、ディスク51、およびディスク52には、それぞれ入力データセットA、入力データセットB、および入力データセットCが、記憶されている。なお、本例では、入力データセットA〜Cは、非管理対象である。
各ノード20〜22で動作しているオペレーティングシステム(OS)が、非管理対象のデータセットに関するメモリへの読み込みを制御する。すなわち、OSは、タスク30〜32からのアクセス要求に応じて、オンメモリ型データストア3内における空いている記憶領域(すなわち、多重度管理対象データセットを格納するために占有されていない記憶領域)に、非管理対象のデータセットを適宜読み込む。
なお、OSによるメモリの制御方法としては、LRU(Least Recently Used)アルゴリズムが良く知られている。基本的に、LRUは、小容量で高速な記憶装置に新たなデータを読み込むときに空き容量が不足した場合に、空き容量を確保する。この場合、LRUは、高速な記憶装置にある中で未使用の時間が最も長いデータを、大容量で低速な記憶装置へ退避(移動)することによって、空き容量を確保する。なお、本例では、「小容量で高速な記憶装置」と「大容量で低速な記憶装置」とは、それぞれ「オンメモリ型データストア3」と「ディスク型データストア4」とに相当する。したがって、タスクの処理に要する非管理対象のデータセットが多い場合には、LRUが行うディスクへのデータ退避が多発することの結果として、タスクの処理性能が、低下することがある。
分散並列バッチ処理サーバ10は、新たなジョブを実施するにあたって、上記のような問題が発生する恐れがある場合、多重度Mを下げる(低減する、削減する)ことによって、オンメモリ型データストア3の空き領域を増やすための調整を行うことがある。その逆に、分散並列バッチ処理サーバ10は、オンメモリ型データストア3の空き領域に十分な余裕があると予想した場合、現行より多重度Mを上げる(増加する)ことによって、データ保全に関する信頼性を上げるための調整を行うことがある。
通常、分散並列バッチ処理サーバ10は、各ノード上のタスクの処理を実行する前の準備段階においては、上述したような多重度Mの変更を行うが、一旦タスクの処理を開始した後には、多重度Mの変更は行わない。
また、本出願に先立って存在する関連技術としては、例えば、以下の特許文献1がある。
すなわち、特許文献1は、長所と短所がそれぞれ異なる、いくつかのファイル複製方法のうちから、複製対象のファイルごとに該ファイルの各種特性(ファイルの格納場所、ファイルタイプ等)に適した複製方法を自動的に決定するメカニズムを開示する。
また、特許文献2は、分散システム環境において、バッチジョブ依頼サーバが、依頼対象であるバッチジョブの資源使用特性(各種資源の使用率)と、各ジョブ実行サーバから定期的に取得する資源負荷状況とから、当該バッチジョブの処理を依頼するサーバを決定する。
また、特許文献3は、ジョブの実行とデータの配置を管理する計算機が、ジョブを実行する際に、ジョブを実行する各計算機に配置された分散データのレコード数の比率に応じて、各計算機への複製の配置を決定する。そして、いずれかの計算機におけるジョブの実行に障害が発生した場合には、管理を実行する計算機が、障害が発生した計算機に配置された分散データの複製を持つ計算機に、ジョブの再実行を要求する。
特表2009−526312号公報 特開平10−334057号公報 特開2012−073975号公報
しかしながら、分散並列バッチ処理システムの運用にあたっては、多重度管理対象データセットの多重度Mを変更したいという要求が、ジョブの実行途中において、発生することがある。
例えば、ジョブを開始後、その処理がはかどらないことにより、ジョブが、利用者の期待する終了予定時刻に終わらない見込みとなることがある。上述したとおり、一般に、分散並列バッチ処理システムにおけるバッチ処理(ジョブ)は、予め定められたタイミングで処理を開始するように運用される。すなわち、ジョブは、次の処理を計画通りに開始できるように、予定時刻までに終了することも期待される。ジョブが遅延した際、その原因は、タスクの処理に要する非管理対象のデータセットの数やサイズが事前の予想より多いことが原因である可能性もある。その場合、遅延判明後に行う対策としては、オンメモリデータストア3の空き領域を増やすことが有効である。すなわち、分散並列バッチ処理システムは、ジョブの途中で多重度管理対象データセットの多重度Mを下げる。これによって、それ以降のジョブの処理速度を上げることができれば、ジョブが、当初の予想より早く終了できる可能性がある。
一方、ジョブを開始後、ジョブの処理が、予定よりかなり早く終わる見込みとなることもある。その場合、ジョブが早く終わることが判明した後に、多重度管理対象データセットの多重度Mを上げることによって、データ保全に関する信頼性を向上させれば、その後のジョブの実行が、さらに確実になる。
他に、ジョブ自身の進捗状況には関係なく、利用者が、ジョブを実行しているノードにおいて他の処理を行えるように急遽メモリの使用量を削減したいという場合もある。
このように、様々な要因によって、多重度Mを変更したいという要求が、ジョブの開始後に発生することがある。
しかし、利用者が、途中で多重度を変更する場合に、多重度管理対象データセットへのアクセス効率ができるだけ低下しないデータ配置を適切に選択することは困難である。
例えば、図4において、多重度Mを2から1に削減する方法は、以下の4通りある。具体的に言うと、第1の方法は、ノード20のデータセットX1とノード21のデータセットX2とを残す方法である。第2の方法は、ノード20のデータセット1とノード22のデータセットX2とを残す方法である。第3の方法は、ノード21のデータセットX1とノード23のデータセットX2とを残す方法である。第4の方法は、ノード21のデータセットX1とX2とを残す方法である。
ここで、例えば、データセットX1に最も多数回アクセスを行うタスクが動作するノードにおいて、利用者が当該ノードのメモリにあったデータセットX1を削除したと仮定する。この結果、当該タスクは、次にデータセットX1を参照する際、それまでは自ノードのメモリにアクセスしていたにもかかわらず、多重度Mの変更後に、他ノードのメモリにアクセスしなければならなくなる。すなわち、多重度Mを変更したために当該タスクの処理性能が大きく低下し、結果として、ジョブ全体が、終了予定時刻までに終了しなくなる恐れがある。このように、現状では、利用者は、上述した4通りの多重度削減方法のいずれが、多重度管理対象データセットへのアクセス効率の低下をできるだけ避け得る方法であるのか、を判断することができないという問題がある。
上述した特許文献1乃至3には、以上の問題を解決するための構成及び方法については、開示されていない。
本発明は、上述した問題点を解決できるデータセット多重度変更装置及び方法を提供することにある。すなわち、本発明の主たる目的は、ジョブの処理途中において多重度Mを変更する際、アクセス効率の低下をできるだけ避けるように、多重度管理対象データセットの配置を変更することができるデータセット多重度変更装置及び方法を提供することにある。
上記の目的を達成すべく、本発明の一形態であるデータセット多重度変更装置は、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報として、前記複数ノードが前記並列処理を行う際に前記データセットを参照する回数を表す、前記データセット別の予測アクセス回数情報を少なくとも含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報として算出し、さらに、ノード間のデータ転送速度に関する情報をさらに含む前記データセット利用関連情報に基づいて、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報として算出する優先度算出手段と、前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する処理であって、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える。
また、同目的を達成する本発明の一形態であるサーバは、上述した構成を備えるデータセット多重度変更装置を備え、複数ノードにおいて実行されるジョブの並列処理を制御する。
また、上記の同目的を達成する本発明の一形態であるデータセット多重度変更方法は、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報として、前記複数ノードが前記並列処理を行う際に前記データセットを参照する回数を表す、前記データセット別の予測アクセス回数情報を少なくとも含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報として算出し、さらに、ノード間のデータ転送速度に関する情報をさらに含む前記データセット利用関連情報に基づいて、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報として情報処理装置を用いて算出し、前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する処理であって、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する。
さらに、同目的は、上記の各構成を有するデータセット多重度変更装置、サーバ、並びに対応する方法を、それぞれコンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。

本発明によれば、ジョブの開始後に、多重度管理対象データセットへのアクセス効率ができるだけ高くなるように、そのデータセットの数(多重度M)を変更することが可能になる。
本発明の第1の実施形態におけるデータセット多重度変更装置を含む分散並列バッチ処理システムの構成を示すブロック図である。 本発明の第2の実施形態に適用される通信環境を示し、また関連技術としての分散並列バッチ処理システムにおける通信環境の一例を説明するための構成図である。 図2に示した構成を有する通信環境において、第2の実施形態に係る分散並列バッチ処理システムを実現する場合の構成を示すブロック図である。 本発明の第2の実施形態を説明するためのノードにおけるデータ配置の一例を示し、また関連技術としての分散並列バッチ処理システムにおける分散データストア内のデータ配置の一例を説明するための図である。 本発明の第2の実施形態におけるジョブ定義情報16の一例を示す図である。 本発明の第2の実施形態における入力データセットの一例を示す図である。 本発明の第2の実施形態における多重度管理対象である参照データセットX1の一例を示す図である。 本発明の第2の実施形態における多重度管理を行わない参照データセットY1の一例を示す図である。 本発明の第2の実施形態における分散並列バッチ処理システムのジョブ配備処理からジョブ実行処理までの動作を示すフローチャートである。 本発明の第2の実施形態におけるアプリケーション解析処理の詳細を示すフローチャートである。 本発明の第2の実施形態における分散並列バッチ処理システムの多重度変更の動作を示すフローチャートである。 本発明の第2の実施形態におけるアプリケーション解析により取得したデータセット別のアクセス回数を示す情報の一例を示す図である。 本発明の第2の実施形態における優先度情報18の一例を示す図である。 本発明の第2の実施形態における多重度変更後の分散データストアのデータ配置の一例を示す図である。 本発明の各実施形態、および、その変形例に係る分散並列バッチ処理システムに適用可能なコンピュータ(情報処理装置)の構成を例示する図である。
次に、本発明の実施形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態におけるデータセット多重度変更装置を含む分散並列処理システムの構成を示すブロック図である。図1を参照すると、分散並列処理システムは、データセット多重度変更装置300、および複数のノード320から構成される。
複数のノード320は、ジョブを分割した各処理を、タスクとして並列的に実行可能である。各ノード320は、タスクが処理中に参照するデータ類を含むデータセット322の一部または全部を、ジョブの開始前にメモリ(記憶領域)321に格納することができる。分散並列処理システムは、多重度Mという指標で定めた数のデータセット322の複製を、システムに含まれる複数のノード320のメモリ321に分散して格納する(多重度管理する)ことができる。すなわち、データセット322は、多重度管理対象のデータセットである。なお、以下の実施形態において、「データセットの数」とは、データセットの“数量(quantity)”と捉えることもできると共に、多重度Mという指標(パラメータ)と捉える観点からは“数値(numerical value)”と捉えることもできる。
なお、ジョブの分割方法、並びに、分割されたジョブを各ノードが並列的に実行する技術については、前述の関連技術で説明したとおり、現在では一般的な技術を採用することができる。したがって、この点に関する本実施形態における重複する説明は、省略する。
データセット多重度変更装置300は、優先度算出部301、および多重度管理部302を有する。
優先度算出部301は、データセット利用関連情報330を取得する。そして、優先度算出部301は、取得したデータセット利用関連情報330を用いて、各データセット322を適切な順番でノード320のメモリ321に格納するために必要な情報であって、データを格納するべきノードの指示順番を表す優先度情報311を算出する。
ここで、データセット利用関連情報330とは、多重度管理対象であるデータセット322に関連する情報の総称である。データセット利用関連情報330には、例えば、データセット322を対象とした参照、コピー作成、および転送等の操作に要する時間または性能に関連する情報が含まれる。また、データセット利用関連情報330は、ジョブの実行前にシステム外から与えられる設定に関する情報、またはジョブ処理内容に関連する解析を行うことで取得できる処理実行回数の情報を含んでもよい。また、データセット利用関連情報330は、ジョブ実行中に取得できるデータ転送速度の測定値の情報を含んでもよい。
データセット利用関連情報330の具体例としては、各ノード320で動作するタスクからデータセット322への予想アクセス回数、1つのノード320から他のノード320へデータセット322のデータを転送するときのデータ転送速度、あるいは、データセット322のファイルサイズなどが考えられる。データセット利用関連情報330は、ジョブの性質や動作環境に合わせた情報であって、ノード320で動作するタスクからデータセット322を参照する際のアクセス効率に与える影響の程度(度合い)を示す情報によって構成されてもよい。
優先度算出部301は、データセット322ごとに、以下の式(1)に示されるような関数fを用いて各ノード320における優先度情報311を算出する。
f(x1,x2,・・・,xn)=a1x1+a2x2+・・・+anxn −−−(1)
式(1)で、データセット利用関連情報330の種類の数は「n」とし、x1,x2,・・・,xnは、データセット利用関連情報330の種類ごとの値を表す。a1,a2,・・・,anは、データセット利用関連情報330の種類ごとの係数を表す。すなわち、優先度情報311を決定するための関数fは、データセット利用関連情報330の種類ごとの値とその種類ごとの係数との積の総和である。これにより、優先度算出部301は、1種以上のデータセット利用関連情報330を用いて優先度情報311を算出することができる。なお、優先度311を算出する算出式には、様々な形態があり、上述した例には限定されない。また、優先度算出部301は、算出式の結果の数値をそのまま優先度情報311として用いても良い。または、優先度算出部301は、数値の大きさの順番を示す値(数値が大きい順に、1、2、3・・・とするなど)に置き換えて、優先度情報311としてもよい。優先度情報311の数値が大きいほど(または小さいほど)、対応するノード320の優先度がより高い(より低い)ことを示す。
多重度管理部302は、各ノード320のメモリ321にどのデータセット322を格納しているかを示す情報を含むデータセット配置情報312を参照することができる。
また、多重度管理部302は、ジョブの開始後、利用者等からデータセット322の複製の数(多重度M)を変更する要求を受けた場合、優先度情報311とデータセット配置情報312とを用いて、多重度変更の操作対象とするノード320を決定する。なお、多重度管理部302は、多重度管理対象として複数のデータセット322がある場合、各データセット322について個別に以下の処理を行う。
具体的に説明すると、多重度Mの削減(低減)が要求された場合、多重度管理部302は、まず、データセット配置情報312を用いて、データセット322の複製が存在するノード320を把握する。次に、多重度管理部302は、データセットの複製が存在するノード320のうち、優先度情報311において最も優先度が低いノード320を、データセット322の複製を削除する対象として決定する。
一方、多重度の増加が要求された場合、多重度管理部302は、まず、データセット配置情報312を用いて、データセット322の複製を保持していないノード320を把握する。次に、多重度管理部302は、データセットの複製を保持していないノード320のうち、優先度情報311において最も優先度が高いノード320を、データセット322の複製を追加する対象として決定する。
最終的に、多重度管理部302は、多重度変更の対象として決定したノード320におけるメモリ321に対して、多重度変更の操作を行う。すなわち、多重度管理部302は、メモリ321に対して、データセット322の複製の削減または追加を実行する。
このようにして、本実施形態によれば、データセット多重度変更装置300は、ジョブの開始後に、多重度管理対象であるデータセット322へのアクセス効率ができるだけ高くなるように多重度を変更できる。その理由は、多重度管理部302が、優先度算出部301によってデータセット利用関連情報330を基に算出された、ノード320ごとの優先度情報311に基づいて、多重度変更の操作対象とするノード320を決定できるからである。
また、本実施形態によれば、データセット多重度変更装置300は、ジョブの開始後においても、利用者等から多重度の変更を要求された場合、速やかに多重度変更を実施することができるという効果もある。その理由は、優先度算出部301によって優先度情報311を予め算出するので、多重度管理部302が、変更要求を受けた際、優先度情報311を用いて、速やかに多重度変更の操作対象とするノード320を決定できるからである。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする第2の実施形態について、図2〜図14を参照して説明する。なお、本実施形態は、関連技術として説明した分散並列バッチ処理システム1を含む通信環境(図2、図4)を利用した例でもある。すなわち、本実施形態において、関連技術と共通する分散並列バッチ処理システムにおける前提要件、分散データストアの構造、タスクを用いたジョブの並列実行など、分散並列バッチ処理システムにおける一般的な構成部分については、関連技術と同様であると仮定する。
以下では、図2及び図4を利用しながら第2の実施形態に係る特徴的な部分を中心に説明し、関連技術として説明した分散並列バッチ処理システムにおける一般的な動作については、重複する詳細な説明を省略する。
図2は、本発明の第2の実施形態に係る分散並列バッチ処理システムにおける通信環境の一例を示す構成図である。図2を参照すると、本実施形態は、3つのノード20〜22および分散並列バッチ処理サーバ10を含む分散並列バッチ処理システム1と、マスタデータサーバ100と、クライアント500と、ネットワーク1000とから構成されている。ここで、ノード20〜22は、第1の実施形態における複数のノード320に対応する。
本実施形態における分散並列バッチ処理サーバ10、ノード20〜22、マスタデータサーバ100およびクライアント500は、それぞれプログラム制御により動作する一般的なコンピュータ(情報処理装置)によって構成されても良いし、専用のハードウェア回路で構成されても良い。なお、分散並列バッチ処理サーバ10をコンピュータで実現した場合のハードウェア構成例については、図15を参照して後述する。
分散並列バッチ処理サーバ10、ノード20〜22、マスタデータサーバ100、およびクライアント500は、インターネットや構内LAN(ローカルエリアネットワーク)等のネットワーク(通信ネットワーク)1000を介して通信可能である。
クライアント500は、ジョブの実行準備を求めるジョブ配備要求と、ジョブの実行開始を求めるジョブ実行要求とを、分散並列バッチ処理サーバ10に対して送信する。また、クライアント500は、分散並列バッチ処理システム1内でジョブの処理開始後、必要に応じて、多重度管理対象データセットの多重度Mの増加または削減を求める多重度変更要求を分散並列バッチ処理サーバ10に対して送信する。
第2の実施形態における分散並列バッチ処理サーバ10、ノード20〜22、およびマスタデータサーバ100の構成について、図3及び図4を参照して説明する。図3は、図2に示した構成を有する通信環境において、第2の実施形態に係る分散並列バッチ処理システムを実現する場合の特徴的な構成を示すブロック図である。図3及び図4を参照すると、3つのノード20〜22は、それぞれ、タスク30〜32と、メモリ(記憶領域)40〜42と、ディスク50〜52と、入出力管理部60〜62とを有する。
タスク30〜32は、ジョブ実行要求における実行対象であるジョブの処理が記述されたプログラムを並列的に実行する処理実体である。タスク30〜32の構造、および動作は、関連技術と同様であるため、詳細な説明を省略する。
メモリ40〜42は、後述するディスク50〜52より高速な半導体メモリ装置によって実現される。メモリ40〜42は、ジョブの実行に必要なデータセットを格納することができる。
ディスク50〜52は、メモリ40〜42より低速なディスク装置によって実現される。ディスク50〜52は、ジョブの実行に必要なデータセットを格納することができる。
入出力管理部60〜62は、各ノードのメモリ40〜42およびディスク50〜52に格納するデータの入出力を制御することができる。
メモリ40〜42、ディスク50〜52、および入出力管理部60〜62の構造と動作は、関連技術と同様である。すなわち、入出力管理部60〜62は、データの格納先がどのノードのいずれの記憶装置であるかに関わらず、タスク30〜32に対してデータの所在先を意識せずに利用可能なアクセス機能を実現することができる。また、関連技術において説明したように、ノード20〜22の記憶装置は、互いに統合管理されることにより、図4に示すような分散データストア2を構成することができる。したがって、本実施形態におけるオンメモリ型データストア3は、一例として、ノード20〜22のメモリ40〜42から構成される。また、本実施形態におけるディスク型データストア4は、一例として、ノード20〜22のディスク40〜42から構成される。
図3を参照すると、図2に示す通信環境を採用する本実施形態において、分散並列バッチ処理サーバ10は、優先度算出部11と、ジョブ制御部12と、分散データストア管理部13とディスク14とを含む。
なお、分散並列バッチ処理サーバ10は、第1の実施形態におけるデータセット多重度変更装置300に対応する(基本とする)。また、優先度算出部11は、第1の実施形態における優先度算出部301に対応する(基本とする)。さらに、分散データストア管理部13は、第1の実施形態における多重度管理部302に対応する(基本とする)。
ディスク14は、優先度算出部11と、分散データストア管理部13からアクセス可能である。ディスク14は、アプリケーションプログラム15と、ジョブ定義情報16と、データセット配置情報17と、優先度情報18とを格納することができる。分散並列バッチ処理サーバ10は、アプリケーションプログラム15、ジョブ定義情報16、およびデータセット配置情報17を、クライアント500がジョブ配備要求を送信するより前に、ディスク14に格納する。優先度情報18は、優先度算出部11によって生成される。
アプリケーションプログラム15は、ジョブの処理内容を記述したコンピュータ・プログラムである。
ジョブ定義情報16は、ジョブ実行に必要な各種定義を記述した情報である。具体的に、ジョブ定義情報16は、ジョブの処理内容であるアプリケーションプログラム15の名称を指定する情報と、ジョブの処理対象である入力データセット名と、ジョブ処理中に参照する参照データセット名とを含む。
データセット配置情報17は、各多重度管理対象データセットのオンメモリ型データストア3における配置を示す情報を含む。すなわち、データセット配置情報17は、多重度管理対象データセットのそれぞれが格納されているノード20〜22を示す情報である。なお、データセット配置情報17は、非管理対象であるデータセットの配置情報を含んでもよい。また、データセット配置情報17は、ディスク50〜52におけるデータセットの配置情報を含んでも良い。
優先度情報18は、各多重度管理対象データセットを、適切な順番でノード20〜22のメモリ40〜42に格納するために必要な情報であり、データを格納するべきノードの指定順番を表す情報である。
優先度算出部11は、最初、ジョブ定義情報16、アプリケーションプログラム15、および、マスタデータサーバ100(後述)から取得した入力データセットに関する情報を基に解析を行うことにより、データセット別の予測アクセス回数を表す情報(解析情報)を得る。本実施形態では、優先度算出部11が算出する解析情報の一例として、データセット別の予測アクセス回数とするが、優先度算出部11が算出する解析情報は、これに限定されない。データセット別の予測アクセス回数を表す情報(以下、「予測アクセス回数情報」と言う。)とは、タスク30〜32がジョブの処理を実行する際に、多重度管理対象データセットのそれぞれにアクセスする見込みの回数を示す情報である。
次に、優先度算出部11は、取得したデータセット別の予測アクセス回数情報を用いて、優先度情報18を算出する。算出された優先度情報18は、ディスク14に格納される。なお、データセット別の予測アクセス回数情報、優先度情報18は、それぞれ第1の実施形態におけるデータセット利用関連情報330、優先度情報311に対応する。
ジョブ制御部12は、クライアント500からの各種要求を受け付け、受信した要求に応じて、分散並列バッチ処理サーバ10およびノード20〜22の各部を制御する。
分散データストア管理部13は、分散データストア2(図4)が保持するデータセットに関する情報を統合的に管理する。データセットに関する情報とは、例えば、各データセットの名称や、格納場所を示す配置情報などがある。
また、分散データストア管理部13は、クライアント500からの多重度変更要求を受け付けたジョブ制御部12からの指示に応じて、多重度管理対象データセットの多重度Mを変更する。すなわち、分散データストア管理部13は、ディスク14に格納された優先度情報18およびデータセット配置情報17に基づいて、多重度管理対象データセットごとに、データの追加または削除を行う対象とするノード20〜22(ノード20〜22のうちのいずれか1つ以上)を決定する。そして、分散データストア管理部13は、決定したノード20〜22のメモリ40〜42に対し、各ノードの入出力管理部60を介して、各多重度管理対象データセットの追加または削除を行う。また、分散データストア管理部13は、多重度管理対象データセットの追加と削除に際して、データセット配置情報17を更新する。
図3を参照すると、マスタデータサーバ100は、データベース110と、マスタデータ管理部130とから構成される。
データベース110は、マスタデータセット120を格納することができる。
マスタデータセット120は、ジョブの処理対象である複数件の入力データを含む入力データセットと、処理中に参照するデータ類を含む参照データセットとを含む。
データベース110、およびマスタデータセット120の構造と内容とは、関連技術と同様であるので、重複する詳細な説明は、省略する。
マスタデータ管理部130は、分散並列バッチ処理サーバ10およびノード20〜22からの要求に応じて、マスタデータセット120に含まれるデータセットを提供することができる。また、マスタデータ管理部130は、分散並列バッチ処理サーバ10およびノード20〜22からの要求に応じて、マスタデータセット120に記憶されているデータセットに関する情報を提供することができる。その情報とは、データセットに含まれるデータ件数やデータサイズなどである。
次に、上述した構成を備える本実施形態に係る分散並列バッチ処理システムは、概略以下のように動作する。
すなわち、本実施形態の分散並列バッチ処理サーバ10におけるジョブ制御部12は、ジョブの実行手順のうち、分散並列バッチ処理サーバ10が実行する手順に相当する処理を実行する。一方、優先度算出部11は、ジョブの実行を開始する前の段階において、優先度情報18を算出し、ディスク14に格納する。ジョブの処理中にクライアント500から多重度変更が要求された場合、分散データストア管理部13が、ジョブ制御部12を介して当該要求を受ける。さらに、分散データストア管理部13は、その要求に対する応答結果として、ディスク14に格納された優先度情報18と、当該要求受付の時点でのデータセット配置情報17とを基に、多重度を変更する。
次に、図9を参照して、分散並列バッチ処理サーバ10において、優先度算出部11およびジョブ制御部12が行う、ジョブの配備(実行準備)からジョブの実行までの処理について詳細に説明する。図9は、本発明の第2の実施形態における分散並列バッチ処理システムのジョブ配備処理からジョブ実行処理までの動作を示すフローチャートである。
なお、上述したように、本実施形態における前提事項は、関連技術の分散並列バッチ処理システムと同様である。すなわち、ノード20〜22において、前に実行したジョブ処理の際に使用した入力データセットや参照データセットなどのファイルは、分散データストア2にそのまま保持されている。それに伴い、本実施形態の動作開始時点におけるデータセット配置情報17の内容は、その時の分散データストア2に保持されているデータセットの配置状況に合っていることを前提とする。
初めに、クライアント500は、分散並列バッチ処理サーバ10に、ジョブの配備要求を送信する(ステップS100)。ジョブの配備要求において、クライアント500は、ジョブの実行に必要な各種定義情報を含むジョブ定義情報16を指定する。図5は、本発明の第2の実施形態におけるジョブ定義情報16の一例である。
図5を参照すると、ジョブ定義情報16におけるレコードは、定義情報の種別を示す「キー」欄と、定義情報の内容を示す「値」欄から構成される。ここで、「キー」欄が「jobName」(以下、キー「jobName」のように表記する)であるレコードにおける「値」欄では、ジョブの処理内容を記述したアプリケーションプログラム15を示すアプリケーションプログラム名が指定される。本実施形態におけるアプリケーションプログラム名は「job1」である。キー「job1.inputData」であるレコードにおける「値」欄では、ジョブの処理対象である入力データセットの名称が指定される。本実施形態における入力データセットの名称は、「host1/port1/db1/input_table1」である。キー「job1.refData」であるレコードにおける「値」欄では、ジョブ処理中に参照する参照データセットの名称が指定される。本実施形態における参照データセットの名称は、「host1/port1/db1/ref_table1−X1」などの6つの文字列によって、6つの参照データセットの名称が記述されている。
なお、以降の説明において、例えば、データセット「host1/port1/db1/ref_table1−X1」は、末尾の2文字を用いて「データセットX1」と表記する。その他の参照データセットについても、同様の表記とする。すなわち、本実施形態における参照データセットは、データセットX1、X2、Y1、Y2、Y3、およびY4の6つである。
また、ジョブ定義情報16には、上記以外の情報を含んでもよい。例えば、本実施形態では、キー「job1.databaseAccess」であるレコードが、ジョブの処理結果の出力先を指定している。
また、本実施形態では、多重度管理対象データセットは、処理に使用するデータセット(入力データセットおよび参照データセット)のうち、データセットX1およびデータセットX2の2つであることとする。また、多重度Mは、2であることとする。すなわち、以下で説明する動作の開始時点において、データセットX1、およびX2は、ノード20〜22に搭載されたメモリ40〜42のいずれかに2つずつ分散して配置された状態である。具体的には、図4に示すように、データセットX1は、ノード20およびノード21に配置することとする。また、データセットX2は、ノード21およびノード22に配置することとする。
ここで、図6乃至図8を参照して、本実施形態におけるジョブの処理に使用するデータセット、および処理内容の具体例を説明する。図6は、本発明の第2の実施形態における入力データセットの一例である。図7は、本発明の第2の実施形態における多重度管理対象である参照データセットX1の一例である。図8は、本発明の第2の実施形態における多重度管理を行わない参照データセットY1の一例である。
本実施形態における入力データセットの内容は、ある店舗における取引(注文)を示す入力データである。図6を参照すると、入力データは、「取引番号」欄と、「商品番号」欄と、「個数」欄と、「日時」欄とを含む。「取引番号」欄は、当該店舗における各取引を一意に識別する番号を含む。「商品番号」欄は、注文された商品を示す番号を含む。「個数」欄は、注文された商品の数を含む。「日時」欄は、注文された日を含む。入力データセット「host1/port1/db1/input_table1」に含まれる入力データは、3000件あるとする。
また、本実施形態における参照データセットの内容は、商品に関する情報である商品データ(データセットXn、n=1〜2)と、商品価格における曜日別の割引率データ(データセットYn、n=1〜4)との2種ある。図7を参照すると、データセットX1に含まれる商品データは、「商品番号」欄と、「商品名」欄と、「価格」欄とを含む。「商品番号」欄は、商品を一意に識別する番号を含む。「商品名」欄は、商品の名称を含む。「価格」欄は、商品の単価を含む。なお、データセットX2は、データセットX1と同じ構造であるが、データセットX1とは異なる商品番号帯の商品データを含む。例えば、データセットX1は、1〜999番までの商品データを含む。一方、データセットX2は、1000番台の商品データを含む。
図8を参照すると、データセットY1に含まれる割引率データは、「曜日」欄と、「割引率」欄とを含む。「曜日」欄は、商品の割引を適用する曜日を示す。「割引率」欄は、商品に適用する割引率の%単位の値を示す。なお、データセットY2〜Y4は、データセットY1と同じ構造であるが、データセットY1とは異なる条件の取引に対して適用される割引率データを含む。例えば、データセットY1とY2とは、共に商品番号01〜999の商品の取引に適用される。一方、データセットY2は、その取引のうちの合計価格が10,000円以上の取引にだけ適用される。データセットY3〜Y4についても、同様に、割引率が適用される商品番号帯および合計価格の条件が異なるという違いがあることとする。
以下では、図6に示す入力データセットにおける1件目の入力データ(取引番号「00001」、商品番号「01」、個数「3」、日時「5月17日」)に対する処理を例として、本実施形態におけるジョブ名「job1」(すなわち、アプリケーションプログラム「job1」)の処理内容を説明する。ここで、「5月17日」は、日曜日とする。
アプリケーションプログラム「job1」を実行するタスク(以降、タスク30Jと呼ぶ)は、入力データセットから入力データを1件ずつ読み込み、読み込んだ各入力データの示す取引における売上高を出力する。より具体的には、タスク30Jは、商品番号「01」の商品データを含む参照データセットX1にアクセスすることにより、対応する価格「100」円を取得する。次に、タスク30Jは、取得した価格と、入力データにおける個数とに基づいて、合計価格(100円×3個=300円)を求める。次に、タスク30Jは、算出した合計価格「300」円に対応する割引率データを含む参照データセットY1にアクセスすることにより、日時「5月17日」(日曜日)に適用する割引率「3%」を取得する。最後に、タスク30Jは、取得した割引率「3%」を合計価格「300」円に適用した売上高「291」円を、処理結果として出力する。すなわち、アプリケーションプログラム「job1」の処理では、入力データ1つについて、データセットXnのいずれか1つと、データセットYnのいずれか1つとに1回ずつアクセスが発生する。このようなタスクを実行するための分散並列バッチ処理におけるジョブの配備処理について、以降、さらに詳しく説明する。
再び、図9を参照する動作の説明に戻る。
分散並列バッチ処理サーバ10においては、ジョブ制御部12が、ジョブの配備要求を受け付ける(ステップS101)。そして、ジョブ制御部12は、ジョブの配備要求において指定されたジョブ定義情報16から、入力データセットの名称を得る。具体的には、ジョブ制御部12は、ジョブ定義情報16(図5)における、キー「job1.inputData」に対応する「値」欄に格納された文字列「host1/port1/db1/input_table1」を、入力データセットの名称として取得する。
次に、ジョブ制御部12は、指定された入力データセットをノード20〜22の数に合わせて3つの入力データセットA〜Cに分割する(ステップS102)。入力データセットの分割方法は、ここでは、一例として、入力データセットに含まれる入力データの件数を基に分割する方法とする。より具体的には、ジョブ制御部12は、まず、マスタデータサーバ100におけるマスタデータ管理部130に対して、入力データセット「host1/port1/db1/input_table1」に含まれる総データ件数を要求し、その応答として当該データ件数(3000件)を取得する。そして、ジョブ制御部12は、入力データ(3000件)を3分割することにより、それぞれ1000件ずつの入力データを含む入力データセットA〜Cとする。
次に、ジョブ制御部12は、3つのノード20〜22に対して、分割した入力データセットA〜Cを1つずつ、各ノードの処理対象として割り当てる(指定する)。そして、ジョブ制御部12は、3つのノード20〜22に対して、タスクの起動を指示する(ステップS103)。ジョブ制御部12は、関連技術で説明したジョブの実行手順と同様に、分散データストア3に既に配置されているデータセットをできるだけ生かすように、分割した入力データセットA〜Cを割り当てる。より具体的には、ジョブ制御部12は、ジョブ定義情報16から得られる参照データセットの名称や、データセット配置情報17または分散データストア管理部13から得られるデータセットの配置情報を基に、入力データセットA〜Cを割り当てるノードを決定する。ここでは、ジョブ制御部12は、入力データセットAをノード20に、入力データセットBをノード21に、入力データセットCをノード22に、それぞれ割り当てたとする。
タスクの起動を指示されたノード20〜22は、それぞれのノード上でタスク30〜32を起動する(ステップS106)。
その後、タスク30〜32は、入出力管理部60を介して、マスタデータサーバ100から、不足するデータセットを読み込む(ステップS107)。すなわち、タスク30〜32は、分散データストア3内にまだ読み込まれていない参照データセットおよび入力データセットA〜Cを、マスタデータサーバ100に接続されるデータベース110から取得する。タスク30〜32は、必要なデータセットの読み込みが終了した後、ジョブ開始の指示があるまで待機する。
ステップS107が終了した時点における、分散データストア2内のデータセットの配置状態は、図4の通りである。すなわち、本実施形態におけるジョブ実行開始前の分散データストア2の状態は、関連技術におけるそれと同じである。
一方、分散並列バッチ処理サーバ10においては、ジョブ制御部12がステップS103に記載した処理を実行した後、優先度算出部11が、アプリケーション解析を行う(ステップS104)。
本実施形態におけるアプリケーション解析処理は、第1の実施形態において、優先度算出部301がデータセット利用関連情報330を取得する処理に相当する。ここで、図10を参照して、優先度算出部11のアプリケーション解析処理(ステップS104)の詳細を説明する。図10は、本発明の第2の実施形態におけるアプリケーション解析処理の詳細を示すフローチャートである。
まず、優先度算出部11は、ジョブ定義情報16からアプリケーションプログラム名、入力データセットの名称、および参照データセットの名称を取得する。また、優先度算出部11は、さらに、ジョブ制御部12から各ノード20〜22に割り当てた入力データセットA〜Cに関する情報を取得する。そして、優先度算出部11は、取得した情報を基に、アプリケーションプログラム名で指定されるアプリケーションプログラム15(アプリケーションプログラム「job1」)が、入力データセットに対してどのような処理を行うのかを解析する。
本実施形態では、一例として、優先度算出部11は、アプリケーションプログラム15における入力データセットに対する処理を行う箇所を解析し、その処理中に実施される各多重度管理対象データセットへのアクセスの回数を予測する。すなわち、優先度算出部11は、アプリケーション解析の結果として、多重度管理対象データセット別の予測アクセス回数情報(以下、「データセット別の予想アクセス回数情報」と言う。)を取得(算出)する。「データセット別の予測アクセス回数情報」は、アプリケーションプログラム15の実行中に各データセットへのアクセスを必要とする程度(必要性の度合い)を示しているので、上述したとおり、第1の実施形態におけるデータセット利用関連情報330に対応する。
なお、解析に際し、優先度算出部11は、マスタデータ管理部130からアプリケーションプログラム15の処理において利用されるデータセット(入力データセットおよび参照データセット)に関する情報を取得して、その情報を解析に使用してもよい。
より具体的には、優先度算出部11は、アプリケーションプログラム15を解析することにより、各入力データにおける「商品番号」欄に対応する商品データを含むデータセットXnに対して、各1回のアクセスが発生することを突き止める(ステップS200)。次に、優先度算出部11は、マスタデータ管理部130から、入力データセットAについて、「商品番号」欄が1〜999番である入力データの件数を取得する。具体的に、優先度算出部11は、マスタデータ管理部130に対し、入力データセットAの情報を要求する(ステップS201)。次にマスタデータ管理部130は、その要求に基づき、入力データセットAの情報を検索する(ステップS202)。そして、マスタデータ管理部130は、検索した入力データセットAを優先度算出部11に送信する(ステップS203)。優先度算出部11は、取得した入力データセットAのデータの総件数(1000件)を、入力データセットAの処理(すなわち、入力データセットAが割り当てられたノード20による処理)におけるデータセットX1への予想アクセス回数とする。さらに、優先度算出部11は、入力データセットAのデータの総件数(1000件)から、データセットX1への予想アクセス回数(1000件)を引いた件数(0件)を、データセットX2への予想アクセス回数とする(ステップS204)。
同様に、優先度算出部11は、入力データセットBおよび入力データセットC(すなわち、ノード21およびノード22)についてもデータセットXnへの予想アクセス回数を割り出す。
なお、本実施形態では、優先度算出部11は、データセットXnに対応する商品番号の範囲、および多重度管理対象データセットが、データセットX1およびデータセットX2の2つであることなどは、予め知らされていることを前提とする。このようなアプリケーション解析の結果の一例を図12に示す。図12の詳細は、後述する)。
再び、図9を参照する動作の説明に戻る。
優先度算出部11は、アプリケーション解析により取得した「データセット別の予測アクセス回数情報」を基に、多重度管理対象データセットごとの優先度情報18を算出する(ステップS105)。本実施形態における各データセットごとの優先度情報は、以下の優先度算出式(式(2))で算出される結果の値(以下、「仮優先度」と言う。)が大きい順に、仮優先度に対応するノードへ高い優先度を与える方法で決定する。
f(x)=a1x1 −−−(2)
ここで、データセット利用関連情報330の種類ごとの値である「x1」は、「データセット別の予測アクセス回数」である。また、データセット利用関連情報330の種類ごとの係数である「a1」は、「1」である。すなわち、本実施形態では、優先度算出部11は、データセット別の予測アクセス回数が大きい順に高い優先度を与える。
図12を参照して、具体的な優先度の算出処理を説明する。図12は、本発明の第2の実施形態におけるアプリケーション解析により取得したデータセット別の予測アクセス回数を示す情報の一例である。
まず、優先度算出部11は、データセットX1に関して、各ノード20〜22に対する仮優先度を求める。図12を参照すると、データセットX1に関する仮優先度は、ノード20〜22に対して、順に、1000、500、200である。次に、優先度算出部11は、仮優先度の値が最も大きいノードから順に1、2、3・・・のように、優先度を与える。すなわち、データセットX1に関する優先度は、ノード20〜22に対して、順に、「1」、「2」、「3」である。同様に、優先度算出部11は、データセットX2についても、各ノード20〜22に対する優先度を算出する。データセットX2に関する優先度は、ノード20〜22に対して、順に、「3」、「2」、「1」である。
優先度算出部11は、算出した各多重度管理対象データセットに関する優先度の情報を優先度情報18としてディスク14に格納する。図13は、本発明の第2の実施形態における優先度情報18の一例である。
以上で、分散並列バッチ処理サーバ10におけるジョブ配備処理は、完了である。ここで、ジョブ制御部12は、ジョブ配備処理の完了をクライアント500に通知しても良い。
次に、クライアント500は、ジョブ配備処理の終了通知を受信した後、または、ジョブ配備処理要求後に十分な時間を空けて、分散並列バッチ処理サーバ10に、ジョブ配備要求において対象としたジョブの実行要求を送信する(ステップS110)。
分散並列バッチ処理サーバ10においては、ジョブ制御部12が、ジョブの実行要求を受け付ける(ステップS111)。そして、ジョブ制御部12は、ノード20〜22において待機しているタスク30〜32に対し、ジョブ開始を指示する(ステップS112)。
ジョブ開始を指示されたタスク30〜32は、ジョブの処理を開始する(ステップS113)。
以上が、分散並列バッチ処理サーバ10におけるジョブの配備(実行準備)からジョブの実行までの処理である。
次に、図11を参照して、データセットの多重度変更処理について詳細に説明する。データセットの多重度変更処理は、分散並列バッチ処理サーバ10においてジョブ制御部12および分散データストア管理部13が行う。図11は、本発明の第2の実施形態における分散並列バッチ処理システムの多重度変更の動作を示すフローチャートである。
なお、ステップS107で説明した通り、この時点におけるデータセット配置情報17の内容は、図4に示すオンメモリ型データストア3内のデータセットX1およびデータセットX2の配置に合致している。すなわち、データセットX1は、ノード20およびノード21にある。また、データセットX2は、ノード21およびノード22にある。また、多重度Mは、「2」である。ただし、この時点における非管理対象である参照データセットY1〜Y4および入力データセットA〜Cの配置に関しては、図4と異なる可能性がある。すなわち、非管理対象であるデータセット類は、タスク30〜32の処理に応じてオンメモリ型データストア3内に読み込まれている可能性がある。
まず、分散並列バッチ処理システムにおいて、ジョブの処理が継続している間のあるタイミングにおいて、クライアント500は、多重度管理対象データセットの多重度を変更することを決定したとき、分散並列バッチ処理サーバ10に、多重度変更要求を送信する(ステップS300)。クライアント500は、多重度変更要求において、多重度Mの変更内容を指定する。
ここでは、まず、クライアント500が、多重度1つの削減を指示した場合の動作を説明する。多重度の増加を指示する場合の動作は、削減動作の説明後に説明する。多重度Mの変更内容の指定方法としては、変更後の多重度の数値を指定するなど、他にも方法がある。
なお、クライアント500が多重度管理対象データセットの多重度変更を決定する方法は、様々考えられる。例えば、バッチ処理の利用者、または、バッチ処理の進捗状況の管理を行う外部機能(図示せず)が、当該バッチ処理の進捗の遅れ(前倒し)を検出した場合に、クライアント500を介して多重度を削減(増加)するような変更要求を送信してもよい。
多重度変更要求を受信した分散並列バッチ処理サーバ10においては、分散データストア管理部13が、ジョブ制御部12を介して多重度変更要求を受け付ける(ステップS301)。
次に、分散データストア管理部13は、優先度算出部11がステップS105(図9)で算出した優先度情報18と、データセット配置情報17とを用いて、多重度管理対象データセットごとに、配置を変更する対象とするノード20〜22を決定する(ステップS302)。
多重度変更要求において多重度Mの削減が指示された場合、分散データストア管理部13は、多重度管理対象データセットが現在格納されているノードのうち、より優先度が低いノードを、配置変更(削除)対象のノードとする。より具体的には、分散データストア管理部13は、まず、データセット配置情報17を基に、データセットX1がノード20およびノード21にあることを認識する。次に、分散データストア管理部13は、優先度情報18(図13)を基に、データセットX1に関する優先度においては、ノード21(優先度は「2」)の方が、ノード20(優先度は「1」)よりも優先度が低いことを認識する。その結果、分散データストア管理部13は、ノード21をデータセットX1に関する変更(削除)対象として決定する。同様の方法で、分散データストア管理部13は、ノード21をデータセットX2に関する変更(削除)対象として決定する。
次に、分散データストア管理部13は、多重度管理対象データセットごとに、変更対象であるノード20〜22の入出力管理部60〜62に対し、特定の多重度管理対象データセットの配置変更(追加、または、削除)を指示する(ステップS303)。より具体的には、分散データストア管理部13は、ノード21の入出力管理部61に対して、データセットX1の削除を指示する。また同様に、分散データストア管理部13は、ノード21の入出力管理部61に対して、データセットX2の削除を指示する。
データセットの配置変更を指示されたノード20〜22においては、入出力管理部60〜62が、それぞれのノードにおけるメモリ40〜42に対して、指示内容に応じた多重度管理対象データセットの配置変更を実施する(ステップS310)。
すなわち、指示内容が多重度管理対象データセットの削除である場合は、入出力管理部60〜62は、指定された多重度管理対象データセットを削除する(ステップS311)。具体的には、ノード21の入出力管理部61は、データセットX1の削除指示に応じて、メモリ41からデータセットX1を削除する。また、入出力管理部61は、データセットX2の削除指示に応じて、メモリ41からデータセットX2を削除する。
ステップS311が終了した時点における分散データストア2内のデータセットの配置状態は、図14の通りである。図14は、本発明の第2の実施形態における多重度変更後の分散データストアのデータ配置の一例を示す図である。図14を参照すると、多重度管理対象データセットであるデータセットX1、およびデータセットX2は、ノード20およびノード22にそれぞれ一つずつ格納されている。すなわち、多重度変更要求(削減)に応じて、多重度Mは、「2」から「1」に削減されている。なお、非管理対象である参照データセットY1〜Y4および入力データセットA〜Cの配置は、図14と異なる可能性がある。
一方、分散並列バッチ処理サーバ10においては、分散データストア管理部13は、ステップS303に記載した処理を実行した後、入出力管理部60〜62に対して指示したデータセットの配置変更を反映するように、データセット配置情報17を更新する(ステップS304)。すなわち、分散データストア管理部13は、図14に示すオンメモリ型データストア3の内のデータセットX1およびデータセットX2の配置に合致するように、データセット配置情報17を更新する。
このようにして、分散並列バッチ処理サーバ10におけるジョブ制御部12および分散データストア管理部13は、クライアント500からの多重度変更要求(削減)に応じて、多重度Mを削減する。
次に、ステップS300において、クライアント500が、多重度Mを「1」から「2」に増加する場合を例として、以下に、多重度1つの増加を指示した場合の動作を説明する。このときのデータセット配置情報17、およびオンメモリ型データストア3の状態は、図14に対応していることを前提とする。
多重度変更要求を受信した分散並列バッチ処理サーバ10においては、分散データストア管理部13が、ジョブ制御部12を介して多重度変更要求を受け付ける(ステップS301)。
次に、分散データストア管理部13は、優先度算出部11が算出しておいた優先度情報18と、データセット配置情報17とを用いて、多重度管理対象データセットごとに、配置を変更する対象とするノード20〜22を決定する(ステップS302)。
多重度変更要求において多重度Mの追加が指示された場合、分散データストア管理部13は、多重度管理対象データセットが現在格納されていないノードのうち、より優先度が高いノードを、配置変更(追加)対象のノードとする。より具体的には、分散データストア管理部13は、まず、データセット配置情報17を基に、データセットX1がノード21およびノード22には格納されていないことを認識する。次に、分散データストア管理部13は、優先度情報18(図13)を基に、データセットX1に関する優先度においては、ノード21(優先度は「2」)の方がノード22(優先度は「3」)よりも優先度が高いことを認識する。その結果、分散データストア管理部13は、ノード21をデータセットX1に関する変更(追加)対象として決定する。同様の方法で、分散データストア管理部13は、ノード21をデータセットX2に関する変更(追加)対象として決定する。
次に、分散データストア管理部13は、多重度管理対象データセットごとに、変更対象であるノード20〜22の入出力管理部60〜62に対し、特定の多重度管理対象データセットの配置変更(追加、または、削除)を指示する(ステップS303)。より具体的には、分散データストア管理部13は、ノード21の入出力管理部61に対して、データセットX1の追加を指示する。また同様に、分散データストア管理部13は、ノード21の入出力管理部61に対して、データセットX2の追加を指示する。
データセットの配置変更を指示されたノード20〜22においては、入出力管理部60〜62が、それぞれのノードにおけるメモリ40〜42に対して、指示内容に応じた多重度管理対象データセットの配置変更を実施する(ステップS310)。
すなわち、指示内容が多重度管理対象データセットの追加である場合は、入出力管理部60〜62は、指定された多重度管理対象データセットを他のノードにあるメモリ40〜42などから読み込み、そのコピーを自ノードのメモリ40〜42に追加する(ステップS312)。具体的には、ノード21の入出力管理部61は、データセットX1の追加指示に応じて、メモリ40からメモリ41へデータセットX1をコピーする。また、入出力管理部61は、データセットX2の追加指示に応じて、メモリ42からメモリ41へデータセットX2をコピーする。
ステップS312が終了した時点における分散データストア2内のデータセットの配置状態は、図4の通りである。上述したとおり、図4を参照すると、データセットX1は、ノード20およびノード21にある。また、データセットX2は、ノード21およびノード22にある。すなわち、多重度変更要求(増加)に応じて、多重度Mは、「1」から「2」に増加されている。なお、非管理対象である参照データセットY1〜Y4および入力データセットA〜Cの配置は、図4と異なる可能性がある。
一方、分散並列バッチ処理サーバ10においては、分散データストア管理部13は、ステップS303に記載した処理を実行した後、入出力管理部60〜62に対して指示したデータセットの配置変更を反映するように、データセット配置情報17を更新する(ステップS304)。これは、多重度変更要求(削除)の場合と同様である。
このようにして、分散並列バッチ処理サーバ10におけるジョブ制御部12および分散データストア管理部13は、クライアント500からの多重度変更要求(増加)に応じて、多重度Mを増加する。
以上で、多重度Mの削減、および増加の場合における多重度変更処理の説明を終了する。
ここで、本実施形態の効果を示すため、図4において多重度Mを2から1に削減する4通りの方法を例として、各削減方法における多重度管理対象データセットへのアクセス性能への影響を比較する。これら4通りの方法は、関連技術でも説明した削減方法である。
まず、図4において、多重度Mを2から1に削減する方法は、以下の4通りある。具体的に言うと、第1の方法は、ノード20のデータセットX1とノード21のデータセットX2とを残す方法である。第2の方法は、ノード20のデータセット1とノード22のデータセットX2とを残す方法である。第3の方法は、ノード21のデータセットX1とノード23のデータセットX2とを残す方法である。そして、第4の方法は、ノード21のデータセットX1とX2とを残す方法である。
本実施形態において、多重度Mを削減する際に実施した削減方法は、第2の方法である。
これら4つの削減方法に関して、各多重度管理対象データセットへのアクセス時間の合計を比較する。選択した削減方法のアクセス性能への影響が最も大きく現れる事例として、多重度変更(削減)が、ジョブ実行後すぐに実行されたことを前提とする。
多重度管理対象データセットへのアクセス時間の合計は、全ノード20〜22の処理中におけるデータセットX1およびデータセットX2に対するアクセス時間を足した値とする。一つのノードにおけるジョブ処理中に特定のデータセットへアクセスする時間を示すデータセットへのアクセス時間は、以下の式(3)で計算する。
(データセットへのアクセス時間)=(アクセス速度)×(アクセス回数) −−−(3)
ここでは、自ノードのメモリにあるデータセットにアクセスする場合のアクセス速度を「1」として、他のノードへのアクセス速度は、「5」であることを前提とする。これは、一般に、データセットへのアクセス速度は、(自ノードのメモリ)>(他ノードのオンメモリ型データストア)の順に高速であるからである。また、アクセス回数は、図12に示すデータセット別の予測アクセス回数情報を使用する。
多重度管理対象データセットへのアクセス時間の合計は、システム内の全ノードからの多重度管理対象データセットに対するアクセスに要する時間の合計である。したがって、アクセス時間の合計の数値が小さい方が、アクセスに要する時間が少なくて済む(効率が良い)ことを表す。
まず、前述の第1の方法に関して、各多重度管理対象データセットへのアクセス時間の合計を計算する。図12を参照すると、ノード20のタスク30(以下、単に「ノード20」のように記述する。)は、データセットX1に1000回アクセスするが、データセットX2にはアクセスしない。したがって、第1の方法において、ノード20は、自ノード20のメモリ40(以下、単に「ノード20」のように記述する。)にあるデータセットX1に1000回アクセスする。ノード20における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
[ノード20のアクセス時間](1×1000)=1000
である。
ノード21は、データセットX1に500回、およびデータセットX2に500回アクセスする。第1の方法では、ノード21にはデータセットX1がないので、ノード21は、他のノード(すなわちノード20)にあるデータセットX1にアクセスする。したがって、ノード21における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
[ノード21のアクセス時間](5×500)+(1×500)=3000
である。
同様に、ノード22における多重度管理対象データセットへのアクセス時間は、以下の通りである。すなわち、
[ノード22のアクセス時間](5×200)+(5×800)=5000
である。
第1の方法に関する各多重度管理対象データセットへのアクセス時間の合計(以下、単に「第1の方法におけるアクセス合計時間」のように記述する。)は、ノード20〜22のアクセス時間を合計した結果、以下の通りとなる。すなわち、
[アクセス合計時間]1000+3000+5000=9000
である。
次に、第2〜4の方法に関しても、各多重度管理対象データセットへのアクセス合計時間を計算する。計算方法は上記と同様であるので、以下には、計算過程を示す式のみ記述する。
以下は、前述の第2の方法におけるアクセス合計時間の計算式である。すなわち、
[ノード20のアクセス時間](1×1000)=1000
[ノード21のアクセス時間](5×500)+(5×500)=5000
[ノード22のアクセス時間](5×200)+(1×800)=1800
である。よって、 [アクセス合計時間]1000+5000+1800=7800
である。
以下は、前述の第3の方法におけるアクセス合計時間の計算式である。すなわち、
[ノード20のアクセス時間](5×1000)=5000
[ノード21のアクセス時間](1×500)+(5×500)=3000
[ノード22のアクセス時間](5×200)+(1×800)=1800
である。よって、[アクセス合計時間]5000+3000+18000=9800
である。
以下は、前述の第4の方法におけるアクセス合計時間の計算式である。すなわち、
[ノード20のアクセス時間](5×1000)=5000
[ノード21のアクセス時間](1×500)+(1×500)=1000
[ノード22のアクセス時間](5×200)+(5×800)=5000
である。よって、[アクセス合計時間]5000+1000+5000=11000
である。
上述した4通りの削減方法におけるアクセス合計時間の数値を比較すると、最も少ないアクセス合計時間であるのは、第2の方法(本実施形態において実施した削減方法)である。すなわち、本実施形態によれば、ジョブの処理途中において多重度Mを変更する際、多重度管理対象データセットへのアクセス効率の低下をできるだけ避け得る当該データセットの配置となるように、多重度Mを変更することができる。
その理由は、優先度算出部11が、多重度管理対象データセットへのアクセス効率に与える影響の程度を示す情報であるデータセット利用関連情報に基づいて、優先度情報18を算出するからである。さらに、分散データストア管理部13が、当該優先度情報18に基づいて、多重度管理対象データセットごとに多重度Mの変更対象とするノードを選択するからである。具体的には、優先度算出部11が、多重度管理対象データセットへのアクセスの必要性の度合いを示す情報であるアクセス予測回数に基づいて、優先度情報18を算出する。さらに、分散データストア管理部13が、当該優先度情報18に基づいて、多重度管理対象データセットごとに配置を変更する対象とするノードを選択することができるからである。
また、本実施形態によれば、ジョブの処理途中における多重度Mの変更を任意のタイミングで迅速に行うことができる。その理由は、分散データストア管理部13が、あらかじめ算出しておいた優先度情報18を基に、多重度管理対象データセットごとに多重度Mの変更対象とするノードを判定するので、変更対象ノードの選定を迅速に行うことができるからである。これにより、分散データストア管理部13は、例えば、ジョブ処理を連続実行する場合に、前のジョブのデータセットの配置をそのまま利用することによりジョブ実行準備期間を短縮する。さらに、分散データストア管理部13は、その後、ジョブの進捗に問題が出た場合だけ、多重度Mを変更するによって進捗の調整を図る、というような運用が容易になることが期待できる。
本実施形態では、ジョブ制御部12がノードへタスクを割り当てる処理(ステップS103)を実施後に、優先度算出部11がアプリケーション解析処理(ステップS104)と、優先度算出処理(ステップS105)とを実行した。これらの処理順は変更しても良い。例えば、ステップS102の後、優先度算出部11がアプリケーション解析処理(ステップS104)と、優先度算出処理(ステップS105)とを先に行う。その後、ジョブ制御部12が、算出された優先度情報18を参考にして、タスクのノードへの割り当て処理(ステップS103)を行うようにしても良い。
この場合、優先度算出部11は、アプリケーション解析処理、および優先度算出処理において、ノード20〜22を対象としてアクセス予測回数や優先度情報を算出するのではなく、入力データセットA〜Cを処理するタスクA〜Cを仮の算出対象として、これらの算出処理を行う。そして、最後のタスクのノードへの割り当て処理の際に、ジョブ制御部12は、仮のタスクA〜Cを、入力データセットA〜Cと共にノード20〜22へ割り当てる。
また、優先度算出部11が優先度情報18を算出するタイミングは、クライアントによる多重度変更要求が送信される前のいつでも良い。さらに、優先度算出部11は、ジョブの処理実行中など、任意のタイミングで優先度情報18を更新しても良い。
また、分散並列バッチ処理サーバ10における各機能部、およびディスク14に格納した各種データ類は、必ずしもノード20〜22やマスタデータサーバ100と異なる情報処理装置に置く必要はない。さらに、分散並列バッチ処理サーバ10における各機能部、およびディスク14に格納した各データは、必要な相互通信や情報の共有が適宜可能であれば、単一の情報処理装置に置く必要はない。
(第2の実施形態の変形例)
なお、本実施形態の変形例としては以下のようなものが考えられる。
例えば、本実施形態では、バッチ処理は1つのジョブで構成されることを前提としていたが、本実施形態は、バッチ処理を複数のジョブから構成されるとした場合にも適用することができる。この変形例は、ジョブが複数ある場合(すなわち、アプリケーションプログラム15が複数ある場合)を想定している。この場合への本実施形態を適用する方法の一つには、バッチ処理に含まれるすべてのジョブを対象にして、一つの優先度情報18を算出する方法が考えられる。しかし、各ジョブに含まれる処理内容の違いが大きい場合、係る優先度情報18は、多くのジョブに対して適合していない可能性がある。したがって、多重度Mを変更する際、係る優先度情報18に基づいて決定した多重度管理対象データセットの配置では、処理効率が低下する恐れがある。
そこで、複数のジョブを連続実行するバッチ処理に対しては、分散並列バッチ処理サーバ10は、優先度情報18を複数設けても良い。すなわち、優先度算出部11は、ステップS104において、複数のジョブに対応する各アプリケーションプログラム15を対象にアプリケーション解析を行う。その結果、優先度算出部11は、アプリケーションプログラム15ごとに異なる優先度情報18(以降、「ジョブごとの優先度情報18」と記述する)を算出する。そして、優先度算出部11は、ディスク14に、ジョブごとの優先度情報18を保持しておく。ジョブの実行開始後、ジョブ制御部12は、クライアント500から多重度変更要求を受信した際には、多重度変更要求の情報と共に、その時点で実行中のジョブの情報も、分散データストア管理部13に提供する。分散データストア管理部13は、実行中のジョブに対応する「ジョブごとの優先度情報18」に基づいて、多重度Mの変更対象とするノード20〜22を決定する(ステップS302)。
このようにして、分散並列バッチ処理サーバ10は、複数のジョブを連続実行するバッチ処理に関して、優先度情報18をジョブごとに複数持つことにより、バッチ処理を構成する各ジョブに対しても本実施形態と同様の効果をもたらすことができる。
また、他の変形例として、多重度Mの「削減」と「増加」との多重度変更の種類によって、異なる優先度情報18を使い分けることができる。例えば、多重度Mが増加する場合、ノード20〜22は、指定された多重度管理対象データセットを他のノードにあるメモリ40〜42などから読み込み、そのコピーを自ノードのメモリ40〜42を追加する(ステップS312)。
すなわち、多重度Mの増加が実現するまでには、ノード20〜22において多重度管理対象データセットの転写(コピー)が完了するまでの時間が必要である。したがって、分散データストア管理部13が、特にデータ転送速度が遅いノードに対して、多重度管理対象データセットの追加を指示した場合、他のノードへ追加を指示した場合に比べて、多重度Mの増加処理に時間が掛かる恐れがある。そこで、優先度算出部11は、多重度管理対象データセットごとの優先度情報を算出する処理(ステップS105)の際に、各ノード間のデータ転送速度を、優先度算出式における二つ目のデータセット利用関連情報330として用いてもよい。
なお、ステップS105の前に、優先度算出部11は、各ノード間のデータ転送速度の情報を、あらかじめディスク14に格納しておいたファイルやシステム外部などから取得することとする。このときの優先度算出式は、以下に示す式(4)の通りである。すなわち、
f(x)=a1x1+a2x2 −−−(4)。
ここで、「x1」は、本実施形態と同様、「データセット別の予測アクセス回数」である。また、「x2」は、「算出対象のノードと他のノードとの間のデータ転送速度に基づく数値」を示す。また、データセット利用関連情報330の種類ごとの係数である「a1」および「a2」は、システムの状況に応じて、「データセット別の予想アクセス回数」と「算出対象のノードと他のノードとの間のデータ転送速度に基づく数値」との重み付けに適した値を採用する。優先度算出部11が、このような2つのデータセット利用関連情報330に基づいて算出した第2の優先度情報18を用いることにより分散データストア管理部13は、コピーに要する時間が余計に掛かるノードの優先度を下げることができる。その結果として、分散データストア管理部13は、多重度Mの増加を早く完了する配置を選択することが可能になる。
ただし、本変形例において、多重度Mを削減させる場合、分散データストア管理部13からデータセットの配置変更指示を受けたノードは、指定された多重度管理対象データセットを削除する(ステップS311)が、他のノードにあるデータセットを参照しない。このため、ノード間のデータ転送速度は、一般に、多重度Mの削減完了までの時間には影響しない。したがって、分散データストア管理部13は、多重度Mの増加の場合は第2の優先度情報18を適用し、一方、多重度Mの削減の場合は、例えば、第2の実施形態で算出した優先度情報18を適用してもよい。このように、分散並列バッチ処理サーバ10は、多重度変更要求の内容(削減、または増加)に応じて、複数の優先度情報18を使い分ける。これによって、本変形例では、当該多重度変更要求の内容に適応した多重度変更方法を実現することができる。
なお、上述した各実施形態、および、その変形例(以降、単に「各実施形態等」とも記述する。)において図1乃至図3に示した各部は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捕らえることができる。ただし、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。以下に、このような場合におけるハードウェア環境の一例を図15を参照して説明する。
図15は、本発明の各実施形態、および、その変形例に係る分散並列バッチ処理システムに適用可能なコンピュータ(情報処理装置)の構成を例示する図である。すなわち、図15は、上述した各実施形態等における分散並列バッチ処理サーバ10、ノード20〜22、マスタデータサーバ100、データベース110、データセット多重度変更装置300、ノード320、クライアント500の少なくともいずれかを実現可能なコンピュータの構成であって、上述した実施形態等における各機能を実現可能なハードウェア環境を示す。
図15に示したコンピュータ900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903、通信インタフェース(I/F)904、ディスプレイ905、及びハードディスク装置(HDD)906を備え、これらがバス907を介して接続された構成を有する。なお、図15に示したコンピュータは、分散並列バッチ処理サーバ10、ノード20〜22、マスタデータサーバ100、データベース110、データセット多重度変更装置300、およびノード320のうちのいずれかとして機能する。ただし、ディスプレイ905は常時設けられる必要はない。また、通信インタフェース904は、ネットワーク1000を介して、コンピュータ900と外部装置との通信を実現する一般的な通信手段である。ハードディスク装置906には、プログラム群906Aと、各種の記憶情報906Bとが格納されている。
プログラム群906Aは、例えば、上述した図1乃至図3に示した各ブロック(各部)に対応する機能を実現するためのコンピュータ・プログラムである。各種の記憶情報906Bは、例えば、図1および図3に示した優先度情報18、311、データセット配置情報17、312、データセット70、80、322および、図3に示したアプリケーションプログラム15、ジョブ定義情報16、図2および図3に示したマスタデータセット120などである。このようなハードウェア構成において、CPU901は、コンピュータ900の全体の動作を司る。
そして、上述した実施形態等を例に説明した本発明は、各実施形態等の説明において参照したブロック構成図(図1乃至図3)あるいはフローチャート(図9乃至図11)の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのCPU901に読み出して実行することによって達成される。また、このコンピュータ内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ903またはハードディスク装置106等の不揮発性の記憶デバイス(記憶媒体)に格納すれば良い。
たとえば、データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体の場合、次の処理をコンピュータに実行させるプログラムを永久的に記録する。その処理は、第1に、複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、データセットを格納するべき複数ノードの順番を表す優先度情報を算出する優先度算出処理である。その処理は、第2に、優先度情報と、データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、データセットの多重度を変更する多重度変更処理である。
また、前記の場合において、当該各装置内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線1000を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード、或いは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
なお、本発明は上述した実施形態及びその変形例の一部または全部は、以下の付記のようにも記載されうるが、以下の付記に限定されるものではない。
(付記1)
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出手段と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える
データセット多重度変更装置。
(付記2)
前記優先度算出手段は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記1記載のデータセット多重度変更装置。
(付記3)
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記1または2記載のデータセット多重度変更装置。
(付記4)
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出手段は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理を実施する際に、前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
付記1乃至3の何れかに記載のデータセット多重度変更装置。
(付記5)
前記優先度算出手段は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報を算出し、
前記多重度管理手段は、
前記多重度変更処理において、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記多重度変更処理を実施し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記多重度変更処理を実施する
付記1乃至4の何れかに記載のデータセット多重度変更装置。
(付記6)
前記優先度算出手段は、
前記第1の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第2の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記5記載のデータセット多重度変更装置。
(付記7)
付記1乃至6の何れかに記載のデータセット多重度変更装置を備え、
前記複数ノードによる前記ジョブの並列処理を制御する
サーバ。
(付記8)
複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、情報処理装置を用いて算出し、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する
データセット多重度変更方法。
(付記9)
前記優先度情報を算出する際に、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記8記載のデータセット多重度変更方法。
(付記10)
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記8または9記載のデータセット多重度変更方法。
(付記11)
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度情報の算出の際に、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記多重度変更処理を実施する
付記8乃至10の何れかに記載のデータセット多重度変更方法。
(付記12)
前記優先度情報の算出の際に、
多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報を算出し、
前記多重度変更処理を実施する際に、
前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記多重度変更処理を実施し、
前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記多重度変更処理を実施する
付記8乃至11の何れかに記載のデータセット多重度変更方法。
(付記13)
前記第1の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第2の優先度情報を算出する際に、
前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記12記載のデータセット多重度変更方法。
(付記14)
データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムを記録する記録媒体であって、 複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報を含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を算出する優先度算出処理と、
前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実現させる
コンピュータ・プログラムを記録した記録媒体。
(付記15)
前記優先度算出処理は、
前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
付記14記載のコンピュータ・プログラムを記録した記録媒体。
(付記16)
前記データセット利用関連情報は、
前記複数ノードが前記並列処理を行う際に、前記データセットを参照する回数を表す前記データセット別の予測アクセス回数情報を含む
付記14または15記載のコンピュータ・プログラムを記録した記録媒体。
(付記17)
前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
前記優先度算出処理は、
前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
前記多重度管理処理は、
前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
付記14乃至16の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
(付記18)
前記優先度算出処理は、
多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報と、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報を算出し、
前記多重度管理処理は、
前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する
付記14乃至17の何れかに記載のコンピュータ・プログラムを記録した記録媒体。
(付記19)
前記優先度算出処理は、
前記第1の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報を含め、
前記第2の優先度情報を算出する際、前記データセット利用関連情報の中に、前記データセット別の予測アクセス回数情報、およびノード間のデータ転送速度に関する情報を含める
付記18記載のコンピュータ・プログラムを記録した記録媒体。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2013年2月4日に出願された日本出願特願2013−019403を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 分散並列バッチ処理システム
2 分散データストア
3 オンメモリ型データストア
4 ディスク型データストア
10 分散並列バッチ処理サーバ
11 優先度算出部
12 ジョブ制御部
13 分散データストア管理部
14 ディスク
15 アプリケーションプログラム
16 ジョブ定義情報
17 データセット配置情報
18 優先度情報
20〜22 ノード
30〜32 タスク
40〜42 メモリ(記憶領域)
50〜52 ディスク
60〜62 入出力管理部
70〜72、80〜82 データセット
100 マスタデータサーバ
110 データベース
120 マスタデータセット
130 マスタデータ管理部
200 ジョブ
300 データセット多重度変更装置
301 優先度算出部
302 多重度管理部
311 優先度情報
312 データセット配置情報
320 ノード
321 メモリ(記憶領域)
322 データセット
330 データセット利用関連情報
500 クライアント
900 情報処理装置(コンピュータ)
901 CPU
902 ROM
903 RAM
904 通信インタフェース(I/F)
905 ディスプレイ
906 ハードディスク装置(HDD)
906A プログラム群
906B 各種の記憶情報
907 バス
1000 ネットワーク(通信ネットワーク)

Claims (10)

  1. 複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報として、前記複数ノードが前記並列処理を行う際に前記データセットを参照する回数を表す、前記データセット別の予測アクセス回数情報を少なくとも含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を
    多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報として算出し、
    さらに、ノード間のデータ転送速度に関する情報をさらに含む前記データセット利用関連情報に基づいて、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報として算出する優先度算出手段と、
    前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する処理であって、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する多重度変更処理を行う多重度管理手段とを備える
    データセット多重度変更装置。
  2. 前記優先度算出手段は、
    前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
    請求項1記載のデータセット多重度変更装置。
  3. 前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
    前記優先度算出手段は、
    前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
    前記多重度変更手段は、
    前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
    請求項1または2記載のデータセット多重度変更装置。
  4. 請求項1乃至3の何れか1つに記載のデータセット多重度変更装置を備え、
    複数ノードにおいて実行されるジョブの並列処理を制御する
    サーバ。
  5. 複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報として、前記複数ノードが前記並列処理を行う際に前記データセットを参照する回数を表す、前記データセット別の予測アクセス回数情報を少なくとも含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を、
    多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報として算出し、
    さらに、ノード間のデータ転送速度に関する情報をさらに含む前記データセット利用関連情報に基づいて、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報として情報処理装置を用いて算出し、
    前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する処理であって、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する多重度変更処理を、情報処理装置を用いて実施する
    データセット多重度変更方法。
  6. 前記優先度情報の算出において、
    前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
    請求項5記載のデータセット多重度変更方法。
  7. 前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
    前記優先度情報の算出において、
    前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
    前記多重度変更処理において、
    前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
    請求項5または6記載のデータセット多重度変更方法。
  8. データセット多重度変更装置として動作するコンピュータの動作制御のためのコンピュータ・プログラムであって、
    複数ノードにおいて実行される並列処理によって参照されるデータセットの利用に関連する情報として、前記複数ノードが前記並列処理を行う際に前記データセットを参照する回数を表す、前記データセット別の予測アクセス回数情報を少なくとも含むデータセット利用関連情報に基づいて、前記データセットを格納するべき前記複数ノードの順番を表す優先度情報を
    多重に保持された前記データセットの数を減らす多重度低減に対応する第1の優先度情報として算出し、
    さらに、ノード間のデータ転送速度に関する情報をさらに含む前記データセット利用関連情報に基づいて、少なくとも一つ以上保持された前記データセットの数を増やす多重度増加に対応する第2の優先度情報として算出する優先度算出処理と、
    前記優先度情報と、前記データセットを記憶領域に保持している特定ノードを表すデータセット配置情報とに基づいて、前記複数ノードにおいて少なくとも一つ以上が分散的に保持されている前記データセットの数を変更することにより、前記データセットの多重度を変更する処理であって、前記多重度低減を行う場合は、前記第1の優先度情報に基づいて前記データセットの多重度を変更し、前記多重度増加を行う場合は、前記第2の優先度情報に基づいて前記データセットの多重度を変更する多重度変更処理とを前記コンピュータに実行させるコンピュータ・プログラム。
  9. 前記優先度算出処理は、
    前記並列処理の処理内容が記述されたアプリケーションプログラムと、前記並列処理において利用されるデータセットに関する情報とを含む情報に基づいて、前記データセット利用関連情報の少なくとも一部を求める
    請求項記載のコンピュータ・プログラム。
  10. 前記並列処理が複数のジョブを連続して実行する処理を含む場合に、
    前記優先度算出処理は、
    前記複数のジョブに対応するところの、ジョブごとの優先度情報を算出し、
    前記多重度変更処理は、
    前記ノードで実行されているジョブに対応する優先度情報に基づいて、前記データセットの多重度を変更する
    請求項8または9記載のコンピュータ・プログラム。
JP2014559558A 2013-02-04 2014-01-27 データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム Active JP6115575B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013019403 2013-02-04
JP2013019403 2013-02-04
PCT/JP2014/000374 WO2014119269A1 (ja) 2013-02-04 2014-01-27 データセット多重度変更装置、サーバ、およびデータセット多重度変更方法

Publications (2)

Publication Number Publication Date
JPWO2014119269A1 JPWO2014119269A1 (ja) 2017-01-26
JP6115575B2 true JP6115575B2 (ja) 2017-04-19

Family

ID=51261987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014559558A Active JP6115575B2 (ja) 2013-02-04 2014-01-27 データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US20150381520A1 (ja)
JP (1) JP6115575B2 (ja)
CN (1) CN104969197A (ja)
WO (1) WO2014119269A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015152871A1 (en) * 2014-03-31 2015-10-08 Hewlett-Packard Development Company, L.P. Prioritization of network traffic in a distributed processing system
US10642801B2 (en) 2017-08-29 2020-05-05 Bank Of America Corporation System for determining the impact to databases, tables and views by batch processing
JP7283875B2 (ja) * 2018-09-10 2023-05-30 ファナック株式会社 数値制御装置
TWI701557B (zh) * 2019-05-24 2020-08-11 威聯通科技股份有限公司 多複製資料源系統的資料讀取方法
US11327665B2 (en) * 2019-09-20 2022-05-10 International Business Machines Corporation Managing data on volumes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046352A (ja) * 2002-07-09 2004-02-12 Mitsubishi Electric Corp データ格納装置及び方法並びにプログラム
JP4664410B2 (ja) * 2005-06-28 2011-04-06 オラクル・インターナショナル・コーポレイション 収益管理システムおよび方法
EP1938193A4 (en) * 2005-07-28 2010-08-04 Oracle Int Corp SYSTEM AND METHOD FOR MANAGING RECIPES
JP5396848B2 (ja) * 2008-12-16 2014-01-22 富士通株式会社 データ処理プログラム、サーバ装置およびデータ処理方法
JP5691306B2 (ja) * 2010-09-03 2015-04-01 日本電気株式会社 情報処理システム
JP5760350B2 (ja) * 2010-09-03 2015-08-12 日本電気株式会社 情報処理システム
CN102571974B (zh) * 2012-02-02 2014-06-11 清华大学 分布式数据中心数据冗余消除方法
CN102567120B (zh) * 2012-02-13 2014-04-23 北京星网锐捷网络技术有限公司 一种节点调度优先级确定方法及装置

Also Published As

Publication number Publication date
US20150381520A1 (en) 2015-12-31
JPWO2014119269A1 (ja) 2017-01-26
WO2014119269A1 (ja) 2014-08-07
CN104969197A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
US10977124B2 (en) Distributed storage system, data storage method, and software program
US10178174B2 (en) Migrating data in response to changes in hardware or workloads at a data store
US9276987B1 (en) Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster
US10831387B1 (en) Snapshot reservations in a distributed storage system
EP2288975B1 (en) Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps
JP6412244B2 (ja) 負荷に基づく動的統合
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
WO2012056494A2 (en) Storage system and its operation method
JP2001067187A (ja) ストレージサブシステム及びその制御方法
JP2009116796A (ja) データ読出し方法、データ管理システム及びストレージシステム
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
JP2011191835A (ja) 計算機システムおよびアプリケーションプログラムの実行方法
JP2016510918A (ja) ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定
JP5697195B2 (ja) アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法
JP5849794B2 (ja) ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
CN102446072B (zh) 用于池式存储中的raid 阵列变换的系统和方法
US11429311B1 (en) Method and system for managing requests in a distributed system
CN111949442B (zh) 用于可扩展备份服务的系统和方法
JP7323769B2 (ja) ストレージ装置、ストレージシステムおよびプログラム
JP2006079463A (ja) 時系列データ記録用バッファ管理方法、装置、システムおよびプログラム
JP2012128770A (ja) バッチジョブ管理サーバ、バッチジョブ処理システム及びバッチジョブ実行方法
US10824640B1 (en) Framework for scheduling concurrent replication cycles
JP2013088920A (ja) 計算機システム及びデータ管理方法
WO2016001959A1 (ja) ストレージシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170306

R150 Certificate of patent or registration of utility model

Ref document number: 6115575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150