JP2013196238A - バッチ処理システム - Google Patents

バッチ処理システム Download PDF

Info

Publication number
JP2013196238A
JP2013196238A JP2012061389A JP2012061389A JP2013196238A JP 2013196238 A JP2013196238 A JP 2013196238A JP 2012061389 A JP2012061389 A JP 2012061389A JP 2012061389 A JP2012061389 A JP 2012061389A JP 2013196238 A JP2013196238 A JP 2013196238A
Authority
JP
Japan
Prior art keywords
computer
job
execution
recording
batch
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.)
Granted
Application number
JP2012061389A
Other languages
English (en)
Other versions
JP5942509B2 (ja
Inventor
Takehiro Watanabe
岳大 渡邊
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
Priority to JP2012061389A priority Critical patent/JP5942509B2/ja
Priority to US13/789,026 priority patent/US9244719B2/en
Publication of JP2013196238A publication Critical patent/JP2013196238A/ja
Application granted granted Critical
Publication of JP5942509B2 publication Critical patent/JP5942509B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management

Abstract

【課題】バッチジョブの実行状態を記録する処理の性能が低下するとバッチジョブの処理時間が長期化すること。
【解決手段】制御コンピュータは、バッチジョブの実行状態を記憶装置に記録する処理の性能を検出し、検出した前記性能に応じて、複数の記録方法の中から、使用する記録方法を選択し、第1のコンピュータに通知する。第1のコンピュータは、第2のコンピュータから通知された記録方法を用いて、自コンピュータにおけるバッチジョブの実行状態を記憶装置に記録する。
【選択図】図1

Description

本発明は、バッチジョブを実行する機能を有するバッチ処理システムに関する。
バッチ処理は、コンピュータのデータ処理方法の一種であり、データを一定期間あるいは一定量をまとめてから、一つのジョブとして一括して処理を行う方式のことである。大量のデータを一括して処理するため、途中で異常終了した際、最初から再実行するとコストが高くなる傾向がある。このため、バッチジョブの実行状態を適宜に記憶装置に保存しておき、万が一に異常終了した際、バッチジョブの途中から再実行するシステムが提案ないし実用化されている(例えば特許文献1参照)。
また、バッチ処理は、単純な処理の繰り返しが比較的多い。このため、バッチ処理を複数のコンピュータを利用して、分散して実行することがある(例えば特許文献2参照)。このような処理を分散バッチ処理、それを実行するシステムを分散バッチ処理システムと言う。分散バッチ処理システムでは、複数のコンピュータにおけるバッチジョブの実行状態は、複数のコンピュータから共通にアクセスされる記憶装置に保存されることが多い。
特開平9−282192号公報 特開平10−326201号公報
バッチジョブを実行するコンピュータにとって、バッチジョブの実行状態を記録する処理はオーバーヘッドになる。このため、バッチジョブの実行状態を記録する記憶装置の障害等によって実行状態を記録する処理の性能が低下すると、記録に必要な処理時間が当初予定した時間よりも長くかかり、その分だけバッチジョブの処理時間が長期化することになる。
一般にバッチ処理は、その後の業務への影響を避けるために、大量のデータを決められた期限までに完了しなければならない場合が多い。そのため、バッチジョブの実行状態を記録するのに要する時間が長くかかると、期限までにバッチ処理を完了することが困難になる。
本発明の目的は、上述した課題、すなわち、バッチジョブの実行状態を記録する処理の性能が低下するとバッチジョブの処理時間が長期化する、という課題を解決するバッチ処理システムを提供することにある。
本発明の一形態にかかるバッチ処理システムは、
バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有し、
前記第2のコンピュータは、
前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
を有し、
前記第1のコンピュータは、
前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する実行状態記録手段
を有する
といった構成を採る。
また本発明の他の形態にかかるバッチ処理システム制御方法は、
バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有するバッチ処理システムが実行する制御方法であって、
前記第2のコンピュータが、前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出し、
前記第2のコンピュータが、前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択し、
前記第2のコンピュータが、前記選択した記録方法を前記第1のコンピュータに通知し、
前記第1のコンピュータが、前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する
といった構成を採る。
また本発明の他の形態にかかるコンピュータは、
バッチジョブを実行する第1のコンピュータと前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置とに接続され、
前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
を有する
といった構成を採る。
本発明は上述したような構成を有するため、バッチジョブの実行状態を記録する処理の性能が低下しても、バッチジョブの処理時間が長期化するのを防止することができる。
本発明の第1の実施形態のブロック図である。 本発明の第1の実施形態におけるバッチジョブの実行状態の記録フォーマットの一例を示す図である。 本発明の第1の実施形態の処理の一例を示すフローチャートである。 本発明の第2の実施形態におけるジョブリポジトリの或る時点の内容例を示す図である。 本発明の第2の実施形態におけるジョブリポジトリの別の或る時点の内容例を示す図である。 本発明の第2の実施形態の前提となる分散バッチ処理の概略図である。 本発明の第2の実施形態のシステム全体の概要を示すブロック図である。 本発明の第2の実施形態のブロック図である。 本発明の第2の実施形態において、ジョブリポジトリ更新性能低下時のジョブリポジトリ更新方法変更の流れを示すフローチャートである。 本発明の第3の実施形態のブロック図である。 本発明の第3の実施形態におけるジョブリポジトリ更新ポリシーの一例を示す図である。 本発明の第3の実施形態において、ジョブリポジトリ更新性能低下時のジョブリポジトリ更新方法変更の流れを示すフローチャートである。 本発明の第3の実施形態におけるジョブリポジトリ更新ポリシーの別の例を示す図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかるバッチ処理システムは、バッチジョブを実行する1台または複数台の第1のコンピュータ110と、第1のコンピュータ110におけるバッチジョブの実行状態を記録する記憶装置120と、第1のコンピュータ110と記憶装置120とに接続された第2のコンピュータ130とを有する。
第2のコンピュータ130は、バッチ処理システム全体の制御を行う機能を有する。第2のコンピュータ130は、検出手段131と選択手段132と通知手段133とを有する。
検出手段131は、バッチジョブの実行状態を記憶装置120に記録する処理の性能を検出する機能を有する。以下、この性能を実行状態記録性能と記す。例えば記憶装置120がRAID5等による冗長構成を有する場合、RAIDからディスクの一つを切り離して縮退運転している場合のI/O性能(スループットやレイテンシなど)は、RAIDが正常に運用されている場合に比べて低下する。このため、記憶装置120が正常に稼働しているか、縮退運転しているかを検出することは、実行状態記録性能を検出することに相当する。但し、検出手段131は、記憶装置120のI/O性能を測定することで実行状態記録性能を検出するようにしてもよい。また、第1のコンピュータ110が記憶装置120とネットワーク等の通信路によって接続されている場合、通信路の性能(スループットやレイテンシなど)は上記記録する処理の時間に影響を及ぼす。従って、検出手段131は、例えば通信路が正常な状態か、輻輳状態かなどを検出することで、実行状態記録性能を検出してもよい。
選択手段132は、検出手段131によって検出された実行状態記録性能に応じて、バッチジョブの実行状態を記録する複数種類の記録方法の中から、第1のコンピュータ110で使用する記録方法を選択する機能を有する。
バッチジョブの実行状態を記録する複数種類の記録方法は、互いに記憶装置120へのアクセス頻度が相違していることが望ましい。例えば、複数種類の記録方法には、所定単位の処理を正常に完了する毎に記憶装置120へバッチジョブの実行状態を記録する記録方法と、この記録方法に比べてアクセス頻度が低下する、エラー発生時にのみ記憶装置120へバッチジョブの実行状態を記録する記録方法とが含まれていてよい。或いは、複数種類の記録方法には、所定単位の処理を正常に完了する毎に記憶装置120へバッチジョブの実行状態を記録する記録方法と、この記録方法に比べてアクセス頻度が低下する、上記所定単位に比べて大きな単位の処理を正常に完了する毎に記憶装置120へバッチジョブの実行状態を記録する記録方法とが含まれていてよい。
選択手段132は、実行状態記録性能に応じて複数種類の記録方法の中から記録方法を選択する際、実行状態記録性能がより低下しているならば、アクセス頻度がより少ない記録方法を選択することが望ましい。
通知手段133は、選択手段132によって選択された記録方法を第1のコンピュータ110に通知する機能を有する。
バッチジョブを実行する第1のコンピュータ110は、バッチジョブの実行機能に加えて、実行状態記録手段111を有する。
実行状態記録手段111は、第2のコンピュータ130の通知手段133から通知された記録方法を用いて、自コンピュータにおけるバッチジョブの実行状態を記憶装置120に記録する機能を有する。
図2はバッチジョブの実行状態の記録フォーマットの一例である。この例では、一つのバッチジョブに対応する実行状態の記録情報は、ジョブ識別子と記録種別と状態とから構成される。ジョブ識別子は、バッチジョブを一意に識別する文字列である。記録種別は、記録方法を一意に識別する文字列である。状態は、バッチジョブの実行状態を示しており、その内容は記録種別によって相違する。この状態の項目には、例えば、10件のレコードの処理を正常に完了する毎にバッチジョブの実行状態を記録する記録方法では、例えば、「正常終了」あるいは「実行中」などの文字列から構成されるジョブステータスと、何番のレコードまで正常に処理を終えたかを示す「レコード番号」などの文字列とから構成される。他方、エラー発生時にのみバッチジョブの実行状態を記録する記録方法では、例えば、「異常終了」あるいは「実行中」などのジョブステータスと、異常終了したレコードを示す「レコード番号」などの文字列とから構成される。
第1のコンピュータ110と第2のコンピュータ130は、RAMやハードディスク等の記憶装置と、外部の装置との間でデータ通信を行うための通信インターフェースと、プログラムを記録するCDROMや磁気ディスク等で構成されたコンピュータ可読記録媒体と、これらに接続されたCPU等のプロセッサとを有するパーソナルコンピュータ等のコンピュータで構成することができる。コンピュータ可読記録媒体に記録されたプログラムは、コンピュータの立ち上げ時にコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータ上に、第1のコンピュータ110の場合には実行状態記録手段111を実現し、第2のコンピュータ130の場合には、検出手段131と選択手段132と通知手段133とを実現する。
図3は第1および第2のコンピュータの処理の一例を示すフローチャートである。以下、図3を参照して本実施形態にかかるジョブ処理システムの動作を説明する。
第2のコンピュータ130の検出手段131は、定期的に実行状態記録性能を検出する(ステップS101)。検出手段131は、今回検出した実行状態記録性能と前回検出した実行状態記録性能とを比較することにより、実行状態記録性能が変化したか否かを判定する(ステップS102)。実行状態記録性能が変化していなければ、ステップS101に戻って次回の周期の到来を待つ。他方、実行状態記録性能が変化していれば、検出手段131は、今回検出した実行状態記録性能を選択手段132に伝達する。
選択手段132は、検出手段131から受け取った実行状態記録性能に基づいて、複数の記録方法の中から第1のコンピュータ110に使用させる記録方法の種別を選択する(ステップS103)。そして、選択手段132は、その選択した記録方法の種別を通知手段133に伝達する。
通知手段133は、選択手段132から受け取った記録方法の種別をネットワーク等を通じて第1のコンピュータ110に通知する(ステップS104)。その後、制御は通知手段133から検出手段131に戻され、検出手段131は、次回の周期の到来を待つ。
第1のコンピュータ110は、投入されたバッチジョブを実行する(ステップS111)。そして、実行状態記録手段111は、第2のコンピュータ130から通知された種別の記録方法を使用して、バッチジョブの実行状態を記憶装置120に記録する処理を実行する(ステップS112)。
例えば、第1のコンピュータ110は、種別1の記録方法の通知を受けている状態で、或るバッチジョブの実行を開始した場合、種別1の記録方法を用いて当該バッチジョブの実行状態を記憶装置120に記録する処理を開始する。若し、当該バッチジョブの終了まで記録方法の変更がなければ、種別1の記録方法のみ使用してバッチジョブの実行状態が記憶装置120に記録される。他方、当該バッチジョブの実行途中で第2のコンピュータ130から種別2の記録方法が通知されると、第1のコンピュータ110は、バッチジョブの実行途中で記録方法を種別1から種別2へ変更する。
以上説明したように本実施形態によれば、バッチジョブの実行状態を記録する処理の性能が低下しても、バッチジョブの処理時間が長期化するのを防止することができる。その理由は、複数種類の記録方法の中から、実行状態記録性能に応じた記録方法で記録が行われるためである。より具体的には、実行状態記録性能がより低下した場合には、よりアクセス頻度の少ない種別の記録方法を用いて記録が行われるためである。
また本実施形態によれば、実行状態記録性能が回復すると、よりアクセス頻度の多い記録方法に戻すことが可能である。
本実施形態は以下のような付加変更が可能である。
例えば、第2のコンピュータ130は、図1に破線で示すように、第1のコンピュータ110で実行されるバッチジョブの属性を記憶する属性記憶手段134を有していてよい。バッチジョブの属性とは、例えば、1件のデータ量、後述するチャンクサイズなどを意味する。そして、属性記憶手段134を有する場合、選択手段132は、検出手段131で検出された実行状態記録性能と属性記憶手段134に記憶されているバッチジョブの属性とに応じて、第1のコンピュータ110毎に記録方法の種別を選択するようにしてよい。
あるいは、第1のコンピュータ110は、図1に破線で示すように、自コンピュータにおけるバッチジョブの実行状況を第2のコンピュータ130に通知する実行状況通知手段112を有していてよい。バッチジョブの実行状況とは、ジョブ実行時間、単位時間当たりの記憶装置120へのアクセス回数などを意味する。そして、実行状況通知手段112を有する場合、第2のコンピュータ130は、図1に破線で示すように、第1のコンピュータ110から通知されるバッチジョブの実行状況を記憶する実行状況記憶手段135を有していてよい。そして、実行状況記憶手段135を有する場合、第2のコンピュータ130の選択手段132は、検出手段131で検出された実行状態記録性能と実行状況記憶手段135に記憶されているバッチジョブの実行状況とに応じて、第1のコンピュータ110毎に記録方法を選択するようにしてよい。
あるいは、属性記憶手段134、実行状況記憶手段135、および実行状況通知手段112を有し、選択手段132は、検出手段131で検出された実行状態記録性能と、属性記憶手段134に記憶されているバッチジョブの属性と、実行状況記憶手段135に記憶されているバッチジョブの実行状況とに応じて、第1のコンピュータ110毎に記録方法を選択するようにしてよい。
また、本実施形態のバッチ処理システムは、バッチジョブを実行する第1のコンピュータ110とは別に、実行状態記録性能の検出と記録方法の選択とを行う機能を有する第2のコンピュータ130を有しているが、バッチジョブを実行する第1のコンピュータ110に、第2のコンピュータ130の有する上記機能を持たせるようにしてもよい。
[第2の実施形態]
[本実施形態が解決しようとする課題]
バッチ処理実行において、その実行状況などの情報を保持することで、バッチ処理が失敗したときに失敗したところから再実行を行うことができる。ジョブの実行状態を保存したものを以降ジョブリポジトリと呼ぶ。例えば、データベースにジョブ実行状態の記録用テーブルを作成し、ジョブの実行とともに何件目のデータまで処理を行ったのかをテーブルに記録するといったものである。
本実施形態では、あるデータ群に対して連続して処理を実行するようなバッチ処理を想定する。そのバッチ処理は連続して実行する或るデータ件数をひとまとまりにしてトランザクション処理として実行するものとする。このデータのまとまりをチャンクと呼び、そこに含まれるデータ件数をチャンクサイズと呼ぶ。
トランザクション処理とは、相互依存のある複数の操作が全て完了するか、全てキャンセルされることを保証する処理のことである。本実施形態でのバッチ処理における動作の様子を説明すると、ひとつのチャンク内のデータすべての処理が成功した時点で始めてそのチャンク処理を成功とみなし、もしチャンク内のデータ処理のうちひとつでも失敗してしまった場合は、そのチャンク処理を失敗とみなし、対象チャンク処理実行前の状態に戻すという動作を行う。そして実行状態を保存する処理であるジョブリポジトリの更新は、チャンク処理の成功毎に実行するものとする。
図4および図5を用いてジョブリポジトリの更新について説明する。この例のジョブリポジトリは、バッチジョブ毎に、ジョブID、ジョブ名、開始時刻、終了時刻、実行状態、レコード番号、スキップ(Skip)回数、ジョブリポジトリ状態を記録する構成である。
図4はある時点のジョブリポジトリの例を示したものである。正常終了したJob1と現在実行中のJob2のバッチジョブ実行状態を示している。ここで、Job2のチャンクサイズを10とすると、図4から1チャンクの処理が終了した時のジョブリポジトリを示したものが図5である。レコード番号が50から60へと10だけ進んでいるのがわかる。
このようにチャンク処理の成功毎にジョブリポジトリの更新を行うことで、バッチ途中で処理に失敗してしまった場合でも、常に、成功したチャンク以降の処理からチャンク
単位での再実行を行うことができる。チャンク処理の成功毎にジョブリポジトリの更新を行うという方法は、ジョブ実行に失敗して再実行を行う場合の処理量は少ない反面、ジョブリポジトリの更新頻度は高くなってしまうという側面を併せ持っている。
次に分散バッチ処理について述べる。分散バッチ処理とはバッチ処理を複数のコンピュータやプロセッサを利用して、分散して実行することである。バッチ処理は、単純な処理の繰り返しを行う処理が含まれている場合があるなど分散処理に向いており、分散処理によって効率的にバッチ処理を実行することが可能である。分散バッチ処理の処理モデルとして大きく以下の2つの形態が挙げられる。
○1つのバッチジョブを複数のサーバで分散処理する形態
ある膨大な件数の処理を行う1つのバッチジョブを、複数のサーバで分散処理する場合などに相当する。このとき、バッチジョブの実行自体は複数のサーバに分散すればするほど性能が上がるが、バッチジョブの実行状況はある程度まとめて管理することが望ましい。この理由は、ジョブ全体の状態を取得する場合や、ジョブの再実行を行う際は、各実行サーバでの実行結果を集める必要があり、これらは分散しているよりまとめて管理されているほうが高速に取得可能であるからである。したがってジョブの実行状態はまとめて管理されることが望ましい。
また、1つのバッチジョブを分割して同時に実行するので、ジョブリポジトリの更新タイミングが複数の実行サーバ間で合ってしまい、ジョブリポジトリ用リソースのアクセスに時間的に偏りが生じてしまうという側面もある。
○複数種類のバッチジョブを複数のサーバで分散処理する形態
異なるさまざまな種類のジョブが複数サーバで実行される場合である。また、同じジョブでも実行時に与えるパラメータ(例えばチャンクサイズ)が異なる場合などもこれに該当する。
図6に分散バッチ処理の概略図を示す。本実施形態ではジョブリポジトリにジョブの実行状態を保存するシステムを対象としているので、ジョブリポジトリを記述している。ジョブリポジトリは単体あるいは複数のリソースに分散して格納される。
ここで、分散バッチ処理においてジョブリポジトリの更新性能が低下した場合について考える。ジョブリポジトリの更新性能低下により、膨大な実行サーバのジョブリポジトリ更新処理がボトルネックとなりバッチジョブ全体の性能が低下してしまう恐れがある。したがって、何らかの対応を行う必要がある。しかし上記の1点目によりジョブの実行状態はまとめて管理されることが望ましいため、ジョブリポジトリの更新性能が低下したときに単純にジョブリポジトリ用のリソースを追加するという対応は好ましくない。
[本実施形態の概要]
上記のように、ジョブリポジトリの更新性能が低下したときに単純にジョブリポジトリ用のリソースを追加するという対応は好ましくない。したがって、本実施形態では、ジョブリポジトリの更新回数を減らす、または更新するデータ量を少なくするなど、ジョブリポジトリの性能低下時用に負荷を低減したジョブリポジトリ更新方法を導入する。
具体的には、通常はチャンク処理の成功毎にジョブリポジトリ更新を行うが、ジョブリポジトリの性能が低下した場合、処理の失敗時にのみ更新する方法に変更する。これによりジョブリポジトリの更新頻度を低下させることができ、ジョブリポジトリの性能低下による影響を低減することができる。
初めに、本実施形態のシステム全体の構成を簡略化して示す図7を用いて、分散バッチ処理において、ジョブリポジトリ更新性能低下時に、ジョブリポジトリ更新方法を変更することによって、ジョブリポジトリ更新性能の低下の影響を低減する構成の概要について説明する。
制御サーバ210はバッチジョブを各実行サーバ220に振り分ける。各実行サーバ220は与えられたバッチジョブを実行する。通常は、図4および図5に示したように、チャンク単位の処理が正常終了した時点でジョブ実行状態の保存、つまりジョブリポジトリの更新を行う。
ここで、ジョブリポジトリ更新処理の性能が低下した場合を考える。上で説明したとおり、通常の状態では、上で述べたようにチャンク単位の処理が正常終了するたびにジョブリポジトリの更新を行っている。これを、ジョブリポジトリ更新性能の低下時には、チャンク処理にエラーが起きたときのみにジョブリポジトリを更新するように変更する。例えば、3つのチャンクの処理を正常に実行し、4つ目のチャンクの処理中にエラーが起きた場合、通常時の方法では、ジョブリポジトリへのアクセスが3回発生するのに対して、エラーが発生したときのみジョブリポジトリを更新する方法では、1回しかアクセスが発生しない。
エラーが発生したときのみジョブリポジトリを更新する方法では、ジョブリポジトリの内容は、図4および図5中、ジョブリポジトリ状態が「正常」でなく「異常」あるいは「縮退運転」に変わり、レコード番号は処理が失敗したレコード番号を示す。記録フォーマット自体は、記録方法の変更前後で同じである。このように、処理が失敗したデータ位置を保持しつつ、ジョブリポジトリ用のDBへのアクセスを減らすことができる。これによって、ジョブリポジトリ更新性能の低下による影響を低減することができる。
[本実施形態の構成]
本実施形態の構成を図8を参照して詳細に説明する。
図8を参照すると、本実施形態は、分散バッチ処理を制御する制御サーバ210と、制御サーバ210により制御されて各バッチ処理を実行する複数の実行サーバ220(実行サーバ群)と、ジョブリポジトリ230とから構成される。
制御サーバ210は、処理実行制御部211と、ジョブリポジトリ管理部212と、ジョブリポジトリ更新制御部213とから構成される。処理実行制御部211は、処理を行う必要があるバッチ処理群を、各実行サーバ220に振り分け、実行を制御する。ジョブリポジトリ管理部212は、ジョブリポジトリ用のリソースが正常に動作しているかどうかの監視と、ジョブリポジトリの内容を管理する。ジョブリポジトリ更新制御部213は、実行サーバ220のジョブリポジトリ更新部222に対してジョブリポジトリ更新方法(記録方法)の変更を指示する。
各実行サーバ220は、処理実行部221と、ジョブリポジトリ更新部222とから構成される。処理実行部221はバッチジョブの実行を行う。ここでは例として入力用のDB240と、結果出力用のDB250とを記述している。ジョブリポジトリ更新部222は、バッチジョブ実行に合わせて、ジョブリポジトリ230の更新を行う。こちらも例として複数のDB231から構成されるジョブリポジトリを記述している。すなわち、ジョブリポジトリ231は、ジョブリポジトリ用リソース群で構成される。
[本実施形態の動作]
本実施形態の動作について、図9のフローチャートを参照して説明する。
まず、制御サーバ210の処理実行制御部211が、各実行サーバ220にジョブを振り分け、実行を指示する(ステップS201)。
次に、上記の指示を受けて、各実行サーバ220の処理実行部221にてジョブ実行が開始される(ステップS202)。各実行サーバ220はジョブの実行に合わせてジョブリポジトリ更新を行い、ジョブの実行状況の保存を行う。
ジョブの開始とともに、制御サーバ210のジョブリポジトリ管理部212は、ジョブリポジトリ用リソースの状態を監視する(ステップS203)。そして、ジョブリポジトリ管理部212は、ジョブリポジトリ更新性能の低下を検知した場合、ジョブリポジトリ更新方法変更処理に入るようにジョブリポジトリ更新制御部213に指令する(ステップS204)。
制御サーバ210のジョブリポジトリ更新制御部213は、まず、更新方法の変更を行う一つの実行サーバ220の選択を行う(ステップS205)。次にジョブリポジトリ更新制御部213は、上記選択した実行サーバ220に対して、ジョブリポジトリ更新方法の変更を通知する(ステップS206)。ジョブリポジトリ更新制御部213は、すべての実行サーバ220に対してジョブリポジトリ更新方法の変更指示を行うまで、ステップS205、S206の処理を繰り返す。
各実行サーバ220のジョブリポジトリ更新部222は、ジョブリポジトリ更新制御部213からの上記通知を受けて、ジョブリポジトリ更新方法を変更する(ステップS207)。以降のジョブ実行についてのジョブリポジトリ更新処理は、ここで変更した方法を用いて行う。
[本実施形態の効果]
第1の効果は、分散バッチ処理実行基盤において、ジョブリポジトリ用リソースの更新処理性能が低下した場合に、各実行サーバのジョブリポジトリ更新方法を変更することにより、性能低下の影響を低減できる点である。
以下に、本実施形態のジョブリポジトリ更新方法の変更を用いることによる効果を、例を挙げて説明する。
具体例の前提を以下に述べる。1つの制御サーバ210に対して、100台の実行サーバ220があるシステムとする。1つのジョブのデータを100分割し、各実行サーバ220にて実行する。すべてのサーバ220でチャンクサイズを同じとする。1チャンクの実行にかかる時間を5秒、実行サーバ220はそれぞれ10000チャンクの処理を行うこととする。
想定するケースは、以下の2通りとする。
・ケースA:
全ての実行サーバが、ジョブの開始から終了まで、チャンク単位の処理が正常終了するごとに更新を実行する方法でジョブリポジトリを更新する。
・ケースB:
全ての実行サーバが、ジョブの開始から終了まで、チャンク単位の処理が失敗した場合のみに更新を実行する方法でジョブリポジトリを更新する。但し、ジョブが正常終了した時点では、その旨を記録するためにジョブリポジトリを更新する。
また、1台の実行サーバ220がジョブリポジトリ230の更新を1回行うのに0.1秒かかるものとする。各実行サーバ220上で行われるジョブ処理自体ではエラーは一切発生しないものとする。このとき、A、Bそれぞれのケースの場合について、処理完了までのサーバ1台あたりの平均処理時間を計算すると、おおよそ以下のようになる。
・ケースA
チャンク処理とジョブリポジトリの更新処理を10000回繰り返す。下の式では1台当たりの平均処理時間を計算しているので、100[台]で割っている。
((5[s] + 0.1[s]) * 10000[チャンク]) * 100[台] / 100[台]= 51000 [sec]
・ケースB
この場合、ジョブ処理自体ではエラーは発生しないので、ジョブリポジトリ更新処理は、処理終了時の一度のみとなる。したがって、各実行サーバはチャンク処理10000回と、ジョブ終了時の1回のジョブリポジトリ更新を行う。
(5[s] * 10000[チャンク] + 0.1[s]) * 100[台] / 100[台] ≒ 50000 [sec]
今回の例においては、サーバ1台あたりの平均処理時間に関して、ケースAの結果と比べた時、ケースBの方法では1000秒だけ処理時間が短いという結果になっている。つまり、ジョブリポジトリ更新性能の低下時に、チャンク単位の処理が正常終了するごとに更新を実行する方法から、チャンク単位の処理が失敗した場合のみに更新を実行する方法に変更することで、ジョブリポジトリ更新性能低下の影響を低減できることがわかる。
[第3の実施形態]
本実施形態では、ジョブリポジトリ更新性能が低下した場合、第2の実施形態のように、単純にすべての実行サーバ220のジョブリポジトリ更新方法を、エラー時のみに更新するという方法に変更するのではなく、各実行サーバ220毎に、実行しているジョブの属性に基づくジョブリポジトリ更新方法決定ポリシーによってジョブリポジトリ更新方法を決定する。これにより各実行ジョブ毎に適切なジョブリポジトリ更新方法を適用することを可能とする。
このため、本実施形態では、図10に示すように、第2の実施形態の構成に変更を加えている。まず制御サーバ210には、ジョブリポジトリ更新方法変更ポリシー214と、ジョブデータ215とを追加し、各実行サーバ220には、ジョブリポジトリ更新方法を決定するために使用する動的な情報を取得するためのジョブ実行状況取得部223を追加する。以下で本実施形態についての詳細な説明を行う。
第2の実施形態では、バッチジョブの実行時にエラーが生じたときのみにジョブリポジトリの更新を行うように変更した。しかしながら、バッチジョブの実行時にエラーが生じたときのみにジョブリポジトリの更新を行うという方法を取る場合、バッチジョブ実行プロセスが落ちてしまった場合など、エラーが生じたにもかかわらずジョブリポジトリへの更新が行われないという状況が発生しうる。この時、その実行サーバ220でエラーが起こらずにすべてのデータが正常に処理されていた場合、どこまでバッチジョブが実行されたのかという情報が記録されておらず、バッチジョブを再実行する際には、一番初めのデータから処理をやり直す必要がある。
つまり、ジョブリポジトリ更新の性能低下による影響を低減するということと、ジョブ再実行時にかかるコストを抑えるということは、トレードオフの関係にあると言える。
以下に挙げるいくつかのジョブは、ジョブの再実行時にかかるコストが大きいなどの理由から、エラー時のみにジョブリポジトリの更新を行うという方法を採用するのが不適切なケースである。
(1)割り当てられたバッチジョブを初めから再実行するコストが大きいバッチジョブ
実行サーバ220に割り当てられたバッチジョブを初めから再実行する必要があるが、扱うデータが非常に大きいなど、再実行時のコストが非常に大きいバッチジョブである。
(2)高い信頼性が求められるバッチジョブ
実行サーバ220に割り当てられたバッチジョブを初めから再実行することになるが、2回以上実行できないバッチジョブが存在する場合など、高い信頼性を持った状態管理が必要なバッチジョブである。
(3)実行時間が大きいバッチジョブ
実行サーバ220がダウンするなどしてしまった場合、実行サーバ220に割り当てられたバッチジョブを初めから再実行する必要があるが、大きな実行時間がかかっているバッチジョブは、再度その大きな実行時間をかける必要がある。したがって、ジョブリポジトリ更新性能の低下が発生した時点で実行時間の大きなバッチジョブについては、障害発生後も、各チャンクの処理成功毎にジョブリポジトリを更新するなどして、再度ジョブを最初から行うということを避ける、といった運用を行うのが望ましい。
(4)単位時間当たりのジョブリポジトリ更新処理回数が少ないバッチジョブ
単位時間当たりのジョブリポジトリ更新処理の回数が少ないバッチジョブの場合、もともとジョブリポジトリ用DBに与える負荷が少ないので、DBの障害時もその更新方法を変える必要がない可能性がある。
(5)異常終了する可能性が高いバッチジョブ
「スキップ回数」が多いなど、異常終了する可能性が高いジョブがその例である。ジョブリポジトリはエラーの再実行に備えるために更新するという側面が強いため、異常終了する可能性が高いバッチジョブについてはジョブリポジトリの更新を確実に行うことが望ましい。
このように、性能の低下を防ぐためにジョブリポジトリ更新の頻度を落とすべきジョブがある一方で、再実行時にかかるコストを抑えるべきジョブも存在する。したがって、本実施形態では、ジョブリポジトリ更新方法を複数用意し、また、それぞれの更新方法の適用ポリシーを定義する。以下にジョブリポジトリ更新方法を例として挙げる。
(a)1回のチャンク処理終了毎に更新(第2実施形態における通常時の更新方法)
(b)一定回数(2以上)のチャンク処理終了毎に更新
(c)一定件数の処理終了毎に更新
(d)一連の処理(サブジョブA→サブジョブB→サブジョブCというような一連の処理終了など)毎に更新
(e)エラー発生時のみに更新(第2実施形態におけるジョブリポジトリ更新性能低下時に採用する更新方法)
また、ジョブリポジトリ更新方法決定ポリシーに使用するジョブの属性の例を以下に列挙する。括弧内に、当該ジョブの属性がジョブ実行以前に定められるか(静的)、ジョブの実行過程で定められるか(動的)を付記する。
(ア)1件のデータ容量(静的データ)
(イ)チャンクサイズ(静的データ)
(ウ)ジョブが一連の処理を持つかどうか(静的データ)
(エ)サーバダウンの可能性(静的データ)
(オ)ジョブ実行時間(動的データ)
(カ)単位時間当たりのジョブリポジトリ更新回数(動的データ)
ジョブリポジトリ更新方法変更ポリシー214は、ジョブリポジトリの更新方法の変更についての指標を定めるものである。図11はジョブリポジトリ更新ポリシー214の一例である。この例のジョブリポジトリ更新ポリシー214は、5つのエントリを有する。各々のエントリは、更新方法とその適用条件とを有する。更新方法には、上記a〜eの5種類の更新方法の何れかが記述される。適用条件には、対応する更新方法を採用する条件が記述される。上側のエントリから順に適用の可否が判断され、最初に適用条件のマッチした更新方法が使用される。
例えば、ジョブリポジトリ230のDB状態が通常であれば、aの更新方法が使用される。また、ジョブリポジトリ230のDB状態が縮退運転で、然もDB障害発生時点のジョブ実行時間がm以上またはジョブリポジトリ更新処理がm[回/min]以上であれば、同じくaの更新方法が使用される。しかし、縮退運転であっても、DB障害発生時点のジョブ実行時間がm以上またはジョブリポジトリ更新処理がm[回/min]以上でなければ、次に、チャンクサイズがm以下か否かが判断され、そうであればbの更新方法が使用される。チャンクサイズがm以下でなければ、さらに1件のデータ容量がm[MB]以上か否かが判断され、そうであればcの更新方法が使用される。また、1件のデータ容量がm[MB]以上でなければ、ジョブが一連の処理単位を持つならばdの更新方法が使用され、そうでなければeの更新方法が使用される。
[本実施形態の構成]
図10を参照すると、本実施形態は、図8に示される第1の実施形態の構成と比較して、制御サーバ210にジョブリポジトリ更新方法変更ポリシー214と、ジョブデータ215とを有し、各実行サーバ220にジョブリポジトリ更新方法を決定するために使用する動的な情報を取得するためのジョブ実行状況取得部223を有する点で相違する。
実行サーバ220のジョブ実行状況取得部223は、ジョブ実行時にジョブリポジトリ更新方法変更ポリシー214で使用する動的なジョブデータを定期的に制御サーバ210に送信する機能を有する。なお、静的なデータは事前にジョブデータ215に存在する。
ジョブリポジトリの更新性能が低下した場合は、制御サーバ210のジョブリポジトリ更新制御部213は、格納されているジョブデータ215を参照して、ジョブリポジトリ更新方法変更ポリシー214に基づいたジョブリポジトリ更新方法の決定を行う。
[本実施形態の動作]
本実施形態の動作について、図12のフローチャートを参照して説明する。
まず、制御サーバ210の処理実行制御部211が、各実行サーバ220にジョブを振り分け、実行を指示する(ステップS301)。
次に、上記の指示を受けて、各実行サーバ220の処理実行部221にてジョブ実行が開始される(ステップS302)。各実行サーバ220はジョブの実行に合わせてジョブリポジトリ更新を行い、ジョブの実行状況の保存を行う。また、各実行サーバ220は、ジョブリポジトリ更新方法を決定するために使用する動的なジョブデータの取得を行い、制御サーバ210に送信する。
ジョブの開始とともに、制御サーバ210のジョブリポジトリ管理部212は、ジョブリポジトリ用リソースの状態を監視する(ステップS303)。そして、ジョブリポジトリ管理部212は、ジョブリポジトリ更新性能の低下を検知した場合、ジョブリポジトリ更新方法変更処理に入るようにジョブリポジトリ更新制御部213に指令する(ステップS304)。
制御サーバ210のジョブリポジトリ更新制御部213は、まず、更新方法の変更を行う一つの実行サーバ220の選択を行う(ステップS305)。次にジョブリポジトリ更新制御部213は、ジョブデータ215から、当該実行サーバ220のジョブにかかる静的および動的なジョブデータを取得する(ステップS306)。次にジョブリポジトリ更新制御部213は、取得したジョブデータを元に、当該実行サーバ220にて実行されているバッチジョブが、ジョブリポジトリ更新ポリシーのどの更新方法の適用条件に当てはまるかの検査を行い、更新方法を決定する(ステップS307)。そして、ジョブリポジトリ更新制御部213は、上記選択した実行サーバ220に対して、ジョブリポジトリ更新方法の変更を通知する。ジョブリポジトリ更新制御部213は、すべての実行サーバ220に対してジョブリポジトリ更新方法の変更指示を行うまで、ステップS305〜S307の処理を繰り返す。
各実行サーバ220のジョブリポジトリ更新部222は、ジョブリポジトリ更新制御部213からの上記通知を受けて、ジョブリポジトリ更新方法を通知された方法に変更する(ステップS308)。
[本実施形態の効果]
本実施形態によれば、第2の実施形態と同様の効果が得られると共に、以下のような効果が得られる。
各実行サーバ220毎に、実行中のバッチジョブの情報をジョブリポジト更新方法決定の判断材料として使用することで、ジョブリポジトリ更新の性能低下による影響の低減と、ジョブ再実行時にかかるコストのバランスを取った柔軟な運用が可能になる。
また、各実行サーバ220毎に、実行中のバッチの処理結果から動的に得られるバッチジョブ実行に関する情報を、ジョブリポジト更新方法決定の判断材料として使用することで、さらに柔軟な運用が可能である。具体的に説明すると、ある実行サーバ220について、思ったような速度が出ないなどの予想外のジョブ実行時間の増大や、入力データの事前チェックを行わないでジョブを実行した結果、実行してみたら入力データに不備が多かったなど、実行して初めてわかるジョブの情報もある。本実施形態では、このような動的な情報を使用して、より柔軟性の高い運用を可能としている。
以下では、本実施形態を用いることによる効果を、例を挙げて説明する。具体例の前提を以下に述べる。
1つの制御サーバ210に対して、100台の実行サーバ220があるシステムとする。1つのジョブのデータを100分割し、各実行サーバ220にて実行する。すべてのサーバ220でチャンクサイズを同じとする。1つのチャンクの実行にかかる時間を5秒、実行サーバ220はそれぞれ10000チャンクの処理を行うこととする。
想定するケースは、以下の3通りとする。
・ケースA:
全ての実行サーバが、ジョブの開始から終了まで、チャンク単位の処理が正常終了するごとに更新を実行する方法でジョブリポジトリを更新する。
・ケースB:
全ての実行サーバが、ジョブの開始から終了まで、チャンク単位の処理が失敗した場合のみに更新を実行する方法でジョブリポジトリを更新する。
ケースC:
全ての実行サーバが、ジョブの開始から終了まで、実行サーバ毎に適した更新方法によってジョブリポジトリを更新する(つまり、本実施形態による方法)
なお、ここではケースCにおける実行サーバ毎に適した更新方法を、図13に示す単純化したものとして説明する。すなわち、ジョブリポジトリ230のDB状態が通常であるか、または、縮退運転であって、且つ実行サーバに割り当てられた処理をすべて実行するまでにサーバダウンが発生する可能性が統計的に見て10パーセント以上ならば、図11中のaの更新方法を用い、それ以外はeの更新方法を用いるものとする。
また、1台の実行サーバ220がジョブリポジトリ230の更新を1回行うのに0.1秒かかるものとする。また、100台のサーバのうち、50台のサーバが10000チャンク目の処理終了直前に100パーセントの確率でダウンし、ジョブ実行プロセスが落ちるものとする。ダウンしたサーバ、ジョブ実行プロセスは即座に復旧するものとし、復旧にかかる時間は0[sec]とする。また、各実行サーバ220上で行われるジョブ処理自体ではエラーは一切発生しないものとする。このとき、A、B、Cのケースそれぞれについて、処理完了までのサーバ1台あたりの平均処理時間を計算するとおおよそ以下のようになる。
・ケースA
チャンク処理とジョブリポジトリの更新処理を10000回繰り返す。50台のサーバについては10000チャンク目の処理途中にサーバがダウンするが、瞬時に復旧し100000チャンク目から処理を再開する。
((5[s] + 0.1[s]) * 10000[チャンク] * 50[台]) + (5[s] + 0.1[s]) * 10001[チャンク] * 50[台])) / 100[台] ≒ 51002[sec]
・ケースB
この場合、ジョブ処理自体ではエラーは発生しないので、ジョブリポジトリ更新処理は、処理終了時の一度のみとなる。ダウンしないサーバに関しては、チャンク処理10000回と、ジョブ終了時の1回のジョブリポジトリ更新となる。また、ダウンするサーバに関しては、10000チャンク目の処理の直前にダウンした時点で、ジョブリポジトリに実行情報は残されていないので、再度10000チャンクの実行が必要となるため、合計20000チャンクを実行することになる。
((5[s] * 10000[チャンク] + 0.1[s]) * 50[台] + (5[s] * 20000[チャンク] + 0.1[s]) * 50[台])) / 100[台] ≒ 75000[sec]
・ケースC
ダウンしないサーバに関しては、チャンク処理10000回と、1回のジョブリポジトリ更新となる。また、ダウンするサーバに関してであるが、10000チャンク目の処理終了直前に100パーセントの確率でダウンするということは、失敗確率10パーセント以上であるため、aの更新方法を用いるということになる。復旧後には10000チャンク目から処理を再開することができるので、チャンク処理とジョブリポジトリの更新処理を10001回繰り返すことになる。
((5[s] * 10000[チャンク] + 0.1[s]) * 50[台] + (5[s] + 0.1[s]) * 10001[チャンク] * 50[台])) / 100[台] ≒50500 [sec]
今回の例においては、サーバ1台あたりの平均処理時間に関して、ケースAの結果と比べた時、ケースBでは約25000秒の増加、ケースCは約500秒の減少という結果となった。通常、ケースAと比べて、ケースBはジョブリポジトリ更新回数が減るので、処理時間が減るはずだが、今回のようにサーバがダウンしてしまう場合は、処理をデータの一番初めから再実行する必要があるので、処理時間が増大してしまうこともある。
これに対し、ケースCの場合は、実行サーバに応じた更新方法を用いていることから、処理時間を減らすことに成功している。つまり、ジョブリポジトリ更新性能の低下時に、本実施形態を用いることによって、ジョブリポジトリ更新の性能低下による影響の低減と、ジョブ再実行時にかかるコストのバランスを取った運用を行うことができる。
このように本実施形態によれば、バッチ処理分散実行基盤において、バッチジョブの実行状態保存処理の性能低下を考慮した制御装置及び制御システムを提供することができる。
また本実施形態によれば、バッチ処理分散実行基盤において各ジョブの実行状態の保存を行う時に、実行状態保存処理の性能低下時には、実行状態の保存方法を保存用リソースへのアクセスを減らすような方法に変更する。これによって、実行状態保存処理の性能低下が及ぼすバッチ処理全体への影響を低減するシステムを提供することができる。
また本実施形態によれば、性能低下時の実行状態保存方法の変更に関して、ジョブの特徴及びジョブ実行によって得られる情報から、どのような変更を適用するかどうかの判断を行う部分を有し、それによりバッチ処理実行の性能と信頼性のバランスを制御することを可能とするシステムを提供することができる。
本発明は、バッチジョブを実行する機能を有するバッチ処理システム、特に分散バッチ処理システムに好適である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有し、
前記第2のコンピュータは、
前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
を有し、
前記第1のコンピュータは、
前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する実行状態記録手段
を有する
バッチ処理システム。
(付記2)
前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
付記1に記載のバッチ処理システム。
(付記3)
前記第2のコンピュータは、さらに、
前記第1のコンピュータで実行される前記バッチジョブの属性を記憶する属性記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記属性記憶手段に記憶されている前記バッチジョブの属性とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記1または2に記載のバッチ処理システム。
(付記4)
前記第1のコンピュータは、さらに、
自コンピュータにおける前記バッチジョブの実行状況を前記第2のコンピュータに通知する実行状況通知手段
を有し、
前記第2のコンピュータは、さらに、
前記第1のコンピュータから通知される前記バッチジョブの実行状況を記憶する実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記実行状況記憶手段に記憶されている前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記1または2に記載のバッチ処理システム。
(付記5)
前記第1のコンピュータは、さらに、
自コンピュータにおける前記バッチジョブの実行状況を前記第2のコンピュータに通知する実行状況通知手段
を有し、
前記第2のコンピュータは、さらに、
前記第1のコンピュータで実行される前記バッチジョブの属性と前記第1のコンピュータから通知される前記バッチジョブの実行状況とを記憶する属性・実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記属性・実行状況記憶手段に記憶されている前記バッチジョブの属性および前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記1または2に記載のバッチ処理システム。
(付記6)
前記第1のコンピュータが複数存在する
付記1乃至5の何れかに記載のバッチ処理システム。
(付記7)
バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有するバッチ処理システムが実行する制御方法であって、
前記第2のコンピュータが、前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出し、
前記第2のコンピュータが、前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択し、
前記第2のコンピュータが、前記選択した記録方法を前記第1のコンピュータに通知し、
前記第1のコンピュータが、前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する
バッチ処理システム制御方法。
(付記8)
前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
付記7に記載のバッチ処理システム制御方法。
(付記9)
前記第2のコンピュータにおける前記記録方法の選択では、前記検出した前記性能と前記第1のコンピュータで実行される前記バッチジョブの属性とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記7または8に記載のバッチ処理システム制御方法。
(付記10)
前記第1のコンピュータが、自コンピュータにおける前記バッチジョブの実行状況を前記第2のコンピュータに通知し、
前記第2のコンピュータにおける前記記録方法を選択では、前記検出した前記性能と前記通知された前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記7または8に記載のバッチ処理システム制御方法。
(付記11)
前記第1のコンピュータが、自コンピュータにおける前記バッチジョブの実行状況を前記第2のコンピュータに通知し、
前記第2のコンピュータにおける前記記録方法を選択では、前記検出した前記性能と前記第1のコンピュータで実行される前記バッチジョブの属性と前記第1のコンピュータから通知される前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記7または8に記載のバッチ処理システム制御方法。
(付記12)
バッチジョブを実行する第1のコンピュータと前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置とに接続され、
前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
を有するコンピュータ。
(付記13)
前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
付記12に記載のコンピュータ。
(付記14)
さらに、前記第1のコンピュータで実行される前記バッチジョブの属性を記憶する属性記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記属性記憶手段に記憶されている前記バッチジョブの属性とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記12または13に記載のコンピュータ。
(付記15)
さらに、前記第1のコンピュータから通知される前記バッチジョブの実行状況を記憶する実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記実行状況記憶手段に記憶されている前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記12または13に記載のコンピュータ。
(付記16)
さらに、前記第1のコンピュータで実行される前記バッチジョブの属性と前記第1のコンピュータから通知される前記バッチジョブの実行状況とを記憶する属性・実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記属性・実行状況記憶手段に記憶されている前記バッチジョブの属性および前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記12または13に記載のコンピュータ。
(付記17)
バッチジョブを実行する第1のコンピュータと前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置とに接続されたコンピュータを、
前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
して機能させるためのプログラム。
(付記18)
前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
付記17に記載のプログラム。
(付記19)
前記選択手段は、前記検出した前記性能と前記第1のコンピュータで実行される前記バッチジョブの属性とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記17または18に記載のプログラム。
(付記20)
さらに、前記第1のコンピュータから通知される前記バッチジョブの実行状況を記憶する実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記第1のコンピュータから通知される前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記17または18に記載のプログラム。
(付記21)
さらに、前記第1のコンピュータで実行される前記バッチジョブの属性と前記第1のコンピュータから通知される前記バッチジョブの実行状況とを記憶する属性・実行状況記憶手段を有し、
前記選択手段は、前記検出した前記性能と前記第1のコンピュータで実行される前記バッチジョブの属性と前記第1のコンピュータから通知される前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
付記17または18に記載のプログラム。
110…第1のコンピュータ
111…実行状態記録手段
112…実行状況通知手段
120…記憶装置
130…第2のコンピュータ
131…検出手段
132…選択手段
133…通知手段
134…属性記憶手段
135…実行状況記憶手段

