JPWO2015097991A1 - Transaction distributed processing apparatus, method, system, and storage medium - Google Patents

Transaction distributed processing apparatus, method, system, and storage medium Download PDF

Info

Publication number
JPWO2015097991A1
JPWO2015097991A1 JP2015554517A JP2015554517A JPWO2015097991A1 JP WO2015097991 A1 JPWO2015097991 A1 JP WO2015097991A1 JP 2015554517 A JP2015554517 A JP 2015554517A JP 2015554517 A JP2015554517 A JP 2015554517A JP WO2015097991 A1 JPWO2015097991 A1 JP WO2015097991A1
Authority
JP
Japan
Prior art keywords
transaction
data
distribution
processing
management data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015554517A
Other languages
Japanese (ja)
Other versions
JP6172294B2 (en
Inventor
剛 宮田
剛 宮田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2015097991A1 publication Critical patent/JPWO2015097991A1/en
Application granted granted Critical
Publication of JP6172294B2 publication Critical patent/JP6172294B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Abstract

本発明は、分散処理されるトランザクションのログ先行記録とデータ反映とが非同期に行われる際に、スケーラビリティ低下を抑制しつつ、一意性制約違反をより確実に検出する。トランザクション分散処理装置30は、管理データ分散保持部31と、トランザクション処理部32と、遅延反映部34とを備える。管理データ分散保持部31は、違反検出キーに基づき自装置に振り分けられた管理データを、処理対象データがトランザクションログの反映待ちである間、違反検出キーに対応付けて保持する。トランザクション処理部32は、自装置に振り分けられたトランザクションにおける違反検出キーについて、その管理データの振分先に、該違反検出キーに対応付く他の管理データがない場合に、該管理データを該違反検出キーに対応付けて保持させてから、トランザクションログを先行記録する。遅延反映部34は、トランザクションログをデータ保持装置10に反映させる。The present invention more reliably detects a uniqueness constraint violation while suppressing a decrease in scalability when log advance recording and data reflection of a transaction to be distributed are performed asynchronously. The transaction distribution processing device 30 includes a management data distribution holding unit 31, a transaction processing unit 32, and a delay reflection unit 34. The management data distribution holding unit 31 holds the management data distributed to the own device based on the violation detection key in association with the violation detection key while the processing target data is waiting to be reflected in the transaction log. When there is no other management data corresponding to the violation detection key in the distribution destination of the management data for the violation detection key in the transaction distributed to the own device, the transaction processing unit 32 transfers the management data to the violation The transaction log is recorded in advance after being stored in association with the detection key. The delay reflecting unit 34 reflects the transaction log on the data holding device 10.

Description

本発明は、データに対するトランザクションを分散処理する分散処理システムに関する。  The present invention relates to a distributed processing system that distributes transactions for data.

データに対するトランザクションを複数の処理単位に分散させて並列に処理する分散処理システムが知られている。  There is known a distributed processing system that distributes transactions for data to a plurality of processing units and processes them in parallel.

例えば、このような分散処理システムとして、キーバリューストア(KVS:Key Value Store)と呼ばれるデータ管理技術を用いるものが知られている。KVSは、保存対象のデータ(value)に対して対応する一意のキー(key)を設定する。そして、KVSは、キーおよびバリューの組を書き込み、キーを指定することでバリューを読み出す。KVSは、スケーラビリティに優れ、分散処理に適しているという特徴がある。  For example, such a distributed processing system is known that uses a data management technique called a key value store (KVS). The KVS sets a unique key corresponding to the data (value) to be saved. The KVS then writes a set of key and value, and reads the value by designating the key. KVS is characterized by excellent scalability and suitable for distributed processing.

例えば、特許文献1には、分散KVSに関する関連技術が記載されている。この関連技術は、トランザクションを分散して処理する各サーバに、管理用マップを用意する。管理用マップは、トランザクションIDをキーとし、トランザクションの状態および終了待ちのトランザクションIDをバリューとして保持する。そしてこの関連技術は、管理用マップを用いることにより、トランザクション間のロックの依存関係を管理し、ロールバックを不必要に発生させることなく、トランザクションの分散処理を実現している。  For example, Patent Document 1 describes a related technique related to distributed KVS. In this related technology, a management map is prepared for each server that processes transactions in a distributed manner. The management map holds a transaction ID as a key and a transaction state and a transaction ID waiting for completion as a value. This related technique uses a management map to manage the dependency relationship of locks between transactions, and realize distributed processing of transactions without causing rollback unnecessarily.

また、このような分散処理システムは、トランザクションを分散処理する各処理単位でトランザクションログ(WAL:Write Ahead Logging)を先行して記録する。分散処理システムは、トランザクションログの先行記録により、トランザクション処理を完了する。そして、分散処理システムは、その後、実際のデータに対する反映を、トランザクション処理とは非同期に行う。これにより、このような分散処理システムは、トランザクション処理の高速化を実現している。  Also, such a distributed processing system records a transaction log (WAL: Write Ahead Logging) in advance for each processing unit for processing a transaction in a distributed manner. The distributed processing system completes the transaction processing based on the preceding record of the transaction log. Then, the distributed processing system performs reflection on the actual data asynchronously with the transaction processing. As a result, such a distributed processing system realizes faster transaction processing.

特開2013−033345号公報JP2013-033345A

しかしながら、上述のような、トランザクションログの先行記録およびデータ反映を非同期に行う分散処理システムでは、一意性を有するキーに対する制約違反発生の検出は、データ反映の際に行われていた。一意性を有するキーとは、主キーやユニークキー等である。これは、異なる処理単位で実行されるトランザクション間では、一意性の制約を有するデータが集約・反映される時点まで待たないと、キーの重複を検出できないためである。しかし、この場合、制約違反が検出された時点で、トランザクション自体はトランザクションログの先行書き込みとして完了している。そのため、一意性に関する制約違反の検出策としては不完全であった。  However, in the distributed processing system that asynchronously performs prior recording and data reflection of the transaction log as described above, detection of occurrence of a constraint violation for a unique key has been performed at the time of data reflection. The key having uniqueness is a primary key, a unique key, or the like. This is because duplication of keys cannot be detected between transactions executed in different processing units without waiting until the time when data having uniqueness restrictions are aggregated and reflected. However, in this case, when a constraint violation is detected, the transaction itself is completed as a write-ahead transaction log. As a result, it was incomplete as a measure for detecting violations of uniqueness constraints.

ここで、上述のような分散処理システムにおいて、一意性制約のあるキーを集中管理し、トランザクション開始時点で一意性に関する制約違反をチェックする手法も考えられる。しかしながら、その場合、一意性に関する制約違反のチェックが一ヶ所に集中するため、その設計思想に反して、分散処理システムのスケーラビリティが損なわれるという問題があった。  Here, in the distributed processing system as described above, a method of centrally managing keys with uniqueness constraints and checking for constraint violations related to uniqueness at the start of a transaction can be considered. However, in that case, since the check for violation of the constraint on uniqueness is concentrated in one place, there is a problem that the scalability of the distributed processing system is impaired against the design concept.

また、特許文献1に記載された関連技術では、トランザクション間のロックの依存関係を考慮して処理を行うことができるが、一意性に関する制約違反の検出については記載がない。  In the related art described in Patent Document 1, processing can be performed in consideration of the dependency relationship between locks between transactions, but there is no description about detection of a constraint violation related to uniqueness.

本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、トランザクションログの先行記録と実際のデータ反映とを非同期に行う分散処理システムにおいて、トランザクションを複数の処理単位で分散処理する際に、スケーラビリティ低下を抑制しつつ、処理単位を跨る一意性制約違反をより確実に検出可能な技術を提供することを目的とする。  The present invention has been made to solve the above-described problems. That is, according to the present invention, in a distributed processing system that asynchronously performs transaction log pre-recording and actual data reflection, when a transaction is distributed in a plurality of processing units, the processing unit is crossed while suppressing a decrease in scalability. An object is to provide a technique capable of more reliably detecting a uniqueness constraint violation.

上記目的を達成するために、本発明のトランザクション分散処理装置は、トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段と、自装置(トランザクション分散処理装置)に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他の前記トランザクション分散処理装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログをトランザクションログ保持手段に先行記録することにより、トランザクション処理を完了するトランザクション処理手段と、前記トランザクション処理手段による処理とは非同期に、前記トランザクションログ保持手段に保持されたトランザクションログを、前記処理対象データに対して反映させる遅延反映手段と、を備える。  In order to achieve the above object, the transaction distributed processing device of the present invention targets the management data distributed to the own device based on a violation detection key that can cause a uniqueness constraint violation between transactions as a target. While processing target data is waiting to be reflected in the transaction log, when processing a transaction distributed to the management data distributed holding means and the own apparatus (transaction distributed processing apparatus) held in association with the violation detection key The management data distribution holding means of the own device or another transaction distributed processing device that is the distribution destination of the management data specified based on the violation detection key in the transaction is associated with the violation detection key If no other management data is retained, the transaction The management data related to the allocation destination is held in association with the violation detection key in the management data distribution holding means of the distribution destination, and a transaction log representing the processing contents of the transaction is recorded in advance in the transaction log holding means Thus, the transaction processing means for completing the transaction processing and the delay reflection means for reflecting the transaction log held in the transaction log holding means to the processing target data asynchronously with the processing by the transaction processing means, Is provided.

また、本発明のアプリケーション装置は、処理対象データに対するトランザクションを生成するアプリケーション手段と、上述のトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報を記憶しておき、前記アプリケーション手段によって生成されたトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に要求するトランザクション振分手段と、前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報を記憶しておき、前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する管理データ振分手段と、を備える。  In addition, the application apparatus of the present invention includes an application unit that generates a transaction for processing target data, and a transaction distribution for specifying a transaction distributed processing apparatus that is a distribution destination of the transaction among the transaction distributed processing apparatuses described above. A transaction distribution unit that stores information and requests a transaction distributed processing device specified based on the transaction distribution information to process a transaction generated by the application unit; and Storing management data distribution information for specifying the transaction distribution processing device to which the management data is to be distributed, and specifying a transaction distribution process specified based on the management data distribution information The device, and a management data distributing means to be notified to the distribution destination to become a transaction distributed processing apparatus of the transaction.

また、本発明のデータ保持装置は、前記処理対象データを保持するデータ保持手段と、上述のトランザクション分散処理装置に保持される前記トランザクションログを、前記データ保持手段に対して反映させるデータ反映手段と、を備える。  The data holding device of the present invention includes a data holding unit for holding the processing target data, and a data reflecting unit for reflecting the transaction log held in the transaction distributed processing device to the data holding unit. .

また、本発明の構成管理装置は、上述のトランザクション分散処理装置の構成変更に応じて、上述のアプリケーション装置に保持される前記トランザクション振分情報および前記管理データ振分情報を更新する振分情報更新手段を備える。  Further, the configuration management apparatus of the present invention updates distribution information and updates the transaction distribution information and the management data distribution information held in the application device according to the configuration change of the transaction distributed processing device. Means.

また、本発明の分散処理システムは、上述のトランザクション分散処理装置と、前記トランザクション分散処理装置に対してトランザクションの処理を要求する上述のアプリケーション装置と、前記アプリケーション装置によって生成されるトランザクションの対象となる処理対象データを保持する上述のデータ保持装置と、前記トランザクション分散処理装置、前記アプリケーション装置、および、前記データ保持装置の構成を管理する上述の構成管理装置と、を備える。  The distributed processing system of the present invention is a target of a transaction generated by the above-described transaction distributed processing device, the above-described application device that requests the transaction distributed processing device to process a transaction, and the application device. The above-described data holding device that holds data to be processed, and the above-described configuration management device that manages the configuration of the transaction distributed processing device, the application device, and the data holding device.

また、本発明の分散処理方法は、処理対象データに対するトランザクションを1つ以上のトランザクション分散処理装置に分散処理させる際に、トランザクション間で一意性制約違反が発生し得る違反検出キーに対応付けた管理データを、前記違反検出キーに基づいて特定される前記トランザクション分散処理装置に振り分け、前記管理データの振分先の前記トランザクション分散処理装置に、前記違反検出キーに対応付けられた他のトランザクションに基づく前記管理データが保持されていない場合に、前記処理対象データが前記トランザクションログの反映待ちである間、前記違反検出キーに対応付けて前記管理データを保持させてから、前記トランザクションの振分先のトランザクション分散処理装置において前記トランザクションログを先行記録することによりトランザクション処理を完了し、前記トランザクション処理とは非同期に、前記トランザクションログを前記処理対象データへ反映させる。  Also, the distributed processing method of the present invention allows management associated with a violation detection key that may cause a unique constraint violation between transactions when a transaction for processing target data is distributed to one or more transaction distributed processing devices. Data is distributed to the transaction distributed processing device specified based on the violation detection key, and the transaction distributed processing device to which the management data is allocated is based on another transaction associated with the violation detection key. When the management data is not held, while the processing target data is waiting for reflection of the transaction log, the management data is held in association with the violation detection key, and then the transaction distribution destination In the transaction distributed processing device, the transaction log Completing the transaction processing by the preceding recording, the asynchronously with the transaction processing to reflect the transaction log to the processing target data.

また、本発明のトランザクション分散処理方法は、トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段を用いて、自装置に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログを先行記録することにより、トランザクション処理を完了し、前記トランザクション処理とは非同期に、前記トランザクションログを、前記処理対象データに対して反映させる。  Further, the transaction distributed processing method of the present invention is configured such that management data distributed to the own device based on a violation detection key that can cause a uniqueness constraint violation between transactions, and processing target data targeted by the transaction are transaction logs. When processing a transaction to which processing is distributed to its own device using the management data distribution and holding means that holds the data in association with the violation detection key while waiting for the reflection, based on the violation detection key in the transaction When other management data associated with the violation detection key is not held in the management data distribution holding means of the own device or another device that is the distribution destination of the specified management data, The management data is detected in the management data distribution and holding means at the distribution destination. The transaction processing is completed by pre-recording the transaction log representing the processing content of the transaction after being held in correspondence with the transaction, and the transaction log is set as the processing target data asynchronously with the transaction processing. Reflect it.

また、本発明の記憶媒体は、トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段を用いて、自装置に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログをトランザクションログ保持手段に先行記録することにより、トランザクション処理を完了するトランザクション処理ステップと、前記トランザクション処理とは非同期に、前記トランザクションログ保持手段に保持されたトランザクションログを、前記処理対象データに対して反映させる遅延反映ステップと、をコンピュータ装置に実行させるトランザクション分散処理プログラムを記憶する。  In addition, the storage medium of the present invention reflects the management data distributed to the own device based on the violation detection key that may cause a uniqueness constraint violation between transactions, and the processing target data targeted by the transaction reflects the transaction log. When processing a transaction to which processing is distributed to its own device using the management data distribution and holding means that holds the data in association with the violation detection key while waiting, it is specified based on the violation detection key in the transaction. If the management data distribution and holding means of the own device or another device that is the distribution destination of the management data does not hold other management data associated with the violation detection key, the management related to the transaction Data is held in association with the violation detection key in the management data distribution holding means of the distribution destination After that, the transaction log representing the processing content of the transaction is recorded in advance in the transaction log holding means, so that the transaction processing step for completing the transaction processing and the transaction processing are held in the transaction log holding means asynchronously. A transaction distribution processing program for causing a computer device to execute a delay reflection step of reflecting the processed transaction log on the processing target data is stored.

また、本発明のトランザクション振分方法は、上述のトランザクション分散処理方法を実行するトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報と、前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報とを用いて、処理対象データに対するトランザクションを生成し、生成したトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に対して要求し、前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する。  Further, the transaction distribution method of the present invention includes transaction distribution information for identifying a transaction distribution processing device that is a distribution destination of the transaction, among transaction distribution processing devices that execute the transaction distribution processing method described above, Using the management data distribution information for identifying the transaction distributed processing device that is the distribution destination of the management data among the transaction distributed processing devices, a transaction for the processing target data is generated, and the generated transaction Processing is requested to the transaction distributed processing device specified based on the transaction distribution information, and the transaction distributed processing device specified based on the management data distribution information becomes the transaction distribution destination. Transac It notifies the tio emission distributed processing system.

また、本発明の記憶媒体は、上述の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報と、前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報とを用いて、前記処理対象データに対するトランザクションを生成するトランザクション生成ステップと、前記トランザクション生成ステップにおいて生成されたトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に対して要求するトランザクション振分ステップと、前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する管理データ振分ステップと、をコンピュータ装置に実行させるトランザクション振分プログラムを記憶する。  Further, the storage medium of the present invention is a transaction distribution for specifying a transaction distribution processing apparatus that is a distribution destination of the transaction among transaction distribution processing apparatuses that execute the transaction distribution processing program stored in the storage medium. A transaction for the processing target data is generated using the distribution information and the management data distribution information for identifying the transaction distribution processing device that is the distribution destination of the management data among the transaction distribution processing devices. A transaction generation step, and a transaction distribution step for requesting the transaction distributed processing device specified based on the transaction distribution information to process the transaction generated in the transaction generation step. A transaction distribution processing step for causing a computer device to execute a management data distribution step of notifying a transaction distribution processing device specified as the management data distribution information to a transaction distribution processing device that is a distribution destination of the transaction. Memorize minute program.

また、本発明のデータ保持方法は、上述のトランザクション分散処理方法を実行するトランザクション分散処理装置によって先行記録されるトランザクションログを反映させる処理対象データを保持する。  In addition, the data holding method of the present invention holds processing target data that reflects a transaction log recorded in advance by a transaction distributed processing device that executes the above-described transaction distributed processing method.

また、本発明の記憶媒体は、データ保持手段に保持される処理対象データに対して、上述の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置によって先行記録されるトランザクションログを反映させる反映ステップを、コンピュータ装置に実行させるデータ保持プログラムを記憶する。  Further, the storage medium of the present invention has a transaction log recorded in advance by a transaction distributed processing device that executes the transaction distributed processing program stored in the above-described storage medium for the processing target data held in the data holding means. A data holding program for causing the computer apparatus to execute the reflecting step to be reflected is stored.

また、本発明の構成管理方法は、上述のトランザクション分散処理方法を実行するトランザクション分散処理装置の構成変更に応じて、上述のトランザクション振分方法において用いられる前記トランザクション振分情報および前記管理データ振分情報を更新する。  In addition, the configuration management method of the present invention provides the transaction distribution information and the management data distribution used in the transaction distribution method according to a configuration change of the transaction distribution processing device that executes the transaction distribution processing method. Update information.

また、本発明の記憶媒体は、上述の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置の構成変更に応じて、上述の記憶媒体に記憶されたトランザクション振分プログラムによって用いられる前記トランザクション振分情報および前記管理データ振分情報を更新する振分情報更新ステップを、コンピュータ装置に実行させる構成管理プログラムを記憶する。  The storage medium of the present invention is used by the transaction distribution program stored in the storage medium according to the configuration change of the transaction distribution processing apparatus that executes the transaction distribution processing program stored in the storage medium. A configuration management program for causing a computer device to execute a distribution information update step for updating the transaction distribution information and the management data distribution information is stored.

本発明は、トランザクションログの先行記録と実際のデータ反映とを非同期に行う分散処理システムにおいて、トランザクションを複数の処理単位で分散処理する際に、スケーラビリティ低下を抑制しつつ、処理単位を跨る一意性制約違反をより確実に検出可能な技術を提供することができる。  In a distributed processing system that asynchronously performs transaction log pre-recording and actual data reflection, uniqueness across processing units is suppressed while suppressing a decrease in scalability when a transaction is distributed in a plurality of processing units. It is possible to provide a technique that can more reliably detect constraint violations.

本発明の実施の形態としての分散処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムのハードウェア構成図である。It is a hardware block diagram of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムの機能ブロック図である。It is a functional block diagram of a distributed processing system as an embodiment of the present invention. 本発明の実施の形態としての分散処理システムのトランザクション振分動作を説明するフローチャートである。It is a flowchart explaining the transaction distribution operation | movement of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムのトランザクション処理を説明するフローチャートである。It is a flowchart explaining the transaction processing of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムのトランザクションログの反映動作を説明するフローチャートである。It is a flowchart explaining the transaction log reflection operation | movement of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムのデータ反映動作を説明するフローチャートである。It is a flowchart explaining the data reflection operation | movement of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムの管理データ削除動作を説明するフローチャートである。It is a flowchart explaining the management data deletion operation | movement of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムの構成管理動作を説明するフローチャートである。It is a flowchart explaining the structure management operation | movement of the distributed processing system as embodiment of this invention. 本発明の実施の形態としての分散処理システムの具体例の構成を示す模式図である。It is a schematic diagram which shows the structure of the specific example of the distributed processing system as embodiment of this invention. 本発明の実施の形態の具体例における処理対象データを説明する図である。It is a figure explaining the process target data in the specific example of embodiment of this invention. 本発明の実施の形態の具体例において分散保持される処理対象データを説明する図である。It is a figure explaining the process target data distributedly held in the specific example of the embodiment of the present invention. 本発明の実施の形態の具体例における主キーの管理データを説明する図である。It is a figure explaining the management data of the primary key in the specific example of embodiment of this invention. 本発明の実施の形態の具体例において分散保持される主キーの管理データを説明する図である。It is a figure explaining the management data of the primary key distributedly hold | maintained in the specific example of embodiment of this invention. 本発明の実施の形態の具体例において更新される前後の主キーの管理データ振分情報を説明する図である。It is a figure explaining the management data distribution information of the primary key before and behind updated in the specific example of embodiment of this invention. 本発明の実施の形態としての分散処理システムの他の具体例の構成を示す模式図である。It is a schematic diagram which shows the structure of the other specific example of the distributed processing system as embodiment of this invention. 本発明の実施の形態の他の具体例における処理対象データを説明する図である。It is a figure explaining the process target data in the other specific example of embodiment of this invention. 本発明の実施の形態の他の具体例における処理対象データの実体としてのKVSを説明する図である。It is a figure explaining KVS as an entity of processing object data in other specific examples of an embodiment of the invention. 本発明の実施の形態の他の具体例におけるユニークキーの管理データを説明する図である。It is a figure explaining the management data of the unique key in the other specific example of embodiment of this invention.

以下、本発明の実施の形態について、図面を参照して詳細に説明する。  Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

(構成の説明)
本発明の実施の形態としての分散処理システム1の構成を図1に示す。
(Description of configuration)
A configuration of a distributed processing system 1 as an embodiment of the present invention is shown in FIG.

図1において、分散処理システム1は、データ保持装置10と、アプリケーション装置20と、トランザクション分散処理装置30と、構成管理装置40とを備える。また、各装置は、ネットワークを介して互いに通信可能に接続されている。ここで、図1には、複数のデータ保持装置10と、1つのアプリケーション装置20と、複数のトランザクション分散処理装置30と、1つの構成管理装置40とを示しているが、本発明の分散処理システムが備える各装置の数を限定するものではない。  In FIG. 1, the distributed processing system 1 includes a data holding device 10, an application device 20, a transaction distributed processing device 30, and a configuration management device 40. Each device is connected to be communicable with each other via a network. Here, FIG. 1 shows a plurality of data holding devices 10, one application device 20, a plurality of transaction distributed processing devices 30, and one configuration management device 40. The number of devices included in the system is not limited.

データ保持装置10は、処理対象データを保持する装置である。本実施の形態では、処理対象データは、仮想的な表(仮想表)を表し、仮想表の識別情報および仮想表における主キーの値からなる情報をキーとしてデータが対応付けられたキーバリューストア(KVS:Key Value Store)であるものとする。また、本実施の形態では、データ保持装置10は、処理対象データを、他のデータ保持装置10との間で分散保持するものとする。  The data holding device 10 is a device that holds processing target data. In the present embodiment, the processing target data represents a virtual table (virtual table), and a key value store in which data is associated with information including the identification information of the virtual table and the value of the primary key in the virtual table as a key. (KVS: Key Value Store). In the present embodiment, the data holding device 10 holds the processing target data in a distributed manner with other data holding devices 10.

アプリケーション装置20は、処理対象データに対するトランザクションを生成する装置である。本実施の形態では、アプリケーション装置20は、仮想表を表す上述のKVSに対するトランザクションを生成するものとする。  The application device 20 is a device that generates a transaction for processing target data. In the present embodiment, the application apparatus 20 generates a transaction for the above-described KVS that represents a virtual table.

トランザクション分散処理装置30は、アプリケーション装置20によって生成されるトランザクションを、他のトランザクション分散処理装置30との間で分散処理する装置である。  The transaction distributed processing device 30 is a device that distributes transactions generated by the application device 20 with other transaction distributed processing devices 30.

構成管理装置40は、分散処理システム1の構成を管理する装置である。  The configuration management device 40 is a device that manages the configuration of the distributed processing system 1.

次に、分散処理システム1を構成する各装置のハードウェア構成を図2に示す。図2において、データ保持装置10は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成可能である。また、アプリケーション装置20は、CPU2001と、RAM2002と、ROM2003と、ハードディスク等の記憶装置2004と、ネットワークインタフェース2005とを備えたコンピュータ装置によって構成可能である。また、トランザクション分散処理装置30は、CPU3001と、RAM3002と、ROM3003と、ハードディスク等の記憶装置3004と、ネットワークインタフェース3005とを備えたコンピュータ装置によって構成可能である。また、構成管理装置40は、CPU4001と、RAM4002と、ROM4003と、ハードディスク等の記憶装置4004と、ネットワークインタフェース4005とを備えたコンピュータ装置によって構成可能である。なお、分散処理システム1を構成する各装置のハードウェア構成は、上述の構成に限定されない。  Next, FIG. 2 shows a hardware configuration of each device constituting the distributed processing system 1. In FIG. 2, the data holding device 10 includes a central processing unit (CPU) 1001, a random access memory (RAM) 1002, a read only memory (ROM) 1003, a storage device 1004 such as a hard disk, and a network interface 1005. It can be configured by a computer device provided. The application device 20 can be configured by a computer device that includes a CPU 2001, a RAM 2002, a ROM 2003, a storage device 2004 such as a hard disk, and a network interface 2005. The transaction distributed processing device 30 can be configured by a computer device including a CPU 3001, a RAM 3002, a ROM 3003, a storage device 3004 such as a hard disk, and a network interface 3005. The configuration management device 40 can be configured by a computer device that includes a CPU 4001, a RAM 4002, a ROM 4003, a storage device 4004 such as a hard disk, and a network interface 4005. Note that the hardware configuration of each device constituting the distributed processing system 1 is not limited to the above-described configuration.

次に、分散処理システム1を構成する各装置の機能ブロック構成を図3に示す。  Next, the functional block configuration of each device constituting the distributed processing system 1 is shown in FIG.

まず、トランザクション分散処理装置30の機能ブロック構成について説明する。  First, the functional block configuration of the transaction distributed processing device 30 will be described.

図3において、トランザクション分散処理装置30は、管理データ分散保持部31と、トランザクション処理部32と、トランザクションログ保持部33と、遅延反映部34とを有する。ここで、トランザクション分散処理装置30が図2に示したハードウェア要素を備えるコンピュータ装置によって構成される場合、管理データ分散保持部31およびトランザクションログ保持部33は、RAM3002および記憶装置3004によって構成される。また、トランザクション処理部32および遅延反映部34は、ネットワークインタフェース3005と、ROM3003または記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001とによって構成される。なお、トランザクション分散処理装置30を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。  In FIG. 3, the transaction distributed processing device 30 includes a management data distribution holding unit 31, a transaction processing unit 32, a transaction log holding unit 33, and a delay reflection unit 34. Here, when the transaction distribution processing device 30 is configured by a computer device including the hardware elements illustrated in FIG. 2, the management data distribution holding unit 31 and the transaction log holding unit 33 are configured by the RAM 3002 and the storage device 3004. . The transaction processing unit 32 and the delay reflection unit 34 include a network interface 3005 and a CPU 3001 that reads a computer program and various data stored in the ROM 3003 or the storage device 3004 into the RAM 3002 and executes them. Note that the hardware configuration of each functional block configuring the transaction distributed processing device 30 is not limited to the above-described configuration.

管理データ分散保持部31は、違反検出キーに基づいて自装置に振り分けられた管理データを、違反検出キーに対応付けて保持する。ここで、違反検出キーとは、処理対象データにおいて一意性制約を有するキーのうち、トランザクション間で一意性制約違反が発生し得るキーである。また、管理データとは、トランザクションが対象とする処理対象データがトランザクションログの反映待ちであることを表す情報である。また、管理データ分散保持部31は、そのような管理データを、該当する処理対象データがトランザクションログの反映待ちである間、保持する。  The management data distribution holding unit 31 holds the management data distributed to the own device based on the violation detection key in association with the violation detection key. Here, the violation detection key is a key that can cause a uniqueness constraint violation between transactions among keys having uniqueness constraints in the processing target data. The management data is information indicating that the processing target data targeted by the transaction is waiting for reflection of the transaction log. Further, the management data distribution and holding unit 31 holds such management data while the corresponding processing target data is waiting for reflection of the transaction log.

ここで、処理対象データが仮想表を表すKVSである場合、トランザクション間で、ある仮想表の主キーについて一意性制約違反が発生し得るとする。この場合、違反検出キーは、仮想表の識別情報および仮想表における主キーの値からなる情報となる。また、トランザクション間で、ある仮想表のユニークキーについて一意性制約違反が発生し得るとする。この場合、違反検出キーは、仮想表の識別情報および仮想表におけるユニークキーの値からなる情報となる。また、管理データは、違反検出キーに対して後述のトランザクションキーを含む情報が対応付けられたKVSであってもよい。  Here, when the processing target data is KVS representing a virtual table, it is assumed that a uniqueness constraint violation may occur for a primary key of a certain virtual table between transactions. In this case, the violation detection key is information including the identification information of the virtual table and the value of the primary key in the virtual table. Further, it is assumed that a uniqueness constraint violation may occur for a unique key of a certain virtual table between transactions. In this case, the violation detection key is information including the identification information of the virtual table and the value of the unique key in the virtual table. The management data may be KVS in which information including a transaction key described later is associated with the violation detection key.

なお、管理データ分散保持部31は、違反検出キーの値毎に1つの管理データを記憶し、同一の値の違反検出キーについて同時に複数の管理データを保持できないものとする。どのような値の違反検出キーについての管理データがどのトランザクション分散処理装置30の管理データ分散保持部31に振り分けられるかについては、後述のアプリケーション装置20により、違反検出キーに基づき一意に特定されるよう定められている。  The management data distribution holding unit 31 stores one management data for each violation detection key value, and cannot hold a plurality of management data for the same value of the violation detection key at the same time. The value of the violation detection key for which the management data is distributed to the management data distribution holding unit 31 of which transaction distributed processing device 30 is uniquely identified by the application device 20 described later based on the violation detection key. It is stipulated.

トランザクション処理部32は、アプリケーション装置20から要求されたトランザクションを処理する際に、そのトランザクションにおける違反検出キーを、その違反検出キーについての管理データの振分先であるトランザクション分散処理装置30の管理データ分散保持部31に保持させることを試みる。もし、そのトランザクションにおいて一意性制約違反が発生し得る複数の違反検出キーがあれば、トランザクション処理部32は、各違反検出キーについてその振分先への保持を試みればよい。ここで、各管理データの振分先は、アプリケーション装置20から通知されるものとする。なお、アプリケーション装置20からの振分先の通知の詳細については後述する。  When the transaction processing unit 32 processes a transaction requested from the application apparatus 20, the transaction detection unit 32 distributes the violation detection key in the transaction to the management data of the transaction distributed processing apparatus 30 that is the distribution destination of the management data for the violation detection key. An attempt is made to hold the dispersion holding unit 31. If there are a plurality of violation detection keys that may cause a uniqueness constraint violation in the transaction, the transaction processing unit 32 may try to store each violation detection key in the distribution destination. Here, it is assumed that the distribution destination of each management data is notified from the application apparatus 20. The details of the distribution destination notification from the application apparatus 20 will be described later.

前述のように、管理データ分散保持部31は、同一の値の違反検出キーについて1つの管理データを保持し、同一の値の違反検出キーについて複数の管理データを保持しないように構成される。ここで、振分先の管理データ分散保持部31において、該当する違反検出キーについて既に他のトランザクションに基づく他の管理データが保持されている場合がある。この場合、トランザクション処理部32は、振分先への管理データの保持に失敗する。一方、振分先の管理データ分散保持部31において、該当する違反検出キーについて他の管理データが保持されていない場合がある。この場合、トランザクション処理部32は、振分先への管理データの保持に成功する。  As described above, the management data distribution holding unit 31 is configured to hold one management data for the same value of the violation detection key and not to hold a plurality of management data for the same value of the violation detection key. Here, in the management data distribution and holding unit 31 of the distribution destination, other management data based on other transactions may already be held for the corresponding violation detection key. In this case, the transaction processing unit 32 fails to hold the management data to the distribution destination. On the other hand, there is a case where other management data is not held for the relevant violation detection key in the management data distribution holding unit 31 of the distribution destination. In this case, the transaction processing unit 32 succeeds in holding the management data to the distribution destination.

また、トランザクション処理部32は、要求されたトランザクションに関わる各管理データについて、その振分先への保持に成功すると、次のように動作するよう構成される。この場合、トランザクション処理部32は、そのトランザクションの処理内容を表すトランザクションログを、トランザクションログ保持部33に先行記録する。そして、トランザクション処理部32は、トランザクション処理の完了を、アプリケーション装置20に対して通知する。  Further, the transaction processing unit 32 is configured to operate as follows when each management data related to the requested transaction is successfully stored in the distribution destination. In this case, the transaction processing unit 32 records a transaction log representing the processing contents of the transaction in the transaction log holding unit 33 in advance. Then, the transaction processing unit 32 notifies the application device 20 of completion of the transaction processing.

また、トランザクション処理部32は、要求されたトランザクションに関わる各管理データの少なくともいずれかについて振分先への保持に失敗すると、次のように動作するよう構成される。この場合、トランザクション処理部32は、このトランザクションの処理を開始する前の状態に戻り、アプリケーション装置20に対してエラーを通知する。前の状態に戻るとは、例えば、要求されたトランザクションに関わる管理データのうち、いったん振分先での保持に成功した管理データを、振分先から削除する処理を行うことなどである。  The transaction processing unit 32 is configured to operate as follows when failing to hold at least one of the management data related to the requested transaction in the distribution destination. In this case, the transaction processing unit 32 returns to the state before starting the processing of this transaction, and notifies the application device 20 of an error. Returning to the previous state means, for example, performing a process of deleting, from the distribution destination, management data that has been successfully held at the distribution destination, among the management data related to the requested transaction.

なお、トランザクション処理部32は、各管理データの振分先への保持に成功した後、トランザクションログを先行記録する前に、確認処理を行ってもよい。確認処理とは、その違反検出キーに関わる処理対象データの振分先となるデータ保持装置10に対して、該当する違反検出キーに関する処理対象データが保持されていないことを確認する処理である。そのような確認先のデータ保持装置10は、次に説明するデータ振分情報を参照することにより特定可能である。これにより、トランザクション処理部32は、該当するトランザクションにより、一意性制約違反が発生しないことをさらに確実にできる。  Note that the transaction processing unit 32 may perform a confirmation process after the management data is successfully stored in the distribution destination and before the transaction log is recorded in advance. The confirmation process is a process of confirming that the data to be processed relating to the violation detection key is not held for the data holding device 10 that is the distribution destination of the data to be processed relating to the violation detection key. Such a data holding device 10 to be confirmed can be identified by referring to data distribution information described below. Thereby, the transaction processing unit 32 can further ensure that the uniqueness constraint violation does not occur due to the corresponding transaction.

トランザクションログ保持部33は、トランザクション処理部32によって先行記録されるトランザクションログを保持する。  The transaction log holding unit 33 holds a transaction log recorded in advance by the transaction processing unit 32.

遅延反映部34は、トランザクション処理部32によるトランザクション処理とは非同期に、トランザクションログ保持部33に保持されたトランザクションログを、データ保持装置10の処理対象データに反映させる。  The delay reflection unit 34 reflects the transaction log held in the transaction log holding unit 33 on the processing target data of the data holding device 10 asynchronously with the transaction processing by the transaction processing unit 32.

具体的には、遅延反映部34は、トランザクションログの対象となる処理対象データの振分先となるデータ保持装置10を特定する。このために、遅延反映部34は、例えば、データ振分情報をあらかじめ記憶していてもよい。データ振分情報は、データ保持装置10のうち、各処理対象データの振分先となるデータ保持装置10を特定するための情報である。例えば、データ振分情報は、仮想表を識別する情報および主キーの値からなる情報から算出されるハッシュ値の範囲に対して、その振分先となるデータ保持装置10が定められた情報であってもよい。  Specifically, the delay reflection unit 34 specifies the data holding device 10 that is the distribution destination of the processing target data that is the target of the transaction log. For this purpose, the delay reflection unit 34 may store data distribution information in advance, for example. The data distribution information is information for identifying the data holding device 10 that is the distribution destination of each processing target data among the data holding devices 10. For example, the data distribution information is information in which the data holding device 10 that is a distribution destination is determined for a range of hash values calculated from information including a virtual table information and a primary key value. There may be.

この場合、遅延反映部34は、トランザクションログの示す仮想表を識別する情報および主キーの値からなる情報に対してハッシュ関数を適用してハッシュ値を算出する。そして、遅延反映部34は、算出したハッシュ値を含む範囲に対して対応付けられたデータ保持装置10を、その処理対象データの振分先として特定すればよい。  In this case, the delay reflection unit 34 calculates a hash value by applying a hash function to information including the information identifying the virtual table indicated by the transaction log and the value of the primary key. Then, the delay reflection unit 34 may specify the data holding device 10 associated with the range including the calculated hash value as the distribution destination of the processing target data.

そして、遅延反映部34は、データ振分情報に基づいて特定されるデータ保持装置10に対して、トランザクションログ保持部33に保持されたトランザクションログを処理対象データに反映させるための反映情報を送信する。なお、遅延反映部34は、反映情報の反映が完了したトランザクションログを、トランザクションログ保持部33から削除する。  Then, the delay reflection unit 34 transmits reflection information for reflecting the transaction log held in the transaction log holding unit 33 to the processing target data to the data holding device 10 specified based on the data distribution information. To do. The delay reflection unit 34 deletes the transaction log for which the reflection information has been reflected from the transaction log holding unit 33.

次に、アプリケーション装置20の機能ブロック構成について説明する。  Next, the functional block configuration of the application apparatus 20 will be described.

図3において、アプリケーション装置20は、アプリケーション部21と、トランザクション振分部22と、管理データ振分部23とを有する。ここで、アプリケーション装置20が図2に示したハードウェア要素を備えるコンピュータ装置によって構成される場合、アプリケーション部21は、ROM2003または記憶装置2004に記憶されたコンピュータ・プログラムおよび各種データをRAM2002に読み込んで実行するCPU2001によって構成される。また、トランザクション振分部22および管理データ振分部23は、ネットワークインタフェース2005と、ROM2003または記憶装置2004に記憶されたコンピュータ・プログラムおよび各種データをRAM2002に読み込んで実行するCPU2001とによって構成される。なお、アプリケーション装置20を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。  In FIG. 3, the application device 20 includes an application unit 21, a transaction distribution unit 22, and a management data distribution unit 23. Here, when the application device 20 is configured by a computer device including the hardware elements illustrated in FIG. 2, the application unit 21 reads the computer program and various data stored in the ROM 2003 or the storage device 2004 into the RAM 2002. It is comprised by CPU2001 to perform. The transaction distribution unit 22 and the management data distribution unit 23 include a network interface 2005 and a CPU 2001 that reads a computer program and various data stored in the ROM 2003 or the storage device 2004 into the RAM 2002 and executes them. Note that the hardware configuration of each functional block constituting the application apparatus 20 is not limited to the above-described configuration.

アプリケーション部21は、処理対象データに対するトランザクションを生成する。前述のように、本実施の形態では、アプリケーション部21は、仮想表を表すKVSに対するトランザクションを生成する。また、各トランザクションには、そのトランザクションを識別するトランザクションキーが設定される。例えば、2つの仮想表に同一の項目「A」を表す列がそれぞれ含まれ、各仮想表において「A」列に同一の値を指定する2つの関連する処理が1つのトランザクションクラスとして定義される場合を考える。この場合、トランザクションキーは、項目「A」に指定される値であってもよい。  The application unit 21 generates a transaction for the processing target data. As described above, in the present embodiment, the application unit 21 generates a transaction for KVS representing a virtual table. Each transaction is set with a transaction key for identifying the transaction. For example, two virtual tables each include a column representing the same item “A”, and in each virtual table, two related processes that specify the same value in the “A” column are defined as one transaction class. Think about the case. In this case, the transaction key may be a value specified in the item “A”.

また、アプリケーション部21は、生成するトランザクションの定義情報に基づいて、そのトランザクションが他のトランザクションとの間で一意性制約違反を発生し得る違反検出キーを特定可能である。例えば、トランザクション間で、ある仮想表の主キーについて一意性制約違反が発生し得ることを想定する。この場合、アプリケーション部21は、その仮想表の識別情報およびその仮想表における主キーの値からなる情報を、このトランザクションにおける違反検出キーとして特定する。また、例えば、トランザクション間で、ある仮想表のユニークキーについて一意性制約違反が発生し得ることを想定する。この場合、アプリケーション部21は、その仮想表の識別情報およびその仮想表におけるユニークキーの値からなる情報を、このトランザクションにおける違反検出キーとして特定する。また、アプリケーション部21は、トランザクション間で一意性制約違反が発生し得る複数の違反検出キーを特定してもよい。特定された違反検出キーは、後述の管理データ振分部23によって用いられる。  Further, the application unit 21 can specify a violation detection key that can cause a uniqueness constraint violation with another transaction based on the definition information of the transaction to be generated. For example, assume that a unique constraint violation may occur for a primary key of a virtual table between transactions. In this case, the application unit 21 specifies information including the identification information of the virtual table and the value of the primary key in the virtual table as a violation detection key in this transaction. In addition, for example, it is assumed that a unique constraint violation may occur for a unique key of a virtual table between transactions. In this case, the application unit 21 specifies information including the identification information of the virtual table and the unique key value in the virtual table as a violation detection key in the transaction. The application unit 21 may specify a plurality of violation detection keys that may cause uniqueness constraint violations between transactions. The identified violation detection key is used by the management data distribution unit 23 described later.

トランザクション振分部22は、トランザクション振分情報をあらかじめ記憶している。ここで、トランザクション振分情報は、トランザクション分散処理装置30のうち、各トランザクションの振分先となるトランザクション分散処理装置30を特定するための情報である。例えば、トランザクション振分情報は、トランザクションキーから算出されるハッシュ値の範囲に対して、振分先となるトランザクション分散処理装置30が定められた情報であってもよい。  The transaction distribution unit 22 stores transaction distribution information in advance. Here, the transaction distribution information is information for identifying the transaction distribution processing device 30 that is the distribution destination of each transaction among the transaction distribution processing devices 30. For example, the transaction distribution information may be information in which the transaction distribution processing device 30 that is the distribution destination is determined for the range of hash values calculated from the transaction key.

また、トランザクション振分部22は、アプリケーション部21によって生成されたトランザクションについて、トランザクション振分情報に基づいてその振分先のトランザクション分散処理装置30を特定する。そして、トランザクション振分部22は、振分先のトランザクション分散処理装置30に対して、そのトランザクションの処理を要求する。  In addition, the transaction distribution unit 22 identifies the transaction distribution processing device 30 that is the distribution destination of the transaction generated by the application unit 21 based on the transaction distribution information. Then, the transaction distribution unit 22 requests the transaction distribution processing device 30 that is the distribution destination to process the transaction.

例えば、トランザクション振分情報が、ハッシュ値の範囲に対して、振分先のトランザクション分散処理装置30が対応付けられた情報である場合を考える。この場合、トランザクション振分部22は、トランザクションキーに対してハッシュ関数を適用してハッシュ値を算出する。そして、トランザクション振分部22は、算出したハッシュ値を含む範囲に対して対応付けられたトランザクション分散処理装置30を、振分先として特定すればよい。  For example, consider a case where the transaction distribution information is information in which the distribution destination transaction distribution processing device 30 is associated with a range of hash values. In this case, the transaction distribution unit 22 calculates a hash value by applying a hash function to the transaction key. And the transaction distribution part 22 should just specify the transaction distribution processing apparatus 30 matched with the range containing the calculated hash value as a distribution destination.

管理データ振分部23は、管理データ振分情報をあらかじめ記憶している。ここで、管理データ振分情報は、トランザクション分散処理装置30のうち、違反検出キーに基づき管理データの振分先となるトランザクション分散処理装置30を特定するための情報である。例えば、管理データ振分情報は、違反検出キーから算出されるハッシュ値の範囲に対して、振分先となるトランザクション分散処理装置30が定められた情報であってもよい。  The management data distribution unit 23 stores management data distribution information in advance. Here, the management data distribution information is information for identifying the transaction distribution processing device 30 that is the distribution destination of the management data based on the violation detection key among the transaction distribution processing devices 30. For example, the management data distribution information may be information in which the transaction distribution processing device 30 that is the distribution destination is determined for the range of hash values calculated from the violation detection key.

また、管理データ振分部23は、トランザクションの振分先となるトランザクション分散処理装置30に対して、そのトランザクションにおける各違反検出キーについて、管理データの振分先を通知する。  Further, the management data distribution unit 23 notifies the distributed transaction processing apparatus 30 serving as a transaction distribution destination of the management data distribution destination for each violation detection key in the transaction.

例えば、管理データ振分情報が、ハッシュ値の範囲に対して、振分先のトランザクション分散処理装置30が対応付けられた情報である場合を考える。この場合、管理データ振分部23は、トランザクションにおける各違反検出キーに対してハッシュ関数を適用してハッシュ値を算出する。そして、管理データ振分部23は、算出したハッシュ値を含む範囲に対して対応付けられたトランザクション分散処理装置30を、振分先として特定すればよい。  For example, consider a case where the management data distribution information is information in which the distribution destination transaction distribution processing device 30 is associated with a range of hash values. In this case, the management data distribution unit 23 calculates a hash value by applying a hash function to each violation detection key in the transaction. And the management data distribution part 23 should just specify the transaction distribution processing apparatus 30 matched with the range containing the calculated hash value as a distribution destination.

また、管理データ振分部23は、データ保持装置10からの照会に応じて、反映が完了した処理対象データにおける違反検出キーに対応付けられた管理データの振分先を通知してもよい。この照会は、振分先のトランザクション分散処理装置30において、該当する管理データを削除するよう、データ保持装置10から要求するために行われる。  In addition, the management data distribution unit 23 may notify the distribution destination of the management data associated with the violation detection key in the processing target data that has been reflected in response to the inquiry from the data holding device 10. This inquiry is performed in order to request from the data holding device 10 to delete the corresponding management data in the transaction distribution processing device 30 that is the distribution destination.

次に、データ保持装置10の機能ブロック構成について説明する。  Next, the functional block configuration of the data holding device 10 will be described.

図3において、データ保持装置10は、データ保持部11と、データ反映部12とを有する。ここで、データ保持装置10が図2に示したハードウェア要素を備えるコンピュータ装置によって構成される場合、データ保持部11は、記憶装置1004によって構成される。また、データ反映部12は、ネットワークインタフェース1005と、ROM1003または記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。なお、データ保持装置10を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。  In FIG. 3, the data holding device 10 includes a data holding unit 11 and a data reflecting unit 12. Here, when the data holding device 10 is configured by a computer device including the hardware elements illustrated in FIG. 2, the data holding unit 11 is configured by the storage device 1004. The data reflection unit 12 includes a network interface 1005 and a CPU 1001 that reads a computer program and various data stored in the ROM 1003 or the storage device 1004 into the RAM 1002 and executes them. Note that the hardware configuration of each functional block constituting the data holding device 10 is not limited to the above-described configuration.

データ保持部11は、処理対象データを保持する。前述のように、本実施の形態では、処理対象データは、複数のデータ保持装置10に分散保持される。したがって、データ保持部11は、自装置に振り分けられた処理対象データを保持している。また、本実施の形態では、処理対象データは、仮想表の識別情報および仮想表における主キーの値からなる情報をキーとするKVSである。前述のように、どの処理対象データがどのデータ保持装置10に保持されるかについては、トランザクション分散処理装置30に保持されるデータ振分情報により、キーに基づいて一意に特定されるよう定められている。  The data holding unit 11 holds processing target data. As described above, in the present embodiment, the processing target data is distributed and held in the plurality of data holding devices 10. Therefore, the data holding unit 11 holds the processing target data distributed to the own device. Further, in the present embodiment, the processing target data is KVS using information including the identification information of the virtual table and the value of the primary key in the virtual table as a key. As described above, which data to be processed is held in which data holding device 10 is determined to be uniquely specified based on the key by the data distribution information held in the transaction distributed processing device 30. ing.

データ反映部12は、トランザクション分散処理装置30から送信されるトランザクションログの反映情報を、データ保持部11に反映させる。  The data reflection unit 12 causes the data holding unit 11 to reflect the transaction log reflection information transmitted from the transaction distributed processing device 30.

また、データ反映部12は、反映の対象となった処理対象データにおける違反検出キーに対応付けられた管理データの振分先となっているトランザクション分散処理装置30に対して、その管理データの削除を要求する。前述のように、データ反映部12は、アプリケーション装置20に照会することにより、該当する管理データの振分先となっているトランザクション分散処理装置30を特定可能である。もし、分散処理システム1に複数のアプリケーション装置20が含まれる場合、データ反映部12は、いずれかのアプリケーション装置20に対して照会を行えばよい。なお、データ反映部12は、後述の構成管理装置40に問い合わせることにより、照会可能な1つ以上のアプリケーション装置20を表す情報を得ることができる。また、データ反映部12は、複数のアプリケーション装置20のうち、所定のルールにしたがって照会先を選択してもよい。例えば、所定のルールとして、直近の照会先を記憶しておき、ラウンドロビンで照会先を変更するルールを適用してもよい。このように構成することにより、特定のアプリケーション装置20へデータ保持装置10からの照会が集中することを防止できる。  In addition, the data reflection unit 12 deletes the management data for the transaction distributed processing device 30 that is the distribution destination of the management data associated with the violation detection key in the processing target data to be reflected. Request. As described above, the data reflection unit 12 can identify the transaction distributed processing device 30 that is the distribution destination of the corresponding management data by making an inquiry to the application device 20. If the distributed processing system 1 includes a plurality of application devices 20, the data reflection unit 12 may make an inquiry to any application device 20. The data reflection unit 12 can obtain information representing one or more application devices 20 that can be inquired by making an inquiry to the configuration management device 40 described later. In addition, the data reflection unit 12 may select a reference destination among a plurality of application devices 20 according to a predetermined rule. For example, as a predetermined rule, a rule that stores the latest reference destination and changes the reference destination by round robin may be applied. With this configuration, it is possible to prevent the inquiries from the data holding device 10 from being concentrated on a specific application device 20.

次に、構成管理装置40の機能ブロック構成について説明する。  Next, the functional block configuration of the configuration management device 40 will be described.

図3において、構成管理装置40は、振分情報更新部41を有する。ここで、構成管理装置40が図2に示したハードウェア要素を備えるコンピュータ装置によって構成される場合、振分情報更新部41は、ネットワークインタフェース4005と、ROM4003または記憶装置4004に記憶されたコンピュータ・プログラムおよび各種データをRAM4002に読み込んで実行するCPU4001とによって構成される。なお、振分情報更新部41を構成する各機能ブロックのハードウェア構成は、上述の構成に限定されない。  In FIG. 3, the configuration management apparatus 40 includes a distribution information update unit 41. Here, when the configuration management device 40 is configured by a computer device including the hardware elements illustrated in FIG. 2, the distribution information update unit 41 includes a network interface 4005, a computer stored in the ROM 4003 or the storage device 4004. The CPU 4001 executes programs and various data read into the RAM 4002 and executed. Note that the hardware configuration of each functional block constituting the distribution information update unit 41 is not limited to the above-described configuration.

振分情報更新部41は、分散処理システム1におけるトランザクション分散処理装置30の構成変更に応じて、アプリケーション装置20におけるトランザクション振分情報および管理データ振分情報を更新する。トランザクション分散処理装置30の構成変更とは、例えば、新たなトランザクション分散処理装置30の追加、または、既存のトランザクション分散処理装置30の削除などを言う。その他、構成変更とは、このような追加または削除に限らず、各トランザクション分散処理装置30の負荷状況の変化などであってもよい。その場合、振分情報更新部41は、それぞれの負荷状況の変化に応じて、トランザクション振分情報や管理データ振分情報における各装置の担当範囲を変更してもよい。  The distribution information update unit 41 updates the transaction distribution information and the management data distribution information in the application device 20 in accordance with the configuration change of the transaction distributed processing device 30 in the distributed processing system 1. The configuration change of the transaction distributed processing device 30 means, for example, addition of a new transaction distributed processing device 30 or deletion of an existing transaction distributed processing device 30. In addition, the configuration change is not limited to such addition or deletion, but may be a change in the load status of each transaction distributed processing device 30. In that case, the distribution information update unit 41 may change the assigned range of each device in the transaction distribution information and the management data distribution information in accordance with the change in each load situation.

また、振分情報更新部41は、更新される管理データ振分情報に基づいて管理データが格納されるように、既に格納済みの管理データのトランザクション分散処理装置30間での移動を制御する。例えば、振分情報更新部41は、管理データ振分情報の更新内容を決定した後、トランザクション分散処理装置30間での管理データ移動を制御し、移動が完了すると、管理データ振分情報を更新するようにしてもよい。  In addition, the distribution information update unit 41 controls the movement of already stored management data between the transaction distribution processing devices 30 so that the management data is stored based on the updated management data distribution information. For example, the distribution information update unit 41 determines the update contents of the management data distribution information, then controls the management data movement between the transaction distributed processing devices 30, and updates the management data distribution information when the movement is completed. You may make it do.

また、振分情報更新部41は、分散処理システム1におけるデータ保持装置10の構成変更に応じて、トランザクション分散処理装置30におけるデータ振分情報を更新する。データ保持装置10の構成変更とは、例えば、新たなデータ保持装置10の追加、または、既存のデータ保持装置10の削除などを言う。その他、構成変更とは、このような追加または削除に限らず、各データ保持装置10の負荷状況の変化などであってもよい。その場合、振分情報更新部41は、それぞれの負荷状況の変化に応じて、データ振分情報における各装置の担当範囲を変更してもよい。  Further, the distribution information update unit 41 updates the data distribution information in the transaction distributed processing device 30 in accordance with the configuration change of the data holding device 10 in the distributed processing system 1. The configuration change of the data holding device 10 means, for example, addition of a new data holding device 10 or deletion of an existing data holding device 10. In addition, the configuration change is not limited to such addition or deletion, but may be a change in the load status of each data holding device 10. In that case, the distribution information update unit 41 may change the assigned range of each device in the data distribution information in accordance with the change in each load situation.

また、振分情報更新部41は、更新されるデータ振分情報に基づいて処理対象データが格納されるように、既に格納済みの処理対象データの各データ保持装置10間での移動を制御する。例えば、振分情報更新部41は、データ振分情報の更新内容を決定した後、データ保持装置10間での処理対象データの移動を制御し、移動が完了すると、データ振分情報を更新するようにしてもよい。  Further, the distribution information update unit 41 controls the movement of the already stored processing target data between the data holding devices 10 so that the processing target data is stored based on the updated data distribution information. . For example, the distribution information update unit 41 determines the update contents of the data distribution information, and then controls the movement of the processing target data between the data holding devices 10 and updates the data distribution information when the movement is completed. You may do it.

なお、例えば、振分情報更新部41は、分散処理システム1における各装置の構成に関する構成情報を保持しておき、その追加や削除を検出することにより、上述の各振分情報の更新処理を行ってもよい。  For example, the distribution information update unit 41 holds configuration information regarding the configuration of each device in the distributed processing system 1 and detects the addition or deletion thereof, thereby performing the above-described update processing of each distribution information. You may go.

(動作の説明)
以上のように構成された分散処理システム1の動作について、図面を参照して説明する。
(Description of operation)
The operation of the distributed processing system 1 configured as described above will be described with reference to the drawings.

まず、アプリケーション装置20のトランザクション振分動作を図4に示す。  First, the transaction distribution operation of the application apparatus 20 is shown in FIG.

図4では、まず、アプリケーション部21は、処理対象データに対するトランザクションを生成する(ステップS1)。前述のように、生成されたトランザクションには、トランザクションキーが設定される。  In FIG. 4, first, the application unit 21 generates a transaction for the processing target data (step S1). As described above, a transaction key is set in the generated transaction.

次に、トランザクション振分部22は、ステップS1で生成されたトランザクションの振分先となるトランザクション分散処理装置30を特定する(ステップS2)。前述のように、トランザクション振分部22は、トランザクション振分情報を参照することにより振分先の特定を行う。  Next, the transaction distribution unit 22 identifies the transaction distribution processing device 30 that is the distribution destination of the transaction generated in step S1 (step S2). As described above, the transaction distribution unit 22 specifies the distribution destination by referring to the transaction distribution information.

次に、管理データ振分部23は、ステップS1で生成されたトランザクションにおいて一意性制約違反を発生し得る各違反検出キーに基づいて、管理データの振分先となるトランザクション分散処理装置30を特定する(ステップS3)。前述のように、管理データ振分部23は、管理データ振分情報を参照することにより振分先の特定を行う。  Next, the management data distribution unit 23 identifies the transaction distribution processing device 30 that is the distribution destination of the management data based on each violation detection key that may cause a uniqueness constraint violation in the transaction generated in step S1. (Step S3). As described above, the management data distribution unit 23 specifies the distribution destination by referring to the management data distribution information.

次に、トランザクション振分部22は、ステップS2で特定されたトランザクションの振分先のトランザクション分散処理装置30に対して、ステップS1で生成されたトランザクションの処理を要求する。また、管理データ振分部23は、トランザクションの振分先のトランザクション分散処理装置30に対して、ステップS3で特定された各違反検出キーについての管理データの振分先を通知する(ステップS4)。  Next, the transaction distribution unit 22 requests the transaction distribution processing device 30 that is the distribution destination of the transaction identified in step S2 to process the transaction generated in step S1. Also, the management data distribution unit 23 notifies the transaction distribution processing device 30 that is the transaction distribution destination of the distribution destination of the management data for each violation detection key identified in step S3 (step S4). .

次に、トランザクション振分部22は、ステップS2で特定されたトランザクションの振分先のトランザクション分散処理装置30から、トランザクション処理の完了またはエラーを表す情報を受信する(ステップS5)。  Next, the transaction distribution unit 22 receives information indicating the completion or error of transaction processing from the transaction distribution processing device 30 that is the transaction distribution destination identified in step S2 (step S5).

以上で、アプリケーション装置20は、トランザクション振分動作を終了する。  Thus, the application apparatus 20 ends the transaction distribution operation.

次に、トランザクション分散処理装置30のトランザクション処理を図5に示す。  Next, transaction processing of the transaction distributed processing device 30 is shown in FIG.

図5では、まず、トランザクション処理部32は、アプリケーション装置20から、トランザクションの処理の要求を受信する。あわせて、トランザクション処理部32は、このトランザクションにおける各違反検出キーについて、その管理データの振分先となるトランザクション分散処理装置30を表す情報を受信する(ステップS11)。  In FIG. 5, first, the transaction processing unit 32 receives a transaction processing request from the application apparatus 20. In addition, for each violation detection key in this transaction, the transaction processing unit 32 receives information representing the transaction distribution processing device 30 that is the distribution destination of the management data (step S11).

次に、トランザクション処理部32は、このトランザクションにおける各違反検出キーについて、以下のステップS12〜S13を繰り返す。  Next, the transaction processing unit 32 repeats the following steps S12 to S13 for each violation detection key in this transaction.

ここでは、トランザクション処理部32は、該当する違反検出キーの振分先の管理データ分散保持部31に、該当する違反検出キーに対応付けられた他の管理データが保持されているか否かを判断する(ステップS12)。  Here, the transaction processing unit 32 determines whether or not other management data associated with the corresponding violation detection key is held in the management data distribution holding unit 31 to which the corresponding violation detection key is allocated. (Step S12).

ここで、該当する違反検出キーに対応付けられた他の管理データが保持されていない場合、トランザクション処理部32は、振分先の管理データ分散保持部31に、該当する違反検出キーに対応付けて管理データを保持させる(ステップS13)。  Here, when other management data associated with the relevant violation detection key is not held, the transaction processing unit 32 associates with the relevant violation detection key in the management data distribution holding unit 31 of the distribution destination. Management data is held (step S13).

そして、トランザクション処理部32は、他の違反検出キーがあれば(ステップS14でYes)、その違反検出キーについてステップS12からの処理を繰り返す。なお、前述のように、トランザクション処理部32は、ステップS13を実行後、該当する違反検出キーに関わる処理対象データに関する確認処理を、その振分先のデータ保持装置10に対して行ってもよい。そして、その場合、トランザクション処理部32は、確認処理を行ってから、次の違反検出キーについての処理を繰り返すようにしてもよい。  If there is another violation detection key (Yes in step S14), the transaction processing unit 32 repeats the processing from step S12 for the violation detection key. As described above, after executing step S13, the transaction processing unit 32 may perform confirmation processing on the processing target data related to the relevant violation detection key on the data holding device 10 that is the distribution destination. . In this case, the transaction processing unit 32 may repeat the process for the next violation detection key after performing the confirmation process.

そして、全ての違反検出キーについてその振分先での管理データの保持に成功した場合、トランザクション処理部32は、トランザクションログの先行記録を行う。詳細には、トランザクション処理部32は、このトランザクションの処理内容を表すトランザクションログを、トランザクションログ保持部33に先行記録する(ステップS15)。  If the management data is successfully held at the distribution destination for all violation detection keys, the transaction processing unit 32 records the transaction log in advance. Specifically, the transaction processing unit 32 records a transaction log representing the processing content of this transaction in advance in the transaction log holding unit 33 (step S15).

次に、トランザクション処理部32は、トランザクション処理の完了を、アプリケーション装置20に通知する(ステップS16)。  Next, the transaction processing unit 32 notifies the application device 20 of completion of the transaction processing (step S16).

一方、ステップS12で、いずれかの違反検出キーに対応付けられた管理データがその振分先に保持されていた場合、トランザクション処理部32は、ステップS11以前の状態に戻る(ステップS17)。具体的には、トランザクション処理部32は、それまでのステップS13の実行により振分先への保持に一旦成功した管理データを削除する処理等を行えばよい。  On the other hand, when the management data associated with one of the violation detection keys is held in the distribution destination in step S12, the transaction processing unit 32 returns to the state before step S11 (step S17). Specifically, the transaction processing unit 32 may perform a process of deleting management data that has once been successfully stored in the distribution destination by executing step S13 so far.

次に、トランザクション処理部32は、アプリケーション装置20に対して、エラーを通知する(ステップS18)。  Next, the transaction processing unit 32 notifies an error to the application apparatus 20 (step S18).

以上で、トランザクション分散処理装置30は、トランザクション処理を終了する。  Thus, the transaction distributed processing device 30 ends the transaction process.

次に、トランザクション分散処理装置30の遅延反映動作を図6に示す。  Next, the delay reflecting operation of the transaction distributed processing device 30 is shown in FIG.

図6では、まず、遅延反映部34は、トランザクションログ保持部33に保持されたトランザクションログについて、その処理対象データの振分先となるデータ保持装置10を特定する(ステップS31)。前述のように、遅延反映部34は、データ振分情報を参照することにより振分先の特定を行う。  In FIG. 6, first, the delay reflection unit 34 identifies the data holding device 10 that is the distribution destination of the processing target data for the transaction log held in the transaction log holding unit 33 (step S <b> 31). As described above, the delay reflection unit 34 specifies the distribution destination by referring to the data distribution information.

次に、遅延反映部34は、ステップS31で特定されたデータ保持装置10に対して、トランザクションログを処理対象データに反映させるための反映情報を送信する(ステップS32)。  Next, the delay reflection unit 34 transmits reflection information for reflecting the transaction log to the processing target data to the data holding device 10 identified in step S31 (step S32).

以上で、トランザクション分散処理装置30は、遅延反映動作を終了する。  Thus, the transaction distribution processing device 30 ends the delay reflection operation.

次に、データ保持装置10におけるデータ反映動作を図7に示す。  Next, the data reflection operation in the data holding device 10 is shown in FIG.

図7では、まず、データ反映部12は、トランザクション分散処理装置30から、トランザクションログを処理対象データに反映させるための反映情報を受信する(ステップS41)。  In FIG. 7, first, the data reflection unit 12 receives reflection information for reflecting the transaction log on the processing target data from the transaction distributed processing device 30 (step S41).

次に、データ反映部12は、受信した反映情報を、データ保持部11に反映させる(ステップS42)。  Next, the data reflection unit 12 reflects the received reflection information on the data holding unit 11 (step S42).

次に、データ反映部12は、反映の対象となった処理対象データにおける違反検出キーに基づいて、その管理データの振分先となっているトランザクション分散処理装置30を特定する(ステップS43)。前述のように、振分先のトランザクション分散処理装置30は、アプリケーション装置20に照会することにより特定可能である。  Next, the data reflection unit 12 specifies the transaction distributed processing device 30 that is the distribution destination of the management data based on the violation detection key in the processing target data to be reflected (step S43). As described above, the distributed transaction processing apparatus 30 can be identified by making an inquiry to the application apparatus 20.

次に、データ反映部12は、ステップS43で特定されたトランザクション分散処理装置30に対して、該当する違反検出キーに対応付けられた管理データを削除するよう要求する(ステップS44)。  Next, the data reflection unit 12 requests the transaction distribution processing device 30 specified in step S43 to delete the management data associated with the corresponding violation detection key (step S44).

以上で、データ保持装置10は、データ反映動作を終了する。  Thus, the data holding device 10 ends the data reflection operation.

次に、上述のステップS44で管理データの削除を要求されたトランザクション分散処理装置30の管理データ削除動作を図8に示す。  Next, FIG. 8 shows the management data deletion operation of the transaction distributed processing device 30 requested to delete the management data in step S44 described above.

図8では、まず、トランザクション分散処理装置30は、データ保持装置10から、管理データの削除要求を受信する(ステップS51)。  In FIG. 8, first, the transaction distributed processing device 30 receives a management data deletion request from the data holding device 10 (step S51).

次に、管理データ分散保持部31は、該当する違反検出キーに対応付けられた管理データを削除する(ステップS52)。  Next, the management data distribution holding unit 31 deletes the management data associated with the corresponding violation detection key (step S52).

以上で、トランザクション分散処理装置30は、管理データ削除動作を終了する。  Thus, the transaction distributed processing device 30 ends the management data deletion operation.

次に、構成管理装置40が、分散処理システム1の構成を管理する動作を図9に示す。  Next, an operation in which the configuration management apparatus 40 manages the configuration of the distributed processing system 1 is shown in FIG.

図9において、まず、データ保持装置10の構成変更があった場合について説明する(ステップS61で「データ保持装置」)。この場合、振分情報更新部41は、各トランザクション分散処理装置30におけるデータ振分情報の更新内容を決定する(ステップS62)。  In FIG. 9, the case where the configuration of the data holding device 10 is changed will be described first (“data holding device” in step S61). In this case, the distribution information update unit 41 determines the update contents of the data distribution information in each transaction distributed processing device 30 (step S62).

次に、振分情報更新部41は、ステップS62で決定された更新内容に基づいて、既に格納されている処理対象データの移動を行うよう、各データ保持装置10を制御する(ステップS63)。  Next, the distribution information update unit 41 controls each data holding device 10 to move the data to be processed already stored based on the update content determined in step S62 (step S63).

次に、振分情報更新部41は、各トランザクション分散処理装置30におけるデータ振分情報を更新する(ステップS64)。  Next, the distribution information update unit 41 updates the data distribution information in each transaction distributed processing device 30 (step S64).

なお、振分情報更新部41は、ステップS63およびS64の処理を、不可分な処理として実行する。例えば、ステップS63またはS64の処理中にデータ振分情報に対する参照を行う他の処理は、ステップS63およびS64の完了を待ち合わせるようにする。  The distribution information update unit 41 executes the processes of steps S63 and S64 as inseparable processes. For example, other processes that refer to the data distribution information during the process of step S63 or S64 wait for the completion of steps S63 and S64.

また、トランザクション分散処理装置30の構成変更があった場合について説明する(ステップS61で「トランザクション分散処理装置」)。この場合、振分情報更新部41は、アプリケーション装置20におけるトランザクション振分情報および管理データ振分情報の更新内容を決定する(ステップS65)。  A case where the configuration of the transaction distributed processing device 30 is changed will be described (“transaction distributed processing device” in step S61). In this case, the distribution information update unit 41 determines the update contents of the transaction distribution information and the management data distribution information in the application device 20 (step S65).

次に、振分情報更新部41は、ステップS65で決定された管理データ振分情報の更新内容に基づいて、既に格納されている管理データの移動を行うよう、各トランザクション分散処理装置30を制御する(ステップS66)。  Next, the distribution information update unit 41 controls each transaction distribution processing device 30 to move the already stored management data based on the update contents of the management data distribution information determined in step S65. (Step S66).

次に、振分情報更新部41は、アプリケーション装置20のトランザクション振分情報および管理データ振分情報を更新する(ステップS67)。  Next, the distribution information update unit 41 updates the transaction distribution information and management data distribution information of the application device 20 (step S67).

なお、振分情報更新部41は、ステップS66およびS67の処理を、不可分な処理として実行する。例えば、ステップS66またはS67の処理中にトランザクション振分情報または管理データ振分情報に対する参照を行う他の処理は、ステップS66およびS67の完了を待ち合わせるようにする。  The distribution information update unit 41 executes the processes of steps S66 and S67 as an inseparable process. For example, other processes that refer to transaction distribution information or management data distribution information during the process of step S66 or S67 wait for the completion of steps S66 and S67.

以上で、構成管理装置40は、構成管理動作を終了する。  Thus, the configuration management apparatus 40 ends the configuration management operation.

(本発明の実施の形態の具体例1)
次に、本実施の形態について1つ目の具体例(具体例1)を示す。なお、この具体例1では、データ保持装置10を、S層に配置されたコンピュータまたはノードSと呼ぶものとする。また、アプリケーション装置20を、P層に配置されたコンピュータまたはノードPと呼ぶものとする。また、トランザクション分散処理装置30を、T層に配置されたコンピュータまたはノードTと呼ぶものとする。図10は、具体例1の構成を模式的に示す図である。図10において、この分散処理システム1は、P層に1つのノードP1と、T層に3つのノードT1〜T3と、S層に2つのノードS1〜S2とを備える。なお、構成管理装置40については、図示を省略している。
(Specific example 1 of the embodiment of the present invention)
Next, a first specific example (specific example 1) of the present embodiment will be described. In the specific example 1, the data holding device 10 is referred to as a computer or node S arranged in the S layer. Further, the application device 20 is referred to as a computer or a node P arranged in the P layer. Further, the transaction distributed processing device 30 is referred to as a computer or node T arranged in the T layer. FIG. 10 is a diagram schematically illustrating the configuration of the first specific example. In FIG. 10, the distributed processing system 1 includes one node P1 in the P layer, three nodes T1 to T3 in the T layer, and two nodes S1 to S2 in the S layer. The configuration management device 40 is not shown.

また、この具体例1では、トランザクション間で一意性制約違反が発生し得る違反検出キーとして、仮想表の主キーが適用される例について説明する。この場合、ノードP1の管理データ振分情報は、仮想表の主キーに基づく管理データ振分情報となる。また、ノードT1〜T3の管理データ分散保持部31は、仮想表の主キーについての管理データを保持することになる。  In this specific example 1, an example in which the primary key of a virtual table is applied as a violation detection key that may cause a uniqueness constraint violation between transactions will be described. In this case, the management data distribution information of the node P1 is management data distribution information based on the primary key of the virtual table. Further, the management data distribution and holding unit 31 of the nodes T1 to T3 holds management data for the primary key of the virtual table.

また、この具体例1では、処理対象データは、商品の注文および請求に関わる仮想表Aおよび仮想表Bを表すKVSであることを想定する。図11に、仮想表Aおよび仮想表B、ならびに、その実体としてのKVSを示す。仮想表Aでは、主キーとして“請求書番号”の列が設定されている。また、仮想表Bでは、主キーとして“注文番号”が設定されている。なお、図11のKVSでは、仮想表Bに対応するKVペアに、主キーではない“請求書番号”の指定によりアクセスできるよう、“索引_表B_”から始まるキーに対応付けて、該当するKVペアへのインデックスが保持されている。また、これらの処理対象データ(KVS)の各KVペアは、図12に示すように、キーによって一意に特定されるノードS1またはS2に分散保持される。  Further, in this specific example 1, it is assumed that the processing target data is KVS representing the virtual table A and the virtual table B related to the ordering and billing of the product. FIG. 11 shows virtual table A and virtual table B, and KVS as an entity thereof. In the virtual table A, a column of “invoice number” is set as the primary key. In the virtual table B, “order number” is set as the primary key. In the KVS in FIG. 11, the KV pair corresponding to the virtual table B corresponds to the key starting with “index_table B_” so that it can be accessed by specifying “invoice number” which is not the primary key. An index to the KV pair is held. Further, as shown in FIG. 12, each KV pair of the processing target data (KVS) is distributed and held in the node S1 or S2 uniquely specified by the key.

また、この具体例1では、トランザクション処理の単位が、「各仮想表において“請求書番号”列が同じ値毎」と規定されているとする。この場合、“請求書番号”列が、トランザクションキーとなる。以降、“請求書番号”で識別されるトランザクション処理単位を、“トランザクションクラス1”と呼ぶとする。このとき、“トランザクションクラス1”が、P層において以下のように定義されていることを想定する。
・「トランザクションクラス1」は、仮想表Aの“請求書番号”列から生成される。
・「トランザクションクラス1」は、仮想表Bの“請求書番号”列から生成される。
Further, in this specific example 1, it is assumed that the unit of transaction processing is defined as “each“ invoice number ”column has the same value in each virtual table”. In this case, the “invoice number” column is the transaction key. Hereinafter, a transaction processing unit identified by “invoice number” is referred to as “transaction class 1”. At this time, it is assumed that “transaction class 1” is defined in the P layer as follows.
Transaction class 1” is generated from the “invoice number” column of virtual table A.
Transaction class 1” is generated from the “invoice number” column of virtual table B.

ここで、トランザクションキーを請求書番号“10008”とする以下2つのトランザクションが、同時に実行されようとしている場合を考える。
<トランザクション1>
・仮想表Aに、「請求書番号:10008、請求先:佐藤、請求日:2013/07/01」を挿入
・仮想表Bに、「注文番号:00010、品名:炊飯器、請求書番号:10008」を挿入
<トランザクション2>
・仮想表Aに、「請求書番号:10008、請求先:田中、請求日:2013/07/01」を挿入
・仮想表Bに、「注文番号:00010、品名:ラジオ、請求書番号:10008」を挿入
この場合、ノードP1のトランザクション振分部22は、トランザクション振分情報として、トランザクションキーから算出されるハッシュ値の範囲に、その振分先となるノードTが対応付けられた情報を保持する。
Here, consider the case where the following two transactions having the transaction key as the invoice number “10008” are about to be executed simultaneously.
<Transaction 1>
In the virtual table A, “Invoice number: 10008, Billing address: Sato, Invoice date: 2013/07/01” is inserted. • In the virtual table B, “Order number: 00010, Product name: Rice cooker, Invoice number: Insert "10008"<transaction2>
In the virtual table A, “Invoice number: 10008, Billing address: Tanaka, Billing date: 2013/07/01” is inserted. • In the virtual table B, “Order number: 00010, Product name: Radio, Invoice number: 10008” In this case, the transaction distribution unit 22 of the node P1 holds, as the transaction distribution information, information in which the node T that is the distribution destination is associated with the hash value range calculated from the transaction key To do.

また、ノードTの遅延反映部34は、データ振分情報として、「仮想表名+主キーの値」から算出されるハッシュ値の範囲に、その振分先となるノードSが対応付けられた情報を保持する。なお、ここでは、ノードT1〜T3には、同一のデータ振分情報が保持されるものとする。また、「X+Y」とは、XおよびYからなる情報を表すものとする。  Further, the delay reflecting unit 34 of the node T associates the node S as the distribution destination with the range of the hash value calculated from “virtual table name + primary key value” as the data distribution information. Keep information. Here, it is assumed that the same data distribution information is held in the nodes T1 to T3. “X + Y” represents information consisting of X and Y.

このとき、T層における各トランザクションの振分先は、ノードP1におけるトランザクション振分情報に基づいて、トランザクションキーである請求書番号“10008”から一意に決定される。また、処理対象データとしてのKVペアのS層における振分先は、ノードTにおけるデータ振分情報に基づいて、「仮想表名+主キーの値」から一意に決定される。  At this time, the distribution destination of each transaction in the T layer is uniquely determined from the invoice number “10008” which is a transaction key based on the transaction distribution information in the node P1. Further, the distribution destination in the S layer of the KV pair as the processing target data is uniquely determined from “virtual table name + primary key value” based on the data distribution information in the node T.

また、このとき、トランザクションの振分先となったT層のノードは、各トランザクションについてトランザクションログを先行記録(WAL:Write Ahead Logging)することによりトランザクション処理を完了する。以下、先行記録されたトランザクションログも、WALとも記載する。また、処理対象データの振分先となったS層のノードは、トランザクション処理とは非同期に、処理対象データにWALを反映することになる。そのため、トランザクション1およびトランザクション2が実行されることにより、仮想表Aにおいて主キー制約違反(“請求書番号”の重複)が発生する可能性がある。また、仮想表Bにおいて主キー制約違反(“注文番号”の重複)が発生する可能性がある。  At this time, the node in the T layer, which is the transaction distribution destination, completes the transaction processing by recording the transaction log in advance (WAL: Write Ahead Logging) for each transaction. Hereinafter, the transaction log recorded in advance is also referred to as WAL. Further, the node of the S layer that is the distribution destination of the processing target data reflects WAL in the processing target data asynchronously with the transaction processing. Therefore, execution of transaction 1 and transaction 2 may cause a primary key constraint violation (duplication of “invoice number”) in virtual table A. Further, in the virtual table B, a primary key constraint violation (duplication of “order number”) may occur.

そこで、この具体例1では、一意性制約違反が発生し得る「仮想表A+主キーの値」と、「仮想表B+主キーの値」とが違反検出キーとなる。そこで、ノードP1の管理データ振分部23は、主キーに関わる管理データ振分情報を記憶しておく。具体的には、主キーに関わる管理データ振分情報は、「仮想表名+主キーの値」から算出されるハッシュ値の範囲に、その振分先のノードTが対応付けられた情報となる。これにより、管理データの振分先となるノードTは、ノードP1の管理データ振分情報に基づいて、一意に決定される。  Therefore, in this specific example 1, “virtual table A + primary key value” and “virtual table B + primary key value”, which may cause a uniqueness constraint violation, are the violation detection keys. Therefore, the management data distribution unit 23 of the node P1 stores management data distribution information related to the primary key. Specifically, the management data distribution information related to the primary key includes information in which the distribution destination node T is associated with the range of hash values calculated from “virtual table name + primary key value”. Become. As a result, the node T that is the distribution destination of the management data is uniquely determined based on the management data distribution information of the node P1.

また、この具体例1において生成される主キーについての管理データを、図13に示す。なお、図13の左図は、主キーについての管理データを模式的に表形式で示しているが、右図のように、その実体は、KVSである。図13の左図において、各行が示す管理データは、「仮想表名」および「主キーの値」に対して、「トランザクションキー」が対応付けられた情報となっている。また、図13の右図において、各行が示す管理データのKVペアは、「仮想表名+主キーの値」をキーとして、「仮想表名、主キー、トランザクションキー」を含むデータが対応付けられた情報となっている。この場合、「仮想表名+主キーの値」をキーとする管理データのKVペアは、その「仮想表名+主キーの値」をキーとする処理対象データのKVペアが、ノードSへの格納待ちとなっていることを表していると言える。  Further, FIG. 13 shows the management data for the primary key generated in this specific example 1. In addition, although the left figure of FIG. 13 has shown the management data about a primary key typically with a table format, as the right figure, the substance is KVS. In the left diagram of FIG. 13, the management data indicated by each row is information in which “transaction key” is associated with “virtual table name” and “primary key value”. In the right diagram of FIG. 13, the KV pair of management data indicated by each row is associated with data including “virtual table name, primary key, transaction key” using “virtual table name + primary key value” as a key. Information. In this case, the management data KV pair whose key is “virtual table name + primary key value” is the KV pair of the processing target data whose key is “virtual table name + primary key value”. It can be said that it is waiting for storage.

また、これらの主キーについての管理データは、この具体例において、図14に示すように、ノードT1〜T3に分散されて保持される。どの管理データがどのノードTに保持されるかについては、前述のように、ノードP1の管理データ振分情報に基づいて決定される。  Further, in this specific example, the management data for these primary keys is distributed and held in nodes T1 to T3 as shown in FIG. Which management data is held in which node T is determined based on the management data distribution information of the node P1 as described above.

以上のように構成された具体例1における分散処理システム1の動作について説明する。  The operation of the distributed processing system 1 in the specific example 1 configured as described above will be described.

まず、ノードP1において、アプリケーション部21は、上述のトランザクション1を生成する(図4のステップS1)。  First, in the node P1, the application unit 21 generates the above-described transaction 1 (step S1 in FIG. 4).

このとき、このトランザクション1のトランザクションキーは、請求書番号“10008”である。そこで、トランザクション振分部22は、このトランザクション1の振分先を、トランザクション振分情報を参照することにより特定する(ステップS2)。具体的には、トランザクション振分部22は、請求書番号“10008”のハッシュ値を算出し、トランザクション振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードTを特定すればよい。ここでは、ノードT1が特定されたとする。  At this time, the transaction key of the transaction 1 is the invoice number “10008”. Therefore, the transaction distribution unit 22 specifies the distribution destination of the transaction 1 by referring to the transaction distribution information (step S2). Specifically, the transaction distribution unit 22 may calculate the hash value of the invoice number “10008” and specify the node T associated with the range including the calculated hash value in the transaction distribution information. . Here, it is assumed that the node T1 is specified.

また、トランザクション1における1つ目の仮想表Aへの挿入処理で一意性制約違反が発生し得る違反検出キーは、仮想表Aにおける請求項番号、すなわち、“表A_10008”である。また、2つ目の仮想表Bへの挿入処理で一意性制約違反が発生し得る違反検出キーは、仮想表Bにおける注文番号、すなわち、“表B_00010”である。  Further, the violation detection key that may cause a uniqueness constraint violation in the first virtual table A insertion processing in transaction 1 is the claim number in virtual table A, that is, “Table A — 10008”. The violation detection key that may cause a uniqueness constraint violation in the second insertion process to the virtual table B is the order number in the virtual table B, that is, “Table B — 0010”.

そこで、管理データ振分部23は、違反検出キー“表A_10008”に関わる管理データの振分先を、管理データ振分情報を参照することにより特定する。具体的には、管理データ振分部23は、“表A_10008”のハッシュ値を算出し、管理データ振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードTを特定すればよい。ここでは、ノードT2が特定されたとする。同様に、管理データ振分部23は、違反検出キー“表B_00010”に対応する管理データの振分先を、管理データ振分情報を参照することにより特定する。ここでは、ノードT3であったとする(ステップS3)。  Therefore, the management data distribution unit 23 specifies the distribution destination of the management data related to the violation detection key “Table A_10008” by referring to the management data distribution information. Specifically, the management data distribution unit 23 may calculate the hash value of “Table A_10008” and specify the node T associated with the range including the calculated hash value in the management data distribution information. . Here, it is assumed that the node T2 is specified. Similarly, the management data distribution unit 23 specifies the distribution destination of the management data corresponding to the violation detection key “Table B — 0010” by referring to the management data distribution information. Here, it is assumed that the node is T3 (step S3).

次に、トランザクション振分部22は、このトランザクション1の振分先のノードT1に対して、トランザクション1の処理を要求する。また、管理データ振分部23は、ノードT1に対して、違反検出キー“表A_10008”についての管理データの振分先としてノードT2を通知する。また、管理データ振分部23は、ノードT1に対して、違反検出キー“表B_00010”についての管理データの振分先としてノードT3を通知する(ステップS4)。  Next, the transaction allocating unit 22 requests the processing of the transaction 1 to the node T1 to which the transaction 1 is allocated. In addition, the management data distribution unit 23 notifies the node T1 of the node T2 as a management data distribution destination for the violation detection key “Table A_10008”. Also, the management data distribution unit 23 notifies the node T1 of the node T3 as a management data distribution destination for the violation detection key “Table B — 0010” (step S4).

次に、トランザクション1の処理を要求されたノードT1は、次のように動作する。ノードT1のトランザクション処理部32は、1つ目の違反検出キー“表A_10008”についての管理データを、その振分先として通知されたノードT2の管理データ分散保持部31に保持させることを試みる。  Next, the node T1 requested to process the transaction 1 operates as follows. The transaction processing unit 32 of the node T1 attempts to hold the management data for the first violation detection key “Table A_10008” in the management data distribution holding unit 31 of the node T2 notified as the distribution destination.

ここでは、ノードT2の管理データ分散保持部31に、“表A_10008”をキーとする他の管理データ(KVペア)が保持されていなかったとする(図5のステップS12でNo)。  Here, it is assumed that other management data (KV pair) having “Table A_10008” as a key is not held in the management data distribution holding unit 31 of the node T2 (No in step S12 in FIG. 5).

この場合、ノードT1のトランザクション処理部32は、ノードT2の管理データ分散保持部31に、“表A_10008”をキーとして、トランザクションキー“10008”を含むデータを対応付けたKVペアを保持させる(ステップS13)。  In this case, the transaction processing unit 32 of the node T1 causes the management data distribution and holding unit 31 of the node T2 to hold a KV pair in which data including the transaction key “10008” is associated with “Table A — 10008” as a key (Step S1). S13).

ここで、“表A_10008”をキーとする管理データ(KVペア)のT層での保持に成功することは、次のことを示している。すなわち、この保持の成功は、“表A_10008”をキーとする処理対象データ(KVペア)がS層のデータ保持部11(KVS)への格納待ちとなったことを、後続のトランザクションに対して示している。また、この保持の成功は、直前までに、S層のデータ保持部11(KVS)への格納を待つ“表A_10008”をキーとする他の処理対象データ(KVペア)が存在しなかったことを示している。  Here, the success in holding the management data (KV pair) in the T layer with “Table A — 10008” as a key indicates the following. In other words, the success of the retention indicates that the processing target data (KV pair) with “Table A — 10008” as a key is waiting to be stored in the data retention unit 11 (KVS) of the S layer for subsequent transactions. Show. In addition, the success of this holding was that there was no other processing target data (KV pair) with “Table A — 10008” as a key waiting for storage in the data holding unit 11 (KVS) of the S layer until just before. Is shown.

次に、ノードT1のトランザクション処理部32は、S層に、更新反映済の“表A_10008”をキーとする処理対象データ(KVペア)が存在しないことを確認してもよい。これにより、ノードT1のトランザクション処理部32は、一意性制約違反(主キーの重複)が発生しないことを確実にする。なお、この確認処理において、S層のどのノードが“表A_10008”をキーとする処理対象データを保持しているかは、データ振分情報を参照することにより特定可能である。  Next, the transaction processing unit 32 of the node T1 may confirm that there is no processing target data (KV pair) using “Table A_10008” that has been updated and reflected as a key in the S layer. Thereby, the transaction processing unit 32 of the node T1 ensures that a uniqueness constraint violation (duplicate primary key) does not occur. In this confirmation process, it can be specified by referring to the data distribution information which node in the S layer holds the processing target data with “Table A — 10008” as a key.

