(57)【要約】【課題】キューが実行待ちジョブで満杯のとき、サービスへの新規依頼がすべて拒否されていた。そのため、サービスのスループットが制限されていた。【解決手段】サービスは新規依頼を受けたとき、キューが実行待ちジョブで満杯であるか否かを確認する。キューが満杯のとき、サービスはキュー内から、実行しても失敗する可能性の高いジョブを探す。情報処理システムは該当するジョブをキューから取り除き、新規依頼を引き受ける。【選択図】図２
2020047137.tif 000002
【特許請求の範囲】
【請求項１】
依頼されたジョブを実行する情報処理システムであって、
前記ジョブを引き受けた順番を保ったまま保持するキューと、
前記キューの先頭から取得したジョブを実行するジョブ実行部と、
依頼を受けたときに前記ジョブキューの中に特定数の実行待ちジョブが保持されている場合に限り、前記ジョブキュー内の実行待ちジョブをジョブ実行部で実行すべきか否かを弁別するジョブ弁別部と、
前記ジョブ弁別部が前記実行待ちジョブを弁別する基準となるデータを保持する統計データ記憶部と、
前記ジョブ弁別部が実行すべきでないと判定した実行待ちジョブを前記キューから取り除き、クライアントからのジョブ依頼を引き受ける依頼受付部と、
を有することを特徴とする情報処理システム。
【請求項２】
ジョブ実行部で処理したジョブの結果をもとに、ジョブ弁別部がジョブを弁別する際の基準となるデータを算出し統計データ記憶部に記録する統計データ算出部を有することを特徴とする請求項１に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムのジョブ管理方法に関する。
【背景技術】
【０００２】
限られたリソースの中でクライアントからの依頼をより多く効率的に処理するサービスが提案されている。特許文献１は、実行待ちジョブの処理時間を予想して優先度をつけ、システムへの負荷が少ない短時間で実行可能なジョブを優先的に効率よく実行する方法を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８６５８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、実行待ちジョブの優先順位付けや並び替えでは対処できない次の問題が残る。キューの容量を超える数のジョブが依頼された場合は超えた分の依頼が拒否され、サービスのスループットが低下することである。この問題の解決のためには、新たな依頼の拒否のみでなく、現在キュー内にある実行待ちジョブの精査が必要である。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、本発明に係る情報処理システムは、
新規依頼を受けたとき、キューが実行待ちジョブで満杯である場合、キュー内から実行しても失敗する可能性の高いジョブを取り除き、新規依頼を引き受けるサービスを提案する。本サービスはすなわち、
クライアントから依頼されたジョブを実行する情報処理システムであって、
前記ジョブを引き受けた順番を保ったまま保持するキューと、
前記キューの先頭から取得したジョブを実行するジョブ実行部と、
クライアントからジョブ依頼を受けたときに前記ジョブキューの中に特定数の実行待ちジョブが保持されている場合に限り、前記ジョブキュー内の実行待ちジョブをジョブ実行部で実行すべきか否かを弁別するジョブ弁別部と、
前記ジョブ弁別部が前記実行待ちジョブを弁別する基準となるデータを保持する統計データ記憶部と、
前記ジョブ弁別部が実行すべきでないと判定した実行待ちジョブを前記キューから取り除き、クライアントからのジョブ依頼を引き受ける依頼受付部と、
を有することを特徴とする。
【発明の効果】
【０００６】
本発明に係る情報処理システムによれば、情報処理システムのスループットを向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理システムが動作する機器のハードウエア構成図
【図２】情報処理システムの機能構成を示すブロック図
【図３】情報処理システムが依頼を受けたときの処理フロー
【図４】情報処理システムの実行待ちジョブを弁別するときの処理フロー
【図５】情報処理システムのジョブ実行時の処理フロー
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。
【０００９】
本発明である情報処理システムの特徴は、実行待ちジョブで満杯になったキューに新規ジョブを追加するための空き容量を作るため、実行しても失敗する可能性の高い実行待ちジョブをキューから取り除く点である。キューの容量を超える依頼がある状況下では特に、失敗する可能性の高いジョブをキューから積極的に取り除いて新規ジョブを引き受けることにより、情報処理システムのスループットを向上させることができる。
【００１０】
図１を用いて情報処理システム１が動作する機器のハードウエア構成を説明する。情報処理システム１はコンピュータプログラムとしてＨＤＤ（１００２）あるいはＲＯＭ（１００３）に格納されている。ＣＰＵ（１００５）がＯＳとコンピュータプログラムをＨＤＤ（１００２）あるいはＲＯＭ（１００３）から読み出してＲＡＭ（１００４）にロードし実行する。処理結果はファイルとしてＨＤＤ（１００２）に格納、あるいはデータとしてＲＡＭ（１００４）に記憶する。情報処理システム１は通信装置（１００６）を介してネットワークに接続された他のコンピュータなどと通信を行うことができる。これらのハードウエアはバス（１００１）で互いに接続されていてコンピュータプログラムから操作できるように構成されている。
【００１１】
図２に、情報処理システムの機能構成を示す。情報処理システム１はクライアントの依頼を、受けた順に処理するコンピュータプログラムである。情報処理システム１は、依頼受付部２、ジョブ作成部３、キュー４、ジョブ実行部５、統計データ算出部８、統計データ記憶部７、ジョブ弁別部６、タイムアウト処理部９、ジョブ結果通知部１０を持つ。
【００１２】
依頼受付部２はクライアントから依頼を受ける窓口であり、依頼を引き受けるか否かを判定する一連の処理の制御を担う。
【００１３】
ジョブ作成部３は、依頼受付部２が受信した依頼をもとにジョブを作成する。ジョブは、クライアントの依頼に関する情報のほか、自分の制限時間を管理する時間管理機能を持つ。時間管理はジョブがキュー４に追加されるときに開始され、ジョブが完了するまで続く。ジョブ完了前にタイムアウトしたジョブはタイムアウト処理部９に通知する。
【００１４】
キュー４は、ジョブ作成部３が作成したジョブを追加された順番で保持する。キュー４に保持されたジョブを実行待ちジョブと呼ぶ。キュー４は容量を超える数のジョブは保持できない。
【００１５】
ジョブ実行部５は、キュー４の先頭のジョブ、つまり依頼された時刻が最も古いジョブを実行する。ジョブを実行する際、ジョブの開始から完了までにかかった処理時間を計測する。
【００１６】
ジョブ弁別部６は、実行待ちジョブで満杯になったキュー４から実行しても失敗する可能性の高い実行待ちジョブを検出するため、実行待ちジョブに対し、統計データ記憶部７のデータを基準値としたフィルタリングを実行する。本実施形態ではジョブ弁別部６は、残り時間が予想処理時間より少ない実行待ちジョブを検索する。本実施形態では直近一つ以上のジョブの平均処理時間を実行待ちジョブの予想処理時間とする。該当する実行待ちジョブは、これからジョブを実行してもジョブが完了する前にタイムアウトする可能性が高いため、キューから除外する対象となる。
【００１７】
統計データ記憶部７は、ジョブ弁別部６のフィルタリングの基準値となるデータを記憶する。本実施形態では、直近複数ジョブの処理時間とそれらの平均処理時間を記憶する。
【００１８】
統計データ算出部８は、ジョブ実行部５が実行したジョブの結果から、ジョブ弁別部６がフィルタリングの基準値とするデータを算出し、算出結果を統計データ記憶部７に記録する。本実施形態では直近複数ジョブの処理時間とそれらの平均値を算出するが、直近ジョブの結果から得られ、ジョブ弁別部６のフィルタリングの基準値となる値であれば、どのような計測値も基準として用いることができる。また、ジョブを分類することが可能な場合は、ジョブの種類ごとのフィルタリング基準値を算出することも可能である。ジョブの分類とは、例えば、通信が伴うジョブであればアクセス先のアドレスによる分類が可能であり、データ変換ジョブであれば変換前後のデータの形式やデータのサイズによる分類が可能である。
【００１９】
タイムアウト処理部９はタイムアウトしたジョブの後処理を行う。実行待ちジョブについてはキュー４から取り除き、実行中ジョブについては実行状況によってはジョブを停止する。
【００２０】
ジョブ結果通知部１０はジョブの結果をクライアントに通知する。ジョブの結果には、成功、失敗、タイムアウトなどがある。
【００２１】
図３は、情報処理システム１がクライアントから依頼を受けた時の処理フローである。
情報処理システム１は依頼受付部２でクライアントから依頼を受けると、まずはジョブ弁別部６で、キュー４内の実行待ちジョブ数が特定数を超えたか否かを判定する（Ｓ１０１）。本実施例では実行待ちジョブ数がキュー４の容量と等しいか否かを判定するものとする。
【００２２】
ここで実行待ちジョブ数がキュー４の容量未満である場合、情報処理システム１はジョブ作成部３でクライアントの依頼をもとにジョブを作成する（Ｓ１０４）。ジョブ作成部３は作成したジョブに時間管理を開始させ（Ｓ１０５）、ジョブをキュー４の最後尾に追加する（Ｓ１０６）。
【００２３】
Ｓ１０１の判定処理において、実行待ちジョブ数がキュー４の容量と等しい場合は、キュー４にジョブを追加することができない。従来はここでクライアントに対し依頼を拒否するが、本発明では拒否決定の前にキュー４内のジョブ弁別処理（Ｓ２００）を実行する。弁別処理（Ｓ２００）では、キュー４の中から取り除くことのできる実行待ちジョブを探し、該当するものをキュー４から取り除く。詳細は後述する。
【００２４】
キュー４から実行待ちジョブを取り除いた場合（Ｓ１０２）、情報処理システム１は依頼を引き受けることが可能となる。そこで情報処理システム１はジョブ作成部３で新規ジョブを作成し、ジョブの時間管理を開始して、キュー４に追加する（Ｓ１０４、Ｓ１０５、Ｓ１０６）。
【００２５】
また、弁別処理（Ｓ２００）でキュー４から実行待ちジョブを取り除くことができなかった場合、情報処理システム１は新規依頼を引き受けることができない。このときは依頼受付部２がクライアントに対し依頼を拒否する（Ｓ１０３）。
【００２６】
図４にキュー４内のジョブ弁別処理（Ｓ２００）のフローを示す。
【００２７】
ジョブ弁別処理（Ｓ２００）は主にジョブ弁別部６が担う。ジョブ弁別部６はまず、キュー４の先頭の実行待ちジョブを取得する（Ｓ２０１）。ジョブ弁別部６は該実行待ちジョブについて、残り時間と統計データ記憶部７に記憶された平均処理時間のデータを比較し、該実行待ちジョブがタイムアウトするまでにジョブを完了できるか否かを判定する（Ｓ２０２）。ここでジョブの種類ごとの平均処理時間でフィルタリングする場合は、ジョブ弁別部６は該実行待ちジョブの情報からジョブの種類を特定し、統計データ記憶部７から同じ種類のジョブに関する平均処理時間を取得する。
【００２８】
該実行待ちジョブの残り時間が比較したデータより長かった場合、ジョブ弁別部６は該実行待ちジョブはタイムアウトまで時間に余裕があると判断し、該実行待ちジョブをそのままキュー４に残す。そしてジョブ弁別部６は該実行待ちジョブの次の実行待ちジョブを取得し（Ｓ２０６、Ｓ２０７）、取得したジョブに対してＳ２０２の判定処理を実施する。また、統計データ記憶部７に比較対象となるデータが存在しない場合も同様、ジョブ弁別部６は該実行待ちジョブの弁別処理を終了し、次の実行待ちジョブに対する判定処理を開始する。
【００２９】
一方、該実行待ちジョブの残り時間が比較したデータより短かった場合は、ジョブ弁別部６は該実行待ちジョブがジョブ完了前にタイムアウトする可能性が高いと判断する。依頼受付部２はジョブ弁別部６の結果を受け、該実行待ちジョブの時間管理を停止する（Ｓ２０３）。その後、依頼受付部２は該実行待ちジョブをタイムアウトしたジョブと見なし、該実行待ちジョブの後処理をタイムアウト処理部９に委ねる。タイムアウト処理部９はキュー４から該実行待ちジョブを取り除き（Ｓ２０４）、ジョブ結果通知部１０を通じてクライアントに該実行待ちジョブがタイムアウトしたことを通知する（Ｓ２０５）。
【００３０】
図５は、情報処理システム１がジョブを実行するときの処理フローである。
【００３１】
情報処理システム１でジョブを実行するのはジョブ実行部５である。ジョブ実行部５はまずキュー４に実行待ちジョブがあるか確認する（Ｓ３０１）。ここで実行待ちジョブがなければ新規実行待ちジョブがジョブ作成部３によって追加されるまで待機する（Ｓ３０２）。キュー４に実行待ちジョブが存在する場合は、ジョブ実行部５はキュー４の先頭にある実行待ちジョブを取得し（Ｓ３０３）、取得したジョブを実行する。ジョブを実行する際、ジョブ実行部５はジョブの開始時刻とジョブの完了時刻を記録する（Ｓ３０４、Ｓ３０５、Ｓ３０６）。さらに、ジョブ実行部５は該ジョブの処理が完了したら、該ジョブの時間管理を停止する（Ｓ３０７）。
【００３２】
ジョブ完了後、統計データ算出部８が該ジョブの結果をもとにジョブ弁別部６が必要とするデータを算出し、統計データ記憶部７に記録する（Ｓ３０８）。本実施形態では、統計データ記憶部７には直近複数ジョブの処理時間と、それらの平均処理時間が記録されている。統計データ算出部８はジョブの開始時刻と完了時刻から該ジョブの処理時間を算出し、統計データ記憶部７に記録する。このとき、例えば直近５ジョブの平均処理時間を実行待ちジョブの弁別処理の基準とする場合は、５ジョブの内、最も古いジョブの処理時間のデータを最新のジョブの処理時間で上書きする。続いて、統計データ算出部８は統計データ記憶部７に記憶された直近複数ジョブの処理時間から平均処理時間を算出し、統計データ記憶部７に記録された平均処理時間を更新する。
【００３３】
以上のように、情報処理システム１は、新規依頼を受けたときにキュー４が満杯だった場合、キュー４から失敗する確率の高いジョブを取り除き、新規依頼を引き受けることができる。これにより、情報処理システム１は従来より多くの依頼を引き受けることが可能となり、情報処理システム１のスループットを向上させることが可能となる。
【符号の説明】
【００３４】
１  情報処理システム、４  キュー、６  ジョブ弁別部、７  統計データ記憶部、
８  統計データ算出部、９  タイムアウト処理部
【図１】
2020047137.tif 000003
【図２】
2020047137.tif 000004
【図３】
2020047137.tif 000005
【図４】
2020047137.tif 000006
【図５】
2020047137.tif 000007