Claims (9)

  1. バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有し、
    前記第2のコンピュータは、
    前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
    前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
    前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
    を有し、
    前記第1のコンピュータは、
    前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する実行状態記録手段
    を有する
    バッチ処理システム。
  2. 前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
    請求項1に記載のバッチ処理システム。
  3. バッチジョブを実行する第1のコンピュータと、前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置と、前記第1のコンピュータと前記記憶装置とに接続された第2のコンピュータとを有するバッチ処理システムが実行する制御方法であって、
    前記第2のコンピュータが、前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出し、
    前記第2のコンピュータが、前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択し、
    前記第2のコンピュータが、前記選択した記録方法を前記第1のコンピュータに通知し、
    前記第1のコンピュータが、前記第2のコンピュータから通知された前記記録方法を用いて、自コンピュータにおける前記バッチジョブの実行状態を前記記憶装置に記録する
    バッチ処理システム制御方法。
  4. 前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
    請求項3に記載のバッチ処理システム制御方法。
  5. バッチジョブを実行する第1のコンピュータと前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置とに接続され、
    前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
    前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
    前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
    を有するコンピュータ。
  6. 前記複数の記録方法は、互いに前記記憶装置へのアクセス頻度が相違する
    請求項5に記載のコンピュータ。
  7. さらに、前記第1のコンピュータで実行される前記バッチジョブの属性を記憶する属性記憶手段を有し、
    前記選択手段は、前記検出した前記性能と前記属性記憶手段に記憶されている前記バッチジョブの属性とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
    請求項5または6に記載のコンピュータ。
  8. さらに、前記第1のコンピュータから通知される前記バッチジョブの実行状況を記憶する実行状況記憶手段を有し、
    前記選択手段は、前記検出した前記性能と前記実行状況記憶手段に記憶されている前記バッチジョブの実行状況とに応じて、前記第1のコンピュータ毎に前記記録方法を選択する
    請求項5または6に記載のコンピュータ。
  9. バッチジョブを実行する第1のコンピュータと前記第1のコンピュータにおける前記バッチジョブの実行状態を記録する記憶装置とに接続されたコンピュータを、
    前記バッチジョブの実行状態を前記記憶装置に記録する処理の性能を検出する検出手段と、
    前記検出した前記性能に応じて、前記記憶装置への前記バッチジョブの実行状態を記録する複数種類の記録方法の中から、前記第1のコンピュータで使用する記録方法を選択する選択手段と、
    前記選択された記録方法を前記第1のコンピュータに通知する通知手段と
    して機能させるためのプログラム。
