JP2011076304A - Device, method and program for allocating job - Google Patents
Device, method and program for allocating job Download PDFInfo
- Publication number
- JP2011076304A JP2011076304A JP2009226106A JP2009226106A JP2011076304A JP 2011076304 A JP2011076304 A JP 2011076304A JP 2009226106 A JP2009226106 A JP 2009226106A JP 2009226106 A JP2009226106 A JP 2009226106A JP 2011076304 A JP2011076304 A JP 2011076304A
- Authority
- JP
- Japan
- Prior art keywords
- job
- sub
- processing
- shared data
- sub job
- 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
Landscapes
- Multi Processors (AREA)
Abstract
Description
本発明は、金融、流通、産業などのバッチ処理システムに用いる、ジョブ割当装置、ジョブ割当方法およびジョブ割当プログラムに関する。 The present invention relates to a job assignment apparatus, a job assignment method, and a job assignment program used for batch processing systems such as finance, distribution, and industry.
近年、複数の計算機をネットワーク経由で結びつけ、強力な計算リソースを提供するグリッド技術が注目されており、この技術をバッチ処理に適用して高速化する方法が実現されている。バッチ処理のさらなる高速化を目的として、ジョブの実行順序を制御して計算ノードの有効活用を図る方法が提案されている(例えば、特許文献1参照)。 In recent years, grid technology that connects a plurality of computers via a network and provides powerful computing resources has attracted attention, and a method for speeding up the technology by applying this technology to batch processing has been realized. For the purpose of further speeding up the batch processing, a method has been proposed in which the execution order of jobs is controlled to effectively use the computation nodes (see, for example, Patent Document 1).
この特許文献1に記載の技術は、ジョブを複数台の計算機で並列処理するとき、優先度の低いジョブのタスクを処理待ちタスクキューに退避させ、優先度の高いジョブを先行して割り当てることで計算ノードの利用効率を向上させるものである。
In the technique described in
しかしながら、特許文献1に記載されたジョブの実行順序を制御する技術は、プロセスの並列化を目的としたものであり、データアクセスの並列性は考慮されていない。全計算ノードが、読込、書込をする共有データに対する処理が多い場合、共有データのI/O(Input/Output)処理がボトルネックとなり、計算ノードのCPU(Central Processing Unit)を有効に使い切れない。
However, the technique for controlling the job execution order described in
このような背景に鑑みて本発明がなされたのであり、本発明は、I/O処理待ちによるボトルネックを回避し、計算ノードの利用効率を向上させることができる、ジョブ割当装置、ジョブ割当方法およびジョブ割当プログラムを提供することを目的とする。 The present invention has been made in view of such a background, and the present invention avoids a bottleneck caused by waiting for I / O processing and can improve the utilization efficiency of a computation node, and a job allocation apparatus and a job allocation method And providing a job allocation program.
本発明は、ジョブを並列化して複数の計算機(ジョブ割当装置)に振り分け、データアクセスを伴う処理を実行する並列型のバッチ処理システムにおいて、共有データへのアクセスが排他された場合の処理を制御する。
あるジョブが共有データへのアクセスを排他されると、リトライせずに処理を中断して処理状態をサスペンドしてキューに保存し、新規ジョブの実行を開始する。
ある新規ジョブの共有データの処理が終了すると、キューテーブルを参照してサスペンドされた複数のジョブから同一の共有データに対する処理を含むジョブを抽出し、処理待ちの共有データを一括で実行する。
The present invention controls a process when access to shared data is exclusive in a parallel batch processing system in which jobs are parallelized, distributed to a plurality of computers (job allocation devices), and a process involving data access is executed. To do.
When a job is locked out of access to shared data, the processing is interrupted without retrying, the processing state is suspended and saved in the queue, and execution of a new job is started.
When the shared data processing for a new job is completed, a job including processing for the same shared data is extracted from a plurality of suspended jobs with reference to the queue table, and the shared data waiting for processing is collectively executed.
本発明によれば、I/O処理待ちによるボトルネックを回避し、計算ノードの利用効率を向上させる、ジョブ割当装置、ジョブ割当方法およびジョブ割当プログラムを提供することができる。 According to the present invention, it is possible to provide a job allocation device, a job allocation method, and a job allocation program that can avoid bottlenecks due to waiting for I / O processing and improve the utilization efficiency of a computation node.
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。 Next, modes for carrying out the present invention (referred to as “embodiments”) will be described in detail with reference to the drawings as appropriate.
本実施形態においては、すべてのサブジョブが共有データ処理を行うバッチ処理の例として、特定項目の合計値を求める集計処理を例として説明する。この集計バッチ処理をグリッド環境で実行する。 In the present embodiment, as an example of batch processing in which all sub-jobs perform shared data processing, tabulation processing for obtaining the total value of specific items will be described as an example. This aggregation batch process is executed in a grid environment.
図12は、本発明を適用する一例である金融機関の集計処理を説明するための図である。
ここで、図12(a)に示すジョブネットとは、実行順序を関連付けたジョブの集まりであり、ジョブネットを実行すると、ジョブネット中のジョブが実行順序に従って実行される。また、図12(b)に示すジョブとは、業務を構成する要素の最小単位であり、具体的には、コマンド、シェルスクリプト、Windows(登録商標)実行ファイル等の集まりである。
この図12(a)は、例えば、金融機関(銀行)の支店が、営業日当日の取引結果を集計し(集計処理)、伝票と請求書データと作成し(伝票作成および請求書作成)、売上を計算し(売上計算)、帳票を出力する(帳票出力)という各ジョブの処理順序をジョブネットとして示している。また、図12(b)は、図12(a)のジョブネットの中の一つのジョブである「集計処理」の内容を示し、「集計処理」は、さらに細かい「データ抽出」「会計計算」「個人マスタ更新」「部店マスタ更新」の各ジョブステップを顧客単位で繰り返すループ処理を行う。図12(c)に示すサブジョブは、このジョブのプロセスを並列化するためにループ処理に着目し、ジョブを所定の処理単位で分割したものである。例えば、顧客単位の0001番から3000番までを処理するジョブがあるとすると、0001番から1000番、1001番から2000番、2001番から3000番のサブジョブに分割して、並列処理を行う。
FIG. 12 is a diagram for explaining the aggregation processing of a financial institution that is an example to which the present invention is applied.
Here, the job net shown in FIG. 12A is a collection of jobs associated with the execution order. When the job net is executed, the jobs in the job net are executed according to the execution order. Further, the job shown in FIG. 12B is a minimum unit of elements constituting a business, and specifically, a collection of commands, shell scripts, Windows (registered trademark) execution files, and the like.
In FIG. 12A, for example, a branch of a financial institution (bank) aggregates the transaction results on the business day (aggregation process), creates slips and invoice data (slip creation and bill creation), The processing order of each job of calculating sales (sales calculation) and outputting a form (form output) is shown as a job net. FIG. 12B shows the contents of “total processing”, which is one job in the job net of FIG. 12A. “Total processing” is further divided into “data extraction” and “accounting calculation”. Loop processing is performed in which each job step of “personal master update” and “department store master update” is repeated for each customer. The sub-job shown in FIG. 12C is obtained by dividing the job into predetermined processing units by paying attention to loop processing in order to parallelize the processes of this job. For example, if there are jobs that process customer units from 0001 to 3000, they are divided into sub-jobs from 0001 to 1000, 1001 to 2000, and 2001 to 3000, and parallel processing is performed.
本発明は、ジョブをサブジョブに分割して、そのサブジョブを複数の計算機(ジョブ割当装置)に振り分け、大量のデータアクセスを伴う処理を実行する並列型のバッチ処理システムにおいて、ジョブの入出力データを管理するDBサーバ内の共有データへのアクセスが排他された場合の処理を制御する。
例えば、金融機関の集計処理においては、DBサーバ内に備わる、個々の顧客単位の取引等を管理する分割データと、支店ごとの1日の処理合計等のデータを管理する共有データとにアクセスすることが必要となる。従来の並列型の集計処理においては、共有データに計算機がアクセスしたときに、他の計算機がその共有データにアクセスしていることにより排他処理がなされると、リトライを繰り返した後、処理エラーとなっていた。本発明においては、ある計算機によるサブジョブが共有データへのアクセスを排他されると、リトライせずに処理を中断して処理状態をサスペンド(一時中断)しそのキューを保存し、次の新規サブジョブの実行を開始する。
そして、新規サブジョブの共有データへのアクセスが成功すると、保存したキューテーブルを参照してサスペンドされたサブジョブから同一の共有データにアクセスを要求するサブジョブを抽出し、処理待ちとなっていた共有データに対する処理を一括で実行することにより集計処理を行う。
The present invention divides a job into sub-jobs, distributes the sub-jobs to a plurality of computers (job allocation devices), and executes job input / output data in a parallel batch processing system that executes processing involving a large amount of data access. Controls processing when access to shared data in a managed DB server is exclusive.
For example, in the aggregation process of a financial institution, access is made to the divided data that manages transactions for individual customers, and the shared data that manages data such as daily processing totals for each branch, provided in the DB server. It will be necessary. In the conventional parallel type aggregation process, when a computer accesses shared data and an exclusive process is performed because another computer is accessing the shared data, a processing error and It was. In the present invention, when a sub job by a computer is exclusively accessed for shared data, the processing is suspended without retrying, the processing state is suspended (temporarily suspended), the queue is saved, and the next new sub job is saved. Start execution.
When access to the shared data of the new sub job is successful, the sub job that requests access to the same shared data is extracted from the suspended sub job with reference to the saved queue table, and the shared data that has been waiting for processing is extracted. Aggregation processing is performed by executing the processing in a batch.
図1は、本実施形態に係るジョブ割当装置3を含むジョブ割当システム5の構成例を示す機能ブロック図である。
ジョブ割当システム5は、バッチ処理を実行するシステムであり、ジョブ投入装置1と、サブジョブ振分装置2と、複数のグリッドノード(ジョブ割当装置)3(3a,3b,3c)と、DB(DataBase)サーバ4と、が通信ネットワーク6を介して接続される。なお、グリッドノード(ジョブ割当装置)3(3a,3b,3c)は、3つに限定されることはなく、複数のグリッドノード3を備えていればよい。
FIG. 1 is a functional block diagram illustrating a configuration example of a
The
まず、このジョブ割当システム5のジョブ割当処理の概略を説明する。
ジョブ投入装置1からジョブを投入されたサブジョブ振分装置2は、ジョブを所定の処理単位で分割し、その分割したサブジョブを各グリッドノード3(3a,3b,3c)へ振り分ける。そして、サブジョブを振り分けられたグリッドノード3は、サブジョブを実行し、DBサーバ4の分割データ421と共有データ422にアクセスする。
この共有データへのアクセスの際、グリッドノード3は、サブジョブの共有データ422へのアクセスを排他されると、リトライせずに処理を中断することにより処理状態をサスペンド(一時中断)して共有データI/O処理待ちキューテーブル(共有データI/O処理待ちキュー情報)313に登録し、次の新規サブジョブの実行を開始する。
次に、グリッドノード3は、新規サブジョブの共有データの処理に成功すると、共有データI/O処理待ちキューテーブル313を参照してサスペンドされた複数のサブジョブから同一の共有データに対する処理を含むサブジョブを抽出し、処理待ちの共有データ処理を一括で実行する。このとき、サスペンドされたサブジョブの処理の再開は、サブジョブの最初からではなく処理が中断した地点から処理を開始する。このようにすることで、I/O処理待ちによるボトルネックを回避する。
First, an outline of job assignment processing of the
The sub
When accessing the shared data, the
Next, when the
次に、各装置について具体的に説明する。
ジョブ投入装置1は、ジョブを記憶し、その記憶したジョブをサブジョブ振分装置2へ送信する。このジョブ投入装置1は、制御部10と、メモリ部11と、記憶部12と、入出力部13と、通信部14とを含んで構成される。
Next, each device will be specifically described.
The
制御部10は、ジョブ投入部101を含んで構成され、このジョブ投入部101が、記憶部12内のジョブネット保存部122に記憶されたジョブネットから、ジョブを取り出してジョブ保存部121に記憶し、その記憶したジョブを通信部14を介してサブジョブ振分装置2へ送信する。
メモリ部11は、RAM(Random Access Memory)等の記憶手段からなり、制御部10の処理に必要な情報を一時的に記憶する。
記憶部12は、ジョブ保存部121と、ジョブネット保存部122を含んで構成される。この記憶部12は、ハードディスク、フラッシュメモリ等の記憶手段からなり、制御部10の処理を行うためのプログラム等を記憶する。
入出力部13は、外部装置から制御部10の処理に関する指示を受け付ける。また、制御部10が生成した情報を外部装置に出力する。なお、この入出力部13は、入力インタフェースと出力インタフェースとから構成される。
通信部14は、LAN(Local Area Network)や専用回線を介して各装置との情報の送受信を行うための通信インタフェースからなる。
なお、この制御部10の機能は、例えばジョブ投入装置1の記憶部12に記憶されたプログラムをCPUがメモリ部11に展開し実行することで実現される。
The
The
The
The input /
The
The function of the
次に、サブジョブ振分装置2は、ジョブ投入装置1から取得したジョブを所定の処理単位に分割し、その分割したサブジョブを、各グリッドノード3へ振り分ける。また、サブジョブ振分装置2は、制御部20と、メモリ部21と、記憶部22と、入出力部23と、通信部24とを含んで構成される。
なお、メモリ部21、入出力部23、および通信部24は、ジョブ投入装置1のメモリ部11、入出力部13、および通信部14と同じ機能を備えるため説明は省略する。
Next, the sub
Note that the
制御部20は、サブジョブ振分装置2の全体の制御を司り、ジョブ分割部201と、サブジョブ振分部202と、サブジョブ管理部203とを含んで構成される。なお、この制御部20の機能は、例えばサブジョブ振分装置2の記憶部22に記憶されたプログラムをCPUがメモリ部21に展開し実行することで実現される。
ジョブ分割部201は、ジョブ投入装置1から取得したジョブを所定の処理単位に分割してサブジョブを生成し、記憶部22内のサブジョブ保存部221に保存する。
サブジョブ振分部202は、サブジョブを振り分けるグリッドノード3(3a,3b,3c)を決定し、その決定したグリッドノード3(3a,3b,3c)に、サブジョブを通信部24を介して送信する。また、サブジョブ振分部202には、サブジョブの振分を決定する際に、サスペンド(一時中断)できるジョブの所定数が設定され、サブジョブ振分部202は、その所定数を超えない範囲でジョブを振り分ける。これにより、グリッドノード3間のジョブ実行終了時間のばらつきを抑えることができる。
サブジョブ管理部203は、各グリッドノード3(3a,3b,3c)に振り分けた各サブジョブのデータ処理の進捗情報を、記憶部22内のサブジョブ管理テーブル222(後記する図2参照)に記憶し管理する。
The control unit 20 controls the entire sub
The
The sub
The sub job management unit 203 stores and manages the progress information of the data processing of each sub job distributed to each grid node 3 (3a, 3b, 3c) in the sub job management table 222 (see FIG. 2 described later) in the storage unit 22. To do.
記憶部22は、ジョブ分割部201が分割したサブジョブを保存するサブジョブ保存部221と、サブジョブ管理テーブル222とを含んで構成され、ハードディスク、フラッシュメモリ等の記憶手段からなる。
The storage unit 22 includes a
図2は、本実施形態に係るサブジョブ管理テーブル222のデータ構成の一例を示す図である。
サブジョブ管理テーブル222は、サブジョブごとに1レコードからなる情報であり、図2に示すように、ジョブID1001、サブジョブID1002、振分先ノード1003、および進捗状況1004のデータ項目を含んで構成される。
FIG. 2 is a diagram illustrating an example of a data configuration of the sub job management table 222 according to the present embodiment.
The sub job management table 222 is information including one record for each sub job, and includes data items of a
ジョブID1001は、サブジョブに分割される前におけるジョブごとの固有な識別子である。サブジョブID1002は、ジョブ分割部201により分割された各サブジョブに付された固有の識別子である。振分先ノード1003は、サブジョブ振分部202がサブジョブを振り分けた各グリッドノード3(3a,3b、3c)のノード名である。また、進捗状況1004は、サブジョブ管理部203により、サブジョブのデータ処理の進捗状況に応じて、「未処理」「実行中」「完了」のいずれかが登録される。
The
図1に戻り、グリッドノード(ジョブ割当装置)3について説明する。グリッドノード3は、DBサーバ4にアクセスすることで、サブジョブを実行する装置であり、制御部30と、メモリ部31と、記憶部32と、入出力部33と、通信部34とを含んで構成される。
なお、入出力部33および通信部34は、ジョブ投入装置1の入出力部13および通信部14と同じ機能を備えるため説明は省略する。
Returning to FIG. 1, the grid node (job allocation apparatus) 3 will be described. The
Note that the input /
制御部30は、グリッドノード3全体の制御を司り、サブジョブ制御部301と、サブジョブ実行部302と、キュー操作部303と、キュー管理部304とを含んで構成される。
なお、この制御部30の機能は、例えばグリッドノード3の記憶部32に記憶されたプログラムをCPUがメモリ部31に展開し実行することで実現される。
The control unit 30 controls the
The function of the control unit 30 is realized, for example, when the CPU expands and executes a program stored in the
サブジョブ制御部301は、後記するメモリ部31内のサブジョブ進捗管理テーブル(サブジョブ進捗管理情報)312(図3)を参照し、未処理のサブジョブを検索する。そして、サブジョブ制御部301は、キュー操作部303を介して、検索した未処理のサブジョブをサブジョブ実行部302へ割り当てる。また、サブジョブ制御部301は、サブジョブ進捗管理テーブル312の更新を行う。
The sub
サブジョブ実行部302は、サブジョブの記述に従って、データ入力、データ処理、データ出力等を実行する。このとき、サブジョブ実行部302は、サブジョブ全体の処理における前半部分の「分割データ」に対する処理を先ず実行し、その後に、後半部分である「共有データ」の処理を実行する。また、サブジョブ実行部302は、後記する共有データI/O処理待ちキューテーブル313(図4参照)の更新を行う。
The sub
キュー操作部303は、サブジョブの保存、取り出しの指示を行い、サブジョブが共有データの処理待ち状態になったときに、そのサブジョブの実行状態に関する情報の収集を行う。
具体的には、キュー操作部303は、サブジョブ振分装置2から通信部34を介して受信したサブジョブを、メモリ部31内のサブジョブキュー311に保存する。また、キュー操作部303は、サブジョブ制御部301からの命令を受け、サブジョブをサブジョブキュー311から取得し、サブジョブ実行部302へ送信する。さらに、キュー操作部303は、サブジョブ実行部302が共有データの処理に失敗した場合に、サブジョブの実行状態をサスペンドしてキューに保存するために必要な情報を収集し、共有データI/O処理待ちキュー314(後記する図5参照)に保存する。また、キュー操作部303は、サブジョブ実行部302が共有データの処理に成功した場合に、共有データを処理したサブジョブと、同一の共有データにアクセスを要求するサブジョブを共有データI/O処理待ちキュー314から取得し、その実行状態を復元する処理を行う。
The
Specifically, the
キュー管理部304は、メモリ部31内のサブジョブ進捗管理テーブル312を用いて、未処理または共有処理待ちのサブジョブ数を確認し、通信部34を介して、その情報をサブジョブ振分装置2へ送信する。
The
次に、メモリ部31は、サブジョブ振分装置2から送信されたサブジョブが記憶されるサブジョブキュー311と、サブジョブ進捗管理テーブル312(図3参照)と、共有データI/O処理待ちキューテーブル313(図4参照)と、共有データI/O処理待ちキュー314(図5参照)とを含んで構成される。なお、メモリ部31内に記憶されたこれらの情報は、記憶部32内に記憶されていてもよい。
Next, the memory unit 31 stores a
図3は、本実施形態に係るサブジョブ進捗管理テーブル(サブジョブ進捗管理情報)312のデータ構成の一例を示す図である。
サブジョブ進捗管理テーブル312は、グリッドノード3に配置されたサブジョブごとに1レコードからなる情報であり、図3に示すように、ジョブID1001、サブジョブID1002、振分元1005、およびサブジョブ進捗状況1006のデータ項目を含んで構成される。
FIG. 3 is a diagram showing an example of the data configuration of the sub job progress management table (sub job progress management information) 312 according to the present embodiment.
The sub job progress management table 312 is information consisting of one record for each sub job arranged in the
ここで、振分元1005は、取得したサブジョブの振分元となるサブジョブ振分装置2のノード名である。また、サブジョブ進捗状況1006は、サブジョブ制御部301により、サブジョブのデータ処理の進捗状態に応じて、「未処理」「実行中」「共有処理待ち」「完了」のいずれかの情報が格納される。この「共有処理待ち」は、サブジョブ実行部302が、共有データの処理をできずに、そのサブジョブが、共有データI/O処理待ちキュー314(図5参照)に保存されている処理待ち状態を示すものである。
Here, the
図4は、本実施形態に係る共有データI/O処理待ちキューテーブル(共有データI/O処理待ちキュー情報)313のデータ構成の一例を示す図である。
共有データI/O処理待ちキューテーブル313は、共有データに対するアクセスが排他されたサブジョブごとに1レコードからなる情報であり、図4に示すように、ジョブID1001、サブジョブID1002、キューID1007、および共有データID1008のデータ項目を含んで構成される。
FIG. 4 is a diagram showing an example of the data configuration of the shared data I / O processing wait queue table (shared data I / O processing wait queue information) 313 according to the present embodiment.
The shared data I / O processing waiting queue table 313 is information including one record for each sub job for which access to the shared data is excluded. As shown in FIG. 4, the
ここで、キューID1007は、サブジョブが振り分けられた自己のグリッドノード3上のキューと他のグリッドノード3上のキューとを区別するためのキュー識別子である。例えば、グリッドノード3(3a)に振り分けられたサブジョブについては、「3a_SpdQ」のキューID1007が付され、グリッドノード3(3b)に振り分けられたサブジョブについては、「3b_SpdQ」が付される。また、共有データID1008は、そのサブジョブが処理を要求し処理待ちとなった共有データ422の識別子を示す。
Here, the
図5は、本実施形態に係る共有データI/O処理待ちキュー314のデータ構成の一例を示す図である。
共有データI/O処理待ちキュー314は、サブジョブのサスペンド状態を保存するための情報であり、ヘッダ部1009と本体部1010とを備える。
FIG. 5 is a diagram showing an example of the data configuration of the shared data I / O
The shared data I / O processing waiting
ヘッダ部1009は、ジョブID1001、サブジョブID1002、キューID1007、および共有データID1008のデータ項目を備える。これらの情報は、図4に示した共有データI/O処理待ちキューテーブル313の1レコードと同一内容のデータ項目である。
The header portion 1009 includes data items of a
本体部1010には、サブジョブ1011、チェックポイント1012、入力元データ名1013、出力先データ名1014、および未出力データ値1015の各データが記憶される。
ここで、サブジョブ1011は、サブジョブに記載された計算の命令、処理が格納される。チェックポイント1012は、サブジョブ1011がジョブステップのどこまで終了したかを示す情報である。入力元データ名1013は、サブジョブで入力したデータ名を示す。出力先データ名1014は、サブジョブで出力するデータ名を示す。未出力データ値1015は、サスペンド時の未出力データ項目および未出力データ値を示す。
なお、この本体部1010の各情報を保存することにより、処理途中であるサスペンド時の情報を、その時点から再開し処理することができる。
The main body 1010 stores
Here, the
It should be noted that by storing each piece of information in the main body 1010, it is possible to resume and process information at the time of suspension in the middle of processing from that point.
図1に戻り、DBサーバ4について説明する。DBサーバ4は、ジョブの入出力データを管理し、制御部40と、メモリ部41と、記憶部42と、入出力部43と、通信部44と、を含んで構成される。
なお、メモリ部41、入出力部43および通信部44は、ジョブ投入装置1のメモリ部11、入出力部13および通信部14と同じ機能を備えるため説明は省略する。
Returning to FIG. 1, the
Note that the
制御部40は、データ制御部401を含んで構成され、DBサーバ4の全体の制御を司る。なお、この制御部40の機能は、例えばDBサーバ4の記憶部42に記憶されたプログラムをCPUがメモリ部41に展開し実行することで実現される。
データ制御部401は、グリッドノード3のサブジョブ実行部302からのサブジョブ実行指示に基づき、記憶部42内の分割データ421および共有データ422の処理を行う。そして、データ制御部401は、記憶部42内のデータ管理テーブル423を用いてデータの入出力を管理し、データ管理テーブル423内のロックテーブル424(後記する図6参照)の更新を行う。
具体的には、データ制御部401は、あるグリッドノード3により共有データ422がロック(アクセス不可)中の場合に、他のグリッドノード3からその共有データ422に対してアクセス要求があると、そのサブジョブの排他制御を行い、後記するロックテーブル424(図6参照)に、排他制御されたサブジョブの情報を記憶する。また、データ制御部401は、共有データ422がロックされていない場合、共有データ422にアクセスしたサブジョブの送信元となるグリッドノード3のキューID1007を、ロックテーブル424に登録する。
このロックテーブル424にキューID1007が登録されていることで、共有データ422がそのグリッドノード3によりロックされている状態であることを、データ制御部401が確認する。
The control unit 40 includes a
The data control
Specifically, when the shared
Since the
図6は、本実施形態に係るロックテーブル424のデータ構成の一例を示す図である。
ロックテーブル424は、共有データ422ごとにその共有データ422がロックされている場合にそのロックを獲得したキューと、その共有データ422にロック要求をしているサブジョブに関する情報が記憶される。そして、ロックテーブル424は、共有データID1008、ロック獲得キュー1016、およびロック要求サブジョブ1017のデータ項目を含んで構成される。
FIG. 6 is a diagram illustrating an example of a data configuration of the lock table 424 according to the present embodiment.
The lock table 424 stores, for each shared
ここで、共有データID1008は、処理待ちとなった共有データ422の識別子である。また、ロック獲得キュー1016には、共有データ422のロック権限を保持しているグリッドノード3のキューID1007が保存される。また、ロック要求サブジョブ1017には、共有データ422を処理するためにロックの開放待ちをしているサブジョブのジョブID、サブジョブID、ノード名が登録される。そして、このロック要求サブジョブ1017には、共有データがロック中であることにより、処理待ちとなっているサブジョブの前記した情報が、処理待ち順に保存される。
このように、共有データ422へのロックおよびアンロック権限を、グリッドノード3のロック獲得キュー1016に記憶されたキューID1007で管理することによって、他のグリッドノード3からの割込み処理を回避することができる。
Here, the shared
In this way, by managing the authority to lock and unlock the shared
図1に戻り、DBサーバ4の記憶部42には、いずれかのグリッドノード3(3a,3b,3c)が専有して処理を行う分割データ421と、すべてのグリッドノード3が共通して読込、処理、書込を行う共有データ422と、データ管理テーブル423とを含んで構成される。このデータ管理テーブル423には、データ制御部401がデータの排他制御を行う際に用いる前記したロックテーブル424が記憶される。
Returning to FIG. 1, the divided
次に、本実施形態に係るグリッドノード(ジョブ割当装置)3を含むジョブ割当システム5によるジョブ割当方法について、図1〜図6を参照しつつ、図7〜図10を用いて具体的に説明する。
Next, a job allocation method by the
図7〜図10は、本実施形態に係るジョブ割当方法を説明するためのシーケンス図である。なお、ジョブ投入装置1によるサブジョブ振分装置2へのジョブの送信、サブジョブ振分装置2のジョブ分割部201によるジョブのサブジョブへの分割およびサブジョブ保存部221への保存は終了しているものとして説明する。
7 to 10 are sequence diagrams for explaining the job assignment method according to the present embodiment. Note that the transmission of the job to the sub
まず、図7に示すように、グリッドノード3(3a)のキュー管理部304は、サブジョブ進捗管理テーブル312(図3)を参照し、未処理または共有処理待ちのサブジョブ数を確認する(ステップS701)。そして、キュー管理部304は、この確認結果をサブジョブ振分装置2のサブジョブ振分部202へ送信する(ステップS702)。
First, as illustrated in FIG. 7, the
次に、サブジョブ振分部202は、ステップS701の確認結果が、所定の上限値を超えない場合に、サブジョブを振り分けるグリッドノードを決定する(ステップS703)。なお、サブジョブ振分部202は、所定の上限値を超えた場合は、サブジョブの振分処理を行わない。
続いて、サブジョブ振分部202は、サブジョブ保存部221からサブジョブを取得し(ステップS704)、サブジョブの各グリッドノード3(3a,3b,3c)への振分を行い(ステップS705)、振り分けたサブジョブを各グリッドノード3(3a,3b,3c)に送信する(ステップS706)。ここでは、グリッドノード3(3a)にサブジョブが振り分けられたものとして処理を説明する。また、サブジョブ振分部202は、サブジョブ管理部203を介して、サブジョブ管理テーブル222(図2参照)を更新する(ステップS707)。例えば、振り分けたサブジョブに対応するレコードについて、振分先ノード1003を振分先のグリッドノード「3a」に、進捗状況1004を「未処理」から「実行中」に更新する(ステップS707)。
Next, the sub
Subsequently, the sub
次に、グリッドノード3(3a)のキュー操作部303は、ステップS706で受信したサブジョブをサブジョブキュー311(図1参照)に保存し(ステップS708)、サブジョブ制御部301に対して新規サブジョブがグリッドノード3(3a)に配置されたことに伴う情報の更新要求を行う(ステップS709)。そして、サブジョブ制御部301は、サブジョブ進捗管理テーブル312(図3参照)に新しいレコードを追加して、取得データを元に、ジョブID1001、サブジョブID1002、振分元1005、サブジョブ進捗状況1006を登録する(ステップS710)。このとき、新しく追加されたレコードのサブジョブ進捗状況1006は「未処理」である。
Next, the
続いて、サブジョブ制御部301は、サブジョブ進捗管理テーブル312(図3)を参照し、未処理のサブジョブの有無を検索する(ステップS711)。未処理のサブジョブがある場合、サブジョブ制御部301は、サブジョブをサブジョブ実行部302に割り当てるようにキュー操作部303に命令し(ステップS712)、このサブジョブ割当命令を送信する(ステップS713)。また、サブジョブ制御部301は、サブジョブ進捗管理テーブル312のこのサブジョブに対応するレコードについて、サブジョブ進捗状況1006を「未処理」から「実行中」に更新する(ステップS714)。
Subsequently, the sub
そして、キュー操作部303は、ステップS713で命令されたサブジョブをサブジョブキュー311(図1参照)から取得し(ステップS715)、サブジョブ実行部302に送信する(ステップS716)。
The
次に、サブジョブ実行部302は、サブジョブを起動し(ステップS717)、サブジョブ前半部分の分割データ処理を開始して(ステップS718)、DBサーバ4のデータ制御部401を介して分割データ421(図1参照)へのアクセスを要求する(ステップS719)。分割データ421は、グリッドノード3(3a)が専有できロックの競合は発生しないため、速やかにサブジョブ実行部302へ送信され(ステップS720)、サブジョブ実行部302により、分割データ421の処理が実行される(ステップS721)。
Next, the sub
続いて、図8に示すように、サブジョブ実行部302は、サブジョブ後半部分の共有データ処理を開始して(ステップS722)、DBサーバ4のデータ制御部401を介して共有データ422(図1参照)へのアクセスを要求する(ステップS723)。ここで、共有データ422が、他のグリッドノード3(3b,3c)によって、ロック中の場合、DBサーバ4のデータ制御部401は、排他制御を行う(ステップS724)。続いて、データ制御部401は、ロックテーブル424(図6参照)のロック要求サブジョブ1017に、共有データ422にアクセスを要求したそのサブジョブに関するジョブID、サブジョブID、およびノード名を登録する(ステップS725)。次に、データ制御部401は、共有データ422がロックされていることを、グリッドノード3(3a)のサブジョブ実行部302に、ロック処理待ち通知として送信する(ステップS726)。
Subsequently, as shown in FIG. 8, the sub
サブジョブ実行部302は、ロック処理待ち通知を受信すると、サブジョブの実行を停止し(ステップS727)、共有データI/O処理待ちキューテーブル313(図4参照)のジョブID1001、サブジョブID1002、キューID1007、および共有データID1008を登録する(ステップS728)。そして、サブジョブ実行部302は、共有データ処理に失敗したことを示すメッセージを生成し(ステップS729)、サブジョブ制御部301に送信する(ステップS730)。
Upon receiving the lock processing wait notification, the sub
次に、サブジョブ制御部301は、ステップS730にて取得した共有データ処理に失敗したサブジョブのジョブID1001、サブジョブID1002、キューID1007、および共有データID1008を引数としたサブジョブ登録命令情報を生成し(ステップS731)、キュー操作部303に送信する(ステップS732)。
Next, the sub
続いて、キュー操作部303は、ステップS732のサブジョブ登録命令情報で指定されたサブジョブの実行状態をサスペンドしてキューに保存するために必要な情報、すなわち、チェックポイント1012、サブジョブの入力元データ名1013、出力先データ名1014、およびサブジョブの未出力データ値1015を収集する(ステップS733)。そして、キュー操作部303は、ヘッダ部1009と本体部1010からなる情報を生成し、共有データI/O処理待ちキュー314(図5参照)として登録する(ステップS734)。続いて、キュー操作部303は、共有データI/O処理待ちキュー314への登録処理が完了したことをサブジョブ制御部301へ送信する(ステップS735)。
Subsequently, the
次に、サブジョブ制御部301は、ステップS735の登録完了の通知を受信すると、サブジョブ進捗管理テーブル312(図3参照)のサブジョブ進捗状況1006を「実行中」から「共有処理待ち」に更新する(ステップS736)。
Next, when receiving the registration completion notification in step S735, the sub
以上の処理で、1つのサブジョブが共有データ処理失敗でサスペンドされたので、次の新規サブジョブに対する処理を開始する(ステップS737)。 With the above processing, since one sub job has been suspended due to the shared data processing failure, processing for the next new sub job is started (step S737).
図9は、図8のステップS737において、開始された新規サブジョブに対する処理において、図7のステップS711からステップS721までの処理、つまりサブジョブ前半部分の分割データ421の処理実行が終了した後の処理について示している。以下、DBサーバ4の共有データ422がロックされていない場合の処理について、図9,図10を用いて説明する。
FIG. 9 shows the processing from step S711 to step S721 in FIG. 7 in the processing for the new sub job started in step S737 in FIG. 8, that is, the processing after the execution of the divided
図9に示すように、サブジョブ実行部302は、図7と同様にサブジョブ後半部分の共有データ処理を開始して(ステップS722)、DBサーバ4のデータ制御部401を介して共有データ422へのアクセスを要求する(ステップS723)。ここで、共有データ422がロックされていない場合、DBサーバ4のデータ制御部401は、ロックテーブル424(図6参照)のロック獲得キュー1016にグリッドノード3(3a)のキューID1007を登録する(ステップS738)。これは、DBサーバ4の共有データ422に対してグリッドノード3(3a)のキューID1007がロックをかけたのと同様であることを意味する。そして、データ制御部401は、サブジョブ実行部302に共有データ422を送信する(ステップS739)。
As shown in FIG. 9, the sub
共有データ422を受信したサブジョブ実行部302は、共有データ処理を実行する(ステップS740)。そして、共有データ処理の完了により、サブジョブが終了すると、サブジョブ実行部302は、サブジョブ処理完了メッセージを生成し(ステップS741)、サブジョブ制御部301に送信する(ステップS742)。
The sub
次に、サブジョブ制御部301は、サブジョブ進捗管理テーブル312(図3参照)のサブジョブ進捗状況1006を「実行中」から「完了」に更新する(ステップS743)。そして、サブジョブ制御部301は、サブジョブ完了通知を生成し(ステップS744)、サブジョブ振分装置2のサブジョブ振分部202に送信する(ステップS745)。
Next, the sub
続いて、サブジョブ完了通知を受信したサブジョブ振分装置2のサブジョブ振分部202は、サブジョブ管理部203を介して、サブジョブ管理テーブル222(図2参照)の進捗状況1004を「実行中」から「完了」に更新する(ステップS746)。
Subsequently, the sub
一方、グリッドノード3(3a)のサブジョブ制御部301は、共有データI/O処理待ちキューテーブル313(図4参照)を検索し、共有データID1008にステップS738で取得したものと同一の共有データ422に対するアクセス要求が含まれているかを検索する(ステップS747)。つまり、共有データI/O処理待ちキューテーブル313に、処理を終えた共有データ422と同一の共有データID1008が存在するかを検索する。共有データID1008の一致するサブジョブが存在する場合、サブジョブ制御部301は、サブジョブ取得命令情報を生成して(ステップS748)、キュー操作部303に送信する(ステップS749)。なお、サブジョブ取得命令情報は、引数として、ジョブID、サブジョブID、キューID、および共有データIDを含む情報である。
On the other hand, the sub
次に、キュー操作部303は、ステップS749のサブジョブ取得命令情報で指定されたサブジョブを共有データI/O処理待ちキュー314(図5参照)から取得し、実行状態を復元する処理を行う(ステップS750)。具体的には、共有データI/O処理待ちキュー314の本体部1010に保存されているチェックポイント1012を参照し、ジョブステップの実行位置をサスペンド前までスキップする。そして、本体部1010に記憶されているサブジョブの入力元データ名1013、出力先データ名1014、未出力データ値1015を、復元したサブジョブに設定する。そして、キュー操作部303は、サブジョブの実行状態の復元処理が完了したことを、サブジョブ制御部301に通知する(ステップS751)。
Next, the
続いて、図10に示すように、サブジョブ制御部301は、サブジョブの復元処理が完了したことを受信し、この復元したサブジョブをサブジョブ実行部302に割り当てるようにキュー操作部303に命令を出す(ステップS752)。これ以降は、前記した図7のステップS713からS717および図9のステップS722〜S746と同様にサブジョブの後半部分の共有データ422の実行処理を行う(ステップS753)。また、ステップS745において、サブジョブ完了通知を送信後、サブジョブ制御部301は、共有データI/O処理待ちキューテーブル313(図4参照)から処理が完了したサブジョブを示すレコードを削除する更新を行う(ステップS754)。
Next, as shown in FIG. 10, the sub
それ以降、共有データI/O処理待ちキューテーブル313から該当するサブジョブがなくなるまで、ステップS747〜S754の共有データI/O処理を繰り返し実行する(ステップS755)。そして、ステップS747で共有データI/O処理待ちキューテーブル313を検索して、該当するサブジョブが存在しない場合は、共有データI/Oのループ処理を終了する(ステップS756)。
続いて、サブジョブ制御部301は、共有データ422のアンロック命令情報を生成し(ステップS757)、DBサーバ4のデータ制御部401に送信する(ステップS758)。
Thereafter, the shared data I / O processing in steps S747 to S754 is repeatedly executed until there is no corresponding sub job in the shared data I / O processing waiting queue table 313 (step S755). Then, in step S747, the shared data I / O processing wait queue table 313 is searched, and if the corresponding sub job does not exist, the shared data I / O loop processing is terminated (step S756).
Subsequently, the sub
次に、データ制御部401は、取得したアンロック命令情報に基づき、ロックテーブル424(図6参照)を更新する(ステップS759)。具体的には、データ制御部401は、サブジョブがアクセスした共有データID1008を示すレコードのロック獲得キュー1016をクリアし、ロック要求サブジョブ1017からノード名が3aのサブジョブを削除する。そして、データ制御部401は、アンロック処理が完了したことを、グリッドノード3(3a)のサブジョブ制御部301へ送信する(ステップS760)。
Next, the
サブジョブ制御部301は、アンロック処理の完了を受信すると、新規サブジョブに対する処理を再開する(ステップS761)。具体的には、図7のステップS711に戻り処理を続ける。
Upon receiving the completion of the unlock process, the sub
なお、サブジョブ振分装置2のサブジョブ振分部202は、グリッドノード3のキュー管理部304から所定の間隔で、未処理または共有処理待ちのサブジョブ数の確認結果を受信し(ステップS702)、ステップS703〜S707のサブジョブの振分処理を繰り返し行う。そして、ステップS704において、振り分けるサブジョブが存在しない場合、即ち、ジョブの処理が終了した場合には、ジョブの終了通知をジョブ投入装置1に送信し、サブジョブの振分を待つ。
The sub
次に、本実施形態に係るジョブ割当プログラムを実行する際における、サブジョブの処理の流れを、各サブジョブに関するデータの存在場所を示して説明する。
図11は、本実施形態に係るサブジョブの存在場所の時系列変化を説明するための図である。
Next, the flow of sub job processing when the job allocation program according to the present embodiment is executed will be described by showing the location of data relating to each sub job.
FIG. 11 is a diagram for explaining a time-series change in the location of the sub job according to the present embodiment.
図11中のT0からT13は、ジョブ割当プログラム実行前であるT0から実行終了後であるT13まで続く時間軸を示す。また、図11中のブロックは、左から順に、サブジョブ振分装置2のサブジョブ保存部221、グリッドノード3(3a)のサブジョブキュー311、共有データI/O処理待ちキュー314、サブジョブ実行部302を示す。そして、丸囲みの数字は、計算機に保存されるサブジョブを示すものであり、数字はサブジョブID1002を表す。
この図11は、ある時点におけるサブジョブの存在場所をこの丸囲み文字で表現している。以下、時間軸にそって、サブジョブの処理の流れの一例を説明する。
In FIG. 11, T0 to T13 indicate time axes that continue from T0 before execution of the job assignment program to T13 after completion of execution. The blocks in FIG. 11 include, in order from the left, a sub
In FIG. 11, the location of the sub job at a certain point is expressed by the circled characters. Hereinafter, an example of the flow of sub job processing will be described along the time axis.
時間T0では、サブジョブ「1」〜「10」は、サブジョブ保存部221に保存されている、つまり、まだ、サブジョブがグリッドノード3に振り分けられていない状態である。
時間T1において、サブジョブ「1」,「3」がグリッドノード3(3a)に振り分けられ、サブジョブキュー311(図1)に保存されたことを示す。
次に、時間T2において、サブジョブ「1」がサブジョブ実行部302により実行され、一方、サブジョブ「5」がさらにサブジョブキュー311に保存される。
続いて、時間T3において、サブジョブ「1」の共有データが処理できなかったため、サスペンドされて共有データI/O処理待ちキュー314(図5)に保存される。そして、次に新たなサブジョブ「3」がサブジョブ実行部302により処理されることを示す。
時間T4では、サブジョブ「3」の共有データ422が処理できなかったため、サスペンドされて共有データI/O処理待ちキュー314に保存される。そして次に新たなサブジョブ「5」がサブジョブ実行部302により処理されることを示す。
時間T5において、サブジョブ「5」が共有データ処理を完了したため消滅し、次にサブジョブ「1」がサブジョブ実行部302に再割当されたことを示す。
時間T6では、サブジョブ「1」が共有データ処理を完了したため消滅する。そして、サブジョブ「3」がサブジョブ実行部302により処理され、共有データI/O処理待ちキュー314が空になるまで、繰り返し共有データ処理が実行される。
次に時間T7において、新たにサブジョブ「7」がサブジョブ実行部302で処理され、以下、時間T8〜時間T12の処理を行うことで、時間T13において、すべてのサブジョブの処理が終了する。
At time T0, the sub jobs “1” to “10” are stored in the sub
At time T1, the sub jobs “1” and “3” are distributed to the grid node 3 (3a) and stored in the sub job queue 311 (FIG. 1).
Next, at time T <b> 2, the sub job “1” is executed by the sub
Subsequently, since the shared data of the sub job “1” could not be processed at time T3, it is suspended and stored in the shared data I / O processing waiting queue 314 (FIG. 5). Next, the new sub job “3” is processed by the sub
At time T4, since the shared
At time T5, the sub job “5” disappears because the shared data processing is completed, and the sub job “1” is then reassigned to the sub
At time T6, the sub job “1” disappears because the shared data processing is completed. Then, the sub job “3” is processed by the sub
Next, at time T7, a new sub job “7” is processed by the sub
以上のように、本発明に係るジョブ割当装置、ジョブ割当方法およびジョブ割当プログラムによれば、複数のノードで構成される並列型のバッチ処理システムにおいて、同一データへのI/O処理待ちによるボトルネックを回避し、計算ノードの利用効率を向上させることができる。 As described above, according to the job allocation apparatus, the job allocation method, and the job allocation program according to the present invention, in a parallel batch processing system including a plurality of nodes, bottles due to waiting for I / O processing for the same data are performed. The bottleneck can be avoided and the utilization efficiency of the computation node can be improved.
1 ジョブ投入装置
2 ジョブ振分装置
3 グリッドノード(ジョブ割当装置)
4 DBサーバ
5 ジョブ割当システム
6 通信ネットワーク
10,20,30,40 制御部
11,21,31,41 メモリ部
12,22,32,42 記憶部
13,23,33,43 入出力部
14,24,34,44 通信部
101 ジョブ投入部
121 ジョブ保存部
122 ジョブネット保存部
201 ジョブ分割部
202 サブジョブ振分部
203 サブジョブ管理部
221 サブジョブ保存部
222 サブジョブ管理テーブル
301 サブジョブ制御部
302 サブジョブ実行部
303 キュー操作部
304 キュー管理部
311 サブジョブキュー
312 サブジョブ進捗管理テーブル(サブジョブ進捗管理情報)
323 共有データI/O処理待ちキューテーブル(共有データI/O処理待ちキュー情報)
324 共有データI/O処理待ちキュー
401 データ制御部
421 分割データ
422 共有データ
423 データ管理テーブル
424 ロックテーブル
1
4
323 Shared data I / O processing wait queue table (shared data I / O processing wait queue information)
324 Shared data I / O processing waiting
Claims (6)
前記サブジョブが記憶されるサブジョブキュー、前記サブジョブの処理状態の進捗状況が記憶されるサブジョブ進捗管理情報、および前記サブジョブのうち共有データ処理待ちのサブジョブが記憶される共有データI/O処理待ちキュー情報が格納される記憶部と、
前記サブジョブ進捗管理情報の更新を行い、前記サブジョブ進捗管理情報を参照して、未処理のサブジョブを検索するサブジョブ制御部と、
前記検索された未処理のサブジョブを前記サブジョブキューから取得し、前記DBサーバの前記分割データおよび前記共有データにアクセスすることによりサブジョブを実行するサブジョブ実行部と、
前記サブジョブ実行部が、前記共有データの処理に失敗した場合に、前記サブジョブの実行を一時中断して、前記一時中断した処理待ちのサブジョブの進捗状況を、前記共有データI/O処理待ちキュー情報に登録するキュー操作部と、を備え、
前記サブジョブ実行部は、前記サブジョブの実行状態を一時中断した後に、前記サブジョブキューから新たな前記未処理のサブジョブを取得して前記共有データの処理を行い、
当該処理が成功した場合に、前記サブジョブ制御部が、前記処理待ちのサブジョブのうち、当該処理が成功した共有データと同一の前記共有データにアクセスを要求するサブジョブを前記共有データI/O処理待ちキュー情報から抽出し、
前記サブジョブ実行部が、前記抽出したサブジョブの前記共有データの処理を実行すること
を特徴とするジョブ割当装置。 A job distribution device that divides a job into sub-jobs of a predetermined processing unit and distributes the jobs to a plurality of job allocation devices, and processes the distributed sub-jobs by accessing divided data and shared data stored in a DB server The job allocation apparatus provided in a job allocation system in which a plurality of job allocation apparatuses and the DB server that manages access of the divided data and the shared data for each job allocation apparatus are connected via a communication network. And
Sub job queue in which the sub job is stored, sub job progress management information in which the progress status of the processing state of the sub job is stored, and shared data I / O processing wait queue information in which a sub job of the sub job waiting for shared data processing is stored A storage unit for storing
Updating the sub job progress management information and referring to the sub job progress management information to search for an unprocessed sub job;
A sub job execution unit that acquires the searched unprocessed sub job from the sub job queue and executes the sub job by accessing the divided data and the shared data of the DB server;
When the sub job execution unit fails to process the shared data, the execution of the sub job is temporarily suspended, and the progress status of the suspended sub job waiting for processing is displayed as the shared data I / O processing queue information. A queue operation unit registered in
The sub job execution unit, after temporarily suspending the execution state of the sub job, acquires the new unprocessed sub job from the sub job queue and processes the shared data,
When the processing is successful, the sub job control unit waits for the shared data I / O processing to wait for a sub job that requests access to the same shared data as the shared data for which the processing has succeeded among the sub jobs waiting for processing. Extracted from queue information,
The job assignment apparatus, wherein the sub job execution unit executes processing of the shared data of the extracted sub job.
前記キュー操作部は、前記サブジョブ実行部が、前記共有データの処理に失敗したときに、前記サブジョブの実行状態に関する情報を収集して前記共有データI/O処理待ちキューに保存し、
さらに、前記キュー操作部は、前記サブジョブ制御部が、前記共有データI/O処理待ちキュー情報から前記処理待ちのサブジョブを抽出すると、当該抽出された処理待ちのサブジョブの前記実行状態に関する情報を前記共有データI/O処理待ちキューから取得し、前記中断したときのサブジョブの実行状態を復元し、
前記サブジョブ実行部が、前記一時中断した実行状態の時点から当該処理待ちのサブジョブの処理を実行すること
を特徴とする請求項1に記載のジョブ割当装置。 The storage unit further includes a shared data I / O processing waiting queue for storing information related to the suspended execution state of the sub job when the execution of the sub job is suspended.
The queue operation unit, when the sub job execution unit fails to process the shared data, collects information related to the execution state of the sub job and stores it in the shared data I / O processing waiting queue.
Further, when the sub job control unit extracts the sub job waiting for processing from the shared data I / O processing wait queue information, the queue operation unit displays information regarding the execution state of the extracted sub job waiting for processing. Retrieve from the shared data I / O processing queue, restore the execution status of the sub job when it was interrupted,
The job assignment apparatus according to claim 1, wherein the sub job execution unit executes processing of the sub job waiting for processing from the time point of the temporarily suspended execution state.
前記ジョブ割当装置は、
前記サブジョブが記憶されるサブジョブキュー、前記サブジョブの処理状態の進捗状況が記憶されるサブジョブ進捗管理情報、および前記サブジョブのうち共有データ処理待ちのサブジョブが記憶される共有データI/O処理待ちキュー情報を格納する記憶部、を備え、
前記サブジョブ進捗管理情報を参照して、未処理のサブジョブを検索するステップと、
前記検索された未処理のサブジョブを前記サブジョブキューから取得し、前記DBサーバの前記分割データおよび前記共有データにアクセスすることによりサブジョブを実行するステップと、
前記共有データの処理に失敗した場合に、前記サブジョブの実行を一時中断して、前記一時中断した処理待ちのサブジョブの進捗状況を、前記共有データI/O処理待ちキュー情報に登録するステップと、
前記サブジョブの実行状態を一時中断した後に、前記サブジョブキューから新たな前記未処理のサブジョブを取得して前記共有データの処理を行うステップと、
当該処理が成功した場合に、前記処理待ちのサブジョブのうち、当該処理が成功した共有データと同一の前記共有データにアクセスを要求するサブジョブを前記共有データI/O処理待ちキュー情報から抽出するステップと、
前記抽出したサブジョブの前記共有データの処理を実行するステップと、
を実行することを特徴とするジョブ割当方法。 A job distribution device that divides a job into sub-jobs of a predetermined processing unit and distributes the jobs to a plurality of job allocation devices, and processes the distributed sub-jobs by accessing divided data and shared data stored in a DB server A plurality of job allocation devices and the DB server that manages access to the divided data and the shared data for each job allocation device are used for the job allocation device provided in a job allocation system connected via a communication network. A job assignment method, comprising:
The job allocation device includes:
Sub job queue in which the sub job is stored, sub job progress management information in which the progress status of the processing state of the sub job is stored, and shared data I / O processing wait queue information in which a sub job of the sub job that is waiting for shared data processing is stored A storage unit for storing
Searching for an unprocessed sub-job with reference to the sub-job progress management information;
Obtaining the retrieved unprocessed sub job from the sub job queue and executing the sub job by accessing the divided data and the shared data of the DB server;
When the processing of the shared data fails, temporarily suspending the execution of the sub job, and registering the progress status of the suspended sub job waiting for processing in the shared data I / O processing waiting queue information;
After temporarily suspending the execution state of the sub job, obtaining a new unprocessed sub job from the sub job queue and processing the shared data;
A step of extracting, from the shared data I / O processing waiting queue information, a sub job that requests access to the same shared data as the shared data for which the processing has succeeded among the sub jobs waiting for processing when the processing is successful When,
Executing the processing of the shared data of the extracted sub-job;
A job assignment method characterized by executing
前記共有データの処理に失敗したときに、前記サブジョブの実行状態に関する情報を収集して前記共有データI/O処理待ちキューに保存するステップと、
前記共有データI/O処理待ちキュー情報から前記処理待ちのサブジョブを抽出するとき、当該抽出された処理待ちのサブジョブの前記実行状態に関する情報を前記共有データI/O処理待ちキューから取得し、前記中断したときのサブジョブの実行状態を復元するステップと、
前記一時中断した実行状態の時点から当該処理待ちのサブジョブの処理を実行するステップと、
をさらに実行することを特徴とする請求項4に記載のジョブ割当方法。 The storage unit further includes a shared data I / O processing waiting queue for storing information related to the suspended execution state of the sub job when the execution of the sub job is suspended.
Collecting information related to the execution state of the sub-job when the shared data processing fails, and storing the information in the shared data I / O processing waiting queue;
When the sub job waiting for processing is extracted from the shared data I / O processing waiting queue information, information on the execution state of the extracted processing waiting sub job is acquired from the shared data I / O processing waiting queue, and A step of restoring the execution state of the sub job at the time of interruption;
Executing the processing of the sub-job waiting for the processing from the time of the suspended execution state;
The job assignment method according to claim 4, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009226106A JP2011076304A (en) | 2009-09-30 | 2009-09-30 | Device, method and program for allocating job |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009226106A JP2011076304A (en) | 2009-09-30 | 2009-09-30 | Device, method and program for allocating job |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011076304A true JP2011076304A (en) | 2011-04-14 |
Family
ID=44020229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009226106A Pending JP2011076304A (en) | 2009-09-30 | 2009-09-30 | Device, method and program for allocating job |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011076304A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014044136A1 (en) * | 2012-09-19 | 2014-03-27 | 腾讯科技(深圳)有限公司 | Distributed data-based concurrent processing method and system, and computer storage medium |
CN108062254A (en) * | 2017-12-12 | 2018-05-22 | 腾讯科技(深圳)有限公司 | Job processing method, device, storage medium and equipment |
CN112184096A (en) * | 2019-07-05 | 2021-01-05 | 顺丰科技有限公司 | Sorting grid port distribution method, system, terminal and storage medium |
CN112199201A (en) * | 2020-12-09 | 2021-01-08 | 深圳市房多多网络科技有限公司 | Delayed task processing method, device and equipment |
-
2009
- 2009-09-30 JP JP2009226106A patent/JP2011076304A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014044136A1 (en) * | 2012-09-19 | 2014-03-27 | 腾讯科技(深圳)有限公司 | Distributed data-based concurrent processing method and system, and computer storage medium |
CN108062254A (en) * | 2017-12-12 | 2018-05-22 | 腾讯科技(深圳)有限公司 | Job processing method, device, storage medium and equipment |
CN112184096A (en) * | 2019-07-05 | 2021-01-05 | 顺丰科技有限公司 | Sorting grid port distribution method, system, terminal and storage medium |
CN112199201A (en) * | 2020-12-09 | 2021-01-08 | 深圳市房多多网络科技有限公司 | Delayed task processing method, device and equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Riffle: Optimized shuffle service for large-scale data analytics | |
US11886284B2 (en) | System and method for data redistribution in a database | |
JP4375435B2 (en) | Hierarchical storage system for predictive data migration | |
KR101013073B1 (en) | Apparatus for Task Distribution and Parallel Processing System and Method there of | |
CN102981929B (en) | The management method of disk mirroring and system | |
JP5881025B2 (en) | Parallel data processing system, computer, and parallel data processing method | |
CN106227469A (en) | Data-erasure method and system for distributed storage cluster | |
JP2011076304A (en) | Device, method and program for allocating job | |
US20160182620A1 (en) | Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system | |
JP6891399B2 (en) | Data processing programs, data processing methods and data processing equipment | |
KR101640231B1 (en) | Cloud Driving Method for supporting auto-scaled Hadoop Distributed Parallel Processing System | |
CN107528871A (en) | Data analysis in storage system | |
Kosar | A new paradigm in data intensive computing: Stork and the data-aware schedulers | |
Fukutomi et al. | GPUhd: Augmenting YARN with GPU resource management | |
JP5672521B2 (en) | Computer system and checkpoint restart method thereof | |
US8799619B2 (en) | Method and system for providing distributed programming environment using distributed spaces, and computer readable recording medium | |
Sweeney et al. | Early experience using amazon batch for scientific workflows | |
Katrawi et al. | Straggler handling approaches in mapreduce framework: a comparative study. | |
CN113641498A (en) | Data checking method, system, equipment and storage medium | |
JP5031538B2 (en) | Data distribution method, data distribution program, and parallel database system | |
Handrik et al. | Parallel and distributed implementation of optimization algorithms in FE analyses | |
Zhang et al. | Ri e: optimized shu e service for large-scale data analytics | |
JP6097910B2 (en) | Parallel data processing system, computer, and parallel data processing method | |
JP5958111B2 (en) | Job management program, job management method, and job management apparatus | |
US20240086386A1 (en) | Multihost database host removal shortcut |