JP5323554B2 - ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム - Google Patents

ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム Download PDF

Info

Publication number
JP5323554B2
JP5323554B2 JP2009078339A JP2009078339A JP5323554B2 JP 5323554 B2 JP5323554 B2 JP 5323554B2 JP 2009078339 A JP2009078339 A JP 2009078339A JP 2009078339 A JP2009078339 A JP 2009078339A JP 5323554 B2 JP5323554 B2 JP 5323554B2
Authority
JP
Japan
Prior art keywords
data
task
server
execution server
execution
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.)
Expired - Fee Related
Application number
JP2009078339A
Other languages
English (en)
Other versions
JP2010231502A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009078339A priority Critical patent/JP5323554B2/ja
Priority to US12/627,712 priority patent/US20100251248A1/en
Publication of JP2010231502A publication Critical patent/JP2010231502A/ja
Application granted granted Critical
Publication of JP5323554B2 publication Critical patent/JP5323554B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity

Description

本発明は、ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システムの技術に関する。
複数の計算機から構成されるシステムに対して、一定量のデータをまとめて一括処理を行うバッチジョブのスケジューリングを行う方法が、多数開示されている。
特許文献1には、パラメトリックジョブのスケジューリングを行う方法が、開示されている。パラメトリックジョブとは、バッチジョブのうちジョブ定義が同一でパラメタを変更して繰り返し実行するタイプのジョブである。
従来のジョブスケジュール方法では、パラメトリックジョブからパラメタを変更して実行されるそれぞれのジョブであるタスクを実行する計算機を選択する方法として、計算機の負荷状態、ジョブの予測実行時間、電力またはリソースの予測消費量を基準としている。
特開2007−272653号公報
ジョブの実行時間は、CPU性能のほかに、通信や入出力による待ち時間にも大きく影響される。これらの通信や入出力の発生頻度は、ジョブで実行されるプログラムがアクセスするデータの存在場所に依存する。
しかし、従来のジョブスケジュール方法では、データの存在場所を基準としたスケジュールが組まれていないため、データ転送待ちや入出力待ちの発生による余分な処理時間が発生する可能性がある。また、ジョブスケジュールにおいて、計算機障害やタスク異常終了発生後の再実行時の性能最適化が考慮されていない。
そこで、本発明は、前記した問題を解決し、パラメトリックジョブのタスクを実行するときに、タスクの処理対象であるデータの存在場所に依存する性能低下を抑制することを、主な目的とする。
前記課題を解決するために、本発明は、パラメトリックジョブの各タスクを実行する実行サーバと、パラメトリックジョブから各タスクを抽出して各前記実行サーバに実行を依頼するスケジュールサーバとを含めて構成されるジョブ処理システムによるジョブ処理方法であって、
前記スケジュールサーバが、スケジューラと、データ配置管理テーブルと、を有し、
前記実行サーバが、データ配置領域と、データ処理部と、データ配置部と、外部記憶装置とを有し、
前記データ配置部が、各タスクの処理対象のデータセットを自装置の前記データ配置領域に読み込むとともに、その前記データセットと自装置である前記実行サーバとの対応情報を、前記スケジューラに通知し、
前記スケジューラが、
通知される前記データセットと前記実行サーバとの対応情報について、さらに、その前記データセットを処理対象として実行中のタスクとを対応づけて前記データ配置管理テーブルに格納し、
タスクの実行可能な前記実行サーバを割り当て対象の前記実行サーバとして選択し、その選択した実行サーバに対して新たなタスクを割り当て、
前記新たなタスクの処理対象となる前記データセットを、前記データ配置管理テーブルから検索し、割り当て対象の前記実行サーバの前記データ処理部に新たなタスクを実行するときの処理対象となるデータセットについて、
記データセットが、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、その配置されている前記データセットを処理対象とする第1優先度、
記データセットの一部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットの一部と、前記外部記憶装置内の前記データセットの残りとを併せて処理対象とする第2優先度、
記データセットが、前記外部記憶装置内から、どの前記実行サーバ内の前記データ配置領域にも配置されていないときには、前記外部記憶装置内の前記データセットを処理対象とする第3優先度、
記データセットの全部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットを処理対象とする第4優先度のうち、前記第1優先度から前記第4優先度の順に、処理対象のデータセットを決定することを特徴とする。
その他の手段は、後記する。
本発明によれば、パラメトリックジョブのタスクを実行するときに、タスクの処理対象であるデータの存在場所に依存する性能低下を抑制することができる。
本発明の一実施形態に関するジョブ処理システムを示す構成図である。 本発明の一実施形態に関するスケジュールサーバが扱う各データの一例として、タスク実行前(初期化後)の状態を示す構成図である。 本発明の一実施形態に関する図2のタスク実行前(初期化後)の状態に対応する、ジョブ処理システムにおけるタスク割当の一例を示す説明図である。 本発明の一実施形態に関するスケジュールサーバが扱う各データの一例として、タスク実行中の状態を示す構成図である。 本発明の一実施形態に関する図4のタスク実行中の状態に対応する、ジョブ処理システムにおけるタスク割当の一例を示す説明図である。 本発明の一実施形態に関するスケジュールサーバが扱う各データの一例として、タスク再実行の状態を示す構成図である。 本発明の一実施形態に関する図6のタスク再実行の状態に対応する、ジョブ処理システムにおけるタスク割当の一例を示す説明図である。 本発明の一実施形態に関するスケジューラが実行する、スケジュール処理を示すフローチャートである。 本発明の一実施形態に関するスケジューラが実行する、データ選択・タスク実行依頼処理を示すフローチャートである。 本発明の一実施形態に関するスケジューラが実行する、タスク実行監視処理を示すフローチャートである。 本発明の一実施形態に関するタスク管理部が実行する、タスクの実行処理を示すフローチャートである。
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
図1は、ジョブ処理システム8を示す構成図である。ジョブ処理システム8は、パラメトリックジョブをタスクに分割するスケジュールサーバ1と、スケジュールサーバ1からのタスクの割当を受けて実行する1台以上の実行サーバ2とが、通信路9で接続されて構成される。タスクは、パラメトリックジョブの実行単位である。
スケジュールサーバ1は、ハードウェア構成として、CPU(Central Processing Unit)91aと、主記憶装置92aと、通信インタフェース94aと、入出力インタフェース95aとを有するコンピュータとして構成され、外部記憶装置93aと接続されている。
実行サーバ2は、ハードウェア構成として、CPU91bと、主記憶装置92bと、通信インタフェース94bと、入出力インタフェース95bとを有するコンピュータとして構成され、外部記憶装置93bと接続されている。
CPU91a,91bは、それぞれ、主記憶装置92a,92b上のプログラムを読み込んで実行する。
主記憶装置92a,92bには、各処理部を構成するためのプログラムおよびその各処理部が処理対象とする各データがそれぞれ格納されている。
なお、各処理部を構成するプログラムや各処理部が処理対象とする各データは、サーバに設けられたHDD、各種半導体メモリ及び光ディスク等の不揮発記憶媒体(不図示)に格納し、必要に応じて適宜読み出すようにしてよく又通信路を介して外部のサーバ装置からダウンロードするように構成してもよい。
外部記憶装置93a,93bには、それぞれ、各処理部が処理対象とする各データが格納されている。
通信インタフェース94a,94bは、それぞれ、通信路9と接続して、相手側の装置との通信を中継するためのネットワークインタフェースである。
入出力インタフェース95a,95bは、それぞれ、外部記憶装置93a,93bのデータアクセスを実行するための、ローカルのインタフェースである。
スケジュールサーバ1は、スケジューラ10と、データ配置管理テーブル11と、タスク管理テーブル12と、実行サーバ管理テーブル13とを有し、データ配置情報14にアクセス可能である。
実行サーバ2は、タスク管理部20と、データ配置領域21と、データ処理部22と、データ配置部23とを有し、データセット24にアクセス可能である。
スケジューラ10は、データ配置情報14が与えられると、そのデータ配置情報14をもとに、各実行サーバ2へのタスクの割り当てをスケジューリングする。
データ配置管理テーブル11は、データ配置情報14をもとに、データごとにそのデータの配置先の実行サーバ2と、そのデータを実行しているタスクと、を示す情報を格納する。
タスク管理テーブル12は、タスクごとに、そのタスクの割り当てに関する情報を格納する。
実行サーバ管理テーブル13は、タスクの割当が可能な実行サーバ2を選択するときに参照されるデータとして、実行サーバ2ごとの稼動状態を格納する。
データ配置情報14は、外部記憶装置93aに格納されており、データ配置領域21に配置されているデータセット24のデータと、そのデータ配置部23が属する実行サーバ2との対応情報を格納する。
なお、スケジューラ10は、データ配置管理テーブル11を参照して、以下の(1)〜(4)の優先順位で、各実行サーバ2に各タスクを割り当てることで、実行サーバ2間でのデータ転送がなるべく少なくなるようにする。つまり、データの配置状況を参照したスケジューリングの最適化により転送待ちや入出力待ちを削減するので、CPU利用率は向上する。このため、CPU負荷を基準としたスケジュールと比べてもCPU利用率は遜色なく、転送待ちや入出力待ちが発生しない分だけ処理時間が短縮される。
(1)自計算機の配置データ:割り当て対象の実行サーバ2(自計算機)内のデータ配置領域21にすでに配置されているデータセット24である。このデータを用いることで、他装置との通信(データコピー処理)が発生しないため、性能劣化を抑制することができる。
(2)障害サーバのデータ:割り当て対象の実行サーバ2内のデータ配置領域21にすでに配置されているデータセット24である。前記(1)との違いは、(1)はデータIDが示すデータの全部が配置済みであるのに対し、(2)はデータIDが示すデータの全部が配置済みとは限らず、障害サーバのデータコピーなどの一時的な位置不定の配置データである点である。このデータを用いることで、他装置との通信(データコピー処理)をある程度少なくできるため、(1)ほどではないものの性能劣化を抑制することができる。
(3)非配置データ:割り当て対象の実行サーバ2(自計算機)にも、その他の実行サーバ2(他計算機)にも、まだ配置されていないデータセット24である。このデータを用いることで、データ処理部22は、外部記憶装置93bから入出力インタフェース95b経由でデータセット24を読み込むため、他装置との通信(データコピー処理)が発生しないため、性能劣化を抑制することができる。
(4)他計算機の配置データ:割り当て対象の実行サーバ2とは別の実行サーバ2(他計算機)内のデータ配置領域21にすでに配置されているデータセット24である。このデータを用いるときには、他計算機のデータ配置領域21から自計算機のデータ配置領域21への通信(データコピー処理)が発生してしまうため、性能劣化がある程度発生してしまう。
タスク管理部20は、スケジューラ10からのタスクの割り当ての指示を受け、データ処理部22に対してそのタスクの実行を指示する。
データ配置領域21は、データセット24が配置される記憶領域である。
データ処理部22は、割り当てられたタスクの処理対象のデータセット24をデータ配置領域21から読み出して、割り当てられたタスクを処理する。なお、データ処理部22は、処理済みのデータセット24を、データ配置領域21に残しておいてもよいし、データ配置領域21から削除してもよい。
データ配置部23は、データ処理部22が処理するタスクの処理対象としてのデータセット24を、データ配置領域21に配置する。そして、データ配置部23は、データセット24の配置結果を、データ配置情報14としてスケジュールサーバ1に通知する。スケジュールサーバ1は、受信したデータ配置情報14を、外部記憶装置93aに格納してもよいし、データ配置情報14を要求したスケジューラ10に直接通知してもよい。
データセット24は、外部記憶装置93bに格納されており、一定のレコード数やバイト数ごとのデータに分割可能なデータである。なお、パラメトリックジョブを構成する複数のタスク間では、そのタスクを実行するデータ処理部22は互いに同じであるものの、そのデータ処理部22の処理対象であるデータセット24が互いに異なる。
図2は、スケジュールサーバ1が扱う各データの一例として、タスク実行前(初期化後)の状態を示す構成図である。
データ配置管理テーブル11は、データID101と、サーバID102と、タスクID103とを対応づけて格納する。
データID101は、データセット24の各データのIDである。
サーバID102は、データID101が示すデータの配置先であるデータ配置領域21が含まれる実行サーバ2のIDである。サーバID102の空欄「−」は、データID101が示すデータの配置先が存在しないことを示す。
タスクID103は、データID101が示すデータを処理するタスクのIDである。タスクID103の空欄「−」は、データID101が示すデータを処理するタスクが存在しないことを示す。
なお、図2のタスク実行前の状態では、スケジューラ10が、後記するデータ配置情報14に含まれるデータIDおよびサーバIDの組を、データ配置管理テーブル11に書き込む。
タスク管理テーブル12は、タスクID111と、タスク状態112と、データID113と、サーバID114とを対応づけて格納する。
タスクID111は、実行中または実行したタスクのIDである。
タスク状態112は、タスクID111が示すタスクの状態である。タスク状態112には、例えば、実行中、正常終了、異常終了、および、中断(実行サーバ2の障害などが原因である)という値が設定される。
データID113は、タスクID111が示すタスクの処理対象であるデータのIDである。
サーバID114は、タスクID111が示すタスクを実行する実行サーバ2のIDである。
なお、図2のタスク実行前の状態では、どのタスクも処理されていないので、エントリが存在しない。
実行サーバ管理テーブル13は、サーバID121と、サーバ状態122と、実行可能タスク数123と、を対応づけて格納する。
サーバID121は、実行サーバ2のIDである。
サーバ状態122は、サーバID121が示す実行サーバ2の状態である。サーバ状態122には、例えば、「正常」、「障害」、および、「実行依頼禁止」という値が設定される。
実行可能タスク数123は、サーバID121が示す実行サーバ2の現在における同時実行可能なタスク数の上限値である。
なお、図2のタスク実行前の状態では、各実行サーバ2についての静的な情報(設定ファイルなどから収集した情報など)や、動的な情報(ベンチマークプログラムの実行結果や、OSのタスクマネージャの情報など)をスケジュールサーバ1が収集して、実行サーバ管理テーブル13に設定する。
データ配置情報14は、全データ数、ならびに、データIDおよびサーバIDの対応情報を格納する。
全データ数=nは、データセット24の分割数である。
「データID」は、データセット24の各データのIDである。
「サーバID」は、「データID」が示すデータの配置先であるデータ配置領域21が含まれる実行サーバ2のIDである。「サーバID」の空欄「−」は、「データID」が示すデータの配置先が存在しないことを示す。
ただし、データIDが数字の場合は全データ数nからデータIDを類推できるので、どの実行サーバ2のデータ配置領域21にも存在しないデータのデータIDはデータ配置情報14に記述しなくてもよい。
図3は、図2のタスク実行前(初期化後)の状態に対応する、ジョブ処理システム8におけるタスク割当の一例を示す説明図である。
以下、実行サーバ2の符号とそのサーバIDとの対応について、実行サーバ2aのサーバIDを「サーバA」とし、実行サーバ2bのサーバIDを「サーバB」とし、実行サーバ2cのサーバIDを「サーバC」とし、実行サーバ2dのサーバIDを「サーバD」とする。
そして、図2および図3において、データ配置部23は、各データセット24(「データ1」〜「データ6」)を、外部記憶装置93bからデータ配置領域21に読み込むとともに、その読み込み処理により配置されたデータの配置情報をデータ配置情報14(図2)として書き出す。
図4は、スケジュールサーバ1が扱う各データの一例として、タスク実行中の状態を示す構成図である。この図4の状態は、図2の状態から時間が経過した後の状態を示す。
図5は、図4のタスク実行中の状態に対応する、ジョブ処理システム8におけるタスク割当の一例を示す説明図である。なお、実行サーバ2b内の「データ3」は、(4)他計算機の配置データとして実行サーバ2aからコピーされた仮配置のデータであるため、図5では外枠を破線で示している。
まず、スケジューラ10は、「サーバA」を自計算機として、タスクの割当を実行する。
「サーバA」の1つめに割り当てるタスク「タスク1」は、(1)自計算機の配置データである「データ1」を実行対象とするように、割り当てられる。このタスク割当結果が、データID101=「データ1」のレコード、および、タスクID111=「タスク1」のレコードに書き込まれる。
ここで、「サーバA」の実行可能タスク数123は「1」であり(図2)、1つのタスクを割り当てた結果、「サーバA」の実行可能タスク数123は「0」になる(図4)。
次に、スケジューラ10は、「サーバB」を自計算機として、タスクの割当を実行する。
「サーバB」の1つめに割り当てるタスク「タスク2」は、(1)自計算機の配置データである「データ4」を実行対象とするように、割り当てられる。このタスク割当結果が、データID101=「データ4」のレコード、および、タスクID111=「タスク2」のレコードに書き込まれる。
「サーバB」の2つめに割り当てるタスク「タスク6」は、(4)他計算機の配置データである「データ3」を実行対象とするように、割り当てられる。このタスク割当結果が、タスクID111=「タスク6」のレコードに書き込まれる。このように、(3)非配置データ、または、(4)他計算機の配置データを使用するときには、タスク管理テーブル12への反映を行うものの、データ配置管理テーブル11への反映は行わない。
ここで、「サーバB」の実行可能タスク数123は「2」であり(図2)、2つのタスクを割り当てた結果、「サーバB」の実行可能タスク数123は「0」になる(図4)。
そして、スケジューラ10は、「サーバC」を自計算機として、タスクの割当を実行する。
「サーバC」の1つめに割り当てるタスク「タスク4」は、(1)自計算機の配置データである「データ5」を実行対象とするように、割り当てられる。このタスク割当結果が、データID101=「データ5」のレコード、および、タスクID111=「タスク4」のレコードに書き込まれる。
「サーバC」の2つめに割り当てるタスク「タスク3」は、(3)非配置データである「データ7」を実行対象とするように、割り当てられる。このタスク割当結果が、データID101=「データ7」のレコード、および、タスクID111=「タスク3」のレコードに書き込まれる。
ここで、「サーバC」の実行可能タスク数123は「2」であり(図2)、2つのタスクを割り当てた結果、「サーバC」の実行可能タスク数123は「0」になる(図4)。
さらに、スケジューラ10は、「サーバD」を自計算機として、タスクの割当を実行する。
「サーバD」の1つめに割り当てるタスク「タスク5」は、(1)自計算機の配置データである「データ6」を実行対象とするように、割り当てられる。このタスク割当結果が、データID101=「データ6」のレコード、および、タスクID111=「タスク5」のレコードに書き込まれる。
ここで、「サーバD」の実行可能タスク数123は「1」であり(図2)、1つのタスクを割り当てた結果、「サーバD」の実行可能タスク数123は「0」になる(図4)。
以上説明した各タスク(タスクID=1〜6)は、データ処理部22によって、その実行に関する状態が、タスク状態112に更新され続ける。
図6は、スケジュールサーバ1が扱う各データの一例として、タスク再実行の状態を示す構成図である。この図6の状態は、図4の状態から時間が経過した後の状態を示す。この図6の状態は、障害サーバとして実行サーバ2d(サーバD)に障害が発生したことを想定している。
図7は、図6のタスク再実行の状態に対応する、ジョブ処理システム8におけるタスク割当の一例を示す説明図である。
「タスクID=1」、「タスクID=3」、および、「タスクID=6」のタスクは、それぞれ図4の状態と同じように実行中である。
「タスクID=2」、「タスクID=4」、および、「タスクID=5」のタスクは、それぞれ中断または終了したため、データ配置管理テーブル11およびタスク管理テーブル12から該当する情報が削除される。
「タスクID=7」のタスクは、中断した「タスクID=5」のタスクを再実行するタスクである。「タスク7」は、(2)障害サーバのデータである「データ6」を実行対象とするように、割り当てられる。このタスク割当結果が、タスクID111=「タスク7」のレコードに書き込まれる。また、データID101=「データ4」のレコードは、そのサーバIDが、「データ6」を格納していた「サーバD」の障害により「不定」に書き換わっており、そのタスクIDは、「−(空欄)」になる。
なお、(2)障害サーバのデータを利用するときには、実行サーバ2cは、実行サーバ2a上に存在する「データ6」の一部を通信処理により読み込むとともに、「データ6」の残りを外部記憶装置93bから読み込む。
図8(a)は、スケジューラ10が実行する、スケジュールのメイン処理を示すフローチャートを示す。
S101として、タスクスケジュール初期化処理(図8(b)参照)を呼び出す。
S102として、実行サーバ管理テーブル13から、タスク割当が可能な実行サーバ2を検索し、その実行サーバ2が発見できたか否かを判定する。タスク割当が可能な実行サーバ2とは、実行サーバ管理テーブル13におけるサーバ状態が「正常」、かつ、実行可能タスク数が「1」以上のサーバIDに対応する実行サーバ2である。S102でYesならS103へ進み、NoならS104へ進む。
S103として、データ選択・タスク実行依頼処理(図9参照)を呼び出す。
S104として、タスク実行監視処理を呼び出し(図10参照)、実行依頼したタスクの終了を待つ。
S105として、タスク未割当のデータも実行中のタスクも存在しないか否かを判定する。この判定条件は、タスクID111が「(−)未設定」のエントリが存在しないこと、かつ、タスク状態112が「実行中」であるエントリが存在しないことの両方を同時に満たす旨の条件である。S105でYesなら終了し、NoならS102へ進む。
図8(b)は、スケジューラ10が実行する、タスクスケジュール初期化処理(S101)のフローチャートを示す。
S201として、パラメトリックジョブの再実行か否かを判定する。S201でYesならS205へ進み、NoならS202へ進む。
具体的には、パラメトリックジョブを一度実行して、異常終了したタスクが存在した場合は、スケジューラ10が主記憶装置92aまたは外部記憶装置93aにパラメトリックジョブに異常終了したタスクが含まれていたことを示す情報を記録してパラメトリックジョブ実行時にこの情報の有無を調べるか、ユーザがパラメトリックジョブを実行する時に再実行であることを指定する。
S202として、データ配置情報14を読み込み、データ配置情報14に記載されたデータ数分のエントリを有するデータ配置管理テーブル11を割り当て、データ配置情報14に記載されたデータIDとサーバIDとを代入する。
S203として、タスク管理テーブル12を初期化する。
S204として、実行サーバ管理テーブル13を初期化し、そのサーバごとのエントリを代入する。サーバID121と実行可能タスク数123は、例えば設定ファイルから取得する。サーバ状態122は、例えば各実行サーバ2のタスク管理部20に問い合わせて取得する。
S205として、異常終了したタスクで処理していたデータを処理可能とするため、タスク状態112が「異常終了」であるエントリのタスクID111を求め、そのタスクID111と一致するタスクID103をクリアする。
図9は、スケジューラ10が実行する、データ選択・タスク実行依頼処理(S103)のフローチャートを示す。
S301として、(1)自計算機の配置データが存在するか否かを判定する。具体的には、タスクを実行する実行サーバ2のサーバIDと一致するサーバID102が存在するか否かを判定する。S301でYesなら、そのエントリのデータID101が示すデータをタスクで処理するデータとして選択し、S306に進む。S301でNoなら、S302に進む。
S302として、(2)障害サーバのデータが存在するか否かを判定する。つまり、サーバID102が「不定」のエントリが存在するか否かを判定する。S302でYesなら、そのエントリのデータID101が示すデータをタスクで処理するデータとして選択し、S306に進む。S302でNoなら、S303に進む。
S303として、(3)非配置データが存在するか否かを判定する。つまり、サーバID102が空欄のエントリが存在するか否かを判定する。S303でYesなら、そのエントリのデータID101が示すデータをタスクで処理するデータとして選択し、S306に進む。S303でNoなら、S304に進む。
S304として、(4)他計算機の配置データを選択するため、データ配置管理テーブル11のエントリを、タスクID103が空欄でないタスク割当済エントリとタスクID103が空欄のタスク未割当エントリに分類し、さらに、タスク割当済エントリ数とタスク未割当エントリ数をサーバID102が異なるエントリごとにカウントする。その後、タスク割当済エントリ数を全エントリ数で割ったタスク割当率をサーバID102ごとに求める。
S305として、タスク割当率がもっとも小さいサーバID102を求め、そのサーバID102のエントリのうちタスクID103が空欄のエントリのデータを、(4)他計算機の配置データとして1つ選択する。
S306として、タスク実行に伴う状態変化を各テーブルに反映する。
まず、タスク管理テーブル12に新規エントリを割り当て、直前に割り当てたエントリのタスクID111の値に1を加えた値を新規エントリのタスクID111に代入し、「実行中」を新規エントリのタスク状態112に代入し、タスクを実行する実行サーバ2のサーバIDを新規エントリのサーバID113に代入する。
次に、S301〜S305で求めたデータ配置管理テーブル11のエントリのデータID102をデータID114に代入する。
S307として、タスクID103に割り当てたデータ配置管理テーブル11の新規エントリのタスクID111を代入し、サーバID102にタスクを実行する実行サーバ2のサーバIDを代入する。この代入処理は、タスク実行により、データがデータ配置領域21にロードまたは転送されることで、データの配置状態が変化するためである。これにより、タスクが途中で異常終了した後に再実行する場合、再実行前と同じサーバに実行依頼されるようになり、再実行時の性能が向上する。
S308として、タスクを実行する実行サーバ2のサーバIDと一致するエントリをサーバID121から求め、そのエントリの実行可能タスク数123を1つ減らす。
S309として、タスクを実行する実行サーバ2のタスク管理部20に、実行サーバで処理するデータ処理部22の名称とともに、S301〜S305で選択したエントリのデータID101と、S306で割り当てたエントリのタスクID111とを転送し、タスク実行を依頼する。
図10は、スケジューラ10が実行する、タスク実行監視処理(S104)のフローチャートを示す。
S401として、ヘルスチェックなどにより実行サーバ2の状態を監視するとともに、タスクを実行依頼した実行サーバ2のタスク管理部20からの応答を待つことでタスク状態を監視する。
S402として、タスク管理部20からの応答により、タスクが終了したか否かを判定する。S402でYesならS403へ進み、NoならS409へ進む。
S403として、終了したタスクのタスクIDとタスク終了状態とを受信する。
S404として、受信したタスク終了状態が「正常終了」か否かを判定する。S404でYesならS405へ進み、NoならS406へ進む。
S405として、受信したタスクIDと一致するタスクID111を求め、そのエントリのタスク状態112を「正常終了」に変更する。そして、処理をS413へ進める。
S406として、タスク状態112を「異常終了」にする。なお、データ処理部22実行中に実行サーバ2が障害となったときは、スケジューラ10は、新たなタスクを生成し、処理していたデータの処理を、スケジューラ10が障害となった実行サーバ2以外の実行サーバ2に依頼する。
S407として、「異常終了」したタスクのサーバID113を求め、そのサーバID113のエントリにおいてタスク状態112が「異常終了」である他のタスクが存在するか否かを判定する。S407でYesならS408へ進み、NoならS413へ進む。
S408として、サーバ状態122を「実行依頼禁止」にする。そして、処理をS413へ進める。
これにより、実行サーバ2を実行依頼対象から除外することで、実行サーバ2での新規タスク投入を抑止し、異常終了の原因解析を省力化することができる。
なお、処理するデータが異なるだけで、実行するプログラムなどの他のアプリケーション実行条件が同じタスクが同じ実行サーバ2で複数異常終了した場合は、実行サーバ2に要因があると推定される。
S409として、実行サーバ2の障害を検出したか否かを判定する。以下、障害を検出したサーバを「障害サーバ」とする。
なお、実行サーバ2の障害は、スケジューラ10またはスケジュールサーバ1またはスケジュールサーバ1に接続された装置が、一定時間ごとに実行サーバ2と通信して実行サーバ2の生存を確認するヘルスチェックなどで検出する。データ配置部23は、サーバ障害に備えてデータのコピーを1つないし複数のサーバに分散して保持している場合があり、データのコピーの配置場所(サーバ)はわからない場合がある。データのコピーが他の実行サーバ2に存在すれば、データ処理部22を実行するときにデータ配置部23によってデータが転送される。S409でYesならS410へ進み、NoならS401へ進む。
S410として、障害サーバのサーバ状態122を「障害」に変更する。
S411として、障害サーバのタスク状態112を「中断」に変更する。
S412として、障害サーバのタスクID103を空欄に変更し、サーバID102を「不定」に変更する。これにより、S302で選択されるので、そのデータをすぐに他のサーバで実行することで、障害実行サーバ2や交代サーバの再起動をまたずにデータを処理することができる。
なお、データ配置部23の設定情報の1つであるデータ冗長度をスケジューラ10があらかじめ取得しておき、データ冗長度が0であれば、データが他のどの実行サーバ2にも存在しないとみなし、S412において、サーバID102を「不定」にするかわりにクリアしてもよい。
S413として、タスクが実行されていた(現在は、正常終了または異常終了またはサーバ障害により中断している)実行サーバ2の実行可能タスク数123を+1する。
図11(a)は、タスク管理部20が実行する、タスクの実行処理を示すフローチャートである。
S501として、スケジュールサーバ1のスケジューラ10から、実行するデータ処理部22の名称とデータIDとタスクIDとを受信する。
S502として、受信したデータIDを環境変数またはデータ処理部22の引数に設定し、データ処理部22からデータIDを参照可能な状態にする。
S503として、データ処理部22を実行する。
例えば、「タスク1」は、「データ1」をデータ配置領域21から読み込み、処理している。
一方、「タスク3」は、「データ7」が「サーバB」にないので、外部記憶装置93bからロードしている。
または、「タスク7」は、「データ6」が「サーバC」にないので、「サーバA」および外部記憶装置93bから、それぞれロードしている。
S504として、データ処理部22が終了したか否かを判定する。なお、タスク管理部20は状態(正常終了または異常終了)をスケジューラ10に通知する。S504でYesならS505へ進み、NoならS504を繰り返す(つまり、データ処理部22によるタスクの終了を待つ)。
S505として、スケジューラ10に、タスクIDとタスク終了状態とを転送する。
図11(b)は、タスク管理部20が実行する、タスクの実行処理を示すフローチャートである。図11(a)との違いは、データ選択をスケジューラ10に要求する点である。
S511として、スケジュールサーバ1のスケジューラ10から、実行するデータ処理部22の名称とタスクIDとを受信する。
S512として、データ処理部22を起動する。
スケジューラ10は、タスクを実行依頼する前は、S306およびS308〜S309を行う。ただし、S306でのデータIDは、代入しない。
S513として、スケジューラ10にデータ選択を要求して、処理するデータのデータIDを受信する。
スケジューラ10は、実行サーバ2からデータ選択を依頼されたときは、S301〜S305とS307を実行する。そして、スケジューラ10は、S301〜S305にて選択したデータ配置管理テーブル11のエントリのタスクID103を代入し、そのエントリのデータID101をデータID113に代入する。
S514として、受信したデータIDをデータ処理部22に通知する。
S515として、データ処理部22からの通知などにより、データ処理部22で受信したデータIDのデータの処理の終了を待つ。
S516として、全データが処理されるか他の実行サーバ2で処理されているか否かを、スケジューラ10からデータIDがないという情報を受信することで、判定する。S516でYesならS517へ進み、NoならS513へ進む。
S517として、スケジュールサーバ1のスケジューラ10に、タスク終了状態とタスクIDを転送する。
以上説明した本実施形態は、スケジューラ10が、データIDとデータを格納した計算機のIDとから構成されるデータ配置情報を参照し、タスク同時実行数が上限未満の計算機に割り当てるデータとして、自計算機の配置データ、障害サーバのデータ、非配置データ、他計算機の配置データの順に選択し、データIDを転送して、そのデータを処理するタスクをスケジュールする。
これにより、再実行時も含めて、データ転送待ちや入出力待ちの発生による処理時間低下を低減させることができる。
1 スケジュールサーバ
2 実行サーバ
8 ジョブ処理システム
9 通信路
10 スケジューラ
11 データ配置管理テーブル
12 タスク管理テーブル
13 実行サーバ管理テーブル
14 データ配置情報
20 タスク管理部
21 データ配置領域
22 データ処理部
23 データ配置部
24 データセット
91a,91b CPU
92a,92b 主記憶装置
93a,93b 外部記憶装置
94a,94b 通信インタフェース
95a,95b 入出力インタフェース