次に、ノードT1のトランザクション処理部32は、2つ目の違反検出キー“表B_00010”についても、上述と同様にステップS12〜S13を実行する。  Next, the transaction processing unit 32 of the node T1 executes steps S12 to S13 in the same manner as described above for the second violation detection key “Table B — 0010”.

すなわち、トランザクション処理部32は、2つ目の違反検出キー“表B_00010”についての管理データを、その振分先として通知されたノードT3に保持させることを試みる。  In other words, the transaction processing unit 32 tries to hold the management data for the second violation detection key “Table B — 0010” in the node T3 that is notified as the distribution destination.

ここでは、ノードT3の管理データ分散保持部31に、“表B_00010”をキーとする他の管理データ(KVペア)が保持されていなかったとする(ステップS12でNo)。  Here, it is assumed that other management data (KV pair) having “Table B — 0010” as a key is not held in the management data distribution holding unit 31 of the node T3 (No in step S12).

この場合、ノードT1のトランザクション処理部32は、ノードT3の管理データ分散保持部31に、“表B_00010”をキーとして、トランザクションキー“10008”を含むデータを対応付けたKVペアを保持させる(ステップS13)。  In this case, the transaction processing unit 32 of the node T1 causes the management data distribution holding unit 31 of the node T3 to hold a KV pair in which data including the transaction key “10008” is associated with “Table B — 0010” as a key (Step S1). S13).

前述のように、“表B_00010”をキーとする管理データ(KVペア)のT層での保持に成功することは、次のことを示している。すなわち、この保持の成功は、“表B_00010”をキーとする処理対象データ(KVペア)がS層のデータ保持部11(KVS)への格納待ちとなったことを、後続のトランザクションに対して示している。また、この保持の成功は、直前までに、S層のデータ保持部11(KVS)への格納を待つ“表B_00010”をキーとする他の処理対象データ(KVペア)が存在しなかったことを示している。  As described above, the success in holding the management data (KV pair) using “Table B — 0010” as a key in the T layer indicates the following. In other words, the success of the retention indicates that the processing target data (KV pair) using “Table B — 0010” as a key is waiting to be stored in the data retention unit 11 (KVS) of the S layer for the subsequent transaction. Show. Also, the success of this retention was that there was no other processing target data (KV pair) using “Table B — 0010” as a key waiting for storage in the data retention unit 11 (KVS) of the S layer. Is shown.

次に、ノードT1のトランザクション処理部32は、S層に、更新反映済の“表B_00010”をキーとする処理対象データ(KVペア)が存在しないことを確認してもよい。これにより、トランザクション処理部32は、一意性制約違反(主キーの重複)が発生しないことを確実にする。なお、この確認処理において、S層のどのノードが“表B_00010”をキーとする処理対象データを保持しているかは、データ振分情報を参照することにより特定可能である。  Next, the transaction processing unit 32 of the node T1 may confirm that there is no processing target data (KV pair) having “Table B — 0010” updated as a key in the S layer. Thereby, the transaction processing unit 32 ensures that a uniqueness constraint violation (duplicate primary key) does not occur. In this confirmation process, it can be specified by referring to the data distribution information which node of the S layer holds the data to be processed with “Table B — 0010” as a key.

このようにして、ノードT1は、トランザクション1において一意性制約違反が発生し得る違反検出キー“表A_10008”および“表B_00010”について、T層での管理データの保持に成功した。これにより、トランザクション1によって主キーの重複が発生しないことが確認されたことになる。  In this way, the node T1 succeeded in holding management data in the T layer for the violation detection keys “Table A_10008” and “Table B_00010” that may cause a uniqueness constraint violation in the transaction 1. As a result, it is confirmed that the primary key is not duplicated by the transaction 1.

そこで、ノードT1のトランザクション処理部32は、トランザクション1のWALを、自装置のトランザクションログ保持部33に先行記録する(ステップS15)。  Therefore, the transaction processing unit 32 of the node T1 records the WAL of the transaction 1 in advance in the transaction log holding unit 33 of the own device (step S15).

そして、トランザクション処理部32は、トランザクション1の完了を、ノードP1に通知する(ステップS16)。  Then, the transaction processing unit 32 notifies the completion of the transaction 1 to the node P1 (Step S16).

以上で、トランザクション1の処理が完了する。なお、トランザクション処理部32は、トランザクションにおける各違反検出キーについての管理データの保持を確認する順序について、あらかじめ定められた所定のルールにしたがって行えばよい。例えば、トランザクション処理部32は、違反検出キーを文字列として評価し、その昇順で管理データの保持の確認処理を行ってもよい。  Thus, the transaction 1 is completed. The transaction processing unit 32 may perform the order of confirming the holding of the management data for each violation detection key in the transaction according to a predetermined rule. For example, the transaction processing unit 32 may evaluate the violation detection key as a character string, and perform management data holding confirmation processing in ascending order.

上記のトランザクション1の処理とは非同期に、ノードT1の遅延反映部34は、次のように、トランザクションログ保持部33に記録されたトランザクション1のWALの反映を行う。  Asynchronously with the transaction 1 processing, the delay reflection unit 34 of the node T1 reflects the WAL of the transaction 1 recorded in the transaction log holding unit 33 as follows.

まず、遅延反映部34は、トランザクション1のWALが示す1つ目の処理における違反検出キー“表A_10008”に基づいて、処理対象データの振分先のノードSを、データ振分情報を参照することにより特定する(図6のステップS31)。具体的には、遅延反映部34は、“表A_10008”のハッシュ値を算出する。そして、遅延反映部34は、データ振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードSを特定すればよい。ここでは、ノードS2であったとする。  First, the delay reflection unit 34 refers to the data distribution information for the node S that is the distribution destination of the processing target data based on the violation detection key “Table A — 10008” in the first process indicated by the WAL of the transaction 1. This is specified (step S31 in FIG. 6). Specifically, the delay reflection unit 34 calculates the hash value of “Table A_10008”. Then, the delay reflection unit 34 may specify the node S associated with the range including the calculated hash value in the data distribution information. Here, it is assumed that the node is S2.

次に、遅延反映部34は、ノードS2に対して、仮想表Aへの挿入処理の反映情報を送信する(ステップS32)。  Next, the delay reflection unit 34 transmits the reflection information of the insertion process to the virtual table A to the node S2 (step S32).

次に、ノードS2のデータ反映部12は、反映情報に基づいて、データ保持部11に、“表A_10008”をキーとする処理対象データ(KVペア)を挿入する(図7のステップS42)。  Next, the data reflection unit 12 of the node S2 inserts processing target data (KV pair) using “Table A_10008” as a key into the data holding unit 11 based on the reflection information (step S42 in FIG. 7).

次に、データ反映部12は、反映した処理対象データにおける違反検出キー“表A_10008”についての管理データの振分先を、ノードP1に照会することにより特定する(ステップS43)。ここでは、ノードT2が特定される。  Next, the data reflection unit 12 specifies the allocation destination of the management data for the violation detection key “Table A_10008” in the reflected processing target data by inquiring the node P1 (step S43). Here, the node T2 is specified.

次に、データ反映部12は、ノードT2に対して、違反検出キー“表A_10008”に対応付けられた管理データの削除を要求する(ステップS44)。  Next, the data reflection unit 12 requests the node T2 to delete the management data associated with the violation detection key “Table A_10008” (step S44).

これにより、ノードT2の管理データ分散保持部31は、違反検出キー“表A_10008”をキーとする管理データ(KVペア)を削除する。  Accordingly, the management data distribution holding unit 31 of the node T2 deletes the management data (KV pair) using the violation detection key “Table A_10008” as a key.

同様に、ノードT1の遅延反映部34は、トランザクション1のWALが示す2つ目の挿入処理についても、その処理対象データの振分先として、例えばノードS1を特定し、反映情報を送信する。そして、反映情報を受信したノードS1は、上記と略同様に動作して、データ保持部11に、“表B_00010”をキーとする処理対象データを挿入する。そして、ノードS1からの要求により、ノードT3は、管理データ分散保持部31から、違反検出キー“表B_00010”をキーとする管理データ(KVペア)を削除する。  Similarly, for the second insertion process indicated by WAL of transaction 1, the delay reflection unit 34 of the node T1 specifies, for example, the node S1 as the distribution destination of the processing target data, and transmits the reflection information. The node S1 that has received the reflection information operates in substantially the same manner as described above, and inserts processing target data having “Table B — 0010” as a key into the data holding unit 11. In response to a request from the node S1, the node T3 deletes the management data (KV pair) using the violation detection key “Table B — 0010” as a key from the management data distribution holding unit 31.

以上で、トランザクション1のWALのS層への反映が終了する。  This completes the reflection of the transaction 1 to the S layer of the WAL.

ここで、ノードT1におけるトランザクション1の処理に並行して、ノードP1がトランザクション2を生成し、ノードT2に対してその処理を要求したことを想定する。トランザクション2において、一意性違反が発生し得る違反検出キーは、トランザクション1と同様に、“表A_10008”および“表B_00010”である。上述と同様に、違反検出キー“表A_10008”の管理データの振分先はノードT2となり、違反検出キー“表B_00010”の管理データの振分先はノードT3となる。  Here, it is assumed that the node P1 generates the transaction 2 and requests the node T2 for the processing in parallel with the processing of the transaction 1 at the node T1. In transaction 2, the violation detection keys that may cause uniqueness violations are “Table A_10008” and “Table B_00010”, as in transaction 1. Similarly to the above, the allocation destination of the management data of the violation detection key “Table A_10008” is the node T2, and the allocation destination of the management data of the violation detection key “Table B_00010” is the node T3.

この場合、ノードT2の管理データ分散保持部31には、上述のトランザクション1の処理により既に違反検出キー“表A_10008”をキーする管理データ(KVペア)が保持されている。したがって、ノードT2のトランザクション処理部32は、違反検出キー“表A_10008”をキーとする管理データ(KVペア)のT層での保持に失敗する。  In this case, the management data distribution and holding unit 31 of the node T2 has already held the management data (KV pair) keying the violation detection key “Table A_10008” by the processing of the transaction 1 described above. Accordingly, the transaction processing unit 32 of the node T2 fails to hold the management data (KV pair) using the violation detection key “Table A_10008” as a key in the T layer.

あるいは、トランザクション2の処理中に、上述のトランザクション1のWALの反映が非同期に進行しているとする。そのため、ノードT2の管理データ分散保持部31から、トランザクション1による“表A_10008”をキーとする管理データ(KVペア)が既に削除されていることも考えられる。この場合、ノードT2のトランザクション処理部32は、違反検出キー“表A_10008”をキーとする管理データ(KVペア)のT層での保持に成功する。  Alternatively, it is assumed that the reflection of WAL of the above-described transaction 1 proceeds asynchronously during the processing of transaction 2. For this reason, it is also conceivable that the management data (KV pair) with “table A_10008” as a key by transaction 1 has already been deleted from the management data distribution holding unit 31 of the node T2. In this case, the transaction processing unit 32 of the node T2 succeeds in holding the management data (KV pair) using the violation detection key “Table A_10008” as a key in the T layer.

しかしながら、トランザクション1のWALの反映がまだ完了していないとする。そのため、ノードT3の管理データ分散保持部31には、トランザクション1に基づく“表B_00010”をキーとする管理データ(KVペア)が、依然として保持されていたとする。この場合、ノードT2のトランザクション処理部32は、違反検出キー“表B_00010”をキーとする管理データ(KVペア)のT層での保持に失敗する。  However, it is assumed that the WAL reflection of transaction 1 has not yet been completed. Therefore, it is assumed that the management data (KV pair) based on “table B_00010” based on transaction 1 is still held in the management data distribution holding unit 31 of the node T3. In this case, the transaction processing unit 32 of the node T2 fails to hold the management data (KV pair) using the violation detection key “Table B — 0010” as a key in the T layer.

このように、トランザクション2の処理を要求されたノードT2では、トランザクション処理部32は、違反検出キーの管理データのT層での保持に失敗したとする(ステップS12でYes)。詳細には、トランザクション処理部32は、違反検出キー“表A_10008”の管理データおよび違反検出キー“表B_00010”の管理データの少なくともいずれかについて、T層での保持に失敗している。  As described above, in the node T2 requested to process the transaction 2, it is assumed that the transaction processing unit 32 fails to hold the management data of the violation detection key in the T layer (Yes in step S12). Specifically, the transaction processing unit 32 has failed to hold at least one of the management data of the violation detection key “Table A_10008” and the management data of the violation detection key “Table B_00010” in the T layer.

この場合、ノードT2のトランザクション処理部32は、トランザクション2の処理を開始する前の状態に戻した上で(ステップS17)、ノードP1に対してトランザクション2のエラーを通知する(ステップS18)。例えば、“表A_10008”の管理データの保持には成功したが、“表B_00010”の管理データの保持に失敗した場合について説明する。この場合、ノードT2のトランザクション処理部32は、“表A_10008”の管理データの保持を取り消すことにより、元の状態に戻せばよい。  In this case, the transaction processing unit 32 of the node T2 returns to the state before starting the processing of the transaction 2 (step S17), and notifies the node P1 of the error of the transaction 2 (step S18). For example, a case will be described in which the management data of “Table A_10008” has been successfully held but the management data of “Table B_00010” has failed to be held. In this case, the transaction processing unit 32 of the node T2 may return to the original state by canceling the holding of the management data of “Table A_10008”.

以上で、トランザクション2の処理の説明を終了する。  This is the end of the description of transaction 2 processing.

次に、この具体例1において、T層にノードT4が追加された場合の構成管理装置40の動作について説明する。  Next, the operation of the configuration management apparatus 40 when the node T4 is added to the T layer in the specific example 1 will be described.

ここで、ノードT4が追加される前において、ノードP1の管理データ振分部23に保持される管理データ振分情報(KVS)の一例を、図15の表aに示す。  Here, an example of the management data distribution information (KVS) held in the management data distribution unit 23 of the node P1 before the node T4 is added is shown in Table a of FIG.

まず、構成管理装置40の振分情報更新部41は、ノードT4が新たに追加されたので、ノードP1のトランザクション振分情報および管理データ振分情報の更新内容を決定する(ステップS65)。  First, since the node T4 is newly added, the distribution information update unit 41 of the configuration management device 40 determines the update contents of the transaction distribution information and the management data distribution information of the node P1 (step S65).

ここでは、管理データ振分情報については、図15の表aに示した管理データ振分情報(KVS)が、図15の表bに示すように更新されることが決定されたものとする。具体的には、既存のノードT1〜T3に振り分けられていたハッシュレンジの一部が、新たなノードT4に振り分けられることが決定されている。  Here, regarding the management data distribution information, it is assumed that the management data distribution information (KVS) shown in Table a of FIG. 15 is updated as shown in Table b of FIG. Specifically, it is determined that a part of the hash range allocated to the existing nodes T1 to T3 is allocated to the new node T4.

そこで、振分情報更新部41は、既存のノードT1〜T3に対して、それぞれの管理データ分散保持部31における管理データの移動を制御する(ステップS66)。詳細には、ノードT1〜T3は、振分情報更新部41の制御の下、各管理データ分散保持部31において、新たにノードT4に振り分けられることになったハッシュレンジに含まれるキーのKVペア(管理データ)をノードT4に移動する。  Therefore, the distribution information updating unit 41 controls the movement of management data in each management data distribution holding unit 31 with respect to the existing nodes T1 to T3 (step S66). Specifically, the nodes T1 to T3, under the control of the distribution information update unit 41, each KV pair of keys included in the hash range newly allocated to the node T4 in each management data distribution holding unit 31 (Management data) is moved to the node T4.

移動が完了すると、振分情報更新部41は、ノードP1の管理データ振分情報を、図15の表bに示すように更新する。また、振分情報更新部41は、ノードP1のトランザクション振分情報を更新する(ステップS67)。なお、前述したように、振分情報更新部41は、ステップS66およびS67を不可分な処理として実行する。  When the movement is completed, the distribution information update unit 41 updates the management data distribution information of the node P1 as shown in Table b of FIG. Further, the distribution information update unit 41 updates the transaction distribution information of the node P1 (step S67). As described above, the distribution information update unit 41 executes steps S66 and S67 as an inseparable process.

以上で、構成管理装置40は、構成管理動作を終了する。  Thus, the configuration management apparatus 40 ends the configuration management operation.

(本発明の実施の形態の具体例2)
次に、本実施の形態について2つ目の具体例(具体例2)を示す。この具体例2では、トランザクション間で一意性制約違反が発生し得る違反検出キーとして、仮想表における主キーに加えて、仮想表におけるユニークキーが適用される例について説明する。具体例2の構成を模式的に図16に示す。図16において、この分散処理システム1は、上述の具体例1と同様に、P層に1つのノードP1と、T層に3つのノードT1〜T3と、S層に2つのノードS1〜S2と、構成管理装置40とを備える。なお、図16では、構成管理装置40の図示を省略している。
(Specific example 2 of the embodiment of the present invention)
Next, a second specific example (specific example 2) of the present embodiment will be described. Specific Example 2 describes an example in which a unique key in a virtual table is applied in addition to a primary key in a virtual table as a violation detection key that can cause a uniqueness constraint violation between transactions. The structure of the specific example 2 is typically shown in FIG. In FIG. 16, this distributed processing system 1 includes one node P1 for the P layer, three nodes T1 to T3 for the T layer, and two nodes S1 to S2 for the S layer, as in the first specific example. And a configuration management device 40. In FIG. 16, the configuration management apparatus 40 is not shown.

ノードP1の管理データ振分情報は、前述の具体例1における「仮想表の主キーに関する管理データ振分情報」に加えて、「仮想表のユニークキーに関する管理データ振分情報」を記憶する。  The management data distribution information of the node P1 stores “management data distribution information related to the unique key of the virtual table” in addition to “management data distribution information related to the primary key of the virtual table” in the first specific example.

