JP2012155499A - 情報処理装置およびデータベースシステム - Google Patents

情報処理装置およびデータベースシステム Download PDF

Info

Publication number
JP2012155499A
JP2012155499A JP2011013485A JP2011013485A JP2012155499A JP 2012155499 A JP2012155499 A JP 2012155499A JP 2011013485 A JP2011013485 A JP 2011013485A JP 2011013485 A JP2011013485 A JP 2011013485A JP 2012155499 A JP2012155499 A JP 2012155499A
Authority
JP
Japan
Prior art keywords
server
unit
result
execution
operation command
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
JP2011013485A
Other languages
English (en)
Other versions
JP5640767B2 (ja
Inventor
Yasuo Koike
康夫 小池
Daisuke Shimabayashi
大祐 島林
Kenji Iino
健二 飯野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011013485A priority Critical patent/JP5640767B2/ja
Priority to US13/331,133 priority patent/US20120191645A1/en
Publication of JP2012155499A publication Critical patent/JP2012155499A/ja
Application granted granted Critical
Publication of JP5640767B2 publication Critical patent/JP5640767B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】トランザクションなどの操作命令を1フェーズで確定することを課題とする。
【解決手段】正DBサーバは、アプリケーションサーバから操作命令を受信した場合に、当該操作命令を実行し、実行結果をアプリケーションサーバに応答する。その後、正DBサーバは、自装置が正常動作している際に、確定命令がアプリケーションサーバから送信された場合に、自装置の実行結果を自装置に反映させる。さらに、正DBサーバは、副DBサーバに自装置の実行結果を送信する。正DBサーバは、副DBサーバから、自装置の実行結果が反映されたことが通知された場合に、操作命令を確定させたことをアプリケーションサーバに送信する。一方、正DBサーバは、自装置が異常動作している際に、確定命令がアプリケーションサーバから送信された場合に、自装置が異常動作中であることを示す異常通知を副DBサーバに送信する。
【選択図】図4

Description

本発明は、情報処理装置およびデータベースシステムに関する。
従来、トランザクションは、ACID(Atomicity Consistency Isolation Durability)特性にもあるように、アプリケーション(Application)とデータベース(Database)との間で一貫している必要がある。このため、データベースでは、トランザクション(Transaction)の確定を行うコミット処理で一貫性、整合性を高めている。このコミット処理によって、トランザクションが途中で終了するなどの異常終了が防止でき、トランザクション処理におけるデータベースの信頼性も高まる。
また、トランザクション処理におけるデータベースの信頼性を高める手法としては、データベースを正副構成とする手法も利用されている。具体的には、トランザクションを実行する正データベースと、正データベースを複製した副データベースとの正副構成とする。そして、トランザクションのコミット時には、正データベースの更新差分を副データベースに送信して同期する。正データベースに異常が発生した場合やトランザクションの実行によって不整合が発生した場合には、副データベースを正データベースとして使用する。
また、コミット処理によって一度確定されたトランザクションは取り消すことができない。このため、複数のデータベースサーバ間に跨って実行される分散トランザクションの場合には、データベースサーバ間でコミットするタイミングの合意を取ることとなる。なお、複数のデータベース間を関連付ける手法としては、データベースリンク等などが利用される。
このような分散トランザクションをコミットする手法としては、2フェーズコミット制御や2相コミット制御などと呼ばれる手法が開示されている。かかる2フェーズコミット制御では、「コミット要求フェーズ」と「コミットフェーズ」の2段階フェーズでコミット処理が実行される。
1段階目の「コミット要求フェーズ」では、各データベースサーバのトランザクションに対して、コミットできる状態を示すコミット準備状態に遷移する指示を送信して、その結果を受け取る。2段階目の「コミットフェーズ」では、各データベースサーバのトランザクションがコミット準備状態に遷移した場合に、各トランザクションに対してコミットの指示を送信する。なお、「コミットフェーズ」では、トランザクションが1つでもコミット準備状態に遷移しない場合には、各トランザクションにロールバックの指示を送信する。
米国特許第5640561号明細書 特開平3−250257号公報
しかしながら、上述した従来の2フェーズコミット制御では、トランザクションなどの操作命令を1フェーズで確定することができないという課題があった。
例えば、2フェーズコミット制御では、分散トランザクションを構成するトランザクションが1つでも失敗すると、分散トランザクション全体がロールバックする。したがって、分散トランザクションをコミットするためには、各トランザクションが全部成功するまで再実行することとなる。つまり、2フェーズコミット制御では、「コミット要求フェーズ」によって全トランザクションがコミットできる状態に遷移したことが確認できるまで、「コミットフェーズ」を実行することができない。これに伴い、分散トランザクションでは通信回数が通常トランザクションの倍になるため性能が悪くなるという問題がある。また、分散トランザクションを構成するうちの1つのトランザクションでも失敗すると、トランザクション全体をロールバックする。この段階的な動作の実行中にサーバダウンなどが発生すると、データベースはインダウトな状態となり、アプリケーションは復旧時に結果を確認する必要がある。
一つの側面では、トランザクションなどの操作命令を1フェーズで確定することができる情報処理装置およびデータベースシステムを提供することを目的とする。
一観点によれば、情報処理装置は、各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記処理実行装置に応答する実行応答部を有する。情報処理装置は、自装置が正常動作している際に、前記操作命令を確定させる確定命令が前記処理実行装置から送信された場合に、前記実行応答部によって応答された実行結果を自装置に反映させる。そして、情報処理装置は、自装置を複製した複製装置に当該実行結果を送信する第1結果反映部を有する。また、情報処理装置は、自装置が異常動作している際に、前記確定命令が前記処理実行装置から送信された場合に、自装置が異常動作中であることを示す異常通知を前記複製装置に送信する第2結果反映部を有する。また、情報処理装置は、前記第1結果反映部によって実行結果が送信された前記複製装置から、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記処理実行装置に送信する確定送信部を有する。
開示の装置は、トランザクションなどの操作命令を1フェーズで確定する効果を奏する。
図1は、実施例1に係るデータベースシステムの全体構成を示す図である。 図2は、実施例2に係るアプリケーションサーバの構成を示すブロック図である。 図3は、マルチキャスト記憶部に記憶される情報の例を示す図である。 図4は、実施例2に係るDBサーバの構成を示すブロック図である。 図5は、正副関係記憶部に記憶される自装置よりも昇格順序が前のサーバを判断するためのデータ構造例を示す図である。 図6は、正副関係記憶部に記憶される自装置よりも昇格順序が後のサーバを判断するためのデータ構造例を示す図である。 図7は、操作命令記憶部に記憶される情報の例を示す図である。 図8は、操作結果ログ記憶部に記憶される情報の例を示す図である。 図9は、正DBサーバから副DBサーバに送信される更新ログの例を示す図である。 図10は、実施例2に係るコミット処理の流れを示すシーケンス図である。 図11は、実施例2に係るコミット処理中に異常が発生した場合の処理の流れを示すシーケンス図である。 図12は、実施例2に係る通信異常が発生した場合のコミット処理の流れを示すシーケンス図である。 図13は、2フェーズコミット制御の処理の流れを示すシーケンス図である。 図14は、アプリケーションサーバ制御プログラムを実行するコンピュータシステムの例を示す図である。 図15は、データベースサーバ制御プログラムを実行するコンピュータシステムの例を示す図である。
以下に、本願の開示する情報処理装置およびデータベースシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るデータベースシステムの全体構成を示す図である。図1に示すように、このシステムは、アプリケーションサーバ10と、正DB(Database)サーバ1と副DBサーバ1Aと副DBサーバ1Bと、正DBサーバ2と副DBサーバ2Aと副DBサーバ2Bと、正DBサーバ3と副DBサーバ3Aと副DBサーバ3Bとを有する。このシステムでは、アプリケーションサーバ10と各DBサーバとが、インターネットやLAN(Local Area Network)などのネットワークなどによって、相互に通信可能に接続される。
アプリケーションサーバ10は、各DBサーバにトランザクションを実行したり、複数のDBサーバを跨った分散トランザクションを実行したりするアプリケーションを実行制御するサーバ装置である。
正DBサーバ1は、アプリケーションサーバ10の処理対象となるデータを記憶するデータベースサーバ装置である。副DBサーバ1Aと1Bは、正DBサーバ1が記憶するデータを複製して記憶するデータベースサーバ装置である。この正DBサーバ1と副DBサーバ1Aまたは副DBサーバ1Bは、冗長構成における現用装置と待機装置とに相当する。すなわち、正DBサーバ1で障害が発生した場合に、副DBサーバ1Aが正DBサーバとして機能し、障害発生以降の処理を継続する。
なお、正DBサーバ2と副DBサーバ2Aと副DBサーバ2Bとの関係も、正DBサーバ3と副DBサーバ3Aと副DBサーバ3Bとの関係も、正DBサーバ1と副DBサーバ1Aと副DBサーバ1Bとの関係と同様なので、ここでは省略する。
このような状態において、アプリケーションサーバ10は、DBサーバ1に対する操作命令を送信する場合、正DBサーバ1、副DBサーバ1A、1Bにマルチキャストで送信する。同様に、DBサーバ2に対する操作命令を送信する場合、正DBサーバ2、副DBサーバ2A、2Bにマルチキャストで送信する。アプリケーションサーバ10は、操作命令を確定させる場合に、トランザクションに参加している各データベースサーバに、操作命令を確定させる確定命令をマルチキャストで送信する。
そして、正DBサーバ1と正DBサーバ2と正DBサーバ3は、アプリケーションサーバ10から操作命令を受信した場合に、当該操作命令を実行し、実行結果をアプリケーションサーバ10に応答する。また、正DBサーバ1と正DBサーバ2と正DBサーバ3は、自装置が正常に動作している際に、確定命令を受信した場合に、実行結果を自装置に反映させるとともに、当該実行結果を各副サーバに送信する。その後、正DBサーバ1と正DBサーバ2と正DBサーバ3は、各副DBサーバから、実行結果が反映されたことが通知された場合に、操作命令を確定させたことをアプリケーションサーバ10に送信する。一方、正DBサーバ1と正DBサーバ2と正DBサーバ3は、自装置が異常動作している際に、確定命令を受信した場合に、異常通知を各副サーバに送信する。
そして、副DBサーバ1Aと1B、副DBサーバ2Aと2B、副DBサーバ3Aと3Bは、アプリケーションサーバ10から操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する。続いて、副DBサーバ1Aと1B、副DBサーバ2Aと2B、副DBサーバ3Aと3Bは、各正DBサーバから実行結果を受信した場合に、自装置で生成された実行結果を破棄して、受信した実行結果を自装置に反映させる。その後、副DBサーバ1Aと1B、副DBサーバ2Aと2B、副DBサーバ3Aと3Bは、当該実行結果を反映したことを各正DBサーバに通知する。一方、副DBサーバ1A、副DBサーバ2A、副DBサーバ3Aは、各正DBサーバから異常通知を受信した場合に、自装置で生成された実行結果を自装置に反映させる。その後、副DBサーバ1A、副DBサーバ2A、副DBサーバ3Aは、副DBサーバ1B、副DBサーバ2B、副DBサーバ3Bに当該実行結果を送信する。その後、実行結果を反映したことをアプリケーションサーバ10に通知する。
このように、図1に示したシステムは、1つのデータを正副となる複数のサーバに複製として持たせ、データベース操作命令をそれら複数サーバに送信し、独立して処理を行う。そして、システムは、コミット処理中に正DBで異常が発生した場合、副DBの処理結果を正式採用することで、処理を継続し、コミットを完了に導く。つまり、コミット処理は、常に正常に完了するため、2フェーズコミットのように「コミット可能かどうか」を問い合わせるフェーズは不要となる。この結果、トランザクションなどの操作命令を1フェーズで確定することができる。
次に、本実施例の開示するアプリケーションサーバとDBサーバの一例について説明する。実施例2では、アプリケーションサーバおよびDBサーバの構成、処理の流れ、実施例2による効果について順に説明する。
[アプリケーションサーバの構成]
図2は、実施例2に係るアプリケーションサーバの構成を示すブロック図である。図2に示すように、アプリケーションサーバ10は、通信制御I/F部11と入力部12と表示出力部13と記憶部14と制御部15とを有する。
通信制御I/F部11は、各DBサーバとの間の通信を制御するインタフェースである。例えば、通信制御I/F部11は、各DBサーバにトランザクションやコミット命令を送信する。また、通信制御I/F部11は、操作命令の実行結果やコミット結果を各DBサーバから受信する。
入力部12は、例えばキーボードやマウスなどであり、トランザクションの内容、トランザクションの開始指示、トランザクションのコミット指示などを管理者等から受け付けて、制御部15に出力する。表示出力部13は、例えばモニタやスピーカーなどであり、トランザクションの実行結果やコミット結果などを表示する。
記憶部14は、制御部15が実行するプログラムや各種データを記憶する半導体素子やハードディスクなどの記憶装置であり、例えばアプリケーション14aとマルチキャスト記憶部14bとを有する。
アプリケーション14aは、制御部15のアプリケーション実行部15aによって読み出されて実行されるソフトウエアである。このアプリケーション14aは、アプリケーション実行部15aによって実行されると、データの更新や読み出しなど各種処理を実行するトランザクションを実行する。
マルチキャスト記憶部14bは、アプリケーションサーバ10がトランザクションを送信する先を記憶する。図3は、マルチキャスト記憶部に記憶される情報の例を示す図である。図3に示すように、マルチキャスト記憶部14bは、「マルチキャストグループID、送信宛先」を記憶する。ここで記憶する「マルチキャストグループID」は、マルチキャストで送信する際のグループを示す識別子であり、「送信宛先」は、送信先のIP(InternetProtocol)アドレスなどである。
例えば、図3の場合、「マルチキャストグループID=Group1」には、「xxx.xxx.xxx.101」と「xxx.xxx.xxx.102」と「xxx.xxx.xxx.103」とが属していることが示される。また、「マルチキャストグループID=Group2」には、「xxx.xxx.xxx.101」と「xxx.xxx.xxx.102」とが属していることが示される。なお、図3に示した文字列や数字の羅列などに特段の意味はなく、任意に設定することができる。
制御部15は、トランザクションの実行要求やコミットの実行要求を送信する処理部であり、例えばCPU(Central Processing Unit)などの電子回路である。また、制御部15は、ミドルウエアなどで実現されていてもよい。かかる制御部15は、アプリケーション実行部15aと操作命令送信部15bとコミット命令送信部15cとを有する。
アプリケーション実行部15aは、アプリケーションを実行してトランザクションを発行する。例えば、アプリケーション実行部15aは、入力部12によってアプリケーションの実行依頼を受信した場合に、該当するアプリケーション14aを記憶部14から読み出す。そして、アプリケーション実行部15aは、読み出したアプリケーション14aを実行する。このようにして実行されたアプリケーション14aは、分散トランザクションなどの様々なトランザクションの実行を操作命令送信部15bに依頼する。
操作命令送信部15bは、各種データを記憶する正DBサーバと正DBサーバを複製した副DBサーバに、各種データを操作する操作命令をマルチキャストで送信する。例えば、操作命令送信部15bは、アプリケーション実行部15aによって実行されたアプリケーションから分散トランザクションの実行依頼を受信する。そして、操作命令送信部15bは、実行依頼された分散トランザクションの実行依頼に含まれる「マルチキャストグループID」に対応する「送信宛先」をマルチキャスト記憶部14bから特定する。その後、操作命令送信部15bは、特定した「送信宛先」各々に、分散トランザクションの実行命令を送信する。
一例として、図1の場合、操作命令送信部15bは、正DBサーバ1と副DBサーバ1Aと副DBサーバ1Bのそれぞれに、レコードAのデータを1にするトランザクションAの実行命令をマルチキャストで送信する。同様に、操作命令送信部15bは、正DBサーバ2と副DBサー2Aと副DBサーバ2Bのそれぞれに、レコードBのデータを2にするトランザクションBの実行命令をマルチキャストで送信する。
コミット命令送信部15cは、操作命令送信部15bによって送信された操作命令を確定させる場合に、正DBサーバと副DBサーバそれぞれに、操作命令を確定させるコミット命令をマルチキャストで送信する。例えば、コミット命令送信部15cは、操作命令送信部15bによって送信された操作命令の実行結果を正DBサーバから受信する。すると、コミット命令送信部15cは、正DBサーバと副DBサーバそれぞれに、実行したトランザクションを確定させるコミット命令を送信する。
一例として、図1の場合、コミット命令送信部15cは、正DBサーバ1からトランザクションAの実行結果を受信する。すると、コミット命令送信部15cは、正DBサーバ1と副DBサーバ1Aと副DBサーバ1Bのそれぞれに、トランザクションAを確定させるコミット命令をマルチキャストで送信する。また、コミット命令送信部15cは、正DBサーバ2からトランザクションBの実行結果を受信する。すると、コミット命令送信部15cは、正DBサーバ2と副DBサーバ2Aと副DBサーバ2Bのそれぞれに、トランザクションBを確定させるコミット命令をマルチキャストで送信する。
[DBサーバの構成]
図4は、実施例2に係るDBサーバの構成を示すブロック図である。正DBサーバと副DBサーバは、同様の機能を有するので、ここでは両方をまとめたDBサーバとして説明する。図4に示すように、DBサーバ20は、通信制御I/F部21と入力部22と表示出力部23とストレージ部24と正副関係記憶部25と操作命令記憶部26と操作結果ログ記憶部27と制御部30とを有する。
通信制御I/F部21は、他のDBサーバやアプリケーションサーバ10との間の通信を制御するインタフェースである。例えば、通信制御I/F部21は、トランザクションの実行命令やコミット命令をアプリケーションサーバ10から受信する。また、通信制御I/F部21は、トランザクションの実行結果やコミット結果をアプリケーションサーバ10に送信する。
入力部22は、例えばキーボードやマウスなどであり、ストレージ部24への各種実行命令、正副切り替え指示などの管理者による操作を受け付けて、制御部30に出力する。表示出力部23は、例えばモニタやスピーカーなどであり、トランザクションの実行結果やコミット結果などを表示する。
ストレージ部24は、アプリケーションサーバ10の操作対象となるデータ、言い換えると、トランザクションの実行対象となるデータを記憶するデータベースであり、例えば半導体素子やハードディスクなどの記憶装置である。
正副関係記憶部25は、自装置が正DBサーバか副DBサーバかを判定する際に用いる情報を記憶する。図5は、正副関係記憶部に記憶される自装置よりも昇格順序が前のサーバを判断するためのデータ構造例を示す図であり、図6は、正副関係記憶部に記憶される自装置よりも昇格順序が後のサーバを判断するためのデータ構造例を示す図である。なお、図5や図6に示した文字列や数字の羅列などに特段の意味はなく、任意に設定することができる。
図5や図6に示すように、正副関係記憶部25は、「前DB情報、ステータス、Nextポインタ」を対応付けて記憶する。図5に示される「前DB情報」は、DBサーバを示す情報であり、「ステータス」は、前DB情報に示されるDBサーバが「正」DBサーバか「副」DBサーバかを示す情報である。「Nextポインタ」は、前DB情報に示されるDBサーバよりも昇格順序が早いDBサーバの情報を示すポインタである。
また、図6に示される「後DB情報」は、DBサーバを示す情報であり、「ステータス」は、後DB情報に示されるDBサーバが「正」DBサーバか「副」DBサーバかを示す情報である。「Nextポインタ」は、後DB情報に示されるDBサーバよりも昇格順序が遅いDBサーバの情報を示すポインタである。
図5の場合、IPアドレス「xxx.xxx.xxx.101」のサーバが、「正」DBサーバである。現在「副」DBサーバであるIPアドレス「xxx.xxx.xxx.102」のDBサーバが、「xxx.xxx.xxx.101」のDBサーバが異常になった場合に、次に「正」DBサーバに昇格するDBサーバある。また、現在「副」DBサーバであるIPアドレス「xxx.xxx.xxx.103」のDBサーバが、「正」に昇格した「xxx.xxx.xxx.102」のサーバが異常になった場合に、次に「正」サーバに昇格するDBサーバである。そして、このIPアドレス「xxx.xxx.xxx.103」のサーバが自装置である「DBサーバ20」であることを示している。
図6の場合、現在「副サーバ」であるIPアドレス「xxx.xxx.xxx.104」のDBサーバが、自装置であるIPアドレス「xxx.xxx.xxx.103」のDBサーバが「正」DBサーバに昇格した後に異常になった場合に、次に「正」DBサーバに昇格するDBサーバである。現在「副サーバ」であるIPアドレス「xxx.xxx.xxx.105」のDBサーバが、「正」DBサーバに昇格した「xxx.xxx.xxx.104」のDBサーバが異常になった場合に、次に「正」DBサーバに昇格するサーバである。
図4に戻り、操作命令記憶部26は、アプリケーションサーバ10から受信した分散トランザクションを記憶する。図7は、操作命令記憶部に記憶される情報の例を示す図である。図7に示すように、操作命令記憶部26は、「クライアントID、トランザクションID、操作命令」を対応付けて記憶する。なお、図7に示した文字列や数字の羅列などに特段の意味はなく、任意に設定することができる。
ここで記憶される「クライアントID」は、分散トランザクションなどの操作命令を発行した装置を示す情報である。「トランザクションID」は、アプリケーションサーバ10やDBサーバによって付与され、トランザクションなどの操作命令を一意に識別する識別子である。「操作命令」は、操作するための情報が入ったデータ(構造体)の先頭アドレスを示す。
図7の場合、トランザクションID=1とするトランザクションであって、操作命令アドレス(0x00000020)に示される、操作情報データをアプリケーション1から受信したことを示す。また、トランザクションID=2とするトランザクションであって、操作命令アドレス(0x00000080)に示される、操作情報データをアプリケーション2から受信したことを示す。
操作結果ログ記憶部27は、トランザクションの実行結果を記憶する半導体素子やハードディスクなどの記憶装置である。図8は、操作結果ログ記憶部に記憶される情報の例を示す図である。図8に示すように、操作結果ログ記憶部27は、「クライアントID、トランザクションID、操作ログ」を対応付けて記憶する。なお、図8に示した文字列や数字の羅列などに特段の意味はなく、任意に設定することができる。
ここで記憶される「クライアントID」は、分散トランザクションなどの操作命令を発行した装置を示す情報である。「トランザクションID」は、実行されたトランザクションなどの操作命令を一意に識別する識別子である。「操作ログ」は、トランザクションの実行結果ログの一時格納アドレスである。なお、操作ログは、アドレス情報である場合に限られず、データそのものであってもよい。つまり、インメモリDBやRDB(Relational Database)など、サーバで使用するDB種別によって任意に設定変更できる。
図8の場合、アプリケーション1から受信したトランザクションID=1とするトランザクションを実行した結果、データが「0x20000020」に示すアドレスの値となったことを示す。また、アプリケーション2から受信したトランザクションID=2とするトランザクションを実行した結果、データが「0x20000080」に示すアドレスの値となったことを示す。
制御部30は、トランザクションの実行やコミットを実行する処理部であり、例えばCPUなどの電子回路である。また、制御部30は、ミドルウエアなどで実現されていてもよい。かかる制御部30は、生存監視部31とミラーリング制御部32と命令実行部33とコミット部34と結果通知部35とを有する。
生存監視部31は、例えばPINGやSNMP(Simple Network Management Protocol)等を用いて、自装置と接続される各DBサーバの生存監視を実行する。そして、生存監視部31は、障害が発生しているDBサーバを検出した場合に、障害を検出したことを制御部30の他の制御部に通知する。一例として、図1の場合、正DBサーバ1の生存監視部31は、副DBサーバ1Aと副DBサーバ1Bの生存監視を実施する。また、副DBサーバ1Aの生存監視部31は、正DBサーバ1と副DBサーバ1Bの生存監視を実施する。副DBサーバ1Bの生存監視部31は、正DBサーバ1と副DBサーバ1Aの生存監視を実施する。
ミラーリング制御部32は、正副関係記憶部25を参照し、自装置が正DBサーバか副DBサーバかを判定してデータの複製処理を行う。例えば、図5や図6の場合、ミラーリング制御部32は、自装置の「ステータス」が「副」となっていることから、自装置が副DBサーバとして動作していると判定する。また、後述する命令実行部33とコミット部34と結果通知部35は、正DBサーバである場合と副DBサーバである場合とで制御が異なる。したがって、命令実行部33とコミット部34と結果通知部35については、正DBサーバとして機能する場合と副DBサーバとして機能する場合とのそれぞれについて説明する。
命令実行部33は、アプリケーションサーバ10から操作命令を受信した場合に、当該操作命令を実行し、実行結果をアプリケーションサーバ10に応答する。
(正DBサーバの場合)
例えば、命令実行部33は、アプリケーションサーバ10からトランザクションを受信した場合に、受信したトランザクションに関する情報を操作命令記憶部26に格納する。そして、命令実行部33は、受信したトランザクションを実行し、実行した結果を操作結果ログ記憶部27に格納する。また、命令実行部33は、受信したトランザクションを実行したことをアプリケーションサーバ10に送信する。
(副DBサーバの場合)
例えば、命令実行部33は、アプリケーションサーバ10からトランザクションを受信した場合に、受信したトランザクションに関する情報を操作命令記憶部26に格納する。そして、命令実行部33は、受信したトランザクションを実行し、実行した結果を操作結果ログ記憶部27に格納する。
図4に戻り、コミット部34は、操作命令を確定させるコミット命令がアプリケーションサーバ10から送信された場合に、当該操作命令をコミットする。
(正DBサーバの場合)
例えば、コミット部34は、自装置が正常動作している際に、トランザクションをコミットさせるコミット命令がアプリケーションサーバ10から送信された場合に、命令実行部33によって応答された実行結果を自装置に反映させる。そして、コミット部34は、各副DBサーバに当該実行結果を送信する。
一例として、コミット部34は、自装置が正常動作している際に、トランザクションID=1のコミット命令をアプリケーションサーバ10から受信したとする。この場合、コミット部34は、操作命令記憶部26に記憶される「トランザクションID=1」の操作命令と操作結果ログ記憶部27に記憶される「トランザクションID=1」の操作ログを抽出する。その後、コミット部34は、ストレージ部24上の「アドレスポインタ」が示す操作情報に従った位置に、操作ログにおける「操作ログ」が示す値を反映する。そして、コミット部34は、更新したログを示す更新ログ、言い換えると、反映した操作ログを各副DBサーバに送信する。
コミット部34が送信する更新ログの例としては、図9に示す操作ログがある。図9は、正DBサーバから副DBサーバに送信される更新ログの例を示す図である。図9に示すように、更新ログは、「クライアントID、トランザクションID、更新ログ」が対応付けられている。「クライアントID」は、コミット対象のトランザクションの発行元装置を示す情報である。「トランザクションID」は、コミット対象のトランザクションなどを一意に識別する識別子である。「更新ログ」は、コミットすべき実行結果である。すなわち、図9の場合、アプリケーション1から発行されたトランザクションID=1は、データを2に更新してコミットすることが示されている。
また、コミット部34は、自装置が異常動作している際に、コミット命令がアプリケーションサーバ10から送信された場合に、自装置が異常動作中であることを示す異常通知を各副DBサーバに送信する。一例として、コミット部34は、トランザクションID=1のコミット命令をアプリケーションサーバ10から受信した後に、障害の発生を検出する。この場合、コミット部34は、自装置でコミット処理を実行することができないので、自装置が異常動作中であることを示す異常通知を各副DBサーバに送信する。図1の場合、正DBサーバ1のコミット部34は、副DBサーバ1Aと副DBサーバ1Bに異常通知を送信する。
(副DBサーバの場合)
例えば、コミット部34は、自装置の複製元である正DBサーバが生成した実行結果を正DBサーバから受信した場合に、自装置で生成された実行結果を破棄して、受信した実行結果を自装置に反映させる。また、コミット部34は、正DBサーバが異常動作していることを示す異常通知を正DBサーバから受信した場合に、自装置で生成された実行結果を自装置に反映させる。
一例として、コミット部34は、図9に示した更新ログを正DBサーバから受信した場合、受信した更新ログを正式な結果であると判定する。したがって、コミット部34は、アプリケーション1から発行されたトランザクションID=1については、自装置のストレージ部24上の該当アドレスポインタが示す操作情報の指す位置を、操作ログが示すデータで更新する。そして、コミット部34は、自装置の操作結果ログ記憶部27と操作命令記憶部26とのそれぞれにおいて、「アプリケーション1、トランザクションID=1」が対応付けられた情報を削除する。
また、コミット部34は、正DBサーバから異常通知を受信した場合に、アプリケーションサーバ10から受信したコミット命令から「クライアントID=アプリケーション1」と「トランザクションID=1」を抽出する。そして、コミット部34は、抽出した「アプリケーション1、トランザクションID=1」に対応する操作命令を操作命令記憶部26から特定し、さらに、対応する操作ログを操作結果ログ記憶部27から特定する。その後、コミット部34は、特定した操作命令の「アドレスポインタ」が示す操作情報の位置に格納されるデータを、特定した操作ログのデータで更新する。また、コミット部34は、自装置の操作結果ログ記憶部27と操作命令記憶部26とのそれぞれにおいて、「アプリケーション1、トランザクションID=1」が対応付けられた情報を削除する。この時、副DBサーバにコミット対象レコードに対する別アプリケーションからの操作ログが残っていた場合、新しいデータのレコードに対して更新ログを作成する。
図4に戻り、結果通知部35は、トランザクションのコミットが終了したことをアプリケーションサーバ10に送信する。
(正DBサーバの場合)
例えば、結果通知部35は、コミット部34によって実行結果が送信された各副DBサーバから、当該実行結果が反映されたことが通知された場合に、コミット完了をアプリケーションサーバ10に送信する。具体的には、結果通知部35は、正DBサーバである自装置の実行結果で自装置のストレージ部24を更新する。さらに、結果通知部35は、正DBサーバである自装置の実行結果で各副DBサーバのストレージ部24を更新されたことを示す通知を受信する。つまり、結果通知部35は、自装置で生成した実行結果で自装置および各副DBサーバが更新された場合に、コミット完了をアプリケーションサーバ10に送信する。
(副DBサーバの場合)
また、結果通知部35は、正DBサーバから受信した実行結果が反映された場合に、当該実行結果を反映したことを正DBサーバに通知する。また、結果通知部35は、自装置で生成した実行結果が反映された場合に、当該コミット完了をアプリケーションサーバ10に送信する。
つまり、結果通知部35は、正DBサーバが正常に動作している場合には、コミット結果を正DBサーバに通知する。また、結果通知部35は、正DBサーバが正常に動作していない場合には、正DBサーバに代わって、コミット完了通知をアプリケーションサーバ10に送信する。なお、副DBサーバは、正DBサーバとのデータの同一性を保証するために、データ反映後に複製処理完了を通知するが、副DBサーバが複数ある場合、2つ目以降の副DBサーバは性能を考慮して非同期に反映してもよい。
[処理の流れ]
次に、図10〜図13を用いて、実施例2に係るデータベースシステムにおける処理の流れを説明する。図10は、実施例2に係るコミット処理の流れを示すシーケンス図である。図11は、実施例2に係るコミット処理中に異常が発生した場合の処理の流れを示すシーケンス図である。図12は、実施例2に係る通信異常が発生した場合のコミット処理の流れを示すシーケンス図である。
ここでは、アプリケーションサーバ10が、正DBサーバAと副DBサーバAとを有するサーバ群Aと、正DBサーバBと副DBサーバBとを有するサーバ群Bとのそれぞれに、操作命令やコミット命令を送信する例について説明する。なお、ここで示した正DBサーバと副DBサーバは、図4に示した構成を有している。
(コミット処理の流れ)
図10に示すように、アプリケーションサーバ10のアプリケーション実行部15aは、記憶部14から読み出したアプリケーションを実行して、分散トランザクションを実行する(ステップS101)。すると、操作命令送信部15bは、サーバ群Aの正DBサーバAと副DBサーバAとのそれぞれに、トランザクションを発行する(ステップS102〜ステップS103)。
続いて、正DBサーバAの命令実行部33は、トランザクションを受信して操作命令記憶部26に格納する(ステップS104)。また、正DBサーバAの命令実行部33は、受信したトランザクションを実行して、実行した結果である操作ログ1を操作結果ログ記憶部27に格納する(ステップS105)。その後、正DBサーバAの命令実行部33は、受信したトランザクションを実行したことをアプリケーションサーバ10に送信する(ステップS106とステップS107)。
この間、副DBサーバAにおいても、副DBサーバAの命令実行部33は、トランザクションを受信して操作命令記憶部26に格納する(ステップS108)。そして、副DBサーバAの命令実行部33は、受信したトランザクションを実行して、実行した結果である操作ログ2を操作結果ログ記憶部27に格納する(ステップS109)。
続いて、操作命令送信部15bは、サーバ群Bの正DBサーバBと副DBサーバBとのそれぞれに、トランザクションを発行する(ステップS110〜ステップS111)。そして、正DBサーバBの命令実行部33は、トランザクションを受信して操作命令記憶部26に格納する(ステップS112)。また、正DBサーバBの命令実行部33は、受信したトランザクションを実行して、実行した結果である操作ログ3を操作結果ログ記憶部27に格納する(ステップS113)。その後、正DBサーバBの命令実行部33は、受信したトランザクションを実行したことをアプリケーションサーバ10に送信する(ステップS114とステップS115)。
この間、副DBサーバBにおいても、副DBサーバBの命令実行部33は、トランザクションを受信して操作命令記憶部26に格納する(ステップS116)。そして、副DBサーバBの命令実行部33は、受信したトランザクションを実行して、実行した結果である操作ログ4を操作結果ログ記憶部27に格納する(ステップS117)。
そして、アプリケーションサーバ10のコミット命令送信部15cは、正DBサーバAと正DBサーバBのそれぞれから、トランザクションが実行されたことを受信すると、コミット命令をマルチキャストで送信する(ステップS118〜ステップS123)。
すなわち、コミット命令送信部15cは、正DBサーバの数だけ、トランザクションが実行されたことが通知されると、正DBサーバAと副DBサーバAと正DBサーバBと副DBサーバBのそれぞれに、当該トランザクションに対するコミット命令を送信する。
続いて、正DBサーバAのコミット部34は、コミット命令を受信し(ステップS124)、トランザクション処理を実行する(ステップS125)。すなわち、コミット部34は、ステップS107で生成した操作ログ1でストレージ部24のデータを更新して、該当するトランザクションを確定させる。その後、コミット部34は、ステップS105で生成した操作ログ1を更新ログとして、副DBサーバAに送信する(ステップS126とステップS127)。
この間、副DBサーバAのコミット部34は、コミット命令を受信し(ステップS128)、正DBサーバのコミット待ちとなる(ステップS129)。その後、更新ログを受信した副DBサーバAのコミット部34は、ステップS109で生成した操作ログ2を破棄する(ステップS130)。そして、コミット部34は、正DBサーバから受信した更新ログ(操作ログ1)を自装置のストレージ部24に反映させて、該当するトランザクションを確定させる(ステップS131)。その後、結果通知部35は、データを反映させたことを正DBサーバAに通知する(ステップS132)。
正DBサーバAの結果通知部35は、各副DBサーバから、当該実行結果が反映されたことが通知された場合に、トランザクションの完了を示すコミット完了をアプリケーションサーバ10に送信する(ステップS133〜ステップS136)。
また、サーバ群Bにおいても同様に、正DBサーバBのコミット部34は、コミット命令を受信し(ステップS137)、トランザクション処理を実行する(ステップS138)。すなわち、コミット部34は、ステップS113で生成した操作ログ3でストレージ部24のデータを更新して、該当するトランザクションを確定させる。その後、コミット部34は、ステップS113で生成した操作ログ3を更新ログとして、副DBサーバBに送信する(ステップS139とステップS140)。
この間、副DBサーバBのコミット部34は、コミット命令を受信し(ステップS141)、正DBサーバBのコミット待ちとなる(ステップS142)。その後、更新ログを受信した副DBサーバBのコミット部34は、ステップS117で生成した操作ログ4を破棄する(ステップS143)。そして、コミット部34は、正DBサーバから受信した更新ログ(操作ログ3)を自装置のストレージ部24に反映させて、該当するトランザクションを確定させる(ステップS144)。その後、結果通知部35は、データを反映させたことを正DBサーバBに通知する(ステップS145)。
正DBサーバBの結果通知部35は、各副DBサーバから、当該実行結果が反映されたことが通知された場合に、トランザクションの完了を示すコミット完了をアプリケーションサーバ10に送信する(ステップS146〜ステップS149)。
このように、アプリケーションサーバ10は、サーバ群Aおよびサーバ群Bの両方から、コミット完了を受信した場合に、分散トランザクションの実行を完了する(ステップS150)。
(コミット処理中に異常が発生した場合の流れ)
次に、図11を用いて、コミット処理中に異常が発生した場合の流れを説明する。図11におけるステップS201〜ステップS223は、図10で説明したステップS101〜ステップS123と同様の処理なので、ここでは省略する。
正DBサーバAのコミット部34は、コミット命令を受信した後(ステップS224)、例えばハードウェアの異常などの異常発生を検出する。すると、コミット部34は、正DBサーバAに異常が発生したことを示す異常通知を副DBサーバAに送信する(ステップS225とステップS226)。
この間、副DBサーバAのコミット部34は、コミット命令を受信し(ステップS227)、正DBサーバのコミット待ちとなる(ステップS228)。その後、副DBサーバAのコミット部34は、異常通知を正DBサーバAから受信する(ステップS229)。すると、コミット部34は、更新ログを選定する(ステップS230)。すなわち、コミット部34は、ステップS209で生成した操作ログ2を自装置のストレージ部24に反映させて、該当するトランザクションを確定させる(ステップS231)。その後、結果通知部35は、データを反映させたことをアプリケーションサーバ10に通知する(ステップS232とステップS233)。
更新ログの選定において、副DBサーバAは、コミット対象のレコードに対し別のアプリケーションの操作ログが存在した場合、それらコミット処理対象以外の仕掛かり中の操作について、最新のデータに対し再度操作を実行する。仕掛かり中の操作はコミット処理を依頼していたアプリケーションにより排他待ち状態になっていると判断できるため、可能ならば排他待ちを解除する。
また、図11のステップS234〜ステップS246の処理は、図10のステップS137〜ステップS149までの処理と同様なので、ここでは省略する。
このように、アプリケーションサーバ10は、正DBサーバAで障害が発生した場合でも、サーバ群Aおよびサーバ群Bの両方から、コミット完了を受信して分散トランザクションの実行を完了する(ステップS247)。
(通信異常が発生した場合の流れ)
次に、図12を用いて、通信異常が発生した場合の流れを説明する。図12におけるステップS301〜ステップS319は、図10で説明したステップS101〜ステップS119と同様の処理なので、ここでは省略する。同様に、図12におけるステップS320とステップS321は、図10で説明したステップS120とステップS121と同様の処理なので、ここでは省略する。同様に、図12におけるステップS322〜ステップS335は、図10で説明したステップS123〜ステップS136と同様の処理なので、ここでは省略する。
図12の場合、アプリケーションサーバ10のコミット命令送信部15cからマルチキャストで送信されたコミット命令が、正DBサーバBとアプリケーションサーバ10との間の通信障害により、正DBサーバBに届かない。
この場合、副DBサーバBのコミット部34は、コミット命令を受信し(ステップS336)、正DBサーバBのコミット待ちとなる(ステップS337)。その後、副DBサーバBのコミット部34は、正DBサーバBから更新ログも異常通知も受信しないまま、ステップS336から所定時間が経過すると、タイムアウトを検出する(ステップS338)。すると、コミット部34は、正DBサーバBに対して、異常通知を送信する(ステップS339)。
この異常通知を受信した正DBサーバBの結果通知部35は、バックアップを取るなど、データベースシステムとしての各種処理を終了させる(ステップS341)。そして、正DBサーバBの結果通知部35は、自律的に停止し(ステップS342)、システムが停止したことを副DBサーバBに通知する(ステップS343)。なお、ステップS340〜ステップS346の処理の順番はこれに限定されるものではなく、任意に変更できる。
その後、副DBサーバBのコミット部34は、更新ログを選定する(ステップS344)。すなわち、コミット部34は、ステップS317で生成した操作ログ4を自装置のストレージ部24に反映させて、該当するトランザクションを確定させる(ステップS345)。その後、結果通知部35は、データを反映させたことをアプリケーションサーバ10に通知する(ステップS346とステップS347)。
このように、アプリケーションサーバ10は、正DBサーバBで通信障害が発生した場合でも、サーバ群Aおよびサーバ群Bの両方から、コミット完了を受信して分散トランザクションの実行を完了する(ステップS348)。
[実施例2による効果]
このように、実施例2によれば、分散トランザクションを構成するトランザクションがネットワーク異常やサーバ異常によって失敗しても、予備データベースで処理を継続し、トランザクションを成功させる。これにより、利用者は分散トランザクションを再実行しなくてもよい。さらには、DBのインダウト状態防止、アプリケーションに対するDBサーバダウンの隠蔽を実現できる。また、データベースサーバを正副構成とすることで、データの複製処理により、システムの可用性が向上する。また、正DBサーバで異常が発生した場合に、副DBサーバが自動的に正DBサーバに昇格するので、システム停止を伴うことなく、システム全体の影響を小さくすることができる。さらに、昇格順序を自動的に更新することができるので、システムの性能を向上させることができる。また、コミット処理の性能を向上させることができる。
また、一般的な2フェーズコミット制御と比較しても、分散している各トランザクションに対する通信回数が、サーバ間をまたがないトランザクションのコミット処理と同じになり、制御方式が単純化され性能が向上する。また、分散トランザクションのコミット確定処理の性能向上とともに、データベースのインダクト状態を防止できる。
(2フェーズコミット制御の処理の流れ)
ここで、図13を用いて、一般的な2フェーズコミット制御を簡単に説明する。図13は、2フェーズコミット制御の処理の流れを示すシーケンス図である。図13に示すように、アプリケーションサーバは、レコードAの操作命令をライブラリ装置に送信する(ステップS1とステップS2)。すると、ライブラリ装置は、レコードAを有するDBサーバAに転送する(ステップS3とステップS4)。その後、ライブラリ装置は、DBサーバAから実行結果を受信して、アプリケーションサーバに応答する(ステップS5とステップS6)。
同様に、アプリケーションサーバは、レコードBの操作命令をライブラリ装置に送信する(ステップS7とステップS8)。すると、ライブラリ装置は、レコードAを有するDBサーバBに転送する(ステップS9とステップS10)。その後、ライブラリ装置は、DBサーバBから実行結果を受信して、アプリケーションサーバに応答する(ステップS11とステップS12)。
その後、アプリケーションサーバは、レコードAとBを更新したトランザクションをコミットする指示をライブラリ装置に送信する(ステップS13とステップS14)。続いて、ライブラリ装置は、DBサーバAとDBサーバBのそれぞれにコミット要求を送信し、コミット準備状態に遷移させる(ステップS15〜ステップS21)。その後、ライブラリ装置は、DBサーバAとBからコミット準備状態に遷移した通知を受信すると、DBサーバAとBのそれぞれにコミット指示を送信する(ステップS22〜ステップS24)。続いて、DBサーバAおよびDBサーバB各々は、コミット処理を実行して、コミット結果をライブラリ装置に送信する(ステップS25〜ステップS28)。そして、ライブラリ装置は、DBサーバAとBからコミット終了結果を受信すると、アプリケーションサーバにコミット終了を送信する(ステップS29とステップS30)。
(比較結果)
このように、実施例2の図10は、図13と比較しても、分散している各トランザクションに対する通信回数が少ない。すなわち、分散トランザクションのコミット確定にかかる通信処理回数が削減され、性能を向上させることができる。また、図13の場合、トランザクションマネージャーでライブラリ装置あるが単一障害点であるため、トランザクション情報を持ったマネージャーで異常が発生すると、複数サーバ間のロック状況が解消されない可能性がある。実施例2では、これを防止することもできる。
さて、これまで実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(他サーバへの適用)
実施例1と2では、アプリケーションサーバとデータベースサーバとを有するデータベースシステムに適用した例について説明したが、これに限定されるものではない。例えば、アプリケーションサーバの代わりに、電子回路等を設計するCAD(Computer Aided Design)装置を適用し、データベースサーバの代わりに、CAD装置から指示を受け付けて実際に基板等を生成する生成装置を適用することもできる。すなわち、実施例1や2で説明した1フェーズコミットの制御手法は、現在2フェーズコミットで実施されている様々なシステムに適用することができる。
(生死確認)
例えば、実施例2では、自装置に接続される他の装置それぞれの生死を確認する例について説明したが、これに限定されるものではない。例えば、各DBサーバは、正副関係記憶部を参照し、正副の昇格順序が自装置の前後に設定されているDBサーバについて生死確認を実施するようにしてもよい。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図3、図5〜図9等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。例えば、命令実行部33とコミット部34とを統合するなど、その全部または一部を各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され得る。
(プログラム)
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図14は、アプリケーションサーバ制御プログラムを実行するコンピュータシステムの例を示す図である。図14に示すように、コンピュータシステム100は、バスを介して、ネットワークインターフェース101とHDD102とROM103とRAM104とCPU105とを有する。ここで、ネットワークインターフェース101は、図2に示した通信制御I/F部11に対応する。
また、ROM103には、上記実施例と同様の機能を発揮するプログラムが予め記憶されている。つまり、図14に示すように、ROM103は、アプリケーション実行プログラム103aと操作命令送信プログラム103bとコミット命令送信プログラム103cとが予め記憶されている。
そして、CPU105は、アプリケーション実行プログラム103aと操作命令送信プログラム103bとコミット命令送信プログラム103cとを読み出してRAM104に展開する。つまり、CPU105は、アプリケーション実行プログラム103aをアプリケーション実行プロセス105aとして実行する。また、CPU105は、操作命令送信プログラム103bを操作命令送信プロセス105bとして実行する。また、CPU105は、コミット命令送信プログラム103cをコミット命令送信プロセス105cとして実行する。
なお、アプリケーション実行プロセス105aは、図2に示したアプリケーション実行部15aに対応する。また、操作命令送信プロセス105bは、操作命令送信部15bに対応する。また、コミット命令送信プロセス105cは、コミット命令送信部15cに対応する。また、HDD102には、図2に示したアプリケーション14aに対応するアプリケーション102aと、マルチキャスト記憶部14bに対応するマルチキャストテーブル102bが設けられる。
ところで、上記したプログラム103a〜103cは、必ずしもROM103に記憶させておく必要はない。例えば、コンピュータシステム100に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム100の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介してコンピュータシステム100に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム100がこれらからプログラムを読み出して実行するようにしてもよい。
すなわち、このプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータシステム100は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム100によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
図15は、データベースサーバ制御プログラムを実行するコンピュータシステムの例を示す図である。図15に示すように、コンピュータシステム200は、バスを介して、ネットワークインターフェース201とHDD202とROM203とRAM204とCPU205とを有する。ここで、ネットワークインターフェース201は、図4に示した通信制御I/F部21に対応する。
また、ROM203には、上記実施例と同様の機能を発揮するプログラムが予め記憶されている。つまり、図15に示すように、ROM203は、生存監視プログラム203aとミラーリング制御プログラム203bと命令実行プログラム203cとコミットプログラム203dと結果通知プログラム203eとが予め記憶されている。
そして、CPU205は、各プログラム203a〜203eを読み出してRAM204に展開する。つまり、CPU205は、生存監視プログラム203aを生存監視プロセス205aとして実行する。また、CPU205は、ミラーリング制御プログラム203bをミラーリング制御プロセス205bとして実行する。また、CPU205は、命令実行プログラム203cを命令実行プロセス205cとして実行する。また、CPU205は、コミットプログラム203dをコミットプロセス205dとして実行する。また、CPU205は、結果通知プログラム203eを結果通知プロセス205eとして実行する。
なお、生存監視プロセス205aは、図4に示した生存監視部31に対応する。また、ミラーリング制御プロセス205bは、ミラーリング制御部32に対応する。また、命令実行プロセス205cは、命令実行部33に対応する。また、コミットプロセス205dは、コミット部34に対応する。また、結果通知プロセス205eは、結果通知部35に対応する。
また、HDD202には、図4に示した正副関係記憶部25に対応する正副関係テーブル202aが設けられる。同様に、HDD202には、操作命令記憶部26に対応する操作命令テーブル202bが設けられる。同様に、HDD202には、操作結果ログ記憶部27に対応する操作結果ログテーブル202cが設けられる。
ところで、上記したプログラム203a〜203eは、必ずしもROM203に記憶させておく必要はない。例えば、コンピュータシステム200に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム100の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、LAN、WANなどを介してコンピュータシステム200に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム200がこれらからプログラムを読み出して実行するようにしてもよい。
すなわち、このプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータシステム200は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム200によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記処理実行装置に応答する実行応答部と、
自装置が正常動作している際に、前記操作命令を確定させる確定命令が前記処理実行装置から送信された場合に、前記実行応答部によって応答された実行結果を自装置に反映させるとともに、自装置を複製した複製装置に当該実行結果を送信する第1結果反映部と、
自装置が異常動作している際に、前記確定命令が前記処理実行装置から送信された場合に、自装置が異常動作中であることを示す異常通知を前記複製装置に送信する第2結果反映部と、
前記第1結果反映部によって実行結果が送信された前記複製装置から、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記処理実行装置に送信する確定送信部と、
を有することを特徴とする情報処理装置。
(付記2)前記確定送信部は、前記処理実行装置から前記確定命令を受信できない異常状態であることを前記複製装置から受信した場合に、自装置を停止させることを特徴とする付記1に記載の情報処理装置。
(付記3)自装置に障害が発生した場合に、前記複製装置が複製元装置に昇格する昇格順序を記憶する昇格順序記憶部をさらに有し、
前記第2結果反映部は、さらに、前記昇格順序記憶部に記憶される昇格順序に従って、次に複製元装置に昇格する複製装置に対して、前記障害通知を送信することを特徴とする付記1または2に記載の情報処理装置。
(付記4)各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する結果生成部と
自装置の複製元である複製元装置が生成した実行結果を前記複製元装置から受信した場合に、前記結果生成部によって生成された実行結果を破棄して、受信した実行結果を自装置に反映させる第1結果反映部と、
前記複製元装置が異常動作していることを示す異常通知を前記複製元装置から受信した場合に、前記結果生成部によって生成された実行結果を自装置に反映させる第2結果反映部と、
前記第1結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記複製元装置に通知する第1結果通知部と、
前記第2結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記処理実行装置に通知する第2結果通知部と
を有することを特徴とする情報処理装置。
(付記5)前記第2結果反映部は、前記複製元装置の異常を検出した場合に、前記複製元装置に異常が発生したことを通知するとともに、前記結果生成部によって生成された実行結果を自装置に反映させることを特徴とする付記4に記載の情報処理装置。
(付記6)前記複製装置が複製元装置に昇格する昇格順序を記憶する昇格順序記憶部と、
前記複製元装置が異常動作していることが検出された場合に、前記昇格順序記憶部に記憶される昇格順序に従って、自装置が複製元装置に昇格すべきか否かを判定する判定部と、
前記判定部によって自装置が複製元装置に昇格すべきと判定された場合に、自装置を複製元装置に昇格させる昇格部とをさらに有することを特徴とする付記4または5に記載の情報処理装置。
(付記7)各種データを記憶する記憶制御装置と前記記憶制御装置を複製した複製装置に、前記各種データを操作する操作命令をマルチキャストで送信する操作命令送信部と、
前記操作命令送信部によって送信された操作命令を確定させる場合に、前記記憶制御装置と複製装置に、前記操作命令を確定させる確定命令をマルチキャストで送信する確定命令送信部と、
を有することを特徴とする情報処理装置。
(付記8)アプリケーションサーバと、複製元データベースサーバと、前記複製元データベースサーバを複製した複製先データベースサーバとを有するデータベースシステムであって、
前記アプリケーションサーバは、
前記複製元データベースサーバと複製先データベースサーバに、データベースに対する操作命令をマルチキャストで送信する操作命令送信部と、
前記操作命令送信部によって送信された操作命令を確定させる場合に、前記複製元データベースサーバと複製先データベースサーバに、前記操作命令を確定させる確定命令をマルチキャストで送信する確定命令送信部と、
前記複製元データベースサーバは、
前記アプリケーションサーバから操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記アプリケーションサーバに応答する実行応答部と、
自装置が正常動作している際に、前記アプリケーションサーバから確定命令が送信された場合には、前記実行応答部によって応答された実行結果を自装置に反映させるとともに、当該実行結果を前記複製先データベースサーバに送信する第1結果反映部と、
自装置が異常動作している際に、前記アプリケーションサーバから確定命令が送信された場合には、自装置が異常動作中であることを示す異常通知を前記複製先データベースサーバに送信する第2結果反映部と、
前記第1結果反映部によって実行結果が送信された前記複製先データベースサーバから、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記アプリケーションサーバに送信する確定送信部と、
前記複製先データベースサーバは、
前記アプリケーションサーバから操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する結果生成部と、
前記複製元データベースサーバから実行結果を受信した場合に、前記結果生成部によって生成された実行結果を破棄して、受信した実行結果を自装置に反映させる第1結果反映部と、
前記複製元データベースサーバから異常通知を受信した場合に、前記結果生成部によって生成された実行結果を自装置に反映させる第2結果反映部と、
前記第1結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記複製元データベースサーバに通知する第1結果通知部と、
前記第2結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記アプリケーションサーバに通知する第2結果通知部と
を有することを特徴とするデータベースシステム。
(付記9)前記複製先データベースサーバは、
前記第2結果通知部によって、前記実行結果を反映したことが前記アプリケーションサーバに通知された場合に、自装置を複製元データベースサーバに昇格させる昇格部をさらに有することを特徴とする付記8に記載のデータベースシステム。
(付記10)コンピュータに、
各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記処理実行装置に応答する実行応答手順と、
自装置が正常動作している際に、前記操作命令を確定させる確定命令が前記処理実行装置から送信された場合に、前記実行応答手順によって応答された実行結果を自装置に反映させるとともに、自装置を複製した複製装置に当該実行結果を送信する第1結果反映手順と、
自装置が異常動作している際に、前記確定命令が前記処理実行装置から送信された場合に、自装置が異常動作中であることを示す異常通知を前記複製装置に送信する第2結果反映手順と、
前記第1結果反映手順によって実行結果が送信された前記複製装置から、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記処理実行装置に送信する確定送信手順と、
を実行させることを特徴とする情報処理プログラム。
(付記11)コンピュータに、
各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する結果生成手順と
自装置の複製元である複製元装置が生成した実行結果を前記複製元装置から受信した場合に、前記結果生成手順によって生成された実行結果を破棄して、受信した実行結果を自装置に反映させる第1結果反映手順と、
前記複製元装置が異常動作していることを示す異常通知を前記複製元装置から受信した場合に、前記結果生成手順によって生成された実行結果を自装置に反映させる第2結果反映手順と、
前記第1結果反映手順によって実行結果が反映された場合に、当該実行結果を反映したことを前記複製元装置に通知する第1結果通知手順と、
前記第2結果反映手順によって実行結果が反映された場合に、当該実行結果を反映したことを前記処理実行装置に通知する第2結果通知手順と
を実行させることを特徴とする情報処理プログラム。
(付記12)コンピュータに、
各種データを記憶する記憶制御装置と前記記憶制御装置を複製した複製装置に、前記各種データを操作する操作命令をマルチキャストで送信する操作命令送信手順と、
前記操作命令送信手順によって送信された操作命令を確定させる場合に、前記記憶制御装置と複製装置に、前記操作命令を確定させる確定命令をマルチキャストで送信する確定命令送信手順と、
を実行させることを特徴とする情報処理プログラム。
10 アプリケーションサーバ
11 通信制御I/F部
12 入力部
13 表示出力部
14 記憶部
14a アプリケーション
14b マルチキャスト記憶部
15 制御部
15a アプリケーション実行部
15b 操作命令送信部
15c コミット命令送信部
20 DBサーバ
21 通信制御I/F部
22 入力部
23 表示出力部
24 ストレージ部
25 正副関係記憶部
26 操作命令記憶部
27 操作結果ログ記憶部
30 制御部
31 生存監視部
32 ミラーリング制御部
33 命令実行部
34 コミット部
35 結果通知部

Claims (8)

  1. 各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記処理実行装置に応答する実行応答部と、
    自装置が正常動作している際に、前記操作命令を確定させる確定命令が前記処理実行装置から送信された場合に、前記実行応答部によって応答された実行結果を自装置に反映させるとともに、自装置を複製した複製装置に当該実行結果を送信する第1結果反映部と、
    自装置が異常動作している際に、前記確定命令が前記処理実行装置から送信された場合に、自装置が異常動作中であることを示す異常通知を前記複製装置に送信する第2結果反映部と、
    前記第1結果反映部によって実行結果が送信された前記複製装置から、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記処理実行装置に送信する確定送信部と、
    を有することを特徴とする情報処理装置。
  2. 前記確定送信部は、前記処理実行装置から前記確定命令を受信できない異常状態であることを前記複製装置から受信した場合に、自装置を停止させることを特徴とする請求項1に記載の情報処理装置。
  3. 自装置に障害が発生した場合に、前記複製装置が複製元装置に昇格する昇格順序を記憶する昇格順序記憶部をさらに有し、
    前記第2結果反映部は、さらに、前記昇格順序記憶部に記憶される昇格順序に従って、次に複製元装置に昇格する複製装置に対して、前記異常通知を送信することを特徴とする請求項1または2に記載の情報処理装置。
  4. 各種処理を実行する処理実行装置から操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する結果生成部と
    自装置の複製元である複製元装置が生成した実行結果を前記複製元装置から受信した場合に、前記結果生成部によって生成された実行結果を破棄して、受信した実行結果を自装置に反映させる第1結果反映部と、
    前記複製元装置が異常動作していることを示す異常通知を前記複製元装置から受信した場合に、前記結果生成部によって生成された実行結果を自装置に反映させる第2結果反映部と、
    前記第1結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記複製元装置に通知する第1結果通知部と、
    前記第2結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記処理実行装置に通知する第2結果通知部と
    を有することを特徴とする情報処理装置。
  5. 前記複製装置が複製元装置に昇格する昇格順序を記憶する昇格順序記憶部と、
    前記複製元装置が異常動作していることが検出された場合に、前記昇格順序記憶部に記憶される昇格順序に従って、自装置が複製元装置に昇格すべきか否かを判定する判定部と、
    前記判定部によって自装置が複製元装置に昇格すべきと判定された場合に、自装置を複製元装置に昇格させる昇格部とをさらに有することを特徴とする請求項4に記載の情報処理装置。
  6. 前記複製装置が複製元装置に昇格する昇格順序を記憶する昇格順序記憶部と、
    前記複製元装置が異常動作していることが検出された場合に、前記昇格順序記憶部に記憶される昇格順序に従って、自装置が複製元装置に昇格すべきか否かを判定する判定部と、
    前記判定部によって自装置が複製元装置に昇格すべきと判定された場合に、自装置を複製元装置に昇格させる昇格部とをさらに有することを特徴とする請求項4または5に記載の情報処理装置。
  7. 各種データを記憶する記憶制御装置と前記記憶制御装置を複製した複製装置に、前記各種データを操作する操作命令をマルチキャストで送信する操作命令送信部と、
    前記操作命令送信部によって送信された操作命令を確定させる場合に、前記記憶制御装置と複製装置に、前記操作命令を確定させる確定命令をマルチキャストで送信する確定命令送信部と、
    を有することを特徴とする情報処理装置。
  8. アプリケーションサーバと、複製元データベースサーバと、前記複製元データベースサーバを複製した複製先データベースサーバとを有するデータベースシステムであって、
    前記アプリケーションサーバは、
    前記複製元データベースサーバと複製先データベースサーバに、データベースに対する操作命令をマルチキャストで送信する操作命令送信部と、
    前記操作命令送信部によって送信された操作命令を確定させる場合に、前記複製元データベースサーバと複製先データベースサーバに、前記操作命令を確定させる確定命令をマルチキャストで送信する確定命令送信部と、
    前記複製元データベースサーバは、
    前記アプリケーションサーバから操作命令を受信した場合に、当該操作命令を実行し、実行結果を前記アプリケーションサーバに応答する実行応答部と、
    自装置が正常動作している際に、前記アプリケーションサーバから確定命令が送信された場合には、前記実行応答部によって応答された実行結果を自装置に反映させるとともに、当該実行結果を前記複製先データベースサーバに送信する第1結果反映部と、
    自装置が異常動作している際に、前記アプリケーションサーバから確定命令が送信された場合には、自装置が異常動作中であることを示す異常通知を前記複製先データベースサーバに送信する第2結果反映部と、
    前記第1結果反映部によって実行結果が送信された前記複製先データベースサーバから、当該実行結果が反映されたことが通知された場合に、前記操作命令を確定させたことを前記アプリケーションサーバに送信する確定送信部と、
    前記複製先データベースサーバは、
    前記アプリケーションサーバから操作命令を受信した場合に、当該操作命令を実行して実行結果を生成する結果生成部と、
    前記複製元データベースサーバから実行結果を受信した場合に、前記結果生成部によって生成された実行結果を破棄して、受信した実行結果を自装置に反映させる第1結果反映部と、
    前記複製元データベースサーバから異常通知を受信した場合に、前記結果生成部によって生成された実行結果を自装置に反映させる第2結果反映部と、
    前記第1結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記複製元データベースサーバに通知する第1結果通知部と、
    前記第2結果反映部によって実行結果が反映された場合に、当該実行結果を反映したことを前記アプリケーションサーバに通知する第2結果通知部と
    を有することを特徴とするデータベースシステム。
JP2011013485A 2011-01-25 2011-01-25 情報処理装置、データ管理方法およびデータベースシステム Active JP5640767B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011013485A JP5640767B2 (ja) 2011-01-25 2011-01-25 情報処理装置、データ管理方法およびデータベースシステム
US13/331,133 US20120191645A1 (en) 2011-01-25 2011-12-20 Information processing apparatus and database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011013485A JP5640767B2 (ja) 2011-01-25 2011-01-25 情報処理装置、データ管理方法およびデータベースシステム

Publications (2)

Publication Number Publication Date
JP2012155499A true JP2012155499A (ja) 2012-08-16
JP5640767B2 JP5640767B2 (ja) 2014-12-17

Family

ID=46544930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011013485A Active JP5640767B2 (ja) 2011-01-25 2011-01-25 情報処理装置、データ管理方法およびデータベースシステム

Country Status (2)

Country Link
US (1) US20120191645A1 (ja)
JP (1) JP5640767B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715522B2 (en) 2014-03-28 2017-07-25 Fujitsu Limited Information processing apparatus and control method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552043B2 (en) * 2014-09-09 2020-02-04 Toshiba Memory Corporation Memory system
US11704205B2 (en) * 2019-08-16 2023-07-18 Verizon Patent And Licensing Inc. Systems and methods for transitioning from legacy computer systems

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464146A (ja) * 1990-07-04 1992-02-28 Hitachi Ltd 分散システムにおけるコミットメント処理の最適化方式
JPH08272753A (ja) * 1995-03-30 1996-10-18 Fujitsu Ltd 二重化構成をもつシステム制御装置
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
JP2005250998A (ja) * 2004-03-05 2005-09-15 Nec Corp 分散トランザクションシステム及び分散トランザクションの障害復旧方法並びにサーバ装置及びプログラム
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
WO2008136107A1 (ja) * 2007-04-25 2008-11-13 Fujitsu Limited 切替処理方法
WO2011002169A2 (ko) * 2009-07-02 2011-01-06 엔에이치엔(주) 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US6697805B1 (en) * 2000-04-14 2004-02-24 Microsoft Corporation XML methods and systems for synchronizing multiple computing devices
JP2007200085A (ja) * 2006-01-27 2007-08-09 Nec Corp データ複製システムおよびデータ複製方法
JP5486793B2 (ja) * 2008-11-07 2014-05-07 株式会社日立製作所 リモートコピー管理システム、方法及び装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464146A (ja) * 1990-07-04 1992-02-28 Hitachi Ltd 分散システムにおけるコミットメント処理の最適化方式
JPH08272753A (ja) * 1995-03-30 1996-10-18 Fujitsu Ltd 二重化構成をもつシステム制御装置
JP2002287999A (ja) * 2001-03-26 2002-10-04 Duaxes Corp サーバの二重化方法、二重化サーバシステム、および二重化データベースサーバ
JP2005250998A (ja) * 2004-03-05 2005-09-15 Nec Corp 分散トランザクションシステム及び分散トランザクションの障害復旧方法並びにサーバ装置及びプログラム
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
WO2008136107A1 (ja) * 2007-04-25 2008-11-13 Fujitsu Limited 切替処理方法
WO2011002169A2 (ko) * 2009-07-02 2011-01-06 엔에이치엔(주) 고가용성 데이터베이스 관리 시스템 및 이를 이용한 데이터베이스 관리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715522B2 (en) 2014-03-28 2017-07-25 Fujitsu Limited Information processing apparatus and control method

Also Published As

Publication number Publication date
JP5640767B2 (ja) 2014-12-17
US20120191645A1 (en) 2012-07-26

Similar Documents

Publication Publication Date Title
US11222043B2 (en) System and method for determining consensus within a distributed database
US10614098B2 (en) System and method for determining consensus within a distributed database
US10621200B2 (en) Method and apparatus for maintaining replica sets
JP5689106B2 (ja) フォールトトレラント動作をする金融取引所用突き合わせサーバ
US8898109B2 (en) Automatic transaction retry after session failure
US7434096B2 (en) Match server for a financial exchange having fault tolerant operation
CA2657882C (en) Fault tolerance and failover using active copy-cat
EP2903239B1 (en) Masking server outages from clients and applications
US7549079B2 (en) System and method of configuring a database system with replicated data and automatic failover and recovery
US20120330899A1 (en) Automatic failover configuration with lightweight observer
US9703634B2 (en) Data recovery for a compute node in a heterogeneous database system
CN110413687B (zh) 基于节点互证校验的分布式事务故障处理方法及相关设备
Zhou et al. {Fault-Tolerant} Replication with {Pull-Based} Consensus in {MongoDB}
JP5640767B2 (ja) 情報処理装置、データ管理方法およびデータベースシステム
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
Pedone et al. Pronto: High availability for standard off-the-shelf databases
JP2008242742A (ja) クラスタシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140811

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: 20140930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141013

R150 Certificate of patent or registration of utility model

Ref document number: 5640767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150