Claims (6)

  1. パラメトリックジョブの各タスクを実行する実行サーバと、パラメトリックジョブから各タスクを抽出して各前記実行サーバに実行を依頼するスケジュールサーバとを含めて構成されるジョブ処理システムによるジョブ処理方法であって、
    前記スケジュールサーバは、スケジューラと、データ配置管理テーブルと、を有し、
    前記実行サーバは、データ配置領域と、データ処理部と、データ配置部と、外部記憶装置とを有し、
    前記データ配置部は、各タスクの処理対象のデータセットを自装置の前記データ配置領域に読み込むとともに、その前記データセットと自装置である前記実行サーバとの対応情報を、前記スケジューラに通知し、
    前記スケジューラは、
    通知される前記データセットと前記実行サーバとの対応情報について、さらに、その前記データセットを処理対象として実行中のタスクとを対応づけて前記データ配置管理テーブルに格納し、
    タスクの実行可能な前記実行サーバを割り当て対象の前記実行サーバとして選択し、その選択した実行サーバに対して新たなタスクを割り当て、
    前記新たなタスクの処理対象となる前記データセットを、前記データ配置管理テーブルから検索し、割り当て対象の前記実行サーバの前記データ処理部に新たなタスクを実行するときの処理対象となるデータセットについて、
    記データセットが、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、その配置されている前記データセットを処理対象とする第1優先度、
    記データセットの一部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットの一部と、前記外部記憶装置内の前記データセットの残りとを併せて処理対象とする第2優先度、
    記データセットが、前記外部記憶装置内から、どの前記実行サーバ内の前記データ配置領域にも配置されていないときには、前記外部記憶装置内の前記データセットを処理対象とする第3優先度、
    記データセットの全部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットを処理対象とする第4優先度のうち、前記第1優先度から前記第4優先度の順に、処理対象のデータセットを決定することを特徴とする
    ジョブ処理方法。
  2. 前記スケジューラは、前記処理対象のデータセットが割り当て対象の前記実行サーバとは別の複数の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、複数の前記実行サーバのうちのタスクの割当率がもっとも少ない前記実行サーバ内の前記データ配置領域に配置されたデータセットを処理対象とすることを特徴とする
    請求項1に記載のジョブ処理方法。
  3. 前記データ処理部は、実行するタスクが異常終了することを検知して前記スケジューラに通知し、
    前記スケジューラは、所定の前記実行サーバ内の前記データ処理部から複数のタスクについての異常終了の通知を受けると、その所定の前記実行サーバを、新たなタスクを割り当てるときの割り当て対象の前記実行サーバから除外することを特徴とする
    請求項1または請求項2に記載のジョブ処理方法。
  4. 前記データ処理部は、実行するタスクが異常終了することを検知して前記スケジューラに通知し、
    前記スケジューラは、異常終了の通知を受けたタスクを、前記データ配置管理テーブルの実行中のタスクから検索し、検索されたエントリの実行中のタスクをクリアすることを特徴とする
    請求項1または請求項2に記載のジョブ処理方法。
  5. 請求項1から請求項4のいずれか1項に記載のジョブ処理方法を、前記ジョブ処理システムの各サーバに実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
  6. パラメトリックジョブの各タスクを実行する実行サーバと、パラメトリックジョブから各タスクを抽出して各前記実行サーバに実行を依頼するスケジュールサーバとを含めて構成されるジョブ処理システムであって、
    前記スケジュールサーバは、スケジューラと、データ配置管理テーブルと、を有し、
    前記実行サーバは、データ配置領域と、データ処理部と、データ配置部と、外部記憶装置とを有し、
    前記データ配置部は、各タスクの処理対象のデータセットを自装置の前記データ配置領域に読み込むとともに、その前記データセットと自装置である前記実行サーバとの対応情報を、前記スケジューラに通知し、
    前記スケジューラは、
    通知される前記データセットと前記実行サーバとの対応情報について、さらに、その前記データセットを処理対象として実行中のタスクとを対応づけて前記データ配置管理テーブルに格納し、
    タスクの実行可能な前記実行サーバを割り当て対象の前記実行サーバとして選択し、その選択した実行サーバに対して新たなタスクを割り当て、
    前記新たなタスクの処理対象となる前記データセットを、前記データ配置管理テーブルから検索し、割り当て対象の前記実行サーバの前記データ処理部に新たなタスクを実行するときの処理対象となるデータセットについて、
    記データセットが、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、その配置されている前記データセットを処理対象とする第1優先度、
    記データセットの一部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットの一部と、前記外部記憶装置内の前記データセットの残りとを併せて処理対象とする第2優先度、
    記データセットが、前記外部記憶装置内から、どの前記実行サーバ内の前記データ配置領域にも配置されていないときには、前記外部記憶装置内の前記データセットを処理対象とする第3優先度、
    前記データセットの全部が、前記外部記憶装置内から読み込まれて、割り当て対象の前記実行サーバとは別の前記実行サーバ内の前記データ配置領域にすでに配置されているときには、別の前記実行サーバに配置されている前記データセットを処理対象とする第4優先度のうち、前記第1優先度から前記第4優先度の順に、処理対象のデータセットを決定することを特徴とする
    ジョブ処理システム。