ノードT1〜T3の管理データ分散保持部31は、前述の具体例1における「仮想表の主キーに関わる管理データ」に加えて、「仮想表のユニークキーに関わる管理データ」を記憶する。  The management data distribution holding unit 31 of the nodes T1 to T3 stores “management data related to the unique key of the virtual table” in addition to “management data related to the primary key of the virtual table” in Specific Example 1 described above.

また、この具体例2では、処理対象データは、施設の予約に関する仮想表C、仮想表Dおよび仮想表Eを表すKVSであることを想定する。図17に、仮想表C、仮想表Dおよび仮想表Eを示す。また、図18に、これらの仮想表の実体としてのKVSを示す。仮想表Cでは、主キーとして“予約番号”の列が設定されている。また、仮想表Dでは、主キーとして“利用者コード”が設定されている。また、仮想表Eでは、主キーとして“施設コード”が設定されている。ここで、「利用者毎に一度だけ、他人と異なる施設を予約できる」と規定されるとき、仮想表Dの「施設コード」はユニーク制約を受ける。  Further, in this specific example 2, it is assumed that the processing target data is KVS representing the virtual table C, the virtual table D, and the virtual table E related to the facility reservation. FIG. 17 shows a virtual table C, a virtual table D, and a virtual table E. FIG. 18 shows KVS as an entity of these virtual tables. In the virtual table C, a column of “reservation number” is set as the primary key. In the virtual table D, “user code” is set as the primary key. In the virtual table E, “facility code” is set as the primary key. Here, when it is defined that “a facility different from others can be reserved only once for each user”, the “facility code” of the virtual table D is subjected to a unique restriction.

なお、図18のKVSでは、仮想表Cに対応するKVペアに、主キーではない“施設コード”の指定によりアクセスできるよう、“索引_表C_”から始まるキーに対応付けて、該当するKVペアへのインデックスが保持されている。同様に、仮想表Dに対応するKVペアに、主キーではない“施設コード”の指定によりアクセスできるよう、“索引_表D_”から始まるキーに対応付けて、該当するKVペアへのインデックスが保持されている。  In the KVS of FIG. 18, the KV pair corresponding to the virtual table C is associated with the key starting from “index_table C_” so that the KV pair corresponding to the virtual table C can be accessed by specifying the “facility code” that is not the primary key. An index to the pair is maintained. Similarly, an index to the corresponding KV pair is associated with a key starting from “index_table D_” so that the KV pair corresponding to the virtual table D can be accessed by specifying “facility code” which is not the primary key. Is retained.

また、図18に示した処理対象データ(KVS)の各KVペアは、具体例1の場合と同様に、キーによって一意に特定されるノードS1またはS2に分散保持される。  Also, each KV pair of the processing target data (KVS) shown in FIG. 18 is distributed and held in the node S1 or S2 uniquely specified by the key, as in the case of the specific example 1.

また、この具体例2では、トランザクション処理の単位が、「各仮想表において“施設コード”列が同じ値毎」と規定されているとする。この場合、“施設コード”列が、トランザクションキーとなる。以降、“施設コード”で識別されるトランザクション処理単位を、“トランザクションクラス2”と呼ぶとする。このとき、“トランザクションクラス2”が、P層において以下のように定義されているものとする。
・「トランザクションクラス2」は、仮想表Cの“施設コード”列から生成される。
・「トランザクションクラス2」は、仮想表Dの“施設コード”列から生成される。
Further, in this specific example 2, it is assumed that the unit of transaction processing is defined as “each facility code column has the same value in each virtual table”. In this case, the “facility code” column is a transaction key. Hereinafter, a transaction processing unit identified by “facility code” is referred to as “transaction class 2”. At this time, it is assumed that “transaction class 2” is defined in the P layer as follows.
Transaction class 2” is generated from the “facility code” column of virtual table C.
Transaction class 2” is generated from the “facility code” column of the virtual table D.

ここで、トランザクションキーを施設コード“S2004”とする以下2つのトランザクションが、同時に実行されようとしている場合を考える。
<トランザクション3>
・仮想表Dの「利用者コード:00003、利用者名:田中」の行の施設コードをS2004に更新
・仮想表Cに、「予約番号:0619093001、予約日:2013/06/19、施設コード:S2004」を挿入
<トランザクション4>
・仮想表Dの「利用者コード:00007、利用者名:山崎」の行の施設コードをS2004に更新
・仮想表Cに、「予約番号:0619093001、予約日:2013/06/19、施設コード:S2004」を挿入
この場合、ノードP1のトランザクション振分部22は、トランザクション振分情報として、トランザクションキーから算出されるハッシュ値の範囲に、その振分先のノードTが対応付けられた情報を保持する。
Here, consider a case where the following two transactions having the transaction key as the facility code “S2004” are about to be executed simultaneously.
<Transaction 3>
Update the facility code in the row of “user code: 00003, user name: Tanaka” in virtual table D to S2004. • In virtual table C, “reservation number: 0619093001, reservation date: 2013/06/19, facility code” : S2004 "<transaction 4>
-Update the facility code in the row of "User code: 00007, User name: Yamazaki" in virtual table D to S2004-In virtual table C, "Reservation number: 0619093001, reservation date: 2013/06/19, facility code" : S2004 ”is inserted. In this case, the transaction distribution unit 22 of the node P1 uses, as the transaction distribution information, information in which the node T of the distribution destination is associated with the range of hash values calculated from the transaction key. Hold.

また、前述の具体例1と同様に、ノードTの遅延反映部34は、「仮想表名+主キーの値」から算出されるハッシュ値の範囲に、その振分先となるノードSが対応付けられた情報を保持する。なお、ここでは、ノードT1〜T3には、同一のデータ振分情報が保持されるものとする。  Similarly to the specific example 1 described above, the delay reflection unit 34 of the node T corresponds to the node S as the distribution destination in the range of the hash value calculated from “virtual table name + primary key value”. Hold the attached information. Here, it is assumed that the same data distribution information is held in the nodes T1 to T3.

このとき、T層における各トランザクションの振分先は、ノードP1における「トランザクション振分情報に基づいて、トランザクションキーである施設コード“S2004”から一意に決定される。また、処理対象データとしてのKVSの各行(KVペア)のS層における振分先は、ノードTにおけるデータ振分情報に基づいて、「仮想表名+主キー」から一意に決定される。  At this time, the distribution destination of each transaction in the T layer is uniquely determined from the facility code “S2004”, which is a transaction key, based on “transaction distribution information” in the node P1. Also, KVS as processing target data The distribution destination in the S layer of each row (KV pair) is uniquely determined from “virtual table name + primary key” based on the data distribution information in the node T.

また、このとき、前述の具体例1と同様に、T層におけるトランザクション処理(WALの記録)と、S層におけるWALの反映とは、非同期に行われる。そのため、トランザクション3およびトランザクション4が実行されることにより、仮想表Dにおいてユニークキー制約違反(“施設コード”の重複)が発生する可能性がある。また、仮想表Cにおいて主キー制約違反(“予約番号”の重複)が発生する可能性がある。  At this time, similarly to the above-described specific example 1, transaction processing (recording of WAL) in the T layer and reflection of WAL in the S layer are performed asynchronously. Therefore, when the transaction 3 and the transaction 4 are executed, a unique key constraint violation (duplication of “facility code”) may occur in the virtual table D. In addition, in the virtual table C, a primary key constraint violation (duplication of “reservation number”) may occur.

そこで、この具体例2では、「仮想表C+主キーの値」と、「仮想表D+ユニークキーの値」とが、一意性制約違反の発生し得る違反検出キーとなる。そこで、ノードP1の管理データ振分部23は、主キーに関わる管理データ振分情報と、ユニークキーに関わる管理データ振分情報とを記憶しておく。主キーに関わる管理データ振分情報は、「仮想表名+主キーの値」から算出されるハッシュ値の範囲に、管理データの振分先となるノードTが対応付けられた情報となる。また、ユニークキーに関わる管理データ振分情報は、「仮想表名+ユニークキーの値」から算出されるハッシュ値の範囲に、管理データの振分先となるノードTが対応付けられた情報となる。これにより、主キーに関する管理データおよびユニークキーに関する管理データのそれぞれの振分先となるノードTは、ノードP1におけるそれぞれの管理データ振分情報に基づいて、一意に決定される。  Therefore, in this specific example 2, “virtual table C + primary key value” and “virtual table D + unique key value” are violation detection keys that can cause a uniqueness constraint violation. Therefore, the management data distribution unit 23 of the node P1 stores management data distribution information related to the primary key and management data distribution information related to the unique key. The management data distribution information related to the primary key is information in which the node T that is the distribution destination of the management data is associated with the range of hash values calculated from “virtual table name + primary key value”. Further, the management data distribution information related to the unique key includes information in which the node T that is the distribution destination of the management data is associated with the range of hash values calculated from “virtual table name + unique key value”. Become. As a result, the node T that is the distribution destination of the management data related to the primary key and the management data related to the unique key is uniquely determined based on the management data distribution information in the node P1.

また、この具体例2において、ノードTの管理データ分散保持部31に分散保持される管理データのうち、ユニークキーに関する管理データを、図19に示す。なお、図19の左図は、管理データ分散保持部31に保持される情報を表形式で示しているが、右図のように、その実体は、KVSである。図19の左図において、各行が示す管理データは、「仮想表名」および「ユニークキーの値」に対して、「トランザクションキー」が対応付けられた情報となっている。つまり、図19の右図において、各行が示す管理データのKVペアは、「仮想表名+ユニークキーの値」をキーとして、「仮想表名、ユニークキー、トランザクションキー」を表すデータが対応付けられた情報である。この場合、「仮想表名+ユニークキーの値」をキーとする管理データのKVペアは、その「仮想表名+ユニークキーの値」から特定される処理対象データのKVペアが、ノードSへの格納待ちとなっていることを表している。  Further, in this specific example 2, among the management data distributed and held in the management data distribution holding unit 31 of the node T, the management data related to the unique key is shown in FIG. In addition, although the left figure of FIG. 19 has shown the information hold | maintained at the management data dispersion | distribution holding | maintenance part 31 with a table format, as the right figure, the substance is KVS. In the left diagram of FIG. 19, the management data indicated by each row is information in which “transaction key” is associated with “virtual table name” and “unique key value”. That is, in the right diagram of FIG. 19, the KV pair of management data indicated by each row is associated with data representing “virtual table name, unique key, transaction key” using “virtual table name + unique key value” as a key. Information. In this case, the management data KV pair whose key is “virtual table name + unique key value” is the processing data KV pair specified from the “virtual table name + unique key value” to the node S. Indicates that it is waiting to be stored.

以上のように構成された具体例2における分散処理システム1の動作について説明する。  The operation of the distributed processing system 1 in the specific example 2 configured as described above will be described.

まず、ノードP1において、アプリケーション部21は、上述のトランザクション3を生成する(図4のステップS1)。  First, in the node P1, the application unit 21 generates the above-described transaction 3 (step S1 in FIG. 4).

このとき、このトランザクション3のトランザクションキーは、施設コード“S2004”である。そこで、トランザクション振分部22は、このトランザクション3の振分先を、トランザクション振分情報を参照することにより特定する(ステップS2)。具体的には、トランザクション振分部22は、施設コード“S2004”のハッシュ値を算出する。そして、トランザクション振分部22は、トランザクション振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードTを特定すればよい。ここでは、ノードT1が特定されたとする。  At this time, the transaction key of the transaction 3 is the facility code “S2004”. Therefore, the transaction distribution unit 22 specifies the distribution destination of the transaction 3 by referring to the transaction distribution information (step S2). Specifically, the transaction distribution unit 22 calculates a hash value of the facility code “S2004”. And the transaction distribution part 22 should just identify the node T matched with the range containing the calculated hash value in transaction distribution information. Here, it is assumed that the node T1 is specified.

また、トランザクション3における1つ目の仮想表Dの更新処理で一意性制約違反が発生し得る違反検出キーは、仮想表Dにおける施設コード、すなわち、“表D_S2004”である。また、2つ目の仮想表Cへの挿入処理で一意性制約違反が発生し得る違反検出キーは、仮想表Cにおける予約番号、すなわち、“表C_0619093001”である。  The violation detection key that may cause a uniqueness constraint violation in the update process of the first virtual table D in the transaction 3 is the facility code in the virtual table D, that is, “Table D_S2004”. The violation detection key that may cause a uniqueness constraint violation in the insertion processing into the second virtual table C is a reservation number in the virtual table C, that is, “Table C_06190930001”.

そこで、管理データ振分部23は、ユニークキーを含む違反検出キーである“表D_S2004”に関わる管理データの振分先を、ユニークキーに関わる管理データ振分情報を参照することにより特定する。具体的には、管理データ振分部23は、“表D_S2004”のハッシュ値を算出する。そして、管理データ振分部23は、ユニークキーに関わる管理データ振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードTを特定すればよい。ここでは、ノードT2が特定されたとする。同様に、管理データ振分部23は、主キーを含む違反検出キー“表C_0619093001”に関わる管理データの振分先を、主キーに関わる管理データ振分情報を参照することにより特定する。具体的には、管理データ振分部23は、“表C_0619093001”のハッシュ値を算出する。そして、管理データ振分部23は、主キーに関わる管理データ振分情報において、算出したハッシュ値を含む範囲に対応付けられたノードTを特定すればよい。ここでは、ノードT3が特定されたとする(ステップS3)。  Therefore, the management data distribution unit 23 specifies the distribution destination of the management data related to “Table D_S2004” that is the violation detection key including the unique key by referring to the management data distribution information related to the unique key. Specifically, the management data distribution unit 23 calculates the hash value of “Table D_S2004”. Then, the management data distribution unit 23 may specify the node T associated with the range including the calculated hash value in the management data distribution information related to the unique key. Here, it is assumed that the node T2 is specified. Similarly, the management data distribution unit 23 specifies the distribution destination of the management data related to the violation detection key “Table C_0619093001” including the primary key by referring to the management data distribution information related to the primary key. Specifically, the management data distribution unit 23 calculates a hash value of “Table C_0619093001”. Then, the management data distribution unit 23 may specify the node T associated with the range including the calculated hash value in the management data distribution information related to the primary key. Here, it is assumed that the node T3 is specified (step S3).

次に、トランザクション振分部22は、このトランザクション3の振分先のノードT1に対して、トランザクション3の処理を要求する。また、管理データ振分部23は、ノードT1に対して、ユニークキーを含む違反検出キー“表D_S2004”についての管理データの振分先としてノードT2を通知する。また、管理データ振分部23は、ノードT1に対して、主キーを含む違反検出キー“表C_0619093001”についての管理データの振分先としてノードT3を通知する(ステップS4)。  Next, the transaction distribution unit 22 requests the processing of the transaction 3 to the node T1 to which the transaction 3 is allocated. Also, the management data distribution unit 23 notifies the node T1 of the node T2 as a management data distribution destination for the violation detection key “table D_S2004” including the unique key. In addition, the management data distribution unit 23 notifies the node T1 of the node T3 as a management data distribution destination for the violation detection key “Table C — 0619093001” including the primary key (step S4).

次に、トランザクション3の処理を要求されたノードT1は、次のように動作する。ノードT1のトランザクション処理部32は、1つ目の、ユニークキーを含む違反検出キー“表D_S2004”についての管理データを、その振分先として通知されたノードT2の管理データ分散保持部31に保持させることを試みる。  Next, the node T1 requested to process the transaction 3 operates as follows. The transaction processing unit 32 of the node T1 holds the management data for the first violation detection key “table D_S2004” including the unique key in the management data distribution holding unit 31 of the node T2 notified as the distribution destination. Try to make it.

ここでは、ノードT2の管理データ分散保持部31に、“表D_S2004”をキーとする他の管理データ(KVペア)が保持されていなかったとする(図5のステップS12でNo)。  Here, it is assumed that other management data (KV pair) having “Table D_S2004” as a key is not held in the management data distribution holding unit 31 of the node T2 (No in step S12 in FIG. 5).

この場合、ノードT1のトランザクション処理部32は、ノードT2の管理データ分散保持部31に、“表D_S2004”をキーとして、トランザクションキー“S2004”を含むデータを対応付けたKVペアを保持させる(ステップS13)。  In this case, the transaction processing unit 32 of the node T1 causes the management data distribution and holding unit 31 of the node T2 to hold the KV pair in which the data including the transaction key “S2004” is associated with “Table D_S2004” as a key (Step S1). S13).

ここで、“表D_S2004”をキーとする管理データ(KVペア)のT層での保持に成功することは、次のことを示している。すなわち、この保持の成功は、“表D_S2004”に関わる処理対象データがS層のデータ保持部11(KVS)への格納待ちとなったことを、後続のトランザクションに対して示している。また、この保持の成功は、直前までに、S層のデータ保持部11(KVS)への格納を待つ“表D_S2004”に関わる処理対象データが存在しなかったことを示している。  Here, the success in holding the management data (KV pair) in the T layer using “Table D_S2004” as a key indicates the following. That is, the success of the holding indicates that the processing target data related to “Table D_S2004” is waiting to be stored in the data holding unit 11 (KVS) of the S layer for the subsequent transaction. Further, the success of the holding indicates that there is no processing target data related to “Table D_S2004” waiting for storage in the data holding unit 11 (KVS) of the S layer until just before.

次に、ノードT1のトランザクション処理部32は、S層に、更新反映済の“表D_S2004”に関わる処理対象データ(KVペア)が存在しないことを確認してもよい。これにより、トランザクション処理部32は、一意性制約違反(ユニークキーの重複)が発生しないことを確実にする。なお、この確認処理において、S層のどのノードが“表D_S2004”に関わる処理対象データを保持しているかは、データ振分情報を参照することにより特定可能である。  Next, the transaction processing unit 32 of the node T1 may confirm that there is no processing target data (KV pair) related to the “table D_S2004” that has been updated and reflected in the S layer. As a result, the transaction processing unit 32 ensures that no uniqueness constraint violation (unique key duplication) occurs. In this confirmation process, it can be specified by referring to the data distribution information which node in the S layer holds the processing target data related to “Table D_S2004”.

次に、トランザクション処理部32は、2つ目の、主キーを含む違反検出キー“表C_061909300”についても、上述と同様にステップS12〜S13を実行する。  Next, the transaction processing unit 32 executes steps S12 to S13 in the same manner as described above for the second violation detection key “table C — 061909300” including the primary key.

すなわち、トランザクション処理部32は、2つ目の、主キーを含む違反検出キー“表C_061909300”についての管理データを、その振分先として通知されたノードT3に保持させることを試みる。  That is, the transaction processing unit 32 tries to hold the management data for the second violation detection key “Table C — 061909300” including the primary key in the node T3 notified as the distribution destination.

ここでは、ノードT3の管理データ分散保持部31に、“表C_061909300”をキーとする他の管理データ(KVペア)が保持されていなかったとする(ステップS12でNo)。  Here, it is assumed that other management data (KV pair) having “Table C — 061909300” as a key is not held in the management data distribution holding unit 31 of the node T3 (No in step S12).

この場合、ノードT1のトランザクション処理部32は、ノードT3の管理データ分散保持部31に、“表C_061909300”をキーとして、トランザクションキー“S2004”を含むデータを対応付けたKVペアを保持させる(ステップS13)。  In this case, the transaction processing unit 32 of the node T1 causes the management data distribution and holding unit 31 of the node T3 to hold a KV pair in which data including the transaction key “S2004” is associated with “Table C — 061909300” as a key (Step S1). S13).

前述のように、“表C_061909300”をキーとする管理データ(KVペア)のT層での保持に成功することは、次のことを示している。すなわち、この保持の成功は、“表C_061909300”をキーとする処理対象データ(KVペア)がS層のデータ保持部11(KVS)への格納待ちとなったことを、後続のトランザクションに対して示している。また、この保持の成功は、直前までに、S層のデータ保持部11(KVS)への格納を待つ“表C_061909300”をキーとする処理対象データ(KVペア)が存在しなかったことを示している。  As described above, success in holding the management data (KV pair) in the T layer with “Table C — 061909300” as a key indicates the following. In other words, the success of this holding indicates that the processing target data (KV pair) with “Table C_061909300” as a key is waiting to be stored in the data holding unit 11 (KVS) of the S layer for the subsequent transaction. Show. In addition, the success of the holding indicates that there is no processing target data (KV pair) with “Table C — 061909300” as a key waiting for storage in the data holding unit 11 (KVS) of the S layer until just before. ing.

次に、ノードT1のトランザクション処理部32は、S層に、更新反映済の“表C_061909300”をキーとする処理対象データ(KVペア)が存在しないことを確認してもよい。これにより、トランザクション処理部32は、一意性制約違反(主キーの重複)が発生していないことを確実にする。なお、この確認処理において、S層のどのノードが“表C_061909300”をキーとする処理対象データを保持しているかは、データ振分情報を参照することにより特定可能である。  Next, the transaction processing unit 32 of the node T1 may confirm that there is no processing target data (KV pair) having “Table C — 061909300” updated as a key in the S layer. Thereby, the transaction processing unit 32 ensures that no uniqueness constraint violation (primary key duplication) has occurred. In this confirmation process, it can be identified by referring to the data distribution information which node in the S layer holds the processing target data with “Table C — 061909300” as a key.

このようにして、ノードT1は、トランザクション3において、ユニークキーを含む違反検出キー“表D_S2004”および主キーを含む違反検出キー“表C_061909300”について、T層での管理データの保持に成功した。これにより、トランザクション3によってユニークキーの重複および主キーの重複が発生しないことが確認されたことになる。  In this way, in the transaction 3, the node T1 succeeded in retaining the management data in the T layer for the violation detection key “table D_S2004” including the unique key and the violation detection key “table C_061909300” including the primary key. As a result, it is confirmed that the unique key duplication and the primary key duplication do not occur in the transaction 3.

そこで、ノードT1のトランザクション処理部32は、トランザクション3のWALを、自装置のトランザクションログ保持部33に記録する(ステップS15)。  Therefore, the transaction processing unit 32 of the node T1 records the WAL of the transaction 3 in the transaction log holding unit 33 of the own device (step S15).

そして、トランザクション処理部32は、トランザクション3の完了を、ノードP1に通知する。  Then, the transaction processing unit 32 notifies the completion of the transaction 3 to the node P1.

以上で、トランザクション3の処理が完了する。  Thus, the transaction 3 is completed.

また、上記のトランザクション3の処理とは非同期に、ノードT1の遅延反映部34は、次のように、トランザクションログ保持部33に記録されたトランザクション3のWALの反映を行う。  Further, asynchronously with the processing of the transaction 3, the delay reflection unit 34 of the node T1 reflects the WAL of the transaction 3 recorded in the transaction log holding unit 33 as follows.

まず、遅延反映部34は、トランザクション3のWALが示す1つ目の処理における違反検出キー“表D_S2004”に基づいて、処理対象データの振分先を特定する(図6のステップS31)。詳細には、遅延反映部34は、データ振分情報を参照することにより、“索引_表D_施設コード_S2004”に対応するノードSを特定する。ここでは、ノードS2であったとする。  First, the delay reflection unit 34 specifies the distribution destination of the processing target data based on the violation detection key “table D_S2004” in the first process indicated by the WAL of the transaction 3 (step S31 in FIG. 6). Specifically, the delay reflection unit 34 specifies the node S corresponding to “index_table D_facility code_S2004” by referring to the data distribution information. Here, it is assumed that the node is S2.

次に、遅延反映部34は、ノードS2に対して、1つ目の仮想表Dの更新処理の反映情報を送信する(ステップS32)。  Next, the delay reflection unit 34 transmits the reflection information of the update process of the first virtual table D to the node S2 (step S32).

次に、ノードS2のデータ反映部12は、反映情報に基づいて、データ保持部11において、“索引_表D_施設コード_S2004”をキーとする索引情報のKVペアと、“表D_0003”をキーとするKVペアとを更新する(図7のステップS42)。  Next, based on the reflection information, the data reflection unit 12 of the node S2 causes the data holding unit 11 to use the index information KV pair having “index_table D_facility code_S2004” as a key and “table D_0003” as a key. The KV pair is updated (step S42 in FIG. 7).

次に、データ反映部12は、反映した処理対象データにおけるユニークキーを含む違反検出キー“表D_S2004”について、その管理データの振分先のノードTを、ノードP1に照会することにより特定する(ステップS43)。ここでは、ノードT2が特定される。  Next, the data reflection unit 12 identifies the violation detection key “table D_S2004” including the unique key in the reflected processing target data by querying the node P1 for the node T to which the management data is distributed ( Step S43). Here, the node T2 is specified.

次に、データ反映部12は、ノードT2に対して、違反検出キー“表D_S2004”についての管理データの削除を要求する(ステップS44)。  Next, the data reflection unit 12 requests the node T2 to delete the management data for the violation detection key “Table D_S2004” (step S44).

これにより、ノードT2の管理データ分散保持部31は、“表D_S2004”をキーとする管理データ(KVペア)を削除する。  As a result, the management data distribution holding unit 31 of the node T2 deletes the management data (KV pair) using “Table D_S2004” as a key.

同様に、ノードT1の遅延反映部34は、トランザクション3のWALが示す2つ目の挿入処理についても、その処理対象データの振分先として、例えばノードS1を特定し、挿入処理の反映情報を送信する。そして、反映情報を受信したノードS1は、上記と略同様に動作して、データ保持部11に、“表C_061909300”をキーとする処理対象データを挿入する。そして、ノードS1からの要求により、ノードT3は、管理データ分散保持部31から、違反検出キー“表C_061909300”をキーとする管理データ(KVペア)を削除する。  Similarly, the delay reflection unit 34 of the node T1 also specifies, for example, the node S1 as the distribution destination of the processing target data for the second insertion process indicated by the WAL of the transaction 3, and sets the reflection information of the insertion process. Send. The node S1 that has received the reflection information operates in substantially the same manner as described above, and inserts processing target data with “Table C — 061909300” as a key into the data holding unit 11. Then, in response to a request from the node S1, the node T3 deletes the management data (KV pair) using the violation detection key “Table C_061909300” as a key from the management data distribution holding unit 31.

以上で、トランザクション3のWALのS層への反映が終了する。  Thus, the reflection of the transaction 3 on the SAL of the WAL is completed.

ここで、ノードT1におけるトランザクション処理に並行して、ノードP1がトランザクション4を生成し、ノードT2に対してその処理を要求したことを想定する。トランザクション4において、一意性違反が発生し得る違反検出キーは、トランザクション3と同様に、ユニークキーを含む“表D_S2004”および主キーを含む“表C_061909300”となる。上述と同様に、ユニークキーを含む“表D_S2004”の管理データの振分先はT2となり、主キーを含む“表C_061909300”の管理データの振分先はノードT3となる。  Here, it is assumed that in parallel with the transaction processing at the node T1, the node P1 generates a transaction 4 and requests the processing from the node T2. In the transaction 4, the violation detection keys that may cause uniqueness violations are “table D_S 2004” including the unique key and “table C_061909300” including the primary key, as in the transaction 3. In the same manner as described above, the distribution destination of the management data of “Table D_S2004” including the unique key is T2, and the distribution destination of the management data of “Table C_061909300” including the primary key is the node T3.

この場合、ノードT2の管理データ分散保持部31には、上述のトランザクション3の処理により既に“表D_S2004”をキーとする管理データ(KVペア)が保持されている。したがって、ノードT2のトランザクション処理部32は、“表D_S2004”をキーとする管理データ(KVペア)のT層での保持に失敗する。  In this case, the management data distribution and holding unit 31 of the node T2 has already held the management data (KV pair) having “Table D_S2004” as a key by the processing of the transaction 3 described above. Therefore, the transaction processing unit 32 of the node T2 fails to hold the management data (KV pair) using “Table D_S2004” as a key in the T layer.

あるいは、トランザクション4の処理中に、上述のトランザクション3のWALの反映が非同期に進行しているとする。そして、ノードT2の管理データ分散保持部31から、トランザクション3による“表D_S2004”をキーとする管理データ(KVペア)が既に削除されていることも考えられる。この場合、ノードT2のトランザクション処理部32は、“表D_S2004”をキーとする管理データ(KVペア)のT層での保持に成功する。  Alternatively, it is assumed that the WAL reflection of the transaction 3 is progressing asynchronously during the processing of the transaction 4. It is also conceivable that the management data (KV pair) with “table D_S2004” by the transaction 3 as a key has already been deleted from the management data distribution holding unit 31 of the node T2. In this case, the transaction processing unit 32 of the node T2 succeeds in holding the management data (KV pair) using “Table D_S2004” as a key in the T layer.

しかしながら、トランザクション3のWALの反映が完了していないとする。そして、ノードT3の管理データ分散保持部31には、トランザクション3による“表C_061909300”をキーとする管理データ(KVペア)が依然として保持されていたとする。この場合、ノードT2のトランザクション処理部32は、“表C_061909300”をキーとする管理データ(KVペア)のT層での保持に失敗する。  However, it is assumed that WAL reflection of transaction 3 has not been completed. Then, it is assumed that the management data distribution and holding unit 31 of the node T3 still holds the management data (KV pair) by “transaction 3” using “Table C — 061909300” as a key. In this case, the transaction processing unit 32 of the node T2 fails to hold the management data (KV pair) with “Table C — 061909300” as a key in the T layer.

このように、トランザクション4の処理を要求されたノードT2のトランザクション処理部32は、違反検出キーの管理データのT層での保持に失敗したとする(ステップS12でYes)。詳細には、トランザクション処理部32は、違反検出キー“表D_S2004”の管理データおよび違反検出キー“表C_061909300”の管理データの少なくともいずれかの保持に失敗している。  As described above, it is assumed that the transaction processing unit 32 of the node T2 requested to process the transaction 4 has failed to hold the management data of the violation detection key in the T layer (Yes in step S12). Specifically, the transaction processing unit 32 fails to hold at least one of the management data of the violation detection key “Table D_S2004” and the management data of the violation detection key “Table C_061909300”.

この場合、ノードT2のトランザクション処理部32は、トランザクション4の処理を開始する前の状態に戻した上で(ステップS17)、ノードP1に対してトランザクション4のエラーを通知する(ステップS18)。例えば、“表D_S2004”の管理データの保持には成功したが、“表C_061909300”の管理データの保持には失敗した場合について説明する。この場合、ノードT2のトランザクション処理部32は、“表D_S2004”の管理データの保持を取り消すことにより、元の状態に戻せばよい。  In this case, the transaction processing unit 32 of the node T2 returns the state before starting the processing of the transaction 4 (step S17), and notifies the node P1 of the error of the transaction 4 (step S18). For example, a case where the management data of “Table D_S2004” has been successfully held but the management data of “Table C_061909300” has not been successfully held will be described. In this case, the transaction processing unit 32 of the node T2 may return to the original state by canceling the holding of the management data of “Table D_S2004”.

以上で、ノードT2によるトランザクション4の処理の説明を終了する。  This is the end of the description of the transaction 4 by the node T2.

なお、ノードT4追加時の構成管理装置40の動作については、前述の具体例1と略同様である。ただし、ステップS65において、振分情報更新部41は、トランザクション振分情報および主キーに基づく管理データ振分情報の更新内容に加えて、ユニークキーに基づく管理データ振分情報の更新内容を決定する。また、ステップS66において、振分情報更新部41は、ノードT1〜T3間における主キーに関する管理データの移動の制御に加えて、ユニークキーに関する管理データの移動を制御する。また、ステップS67において、振分情報更新部41は、ノードP1のトランザクション振分情報および主キーに基づく管理データ振分情報の更新に加えて、ユニークキーに基づく管理データ振分情報を更新する。  Note that the operation of the configuration management apparatus 40 when the node T4 is added is substantially the same as in the first specific example. However, in step S65, the distribution information update unit 41 determines the update contents of the management data distribution information based on the unique key in addition to the update contents of the management data distribution information based on the transaction distribution information and the primary key. . In step S66, the distribution information update unit 41 controls the movement of management data related to the unique key in addition to the control of movement of management data related to the primary key between the nodes T1 to T3. In step S67, the distribution information update unit 41 updates the management data distribution information based on the unique key in addition to the update of the management data distribution information based on the transaction distribution information and the primary key of the node P1.

以上で、具体例2の説明を終了する。  Above, description of the specific example 2 is complete | finished.

次に、本発明の実施の形態の効果について述べる。  Next, effects of the embodiment of the present invention will be described.

本発明の実施の形態としての分散処理システムは、トランザクションログの記録と実際のデータ反映とが非同期に行われる分散処理システムにおいて、次の効果を奏する。すなわち、本発明の実施の形態としての分散処理システムは、トランザクションを複数の処理単位で分散実行する際に、スケーラビリティ低下を抑制しつつ、処理単位を跨る一意性に関する制約違反をより確実に検出することができる。  The distributed processing system as an embodiment of the present invention has the following effects in a distributed processing system in which transaction log recording and actual data reflection are performed asynchronously. That is, the distributed processing system as an embodiment of the present invention more reliably detects a constraint violation related to uniqueness across processing units while suppressing a decrease in scalability when a transaction is distributed and executed in a plurality of processing units. be able to.

その理由は、トランザクション分散処理装置の各装置が、次のように動作するよう構成されるからである。すなわち、管理データ分散保持部が、トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、違反検出キーに対応付けて保持する。また、管理データ分散保持部が、このような管理データを、トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間保持する。そして、トランザクション処理部が、要求されたトランザクションを処理する際に、そのトランザクションにおける違反検出キーについて、その管理データの振分先への保持を試みる。そして、トランザクション処理部が、その管理データが振分先のトランザクション分散処理装置の管理データ分散保持部に保持されていない場合に、これを保持させる。そして、管理データの振分先への保持が成功した場合に、トランザクション処理部が、トランザクションログを記録することによりトランザクション処理を完了する。そして、遅延反映部が、トランザクション処理とは非同期に、トランザクションログをデータ保持装置の処理対象データに反映させる。  The reason is that each device of the transaction distributed processing device is configured to operate as follows. In other words, the management data distribution holding unit holds the management data distributed to the own device based on the violation detection key that may cause a uniqueness constraint violation between transactions in association with the violation detection key. In addition, the management data distribution holding unit holds such management data while the processing target data targeted by the transaction is waiting for the transaction log to be reflected. Then, when the transaction processing unit processes the requested transaction, it tries to hold the management data for the violation detection key in the transaction to the distribution destination. Then, when the management data is not held in the management data distribution holding unit of the distribution destination transaction distribution processing device, the transaction processing unit holds the management data. Then, when the management data is successfully stored in the distribution destination, the transaction processing unit completes the transaction processing by recording the transaction log. Then, the delay reflection unit reflects the transaction log to the processing target data of the data holding device asynchronously with the transaction processing.

これにより、本実施の形態は、トランザクション処理に遅延して非同期に処理対象データへの反映が行われる場合であっても、処理対象データへの反映を待たずに、トランザクション処理時点で、一意性制約違反を確実に検出することができる。また、本実施の形態は、そのような一意性制約違反を確実に検出するための管理データを、トランザクションの定義情報に基づいて生成し、処理対象データの永続化時点で削除する。このため、本実施の形態は、特別なユーザ操作を必要としない。また、本実施の形態は、そのような一意性制約違反を確実に検出するための管理データを1つ以上のトランザクション分散処理装置に分散保持する。このため、本実施の形態は、1つの装置がそのような一意性制約違反を集中管理する場合に比べて、負荷が一装置に集中せず、分散処理システムのスケーラビリティを損なわない。また、本実施の形態は、分散処理システムを構成する各装置の追加または削除などの構成変更に応じて、そのような一意性制約違反を確実に検出するための管理データの分散保持先を更新する。このため、本実施の形態は、スケールアウトが容易である。  As a result, the present embodiment is unique at the time of transaction processing without waiting for the reflection to the processing target data even when the reflection to the processing target data is performed asynchronously after delaying the transaction processing. A constraint violation can be reliably detected. Further, in the present embodiment, management data for reliably detecting such a unique constraint violation is generated based on the definition information of the transaction, and is deleted when the processing target data is made permanent. For this reason, this Embodiment does not require special user operation. In this embodiment, management data for reliably detecting such a uniqueness constraint violation is distributed and held in one or more transaction distributed processing devices. For this reason, this embodiment does not concentrate the load on one apparatus and does not impair the scalability of the distributed processing system as compared with the case where one apparatus centrally manages such uniqueness constraint violations. In addition, according to the present embodiment, in accordance with a configuration change such as addition or deletion of each device constituting the distributed processing system, the management data distributed retention destination for reliably detecting such a uniqueness constraint violation is updated. To do. For this reason, this embodiment is easy to scale out.

なお、本実施の形態において、トランザクション振分情報、管理データ振分情報、および、データ振分情報は、キーの値から算出されるハッシュ値の範囲に対して振分先の装置が定められた情報であるものとして説明した。この他、各振分情報は、キーの値に基づいて振分先が一意に特定可能なものであれば、その他の情報であってもよい。  In this embodiment, the transaction distribution information, the management data distribution information, and the data distribution information are determined by the distribution destination device for the range of hash values calculated from the key value. It was described as information. In addition, each distribution information may be other information as long as the distribution destination can be uniquely specified based on the key value.

また、本実施の形態において、アプリケーション装置が、トランザクションの振分先のトランザクション分散処理装置に対して、管理データの振分先を通知する例について説明した。この他、トランザクション処理が振り分けられたトランザクション分散処理装置が、アプリケーション装置に照会することにより該当する管理データの振分先を得るように構成してもよい。  Further, in the present embodiment, an example has been described in which the application apparatus notifies the distribution destination of management data to the transaction distribution processing apparatus that is the distribution destination of the transaction. In addition, the transaction distributed processing device to which the transaction processing is distributed may be configured to obtain the distribution destination of the corresponding management data by making an inquiry to the application device.

また、本実施の形態において、トランザクションログの反映を行ったデータ保持装置が、アプリケーション装置に照会することにより該当する管理データの振分先を得る例について説明した。この他、トランザクションログの反映を要求したトランザクション分散処理装置が、反映の振分先のデータ保持装置に対して、該当する管理データが振り分けられている装置を通知するように構成してもよい。この場合、データ保持装置は、トランザクションログの反映を要求したトランザクション分散処理装置との通信コネクションを、データ反映が終了するまで維持しておけばよい。これにより、データ保持装置は、データ反映後に管理データの振分先を特定する必要がなくなり、通信コストが低減される。  Further, in the present embodiment, an example has been described in which the data holding device that has reflected the transaction log obtains the distribution destination of the corresponding management data by making an inquiry to the application device. In addition, the transaction distributed processing device that requested the reflection of the transaction log may be configured to notify the data holding device that is the distribution destination of the reflection of the device to which the corresponding management data is distributed. In this case, the data holding device may maintain the communication connection with the transaction distributed processing device that has requested the reflection of the transaction log until the data reflection is completed. This eliminates the need for the data holding device to specify the distribution destination of the management data after reflecting the data, thereby reducing the communication cost.

また、本実施の形態において、処理対象データが、複数のデータ保持装置に分散保持される例を中心に説明したが、本発明における処理対象データは、かならずしも複数の装置に分散保持されるものでなくてもよい。その場合、本実施の形態におけるトランザクション分散処理装置の遅延反映部は、必ずしもデータ振分情報を記憶していなくてもよい。  In the present embodiment, the processing target data is mainly described as being distributed and held in a plurality of data holding devices. However, the processing target data in the present invention is necessarily distributed and held in a plurality of devices. It does not have to be. In that case, the delay reflection unit of the transaction distributed processing apparatus according to the present embodiment does not necessarily store the data distribution information.

また、本実施の形態において、処理対象データが仮想表を表すKVSである例を中心に説明したが、本発明は、処理対象データに対するトランザクションを分散処理する各種のシステムに適用可能である。  In the present embodiment, the example in which the processing target data is KVS representing a virtual table has been mainly described. However, the present invention can be applied to various systems that perform distributed processing on transactions for processing target data.

その他、本発明は、上述した実施の形態に限定されず、トランザクション処理と処理対象データへの反映とを非同期に行う各種の分散処理システムに適用可能である。  In addition, the present invention is not limited to the above-described embodiments, and can be applied to various distributed processing systems that perform transaction processing and reflection on processing target data asynchronously.

また、上述した本発明の各実施の形態において、データ保持装置、トランザクション分散処理装置、アプリケーション装置、および、構成管理装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。  In each embodiment of the present invention described above, each functional block of the data holding device, the transaction distributed processing device, the application device, and the configuration management device executes a computer program stored in a storage device or ROM. The description has been centered on an example realized by the CPU. However, the present invention is not limited to this, and some, all, or a combination of each functional block may be realized by dedicated hardware.

また、上述した本発明の各実施の形態において、各装置の機能ブロックは、複数の装置に分散されて実現されてもよい。  Moreover, in each embodiment of the present invention described above, the functional blocks of each device may be realized by being distributed to a plurality of devices.

また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。  In each embodiment of the present invention described above, the operation of each device described with reference to each flowchart may be stored in a storage device (storage medium) of the computer device as a computer program of the present invention. Good. Then, the computer program may be read and executed by the CPU. In such a case, the present invention is constituted by the code of the computer program or a storage medium.

以上、上述した実施の形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施の形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。  The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the embodiment described above. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.

この出願は、2013年12月24日に出願された日本出願特願2013−265516を基礎とする優先権を主張し、その開示の全てをここに取り込む。  This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2013-265516 for which it applied on December 24, 2013, and takes in those the indications of all here.

1 分散処理システム
10 データ保持装置
11 データ保持部
12 データ反映部
20 アプリケーション装置
21 アプリケーション部
22 トランザクション振分部
23 管理データ振分部
30 トランザクション分散処理装置
31 管理データ分散保持部
32 トランザクション処理部
33 トランザクションログ保持部
34 遅延反映部
40 構成管理装置
41 振分情報更新部
1001、2001、3001、4001 CPU
1002、2002、3002、4002 RAM
1003、2003、3003、4003 ROM
1004、2004、3004、4004 記憶装置
1005、2005、3005、4005 ネットワークインタフェース
DESCRIPTION OF SYMBOLS 1 Distributed processing system 10 Data holding apparatus 11 Data holding part 12 Data reflection part 20 Application apparatus 21 Application part 22 Transaction distribution part 23 Management data distribution part 30 Transaction distributed processing apparatus 31 Management data distribution holding part 32 Transaction processing part 33 Transaction Log holding unit 34 Delay reflection unit 40 Configuration management device 41 Distribution information update unit 1001, 2001, 3001, 4001 CPU
1002, 2002, 3002, 4002 RAM
1003, 2003, 3003, 4003 ROM
1004, 2004, 3004, 4004 Storage device 1005, 2005, 3005, 4005 Network interface

Claims (21)

トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段と、
自装置(トランザクション分散処理装置)に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他の前記トランザクション分散処理装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログをトランザクションログ保持手段に先行記録することにより、トランザクション処理を完了するトランザクション処理手段と、
前記トランザクション処理手段による処理とは非同期に、前記トランザクションログ保持手段に保持されたトランザクションログを、前記処理対象データに対して反映させる遅延反映手段と、
を備えたトランザクション分散処理装置。
Management data distributed to its own device based on a violation detection key that can cause a uniqueness constraint violation between transactions, while the processing target data targeted by the transaction is waiting for reflection of the transaction log, the violation detection key Management data distributed holding means to hold in association with,
When processing a transaction whose processing is distributed to the own device (transaction distributed processing device), the own device or the other transaction distribution to which the management data specified based on the violation detection key in the transaction is allocated When other management data associated with the violation detection key is not held in the management data distribution holding means of the processing device, the management data related to the transaction is stored in the management data distribution holding destination Transaction processing means for completing the transaction processing by pre-recording the transaction log representing the processing content of the transaction in the transaction log holding means after the means is held in association with the violation detection key;
A delay reflecting means for reflecting the transaction log held in the transaction log holding means to the processing target data asynchronously with the processing by the transaction processing means;
Transaction processing apparatus comprising:
前記処理対象データが、仮想的な表(仮想表)の識別情報および前記仮想表における主キーの値からなる情報をキーとして該キーに対してデータが対応付けられた形式で表され、前記トランザクション間で前記仮想表における主キーまたはユニークキーについて一意性制約違反が発生し得るとき、
前記管理データ分散保持手段は、前記仮想表の識別情報と前記主キーの値または前記ユニークキーの値とからなる情報に対応付けて、前記管理データを保持することを特徴とする請求項1に記載のトランザクション分散処理装置。
The processing target data is expressed in a format in which data is associated with the key using information including identification information of a virtual table (virtual table) and a primary key value in the virtual table as a key, and the transaction When a uniqueness constraint violation can occur for a primary key or unique key in the virtual table between
The management data distribution and holding unit holds the management data in association with information including identification information of the virtual table and a value of the primary key or a value of the unique key. The transaction distributed processing device described.
前記処理対象データが、複数のデータ保持装置に分散保持されるとき、
前記遅延反映手段は、前記複数のデータ保持装置のうち、前記トランザクションログが対象とする処理対象データの振分先となる前記データ保持装置を特定するためのデータ振分情報を記憶しておき、前記データ振分情報に基づいて特定されるデータ保持装置に対して、前記処理対象データに前記トランザクションログを反映させるための反映情報を送信することを特徴とする請求項1または請求項2に記載のトランザクション分散処理装置。
When the processing target data is distributed and held in a plurality of data holding devices,
The delay reflecting means stores data distribution information for identifying the data holding device that is a distribution destination of processing target data targeted by the transaction log among the plurality of data holding devices, The reflection information for reflecting the transaction log in the processing target data is transmitted to the data holding device specified based on the data distribution information. Transaction distributed processing unit.
処理対象データに対するトランザクションを生成するアプリケーション手段と、
請求項1から請求項3のいずれか1項に記載のトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報を記憶しておき、前記アプリケーション手段によって生成されたトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に要求するトランザクション振分手段と、
前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報を記憶しておき、前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する管理データ振分手段と、
を備えたアプリケーション装置。
Application means for generating a transaction for the data to be processed;
The transaction distribution information for specifying the transaction distributed processing device which becomes the transaction distribution destination among the transaction distributed processing devices according to any one of claims 1 to 3, is stored, Transaction distribution means for requesting the transaction distributed processing device specified based on the transaction distribution information to process the transaction generated by the application means;
Management data distribution information for specifying the transaction distribution processing device that is the distribution destination of the management data among the transaction distribution processing devices is stored, and is specified based on the management data distribution information Management data distribution means for notifying the transaction distributed processing device to the transaction distributed processing device that is the distribution destination of the transaction;
Application device equipped with.
前記アプリケーション手段は、仮想的な表(仮想表)の識別情報および前記仮想表における主キーの値からなる情報をキーとして該キーに対してデータが対応付けられた形式で表された前記処理対象データに対して、前記トランザクションを生成し、
前記管理データ振分手段は、前記トランザクション間で前記仮想表における主キーまたはユニークキーについて一意性制約違反が発生し得るとき、前記仮想表の識別情報と前記主キーの値または前記ユニークキーの値とからなる情報に基づいて前記管理データの振分先となる前記トランザクション分散処理装置を特定するための前記管理データ振分情報を記憶しておくことを特徴とする請求項4に記載のアプリケーション装置。
The application means uses the identification information of a virtual table (virtual table) and information including the value of the primary key in the virtual table as a key, and the processing target expressed in a format in which data is associated with the key Generate the transaction for the data,
The management data distribution means, when a unique constraint violation may occur for the primary key or unique key in the virtual table between the transactions, the identification information of the virtual table and the value of the primary key or the value of the unique key 5. The application apparatus according to claim 4, wherein the management data distribution information for specifying the transaction distributed processing apparatus to which the management data is distributed is stored based on the information consisting of .
前記処理対象データを保持するデータ保持手段と、
請求項1から請求項3のいずれか1項に記載のトランザクション分散処理装置に保持される前記トランザクションログを、前記データ保持手段に対して反映させるデータ反映手段と、
を備えたデータ保持装置。
Data holding means for holding the processing target data;
Data reflecting means for reflecting the transaction log held in the transaction distributed processing device according to any one of claims 1 to 3 to the data holding means;
A data holding device.
前記データ保持手段は、仮想的な表(仮想表)の識別情報および前記仮想表における主キーの値からなる情報をキーとして該キーに対するデータの形式で、前記処理対象データを保持することを特徴とする請求項6に記載のデータ保持装置。  The data holding means holds the processing target data in the form of data for the key using information including identification information of a virtual table (virtual table) and a value of a primary key in the virtual table as a key. The data holding device according to claim 6. 前記データ保持手段は、他の前記データ保持装置との間で前記処理対象データを分散保持することを特徴とする請求項6または請求項7に記載のデータ保持装置。  The data holding device according to claim 6 or 7, wherein the data holding unit holds the processing target data in a distributed manner with other data holding devices. 前記データ反映手段は、前記処理対象データに対する前記反映を完了すると、前記処理対象データにおける違反検出キーに関する前記管理データの振分先の前記トランザクション分散処理装置に対して、前記管理データ分散保持手段からの該管理データの削除を要求することを特徴とする請求項6から請求項8のいずれか1項に記載のデータ保持装置。  When the data reflection unit completes the reflection on the processing target data, the management data distribution holding unit transfers the management data to the transaction distribution processing device to which the management data related to the violation detection key in the processing target data is distributed. 9. The data holding device according to claim 6, wherein the management data is requested to be deleted. 請求項1から請求項3のいずれか1項に記載のトランザクション分散処理装置の構成変更に応じて、請求項4または請求項5に記載のアプリケーション装置に保持される前記トランザクション振分情報および前記管理データ振分情報を更新する振分情報更新手段を備えた構成管理装置。  The transaction distribution information and the management held in the application device according to claim 4 or 5 according to a configuration change of the transaction distributed processing device according to any one of claims 1 to 3. A configuration management apparatus comprising distribution information updating means for updating data distribution information. 前記振分情報更新手段は、前記データ保持装置の構成変更に応じて、前記トランザクション分散処理装置に保持される前記データ振分情報を更新することを特徴とする請求項10に記載の構成管理装置。  The configuration management apparatus according to claim 10, wherein the distribution information update unit updates the data distribution information held in the transaction distributed processing device according to a configuration change of the data holding device. . 請求項1から請求項3のいずれか1項に記載のトランザクション分散処理装置と、
前記トランザクション分散処理装置に対してトランザクションの処理を要求する請求項4または請求項5に記載のアプリケーション装置と、
前記アプリケーション装置によって生成されるトランザクションの対象となる処理対象データを保持する請求項6から請求項9のいずれか1項に記載のデータ保持装置と、
前記トランザクション分散処理装置、前記アプリケーション装置、および、前記データ保持装置の構成を管理する請求項10または請求項11に記載の構成管理装置と、
を備えた分散処理システム。
The transaction distributed processing device according to any one of claims 1 to 3,
The application device according to claim 4 or 5, wherein the transaction processing request is issued to the transaction distributed processing device;
The data holding device according to any one of claims 6 to 9, which holds processing target data that is a target of a transaction generated by the application device;
The configuration management device according to claim 10 or 11, which manages configurations of the transaction distributed processing device, the application device, and the data holding device;
Distributed processing system with
処理対象データに対するトランザクションを1つ以上のトランザクション分散処理装置に分散処理させる際に、
トランザクション間で一意性制約違反が発生し得る違反検出キーに対応付けた管理データを、前記違反検出キーに基づいて特定される前記トランザクション分散処理装置に振り分け、
前記管理データの振分先の前記トランザクション分散処理装置に、前記違反検出キーに対応付けられた他のトランザクションに基づく前記管理データが保持されていない場合に、前記処理対象データが前記トランザクションログの反映待ちである間、前記違反検出キーに対応付けて前記管理データを保持させてから、
前記トランザクションの振分先のトランザクション分散処理装置において前記トランザクションログを先行記録することによりトランザクション処理を完了し、
前記トランザクション処理とは非同期に、前記トランザクションログを前記処理対象データへ反映させる、分散処理方法。
When a transaction for data to be processed is distributed to one or more transaction distributed processing devices,
Management data associated with a violation detection key that may cause a unique constraint violation between transactions is distributed to the transaction distributed processing device specified based on the violation detection key,
When the management data based on another transaction associated with the violation detection key is not held in the transaction distributed processing device to which the management data is distributed, the processing target data is reflected in the transaction log. While waiting, after holding the management data in association with the violation detection key,
Transaction processing is completed by pre-recording the transaction log in the transaction distributed processing device to which the transaction is allocated,
A distributed processing method in which the transaction log is reflected in the processing target data asynchronously with the transaction processing.
トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段を用いて、
自装置に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログを先行記録することにより、トランザクション処理を完了し、
前記トランザクション処理とは非同期に、前記トランザクションログを、前記処理対象データに対して反映させる、トランザクション分散処理方法。
Management data distributed to its own device based on a violation detection key that can cause a uniqueness constraint violation between transactions, while the processing target data targeted by the transaction is waiting for reflection of the transaction log, the violation detection key Using management data distributed holding means to hold in association with
When processing a transaction to which processing is assigned to the own device, the management data distributed and holding means of the own device or another device to which the management data specified based on the violation detection key in the transaction is assigned, When other management data associated with the violation detection key is not retained, the management data relating to the transaction is retained in association with the violation detection key in the management data distribution and retention unit at the distribution destination The transaction processing is completed by pre-recording a transaction log representing the processing content of the transaction,
A transaction distributed processing method in which the transaction log is reflected on the processing target data asynchronously with the transaction processing.
トランザクション間で一意性制約違反が発生し得る違反検出キーに基づいて自装置に振り分けられた管理データを、前記トランザクションが対象とする処理対象データがトランザクションログの反映待ちである間、前記違反検出キーに対応付けて保持する管理データ分散保持手段を用いて、
自装置に処理が振り分けられたトランザクションを処理する際に、該トランザクションにおける前記違反検出キーに基づき特定される前記管理データの振分先となる自装置または他装置の前記管理データ分散保持手段に、該違反検出キーに対応付けられた他の管理データが保持されていない場合に、該トランザクションに関する前記管理データを、該振分先の前記管理データ分散保持手段に該違反検出キーに対応付けて保持させてから、該トランザクションの処理内容を表すトランザクションログをトランザクションログ保持手段に先行記録することにより、トランザクション処理を完了するトランザクション処理ステップと、
前記トランザクション処理とは非同期に、前記トランザクションログ保持手段に保持されたトランザクションログを、前記処理対象データに対して反映させる遅延反映ステップと、
をコンピュータ装置に実行させるトランザクション分散処理プログラムを記憶した記憶媒体。
Management data distributed to its own device based on a violation detection key that can cause a uniqueness constraint violation between transactions, while the processing target data targeted by the transaction is waiting for reflection of the transaction log, the violation detection key Using management data distributed holding means to hold in association with
When processing a transaction to which processing is assigned to the own device, the management data distributed and holding means of the own device or another device to which the management data specified based on the violation detection key in the transaction is assigned, When other management data associated with the violation detection key is not retained, the management data relating to the transaction is retained in association with the violation detection key in the management data distribution and retention unit at the distribution destination Transaction processing step for completing the transaction processing by pre-recording the transaction log representing the processing content of the transaction in the transaction log holding means,
A delay reflecting step of reflecting the transaction log held in the transaction log holding means asynchronously with the transaction processing on the processing target data;
A storage medium storing a transaction distributed processing program for causing a computer device to execute.
請求項14に記載のトランザクション分散処理方法を実行するトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報と、前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報とを用いて、
処理対象データに対するトランザクションを生成し、
生成したトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に対して要求し、
前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する、トランザクション振分方法。
A transaction distribution information for identifying a transaction distribution processing device that is a distribution destination of the transaction among the transaction distribution processing devices that execute the transaction distribution processing method according to claim 14, and the transaction distribution processing device , Using management data distribution information for specifying the transaction distributed processing device that is the distribution destination of the management data,
Generate a transaction for the data to be processed,
Request the transaction distributed processing device identified based on the transaction distribution information to process the generated transaction;
A transaction distribution method for notifying a transaction distributed processing device that is specified based on the management data distribution information to a transaction distributed processing device that is a distribution destination of the transaction.
請求項15に記載の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置のうち、前記トランザクションの振分先となるトランザクション分散処理装置を特定するためのトランザクション振分情報と、前記トランザクション分散処理装置のうち、前記管理データの振分先となる前記トランザクション分散処理装置を特定するための管理データ振分情報とを用いて、
前記処理対象データに対するトランザクションを生成するトランザクション生成ステップと、
前記トランザクション生成ステップにおいて生成されたトランザクションの処理を、前記トランザクション振分情報に基づいて特定されるトランザクション分散処理装置に対して要求するトランザクション振分ステップと、
前記管理データ振分情報に基づいて特定されるトランザクション分散処理装置を、前記トランザクションの振分先となるトランザクション分散処理装置に対して通知する管理データ振分ステップと、
をコンピュータ装置に実行させるトランザクション振分プログラムを記憶した記憶媒体。
Transaction distribution information for identifying a transaction distribution processing device that is a distribution destination of the transaction among transaction distribution processing devices that execute the transaction distribution processing program stored in the storage medium according to claim 15; Among the transaction distributed processing devices, using management data distribution information for specifying the transaction distributed processing device that is the distribution destination of the management data,
A transaction generation step of generating a transaction for the processing target data;
A transaction distribution step for requesting the transaction distributed processing device specified based on the transaction distribution information to process the transaction generated in the transaction generation step;
A management data distribution step for notifying a transaction distributed processing device, which is a distribution destination of the transaction, of a transaction distributed processing device specified based on the management data distribution information;
The storage medium which memorize | stored the transaction distribution program which makes a computer apparatus perform.
請求項14に記載のトランザクション分散処理方法を実行するトランザクション分散処理装置によって先行記録されるトランザクションログを反映させる処理対象データを保持する、データ保持方法。  A data holding method for holding data to be processed that reflects a transaction log recorded in advance by a transaction distributed processing device that executes the transaction distributed processing method according to claim 14. データ保持手段に保持される処理対象データに対して、請求項15に記載の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置によって先行記録されるトランザクションログを反映させる反映ステップを、コンピュータ装置に実行させるデータ保持プログラムを記憶した記憶媒体。  A reflecting step of reflecting a transaction log recorded in advance by a transaction distributed processing device that executes a transaction distributed processing program stored in a storage medium according to claim 15 on the processing target data held in the data holding means. A storage medium storing a data holding program to be executed by a computer device. 請求項14に記載のトランザクション分散処理方法を実行するトランザクション分散処理装置の構成変更に応じて、請求項16に記載のトランザクション振分方法において用いられる前記トランザクション振分情報および前記管理データ振分情報を更新する、構成管理方法。  The transaction distribution information and the management data distribution information used in the transaction distribution method according to claim 16 in accordance with a configuration change of a transaction distributed processing apparatus that executes the transaction distributed processing method according to claim 14. Configuration management method to be updated. 請求項15に記載の記憶媒体に記憶されたトランザクション分散処理プログラムを実行するトランザクション分散処理装置の構成変更に応じて、請求項17に記載の記憶媒体に記憶されたトランザクション振分プログラムによって用いられる前記トランザクション振分情報および前記管理データ振分情報を更新する振分情報更新ステップを、コンピュータ装置に実行させる構成管理プログラムを記憶した記憶媒体。  The said transaction distribution program memorize | stored in the storage medium of Claim 17 is used by the transaction distribution program memorize | stored according to the structure change of the transaction distribution processing apparatus which executes the transaction distribution processing program memorize | stored in the storage medium of Claim 15 A storage medium storing a configuration management program for causing a computer apparatus to execute a distribution information update step for updating transaction distribution information and the management data distribution information.
JP2015554517A 2013-12-24 2014-12-02 Transaction distributed processing apparatus, method, system, and storage medium Expired - Fee Related JP6172294B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013265516 2013-12-24
JP2013265516 2013-12-24
PCT/JP2014/006020 WO2015097991A1 (en) 2013-12-24 2014-12-02 Transaction distribution processing device, method, system and memory medium

Publications (2)

Publication Number Publication Date
JPWO2015097991A1 true JPWO2015097991A1 (en) 2017-03-23
JP6172294B2 JP6172294B2 (en) 2017-08-02

Family

ID=53477903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015554517A Expired - Fee Related JP6172294B2 (en) 2013-12-24 2014-12-02 Transaction distributed processing apparatus, method, system, and storage medium

Country Status (2)

Country Link
JP (1) JP6172294B2 (en)
WO (1) WO2015097991A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797850B (en) * 2016-08-30 2021-09-21 阿里巴巴集团控股有限公司 Method, device and system for distributed transaction processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
JP2009175854A (en) * 2008-01-22 2009-08-06 Fujitsu Ltd Program, method and computer system for securing data consistency
JP2013033345A (en) * 2011-08-01 2013-02-14 Internatl Business Mach Corp <Ibm> Transaction processing system, method and program
WO2013046883A1 (en) * 2011-09-30 2013-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション Transaction processing system, method and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
JP2009175854A (en) * 2008-01-22 2009-08-06 Fujitsu Ltd Program, method and computer system for securing data consistency
JP2013033345A (en) * 2011-08-01 2013-02-14 Internatl Business Mach Corp <Ibm> Transaction processing system, method and program
WO2013046883A1 (en) * 2011-09-30 2013-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション Transaction processing system, method and program

Also Published As

Publication number Publication date
WO2015097991A1 (en) 2015-07-02
JP6172294B2 (en) 2017-08-02

Similar Documents

Publication Publication Date Title
CN114341792B (en) Data partition switching between storage clusters
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
JP5727020B2 (en) Cloud computing system and data synchronization method thereof
JP5081631B2 (en) Method and apparatus for managing data deletion
JP5191062B2 (en) Storage control system, operation method related to storage control system, data carrier, and computer program
CN104765661B (en) The multinode hot spare method of Metadata Service node in a kind of cloud storage service
JP4988370B2 (en) Method, system, and program for integrating session information for a cluster of sessions in a coupled session environment
JP2008527571A5 (en)
JP2007520783A (en) Redundant data allocation in data storage systems
JP5686034B2 (en) Cluster system, synchronization control method, server device, and synchronization control program
CN103312624A (en) Message queue service system and method
CN106104502A (en) Storage system transaction
US10031682B1 (en) Methods for improved data store migrations and devices thereof
CN106605217B (en) For the method and system for being moved to another website from a website will to be applied
CN109407975B (en) Data writing method, computing node and distributed storage system
JP2023541298A (en) Transaction processing methods, systems, devices, equipment, and programs
KR100977159B1 (en) Method And System Of File Metadata Management Transparent About Address Changing Of Data Servers And Their Disk Movements
CN110555317B (en) Application file change processing method, device and system
CN100550894C (en) The N road is shared the efficient lock management of flash copy in the storage system
US11429311B1 (en) Method and system for managing requests in a distributed system
WO2014102997A1 (en) Computer, control device for computer system, and recording medium
JP6172294B2 (en) Transaction distributed processing apparatus, method, system, and storage medium
CN110659303A (en) Read-write control method and device for database nodes
CN108351801A (en) Multi version removes manager
JP5577471B2 (en) Server computer, server computer system, and server computer control method

Legal Events

Date Code Title Description
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: 20170606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170619

R150 Certificate of patent or registration of utility model

Ref document number: 6172294

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees