JP2014197340A - Distributed processing system and program - Google Patents
Distributed processing system and program Download PDFInfo
- Publication number
- JP2014197340A JP2014197340A JP2013073097A JP2013073097A JP2014197340A JP 2014197340 A JP2014197340 A JP 2014197340A JP 2013073097 A JP2013073097 A JP 2013073097A JP 2013073097 A JP2013073097 A JP 2013073097A JP 2014197340 A JP2014197340 A JP 2014197340A
- Authority
- JP
- Japan
- Prior art keywords
- job
- flow
- processing unit
- processing
- job processing
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、分散処理システム及びプログラムに関する。 The present invention relates to a distributed processing system and a program.
例えば、特許文献1には、イベントを処理する複数の処理サーバにかかる負荷を分散するために、コンテキスト依存振り分け装置がイベントの内容に応じた振り分けルールに従って当該イベントを処理する処理サーバを決定する技術が提案されている。
For example, in
本発明は、処理定義情報が指定されたジョブをジョブ処理手段に分散処理させる際、ジョブキューに蓄積されている処理定義情報毎のジョブの数に基づいて自ジョブ処理手段が処理するジョブを自立的に決定することを目的とする。 According to the present invention, when a job for which processing definition information is specified is distributed to the job processing means, the job processed by the own job processing means is independent based on the number of jobs for each processing definition information accumulated in the job queue. The purpose is to make a decision.
本発明に係る分散処理システムは、処理対象のデータに対して実施する処理を定義する処理定義情報が指定されたジョブをジョブキューに登録する登録手段と、前記ジョブキューに蓄積されているジョブのうち自己に振り分けた処理定義情報が指定されたジョブのみを処理する1又は複数のジョブ処理手段と、を有し、前記各ジョブ処理手段は、前記ジョブ処理手段全てに共通した振分処理を実行することによって処理定義情報を前記各ジョブ処理手段に振り分ける振分処理部と、前記振分処理部により自己に振り分けられた処理定義情報が指定されたジョブを実行するジョブ実行部と、を有し、前記振分処理部は、処理定義情報毎に集計された前記ジョブキューに蓄積されているジョブの数に応じて当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を増減させることを特徴とする。 The distributed processing system according to the present invention includes a registration unit for registering a job in which processing definition information defining processing to be performed on data to be processed is specified in a job queue, and a job stored in the job queue. One or a plurality of job processing means for processing only jobs for which processing definition information assigned to them is specified, and each job processing means executes a distribution process common to all the job processing means. A distribution processing unit that distributes the process definition information to each job processing unit, and a job execution unit that executes a job in which the process definition information distributed to the job processing unit is specified by the distribution processing unit. The distribution processing unit stores the process definition information specified for the job in accordance with the number of jobs accumulated in the job queue aggregated for each process definition information. Increasing or decreasing the number of said job processing means for the partial destination characterized.
また、前記ジョブ処理手段の数を調整する調整手段を有し、前記調整手段は、前記振分処理部により全ての前記ジョブ処理手段に振り分けられた処理定義情報が指定されたジョブの数が予め決められた第一のジョブ処理手段増加条件を満たした場合に前記ジョブ処理手段の数を増加させることを特徴とする。 An adjustment unit that adjusts the number of job processing units, and the adjustment unit includes a predetermined number of jobs for which the process definition information assigned to all the job processing units by the distribution processing unit is designated; The number of job processing means is increased when a predetermined first job processing means increasing condition is satisfied.
また、前記振分処理部は、処理定義情報毎に集計された前記ジョブキューに蓄積されているジョブの数が予め決められた増加条件を満たした場合、当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を増加させることを特徴とする。 Further, the distribution processing unit, when the number of jobs accumulated in the job queue aggregated for each process definition information satisfies a predetermined increase condition, the process definition information specified for the job The number of job processing means to be distributed is increased.
また、前記振分処理部は、前記ジョブキューに蓄積されているジョブであって複数の前記ジョブ処理手段を振分先とした処理定義情報に指定されたジョブの数が予め決められた減少条件を満たした場合、当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を減少させることを特徴とする。 In addition, the distribution processing unit is configured to reduce the number of jobs stored in the job queue and specified in the process definition information with a plurality of job processing means as distribution destinations in advance. If the above condition is satisfied, the number of job processing means to which the process definition information specified for the job is assigned is reduced.
また、前記調整手段は、前記ジョブキューに蓄積されているジョブの数が予め決められた第二のジョブ処理手段増加条件を満たした場合にも前記ジョブ処理手段の数を増加させることを特徴とする。 Further, the adjusting means increases the number of job processing means even when the number of jobs accumulated in the job queue satisfies a predetermined second job processing means increase condition. To do.
また、前記調整手段は、前記ジョブキューに蓄積されているジョブの数が予め決められたジョブ処理手段減少条件を満たした場合に前記ジョブ処理手段の数を減少させることを特徴とする。 The adjustment unit may reduce the number of job processing units when the number of jobs stored in the job queue satisfies a predetermined job processing unit reduction condition.
本発明に係るプログラムは、コンピュータを、処理対象のデータに対して実施する処理を定義する処理定義情報が指定されたジョブをジョブキューに登録する登録手段、前記ジョブキューに蓄積されているジョブのうち自己に振り分けた処理定義情報が指定されたジョブのみを処理する1又は複数のジョブ処理手段、として機能させ、前記各ジョブ処理手段は、前記ジョブ処理手段全てに共通した振分処理を実行することによって処理定義情報を前記各ジョブ処理手段に振り分ける振分処理部と、前記振分処理部により自己に振り分けられた処理定義情報が指定されたジョブを実行するジョブ実行部と、を有し、前記振分処理部は、処理定義情報毎に集計された前記ジョブキューに蓄積されているジョブの数に応じて当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を増減させることを特徴とする。 The program according to the present invention includes a registration unit for registering a job in which a process definition information for defining a process to be performed on data to be processed is specified in a job queue, and a job stored in the job queue. Of these, each job processing unit executes a distribution process common to all the job processing units. The job processing unit functions as one or a plurality of job processing units that process only a job for which processing definition information assigned to itself is specified. A distribution processing unit that distributes the process definition information to each job processing unit, and a job execution unit that executes a job in which the process definition information distributed to the job processing unit is specified by the distribution processing unit, The distribution processing unit is assigned to the job according to the number of jobs accumulated in the job queue that is aggregated for each process definition information. And wherein the increasing or decreasing the number of said job processing means for the assignment destination management definition information.
請求項1記載の発明によれば、処理定義情報が指定されたジョブをジョブ処理手段に分散処理させる際、ジョブキューに蓄積されている処理定義情報毎のジョブの数に基づいて自ジョブ処理手段が処理するジョブを自立的に決定することができる。 According to the first aspect of the present invention, when the job processing means distributes the job for which the process definition information is specified, the own job processing means is based on the number of jobs for each process definition information accumulated in the job queue. Can independently determine the job to be processed.
請求項2記載の発明によれば、処理定義情報が全てのジョブ処理手段に振り分けられてはじめてジョブ処理手段の数を増加させることができる。 According to the second aspect of the present invention, the number of job processing means can be increased only after the process definition information is distributed to all job processing means.
請求項3記載の発明によれば、処理定義情報が振り分けられたジョブ処理手段にかかる負荷が増加した場合に、当該処理定義情報の振分先とするジョブ処理手段の数を増加させることができる。 According to the third aspect of the present invention, when the load on the job processing means to which the process definition information is distributed increases, the number of job processing means to which the process definition information is assigned can be increased. .
請求項4記載の発明によれば、処理定義情報が振り分けられたジョブ処理手段にかかる負荷が減少した場合に、当該処理定義情報の振分先とするジョブ処理手段の数を減少させることができる。 According to the fourth aspect of the present invention, when the load on the job processing means to which the process definition information is distributed decreases, the number of job processing means to which the process definition information is assigned can be reduced. .
請求項5記載の発明によれば、全てのジョブ処理手段にかかる負荷が増加した場合に、ジョブ処理手段の数を増加させることができる。 According to the fifth aspect of the present invention, when the load on all job processing means increases, the number of job processing means can be increased.
請求項6記載の発明によれば、全てのジョブ処理手段にかかる負荷が減少した場合に、ジョブ処理手段の数を減少させることができる。 According to the sixth aspect of the present invention, the number of job processing means can be reduced when the load on all job processing means is reduced.
請求項7記載の発明によれば、処理定義情報が指定されたジョブをジョブ処理手段に分散処理させる際、ジョブキューに蓄積されている処理定義情報毎のジョブの数に基づいて自ジョブ処理手段が処理するジョブを自立的に決定することができる。 According to the seventh aspect of the present invention, when the job processing means distributes the job for which the process definition information is specified, the own job processing means is based on the number of jobs for each process definition information accumulated in the job queue. Can independently determine the job to be processed.
以下、図面に基づいて、本発明の好適な実施の形態について説明する。 Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
図1は、本発明に係る分散処理システムの一実施の形態を示した全体構成図である。図1には、ジョブの実行を要求する装置の一例として設けられている画像形成装置1と、クラウド2の一部を構成するジョブ管理サーバ10及びジョブ実行サーバ5が示されている。画像形成装置1は、スキャン機能、コピー機能、ネットワーク機能等が搭載されたコンピュータ内蔵の装置であり、ユーザの操作指示に応じてジョブをクラウド2へ投入することでジョブの実行を要求する。ジョブ管理サーバ10は、クラウド2に向けて送られてきたジョブの実行要求を受け付け、その受け付けたジョブの管理を行う。ジョブ実行サーバ5は、ジョブ管理サーバ10が受け付けたジョブを実行する。
FIG. 1 is an overall configuration diagram showing an embodiment of a distributed processing system according to the present invention. FIG. 1 shows an
図2は、本実施の形態におけるジョブ管理サーバ10のハードウェア構成の一例を示した図である。本実施の形態においてジョブ管理サーバ10を形成するサーバコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図2に示したようにCPU61、ROM62、RAM63、ハードディスクドライブ(HDD)64を接続したHDDコントローラ65、通信手段として設けられたネットワークコントローラ66を内部バス67に接続して構成される。なお、図示していないが、入力手段としてマウスとキーボード、表示装置としてディスプレイをそれぞれ接続する入出力コントローラを内部バス67に接続して構成してもよい。
FIG. 2 is a diagram illustrating an example of a hardware configuration of the
ジョブ実行サーバ5もジョブ管理サーバ10と同じサーバコンピュータであることから、ジョブ実行サーバ5のハードウェアをジョブ管理サーバ10と同じように構成してもよい。
Since the job execution server 5 is also the same server computer as the
図3は、本実施の形態における分散処理システムのうちクラウド2側のブロック構成の一例を示した図である。図3において、ジョブ管理サーバ10は、ジョブ受付部11、ジョブ管理部12、ジョブ処理部監視部13、ジョブキュー監視部14、オートスケーラ15、ジョブキュー16、ジョブ処理部テーブル記憶部17及びフロー多重度テーブル記憶部18を有している。ジョブ受付部11は、投入されたジョブを受け付ける。ジョブ受付部11が受け付けるジョブには、処理対象のデータ、当該データに対して実施する一連の処理が定義された処理定義情報としてのフロー及び当該ジョブの実行を要求したユーザの識別情報(ユーザID)が少なくとも含まれている。フローには、フォルダからの取り出し、原稿のスキャン等処理対象とするデータの取込処理、イメージ加工、OCR処理、フォーマット変換等の加工処理及びファックス、印刷、電子メール等処理結果の配信処理といった一連の処理の流れ及び各処理の内容について定義されている。ジョブ管理部12は、登録手段として設けられ、ジョブ受付部11が受け付けたジョブを受け取り、当該ジョブの識別情報(ジョブID)及び当該ジョブを受け付けた受付日時を付加してジョブキュー16に登録する。ジョブ処理部監視部13は、各ジョブ処理部50が稼動しているかどうかを監視する。ジョブキュー監視部14は、ジョブキュー16に蓄積されているジョブの数を監視する。オートスケーラ15は、調整手段として設けられ、ジョブ処理部50の数を調整する。
FIG. 3 is a diagram illustrating an example of a block configuration on the
図4は、本実施の形態におけるジョブキュー16に登録されるジョブに関する情報のデータ構成例を示した図である。ジョブに関する情報には、ジョブ毎に、当該ジョブの識別情報(ジョブID)、当該ジョブの実行を要求したユーザの識別情報(ユーザID)、当該ジョブに指定されたフローの識別情報(フローID)、当該ジョブを受け付けた受付日時及び当該ジョブの処理対象として指定されたデータの一形態である文書が含まれている。なお、文書には、文書データそのものではなく文書データの格納先を特定する情報でもよい。 FIG. 4 is a diagram illustrating a data configuration example of information regarding jobs registered in the job queue 16 according to the present embodiment. The job-related information includes, for each job, identification information (job ID) of the job, identification information of the user who requested execution of the job (user ID), and identification information of the flow specified for the job (flow ID) , The reception date and time when the job is received and a document that is one form of data designated as the processing target of the job. The document may be information specifying the storage location of the document data, not the document data itself.
図5は、本実施の形態におけるジョブ処理部テーブル記憶部17に設定されるジョブ処理部テーブルのデータ構成例を示した図である。ジョブ処理部テーブルは、ジョブ処理部監視部13により更新される。ジョブ処理部テーブルには、ジョブ処理部50毎に、当該ジョブ処理部50の識別情報(ジョブ処理部ID)、当該ジョブ処理部50のIPアドレス及び最終稼動通知時刻が対応付けして設定される。最終稼動通知時刻には、当該ジョブ処理部50が稼働中であることを確認できた直近の時刻が設定される。
FIG. 5 is a diagram showing a data configuration example of the job processing unit table set in the job processing unit table storage unit 17 in the present embodiment. The job processing unit table is updated by the job processing unit monitoring unit 13. In the job processing unit table, the identification information (job processing unit ID) of the
図6は、本実施の形態におけるフロー多重度テーブル記憶部18に設定されるフロー多重度テーブルのデータ構成例を示した図である。フロー多重度テーブルは、ジョブキュー監視部14により更新される。フロー多重度テーブルには、フロー毎に、当該フローの識別情報(フローID)及び多重度が対応付けして設定される。多重度には、当該フローを実行するジョブ処理部50の数が設定される。本実施の形態では、1つのフローは基本的に1つのジョブ処理部50に分担されるので、初期値として1が設定される。
FIG. 6 is a diagram showing a data configuration example of the flow multiplicity table set in the flow multiplicity
ジョブ管理サーバ10における各構成要素11〜15は、ジョブ管理サーバ10を形成するコンピュータと、コンピュータに搭載されたCPU61で動作するプログラムとの協調動作により実現される。また、各記憶手段16〜18は、ジョブ管理サーバ10に搭載されたHDD64あるいはRAM63にて実現される。あるいは、クラウド2内の他の記憶手段をネットワーク経由で利用してもよい。
Each component 11 to 15 in the
本実施の形態では、ジョブ管理サーバ10が提供する機能を1台のサーバコンピュータにて提供するように図示したが、これに限る必要はなく、複数台のサーバコンピュータに分散して提供するように構成してもよい。
In the present embodiment, the function provided by the
本実施の形態におけるジョブ処理部50は、仮想的なコンピュータにより実現される。1台のジョブ実行サーバ5には、1又は複数の仮想的なコンピュータが構築される。各ジョブ処理部50は、ジョブ処理手段として設けられ、ジョブキュー16に登録されたジョブのうち自己に振り分けたフローが指定されたジョブのみを処理する。ジョブ処理部50は、1つでもよいし複数でもよく、オートスケーラ15により増減される。
The
ジョブ処理部50は、振分処理部51、ジョブ取得部52、ジョブ実行部53及び制御部54を有している。振分処理部51は、ジョブ処理部50全てに共通した振分処理を実行することによってフローを各ジョブ処理部50に振り分ける。ジョブ取得部52は、処理候補とするジョブをジョブ管理サーバ10から取得する。ジョブ実行部53は、振分処理部51により自ジョブ処理部50に振り分けられたフローが指定されたジョブを実行する。制御部54は、各構成要素51〜53と連携しながらジョブ処理部50における実行制御を行う。
The
ジョブ実行サーバ5における各構成要素51〜54は、ジョブ実行サーバ5を形成するコンピュータと、コンピュータに搭載されたCPU61で動作するプログラムとの協調動作により実現される。
The
本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやDVD−ROM等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPUがプログラムを順次実行することで各種処理が実現される。 The program used in this embodiment can be provided not only by communication means but also by storing in a computer-readable recording medium such as a CD-ROM or DVD-ROM. The program provided from the communication means or the recording medium is installed in the computer, and various processes are realized by the CPU of the computer sequentially executing the program.
ところで、本実施の形態におけるジョブ処理部50は、全ての種類のフローが実行可能に構成されている。従って、どのジョブをどのジョブ処理部50に振り分けても実行できるため、オートスケーリングが容易に行える。
Incidentally, the
ただ、ジョブを実行している間は、そのジョブに指定されたフローに関する情報をRAM63に保持するため、実行対象とするフローの種類が異なるジョブが増えるとRAM63を逼迫する。例えば、同じ10個のジョブを並行して実行していたとしても、それが同じフローが指定されたジョブなのか、全て異なるフローが指定されたジョブなのかによって、ジョブ処理部50におけるメモリ使用量が異なってくる。特に、対話など再開待ちのジョブのようにいつ終わるかわからないようなジョブが、種類の異なるフローでいくつも同時並行して実行されるような場合は、より顕著になる。
However, while the job is being executed, information related to the flow specified for the job is held in the
そこで、本実施の形態においては、ジョブの分散処理に関しては、実行中のジョブの数に基づく負荷に基づき振り分けるのではなく、フローの種類に従ってジョブを各ジョブ処理部50に振り分けることによってジョブ処理部50のリソースを効率良く利用するようにしている。
Therefore, in the present embodiment, regarding job distribution processing, job processing units are not distributed based on the load based on the number of jobs being executed, but are distributed to the
なお、ジョブ処理部50が処理するのはジョブであり、そのジョブに指定されたフローに従って処理対象のデータに対して一連の処理を実施することになる。このように、本実施の形態では、フローの種類に従ってジョブを各ジョブ処理部50に振り分けるので、説明の便宜上、ジョブ処理部50は、「指定されたフローに従ってジョブを実行する」を単に「フローを実行する」と表現する場合もある。なお、本実施の形態においてジョブに対する「処理」と「実行」とはほぼ同義である。
Note that the
本実施の形態では、上記のように実行するフローの種類によってジョブをジョブ処理部50に振り分けることによってジョブ処理部50のリソースを効率良く利用しつつジョブの分散処理を実現する。本実施の形態では、基本的には1つのフローは1つのジョブ処理部50のみによって処理されるようにフローを振り分ける。ただ、指定されたフローに偏りが発生した場合、ジョブ数が増大したフローの実行を担当するジョブ処理部50に処理が集中してしまうことになる。
In this embodiment, job distribution processing is realized while efficiently using resources of the
そこで、本実施の形態においては、ジョブキュー監視部14がジョブキュー16に蓄積されたジョブをフローの種類毎に集計し、振分処理部51は、その集計したジョブの数に応じてフローの振分先とするジョブ処理部50の数を増減させることを特徴としている。具体的には、フロー毎のジョブの数が予め決められた増加条件を満たすようになった場合には、そのフローの振分先とするジョブ処理部50の数を増やし、一方、ジョブ処理部50の数を増やした後、フロー毎のジョブの数が予め決められた増加条件を満たすようになった場合には、そのフローの振分先とするジョブ処理部50の数を減少させるようにしている。なお、振分先とするジョブ処理部50の数を増減させる各条件については追って説明する。
Therefore, in the present embodiment, the job
次に、本実施の形態における動作について説明する。最初に、定期的に実施される処理について説明する。 Next, the operation in this embodiment will be described. First, processing that is performed periodically will be described.
まず、ジョブ処理部50を予め決められた数用意する。本実施の形態では、3つジョブ処理部JP1〜JP3を用意することにする。ジョブ処理部監視部13は、定期的に稼動しているかどうかを各ジョブ処理部50に対して問い合わせる。各ジョブ処理部50は、この問い合わせに応じて応答することによって自己が稼動していることを通知する。ジョブ処理部監視部13は、ジョブ処理部50からの通知を受けると、その通知したジョブ処理部50に対応したジョブ処理部テーブルにおける最終稼動通知時刻を現在時刻にて更新する。なお、応答してこないジョブ処理部50に対応する最終稼動通知時刻は更新されないままである。例えば、ジョブ処理部監視部13が5分毎に問い合わせる場合、最終稼動通知時刻に現在時刻より5分以内の時刻が設定されていれば、当該ジョブ処理部50は、稼働中であると認識され、一方、最終稼動通知時刻に現在時刻より5分より前の時刻が設定されていた場合、そのジョブ処理部50は、現時点で稼動していないと認識される。
First, a predetermined number of
続いて、ジョブがジョブキュー16に登録されるまでの動作について説明する。 Next, an operation until a job is registered in the job queue 16 will be described.
例えば、ユーザが、画像形成装置1の操作パネルを操作することによって、フローのリストを表示させ、その中からジョブの実施に利用するフローを選択した後、原稿をスキャンさせる。このユーザ操作に応じて、画像形成装置1は、ジョブの実行要求をしたユーザを識別するユーザID、スキャン画像データ及びユーザにより指定されたフローを識別するフローIDを含むジョブを送信することによってクラウド2へ投入する。
For example, the user operates the operation panel of the
クラウド2におけるジョブ受付部11は、画像形成装置1からジョブが送られてくると、そのジョブを受け付け、ジョブ管理部12に渡す。ジョブ管理部12は、そのジョブにジョブを識別するジョブIDを新たに生成して割り付け、更に送られてきたジョブに含まれているユーザID、ジョブを受け付けた日時及び文書(スキャン画像データ)を付加してジョブキュー16に登録する。なお、文書は、文書そのものではなく、文書の格納先を特定する情報でもよい。
When a job is sent from the
次に、ジョブ処理部50が行うジョブの実行処理について図7に示したフローチャートを用いて説明する。このジョブ実行処理において実施する振分処理では、Consistent Hashing(コンシステント・ハッシュ法)を使用して各ジョブ処理部50に各フローを振り分ける。この振分処理は、各ジョブ処理部50において自立的に実行されるが、振分処理に用いられる入力値及び処理内容は全て同じであるため、各ジョブ処理部50がこの振分処理を個々に実行したとしても同じ処理結果が得られるようになっている。
Next, job execution processing performed by the
ジョブを新たに実行可能な状態にあるジョブ処理部50は、ジョブキュー16からジョブを取得する(ステップ101)。続いて、ジョブ処理部50は、ジョブ処理部テーブルを参照することで(ステップ102)、現在稼動しているジョブ処理部50を認識する。具体的には、ジョブ処理部監視部13が5分毎に最終稼動通知時刻を更新する場合、振分処理部51は、現在時刻と各最終稼動通知時刻との時間差を算出し、その算出結果が5分以内であるジョブ処理部50を稼働中と判断する。ここでは、全てのジョブ処理部JP1〜JP3が稼動しているものとして説明する。振分処理部51は、各ジョブ処理部50のIPアドレスに基づいてハッシュを計算し、図8に示したようにコンシステント・ハッシュ法に基づく仮想的な円周上に各ジョブ処理部50をマッピングする(ステップ103)。本実施の形態では、各ジョブ処理部50の円周上における位置をバランス良くするため100点〜200点のハッシュを計算する。図8(a)において丸数字はジョブ処理部50を表し、各数字1〜3が各ジョブ処理部JP1〜JP3に対応している。
The
なお、本実施の形態では、異なるハッシュ値が算出されるように、各ジョブ処理部50におけるユニークな情報としてIPアドレスを用いるようにした。本実施の形態では、各ジョブ処理部50のIPアドレスをジョブ処理部テーブルに登録しておき、このテーブルから取得するようにした。ただ、各ジョブ処理部50にユニークな情報としては、他の情報を用いてもよい。また、ユニークな情報の取得先を内部に保持しておいてもよいし、ジョブ処理部テーブル以外から取得してもよい。
In this embodiment, the IP address is used as unique information in each
続いて、振分処理部51は、フロー多重度テーブルを参照し(ステップ103)、各フローのフローIDをキーとしてハッシュを計算し、図8(b)に示したように各ジョブ処理部50がマッピングされた円周上に各フローをマッピングする(ステップ104)。図8(b)において丸英字はフローを表し、各英字A〜Eが各フローA〜Eに対応している。
Subsequently, the
以上の処理によって図8(b)に示したように各ジョブ処理部JP1〜JP3及び各フローA〜Eが同じ仮想的な円周上にマッピングされる。コンシステント・ハッシュ法によると、どのフローがどのジョブ処理部50に振り分けられるかということは、円周上の各フローを時計方向に動かせばよいことになっている。つまり、各フローは、自己より大きいハッシュ値であり、かつ最も近い値のジョブ処理部50に振り分けられることになるので、図8(b)に示した例によると、フローA,Bはジョブ処理部JP1に、フローC,Dはジョブ処理部JP2に、フローEはジョブ処理部JP3に、それぞれ振り分けられる。
Through the above processing, as shown in FIG. 8B, the job processing units JP1 to JP3 and the flows A to E are mapped on the same virtual circumference. According to the consistent hash method, which flow is assigned to which
以上のように、自己が担当するフローが決定されると、制御部54は、ステップ101において取得したジョブに指定されたフローを参照して、そのジョブが実行対象であるかどうかを判定する。例えば、ジョブ処理部JP1において、取得したジョブのフローがフローAでもフローBでもなければ(ステップ106でN)、自己の実行対象でないジョブを取得していたと判断して、そのジョブを実行せずにジョブキュー16に登録されている次のジョブを取得しにいく(ステップ101)。
As described above, when the flow in charge is determined, the
一方、取得したジョブのフローがフローA又はフローBであれば(ステップ106でY)、制御部54は、実行対象のジョブを取得していたと判断して、そのジョブの実行をジョブ実行部53に指示し、ジョブ実行部53は、この指示に応じてジョブの実行を開始する(ステップ107)。そして、制御部54は、ジョブ管理部12に削除指示を送ることによって、ジョブキュー16に登録されている当該ジョブを削除させる(ステップ108)。なお、ジョブキュー16からのジョブの取得、削除等ジョブ管理部12が実施するジョブ管理自体は、従前と同じ方法でよい。
On the other hand, if the flow of the acquired job is flow A or flow B (Y in step 106), the
本実施の形態では、以上のようにジョブを取得する度に各ジョブ処理部50及び各フローを同じ円周上に自動的にマッピングするようにした。各ジョブ処理部50をジョブを取得する度に各ジョブ処理部50をマッピングするようにしたのは、第一に、ジョブを取得してから次のジョブを取得するまでの間にジョブ処理部50が増減した場合に対処するためである。仮に、図8(b)に示した状態からフローの種類が変わらずにジョブ処理部JP3が削除された場合、フローEはジョブ処理部JP3に代わってジョブ処理部JP1により実行されることになる。第二に、ジョブを取得してから次のジョブを取得するまでの間に新たなフローが追加された場合、そのフローを担当するジョブ処理部50を決定する必要があるためである。このように、ジョブ処理部50及びフローの増減に対応するために、本実施の形態では、ジョブを取得する度に各マッピング処理を実施することにしている。
In the present embodiment, each
もちろん、この手法に限定する必要はない。例えば、現時点におけるジョブ処理部テーブル及びフロー多重度テーブルの設定内容を一時保持しておき、ジョブを取得する度に一時保持しておいた設定内容と新たに取得したジョブ処理部テーブル及びフロー多重度テーブルの設定内容とに差異が生じたときにハッシュ計算をして各ジョブ処理部50及び各フローを円周上にマッピングするようにしてもよい。
Of course, it is not necessary to limit to this method. For example, the setting contents of the current job processing unit table and flow multiplicity table are temporarily stored, and the setting content temporarily stored every time a job is acquired, the newly acquired job processing unit table and flow multiplicity When there is a difference between the setting contents of the table, hash calculation may be performed to map each
ところで、ジョブキュー16に蓄積されたジョブがいずれかのジョブ処理部50により取り出され実行されていく消費速度よりジョブキュー16で実行されずに待ち状態となっているジョブの数(以下、単に「待ちジョブ数」とも称する)が増えていく増加速度が相対的に速ければ、ジョブキュー16には、待ちジョブ数が増えていくことになる。また、あるフロー(例えばフローA)を実行するジョブ処理部JP1におけるジョブの消費速度よりフローAが指定されたジョブの増える増加速度が相対的に速ければ、ジョブキュー16には、フローAの待ちジョブ数が増えていくことになる。本実施の形態では、1つのフローを1つのジョブ処理部50で実行させることを基本としているので、このフローAの待ちジョブ数の増加は、ジョブ処理部JP1における負荷の増大のみを招くことになる。これを解消するためには、ジョブ処理部JP1に加えて他のジョブ処理部50をフローAの分担先として追加して対応することが考えられる。フローの分担先を追加するためには、図8に示した円周上にフローAの複製を作成し、このフローAの複製が現時点で分担先となっているジョブ処理部JP1以外のジョブ処理部50に振り分けられるようにマッピングすればよい。この「フローの複製」は、フローの分担先を追加することと同義である。例えば、フローAの複製を、ジョブ処理部JP1が担当とはならない円周上の位置にマッピングすることで、フローAを実行するジョブ処理部50の数を増やすことになる。これにより、ジョブ処理部JP1にかかる負荷は軽減される。このフローの複製においても負荷の増加が解消できない場合、本実施の形態では、そのときにはじめてスケールアウトによりジョブ処理部50の数を増やして負荷分散を行うようにしている。
By the way, the number of jobs that are not executed in the job queue 16 and are in a waiting state (hereinafter simply referred to as “ If the rate of increase in which the “number of waiting jobs” increases is relatively high, the number of waiting jobs will increase in the job queue 16. Further, if the increasing rate of the job for which the flow A is designated is relatively higher than the job consumption rate in the job processing unit JP1 that executes a certain flow (for example, the flow A), the job queue 16 waits for the flow A. The number of jobs will increase. In the present embodiment, since one flow is executed by one
図9は、本実施の形態におけるジョブ管理サーバ10側の処理を示したフローチャートであるが、以下、実行待ちのジョブが増えることによって行うフローの複製及びスケールアウト等ジョブ負荷の分散処理について、図7及び図9に示したフローチャートを用いて説明する。なお、本実施の形態では、図9では、処理を定期的に繰り返し実行することを想定して、処理をその都度終了させるように図示したが、処理を終了させずに常時起動した状態にて(つまり、ステップ201に戻るように)処理を繰り返し実行するようにしてもよい。また、ここでは、図10(a)に示したように3つのジョブ処理部JP1〜JP3が稼動し、5つのフローA〜Eが使用されているものとして説明する。なお、図10(a)は図8(b)と同じ図である。
FIG. 9 is a flowchart showing processing on the
ジョブキュー監視部14は、ジョブキュー16へのジョブの蓄積状況を監視するためにジョブの蓄積状況を取得する(ステップ201)。具体的には、待ちジョブ数をフロー毎に求める。そして、あるフローの待ちジョブ数が予め決められたフロー複製条件(増加条件)、例えば一定期間(例えば10分間)待ちジョブ数が10という閾値を超えていた状態が続いたというフロー複製条件を満たした場合(ステップ202でY)、フロー多重度テーブルにおける当該フローの多重度に1を加算する(ステップ206)。なお、ここでは、フローAがはじめてフロー複製条件に合致したものとする。すなわち、ステップ203でNと判断され、フローAのフロー多重度が2に更新されたものとする。
The job
図7において、ジョブ処理部50における振分処理部51は、ジョブ取得部52によりジョブが取得された後(ステップ101)、ジョブ処理部テーブルを参照して(ステップ102)、各ジョブ処理部50を円周上にマッピングする(ステップ103)。ここでは、ジョブ処理部JP1〜JP3とも稼動しているので、図8(a)に示したように、各ジョブ処理部JP1〜JP3は円周上にマッピングされる。
In FIG. 7, the
続いて、振分処理部51は、フロー多重度テーブルを参照すると(ステップ104)、フローAの多重度は2になっている。ここで、フロー多重度が1の場合の各フローのマッピングは、前述したとおりフローAも含めて各フローのフローIDをキーとしてハッシュを計算し、円周上に各フローをマッピングする(ステップ105)。この状態を図10(a)に示す。フローの複製が行われたことでフロー多重度が2の場合、振分処理部51は、更に当該フローのフローIDを入力とするフロー多重度2用の所定の計算を行うことで、当該フローIDとは異なる値となるキーを生成する。そして、新たに生成したキーに基づきハッシュ計算を実行し、円周上にマッピングする(ステップ105)。この複製されたフローA71が円周上にマッピングされたときの状態を図10(b)に示す。図10(b)の例に従うと、複製によるフローA(以下、「複製フローA」)71は、複製フローA71より大きく、かつ最も近いジョブ処理部JP3に振り分けられたことになる。換言すると、フローIDを入力としてキーを生成するフロー多重度2用の所定の計算は、ハッシュ計算によりフローAがジョブ処理部JP1以外に分担されるようにキーを生成する必要がある。この後の処理(ステップ106〜108)については、すでに説明しているので、ここでの説明は省略する。
Subsequently, when the
なお、ジョブ管理サーバ10において、フロー多重度テーブルにおける当該フローの多重度に1を加算する処理(ステップ206)の後の処理(ステップ207〜211)については、追って説明する。
In the
図11は、本実施の形態におけるジョブとジョブ処理部50との関係を示した図である。図11には、ジョブキューに未だ実行されずに蓄積されているジョブと各ジョブ処理部50に振り分けられて実行中のジョブとが示されている。図11において、各ジョブは、当該ジョブに指定されたフローのフローIDに登録順に連続番号が付加され識別される。図11(a)には、図10(a)に対応したジョブの状態が示されている。図11(a)によると、ジョブ処理部JP1にはA1、A2、B1、A3が振り分けられ実行中である。ジョブ処理部JP2にはD3、D4、C1が振り分けられ実行中である。ジョブ処理部JP3にはE1が振り分けられ実行中である。そして、ジョブキューには、A4、A5、...、A15が蓄積されている。このフローの複製が行われる前の段階では、図10(a)に示したように、ジョブ処理部JP1にはフローAとフローBが振り分けられ、ジョブ処理部JP2にはフローCとフローDが振り分けられ、ジョブ処理部JP3にはフローEが振り分けられる。
FIG. 11 is a diagram illustrating a relationship between a job and the
そして、フローAの複製が作成され、図10(b)に示したように円周上にマッピングされると、図11(b)に示したように、フローAが指定されたジョブ(A4)76は、ジョブ処理部JP3においても実行されるようになる。 Then, when a copy of the flow A is created and mapped on the circumference as shown in FIG. 10B, the job (A4) in which the flow A is designated as shown in FIG. 11B. No. 76 is also executed in the job processing unit JP3.
ジョブ管理サーバ10におけるジョブキュー監視部14は、ジョブキュー16へのジョブの蓄積状況を監視するためにジョブの蓄積状況を取得し、待ちジョブ数をフロー毎に求めたところ(ステップ201)、今なお一定期間、フローAの待ちジョブ数が10を超えていた場合というフロー複製条件を満たしているとすると(ステップ202でY)、この段階では、全てのジョブ処理部50(具体的には、ジョブ処理部JP2)にフローAが分担されていないので(ステップ203でN)、フロー多重度テーブルにおける当該フローの多重度に1を加算する(ステップ206)。これにより、フローAのフロー多重度は3に更新される。
The job
図7において、ジョブ処理部50における振分処理部51は、ジョブ取得部52によりジョブが取得された後(ステップ101)、ジョブ処理部テーブルを参照して(ステップ102)、各ジョブ処理部50を円周上にマッピングする(ステップ103)。ここでは、ジョブ処理部JP1〜JP3とも稼動しているので、図8(a)に示したように、各ジョブ処理部JP1〜JP3は円周上にマッピングされる。
In FIG. 7, the
続いて、振分処理部51は、フロー多重度テーブルを参照すると(ステップ104)、フローAの多重度は3になっている。そこで、振分処理部51は、まずフロー多重度が1の場合の各フローのマッピングを行う。すなわち、各フローA〜EのフローIDをキーとしてハッシュを計算し、円周上に各フローをマッピングする(ステップ105)。この状態を図10(a)に示す。続いて、振分処理部51は、前述したフロー多重度2用の所定の計算を行うことで、当該フローIDとは異なる値となるキーを生成し、その新たに生成したキーに基づきハッシュ計算を実行し、円周上にマッピングする(ステップ105)。この複製されたフローA71が円周上にマッピングされたときの状態を図10(b)に示す。振分処理部51は、更に当該フローのフローIDを入力とするフロー多重度3用の所定の計算を行うことで、当該フローID及びフロー多重度2の際に求めたキーとは異なる値となるキーを生成する。そして、新たに生成したキーに基づきハッシュ計算を実行し、円周上にマッピングする(ステップ105)。この複製されたフローA72が円周上にマッピングされたときの状態を図10(c)に示す。図10(c)の例に従うと、複製フローA72は、複製フローA72より大きく、かつ最も近いジョブ処理部JP2に振り分けられたことになる。換言すると、フローIDを入力としてキーを生成するフロー多重度3用の所定の計算は、ハッシュ計算によりフローAがすでに分担されているジョブ処理部JP1及びジョブ処理部JP3以外に分担されるようにキーを生成する必要がある。この後の処理(ステップ106〜108)については、すでに説明しているので、ここでの説明は省略する。
Subsequently, when the
この結果、図11(c)に示したように、フローAが指定されたジョブ(A13)77は、ジョブ処理部JP2においても実行されるようになる。 As a result, as shown in FIG. 11C, the job (A13) 77 in which the flow A is designated is also executed in the job processing unit JP2.
以上の処理を繰り返すことで、フローAは、複数のジョブ処理部50により実行されることになり、フローAの待ちジョブ数がフロー複製条件を満たした状態が解消されなければ、上記のようにフローAを振り分けるジョブ処理部50の数が増加され、最終的に全てのジョブ処理部JP1〜JP3に分担されることになる。
By repeating the above processing, the flow A is executed by a plurality of
ジョブ管理サーバ10におけるジョブキュー監視部14は、ジョブキュー16へのジョブの蓄積状況を監視するためにジョブの蓄積状況を取得し、待ちジョブ数をフロー毎に求めたところ(ステップ201)、フローAがフロー複製条件を満たしたとする。この場合(ステップ202でY)、ジョブキュー監視部14は、続いて全てのジョブ処理部50にフローAが複製されているかを確認する。これは、稼働中のジョブ処理部50の数とフロー多重度の値とを比較することで確認してもよい。全てのジョブ処理部50にフローAが複製されている場合(ステップ203でY)、この段階ではじめてスケールアウトを実施する。すなわち、フローAがフロー複製条件を満たし、かつ全てのジョブ処理部50に複製されたという、予め決められた第一のジョブ処理部増加条件を満たすことによって、ジョブキュー監視部14がスケールアウトをオートスケーラ15に指示すると、オートスケーラ15は、この指示に応じてスケールアウトを行う(ステップ204)。また、ジョブ処理部監視部13は、ジョブ処理部テーブルに新たに生成されるジョブ処理部に関するレコードを追加する更新を行う(ステップ205)。ここでは、ジョブ処理部JP4を追加したものとし、最終稼動通知時刻には現在時刻を設定する。続いて、ジョブキュー監視部14は、フロー多重度テーブルにおける当該フローの多重度に1を加算する(ステップ206)。これにより、フローAのフロー多重度は4に更新される。
The job
図7において、ジョブ処理部50における振分処理部51は、ジョブ取得部52によりジョブが取得された後(ステップ101)、ジョブ処理部テーブルを参照して(ステップ102)、各ジョブ処理部50を円周上にマッピングする(ステップ103)。このとき、振分処理部51は、ジョブ処理部JP1〜JP4が稼動していると認識し、図10(d)に示したように、ジョブ処理部JP1〜JP3に加え、符号74で表したジョブ処理部JP4を円周上にマッピングする。
In FIG. 7, the
続いて、振分処理部51は、フロー多重度テーブルを参照すると(ステップ104)、フローAの多重度は4になっている。振分処理部51は、フロー多重度テーブルの設定内容を参照に円周上に各フローをマッピングするが、フローB〜E及びフローAの多重度が1から3までの処理は上記と同様なので説明を省略する。
Subsequently, when the
更に、振分処理部51は、前述したように当該フローのフローIDを入力とするフロー多重度4用の所定の計算を行うことで、当該フローIDとは異なる値となるキーを生成する。振分処理部51は、フロー多重度4用の所定の計算を行うことで、当該フローID、フロー多重度2及びフロー多重度3の際に求めたキーとは異なる値となるキーを生成する。そして、新たに生成したキーに基づきハッシュ計算を実行し、円周上にマッピングする(ステップ105)。この複製されたフローA73が円周上にマッピングされたときの状態を図10(d)に示す。図10(d)の例に従うと、複製フローA73は、複製フローA73より大きく、かつ最も近いジョブ処理部JP4に振り分けられたことになる。マッピングの位置について着目すると、複製フローA71は、多重度3のときにはジョブ処理部JP3に分担されていたが、ジョブ処理部JP4がマッピングされることによってジョブ処理部JP4に分担されたことを意味する。つまり、フローAは、ジョブ処理部JP1,JP2,JP4に振り分けられていることになる。そこで、ここでは、ジョブ処理部JP3に分担されるように複製フローA73をマッピングする必要がある。この後の処理(ステップ106〜108)については、すでに説明しているので、ここでの説明は省略する。
Further, as described above, the
このスケールアウトの結果、図11(d)に示したように、フローAが指定されたジョブ(A21)78は、ジョブ処理部JP4においても実行されるようになる。 As a result of this scale-out, as shown in FIG. 11D, the job (A21) 78 in which the flow A is designated is also executed in the job processing unit JP4.
以上のように、フローAが全てのジョブ処理部50により実行されるようになった後でもなおフローAの待ちジョブ数がフロー複製条件を満たす状態が解消されなければ、スケールアウトにより対応される。この後もフローAの待ちジョブ数がフロー複製条件を満たす状態が解消されなければ、スケールアウトが繰り返し実行される。このようにして負荷の分散が図られる。
As described above, even after the flow A is executed by all the
上記説明したように、あるフロー(上記例ではフローA)の待ちジョブ数が増加した場合には、当該フローを実行するジョブ処理部50の数を増やすことで対応するようにした。そして、当該フローを全てのジョブ処理部50で対応してもなお待ちジョブ数が高い負荷の状態が維持される場合、すなわちフロー複製条件を満たす状態が続いた場合には、スケールアウトで対応するようにした。
As described above, when the number of waiting jobs for a certain flow (flow A in the above example) increases, the number of
ただ、あるフローの待ちジョブ数がフロー複製条件を満たしていなくても(図9におけるステップ202でN)、ジョブキュー16における全待ちジョブ数がスケールアウト実施条件(予め決められた第二のジョブ処理部増加条件)に合致した場合、例えば一定期間(例えば10分間)全待ちジョブ数が30という閾値を超えていた状態が続いたというスケールアウト実施条件を満たした場合(ステップ212でY)、この場合もフローAを処理するジョブ処理部50全体において負荷の高い状態が続いていると判断してスケールアウトを行うようにしてもよい(ステップ204)。
However, even if the number of waiting jobs in a certain flow does not satisfy the flow duplication condition (N in
なお、1つのフローを担当するジョブ処理部50の数を増やすためのフロー複製条件は、上記例に限らず、ジョブの種類やジョブ処理部50の性能等を考慮して適宜設定すればよい。スケールアウト実施条件においても同様である。例えば、待ちジョブ数をジョブ処理部50の数で除算した値が一定期間所定の閾値を超えた場合や実行中及び再開待ちのジョブの数が一定期間所定の閾値を超えた場合などをスケールアウト実施条件として設定してもよい。
Note that the flow duplication condition for increasing the number of
以上は、待ちジョブ数が増加した場合の対応について説明した。ここでは、上記処理の流れに従ってスケールアウトを実行した後に負荷が軽減された場合における処理について図9のステップ207〜211を用いて説明する。 The above describes the response when the number of waiting jobs increases. Here, the processing when the load is reduced after performing the scale-out according to the above-described processing flow will be described using steps 207 to 211 in FIG. 9.
現在、円周上には、図12(a)に示したようにジョブ処理部JP1〜JP4及びフローA〜Eがマッピングされているとする。なお、図12(a)は、図10(d)を同じ図である。 At present, it is assumed that job processing units JP1 to JP4 and flows A to E are mapped on the circumference as shown in FIG. 12A is the same as FIG. 10D.
ステップ201で取得したジョブキュー16の状況を参照して、複製フローの待ちジョブ数が予め決められた複製解除条件(減少条件)、例えば一定期間(例えば10分間)待ちジョブ数が5という閾値を下回った状態が続いたという複製解除条件を満たした場合(ステップ207でY)、ジョブキュー監視部14は、フロー多重度テーブルにおける当該複製フローの多重度を1減算する(ステップ208)。
With reference to the status of the job queue 16 acquired in step 201, a duplication release condition (decrease condition) in which the number of waiting jobs in the duplication flow is determined in advance, for example, a threshold that the number of waiting jobs is 5 for a certain period (for example, 10 minutes) When the copy cancellation condition that the state has been lowered is satisfied (Y in Step 207), the job
図7において、ジョブ処理部50における振分処理部51は、ジョブ取得部52によりジョブが取得された後(ステップ101)、ジョブ処理部テーブルを参照して(ステップ102)、各ジョブ処理部50を円周上にマッピングする(ステップ103)。ここでは、ジョブ処理部JP1〜JP4とも稼動しているので、図12(a)に示したように、各ジョブ処理部JP1〜JP4は円周上にマッピングされる。
In FIG. 7, the
続いて、振分処理部51は、フロー多重度テーブルを参照すると(ステップ104)、フローAの多重度は3になっている。従って、ここでは、前述したフローAの多重度が3のときの処理を実行する(ステップ105)。つまり、多重度3のときのマッピング状態に戻るので、図12(b)に示したように図12(a)における状態から複製フロー73が削除されたようなマッピングの状態になる。
Subsequently, when the
このように、複製フローが複製解除条件を満たすことによって削除される順番は、複製フロー73、複製フロー72、複製フロー71と複製された順番の逆になる。
As described above, the order in which the duplicate flow is deleted when the duplicate release condition is satisfied is the reverse of the duplicate order of the
また、複製フローが複製解除条件を満たしていなくても、ジョブキュー16における全待ちジョブ数がジョブ処理部減少条件に合致した場合、例えば一定期間(例えば10分間)全待ちジョブ数が10という閾値を下回った状態が続いたというジョブ処理部減少条件を満たした場合(ステップ209でY)、ジョブ処理部50を削減する(ステップ210)。具体的には、ジョブ処理部監視部13は、ジョブ処理部テーブルに設定されているジョブ処理部50を削除する更新を行う(ステップ211)。いずれのジョブ処理部JP1〜JP4を削除対象としてよいが、本実施の形態では、追加されたジョブ処理部JP4を削除することにする。
Even if the duplication flow does not satisfy the duplication cancellation condition, if the total number of waiting jobs in the job queue 16 matches the job processing unit reduction condition, for example, a threshold of 10 for the total number of waiting jobs for a certain period (for example, 10 minutes). If the job processing unit reduction condition that the state below the value has continued is satisfied (Y in step 209), the
図7において、ジョブ処理部50における振分処理部51は、ジョブ取得部52によりジョブが取得された後(ステップ101)、ジョブ処理部テーブルを参照して(ステップ102)、各ジョブ処理部50を円周上にマッピングする(ステップ103)。このとき、振分処理部51は、ジョブ処理部JP1〜JP3が稼動していると認識し、円周上にマッピングする。このようにして、ジョブ処理部JP4は、削除されることになる。図12(b)の状態からジョブ処理部JP4が削除されたときの状態を図12(c)に示す。図12(b)では、ジョブ処理部JP3がフローEを、ジョブ処理部JP4がフローAを担当していたところ、ジョブ処理部JP4が削除されることによりフローA71が再びジョブ処理部JP3に分担されることになる。この結果、ジョブ処理部JP3は、フローA,Eを担当することになる。
In FIG. 7, the
なお、解除対象とする複製フロー及び削減対象とするジョブ処理部50は、必ずしも増加する順番の逆とする必要はなく、例えば各ジョブ処理部50にかかる現在の負荷状況を考慮して、負荷の小さいジョブ処理部50から削除するようにしてもよい。
Note that the replication flow to be canceled and the
本実施の形態においては、以上のように各ジョブ処理部50がジョブキュー16に蓄積される待ちジョブ数に応じてフローを担当するジョブ処理部50の数を自立的に増減して負荷分散を行えるようにした。そして、全てのジョブ処理部50が待ちジョブ数の多いフローの分担先となってはじめてスケールアウトを行うようにした。
In the present embodiment, as described above, each
なお、本実施の形態では、コンシステント・ハッシュ法を使用してフローの振分を行うようにしたが、これに代わる手法を用いてもよい、 In the present embodiment, the flow is distributed using the consistent hash method, but an alternative method may be used.
1 画像形成装置、2 クラウド、5 ジョブ実行サーバ、10 ジョブ管理サーバ、11 ジョブ受付部、12 ジョブ管理部、13 ジョブ処理部監視部、14 ジョブキュー監視部、15 オートスケーラ、16 ジョブキュー、17 ジョブ処理部テーブル記憶部、18 フロー多重度テーブル記憶部、50 ジョブ処理部、51 振分処理部、52 ジョブ取得部、53 ジョブ実行部、54 制御部、61 CPU、62 ROM、63 RAM、64 ハードディスクドライブ(HDD)、65 HDDコントローラ、66 ネットワークコントローラ、67 内部バス。
DESCRIPTION OF
Claims (7)
前記ジョブキューに蓄積されているジョブのうち自己に振り分けた処理定義情報が指定されたジョブのみを処理する1又は複数のジョブ処理手段と、
を有し、
前記各ジョブ処理手段は、
前記ジョブ処理手段全てに共通した振分処理を実行することによって処理定義情報を前記各ジョブ処理手段に振り分ける振分処理部と、
前記振分処理部により自己に振り分けられた処理定義情報が指定されたジョブを実行するジョブ実行部と、
を有し、
前記振分処理部は、処理定義情報毎に集計された前記ジョブキューに蓄積されているジョブの数に応じて当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を増減させることを特徴とする分散処理システム。 A registration means for registering a job in which processing definition information for defining processing to be performed on data to be processed is specified in a job queue;
One or a plurality of job processing means for processing only jobs for which processing definition information assigned to the job is specified among jobs stored in the job queue;
Have
Each job processing means includes:
A distribution processing unit that distributes the process definition information to each job processing unit by executing a distribution process common to all the job processing units;
A job execution unit that executes a job in which the process definition information distributed to itself by the distribution processing unit is designated;
Have
The distribution processing unit determines the number of job processing means to which the process definition information specified for the job is allocated according to the number of jobs accumulated in the job queue that is aggregated for each process definition information. A distributed processing system characterized by increasing or decreasing the number.
前記調整手段は、前記振分処理部により全ての前記ジョブ処理手段に振り分けられた処理定義情報が指定されたジョブの数が予め決められた第一のジョブ処理手段増加条件を満たした場合に前記ジョブ処理手段の数を増加させることを特徴とする請求項1に記載の分散処理システム。 Adjusting means for adjusting the number of the job processing means;
The adjusting unit is configured to execute the processing when the number of jobs in which the process definition information assigned to all the job processing units is assigned by the distribution processing unit satisfies a predetermined first job processing unit increase condition. 2. The distributed processing system according to claim 1, wherein the number of job processing means is increased.
処理対象のデータに対して実施する処理を定義する処理定義情報が指定されたジョブをジョブキューに登録する登録手段、
前記ジョブキューに蓄積されているジョブのうち自己に振り分けた処理定義情報が指定されたジョブのみを処理する1又は複数のジョブ処理手段、
として機能させ、
前記各ジョブ処理手段は、
前記ジョブ処理手段全てに共通した振分処理を実行することによって処理定義情報を前記各ジョブ処理手段に振り分ける振分処理部と、
前記振分処理部により自己に振り分けられた処理定義情報が指定されたジョブを実行するジョブ実行部と、
を有し、
前記振分処理部は、処理定義情報毎に集計された前記ジョブキューに蓄積されているジョブの数に応じて当該ジョブに指定された処理定義情報の振分先とする前記ジョブ処理手段の数を増減させることを特徴とするプログラム。 Computer
Registration means for registering a job in which job definition information that defines processing to be performed on data to be processed is specified in a job queue;
One or a plurality of job processing means for processing only jobs for which processing definition information assigned to the job is specified among jobs stored in the job queue;
Function as
Each job processing means includes:
A distribution processing unit that distributes the process definition information to each job processing unit by executing a distribution process common to all the job processing units;
A job execution unit that executes a job in which the process definition information distributed to itself by the distribution processing unit is designated;
Have
The distribution processing unit determines the number of job processing means to which the process definition information specified for the job is allocated according to the number of jobs accumulated in the job queue that is aggregated for each process definition information. A program characterized by increasing or decreasing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013073097A JP2014197340A (en) | 2013-03-29 | 2013-03-29 | Distributed processing system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013073097A JP2014197340A (en) | 2013-03-29 | 2013-03-29 | Distributed processing system and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014197340A true JP2014197340A (en) | 2014-10-16 |
Family
ID=52358065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013073097A Pending JP2014197340A (en) | 2013-03-29 | 2013-03-29 | Distributed processing system and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014197340A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020536319A (en) * | 2017-09-30 | 2020-12-10 | オラクル・インターナショナル・コーポレイション | Dynamic migration of groups of containers |
CN112114971A (en) * | 2020-09-28 | 2020-12-22 | 中国建设银行股份有限公司 | Task allocation method, device and equipment |
CN115543585A (en) * | 2022-11-28 | 2022-12-30 | 北京首信科技股份有限公司 | Enterprise number card data synchronization method, server and storage medium |
-
2013
- 2013-03-29 JP JP2013073097A patent/JP2014197340A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020536319A (en) * | 2017-09-30 | 2020-12-10 | オラクル・インターナショナル・コーポレイション | Dynamic migration of groups of containers |
US11755393B2 (en) | 2017-09-30 | 2023-09-12 | Oracle International Corporation | API registry in a container platform for automatically generating client code libraries |
CN112114971A (en) * | 2020-09-28 | 2020-12-22 | 中国建设银行股份有限公司 | Task allocation method, device and equipment |
CN115543585A (en) * | 2022-11-28 | 2022-12-30 | 北京首信科技股份有限公司 | Enterprise number card data synchronization method, server and storage medium |
CN115543585B (en) * | 2022-11-28 | 2023-08-22 | 北京首信科技股份有限公司 | Enterprise number card data synchronization method, server and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5628510B2 (en) | System and method for decentralized job scheduling and distributed execution in a network of multifunction devices | |
JP5716316B2 (en) | Job execution apparatus and image forming apparatus | |
US10990334B2 (en) | System, server and method of controlling the system and method of controlling the server | |
US20110149344A1 (en) | Log information management system, control method therefor, and storage medium | |
JP2012083991A (en) | Job execution management device, job execution device, job execution system and program | |
US20180088880A1 (en) | Information processing apparatus, function usage amount management system, and non-transitory computer readable storage medium | |
US20180285169A1 (en) | Information processing system and computer-implemented method | |
JP2014197340A (en) | Distributed processing system and program | |
JP6303571B2 (en) | Data processing apparatus, data processing system, data processing method, and program | |
CN108228346B9 (en) | Service system and control method thereof | |
JP2014172394A (en) | Printer, program and printing system | |
JP5760350B2 (en) | Information processing system | |
WO2015104906A1 (en) | Printing system, print server and method for submitting print jobs | |
JP6272080B2 (en) | Information processing apparatus, distributed printing system, printing control method, and program | |
JP2006260216A (en) | Document output management system, method and program | |
JP6890396B2 (en) | Information processing system and information processing method, document processing system, program | |
US9552182B2 (en) | Printing using multiple print processing resources | |
US10365870B2 (en) | Information processing system for detecting overload of a management server and processing a priority request having priority, and information processing method for detecting overload of a management server and processing a priority request having a high priority | |
JP2017049660A (en) | Server device, control system, control method, and program | |
JP2012079171A (en) | Job execution system, job execution device, and program | |
JP5867002B2 (en) | Assignment processing apparatus, image forming system, assignment processing method, and program | |
JP2003186639A (en) | Network printer | |
JP6812732B2 (en) | Information processing systems, information processing equipment and programs | |
JP5732755B2 (en) | Distribution system, distribution apparatus, distribution method, and program | |
JP5682398B2 (en) | Information processing apparatus, information processing program, and information processing system |