JP2009078339A 2009-03-27 2009-03-27 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム Expired - Fee Related JP5323554B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009078339A JP5323554B2 (ja) 2009-03-27 2009-03-27 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
US12/627,712 US20100251248A1 (en) 2009-03-27 2009-11-30 Job processing method, computer-readable recording medium having stored job processing program and job processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009078339A JP5323554B2 (ja) 2009-03-27 2009-03-27 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム

Publications (2)

Publication Number Publication Date
JP2010231502A JP2010231502A (ja) 2010-10-14
JP5323554B2 true JP5323554B2 (ja) 2013-10-23

Family

ID=42785933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009078339A Expired - Fee Related JP5323554B2 (ja) 2009-03-27 2009-03-27 ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム

Country Status (2)

Country Link
US (1) US20100251248A1 (ja)
JP (1) JP5323554B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5582016B2 (ja) * 2010-12-15 2014-09-03 ソニー株式会社 タスク管理装置、タスク管理方法、及びプログラム
US9244737B2 (en) 2011-02-04 2016-01-26 Hitachi, Ltd. Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
US9191299B1 (en) * 2014-02-22 2015-11-17 Allscripts Software, Llc Task processing utilizing queues
JP6562744B2 (ja) * 2015-07-13 2019-08-21 キヤノン株式会社 システム、及び制御方法
US11153223B2 (en) * 2016-04-07 2021-10-19 International Business Machines Corporation Specifying a disaggregated compute system
CN108921407A (zh) * 2018-06-20 2018-11-30 北京密境和风科技有限公司 一种任务处理系统和方法
GB201818997D0 (en) * 2018-11-22 2019-01-09 Palantir Technologies Inc Providing external access to a prcoessing platform
CN112950447B (zh) * 2019-12-10 2023-04-28 浙江宇视科技有限公司 资源调度方法、装置、服务器及存储介质
CN113706275B (zh) * 2021-10-28 2022-03-15 苏州贝塔智能制造有限公司 裁片的料码双输入协同作业方法及衣物裁片分配系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173990A (ja) * 1991-12-24 1993-07-13 Mitsubishi Electric Corp データ処理システム
JPH09293057A (ja) * 1996-04-26 1997-11-11 Nec Corp 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法
JP2005190038A (ja) * 2003-12-25 2005-07-14 Hitachi Ltd プロセッサの診断処理方法および診断処理プログラム
JP4550648B2 (ja) * 2005-04-08 2010-09-22 株式会社日立製作所 計算機システム
JP4575218B2 (ja) * 2005-04-12 2010-11-04 三菱電機株式会社 サーバ型計算機および転送評価判定装置
JP2007183733A (ja) * 2006-01-05 2007-07-19 Nec Corp リソースQoS制御システムを備えるデータ処理システム、リソースQoS制御方法

Also Published As

Publication number Publication date
JP2010231502A (ja) 2010-10-14
US20100251248A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5323554B2 (ja) ジョブ処理方法、ジョブ処理プログラムを格納したコンピュータ読み取り可能な記録媒体、および、ジョブ処理システム
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
JP6273927B2 (ja) 情報処理システム,監視装置,監視プログラム,監視方法
US10055252B2 (en) Apparatus, system and method for estimating data transfer periods for job scheduling in parallel computing
JP4669487B2 (ja) 情報処理システムの運用管理装置および運用管理方法
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
WO2011142031A1 (ja) リソース管理方法、リソース管理装置およびプログラム
US20110314221A1 (en) Storage apparatus, controller and storage apparatus control method
US20180041600A1 (en) Distributed processing system, task processing method, and storage medium
US9164849B2 (en) Backup jobs scheduling optimization
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
CN110609807A (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
US9400723B2 (en) Storage system and data management method
JP5408620B2 (ja) データ分散管理システム及びデータ分散管理方法
US9395930B2 (en) Information processing system, control method of information processing system, and recording medium
US20070174836A1 (en) System for controlling computer and method therefor
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US20140068214A1 (en) Information processing apparatus and copy control method
JP2021135538A (ja) ストレージ制御装置及びストレージ制御プログラム
WO2013140412A1 (en) A method and system for distributed computing of jobs
JP2016177429A (ja) ストレージ装置、ストレージ制御方法、及びストレージ制御プログラム
US10824640B1 (en) Framework for scheduling concurrent replication cycles
WO2017098591A1 (ja) 計算機及びストレージ装置を有するシステム、及びシステムの制御方法
JP2021099723A (ja) 分散ストレージシステム、データ制御方法及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130403

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130717

R150 Certificate of patent or registration of utility model

Ref document number: 5323554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees