JP5086934B2 - Data processing apparatus and program - Google Patents
Data processing apparatus and program Download PDFInfo
- Publication number
- JP5086934B2 JP5086934B2 JP2008204660A JP2008204660A JP5086934B2 JP 5086934 B2 JP5086934 B2 JP 5086934B2 JP 2008204660 A JP2008204660 A JP 2008204660A JP 2008204660 A JP2008204660 A JP 2008204660A JP 5086934 B2 JP5086934 B2 JP 5086934B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- update
- storage
- target data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明はデータ処理装置及びプログラムに係り、特に、順次入力される更新用データに基づいて、記憶手段の格納領域に格納されている更新対象データを更新するデータ処理装置、及び、コンピュータを前記データ処理装置として機能させるためのデータ処理プログラムに関する。 The present invention relates to a data processing apparatus and a program, and in particular, a data processing apparatus for updating update target data stored in a storage area of a storage unit based on update data that is sequentially input, and a computer to the data The present invention relates to a data processing program for functioning as a processing device.
金融機関のコンピュータ・システムのうち、各種金融取引の取引明細を記憶するデータベース(取引明細系DB)を更新・管理する取引明細管理システムでは、実行が指示された個々の金融取引を直ちに確定させるため、個々の金融取引を表す電文を受信する毎に、例として図7に示すように、受信した電文の内容を取引明細系DBへ即時に反映する処理を行っている。また、取引明細系DBへの即時反映よりは優先度が低いものの、金融機関全体としての資金繰りや決済の状況を把握したいというニーズがあり、このニーズを満たすため、上記の取引明細管理システムでは、資金繰りや決済の状況を表す情報を登録するための複数種の状況管理テーブル(図7の例では「ステータス別件数金額」、「資金繰推移状況」、「資金繰予定実績」及び「モニタリング情報」の各状況管理テーブル)を受信した電文の内容に応じて適宜更新すると共に、オペレータからの指示に従って上記各状況管理テーブルの内容をディスプレイに表示させる処理も行っている。 In a computer system of a financial institution, in a transaction details management system that updates and manages a database (transaction details DB) that stores transaction details of various financial transactions, in order to immediately determine individual financial transactions that are instructed to be executed Every time a message representing an individual financial transaction is received, as shown in FIG. 7 as an example, the contents of the received message are immediately reflected in the transaction details DB. In addition, although the priority is lower than the immediate reflection to the transaction details DB, there is a need to grasp the cash flow and settlement status of the financial institution as a whole, and in order to satisfy this need, in the above transaction details management system, Multiple types of status management tables for registering information representing the status of cash flow and settlement (in the example of FIG. 7, “number of cases by status”, “status of cash flow”, “planned cash flow” and “monitoring information” Each situation management table) is appropriately updated according to the contents of the received message, and the contents of each situation management table are displayed on the display in accordance with instructions from the operator.
なお、状況管理テーブルの更新は、詳しくは図7にも示すように、電文を受信する毎に、受信した電文の内容に基づき何れかの状況管理テーブルを更新するための更新用データを生成し、生成した更新用データをキュー(待ち行列)の末尾に投入すると共に、キューの先頭から更新用データを取り出し、取り出した更新用データに対応する状況管理テーブルを、取り出した更新用データに従って更新することによって成される。また、実際の資金繰りや決済の状況の変化がディスプレイの表示に反映される迄の遅延時間が大きくなることは望ましくないので、取引明細管理システムでは、キューの先頭から更新用データを取り出して対応する状況管理テーブルを更新する処理を、複数のプロセス(テーブル更新プロセス)によって並列に行っている。 As shown in FIG. 7 in detail, the status management table is updated by generating update data for updating any status management table based on the contents of the received message every time a message is received. The generated update data is put at the end of the queue (queue), the update data is taken out from the head of the queue, and the status management table corresponding to the taken out update data is updated according to the fetched update data. Made by. In addition, since it is not desirable that the delay time until the change in the actual cash flow or settlement status is reflected on the display is increased, the transaction detail management system takes out the update data from the head of the queue and deals with it. The process of updating the status management table is performed in parallel by a plurality of processes (table update process).
上記に関連して特許文献1には、トランザクションからのレコード更新要求に基づくデータファイルの更新に際し、要求されたデータファイルのレコードへの同時アクセスを排他制御し、要求されたデータファイルのレコードの更新を第1のバッファ上で実行すると共に、第1のバッファ上でのレコード更新の履歴をレコード単位で生成しておき、当該トランザクションの確定時には、生成しておいた当該トランザクションに対応するレコード単位の更新履歴をジャーナルファイルに記録し、ジャーナルファイルに記録した更新履歴に基づき第2のバッファを通じてブロック単位でデータファイルを更新する技術が開示されており、トランザクション間の排他制御をレコード単位で行うことにより、トランザクションの並列実効性の向上を実現している。 In relation to the above, Patent Document 1 discloses that when a data file is updated based on a record update request from a transaction, simultaneous access to the record of the requested data file is exclusively controlled, and the record of the requested data file is updated. Is executed on the first buffer, and the record update history on the first buffer is generated for each record. When the transaction is confirmed, the record unit corresponding to the generated transaction is recorded. A technique for recording an update history in a journal file and updating a data file in units of blocks through a second buffer based on the update history recorded in the journal file has been disclosed. By performing exclusive control between transactions in units of records Improve the parallel effectiveness of transactions It is.
また、特許文献2には、処理データを一旦全てメモリ上に配置し、メモリ上でデータ更新処理を行うと共に、処理が全て完了、或いは或る程度まとまった単位の更新が完了した時点でディスクに保存することで、高速なトランザクション処理を実現する技術が開示されている。
先に説明した取引明細管理システムのように、並列に動作する複数のプロセス(インスタンス、スレッド、或いはミドルともいう)が同一のテーブルやDBを更新する処理を非同期で各々行う構成では、異なるプロセスによる同一のテーブルやDBへのアクセスが競合し、データの矛盾等が生ずる可能性がある。このデータの矛盾に関しては、例えば特許文献1に記載の技術のように、或るプロセスがテーブル等を更新している間、他のプロセスによる同一テーブルの更新を禁止するロックをかける等の排他制御を行うことで回避できる。しかし、排他制御を行うとオーバヘッドが増大すると共に、アクセスの競合の発生時に一方のアクセスが完了する迄他方のアクセスが待たされることで、処理効率が低下するという問題がある。 In a configuration in which multiple processes (also referred to as instances, threads, or middle) that operate in parallel perform processing for updating the same table or DB asynchronously as in the transaction details management system described above, different processes are used. Access to the same table or DB may compete and data inconsistency may occur. Regarding this data inconsistency, as in the technique described in Patent Document 1, for example, while a certain process is updating a table or the like, exclusive control such as applying a lock that prohibits updating of the same table by another process is performed. It can be avoided by doing. However, when exclusive control is performed, there is a problem that overhead is increased and processing efficiency is lowered by waiting for the other access until one access is completed when access conflict occurs.
一例として、図7の構成では、取引明細管理システムの受信電文数が数万件/分に達した場合、キューに数万件の更新用データが滞留し、更新用データをキューへ投入してから前記更新用データに基づいて状況管理テーブルが更新される迄に、数分程度もの時間が掛っていた。 As an example, in the configuration of FIG. 7, when the number of received messages in the transaction details management system reaches tens of thousands / minute, tens of thousands of update data stays in the queue, and the update data enters the queue. It takes about several minutes before the status management table is updated based on the update data.
これに対し、特許文献1に記載の技術は、排他制御を行う単位を小さくすることでアクセスの競合の発生頻度を低下させる技術であり、排他制御を行うことによるオーバヘッドは削減できず、アクセスの競合の発生頻度を0にすることもできないので、処理効率の大幅な向上は望めない。また、特許文献2に記載の技術は、或る程度まとまった単位の更新が完了した時点でディスクに保存するので、更新対象のテーブルやDBが実際に更新される迄に時間が掛ることになり、前述した取引明細管理システムのように、更新対象のテーブルやDBの早期更新が要求される場合には適していない。
On the other hand, the technique described in Patent Document 1 is a technique for reducing the frequency of occurrence of access competition by reducing the unit for performing exclusive control, and the overhead due to performing exclusive control cannot be reduced. Since the frequency of occurrence of competition cannot be reduced to 0, a significant improvement in processing efficiency cannot be expected. In addition, since the technology described in
本発明は上記事実を考慮して成されたもので、更新対象データの更新を並列に行う際のデータの矛盾等の発生防止と処理効率の向上を両立できるデータ処理装置及びデータ処理プログラムを得ることが目的である。 The present invention has been made in consideration of the above facts, and obtains a data processing apparatus and a data processing program capable of achieving both prevention of data inconsistency and improvement in processing efficiency when updating update target data in parallel Is the purpose.
上記目的を達成するために請求項1記載の発明に係るデータ処理装置は、更新対象データの更新に用いられる更新用データが順に入力され、入力された更新用データを各々保持する保持手段と、m個(m≧2)設けられた格納領域に前記更新対象データを各々格納する記憶手段と、互いに並列に動作し、前記保持手段から前記更新用データを取り出し、前記記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている前記更新対象データを、前記取り出した更新用データに基づいて更新する処理を繰り返すn個(n≧2かつn≦m)の処理手段と、変数x及び前記処理手段の総数nを記憶する変数記憶手段と、を含み、前記処理手段は、前記保持手段から更新用データを取り出す度に、前記変数記憶手段から変数xの値及び総数nの値を読み出し、前記変数記憶手段に記憶されている変数xの値を更新すると共に、読み出した変数xの値を前記処理手段の総数nで除した剰余の値に基づいて、前記記憶手段のm個の格納領域のうち前記更新対象データの更新を行う格納領域を決定する。 In order to achieve the above object, the data processing apparatus according to the first aspect of the present invention includes update means used for updating the update target data in order, and holding means for holding the input update data, Storage means for storing the data to be updated in m (m ≧ 2) storage areas, respectively, operate in parallel with each other, take out the update data from the holding means, and store m data in the storage means N (n ≧ 2 and n ≦ m) processing means for repeating the process of updating the update target data stored in different storage areas of the areas based on the extracted update data, and a variable viewed contains a variable storage means for storing the total number n of x and the processing unit, wherein the processing means, each time retrieving the update data from said holding means, the values and the total number n of the variable x from the variable storage unit Read the value, update the value of the variable x stored in the variable storage means, and based on the remainder value obtained by dividing the value of the read variable x by the total number n of the processing means, m of the storage means A storage area for updating the update target data is determined among the storage areas .
請求項1記載の発明では、更新対象データの更新に用いられる更新用データが順に入力され、入力された更新用データが保持手段に各々保持される。また、記憶手段には更新対象データを格納する格納領域がm個(m≧2)設けられており、更新対象データはm個の格納領域に各々格納されている。そして請求項1記載の発明は、互いに並列に動作するn個(n≧2かつn≦m)の処理手段を備えており、個々の処理手段は、保持手段から更新用データを取り出し、記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている更新対象データを、取り出した更新用データに基づいて更新する処理を繰り返す。 According to the first aspect of the present invention, update data used for updating the update target data is sequentially input, and the input update data is respectively held in the holding means. The storage means has m storage areas for storing update target data (m ≧ 2), and the update target data is stored in m storage areas. The invention described in claim 1 is provided with n (n ≧ 2 and n ≦ m) processing means operating in parallel with each other, and each processing means takes out update data from the holding means, and stores the storage means. The process of updating the update target data stored in different storage areas among the m storage areas is repeated based on the extracted update data.
このように、請求項1記載の発明では、互いに並列に動作するn個の処理手段が、互いに異なる格納領域に格納されている互いに異なる更新対象データを更新するので、個々の格納領域に格納されている更新対象データが、各々単一の処理部によって更新されることになり、或る更新対象データが複数の処理手段によってほぼ同時に更新されることで、データの矛盾等が生ずることを防止できると共に、複数の処理手段が同一の更新対象データをほぼ同時に更新しようとしてアクセスの競合が発生することも防止できる。 Thus, according to the first aspect of the present invention, the n processing means operating in parallel with each other update different update target data stored in different storage areas, so that they are stored in the individual storage areas. Each update target data is updated by a single processing unit, and a certain update target data is updated almost simultaneously by a plurality of processing means, so that it is possible to prevent data inconsistencies and the like from occurring. At the same time, it is possible to prevent access conflicts from occurring when a plurality of processing means attempt to update the same update target data almost simultaneously.
また、更新対象データの出力は、請求項7にも記載したように、記憶手段のm個の格納領域に格納されている更新対象データを各々読み出し、読み出したm個の更新対象データを単一のデータに統合して出力することで行うことができるが、この場合は更新対象データを読み出すのみで更新は行われないので、或る更新対象データに対し、処理手段による更新と上記の統合のための読み出しがほぼ同時に行われたとしても、更新したデータの矛盾は生じない。従って、請求項1記載の発明によれば、更新対象データの更新を並列に行う際のデータの矛盾等の発生防止と処理効率の向上を両立することができる。 In addition, as described in claim 7 , the update target data is output by reading each of the update target data stored in the m storage areas of the storage unit, and outputting the read m update target data as a single unit. However, in this case, only the update target data is read and no update is performed. Therefore, for some update target data, the update by the processing means and the above integration are performed. Even if the reading is performed almost simultaneously, there will be no contradiction in the updated data. Therefore, according to the first aspect of the present invention, it is possible to achieve both the prevention of data inconsistency and the improvement of the processing efficiency when the update target data is updated in parallel.
なお、請求項1記載の発明において、個々の処理手段が、互いに異なる格納領域に格納されている更新対象データを更新するように構成することは、例えば個々の処理手段に対し、更新対象データの更新を行う格納領域を識別するための識別情報として、互いに異なる格納領域を指し示す識別情報を設定しておき、更新対象データの更新時には設定された識別情報を参照することで更新対象データの更新を行う格納領域を識別するように個々の処理手段を構成することで実現できるが、この方式は、例えば単位時間当りに入力される更新用データの数が大幅に変化した等の理由で、本発明に係るデータ処理装置の稼働中に処理手段の数を増減させる可能性がある場合には適当ではない。 In the first aspect of the present invention, the configuration in which the individual processing means updates the update target data stored in different storage areas means, for example, that the update target data is updated with respect to the individual processing means. As identification information for identifying the storage area to be updated, identification information that points to different storage areas is set, and when updating the update target data, the update target data is updated by referring to the set identification information. This method can be realized by configuring individual processing means so as to identify the storage area to be performed. However, this method can be realized, for example, because the number of update data input per unit time has changed significantly. This is not appropriate when there is a possibility of increasing or decreasing the number of processing means during operation of the data processing apparatus.
これを考慮し、請求項1記載の発明は、変数x及び処理手段の総数nを記憶する変数記憶手段を更に備え、処理手段を、保持手段から更新用データを取り出す度に、変数記憶手段から変数xの値及び総数nの値を読み出し、変数記憶手段に記憶されている変数xの値を更新する(例えば1だけインクリメントするか、1だけデクリメントする)と共に、読み出した変数xの値を処理手段の総数nで除した剰余の値に基づいて、記憶手段のm個の格納領域のうち更新対象データの更新を行う格納領域を決定するように構成している。請求項1記載の発明では、個々の処理手段において、保持手段から更新用データを取り出す度に処理手段の総数nの値が確認され、確認された総数nの値を用いて更新対象データの更新を行う格納領域を決定するので、データ処理装置の稼働中に処理手段の数を増減する場合に、動作中の処理手段の処理を一旦停止させる必要が無くなる。 This consideration, invention of claim 1, further comprising a variable storage means for storing the total number n of the variable x and processing means, the processing means, each time retrieving the update data from the holding means, the variable storage unit reads the value of the values and the total number n of the variable x, and updates the value of the variable x stored in the variable storage unit (e.g., either incremented by 1, you decremented by 1) together with the value of the read variable x based on the value of the remainder obtained by dividing by the total number n of processing means is configured to determine a storage area for updating the update target data among the m storage area of the storage means. According to the first aspect of the present invention, each time the processing means fetches the update data from the holding means, the value of the total number n of the processing means is confirmed, and the update target data is updated using the confirmed total number n. Therefore, when the number of processing means is increased or decreased during operation of the data processing apparatus, it is not necessary to temporarily stop the processing of the processing means in operation.
なお、請求項1記載の発明では、個々の処理手段が変数記憶手段に記憶されている変数xの値の読み出し及び更新を各々行うので、変数xの値の読み出し及び更新自体がごく短時間で完了する簡単な処理であるために極めて稀なケースではあるものの、複数の処理手段によって変数記憶手段に記憶されている変数xの値が同時に読み出されることで、複数の処理手段によって読み出される変数xの値が同一となり、複数の処理手段によって同一の更新対象データがほぼ同時に更新され、更新対象データに矛盾等が生ずる恐れがある。この問題は、変数xのアクセスに対して排他制御を行うか、個々の処理手段による個々の格納領域のアクセス(更新対象データの更新)に対して排他制御を行うことで解決することができる。この場合、排他制御を行うことでオーバヘッドは増大するものの、先の説明からも明らかなようにアクセスの競合が発生する頻度は非常に低いので、排他制御を行うことによる処理効率の低下を必要最小限に抑制することができる。 According to the first aspect of the present invention, each processing means reads and updates the value of the variable x stored in the variable storage means, so that the reading and updating of the value of the variable x can be performed in a very short time. Although it is an extremely rare case because it is a simple process to complete, the value of the variable x stored in the variable storage means is simultaneously read out by a plurality of processing means, so that the variable x read out by a plurality of processing means The same update target data is updated almost simultaneously by a plurality of processing means, and there is a risk of inconsistency in the update target data. This problem can be solved by performing exclusive control for access to the variable x or performing exclusive control for access to individual storage areas (update of update target data) by individual processing means. In this case, although the overhead is increased by performing exclusive control, as is clear from the above description, the frequency of access contention is very low. It can be suppressed to the limit.
また、請求項1記載の発明において、本発明に係るデータ処理装置の稼働中に処理手段の数を増減させることは人手で行ってもよいが、例えば請求項2に記載したように、処理手段の数を増加又は減少させる必要があるか否かを判断し、判断結果に応じて処理手段の数を増加又は減少させると共に、変数記憶手段に記憶されている総数nの値を更新する制御手段を設けてもよい。 Further, in the first aspect of the present invention, the number of processing means may be increased or decreased manually during operation of the data processing apparatus according to the present invention. For example, as described in the second aspect , the processing means Control means for determining whether or not it is necessary to increase or decrease the number, and increasing or decreasing the number of processing means according to the determination result and updating the value of the total number n stored in the variable storage means May be provided.
また、請求項2記載の発明において、制御手段による、処理手段の数を増加又は減少させる必要があるか否かの判断は、例えば請求項3に記載したように、保持手段に保持されている更新用データの数に基づいて行うことができる。これにより、例えば単位時間当りに入力される更新用データの数が大幅に変化した等の場合に、当該変化に応じて処理手段の数が自動的に増加又は減少されることになり、動作している処理手段の数を、単位時間当りに入力される更新用データの数やその変化等に応じて最適化することができる。
Further, in the invention described in
また、請求項2記載の発明において、コンピュータを処理手段として機能させるためのプログラムを実行する所定のプロセスが、コンピュータによって実行されることで個々の処理手段が実現される場合、制御手段は、例えば請求項4に記載したように、所定のプロセスを追加生成させることで処理手段の数を増加させ、稼働中の所定のプロセスの稼働を停止させることで処理手段の数を減少させるように構成することができる。
Further, in the invention according to
また、請求項1〜請求項4の何れかに記載の発明において、処理手段は、例えば請求項5に記載したように、記憶手段の複数の格納領域のうち自身が更新対象データの更新を行う格納領域をロックし、ロックした格納領域に格納されている更新対象データを更新した後に、格納領域のロックを解除する処理を行うように構成してもよい。特に請求項2記載の発明において、更新対象データに矛盾等が生ずる恐れを排除するためには、変数xのアクセスに対して排他制御を行うか、個々の処理手段による個々の格納領域のアクセス(更新対象データの更新)に対して排他制御を行う必要があるが、本願発明者は、格納領域のアクセスに対して排他制御を行った方が負荷の増大、処理効率の低下を抑制できることを確認しており、請求項5記載の発明は、特に請求項1記載の発明を実施する場合に有効である。
Further, in the invention according to any one of claims 1 to 4 , the processing means updates the update target data itself among a plurality of storage areas of the storage means, for example, as described in claim 5. After the storage area is locked and the update target data stored in the locked storage area is updated, the storage area may be unlocked. In particular, in the invention described in
また、請求項1〜請求項5の何れかに記載の発明において、記憶手段の数は1個に限られるものではなく、例えば請求項6に記載したように、記憶手段がp個設けられ、個々の記憶手段の格納領域には、p種類の更新対象データのうちの互いに異なる更新対象データが格納されており、保持手段に入力される更新用データには、p種類の更新対象データのうちの互いに異なる更新対象データに用いられるp種類の更新用が混在していてもよい。この場合、処理手段は、保持手段から更新用データを取り出し、p個の記憶手段のうち取り出した更新用データの種類に対応する記憶手段を選択し、選択した記憶手段の何れかの格納領域に格納されている更新対象データを取り出した更新用データに基づいて更新するように構成することができる。 Further, in the invention according to any one of claims 1 to 5 , the number of storage means is not limited to one. For example, as described in claim 6 , p storage means are provided, The storage areas of the individual storage units store different types of update target data among the p types of update target data, and the update data input to the holding unit includes the p types of update target data. P types of update data used for different update target data may be mixed. In this case, the processing means takes out the update data from the holding means, selects a storage means corresponding to the type of the update data taken out from the p storage means, and stores it in any storage area of the selected storage means. The stored update target data can be updated based on the extracted update data.
また、請求項1〜請求項6の何れかに記載の発明において、例えば請求項7に記載したように、記憶手段のm個の格納領域に格納されている更新対象データを各々読み出し、読み出したm個の更新対象データを単一のデータに統合して出力する統合手段を更に設けることが好ましい。これにより、複数の処理手段が、記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている更新対象データを、保持手段から取り出した更新用データに基づいて更新する処理を繰り返す構成(本発明の構成)において、単一の更新対象データに対してのみ更新を行い、単一の更新対象データを適宜出力する構成と同等の出力を得ることができる。 Further, in the invention according to any one of claims 1 to 6 , for example, as described in claim 7 , each update target data stored in m storage areas of the storage means is read and read. It is preferable to further provide integration means for integrating the m update target data into a single data and outputting it. As a result, the plurality of processing means repeats the process of updating the update target data stored in different storage areas among the m storage areas of the storage means based on the update data extracted from the holding means. In the configuration (configuration of the present invention), it is possible to obtain an output equivalent to a configuration in which only the single update target data is updated and the single update target data is appropriately output.
また、請求項2記載の発明において、請求項8に記載したように、変数記憶手段から総数nの値を読み出し、記憶手段のm個の格納領域のうちの1番目からn番目のn個の格納領域に格納されている更新対象データを各々読み出し、読み出したn個の更新対象データを単一のデータに統合して出力する統合手段を更に備え、制御手段は、処理手段の数を減少させる場合に、記憶手段のm個の格納領域のうちのn番目の格納領域に格納されている更新対象データを他の格納領域に格納されている更新対象データに統合した後に総数nの値を減少させるように構成することが好ましい。Further, in the invention described in
これにより、記憶手段のm個の格納領域のうち更新対象データが格納されている格納領域の数が、処理手段の総数nに常に一致することになる。従って、統合手段が単一のデータに統合して出力する更新対象データの数がn個で済み、常にm個の格納領域に格納されている更新対象データを単一のデータに統合して出力する場合と比較して、統合手段による処理の効率化を実現できる。As a result, the number of storage areas in which the update target data is stored among the m storage areas of the storage means always matches the total number n of the processing means. Therefore, the number of pieces of update target data to be integrated and output by the integration unit into a single data is n, and the update target data stored in m storage areas is always integrated into a single data and output. Compared with the case where it does, the efficiency improvement of the process by an integrated means is realizable.
請求項9記載の発明に係るデータ処理プログラムは、更新対象データの更新に用いられる更新用データが順に入力され、入力された更新用データを各々保持する保持手段を備えると共に、m個(m≧2)設けられた格納領域に前記更新対象データを各々格納する記憶手段を備えるか、又は、前記記憶手段と接続されたコンピュータを、互いに並列に動作し、前記保持手段から前記更新用データを取り出し、前記記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている前記更新対象データを、前記取り出した更新用データに基づいて更新する処理を繰り返すn個(n≧2かつn≦m)の処理手段、及び、変数x及び前記処理手段の総数nを記憶する変数記憶手段として各々機能させるためのデータ処理プログラムであって、前記処理手段は、前記保持手段から更新用データを取り出す度に、前記変数記憶手段から変数xの値及び総数nの値を読み出し、前記変数記憶手段に記憶されている変数xの値を更新すると共に、読み出した変数xの値を前記処理手段の総数nで除した剰余の値に基づいて、前記記憶手段のm個の格納領域のうち前記更新対象データの更新を行う格納領域を決定する。
請求項9記載の発明に係るデータ処理プログラムは、上記の保持手段を備えると共に、上記の記憶手段を備えるか、又は、上記の記憶手段と接続されたコンピュータを、上記のn個の処理手段及び変数記憶手段として機能させるためのプログラムであるので、コンピュータが請求項9記載の発明に係るデータ処理プログラムを実行することで、コンピュータが請求項1に記載のデータ処理装置として機能することになり、請求項1記載の発明と同様に、更新対象データの更新を並列に行う際のデータの矛盾等の発生防止と処理効率の向上を両立することができる。
The data processing program according to the ninth aspect of the present invention includes update data used for updating the update target data in order, and includes holding means for holding the input update data, and m (m ≧ m ≧) 2) A storage unit for storing each of the update target data in a storage area provided, or a computer connected to the storage unit operates in parallel with each other, and the update data is extracted from the holding unit , Repeating the process of updating the update target data stored in different storage areas among the m storage areas of the storage means based on the retrieved update data (n ≧ 2 and n ≦ m), and a data processing program for functioning as a variable storage means for storing the variable x and the total number n of the processing means. The processing unit reads the value of the variable x and the value of the total number n from the variable storage unit each time the update data is extracted from the holding unit, and updates the value of the variable x stored in the variable storage unit. Based on the remainder value obtained by dividing the value of the read variable x by the total number n of the processing means, a storage area for updating the update target data is determined from the m storage areas of the storage means.
A data processing program according to a ninth aspect of the present invention includes the holding unit and the storage unit or a computer connected to the storage unit, the n processing unit and Since it is a program for functioning as variable storage means , when the computer executes the data processing program according to the invention of claim 9, the computer functions as the data processing device of claim 1, Similarly to the first aspect of the invention, it is possible to achieve both the prevention of data inconsistency and the improvement of the processing efficiency when the update target data is updated in parallel.
請求項10記載の発明に係るデータ処理プログラムは、更新対象データの更新に用いられる更新用データが順に入力され、入力された更新用データを各々保持する保持手段を備えると共に、m個(m≧2)設けられた格納領域に前記更新対象データを各々格納する記憶手段を備えるか、又は、前記記憶手段と接続されたコンピュータを、請求項1〜請求項8の何れか1項記載のデータ処理装置を構成する各手段として機能させる。 According to a tenth aspect of the present invention, there is provided a data processing program according to the present invention, wherein update data used for updating the update target data are sequentially input, and each of the input update data is held, and m (m ≧ m ≧ m) 2) The data processing according to any one of claims 1 to 8, further comprising: a storage unit that stores the update target data in a storage area provided; or a computer connected to the storage unit. It is made to function as each means which comprises an apparatus.
請求項10データ処理プログラムは、上記コンピュータを、請求項1〜請求項8の何れか1項記載のデータ処理装置を構成する各手段として機能させるプログラムであるので、コンピュータが請求項10記載の発明に係るデータ処理プログラムを実行することで、コンピュータが請求項1〜8の何れか1項に記載のデータ処理装置として機能することになり、少なくとも、更新対象データの更新を並列に行う際のデータの矛盾等の発生防止と処理効率の向上を両立することができる。 [10] The data processing program is a program for causing the computer to function as each means constituting the data processing device according to any one of [1] to [8]. By executing the data processing program according to the above, the computer functions as the data processing device according to any one of claims 1 to 8, and at least the data when the update target data is updated in parallel It is possible to achieve both the prevention of contradiction and the improvement of the processing efficiency.
以上説明したように本発明は、互いに並列に動作するn個(n≧2かつn≦m)の処理手段で、順に入力された更新用データを各々保持する保持手段から更新用データを取り出し、記憶手段のm個(m≧2)の格納領域のうちの互いに異なる格納領域に格納されている更新対象データを、取り出した更新用データに基づいて更新する処理を繰り返すようにしたので、更新対象データの更新を並列に行う際のデータの矛盾等の発生防止と処理効率の向上を両立できる、という優れた効果を有する。 As described above, the present invention takes out update data from the holding means that holds the update data sequentially input in n (n ≧ 2 and n ≦ m) processing means operating in parallel with each other, Since the update target data stored in different storage areas among the m storage areas (m ≧ 2) of the storage means is updated based on the extracted update data, the update target The present invention has an excellent effect that it is possible to achieve both the prevention of data inconsistency and the improvement of processing efficiency when updating data in parallel.
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には本実施形態に係るコンピュータ・システム10が示されている。本実施形態に係るコンピュータ・システム10は特定金融機関に設置されており、サーバ・コンピュータ12と、特定金融機関内に構築されたコンピュータ・ネットワーク14を含んで構成されている。コンピュータ・ネットワーク14は、複数台のコンピュータ(例えば特定金融機関の各支店に各々設置されたブランチ・サーバ等)や複数台の端末(例えば営業店端末(特定金融機関の従業員が操作するための端末)やATM(Automatic Teller Machine:現金自動預け払い機)等)が通信回線を介して互いに接続されて構成されている。
Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows a
一方、サーバ・コンピュータ12はCPU12A、メモリ12B、記憶部12C及びネットワーク・インタフェース(I/F)部12Dを備え、CRTやLCD等から成るディスプレイ18、キーボード20、取引明細系DBを記憶するストレージ22が各々接続されている。なお、取引明細系DBには各種金融取引の取引明細の情報が記憶される。図1ではストレージ22を1台のみ示しているが、取引明細系DBは複数台のストレージ22に分けて記憶されていてもよい。サーバ・コンピュータ12のネットワークI/F部12Dは、前述のコンピュータ・ネットワーク14と通信回線を介して接続されており、更に、日本銀行に設置されたコンピュータ・システム(日銀システム)24とも通信回線を介して接続されている。サーバ・コンピュータ12、ディスプレイ18、キーボード20及びストレージ22は、コンピュータ・ネットワーク14や日銀システム24から電文を受信し、受信した電文に従って取引明細系DBを更新・管理する取引明細管理システムとして機能する。
On the other hand, the
また、サーバ・コンピュータ12の記憶部12Cには、オペレーティング・システムのプログラム、電文受信プログラム、テーブル更新プログラム、データ統合出力プログラム、及び、稼働プロセス数管理プログラムが各々インストールされている。このうち、オペレーティングシステムのプログラムを除く各プログラムは、オペレータからの指示をトリガとして、特定金融機関全体としての資金繰りや決済の状況を表す情報をディスプレイ18に表示させる機能を実現するためのプログラムであり、請求項9,10に記載のデータ処理プログラムに対応している。サーバ・コンピュータ12は請求項9に記載のコンピュータに対応しており、CPU12Aによってこれらのプログラムが実行されることで本発明に係るデータ処理装置として機能する。
In addition, an operating system program, a telegram receiving program, a table update program, a data integration output program, and an operation process number management program are installed in the
またサーバ・コンピュータ12の記憶部12Cには、ステータス別件数金額テーブル、資金繰推移状況テーブル、資金繰予定実績テーブル及びモニタリング情報テーブルから成る状況管理テーブル群が記憶されている。サーバ・コンピュータ12(取引明細管理システム)は、特定金融機関全体としての資金繰りや決済の状況を表す情報として、複数種のモニタ項目の情報をディスプレイ18に表示可能とされており、状況管理テーブル群の各テーブルには、個々のモニタ項目に対応する互いに異なる業務データが登録される。
The
より詳しくは、モニタ項目「ステータス別件数金額」に対応するステータス別件数金額テーブルには、「ステータス別件数金額」に対応する業務データとして、決済の状態(例えば「完了」や「処理中」等)毎の金融取引の件数、金額等のデータが登録され、モニタ項目「資金繰推移状況」に対応する資金繰推移状況テーブルには、「資金繰推移状況」に対応する業務データとして、特定金融機関全体としての資金繰の実績の推移及び今後の予定(見込み)を表すデータが登録され、モニタ項目「資金繰予定実績」に対応する資金繰予定実績テーブルには、「資金繰予定実績」に対応する業務データとして、要因毎の資金繰の予定・実績を表すデータが登録され、モニタ項目「モニタリング情報」に対応するモニタリング情報テーブルには、「モニタリング情報」に対応する業務データとして、特定金融機関全体としての資金繰の時間帯毎の実績を表すデータが登録される。なお、状況管理テーブル群の各テーブルに登録されている業務データは本発明に係る更新対象データに対応している。 More specifically, in the number-by-status table of status corresponding to the monitor item “number of cases by status”, as the business data corresponding to “number of cases by status”, the status of settlement (for example, “completed”, “processing in progress”, etc.) ) Data such as the number and amount of financial transactions for each transaction is registered, and in the cash flow status table corresponding to the monitor item “Cash Progress Status”, specific financial data is provided as business data corresponding to “Cash Progress Status” Data indicating the transition of cash flow performance and the future schedule (expectation) for the entire institution is registered, and the cash flow schedule performance table corresponding to the monitor item “Cash flow schedule performance” is set to “Cash flow schedule performance”. As the corresponding business data, data indicating the cash flow schedule and results for each factor is registered, and the monitoring information table corresponding to the monitoring item “monitoring information” As business data corresponding to the monitoring information ", the data representing the cash flow performance of each time zone as a whole specific financial institutions are registered. The business data registered in each table of the status management table group corresponds to the update target data according to the present invention.
次に本実施形態の作用を説明する。サーバ・コンピュータ12では、電源が投入されサーバ・コンピュータ12上でオペレーティング・システムが稼働を開始すると、初期設定のために稼働プロセス数管理プログラムが記憶部12Cから読み出されてCPU12Aによって実行されることで、図5に示す稼働プロセス数管理処理が行われる。
Next, the operation of this embodiment will be described. In the
この稼働プロセス数管理処理では、まずステップ60において、稼働プロセス数管理処理の今回の起動要因が初期設定か否か判定する。この場合は判定が肯定されてステップ62へ移行し、メモリ12Bに予め設けられている変数xの記憶領域に変数xの初期値として1を設定する。次のステップ64では、メモリ12Bに予め設けられているテーブル更新プロセスの稼働数nの記憶領域に、テーブル更新プロセスの稼働数nの初期値を設定する。なお、テーブル更新プロセスの稼働数nの初期値は、例えばサーバ・コンピュータ12の稼働開始直後の時間帯における取引明細管理システムの電文受信数等に応じて定めることができるが、これに代えて、サーバ・コンピュータ12の稼働中における取引明細管理システムの電文受信数の最大値等に応じて定めてもよい。
In this operation process number management process, first, in
次のステップ66では、オペレーティング・システムに対し、記憶部12Cに記憶されているテーブル更新プログラムをCPU12Aによって実行するプロセス(テーブル更新プロセス)を、ステップ64で設定した稼働数nと同数個生成するよう指示する。これにより、n個のテーブル更新プロセスがオペレーティング・システムによって生成され、生成されたテーブル更新プロセスが稼働を開始する。なお、テーブル更新プロセスは、個々のプロセスに対応するテーブル更新プログラムがCPU12Aによって時分割で各々実行されることで互いに並列に動作する。次のステップ68ではタイマをスタートさせ、稼働プロセス数管理処理を終了する。
In the
また、サーバ・コンピュータ12がコンピュータ・ネットワーク14や日銀システム24から電文を受信すると、電文受信プログラムが記憶部12Cから読み出されてCPU12Aによって実行されることで、図2に示す電文受信処理が行われる。この電文受信処理では、まずステップ30において、コンピュータ・ネットワーク14又は日銀システム24から受信した単一の電文の内容に基づき、ストレージ22に記憶されている取引明細系DBを更新する。次のステップ32では、受信した単一の電文の内容に基づき、各モニタ項目に対応する更新用データ(状況管理テーブル群の各テーブルに登録されている個々の業務データを更新するための更新用データ)を各々生成する。そしてステップ34では、ステップ30で生成した各モニタ項目毎の更新用データを、メモリ12B上に形成されたキュー(待ち行列)の末尾に投入し、電文受信処理を終了する。
When the
上記の電文受信処理はサーバ・コンピュータ12が電文を受信する毎に実行される。従って、取引明細系DBを受信した電文の内容に応じて即時に更新される。また、サーバ・コンピュータ12が電文を受信する毎に、例として図6に示すように、受信した単一の電文からモニタ項目「ステータス別件数金額」に対応する更新用データ、モニタ項目「資金繰推移状況」に対応する更新用データ、モニタ項目「資金繰予定実績」に対応する更新用データ、モニタ項目「モニタリング情報」に対応する更新用データが各々生成され、生成された更新用データがキューの末尾に投入されることになる。
The above message reception process is executed each time the
なお、キューに繋がれた更新用データを記憶するメモリ12Bは、メモリ12B上にキューを形成して管理する処理と共に、本発明に係る保持手段に対応している。但し、保持手段はこの構成に限られるものではなく、FIFOメモリや一般的なバッファ等を保持手段として用いることも可能である。
The
また、前述の稼働プロセス数管理処理からの指示によってオペレーティング・システムで生成されたn個のテーブル更新プロセスでは、記憶部12Cに記憶されているテーブル更新プログラムがCPU12Aによって実行されることで、図3に示すテーブル更新処理を行っている。
Further, in the n table update processes generated by the operating system in accordance with the instruction from the above-described operation process number management process, the table update program stored in the
このテーブル更新処理では、まずステップ40において、キューに更新用データが保持されているか否か判定する。判定が否定された場合は一旦処理を終了し、次回のプログラム実行期間にステップ40の判定が再度行われることで、上記判定が肯定される迄ステップ40を繰り返す。前述した電文受信処理によってキューに更新用データが投入されると、ステップ40の判定が肯定されてステップ42へ移行し、キューの先頭に保持されている更新用データをキューから取り出す。ステップ44ではメモリ12B上の変数xの記憶領域から変数xを読み出し、次のステップ46では、上記記憶領域に記憶されている変数xを1だけインクリメントする。またステップ48では、メモリ12B上の稼働数nの記憶領域からテーブル更新プロセスの稼働数nを読み出す。そしてステップ50では、ステップ44で読み出した変数x及びステップ48で読み出したテーブル更新プロセスの稼働数nを次の(1)式に代入して演算することで、更新対象の業務データが格納された格納領域iを決定する。
i←MOD(x/n)+1 …(1)
なお、(1)式におけるMOD( )は、括弧内の演算における剰余を表す演算子である。
In this table update process, first, in
i ← MOD (x / n) +1 (1)
In the equation (1), MOD () is an operator representing a remainder in the operation in parentheses.
図6に示すステータス別件数金額テーブルを図7に示すステータス別件数金額テーブルと比較しても明らかなように、本実施形態では、状況管理テーブル群の各テーブルに、各テーブルに登録する業務データを格納可能な格納領域がm個(m≧2)ずつ設けられており、単一のテーブル内の個々の格納領域には同一種の業務データが各々格納されている。このように、格納領域がm個設けられた単一のテーブルを記憶する記憶部12Cは本発明に係る記憶手段に対応しており、状況管理テーブル群のp個(本実施形態ではp=4)のテーブルを各々記憶する記憶部12Cは請求項6に記載のp個の記憶手段にも対応している。なお、状況管理テーブル群の各テーブルを別々の記憶部に記憶させるようにしてもよい。各テーブル内の個々の格納領域には同一のテーブル内の個々の格納領域を識別するための通番(1〜m)が付与されており、上記のステップ50では(1)式の演算を行うことで、更新を行う業務データが格納された格納領域の通番iを決定している。
As apparent from a comparison of the number-by-status table by status shown in FIG. 6 with the number-by-status table by status shown in FIG. 7, in this embodiment, business data to be registered in each table in each table of the status management table group. M (m ≧ 2) are provided for each storage area, and the same type of business data is stored in each storage area in a single table. In this way, the
なお、単一のテーブル内の格納領域の数mの値は、テーブル更新プロセスの稼働数nの値以上であればよい(m≧n)が、後述するように、本実施形態ではサーバ・コンピュータ12の稼働中にテーブル更新プロセスの稼働数nが増減される可能性がある一方、個々のテーブル内の格納領域の数mを増減させる処理は複雑であるので、テーブル更新プロセスの稼働数nに上限値nmaxを予め設定しておき、個々のテーブル内の格納領域の数mを上限値nmaxに一致させておくことが望ましい。これにより、サーバ・コンピュータ12の稼働中に、テーブル更新プロセスの稼働数nの増減に拘わらず個々のテーブル内の格納領域の数mを変化させる必要が無くなり、処理が簡単になる。
Note that the value m of the number of storage areas in a single table may be equal to or greater than the value n of the number of operating table update processes (m ≧ n). However, as will be described later, in this embodiment, the server computer While the table update process operation number n may be increased or decreased during the operation of 12, the process of increasing or decreasing the number m of storage areas in each table is complicated, so the table update process operation number n is increased. It is desirable that an upper limit value nmax is set in advance and the number m of storage areas in each table is matched with the upper limit value nmax. As a result, it is not necessary to change the number m of storage areas in each table regardless of increase / decrease in the number n of operation of the table update process while the
ところで、個々のテーブル更新プロセスが先の(1)式に従って業務データの更新を行う格納領域を決定した場合、個々のテーブル更新プロセスによる業務データの更新が常に一定の格納領域に対して行われるとは限らないものの、個々のテーブル更新プロセスによって決定される業務データ更新対象の格納領域の通番iは、個々のテーブル更新プロセスによる変数xの読出順に相当する値となり、個々のテーブル更新プロセスは互いに異なる格納領域に格納されている業務データの更新を行うことになる。 By the way, when the individual table update process determines the storage area for updating the business data according to the above equation (1), the update of the business data by the individual table update process is always performed on a certain storage area. Although not limited, the serial number i of the storage area of the business data update target determined by the individual table update process is a value corresponding to the reading order of the variable x by the individual table update process, and the individual table update processes are different from each other. The business data stored in the storage area is updated.
但し、テーブル更新処理のステップ44での変数xの読み出し及びステップ46での変数xの更新(インクリメント)は、何れもごく短時間で完了する簡単な処理であるので、極めて稀なケースではあるものの、或るテーブル更新プロセスがステップ44で変数xを読み出してからステップ46で変数xの更新を行う迄の間に、別のテーブル更新プロセスによってステップ44の変数xを読み出しが行われた場合、それぞれのテーブル更新プロセスが読み出した変数xの値が同一となり、(1)式によって決定した業務データ更新対象の格納領域の通番iの値が同一となることで、通番iの格納領域に格納されている業務データがそれぞれのテーブル更新プロセスによってほぼ同時に更新され(アクセスの競合が発生し)、前記業務データに矛盾等が生ずる恐れがある。
However, the reading of the variable x in step 44 of the table updating process and the updating (incrementing) of the variable x in
この問題は、変数xのアクセス(読み出し及び更新)に対して排他制御を行うか、或いは、個々のテーブル更新プロセスによる業務データの更新に対して個々の格納領域を単位として排他制御を行うことで解決できるが、本実施形態では、業務データの更新に対する排他制御を行っている。すなわち、まずステップ52では、先のステップ42でキューから取り出した更新用データに対応するモニタ項目を判断し、状況管理テーブル群の各テーブルの中から判断したモニタ項目に対応するテーブルを選択した後に、選択したテーブルのうちの通番iの格納領域に対し、他のテーブル更新プロセスによる業務データの更新を禁止する情報を設定することで、他のテーブル更新プロセスによる通番iの格納領域のアクセスをロックする。
This problem is caused by performing exclusive control for access (reading and updating) of the variable x or by performing exclusive control in units of individual storage areas for updating business data by individual table update processes. Although this can be solved, in the present embodiment, exclusive control for updating business data is performed. That is, first, in step 52, the monitor item corresponding to the update data fetched from the queue in the
次のステップ54では、他のテーブル更新プロセスによる業務データの更新を禁止する情報を設定した格納領域に格納されている業務データを、先のステップ42でキューから取り出した更新用データに基づいて更新する。そしてステップ56では、業務データの更新を行った格納領域に対し、先のステップ54で行った設定を解除し、他のテーブル更新プロセスによる業務データの更新を可能とする。テーブル更新処理は以上の処理により一旦終了するが、次回のプログラム実行期間に再度実行されるので、上述したように、キューから更新用データを取り出し、業務データ更新対象の格納領域の通番iを決定し、取り出した更新用データに対応するテーブルの通番iの格納領域に対して業務データの更新を行う処理が、n個のテーブル更新プロセスにより、互いに並列に繰り返し行われることになる。
In the next step 54, the business data stored in the storage area in which information prohibiting the update of business data by another table update process is set is updated based on the update data retrieved from the queue in the
本実施形態に係るテーブル更新処理では、業務データに矛盾等が生ずることを防止するために、業務データの更新に対して排他制御を行っており、これに伴ってオーバヘッドは増大するものの、前述のように、複数のテーブル更新プロセスが読み出した変数xの値が同一となってアクセスの競合が発生することは非常に稀なケースであり、個々のテーブル更新プロセスは、殆どの場合、アクセスの競合によって業務データの更新が待たされることなく、キューから取り出した更新用データに基づく業務データの更新をごく短時間で完了させることができるので、排他制御を行うことによる処理効率の低下を必要最小限に抑制し、状況管理テーブル群の各テーブルに登録されている業務データの更新を高い処理効率で行うことができる。 In the table update processing according to the present embodiment, in order to prevent inconsistency or the like in the business data, exclusive control is performed for the update of the business data. As described above, it is very rare that access conflicts occur because the values of the variables x read by a plurality of table update processes are the same. The update of the business data based on the update data retrieved from the queue can be completed in a very short time without waiting for the business data to be updated. The business data registered in each table of the situation management table group can be updated with high processing efficiency.
また、オペレータによってキーボード20が操作されることで、特定のモニタ項目の情報のディスプレイ18への表示が指示されると、記憶部12Cに記憶されているデータ統合出力プログラムがCPU12Aによって実行されることで、図4に示すデータ統合出力処理が行われる。このデータ統合出力処理では、まずステップ90において、オペレータによってディスプレイ18への情報の表示が指示されたモニタ項目を認識する。次のステップ92ではメモリ12B上の稼働数nの記憶領域からテーブル更新プロセスの稼働数nを読み出す。またステップ94では、状況管理テーブル群の各テーブルのうち、ステップ90で認識したモニタ項目に対応するテーブルの通番1〜n(このときのnの値はステップ92で読み出した値)の格納領域に格納されている業務データを各々取得する。
In addition, when the operator operates the
次のステップ96では、ステップ94で通番1〜nの格納領域から取得したn個の業務データを統合する。図6に示すように、個々の格納領域に格納されている業務データは、複数種の主キー毎にデータが分けられており、ステップ96におけるn個の業務データの統合は、主キーが同一のデータを単位とし、データの種類に応じて、例えばn個のデータの合計値や平均値等を演算することによって行われる。そしてステップ98では、統合後の業務データを、モニタ項目に対応する表示形式(例えばグラフ形式や表形式等)でディスプレイ18に表示し、データ統合処理を終了する。このデータ統合処理はオペレータによって指示される毎に行われ、別のモニタ項目が指定された場合には、指定された別のモニタ形式に対応する業務データがディスプレイ18に表示されることになる。
In the
これにより、オペレータは、各モニタ項目に対応する業務データを順にディスプレイ18へ表示させる操作を行い、ディスプレイ18に順に表示された業務データを各々参照する等により、特定金融機関全体としての資金繰りや決済の現在の状況を把握することができる。先に説明したように、本実施形態では、状況管理テーブル群の各テーブルに登録されている業務データを高い処理効率で更新することができるので、電文受信処理によってキューに投入された更新用データがテーブル更新処理によってキューから取り出される迄の時間(更新用データがキューに滞留している時間)を短縮することができる。従って、或る金融取引の内容が取引明細系DBに反映されてから(前記金融取引が確定してから)前記金融取引の内容がディスプレイ18に表示される業務データに反映される迄の時間が短縮され、特定金融機関全体としての資金繰りや決済の現在の状況を、オペレータがより正確に把握することができる。
Thereby, the operator performs an operation for sequentially displaying the business data corresponding to each monitor item on the
なお、図4に示すデータ統合出力処理では、オペレータによって業務データの表示が指示される毎に、対応するテーブルから業務データを取得して表示しているが、これに限られるものではなく、状況管理テーブル群の各テーブルに登録されている業務データはn個のテーブル更新プロセスによるテーブル更新処理によって適宜更新されているので、特定のモニタ項目に対応する業務データがディスプレイ18に表示されている間、特定のモニタ項目から業務データを取得し、取得した業務データに基づいてディスプレイ18の表示を更新する処理を一定時間毎に繰り返すようにしてもよい。上述したように、データ統合出力処理は状況管理テーブル群の各テーブルから業務データを読み出すのみで、業務データの更新は行わないので、上記のように一定時間毎に状況管理テーブル群の何れかのテーブルからデータを読み出したとしても、アクセスの競合によって処理効率が低下することはない。
In the integrated data output process shown in FIG. 4, every time the operator instructs to display business data, business data is acquired and displayed from the corresponding table. However, the present invention is not limited to this. Since the business data registered in each table of the management table group is appropriately updated by the table update process by the n table update processes, the business data corresponding to the specific monitor item is displayed on the
ところで、キューに保持される更新用データの数は、電文受信処理によって単位時間にキューに投入される更新用データの数と、n個のテーブル更新プロセスによって単位時間にキューから取り出される更新用データの数との大小関係によって変化し、サーバ・コンピュータ12がコンピュータ・ネットワーク14や日銀システム24から単位時間に受信する電文数が大幅に増大すると、キューに保持される更新用データの数が増大し、多数の更新用データがキューに滞留することで、或る金融取引の内容が取引明細系DBに反映されてから前記金融取引の内容がディスプレイ18に表示される業務データに反映される迄の時間が長時間化することになる。
By the way, the number of update data held in the queue includes the number of update data input to the queue per unit time by the message reception process and the update data retrieved from the queue per unit time by the n table update processes. If the number of messages received by the
これに対して本実施形態では、先に説明した稼働プロセス数管理処理(図5)のステップ68でスタートさせたタイマがタイムアウトすると、これをトリガとして稼働プロセス数管理処理が再度実行される。タイマのタイムアウトをトリガとして稼働プロセス数管理処理が実行された場合は、先のステップ60の判定が否定されてステップ70へ移行し、キューに保持されている(滞留している)更新用データの数Sを取得する。次のステップ72では、ステップ70で取得した更新用データの数Sを予め設定された最大値Smax及び最小値Sminと各々比較し、その大小関係に応じて分岐する。
On the other hand, in the present embodiment, when the timer started in
ここで、ステップ70で取得した更新用データの数Sが最大値Smax以下で、かつ最小値Smin以上であった場合には、キューに保持されている更新用データの数Sは適切であり、テーブル更新プロセスの稼働数nの変更は不要と判断できるので、ステップ70からステップ84へ移行し、タイマをスタートさせて稼働プロセス数管理処理を終了する。この場合、タイマが再度タイムアウトする一定時間後に、更新用データの数Sが適切か否かが再度判定されることになる。
Here, if the number S of update data acquired in
一方、ステップ70で取得した更新用データの数Sが最大値Smaxよりも大きい場合には、キューに保持されている更新用データの数Sは過大となっており、ディスプレイ18に表示される業務データの更新の遅延時間が大きくなっていると判断できるので、ステップ72からステップ74へ移行し、オペレーティング・システムに対してテーブル更新プロセスを1個追加生成するよう指示する。これにより、オペレーティング・システムによってテーブル更新プロセスが1個だけ追加生成され、追加生成されたテーブル更新プロセスが稼働を開始する。また、ステップ76ではメモリ12B上の稼働数nの記憶領域に記憶されているテーブル更新プロセスの稼働数nを1だけインクリメントする。そして、ステップ84でタイマをスタートさせて稼働プロセス数管理処理を終了する。
On the other hand, when the number S of update data acquired in
この場合、互いに並列にテーブル更新処理を行うテーブル更新プロセスの数が1つ増加すると共に、状況管理テーブル群の各テーブルに設けられているm個の格納領域のうち、業務データが更新される格納領域の数も1つ増加することになり、キューからの更新用データの取り出し速度が増大することで、キューに滞留している更新用データの数Sの増加が抑制される。また、サーバ・コンピュータ12が受信する電文数の増大に対してテーブル更新プロセスの追加数(1個)が十分でない場合は、タイマが再度タイムアウトする一定時間後にも、更新用データの数Sが最大値Smaxよりも大きい状態が継続していることでテーブル更新プロセスが更に追加生成され、テーブル更新プロセスの数がサーバ・コンピュータ12の受信電文数に応じて最適化されることになる。
In this case, the number of table update processes that perform table update processing in parallel with each other is increased by one, and storage in which business data is updated among m storage areas provided in each table of the status management table group The number of areas is also increased by 1, and the update data take-out speed from the queue is increased, thereby suppressing an increase in the number S of update data staying in the queue. Also, if the additional number of table update processes (one) is not enough for the increase in the number of messages received by the
また、ステップ70で取得した更新用データの数Sが最小値Sminよりも小さい場合には、ディスプレイ18に表示される業務データの更新の遅延時間は十分に小さいので、サーバ・コンピュータ12の処理能力をサーバ・コンピュータ12が実行している別の処理(或いは取引明細系DBの更新)に振り分けることが望ましい。このため、更新用データの数Sが最小値Sminよりも小さい場合はステップ72からステップ78へ移行し、オペレーティング・システムに対し、稼働中の1個のテーブル更新プロセスの稼働を停止させるよう指示する。これにより、オペレーティング・システムによって1個のテーブル更新プロセスの稼働が停止される。
If the number S of update data acquired in
また、テーブル更新プロセスの数の減少に伴ってメモリ12Bに記憶されているテーブル更新プロセスの稼働数nを更新すると、状況管理テーブル群の各テーブルに設けられているm個の格納領域のうちの通番nの格納領域で業務データの更新が停止されると共に、通番nの格納領域がデータ統合出力処理(図4)による業務データの統合対象からも除外されるので、次のステップ80では、各テーブルの通番nの格納領域に格納されている業務データを、同一テーブルの他の格納領域に格納されている業務データに統合する。そして、次のステップ82ではメモリ12B上の稼働数nの記憶領域に記憶されているテーブル更新プロセスの稼働数nを1だけデクリメントし、ステップ84でタイマをスタートさせて稼働プロセス数管理処理を終了する。
In addition, when the number n of table update process operations stored in the
この場合、互いに並列にテーブル更新処理を行うテーブル更新プロセスの数が1つ減少すると共に、状況管理テーブル群の各テーブルに設けられているm個の格納領域のうち、業務データが更新される格納領域の数も1つ減少することになり、キューからの更新用データの取り出し速度が減少する分、サーバ・コンピュータ12の処理能力がサーバ・コンピュータ12が実行している別の処理(或いは取引明細系DBの更新)に振り分けられることになる。
In this case, the number of table update processes that perform table update processing in parallel with each other is reduced by one, and the business data is updated in m storage areas provided in each table of the status management table group. The number of areas is also reduced by one, and the processing speed of the
なお、上記では更新用データに基づいて業務データを更新するにあたり、キューから更新用データを取り出す都度、先の(1)式の演算を行って業務データの更新を行う格納領域を決定する態様を説明したが、本発明はこれに限定されるものではなく、特に、稼働中にテーブル更新プロセスの数を増減させない等の場合には、個々のテーブル更新プロセスに対し、業務データの更新を行う格納領域の通番として互いに異なる通番を設定しておき、個々のテーブル更新プロセスが、設定された通番の格納領域に格納されている業務データを更新するようにしてもよい。この場合、アクセスの競合は起こり得ないので、図3のステップ52,56のような排他制御を省略することができ、処理効率を更に向上させることができる。
In the above, when updating the business data based on the update data, every time the update data is extracted from the queue, the storage area for updating the business data is determined by performing the calculation of the previous equation (1). As described above, the present invention is not limited to this, and in particular, when the number of table update processes is not increased or decreased during operation, storage for updating business data for each table update process. Different sequence numbers may be set as the sequence numbers of the areas, and the individual table update process may update the business data stored in the storage areas of the set sequence numbers. In this case, since access competition cannot occur, the exclusive control as in
また、上記では本発明に係る更新対象データとして特定金融機関全体としての資金繰りや決済の状況を表す業務データを、更新用データとして業務データを更新するためのデータを例に説明したが、本発明はこれに限定されるものではなく、更新対象データとして任意のデータを適用可能である。また、更新用データは、更新対象データの更新に間接的に使用可能なデータであってもよく、処理手段が保持手段から取り出した更新用データに対して何らかの処理を行うことで、更新対象データの更新に直接使用できるデータが生成されるデータであってもよい。 In the above description, business data representing the cash flow and settlement status of the entire specified financial institution as the update target data according to the present invention has been described as an example, and data for updating business data as update data has been described as an example. Is not limited to this, and arbitrary data can be applied as the update target data. Further, the update data may be data that can be used indirectly for updating the update target data. The update data is obtained by performing some processing on the update data that the processing unit has fetched from the holding unit. The data may be data that can be used directly for updating.
また、上記では本発明に係るデータ処理プログラム(に対応する電文受信プログラム、テーブル更新プログラム、データ統合出力プログラム、及び、稼働プロセス数管理プログラム)がサーバ・コンピュータ12の記憶部12Cに予め記憶(インストール)されている態様を説明したが、本発明に係るデータ処理プログラムは、CD−ROMやDVD−ROM、MT等の記録媒体に記録されている形態で提供することも可能である。
In the above, the data processing program (corresponding to the message reception program, the table update program, the data integration output program, and the operation process number management program) according to the present invention is stored (installed) in the
10 コンピュータ・システム
12 サーバ・コンピュータ
12B メモリ
12C 記憶部
14 コンピュータ・ネットワーク
18 ディスプレイ
20 キーボード
24 日銀システム
10
Claims (10)
m個(m≧2)設けられた格納領域に前記更新対象データを各々格納する記憶手段と、
互いに並列に動作し、前記保持手段から前記更新用データを取り出し、前記記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている前記更新対象データを、前記取り出した更新用データに基づいて更新する処理を繰り返すn個(n≧2かつn≦m)の処理手段と、
変数x及び前記処理手段の総数nを記憶する変数記憶手段と、
を含み、
前記処理手段は、前記保持手段から更新用データを取り出す度に、前記変数記憶手段から変数xの値及び総数nの値を読み出し、前記変数記憶手段に記憶されている変数xの値を更新すると共に、読み出した変数xの値を前記処理手段の総数nで除した剰余の値に基づいて、前記記憶手段のm個の格納領域のうち前記更新対象データの更新を行う格納領域を決定するデータ処理装置。 Update data used for updating the update target data is sequentially input, and holding means for holding each of the input update data;
storage means for storing the update target data in m (m ≧ 2) storage areas;
The update data that operates in parallel with each other, takes out the update data from the holding means, and stores the update target data stored in different storage areas among the m storage areas of the storage means. N (n ≧ 2 and n ≦ m) processing means for repeating the process of updating based on
Variable storage means for storing the variable x and the total number n of the processing means;
Only including,
The processing means reads the value of the variable x and the value of the total number n from the variable storage means every time the update data is taken out from the holding means, and updates the value of the variable x stored in the variable storage means. And data for determining a storage area for updating the update target data among the m storage areas of the storage means based on the remainder value obtained by dividing the value of the read variable x by the total number n of the processing means. Processing equipment.
前記制御手段は、前記所定のプロセスを追加生成させることで前記処理手段の数を増加させ、稼働中の前記所定のプロセスの稼働を停止させることで前記処理手段の数を減少させる請求項2記載のデータ処理装置。 The control unit increases the number of the processing units by additionally generating the predetermined process, and decreases the number of the processing units by stopping the operation of the predetermined process in operation. Data processing equipment.
前記保持手段に入力される前記更新用データには、前記p種類の更新対象データのうちの互いに異なる更新対象データに用いられるp種類の更新用が混在しており、The update data input to the holding means includes p types of update data used for different update target data among the p types of update target data,
前記処理手段は、前記保持手段から更新用データを取り出し、p個の前記記憶手段のうち取り出した更新用データの種類に対応する前記記憶手段を選択し、選択した前記記憶手段の何れかの格納領域に格納されている前記更新対象データを前記取り出した更新用データに基づいて更新する請求項1〜請求項5の何れか1項記載のデータ処理装置。The processing means takes out update data from the holding means, selects the storage means corresponding to the type of update data taken out from the p storage means, and stores any of the selected storage means The data processing apparatus according to claim 1, wherein the update target data stored in an area is updated based on the extracted update data.
前記制御手段は、前記処理手段の数を減少させる場合に、前記記憶手段のm個の格納領域のうちのn番目の格納領域に格納されている更新対象データを他の格納領域に格納されている更新対象データに統合した後に総数nの値を減少させる請求項2記載のデータ処理装置。When the control means reduces the number of the processing means, the update target data stored in the nth storage area of the m storage areas of the storage means is stored in another storage area. The data processing apparatus according to claim 2, wherein the value of the total number n is decreased after being integrated into the update target data.
互いに並列に動作し、前記保持手段から前記更新用データを取り出し、前記記憶手段のm個の格納領域のうちの互いに異なる格納領域に格納されている前記更新対象データを、前記取り出した更新用データに基づいて更新する処理を繰り返すn個(n≧2かつn≦m)の処理手段、
及び、変数x及び前記処理手段の総数nを記憶する変数記憶手段
として各々機能させるためのデータ処理プログラムであって、
前記処理手段は、前記保持手段から更新用データを取り出す度に、前記変数記憶手段から変数xの値及び総数nの値を読み出し、前記変数記憶手段に記憶されている変数xの値を更新すると共に、読み出した変数xの値を前記処理手段の総数nで除した剰余の値に基づいて、前記記憶手段のm個の格納領域のうち前記更新対象データの更新を行う格納領域を決定するデータ処理プログラム。 Update data to be used for updating the update target data is sequentially input, and holding means for holding each of the input update data is provided, and the update target data is stored in m (m ≧ 2) storage areas. A computer having storage means for storing each of them, or a computer connected to the storage means,
The update data that operates in parallel with each other, takes out the update data from the holding means, and stores the update target data stored in different storage areas among the m storage areas of the storage means. processing means of n (n ≧ 2 and n ≦ m) repeating the process of updating based on,
And a data processing program for functioning as variable storage means for storing the variable x and the total number n of the processing means ,
The processing means reads the value of the variable x and the value of the total number n from the variable storage means every time the update data is taken out from the holding means, and updates the value of the variable x stored in the variable storage means. And data for determining a storage area for updating the update target data among the m storage areas of the storage means based on the remainder value obtained by dividing the value of the read variable x by the total number n of the processing means. Processing program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008204660A JP5086934B2 (en) | 2008-08-07 | 2008-08-07 | Data processing apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008204660A JP5086934B2 (en) | 2008-08-07 | 2008-08-07 | Data processing apparatus and program |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012000233A Division JP5295395B2 (en) | 2012-01-04 | 2012-01-04 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010039948A JP2010039948A (en) | 2010-02-18 |
JP5086934B2 true JP5086934B2 (en) | 2012-11-28 |
Family
ID=42012389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008204660A Expired - Fee Related JP5086934B2 (en) | 2008-08-07 | 2008-08-07 | Data processing apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5086934B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5640432B2 (en) * | 2010-03-31 | 2014-12-17 | 富士通株式会社 | Distributed processing apparatus, distributed processing program, and distributed processing method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3113841B2 (en) * | 1997-07-30 | 2000-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | Parallel transaction processing system |
JP4294879B2 (en) * | 2001-02-05 | 2009-07-15 | 株式会社日立製作所 | Transaction processing system having service level control mechanism and program therefor |
JP3732113B2 (en) * | 2001-05-14 | 2006-01-05 | 株式会社八十二銀行 | Transaction control system, method and program |
JP4041002B2 (en) * | 2003-03-24 | 2008-01-30 | 株式会社三菱東京Ufj銀行 | Database update processing system, update data input method for database update, update data processing method, and program |
US7149736B2 (en) * | 2003-09-26 | 2006-12-12 | Microsoft Corporation | Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions |
-
2008
- 2008-08-07 JP JP2008204660A patent/JP5086934B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010039948A (en) | 2010-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5797005A (en) | Shared queue structure for data integrity | |
US7937257B2 (en) | Estimating performance of application based on automatic resizing of shared memory for messaging | |
CN103885820B (en) | Information processor and information processing method | |
JPH03130842A (en) | Simultaneous execution controller for data base system | |
EP2416246A1 (en) | Extensibility of business process and application logic | |
US9246836B2 (en) | Single producer, single consumer lockless FIFO/LIFO queue | |
US8898126B1 (en) | Method and apparatus for providing concurrent data insertion and updating | |
US20090106187A1 (en) | Information processing apparatus having process units operable in parallel | |
JP5086934B2 (en) | Data processing apparatus and program | |
CN107451253A (en) | Data processing method and device | |
CN111176850A (en) | Data pool construction method, device, server and medium | |
JP5295395B2 (en) | Data processing device | |
JP5604554B2 (en) | Data processing device | |
US7089265B1 (en) | Database management system for implementing independent database actions in response to events of interest | |
US5706513A (en) | System and method for queuing an retrieving data objects to and from a shared storage medium | |
CN108234481B (en) | Method for controlling multi-machine distributed access to external system and distributed system | |
US11494230B2 (en) | Asynchronous and parallel application processing | |
US5706512A (en) | Computer program product for queuing and retrieving data objects to and from a shared storage medium | |
JP5913043B2 (en) | Cache area management program and method, and information processing apparatus | |
JP2004062439A (en) | Information management support device, information management support system, information management support method, recording medium, and program | |
CN113034254B (en) | Data processing method and device and electronic equipment | |
CN109471898A (en) | It is a kind of for data to be carried out with the method and system of shared distribution | |
US20080209435A1 (en) | Scalable workflow management system | |
JP2002297897A (en) | Method and program for storing data | |
JP2009003968A (en) | Database management device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111220 |
|
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: 20120821 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120907 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |