JP2007293650A - Distributed transaction control system and its method - Google Patents
Distributed transaction control system and its method Download PDFInfo
- Publication number
- JP2007293650A JP2007293650A JP2006121534A JP2006121534A JP2007293650A JP 2007293650 A JP2007293650 A JP 2007293650A JP 2006121534 A JP2006121534 A JP 2006121534A JP 2006121534 A JP2006121534 A JP 2006121534A JP 2007293650 A JP2007293650 A JP 2007293650A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- end server
- commit
- distributed
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、並列処理型データベース管理システムにおける分散トランザクションのコミット処理、特にシステムの部分障害の発生に対する耐久性を向上させたデータベース管理システムに関する。 The present invention relates to a database management system with improved durability against a commit process of a distributed transaction in a parallel processing type database management system, in particular, the occurrence of a partial failure of the system.
従来、並列処理型データベース管理システムにおける分散トランザクション処理での障害復旧の技術については、特許文献1に記載のものが知られている。下記特許文献1に記載のものは、複数の計算機からなる分散トランザクションシステムで、計算機間に渡る障害発生に備えて、システム内でトランザクションごとに一意の通番をファイルで管理し、障害復旧後にデータの一貫性を回復することができる。 Conventionally, as a failure recovery technique in distributed transaction processing in a parallel processing database management system, the one described in Patent Document 1 is known. The one described in Patent Document 1 below is a distributed transaction system composed of a plurality of computers. In preparation for the occurrence of a failure between computers, a unique serial number is managed in a file for each transaction in the system, and data is restored after failure recovery. Consistency can be restored.
しかしながら、上記特許文献1に記載の技術は、障害が発生した計算機が障害復旧する場合に有効な技術であり、システム上の部分的な障害が発生した状態でも業務処理を続行するという用途には適用できない。 However, the technique described in Patent Document 1 is a technique that is effective when a computer in which a failure has occurred is recovered from a failure, and is used for continuing business processing even when a partial failure on the system has occurred. Not applicable.
本発明の目的は、複数の計算機からなる分散トランザクションシステムで、特定の部位にて障害が発生した状態でも、稼動している部位のみでデータの一貫性を保ちつつトランザクションの回復を行い、かつ障害が発生した部位が復旧しなくても業務処理を続行することにある。 An object of the present invention is a distributed transaction system composed of a plurality of computers. Even when a failure occurs in a specific part, the transaction is recovered while maintaining data consistency only in the part that is operating, and This is to continue the business process even if the part where the error occurs is not recovered.
本発明は、並列処理型データベース管理システムにおけるトランザクションコミット処理において、フロントエンドサーバからバックエンドサーバへコミット保証指示を行う際に、フロントエンドサーバが通信を行っている全てのバックエンドサーバの情報を各々のバックエンドサーバへ分配する機構を用意して、バックエンドサーバのみでトランザクション決着処理を可能とすることを特徴とする。 In the transaction commit processing in the parallel processing type database management system, the present invention provides information on all back-end servers with which the front-end server communicates when issuing a commit guarantee instruction from the front-end server to the back-end server. It is characterized in that a mechanism for distributing to the back-end servers is prepared so that transaction settlement processing can be performed only by the back-end servers.
本発明によれば、ネットワーク上に分散配置されたサーバにてトランザクション処理を行う並列処理型データベース管理システムにおいて、フロントエンドサーバにて障害が発生した状態でも、稼動している他のサーバでデータの一貫性を保ちつつトランザクションの回復を行い、かつ障害が発生したフロントエンドサーバが復旧しなくても業務処理を続行できるという効果が有る。 According to the present invention, in a parallel processing database management system that performs transaction processing on servers distributed on a network, even if a failure occurs in a front-end server, Transactions can be recovered while maintaining consistency, and business processing can be continued even if the failed front-end server does not recover.
さらに、フロントエンドサーバではログを取得しないため、フロントエンドサーバのログファイル用意する必要が無く、バックエンドサーバにログ情報を集約できるという効果も有る。 Furthermore, since the front-end server does not acquire the log, there is no need to prepare the log file of the front-end server, and there is an effect that the log information can be collected on the back-end server.
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。 Hereinafter, an embodiment for carrying out the present invention will be specifically described with reference to the drawings.
図1は、本発明の実施の並列処理型データベース管理システムの構成を示すブロック図である。本並列処理型データベース管理システムは、図1に示すように、トランザクションを管理するフロントエンドサーバが、個々にデータベースを管理しているバックエンドサーバと相互に通信を行って、アプリケーションプログラムからのデータ操作の要求を処理する。Aノード1においてアプリケーションプログラム2からデータ操作の要求が発生すると、Bノード11における本並列処理型データベース管理システムのトランザクション管理を行うフロントエンドサーバ12がデータ操作要求の内容を解析し、該当するデータベースに対してデータ操作の要求を行う。フロントエンドサーバ12からのデータ操作要求は、Eノード41またはFノード51におけるバックエンドサーバ(42,52)が受け、該当するデータベース(43,53)にアクセスする。
FIG. 1 is a block diagram showing a configuration of a parallel processing database management system according to the embodiment of the present invention. As shown in FIG. 1, the parallel processing database management system is configured such that a front-end server that manages a transaction communicates with a back-end server that individually manages a database to manipulate data from an application program. Process the request. When a data operation request is generated from the
データ操作処理が完了し、アプリケーションプログラム2からコミット要求が発生すると、フロントエンドサーバ12はバックエンドサーバ(42,52)と通信を行っているというトランザクションの構成情報と共に、バックエンドサーバ(42,52)にコミット指示を送信する。バックエンドサーバ(42,52)では、ログ情報管理処理部(44,54)がデータベース更新履歴とトランザクション構成情報をログファイル(45,55)に取得し、データベース(43,53)に対する処理が完了した後、コミット処理完了をフロントエンドサーバ12に報告して一連のトランザクション処理を完了する。
When the data operation process is completed and a commit request is generated from the
Cノード21においてアプリケーションプログラム22からデータ操作の要求が発生した場合は、Dノード31のフロントエンドサーバ32がデータ操作要求の内容を解析し、同様の処理を行う。
When a data operation request is generated from the
図2はトランザクション構成情報の分配を行わない従来のトランザクション処理方式の流れを示すフローチャートであり、図3はその構成を示すブロック図である。以降、図2、図3を参照して説明する。 FIG. 2 is a flowchart showing a flow of a conventional transaction processing method in which transaction configuration information is not distributed, and FIG. 3 is a block diagram showing the configuration. Hereinafter, description will be made with reference to FIGS.
まず、アプリケーションプログラム302よりステップ201において、データ操作要求が発生する。これを受けて、フロントエンドサーバ312がステップ202でトランザクション開始処理を行う。次に、ステップ203でデータベース操作指示を、バックエンドサーバ(342,352)に送信する。
First, in
バックエンドサーバ(342,352)では、データベース操作指示を受け、ステップ204においてデータベース(343,353)の操作処理を行う。
The back-end server (342, 352) receives a database operation instruction, and performs operation processing of the database (343, 353) in
データベース操作処理(ステップ204)が終了すると、バックエンドサーバ(342,352)は処理完了をフロントエンドサーバ312に報告し、フロントエンドサーバ312に制御を戻す。これにより、フロントエンドサーバ312ではステップ205にてデータ操作成功の応答をアプリケーションプログラム302に返す。
When the database operation process (step 204) ends, the back-end server (342, 352) reports the process completion to the front-end server 312 and returns control to the front-end server 312. As a result, the front end server 312 returns a data operation success response to the application program 302 in
アプリケーションプログラム302では、次のステップ206においてコミット要求を送り、これを受けたフロントエンドサーバ312では、ステップ207でコミット保証指示をバックエンドサーバ(342,352)に送信する。
The application program 302 sends a commit request in the next step 206, and the front end server 312 that receives this sends a commit guarantee instruction to the back end servers (342, 352) in
バックエンドサーバ(342,352)では、ステップ208でログ情報管理処理部(344,354)において、データベース更新履歴をログファイル(345,355)に取得する。データベース更新履歴を取得した後、バックエンドサーバ(342,352)は、ステップ209でコミット保証処理成功応答をフロントエンドサーバ312に返す。
In the back-end server (342, 352), in step 208, the log information management processing unit (344, 354) acquires the database update history in the log file (345, 355). After acquiring the database update history, the back-end server (342, 352) returns a commit guarantee process success response to the front-end server 312 in
フロントエンドサーバ312では、ステップ210においてコミット保証成功応答によりコミット決定を行う。続いて、ステップ211でログ情報管理処理部313において、コミット決定履歴とバックエンドサーバ(342,352)と通信を行っているというトランザクション構成情報をログファイル314に取得する処理を行う。さらに、ステップ212においてコミット指示をバックエンドサーバ(342,352)に送信する。
In step 210, the front-end server 312 determines a commit based on a commit guarantee success response. Subsequently, in
バックエンドサーバ(342,352)ではコミット指示を受信すると、ステップ213においてログ情報管理処理部(344,354)がログファイル(345,355)にコミット決定履歴を取得する。そして、ステップ214においてデータベース(343,353)の実更新を行う。データベース(343,353)の実更新の終了後、フロントエンドサーバ312に制御を戻す。
When the back-end server (342, 352) receives the commit instruction, in
フロントエンドサーバ312では、ステップ215においてトランザクション終了処理を行い、次のステップ216でアプリケーションプログラム302にコミット成功の応答を返す。アプリケーションプログラム302がコミット成功の応答を受け、ステップ217においてコミットを完了し、1トランザクションは終了する。
The front end server 312 performs transaction end processing in
このようにして、各ノードのサーバは二相コミットプロトコルにしたがって互いに通信を行い、1つのトランザクション処理を行う。 In this way, the servers of each node communicate with each other according to the two-phase commit protocol and perform one transaction process.
以上のようなトランザクション構成情報の分配を行わない従来のトランザクション処理方式では、ステップ208からステップ212の間にフロントエンドサーバ312やBノード311で処理続行不可能な障害が発生した場合、障害部位が復旧されなければバックエンドサーバ(342,352)はデータベース(343,353)の実更新の可否を判断できず、障害部位の復旧まで待ち合わせなければならない。このため、Dノード331のフロントエンドサーバ332が稼動していても、バックエンドサーバ(342,352)へのデータ操作が不可能となり、業務処理を続行できない状態となる。
In the conventional transaction processing method that does not distribute transaction configuration information as described above, when a failure that cannot be continued in the front-end server 312 or the
一方、図4は本発明であるトランザクション構成情報の分配を行うトランザクション処理方式の流れを示すフローチャートである。以降、図1、図4を参照して説明する。 On the other hand, FIG. 4 is a flowchart showing the flow of a transaction processing method for distributing transaction configuration information according to the present invention. Hereinafter, a description will be given with reference to FIGS. 1 and 4.
アプリケーションプログラム2よりステップ401において、データ操作要求が発生すれば、フロントエンドサーバ12はステップ402からのトランザクション処理の開始を行う。まず、ステップ402でトランザクション開始処理を行い、次にステップ403でデータベース操作指示を、バックエンドサーバ(42,52)に送信する。
If a data operation request is generated from the
バックエンドサーバ(42,52)では、データベース操作指示を受け、ステップ404においてデータベース(43,53)の操作処理を行う。データベース操作処理(ステップ404)が終了すると、バックエンドサーバ(42,52)は処理完了をフロントエンドサーバ12に報告し、フロントエンドサーバ12に制御を戻す。これにより、フロントエンドサーバ12ではステップ405にてデータ操作成功の応答をアプリケーションプログラム2に返す。
The back-end server (42, 52) receives a database operation instruction, and performs operation processing of the database (43, 53) in step 404. When the database operation process (step 404) ends, the back-end server (42, 52) reports the process completion to the front-
アプリケーションプログラム2では、次のステップ406においてコミット要求を送り、これを受けたフロントエンドサーバ12では、ステップ407でコミット保証指示と共に、バックエンドサーバ(42,52)と通信を行っているというトランザクション構成情報を、バックエンドサーバ(42,52)に送信する。
The
バックエンドサーバ(42,52)では、ステップ408でログ情報管理処理部(44,54)において、データベース更新履歴とフロントエンドサーバ12から受けたトランザクション構成情報をログファイル(45,55)に取得する。データベース更新履歴とトランザクション構成情報を取得した後、バックエンドサーバ(42,52)は、ステップ409でコミット保証処理成功応答をフロントエンドサーバ12に返す。
In the back-end server (42, 52), in
フロントエンドサーバ12では、ステップ410においてコミット保証成功応答によりコミット決定を行う。続いて、ステップ411においてコミット指示をバックエンドサーバ(42,52)に送信する。
In the
バックエンドサーバ(42,52)ではコミット指示を受信すると、ステップ412においてログ情報管理処理部(44,54)がログファイル(45,55)にコミット決定履歴を取得する。そして、ステップ413においてデータベース(43,53)の実更新を行う。データベース(43,53)の実更新の終了後、フロントエンドサーバ12に制御を戻す。
When the back-end server (42, 52) receives the commit instruction, the log information management processing unit (44, 54) acquires the commit determination history in the log file (45, 55) in step 412. In
フロントエンドサーバ12では、ステップ414においてトランザクション終了処理を行い、次のステップ415でアプリケーションプログラム2にコミット成功の応答を返す。アプリケーションプログラム2がコミット成功の応答を受け、ステップ416においてコミットを完了し、1トランザクションは終了する。
The front-
以上のようなトランザクション構成情報の分配を行うトランザクション処理方式では、ステップ408からステップ411の間にフロントエンドサーバ12やBノード11で処理続行不可能な障害が発生した場合でも、バックエンドサーバ(42,52)の各々でトランザクションを構成しているサーバが判明しているので、バックエンドサーバ(42,52)同士で通信を行い、トランザクションの決着方法を決定することができる。このため、Dノード31のフロントエンドサーバ32のように障害部位以外に稼動しているフロントエンドサーバがあれば、バックエンドサーバ(42,52)へのデータ操作が可能であり、業務処理を続行することができる。
In the transaction processing method that distributes the transaction configuration information as described above, even if a failure that cannot be continued in the front-
以上、本発明を実施例にもとづき具体的に説明したが、本発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。 Although the present invention has been specifically described above based on the embodiments, the present invention is not limited to the above embodiments, and various modifications can be made without departing from the scope of the invention.
1,301…Aノード(クライアント側システム)、21,321…Cノード(クライアント側システム)、2,22,302,322…アプリケーションプログラム、11,311…Bノード(フロントエンドサーバ側)、31,331…Dノード(フロントエンドサーバ側)、12,32,312,332…フロントエンドサーバ、41,341…Eノード(バックエンドサーバ側)、51,351…Fノード(バックエンドサーバ側)、42,52,342,352…バックエンドサーバ、43,53,343,353…データベース、44,54,313,333,344,354…ログ情報管理処理部、45,55,314,334,345,355…ログファイル。
1, 301 ... A node (client side system), 21, 321 ... C node (client side system), 2, 22, 302, 322 ... application program, 11, 311 ... B node (front end server side), 31, 331 ... D node (front end server side), 12, 32, 312, 332 ... front end server, 41, 341 ... E node (back end server side), 51, 351 ... F node (back end server side), 42 , 52, 342, 352 ... back-end server, 43, 53, 343, 353 ... database, 44, 54, 313, 333, 344, 354 ... log information management processing unit, 45, 55, 314, 334, 345, 355 …logfile.
Claims (3)
Based on the transaction configuration information distributed at the time of the partial failure in the transaction processing in which the servers distributed in the network perform communication corresponding to the data operation request and perform operations in parallel with each other, A distributed transaction control system comprising means for ending a transaction at a location other than the fault site.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006121534A JP2007293650A (en) | 2006-04-26 | 2006-04-26 | Distributed transaction control system and its method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006121534A JP2007293650A (en) | 2006-04-26 | 2006-04-26 | Distributed transaction control system and its method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007293650A true JP2007293650A (en) | 2007-11-08 |
Family
ID=38764222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006121534A Pending JP2007293650A (en) | 2006-04-26 | 2006-04-26 | Distributed transaction control system and its method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007293650A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885854A (en) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | Data backup method, data backup device and data backup system |
US9667475B2 (en) | 2014-02-28 | 2017-05-30 | Red Hat, Inc. | Systems and methods for communicating information of participants registered with a sub-coordinator during distributed transaction processing |
-
2006
- 2006-04-26 JP JP2006121534A patent/JP2007293650A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885854A (en) * | 2012-12-19 | 2014-06-25 | 华为技术有限公司 | Data backup method, data backup device and data backup system |
US9667475B2 (en) | 2014-02-28 | 2017-05-30 | Red Hat, Inc. | Systems and methods for communicating information of participants registered with a sub-coordinator during distributed transaction processing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5075736B2 (en) | System failure recovery method and system for virtual server | |
KR101835458B1 (en) | Method, system and computer-readable storage medium for restarting data processing systems | |
US8001075B2 (en) | Log file amnesia detection | |
JP5467625B2 (en) | Production-substitution system including a production system that processes transactions and a substitution system that is a backup system of the production system | |
US7899897B2 (en) | System and program for dual agent processes and dual active server processes | |
US20110184915A1 (en) | Cluster restore and rebuild | |
JP6639245B2 (en) | Server system, method and program for controlling server system. | |
WO2011158387A1 (en) | Data processing failure recovery method, system and program | |
JP2010244486A (en) | System and method for processing data, and computer | |
CN110825562B (en) | Data backup method, device, system and storage medium | |
US20120310885A1 (en) | Auto-Correction in Database Replication | |
US8682842B2 (en) | System and method for logging operations | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
US8725708B2 (en) | Resolving a unit of work | |
JP2008033778A (en) | Computer system, database restoration method, and database restoration program | |
JP2007293650A (en) | Distributed transaction control system and its method | |
CN112363873A (en) | Distributed consistent backup and recovery system and backup method thereof | |
US10102084B1 (en) | Decoupled maintenance and repository synchronization error detection | |
US20080178182A1 (en) | Work state returning apparatus, work state returning method, and computer product | |
US20220129446A1 (en) | Distributed Ledger Management Method, Distributed Ledger System, And Node | |
JP2009098715A (en) | Redundant system device, job execution method in redundant system device, and execution program | |
JP6093320B2 (en) | Distributed processing system | |
JP2012230721A (en) | System failure recovery method for virtual server and system for the same | |
JP6237050B2 (en) | Database system, database update method, and database update program | |
CN108763247B (en) | Method and device for processing user request in data migration process |