JP2010152591A - データベースシステム、データ処理方法及びデータ処理プログラム - Google Patents
データベースシステム、データ処理方法及びデータ処理プログラム Download PDFInfo
- Publication number
- JP2010152591A JP2010152591A JP2008329203A JP2008329203A JP2010152591A JP 2010152591 A JP2010152591 A JP 2010152591A JP 2008329203 A JP2008329203 A JP 2008329203A JP 2008329203 A JP2008329203 A JP 2008329203A JP 2010152591 A JP2010152591 A JP 2010152591A
- Authority
- JP
- Japan
- Prior art keywords
- data
- database
- standby
- sequence number
- standby system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することが可能なデータベースシステムを提供する。
【解決手段】 運用系システム10と待機系システム20によってデータベースを2重化したデータベースシステムであって、運用系システム10と待機系システム20が、データベース130、230のデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合を行う制御部120、220を備える。
【選択図】 図1
【解決手段】 運用系システム10と待機系システム20によってデータベースを2重化したデータベースシステムであって、運用系システム10と待機系システム20が、データベース130、230のデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合を行う制御部120、220を備える。
【選択図】 図1
Description
本発明は、運用系システムと待機系システムによってデータベースを2重化したデータベースシステム、そのデータ処理方法及びデータ処理プログラムに関する。
高信頼性のシステムにおいて、システムの情報を格納するデータベースを冗長化することが一般的である。このようなデータベースシステムでは、通常の運用では、同一のデータを保持したデータベースを複数稼動させ、運用系のシステムの障害や保守作業時には、待機系のシステムがサービスを引き継ぐことができる構成となっている。
信頼性の高いデータベースシステムを構築するためには、運用系のデータベースの状態が更新された場合、即座に待機系のデータベースの状態を運用系のデータベースに同期させて更新することが必要である。また、運用中に新たな待機系システムを組み込んだ場合、提供中のサービスに影響を与えることなく、新たな待機系システムにデータを同期させる必要がある。さらに、データの同期処理中にも運用系のサービス提供が継続されて運用系のデータベースの状態が変化するため、同期中に変化した情報についても同期をとる必要がある。
これまで、運用系システムと待機系システムの同期処理の方法としては、データベース同期中は運用系システムでのサービスの提供を一時的に停止する手法があるが、この方法では、サービスを中断する必要があるため、運用に制限が発生する。
また、サービスを中断することなく同期処理を行う方法としては、データベースを2面化し、データベースを一旦同期した後、データベース同期中に変化した運用系システムの更新内容をバッファリングし、同期終了後にバッファリングした更新内容を待機系システムに反映させるといった方法がある。この方法では、例えば、サービス運用中に待機系システムを増設した場合、増設した待機系システムに対して運用系のデータを一斉に同期する。同期中にも運用系システムのデータベースの状態は変化するため、データの同期開始以降のデータの更新内容をバッファリングしておき、全てのデータを同期した後にバッファリングした更新内容を転送して待機系システムに反映させるという処理を行う。
この方法の関連技術が、例えば、特許文献1(特許公開2000−76218号公報)等に記載されている。
特許公開2000−76218号公報
上述した特許文献1に記載される同期処理方法では、全データの同期中に大量のデータの更新が発生すると、更新内容をバッファリングできなくなり、システムが極めて不安定となるという問題がある。
また、運用系のデータベースのリソースを大量に消費するため、小型のシステムには不向きであるという問題がある。
さらに、運用系システムが待機系システムの状態を管理する必要があるため、待機系システムが複数存在した場合に、運用系システムのリソースをさらに消費するという問題がある。
(発明の目的)
本発明の目的は、データベースを2重化したシステムにおいて、運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することが可能なデータベースシステム、データ処理方法及びデータ処理プログラムを提供することにある。
本発明の目的は、データベースを2重化したシステムにおいて、運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することが可能なデータベースシステム、データ処理方法及びデータ処理プログラムを提供することにある。
本発明のデータベースシステムによれば、運用系システムと待機系システムによってデータベースを2重化したデータベースシステムであって、運用系システムと待機系システムが、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合を行う制御手段を備える。
本発明のデータ処理方法によれば、運用系システムと待機系システムによってデータベースを2重化したデータベースシステムのデータ処理方法であって、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合処理を行う。
本発明のデータ処理プログラムによれば、運用系システムと待機系システムによってデータベースを2重化したデータベースシステムにおけるデータ処理プログラムであって、運用系システムと待機系システムを構成するコンピュータに、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて、運用系システムと待機系システム間のデータベースの同期及び整合処理を、実行させる。
本発明によれば、運用系でのサービス提供を中断することなく、かつ同期中の更新内容をバッファリングするためのリソースを必要とせずに、運用系と待機系間のデータベースの同期処理と整合処理を実行することができる。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
(第1の実施の形態)
図1に、本発明の第1の実施の形態によるデータベースシステムの基本構成を示す。データベースシステムは、運用系システム10と、待機系システム20を含む構成である。
図1に、本発明の第1の実施の形態によるデータベースシステムの基本構成を示す。データベースシステムは、運用系システム10と、待機系システム20を含む構成である。
運用系システム10と待機系システム20は、それぞれ、サービスを提供するためのデータを格納するデータベース130、230、データベース130、230にアクセスしてサービスの提供を実行するアプリケーションプログラム110、210、運用系のデータベース130、230間のデータの同期と整合処理を実行するデータベース制御部120、220を備えている。
本実施の形態によるデータベースシステムでは、サービスを提供している運用系システム10が、障害や保守交換等により、サービスの提供を継続できなくなった場合、待機系システム20がサービスの提供を引き継ぐことができる。サービスを引き継ぐために、運用系システム10のデータベース130の全てのデータを待機系システム20のデータベース230で保持する。
また、本実施の形態によるデータベースシステムでは、待機系システム20の交換や増設時には、運用系システム10によるサービス提供を停止することなく、運用系のデータベース130のデータを、増設した待機系システム20のデータベース230に同期させる機能を有している。さらに、運用系システム10と待機系システム20間のデータの完全同一性を保障するために、定期的に運用系システム10のデータベース130と待機系システム20のデータベース230間の整合処理を行う機能も有している。
データベース130と230間の同期を行うため、運用系システム10のデータベース制御部120と待機系システム20のデータベース制御部220間は、信頼性のあるトランスポート30で接続されている。本実施の形態では、トランスポートの種類を限定しないが、トランスポート層としてTCP(Transmission Control Protocol)、ネットワーク層としてIP(Internet Protocol)、データリンク層としてイーサネットプロトコルを使用することが可能である。
データベース130及びデータベース230には、図2に示すような形式のデータが格納される。シーケンス番号310は、データベース内で一意に決まる数値であり、データベースのデータが更新される毎にその値がインクリメントされる。データキー320は、アプリケーションプログラム110、210がデータを識別するためのキーである。図2の例では、データキーを1つしか示していないが、複数存在してもよい。データ330はデータの中身である。本実施の形態では、データキー200とデータ300の内容についてはどのようなものでも差し支えなく、その種類は限定されない。
図3に、データベース130、230内のデータの格納方法を示す。データベース130、230内のデータはシーケンス番号310順にソートした形で格納され、シーケンス番号310順に容易に処理可能なように並べられている。その他、データキー320を検索キーとして高速にデータを参照できるように格納されている。本実施の形態では、その手法には依存しないため、ここでは言及しない。
図3に示すように、データのシーケンス番号310はデータが更新される度にインクリメントされ、それに伴いデータの並び順も更新される。この方法は、リンクリスト構造でデータを保持することで容易に実現できるため、ここでは言及しない。
図3の(A)に示すように、データ(1)から(3)がシーケンス番号順にソートされ格納されている状態で、データキー(key=K2)のデータ(2)が更新されて、データ(2)のシーケンス番号(seq=S2)がインクリメントされてシーケンス番号(seq=S4)となった場合、図3の(B)に示すように、データの並び順が更新される。
また、図3の(B)に示す状態で、データキー(key=K3)のデータ(3)が削除されると、図3の(C)に示すようにデータの並び順が更新される。
(第1の実施の形態の動作)
次に、図4から図10のシーケンス図を参照して、第1の実施の形態によるデータベースシステムの動作について詳細に説明する。
次に、図4から図10のシーケンス図を参照して、第1の実施の形態によるデータベースシステムの動作について詳細に説明する。
まず、図4を使用して定常状態におけるデータの同期の方法について説明する。ここで、定常状態とは、運用系システム10のデータベース130の内容と待機系システム20のデータベース230の内容が一致している状態とする。図4は、定常状態において、運用系システム10のデータベース130の更新があった場合のシーケンス図を示している。データベースの更新とは、新たなデータの追加、既存のデータの内容変更、及びデータの削除の何れかを意味している。
最初に、運用系システム10のデータベース130に新たなデータが追加される場合の動作を説明する。
アプリケーションプログラム110は、追加指示S101によってデータの追加を指示する。信号3の「key=Kn」は、データキー320の値が「Kn」であることを意味する。データベース制御部120は、信号S403を受信すると、処理S102において新たなシーケンス番号310を付与した新たなデータをデータベース130に追加する。
その後、データベース制御部120は、更新通知S103によって待機系システム20のデータベース制御部220に対してデータが更新されたことを通知する。また、アプリケーション110に対して、通知S105で更新の完了を通知する。
更新通知S103の「prev_seq」は更新前のシーケンス番号310を示し、「new_seq」は更新後のシーケンス番号310を示している。さらに、シーケンス番号「0」は、データが存在しないことを示す。すなわち、信号5は、更新前のシーケンス番号が「0」で、更新後のシーケンス番号が「Sn」であることを示している。ここで、シーケンス番号「0」は、データが存在しないことを示している。
待機系システム20のデータベース制御部220は、更新通知S103を受信すると、処理7においてシーケンス番号310が「Sn」のデータをデータベース70に追加する。
次に、運用系システム10のデータベース130に新たに追加されたデータが更新(内容の変更)された場合の動作を説明する。
追加指示S101で追加したデータが更新(内容の変更)する場合、アプリケーション110から更新指示S106を使用してデータ(key=Kn)の更新を指示する。データベース制御部120は、処理S107において、データキー320の「key=Kn」から該当するデータを見つけ出して、該当するデータを更新指示S106に基づいて更新すると共に、該当するデータのシーケンス番号310を「Sn」から「Sn+1」にインクリメントする。
その後、更新通知S108を使用して待機系システム20のデータベース制御部220に対してデータが更新されたことを通知する。また、アプリケーション110に対して、通知S109で更新の完了を通知する。更新通知S108は、更新前のシーケンス番号100が「Sn」で、更新後のシーケンス番号が「Sn+1」であることを示している。
待機系システム20データベース制御部220は、更新通知S108を受信すると、処理S110において更新前のシーケンス番号(Sn)を検索キーにしてデータを見つけ出し、更新通知S108に基づいてデータベース230の該当するデータを更新する。
次に、運用系システム10のデータベース130のデータが削除された場合の動作を説明する。
更新通知S108で更新したデータが削除する場合、アプリケーション110から削除指示S111を使用してデータ(key=Kn)の削除を指示する。データベース制御部120は、削除指示S111を受信すると、処理S112において、データキー(key=Kn)から削除するデータを見つけ出し、データベース130から該当するデータを削除する。
その後、更新通知S113を使用して待機系システム20のデータベース制御部220に対してデータが更新されたことを通知する。また、アプリケーション110に対して、通知S114で削除の完了を通知する。更新通知S113は、更新前のシーケンス番号が「Sn+1」で、更新後のシーケンス番号が「0」(存在しないデータ)であることを示している。
待機系システム20データベース制御部220は、更新通知S113を受信すると、処理S113において更新前のシーケンス番号(Sn)を検索キーにしてデータを見つけ出し、データベース230から該当するデータを削除する。
図5に、待機系システム20を新規に追加した場合に、運用系システム10と待機系システム20間のデータベース130、230の内容を同期するためのシーケンス図を示す。
新規に追加した待機系システム20が起動すると、全データ取得要求S201を使用して運用形システム10に対して全てのデータを送信するように要求する。
運用系システム10のデータベース制御部120は、全データ取得要求S201を受信すると、データベース130内のデータをシーケンス番号順に待機系システム20に送信する(取得応答S202、S204、S206)。このデータの送信処理は、サービスの提供に影響を与えることがないようにバックグラウンドで実行される。運用系システム10のデータベース制御部120は、最後に送信したデータのシーケンス番号を保持しながら順番にデータを送信する。
待機系システム20のデータベース制御部220は、運用系システム10からデータを受信する度に、順番にデータベース230に受信したデータを登録する(処理S203、S205、S207)。
運用系システム10のデータベース制御部120は、データベース130の全てのデータの送信が完了すると、全データ送信完了通知S208を送信し、待機系システム20のデータベース制御部220に対して全てのデータの送信完了を通知する。
図6に、図5で示した同期処理中に運用系システム10のデータベース130にデータが追加された場合のシーケンス図を示す。
図6において、待機系システム20からの全データ取得要求S301を運用系システム10で受け取ってから、待機系システム20のデータベース制御部220がシーケンス番号(seq=S1)と(seq=S2)のデータを、データベース230に登録する(処理S303、S305)までの動作は、図5の動作と同様である。
図6では、待機系システム20のデータベース制御部220がシーケンス番号(seq=S2)のデータを、データベース230に登録した時点で、運用系システム10のデータベース130にデータが追加された場合の動作を示している。すなわち、運用系システム10から未だ全てのデータの送信が完了していない状態で、運用系システム10のデータベース130にデータが追加される場合を示している。
アプリケーション110から追加指示S306によりデータの追加の指示を受けると、運用系システム10のデータベース制御部120は、処理S307により運用系のデータベース220に指示に基づいてシーケンス番号310を付与した新たなデータを追加する。ここで、追加されたデータのシーケンス番号を「Sn+1」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S308により待機系システム20にデータの更新を通知する。この一連の処理において、運用系システム10は、バックグラウンドで動作している全データの同期処理に影響を与えることなく、通常のデータ追加時の処理を実行する。
待機系システム20のデータベース制御部220は、更新通知S308を受信するが、運用系システム10からまだ全てのデータの取得が完了していないために、この更新通知S308を無視し、データの更新を実行しない。
その後、運用系システム10のデータベース制御部120は、続きのシーケンス番号順にデータベース130のデータを送信し(取得応答S309)、待機系システム20のデータベース制御部220は、運用系システム10からデータを受信する度に、順番にデータベース230に受信したデータを登録する(処理S310)。
同期処理中にデータベース130に追加されたデータ(シーケンス番号「Sn+1」)については、処理S307により、データベース130の末尾に登録されることから、同期処理における取得応答S311によって待機系システム20に送信され、処理S312においてデータベース230に追加される。
そして、運用系システム10のデータベース制御部120は、同期処理中に追加した新たなデータまでの全てのデータの送信が完了すると、全データ送信完了通知S313を送信し、待機系システム20のデータベース制御部220に対して全てのデータの送信完了を通知する。
図7に、図5の同期処理中に運用系システム10のデータベース130のデータが更新された場合のシーケンス図を示す。
図7において、待機系システム20からの全データ取得要求S401を運用システム10で受け取ってから、待機系システム20のデータベース制御部220がシーケンス番号(seq=S1)と(seq=S2)のデータを、データベース230に登録する(処理S403、S405)までの動作は、図5の動作と同様である。
図7では、待機系システム20のデータベース制御部220がシーケンス番号(seq=S2)のデータを、データベース230に登録した時点で、運用系システム10のデータベース130のデータが更新された場合の動作を示している。すなわち、運用系システム10から未だ全てのデータの送信が完了していない状態で、運用系システム10のデータベース130にデータが更新された場合を示している。
アプリケーション110から更新指示S406によりデータの更新の指示を受けると、運用系システム10のデータベース制御部120は、処理S407において運用系のデータベース130の該当するデータを指示に基づいて更新する。ここで、更新されたデータの更新後のシーケンス番号を、「Sn+1」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S408により待機系システム20にデータの更新を通知する。この一連の処理において、運用系システム10は、バックグラウンドで動作している全データの同期処理に影響を与えることなく、通常のデータ更新時の処理を実行する。
待機系システム20のデータベース制御部220は、更新通知S408を受信するが、運用系システム10からまだ全てのデータの取得が完了していないために、この信号10を無視し、データの更新を実行しない。
その後、運用系システム10のデータベース制御部120は、続きのシーケンス番号順にデータベース130のデータを送信し(取得応答S409)、待機系システム20のデータベース制御部220は、運用系システム10からデータを受信する度に、順番にデータベース230に受信したデータを登録する(処理S410)。
同期処理中に更新されたデータベース130のデータ(シーケンス番号「Sn+1」)については、処理S407の更新処理により、データベース130の末尾に登録されることから、同期処理における取得応答S411によって待機系システム20に送信され、処理S412においてデータベース230に追加される。
そして、運用系システム10のデータベース制御部120は、同期処理中に追加した新たなデータまでの全てのデータの送信が完了すると、全データ送信完了通知S413を送信し、待機系システム20のデータベース制御部220に対して全てのデータの送信完了を通知する。
図8に、図5の同期処理中に運用系システム10のデータベース120のデータが削除された場合のシーケンス図を示す。
図8において、待機系システム20からの全データ取得要求S501を運用システム10で受け取ってから、待機系システム20のデータベース制御部220がシーケンス番号(seq=S1)と(seq=S2)のデータを、データベース230に登録する(処理S503、S505)までの動作は、図5の動作と同様である。
図8では、運用系システム10から送信されたシーケンス番号(seq=S2)のデータを、待機系システム20のデータベース制御部220が、データをデータベース230に登録して追加した時点で、すなわち、運用系システム10から未だ全てのデータの送信が完了していない状態で、運用系システム10のデータベース130にデータが削除された場合の動作を示している。
アプリケーション110から削除指示S506によりデータの削除の指示を受けると、運用系システム10のデータベース制御部120は、処理S507により運用系のデータベース130の該当するデータを指示に基づいて削除する。ここで、削除されたデータの削除前のシーケンス番号を「S1」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S508により待機系システム20にデータの更新を通知する。
待機系システム20のデータベース制御部220は、更新通知S508を受信すると、シーケンス番号「S1」のデータについては受信済みであるため、処理S509においてデータベース230から該当するデータを削除する。
また、アプリケーション110から削除指示S510によりデータの削除の指示を受けると、運用系システム10のデータベース制御部120は、処理S511において指示に基づいて運用系のデータベース130の該当するデータを削除する。ここで、削除されたデータの削除前のシーケンス番号を「Sn」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S512により待機系システム20にデータの更新を通知する。
待機系システム20のデータベース制御部220は、更新通知S512を受信すると、シーケンス番号「Sn」のデータについては未だ受信していないので、この更新通知S512を無視し、データの削除を実行しない。
その後、運用系システム10のデータベース制御部120は、続きのシーケンス番号順にデータベース130のデータを送信し(取得応答S513)、待機系システム20のデータベース制御部220は、運用系システム10からデータを受信する度に、順番にデータベース230に受信したデータを登録する(処理S514)。
同期処理中に削除されたデータベース130のデータ(シーケンス番号「Sn」)については、処理S511でデータベース130から削除されているので、運用系システム10から待機系システム20に送信されない。
そして、運用系システム10のデータベース制御部120は、全てのデータの送信が完了すると、全データ送信完了通知S515を送信し、待機系システム20のデータベース制御部220に対して全てのデータの送信完了を通知する。
図6から図8で説明したように、運用系システム10のデータベース130と待機系システム20のデータベース230間における全データの同期中に、運用系システム10のデータベース130の状態が変化しても、運用系システム10の処理に大きな影響を与えることなくデータベースの同期を実行することが可能となる。
次に、図9に運用中に運用系システム10と待機系システム20間でデータベース130、230の整合を行うためのシーケンス図を示す。一般的に、データベースの内容を保障するため、運用系システム10と待機系システム20のデータベース130、230の整合処理を行うことで、よりシステムの信頼性を高めることが可能である。
データ整合処理の開始時には、全データ取得要求S601を使用して待機系システム20から運用系システム10に対してデータベース130の全データの取得要求を行う。
運用系システム10のデータベース制御部120は、全データ取得要求S601を受信すると、データベース130内の全データをシーケンス番号順に待機系システム20に送信する(取得応答S602、S604、S614)。このデータの送信処理は、サービスの提供に影響を与えることがないようにバックグラウンドで実行される。
待機系システム20のデータベース制御部220は、運用系システム10からデータを取得する度に、順番にデータベース230のデータの整合処理を行う(処理S603、S605、S615)。
運用系システム10のデータベース制御部120は、全てのデータの送信が完了すると、全データ送信完了通知S616を送信し、待機系システム20のデータベース制御部220に対して全てのデータの送信完了を通知する。
待機系システム20のデータベース制御部220によるデータの整合処理は、以下に示す論理に従って実行される。
1.受信したデータのシーケンス番号と同じシーケンス番号を持つデータがデータベース230に存在しない場合、データが欠けていると判断してデータベース230に追加する。
2.受信したデータのシーケンス番号と同じシーケンス番号を持つデータがデータベース230に存在する場合、データの内容を比較し、異なる場合は受信したデータでデータベース230のデータを更新する。
3.運用系システム10からはシーケンス番号の小さい順にデータが送信されるため、待機系システム20が次に受信するシーケンス番号は、最後に受信したシーケンス番号の次に大きな数字のシーケンス番号である。待機系システム20は、最後に受信したシーケンス番号に続くシーケンス番号と異なるシーケンス番号のデータを受信した場合、最後に受信したシーケンス番号から受信したシーケンス番号の間のデータは削除されたと判断する。
2.受信したデータのシーケンス番号と同じシーケンス番号を持つデータがデータベース230に存在する場合、データの内容を比較し、異なる場合は受信したデータでデータベース230のデータを更新する。
3.運用系システム10からはシーケンス番号の小さい順にデータが送信されるため、待機系システム20が次に受信するシーケンス番号は、最後に受信したシーケンス番号の次に大きな数字のシーケンス番号である。待機系システム20は、最後に受信したシーケンス番号に続くシーケンス番号と異なるシーケンス番号のデータを受信した場合、最後に受信したシーケンス番号から受信したシーケンス番号の間のデータは削除されたと判断する。
次に、データの整合処理中に、運用系システム10側でデータの削除やデータの更新(変更、追加)がなされた場合について説明する。
アプリケーション110からの削除指示S606によりデータの削除の指示を受けると、運用系システム10のデータベース制御部120は、処理S607において指示に基づいて運用系のデータベース130の該当するデータを削除する。ここで、削除されたデータの削除前のシーケンス番号を「S1」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S608により待機系システム20にデータの削除を通知する。
待機系システム20のデータベース制御部220は、更新通知S608を受信すると、全データの同期中の場合と異なり、シーケンス番号を考慮することなく、処理S609においてデータベース230から更新通知608で指示されたデータを削除する。
また、アプリケーション110から更新通知S610によりデータの更新の指示を受けると、運用系システム10のデータベース制御部120は、処理S611において指示に基づいて運用系のデータベース130の該当するデータを更新する。ここで、更新されたデータの更新後のシーケンス番号を「Sn+1」とする。
その後、運用系システム10のデータベース制御部120は、更新通知S612により待機系システム20にデータの更新を通知する。
待機系システム20のデータベース制御部220は、更新通知S612を受信すると、データベース230の該当するデータを更新する。
運用系システム10側から新たなデータの追加による更新通知があった場合についても、上記データの更新と同様、待機系システム20のデータベース制御部220は、更新通知S612に基づいてデータベース230の該当するデータを更新する。
以上のように、データの整合処理中に運用系システム10のデータベース130の状態が変化しても、非常に簡単な処理でサービスの提供を中断することなくデータの整合処理を行うことができる。
(第1の実施の形態による効果)
本実施の形態では、運用系システム10でのサービス提供を中断等することなく、かつ運用系システムに同期処理のための大量のリソースを必要とすることなく、運用系システム10と待機系システム20間の同期処理と整合処理を実行することができる。その理由は、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて同期処理と整合処理を行うことにより、全データベースの同期/整合処理において、運用系システムで管理が必要な情報は、待機系システムにどこまでデータを送信したという情報のみであり、最小限のリソースで同期と整合処理を実行することができるからである。
本実施の形態では、運用系システム10でのサービス提供を中断等することなく、かつ運用系システムに同期処理のための大量のリソースを必要とすることなく、運用系システム10と待機系システム20間の同期処理と整合処理を実行することができる。その理由は、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、シーケンス番号を用いて同期処理と整合処理を行うことにより、全データベースの同期/整合処理において、運用系システムで管理が必要な情報は、待機系システムにどこまでデータを送信したという情報のみであり、最小限のリソースで同期と整合処理を実行することができるからである。
また、運用系のシステム10は、待機系システム20からの要求によりデータベース130の全データをシーケンス番号順に待機系システム20に送信するが、その処理中に運用系システムのデータベースの状態が変更されても、その2つの処理はサービス提供に影響を与えることなく独立して実行される。
さらに、待機系システムにおいて、容易にデータの整合が可能であるということである。その理由は、運用系システムからは、シーケンス番号の小さい順にデータが送信されるため、データの抜けがあった場合に容易に判定が可能となるためである。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。この第2の実施の形態によるデータベースシステムの構成については、図1に示す第1の実施の形態の構成と同様であるので説明を省略する。
次に、本発明の第2の実施の形態について説明する。この第2の実施の形態によるデータベースシステムの構成については、図1に示す第1の実施の形態の構成と同様であるので説明を省略する。
本第2の実施の形態によるデータベースシステムが、第1の実施の形態と相違する点は、運用系システム10主導でデータベースの整合を行う点である。
図10に、第2の実施の形態によるデータベースの整合処理を行う場合のシーケンス図を示す。
データベースの整合を行う場合、全データ取得要求S701を使用して運用形システム10から待機系システム20に対してデータベース230の全データの取得要求を行う。
データベースの整合を行う場合、全データ取得要求S701を使用して運用形システム10から待機系システム20に対してデータベース230の全データの取得要求を行う。
待機系システム20のデータベース制御部220は、全データ取得要求S701を受信すると、データベース230内の全データをシーケンス番号順に運用系システム10に送信する(取得応答S702、S704、S708)。
取得応答S702以降で待機系システム20からデータを取得すると、運用系システム10のデータベース制御部120は、順番にデータベース130のデータ整合処理を行う(処理S703、S705、S709)。データベースの整合処理は、シーケンス番号を検索キーとして行う。
データ整合処理において、データの不整合(データの不一致)を検出すると、運用系システム10のデータベース制御部120は、待機系システム20に対して該当するデータの更新要求を行うことでデータベース間の整合を行う。
処理S705においてデータの不整合を検出した場合、運用系システム10のデータベース制御部120は、更新通知S706により待機系システム20に対してデータの更新を通知する。待機系システム20のデータベース制御部220は、通知されたシーケンス番号のデータを処理S707において更新する。
待機系システム20のデータベース制御部220は、全てのデータの送信が完了すると、全データ送信完了通知S710を送信し、運用系システム10のデータベース制御部120に対して全てのデータの送信完了を通知する。
(第2の実施の形態による効果)
第2の実施の形態によれば、上述した第1の実施の形態による効果に加えて、第2の実施の形態による運用系システム主導の整合処理は、運用系システム10に何らかの障害等が発生した場合に、待機系のシステム20の情報を使用して運用系システムの情報を復旧させる場合にも利用することができる。
第2の実施の形態によれば、上述した第1の実施の形態による効果に加えて、第2の実施の形態による運用系システム主導の整合処理は、運用系システム10に何らかの障害等が発生した場合に、待機系のシステム20の情報を使用して運用系システムの情報を復旧させる場合にも利用することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。図11に、第3の実施の形態によるデータベースシステムの構成例を示す。
次に、本発明の第3の実施の形態について説明する。図11に、第3の実施の形態によるデータベースシステムの構成例を示す。
本実施の形態では、待機系システムが1つではなく2つ以上存在する。図11では、待機系システム20−1、20−2の2つを備える構成を示している。
運用系システム10は、アプリケーション110、データベース制御部120、データベース130を備える。また、待機系システム20−1、20−2は、それぞれアプリケーション210−1、210−2、データベース制御部220−1、220−2、データベース230−1、230−2を備えている。これらアプリケーション、データベース制御部、データベースの機能については、第1の実施の形態と同じであるので説明は省略する。
それぞれの待機系システム20−1、20−2は、スイッチ80を経由して運用系システム10と接続されている。このスイッチ80は、一般的なイーサネットスイッチと同様に、システム間でブロードキャスト通信とユニキャスト通信を可能にする。
(第3の実施の形態の動作)
次に、図12を使用して、2つの待機系システム20−1、20−2に対してデータベース同期を行う場合のシーケンス図について説明する。
次に、図12を使用して、2つの待機系システム20−1、20−2に対してデータベース同期を行う場合のシーケンス図について説明する。
定常状態において運用系システム10のデータベース130にデータが追加される場合、追加指示S801を使用してアプリケーション110からデータベース130に対してデータの追加が指示される。運用系システム10のデータベース制御部120は、追加指示S801を受信すると、処理S802においてシーケンス番号を付与した新たなデータをデータベース130に追加し、ブロードキャスト通信を指定して更新通知S803をスイッチ80に送信する。
スイッチ80は、受け取った更新通知S803を待機系システム20−1と待機系システム20−2のそれぞれに更新通知S804、S805として送信する。
待機系システム20−1,20−2では、スイッチ80から更新通知S804、S805を受け取ると、それぞれが独立して処理S806を実行し、データベース230−1、230−2に更新通知S804、S805で通知されたデータを追加する。
上記説明では、運用系システム10のデータベース130にデータが追加される場合の動作について説明したが、運用系システム10のデータベース130のデータが更新、削除された場合においても、上記と同様の動作が実行される。
次に、待機系システム20−2のみについてデータ整合処理が実行された場合のシーケンス図を説明する。
待機系システム20−2のデータベース制御部22−2からスイッチ80を経由してユニキャストにより全データ取得要求S807が送信されると、運用系システム10のデータベース制御部120では、バックグラウンド処理を起動し、データベース130内の全データをシーケンス番号順にスイッチ80を経由して待機系システム20−2に送信する(取得応答S808、S810、S818)。
取得応答S808以降で運用系システム10からデータを取得すると、待機系システム20−2のデータベース制御部220−2は、順番にデータベース230−2のデータ整合処理を行う(処理S809、S811、S819)。
運用系システム10のデータベース制御部120は、全てのデータの送信が完了すると、スイッチ80を経由して全データ送信完了通知S820を送信し、待機系システム20−2のデータベース制御部220−2に対して全てのデータの送信完了を通知する。
待機系システム20−2に対して全データの送信処理中に、更新指示S812によりデータベース130のデータの更新の指示を受けると、運用系システム10のデータベース制御部120は、処理S813においてデータベース130の該当するデータを更新し、スイッチ80に対して、更新内容を指定した更新通知S814を、ブロードキャストを指定して送信する。
スイッチ80は、受け取った更新通知S814を、待機系システム20−1、待機系システム20−2のそれぞれに更新通知S815、S816として送信する。
待機系システム20−1のデータベース制御部220−1と、待機系システム20−2のデータベース制御部220−2は、更新通知S815、S816を受信すると、処理S817においてデータベース230−1、230−2の指定されたデータを更新する。
なお、図12では、全データの送信処理中に、運用系システム10のデータベース130のデータが更新された場合について説明したが、待機系システム20−2に対して全データの送信処理中に、運用系システム10のデータベース130に新たなデータが追加された場合、データベース130のデータが削除された場合についても、上述した更新の場合と同様に処理される。
また、上記説明では、データの整合処理について説明したが、待機系システムを新規に追加した場合に、運用系システム10と待機系システムのデータベース間の同期処理については、図5に示した第1の実施の形態と同様に実行することができる。
(第3の実施の形態による効果)
第3の実施の形態によれば、上述した第1の実施の形態による効果に加えて、待機系システムが複数存在した場合でも、それぞれの待機系システムの状態を把握することなく、運用系システムのデータの更新処理、同期と整合処理を行うことが可能となる。
第3の実施の形態によれば、上述した第1の実施の形態による効果に加えて、待機系システムが複数存在した場合でも、それぞれの待機系システムの状態を把握することなく、運用系システムのデータの更新処理、同期と整合処理を行うことが可能となる。
次いで、データベースシステムを構成する運用系システム10のハードウェア構成例について図13を参照して説明する。
図13を参照すると、運用系システム10は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)401、RAM(Random Access Memory)等からなり、データの作業領域やデータの一時退避領域に用いられる主記憶部402、ネットワークを介して他のノードとデータの送受信を行う通信部403、外部の装置と接続してデータの送受信を行う入出力インタフェース部404、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等の記憶装置405(データベース130に相当)、キーボードやマウス等の入力装置406、表示装置等の出力装置407、上記各構成要素を相互に接続するシステムバス408を備えている。
本実施の形態による運用系システム10は、データベース制御部120の各処理を実行するデータ処理プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、上記データベース制御部120の各機能を提供するデータ処理プログラムを、記憶装置405に格納し、そのプログラムを主記憶部402にロードしてCPU401で実行することにより、ソフトウェア的に実現することも可能である。
図13は、パ運用系システム10のハードウェア構成例について説明したが、待機系システム20についても、図13と同様のハードウェア構成である。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明によれば、冗長化システムでの利用だけでなく、データベースの分散システム、コントローラとエージェントといった組み合わせ分散ネットワークシステムに利用可能である。
10:運用系システム
20:待機系システム
110、210:アプリケーション
120、220:データベース制御部
130、230:データベース
310:シーケンス番号
320:データキー
330:データ
20:待機系システム
110、210:アプリケーション
120、220:データベース制御部
130、230:データベース
310:シーケンス番号
320:データキー
330:データ
Claims (45)
- 運用系システムと待機系システムによってデータベースを2重化したデータベースシステムであって、
前記運用系システムと前記待機系システムが、データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合を行う制御手段を備えることを特徴とするデータベースシステム。 - 前記運用系システムの制御手段は、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムの制御手段に対して通知し、
前記待機系システムの制御手段は、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行うことを特徴とする請求項1に記載のデータベースシステム。 - 前記運用系システムの制御手段は、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項2に記載のデータベースシステム。 - 前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムの制御手段は、前記待機系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムの制御手段は、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録することを特徴とする請求項1に記載のデータベースシステム。 - 前記運用系システムの制御手段は、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項4に記載のデータベースシステム。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムの制御手段から追加又は更新したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの追加又は更新の通知がなされた場合、前記待機系システムの制御手段は、前記通知を無視することを特徴とする請求項4又は請求項5に記載のデータベースシステム。
- 前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項6に記載のデータベースシステム。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムの制御手段から削除したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの削除の通知がなされた場合、前記待機系システムの制御手段は、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項4から請求項7の何れかに記載のデータベースシステム。
- 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムの制御手段は、前記待機系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムの制御手段は、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項1に記載のデータベースシステム。 - 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムの制御手段は、前記運用系システムの制御手段からのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信し、
前記運用系システムの制御手段は、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項1に記載のデータベースシステム。 - 前記運用系システムの制御手段又は前記待機系システムの制御手段は、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項9又は請求項10に記載のデータベースシステム。
- 前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムの制御手段から追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムの制御手段に対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムの制御手段は、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除することを特徴とする請求項9から請求項11の何れかに記載のデータベースシステム。
- 前記運用系システムの制御手段は、前記整合処理中にデータの不整合を検出した場合、前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムの制御手段は、通知されたシーケンス番号のデータを通知に従って更新することを特徴とする請求項10から請求項12の何れかに記載のデータベースシステム。 - 前記待機系システムを複数含み、
前記運用系システムと前記複数の待機系システムを、前記運用システムと待機系システム間のユニキャスト通信とブロードキャスト通信を可能とするスイッチ手段を介して接続したことを特徴とする請求項1から請求項13の何れか1項に記載のデータベースシステム。 - 前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムの制御手段は、データの更新、追加又は削除の通知を、前記スイッチ手段のブロードキャスト通信によって前記複数の待機系システムに送信し、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、前記スイッチ手段のユニキャスト通信によって前記特定の待機システムに対して送信することを特徴とする請求項14に記載のデータベースシステム。 - 運用系システムと待機系システムによってデータベースを2重化したデータベースシステムのデータ処理方法であって、
データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合処理を行うことを特徴とするデータ処理方法。 - 前記運用系システムは、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムに対して通知し、
前記待機系システムは、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行うことを特徴とする請求項16に記載のデータ処理方法。 - 前記運用系システムは、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項17に記載のデータ処理方法。 - 前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムは、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムは、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録することを特徴とする請求項16に記載のデータ処理方法。 - 前記運用系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項19に記載のデータ処理方法。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムから追加又は更新したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加又は更新の通知がなされた場合、前記待機系システムは、前記通知を無視することを特徴とする請求項19又は請求項20に記載のデータ処理方法。
- 前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項21に記載のデータ処理方法。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムから削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの削除の通知がなされた場合、前記待機系システムは、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項19から請求項22の何れかに記載のデータ処理方法。
- 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムは、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信し、
前記待機系システムは、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項16に記載のデータ処理方法。 - 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムは、前記運用系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信し、
前記運用系システムは、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を行うことを特徴とする請求項16に記載のデータ処理方法。 - 前記運用系システム又は前記待機系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項24又は請求項25に記載のデータ処理方法。
- 前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムから追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムは、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除することを特徴とする請求項24から請求項26の何れかに記載のデータ処理方法。
- 前記運用系システムは、前記整合処理中にデータの不整合を検出した場合、前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムは、通知されたシーケンス番号のデータを通知に従って更新することを特徴とする請求項25から請求項27の何れかに記載のデータ処理方法。 - 前記待機系システムを複数含み、前記運用システムと複数の前記待機系システム間でユニキャスト通信とブロードキャスト通信を行うことを特徴とする請求項16から請求項28の何れか1項に記載のデータ処理方法。
- 前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムは、データの更新、追加又は削除の通知を、ブロードキャスト通信によって前記複数の待機系システムに送信し、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、ユニキャスト通信によって前記特定の待機システムに対して送信することを特徴とする請求項29に記載のデータ処理方法。 - 運用系システムと待機系システムによってデータベースを2重化したデータベースシステムにおけるデータ処理プログラムであって、
前記運用系システムと前記待機系システムを構成するコンピュータに、
データベースのデータに、更新時にインクリメントするシーケンス番号を付与し、前記シーケンス番号を用いて、前記運用系システムと前記待機系システム間のデータベースの同期及び整合処理を、実行させることを特徴とするデータ処理プログラム。 - 前記運用系システムに、データの更新、追加又は削除指示を受けると、前記データベースのデータの更新、追加又は削除を実行し、更新、追加又は削除したデータの更新前と更新後のシーケンス番号を指定してデータの更新、追加又は削除を前記待機系システムに対して通知する処理を実行させ、
前記待機系システムで、前記通知に従って、前記前記データベースのデータの更新、追加又は削除を行う処理を実行させることを特徴とする請求項31に記載のデータ処理プログラム。 - 前記運用系システムは、
前記待機系システムに対して前記データの追加を通知する際、更新前のシーケンス番号として存在しないデータであることを示す番号と、更新後のシーケンス番号として新たなシーケンス番号とを通知し、
前記待機系システムに対して前記データの削除を通知する際、更新前のシーケンス番号と、更新後のシーケンス番号として存在しないデータであることを示す番号とを通知することを特徴とする請求項32に記載のデータ処理プログラム。 - 前記運用系システムと前記待機系システム間のデータベースの同期処理において、前記運用系システムに、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信する処理を実行させ、
前記待機系システムに、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースに登録する処理を実行させることを特徴とする請求項31に記載のデータ処理プログラム。 - 前記運用系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項34に記載のデータ処理プログラム。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの追加又は更新がなされ、前記運用系システムから追加又は更新したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加又は更新の通知がなされた場合、前記待機系システムに、前記通知を無視させることを特徴とする請求項34又は請求項35に記載のデータ処理プログラム。
- 前記同期処理中に追加又は更新された前記運用系システムのデータベースのデータを、前記全データの送信処理において、最後のシーケンス番号のデータとして送信することを特徴とする請求項36に記載のデータ処理プログラム。
- 前記同期処理中に、前記運用系システムのデータベースに対してデータの削除がなされ、前記運用系システムから削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの削除の通知がなされた場合、前記待機系システムは、通知された前記シーケンス番号のデータを、前記運用系システムから既に受信している場合、通知されたシーケンス番号のデータを削除し、未だ受信していない場合、前記通知を無視することを特徴とする請求項34から請求項37の何れかに記載のデータ処理プログラム。
- 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記運用系システムに、前記待機系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記待機系システムに送信する処理を実行させ、
前記待機系システムに、前記運用系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を実行させることを特徴とする請求項31に記載のデータ処理プログラム。 - 前記運用系システムと前記待機系システム間のデータベースの整合処理において、前記待機系システムに、前記運用系システムからのデータ取得要求に基づいて、前記データベース内の全データを前記シーケンス番号順に前記運用系システムに送信する処理を実行させ、
前記運用系システムは、前記待機系システムからのデータを受信し、前記シーケンス番号順に前記データベースのデータの整合処理を実行させることを特徴とする請求項31に記載のデータ処理プログラム。 - 前記運用系システム又は前記待機系システムは、前記データベース内の全データの送信処理を、バックグランドで実行することを特徴とする請求項39又は請求項40に記載のデータ処理プログラム。
- 前記整合処理中に、前記運用系システムのデータベースに対してデータの追加、更新又は削除がなされ、前記運用系システムから追加、更新又は削除したデータのシーケンス番号を指定して前記待機系システムに対してデータの追加、更新又は削除の通知がなされた場合、前記待機系システムに、前記通知で指定されたシーケンス番号のデータを追加し、更新し又は削除する処理を実行させることを特徴とする請求項39から請求項41の何れかに記載のデータ処理プログラム。
- 前記整合処理中にデータの不整合を検出した場合、前記運用系システムから前記待機系システムに対して不整合が発生したデータの更新要求を行い、
前記待機系システムに、通知されたシーケンス番号のデータを通知に従って更新する処理を実行させることを特徴とする請求項40から請求項42の何れかに記載のデータ処理プログラム。 - 前記待機系システムを複数含み、前記運用システムと複数の前記待機系システム間でユニキャスト通信とブロードキャスト通信を行うことを特徴とする請求項31から請求項43の何れか1項に記載のデータ処理プログラム。
- 前記運用系システムの前記データベースのデータの更新、追加又は削除がなされた場合、前記運用系システムに、データの更新、追加又は削除の通知を、ブロードキャスト通信によって前記複数の待機系システムに送信する処理を実行させ、
前記運用系システムと特定の待機系システム間の同期処理又は整合処理においては、前記運用系システムのデータベースの全データを、ユニキャスト通信によって前記特定の待機システムに対して送信する処理を実行させることを特徴とする請求項44に記載のデータ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008329203A JP2010152591A (ja) | 2008-12-25 | 2008-12-25 | データベースシステム、データ処理方法及びデータ処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008329203A JP2010152591A (ja) | 2008-12-25 | 2008-12-25 | データベースシステム、データ処理方法及びデータ処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010152591A true JP2010152591A (ja) | 2010-07-08 |
Family
ID=42571619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008329203A Pending JP2010152591A (ja) | 2008-12-25 | 2008-12-25 | データベースシステム、データ処理方法及びデータ処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010152591A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012022383A (ja) * | 2010-07-12 | 2012-02-02 | Yokogawa Electric Corp | 二重化制御システム |
JP2015501032A (ja) * | 2011-10-25 | 2015-01-08 | フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー | データ複製によるローカルデータストレージに基づくシェアード・ナッシングコンフィギュレーションにおけるバーチャルマシーンのマイグレーションのためのクラスタシステム及び方法 |
JP2015108927A (ja) * | 2013-12-04 | 2015-06-11 | 日本電気株式会社 | 情報処理装置、データ同期方法及びプログラム |
WO2017195356A1 (ja) * | 2016-05-13 | 2017-11-16 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
CN111556827A (zh) * | 2018-01-11 | 2020-08-18 | 罗伯特·博世有限公司 | 用于制造用于机动车的控制系统的方法、控制系统 |
-
2008
- 2008-12-25 JP JP2008329203A patent/JP2010152591A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012022383A (ja) * | 2010-07-12 | 2012-02-02 | Yokogawa Electric Corp | 二重化制御システム |
JP2015501032A (ja) * | 2011-10-25 | 2015-01-08 | フジツウ テクノロジー ソリューションズ インタレクチュアル プロパティ ゲーエムベーハー | データ複製によるローカルデータストレージに基づくシェアード・ナッシングコンフィギュレーションにおけるバーチャルマシーンのマイグレーションのためのクラスタシステム及び方法 |
JP2015108927A (ja) * | 2013-12-04 | 2015-06-11 | 日本電気株式会社 | 情報処理装置、データ同期方法及びプログラム |
WO2017195356A1 (ja) * | 2016-05-13 | 2017-11-16 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
JPWO2017195356A1 (ja) * | 2016-05-13 | 2018-09-13 | 三菱電機株式会社 | データ処理装置、データ処理方法及びデータ処理プログラム |
CN111556827A (zh) * | 2018-01-11 | 2020-08-18 | 罗伯特·博世有限公司 | 用于制造用于机动车的控制系统的方法、控制系统 |
JP2021508642A (ja) * | 2018-01-11 | 2021-03-11 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | 自動車用制御システムを構築する方法および制御システム |
CN111556827B (zh) * | 2018-01-11 | 2024-04-30 | 罗伯特·博世有限公司 | 用于制造用于机动车的控制系统的方法、控制系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114848B2 (en) | Ensuring the same completion status for transactions after recovery in a synchronous replication environment | |
JP5952960B2 (ja) | 計算機システム、計算機システム管理方法及びプログラム | |
US9411869B2 (en) | Replication between sites using keys associated with modified data | |
JP2003122611A (ja) | データ提供方法及びサーバ装置 | |
US9367261B2 (en) | Computer system, data management method and data management program | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
JP2010152591A (ja) | データベースシステム、データ処理方法及びデータ処理プログラム | |
JP6535386B2 (ja) | 計算機のスケールアウト方法、計算機システム及び記憶媒体 | |
CN104636437A (zh) | 一种事件通知方法、监听器的处理方法及装置 | |
JP5845877B2 (ja) | 情報処理装置、データ制御方法およびデータ制御プログラム | |
JP5331050B2 (ja) | データ同期システム、データ同期方法、情報処理装置、情報処理方法、およびプログラム | |
JP2010277467A (ja) | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム | |
JP2019530267A (ja) | 通信装置、システム、ロールバック方法及びプログラム | |
EP2090976A2 (en) | Method of substituting process in storage system | |
JP5449462B2 (ja) | 分散型データベースシステム及びプログラム | |
JP6459654B2 (ja) | イベントドリブンシステム、情報処理装置、イベントドリブンプログラムおよびイベントドリブン方法 | |
KR101748913B1 (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
CN113254511A (zh) | 一种分布式向量检索系统及方法 | |
JP6289214B2 (ja) | 情報処理システム及びその方法 | |
JP5449471B2 (ja) | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム | |
KR102275765B1 (ko) | 소프트웨어 정의 네트워크에서 플로우 룰 트랜잭션을 처리하는 방법, 장치 및 컴퓨터 프로그램 | |
Emerson et al. | An atomic-multicast service for scalable in-memory transaction systems | |
JP6036690B2 (ja) | 分散実行システム及び分散プログラム実行方法 | |
KR102084014B1 (ko) | 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템 | |
JP2019522436A (ja) | 通信装置、システム、ロールバック方法及びプログラム |