JP2012061389A 2012-03-19 2012-03-19 バッチ処理システム Expired - Fee Related JP5942509B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012061389A JP5942509B2 (ja) 2012-03-19 2012-03-19 バッチ処理システム
US13/789,026 US9244719B2 (en) 2012-03-19 2013-03-07 Batch processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012061389A JP5942509B2 (ja) 2012-03-19 2012-03-19 バッチ処理システム

Publications (2)

Publication Number Publication Date
JP2013196238A true JP2013196238A (ja) 2013-09-30
JP5942509B2 JP5942509B2 (ja) 2016-06-29

Family

ID=49158916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012061389A Expired - Fee Related JP5942509B2 (ja) 2012-03-19 2012-03-19 バッチ処理システム

Country Status (2)

Country Link
US (1) US9244719B2 (ja)
JP (1) JP5942509B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6083290B2 (ja) * 2013-03-27 2017-02-22 日本電気株式会社 分散処理システム
JP6163931B2 (ja) * 2013-07-18 2017-07-19 富士通株式会社 情報取得プログラム、情報取得方法および情報取得装置
US10387240B2 (en) * 2015-08-12 2019-08-20 Avekshaa Technologies Private Ltd System and method for monitoring and measuring application performance using application index
US10402367B2 (en) * 2016-01-13 2019-09-03 Salesforce.Com, Inc. Batch job processing using a database system
US11106492B2 (en) * 2018-04-27 2021-08-31 EMC IP Holding Company LLC Workflow service for a cloud foundry platform
US11347564B2 (en) * 2019-04-24 2022-05-31 Red Hat, Inc. Synchronizing batch job status across nodes on a clustered system
US11403134B2 (en) * 2020-01-31 2022-08-02 Hewlett Packard Enterprise Development Lp Prioritizing migration of data associated with a stateful application based on data access patterns
US20220382748A1 (en) * 2021-06-01 2022-12-01 Charter Communications Operating, Llc Automated batch generation and subsequent submission and monitoring of batches processed by a system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094422A (ja) * 2002-08-30 2004-03-25 Hitachi Ltd チェックポイント情報採取方法及びその実施装置並びにその処理プログラム
JP2010152469A (ja) * 2008-12-24 2010-07-08 Hitachi Electronics Service Co Ltd ログ収集処理監視システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2809271B2 (ja) 1996-04-15 1998-10-08 日本電気株式会社 ジョブ再実行方式
JP3139536B2 (ja) 1997-05-26 2001-03-05 日本電気株式会社 分散バッチジョブ処理システムおよびその障害時におけるジョブの自動再起動方法
US20080010497A1 (en) * 2006-06-12 2008-01-10 Curtis Duane Kronlund Selecting a Logging Method via Metadata
US8171475B2 (en) * 2007-08-29 2012-05-01 International Business Machines Corporation Intelligent retry method using remote shell

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094422A (ja) * 2002-08-30 2004-03-25 Hitachi Ltd チェックポイント情報採取方法及びその実施装置並びにその処理プログラム
JP2010152469A (ja) * 2008-12-24 2010-07-08 Hitachi Electronics Service Co Ltd ログ収集処理監視システム

Also Published As

Publication number Publication date
US20130247050A1 (en) 2013-09-19
JP5942509B2 (ja) 2016-06-29
US9244719B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
JP5942509B2 (ja) バッチ処理システム
US10884837B2 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
JP5440273B2 (ja) スナップショット管理方法、スナップショット管理装置、及びプログラム
US20190384648A1 (en) Proactive high availability in a virtualized computer system
JP5140633B2 (ja) 仮想化環境において生じる障害の解析方法、管理サーバ、及びプログラム
US8046632B2 (en) Backup management method based on mode of failure
US11544137B2 (en) Data processing platform monitoring
EP3400528B1 (en) Deferred server recovery in computing systems
WO2011074284A1 (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラムを格納した記憶媒体
JP2007207219A (ja) 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US11126454B2 (en) Enforcing retention policies with respect to virtual machine snapshots
US20200167252A1 (en) Method and apparatus for managing storage system
CN111880906A (zh) 虚拟机高可用性管理方法、系统以及存储介质
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US11921745B2 (en) Preventing data loss in event driven continuous availability systems
JP2011103030A (ja) インシデント管理方法および運用管理サーバ
US20180225148A1 (en) Resource pre-configuration
US10860431B2 (en) System and method for fault tolerant backup generation in a virtual environment
US9195528B1 (en) Systems and methods for managing failover clusters
JP2012118841A (ja) 仮想マシン管理装置、移行先決定方法および移行先決定プログラム
US10599530B2 (en) Method and apparatus for recovering in-memory data processing system
US11461131B2 (en) Hosting virtual machines on a secondary storage system
JP2008242524A (ja) ファイル管理装置、ファイル管理方法、プログラム、コンピュータ読み取り可能な記録媒体
JP5601587B2 (ja) プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム
JP5466740B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160509

R150 Certificate of patent or registration of utility model

Ref document number: 5942509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees