JP2014044466A - レプリケーションシステムおよびその第1データベース装置と第2データベース装置 - Google Patents

レプリケーションシステムおよびその第1データベース装置と第2データベース装置 Download PDF

Info

Publication number
JP2014044466A
JP2014044466A JP2012184863A JP2012184863A JP2014044466A JP 2014044466 A JP2014044466 A JP 2014044466A JP 2012184863 A JP2012184863 A JP 2012184863A JP 2012184863 A JP2012184863 A JP 2012184863A JP 2014044466 A JP2014044466 A JP 2014044466A
Authority
JP
Japan
Prior art keywords
database
information
update
index
index value
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
JP2012184863A
Other languages
English (en)
Other versions
JP5449485B2 (ja
Inventor
Toshiki Murata
俊樹 村田
Yusuke Nakano
雄介 中野
Noritaka Horikome
紀貴 堀米
Kotaro Mikami
高太朗 三上
Kenji Abe
健二 阿部
Junko Sasaki
潤子 佐々木
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012184863A priority Critical patent/JP5449485B2/ja
Publication of JP2014044466A publication Critical patent/JP2014044466A/ja
Application granted granted Critical
Publication of JP5449485B2 publication Critical patent/JP5449485B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データを書き込む順序を示すチェーン情報とともに使用されるデータベースを迅速に更新する。
【解決手段】第1データベース装置1におけるチェーン情報11Dの更新された部分に関する更新情報は第2データベース装置2に送信せず、第2データベース装置2の更新処理部22は、第2データベース装置2のデータベース21Aが更新されたなら、更新後のデータベース21Aに基づいて、第2データベース装置2のチェーン情報21Dを更新する(S21)。これにより、あるレコードを更新している間でも、他のレコードを更新することができる。
【選択図】図3

Description

本発明は、レプリケーションシステムにおいて複数の情報を有し且つ当該情報間で関連をもつテーブルとともに使用されるデータベースの更新を迅速に行う技術に関するものである。
近年、通信サービスにおいては、データのIP化やサーバの仮想化(クラウド)等により安価で高付加価値のサービスをユーザが享受できるようになってきている。また、大規模災害時や装置障害時のサービス中断への影響をできる限り最小化する高信頼なネットワークを構築する技術の重要性が高まってきている。このためには、情報処理装置を装置単位で2 重化等の冗長化を図ったり、大規模災害に備え、複数の異なったロケーションに情報処理装置を設置し(例えば、両者間を50Km以上離れた都市間に情報処理装置を設置する等)、複数装置間を同期化(レプリケーション)することにより、片方が罹災し、障害状態となっても、稼働している残った情報処理装置によりサービスを継続可能としている。このような同期化処理において、IP化により、特に遠隔のDB間でデータ通信を行う場合、パケットの転送遅延が大きくなるとともに(特にインターネット経由の場合等)、各パケットの転送経路が異なってくるため、DB間の複数のパケットの送信側順序と受信側順序が異なってくることもある。例えば、パケット1をパケット2より送信側情報処理装置から早く送信したが受信側情報処理装置には、パケット2が最初に到着するようなケースである。同期化においては、これらパケット遅延や送受パケット順序逆転を勘案する必要がある。
中野雄介, 堀米紀貴, 大石秀昭, 岸田好司, "加入者データベースにお25 けるデータレプリケーション手法", 電子情報通信学会ソサイエティ大会講演論文集,page 415, Aug.2011.
図8は、従来のレプリケーションシステムの構成の一例を示す図である。
レプリケーションシステム10Aは、通信ネットワークNを介して接続された第1データベース装置1Aと第2データベース装置2Aとを備える。
第1データベース装置1Aは、記憶部11、更新処理部12Aを備え、記憶部11は、データベース11A、空塞管理部11B、チェーン情報記憶部11Cを備える。第1データベース装置1Aは、通信回線を介して、データ投入端末3に接続される。
第2データベース装置2Aは、記憶部21、更新処理部22Aを備え、記憶部21は、データベース21A、空塞管理部21B、チェーン情報記憶部21Cを備える。
図9に示すように、各データベース11A、21Aは、データを記憶するための複数のレコードを有する。図では、便宜的に、レコードの数は6とし、各レコードを示すIndex値「1」〜「6」も示す。
各空塞管理部11B、21Bは、それぞれデータベース11A、21Aにつき、各レコードが空きレコードか否かを示すステータスを有する。図では、対応するレコードのIndex値「1」〜「6」も示す。
各チェーン情報11D、21Dは、データベース11A、21Aの空きレコードならびに当該空きレコードにデータを書き込む順序を示すもので、それぞれ、チェーン情報記憶部11C、21Cに記憶される。図では、対応するレコードのIndex値「1」〜「6」も示す。
各チェーン情報11D、21Dは、データを書き込む順序の先頭のレコードのIndex値と同じ先頭Index、末尾のレコードのIndex値と同じ末尾Index、ならびに、各レコードにつき、1つ前の順序のレコードのIndex値と同じ前Indexおよび1つ後の順序のレコードのIndex値と同じ後Indexを有する。なお、空きレコードでないレコードの前Index、後Index、先頭のレコードの前Index、末尾のレコードの後Indexは、それぞれ「Null」となっている。
図10は、レプリケーションシステム10Aにおける基本動作を示すシーケンス図である。
データ投入端末3は、データベース11Aの更新すべき部分に関する更新情報を第1データベース装置1Aに送信する(S101)。
更新処理部12Aは、データベース11Aを更新情報に基づいて更新する(S103)。具体的には、更新処理部12Aは、先頭Indexに対応するレコードに対し、更新情報で指示されたデータを書き込む、または、更新情報で指示されたレコードのデータを消去する、または、更新情報で指示されたレコードのデータを更新情報で指示されたデータに変更する(S103)。
次に、更新処理部12Aは、このようにレコードを更新したなら、更新情報を受け付けないように、つまり、受け付けを一時的に中止する(S105)。この動作は、所謂データベースのロック(更新禁止)という。
更新処理部12Aは、このレコードにデータが書き込まれたなら、当該レコードに対応する空塞管理部11Bのステータスを「使用中」に置き換える(S107)。
一方、更新処理部12Aは、このレコードからデータが消去されたなら、当該レコードに対応する空塞管理部11Bのステータスを「空き」に置き換える(S107)。
また、更新処理部12Aは、データが書き込まれたなら、または、消去されたなら、チェーン情報11Dを更新する(S107)。
記憶部11は、こうしてデータベース11Aや空塞管理部11Bやチェーン情報11Dが更新されたら、更新内容を含む更新成功の更新応答を更新処理部12Aを送信する(S109)。
更新処理部12Aは、更新成功の更新応答を受信したなら、データベース11A、空塞管理部11Bおよびチェーン情報11Dの更新された部分に関する更新情報を第2データベース装置2Aに送信する(S111)。
更新処理部22Aは、データベース21Aを更新情報に基づいて更新する(S113)。具体的には、更新処理部22Aは、更新情報で指示されたレコードに更新情報で指示されたデータを書き込む、または、更新情報で指示されたレコードのデータを消去する、または、更新情報で指示されたレコードのデータを更新情報で指示されたデータに変更する(S113)。
更新処理部22Aは、例えば、更新情報で指示された空塞管理部21Bの位置にあるステータスを、更新情報内に含まれるステータスで置き換える(S117)。
更新処理部22Aは、更新情報で指示されたチェーン情報の位置にある前Index、後Index、先頭Index、末尾Indexを、更新情報内に含まれる前Index、後Index、先頭Index、末尾Indexで置き換える(S117)。
記憶部21は、こうしてデータベース21Aや空塞管理部21Bやチェーン情報21Dが更新されたら、更新内容を含む更新成功の更新応答を更新処理部22Aに送信する(S119)。
更新処理部22Aは、記憶部21から更新成功の更新応答を受信したなら、第1データベース装置1Aに更新成功の更新応答を送信する(S121)。
更新処理部12Aは、更新成功の更新応答を受信したなら、更新成功の更新応答をデータ投入端末3に送信し(S123)、中止した更新情報の受け付けを再開する(S125)。つまり、データベースのロックを解除する。
ステップS105からステップS125の間は、更新情報の受け付けが中止されるので、その間に受信される更新情報に対しては(S131)、更新失敗の応答が返信される(S133)。
次に、図11を参照し、レプリケーションシステム10Aにおいて更新情報の受け付けを一時的に中止する理由を説明する。つまり、ステップS105、S125を実行しない場合について説明する。図9と同様、レコードの数は便宜的に6とする。
例えば、第1データベース装置1Aにおいて、データベース11AのIndex値「2」のレコードに「BB」が書き込まれると(G1)、空塞管理部11BのIndex値「2」のステータスが「使用中」に変わり、チェーン情報11DのIndex値「2」の後Indexが「Null」に変わり、Index値「4」の前Indexが「Null」に変わり、先頭Indexが「4」に変わる(G3)。
第1データベース装置1Aは、Index値「2」のレコード、Index値「2」のステータス、Index値「2」の後Index、Index値「4」の前Indexおよび先頭Indexに関する更新情報を第2データベース装置2Aに送信する(G5)。
また、第1データベース装置1Aにおいて、データベース11AのIndex値「4」のレコードに「DD」が書き込まれると(G11)、空塞管理部11BのIndex値「4」のステータスが「使用中」に変わり、チェーン情報11DのIndex値「4」の後Indexが「Null」に変わり、Index値「5」の前Indexが「Null」に変わり、先頭Indexが「5」に変わる(G13)。
第1データベース装置1Aは、Index値「4」のレコード、Index値「4」のステータス、Index値「4」の後Index、Index値「5」の前Indexおよび先頭Indexに関する更新情報を第2データベース装置2Aに送信する(G15)。
例えば、ステップG5の更新情報よりもステップG15の更新情報が早く受信された際には、第2データベース装置2Aにおいては、データベース21AのIndex値「4」のレコードに「DD」が書き込まれ、空塞管理部21BのIndex値「4」のステータスが「使用中」に変わり、チェーン情報21DのIndex値「4」の後Indexが「Null」に変わり、Index値「5」の前Indexが「Null」に変わり、先頭Indexが「5」に変わる(G21)。
その後、ステップG5の更新情報が受信された際には、第2データベース装置2Aにおいては、データベース21AのIndex値「2」のレコードに「BB」が書き込まれ、空塞管理部21BのIndex値「2」のステータスが「使用中」に変わり、チェーン情報21DのIndex値「2」の後Indexが「Null」に変わり、先頭Indexが「4」に変わる(G23)。
つまり、この時点では、チェーン情報11Dとチェーン情報21Dは互いに一致しておらず、チェーン情報21Dにおいては、順序の矛盾がある。
すなわち、図12に示すように、チェーン情報21Dにおいては、Index値「4」の後Indexが「5」であり、Index値「5」の前Indexは「Null」であり、両者は矛盾する。
したがって、データベースのロックと解除(ステップS105、S125)を実行することで、このような矛盾の発生を防止する必要がある。
しかし、ステップS105、S125を実行すると、その一方で、あるレコードを更新している間は、他のレコードは更新できず、複数のレコードを更新するのに長時間を要する。
つまり、チェーン情報のような、複数の情報を有し且つ当該情報間で関連をもつテーブルとともに使用されるデータベースの更新が迅速に行えないという問題がある。
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、レプリケーションシステムにおいて複数の情報を有し且つ当該情報間で関連をもつテーブルとともに使用されるデータベースの更新を迅速に行う技術を提供することにある。
上記の課題を解決するために、第1の本発明は、第1データベース装置と第2データベース装置を備えるレプリケーションシステムであって、前記第1データベース装置は、データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、前記第2データベース装置は、前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備えることを特徴とする。
例えば、前記第2更新処理部は、前記第2データベースを更新したなら、前記第1更新処理部に更新応答を送信するものであり、前記第1更新処理部は、前記第2データベース装置に更新情報を送信してから、前記更新応答を受信するまでは、前記第1データベース装置の更新された部分を更新しない。
第2の本発明は、第1データベース装置と第2データベース装置を備えるレプリケーションシステムの前記第1データベース装置であって、前記第1データベース装置は、データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、前記第2データベース装置は、前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備えることを特徴とする。
第3の本発明は、第1データベース装置と第2データベース装置を備えるレプリケーションシステムの前記第2データベース装置であって、前記第1データベース装置は、データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、前記第2データベース装置は、前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備えることを特徴とする。
本発明によれば、レプリケーションシステムにおいて複数の情報を有し且つ当該情報間で関連をもつテーブルとともに使用されるデータベースの更新を迅速に行うことができる。
本実施の形態に係るレプリケーションシステムの構成図である。 図1の各データベース11A、21A、各空塞管理部11B、21B、各チェーン情報11D、21Dを例示した図である。 図1のレプリケーションシステム10における基本動作を示すシーケンス図である。 図1のレプリケーションシステム10の具体的な動作例(動作例1)を説明するための図である。 図1のレプリケーションシステム10の具体的な動作例(動作例2)を説明するための図である。 変形例に係るチェーン情報を例示した図である。 変形例に係るデータベースを例示した図である。 従来のレプリケーションシステム10Aの構成を示す図である。 図8の各データベース11A、21A、各空塞管理部11B、21B、各チェーン情報11D、21Dを例示した図である。 図8のレプリケーションシステム10Aにおける基本動作を示すシーケンス図である。 図8のレプリケーションシステム10Aにおいて更新情報の受け付けを一時的に中止する理由を説明するための図である。 矛盾を含むチェーン情報の一例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
図1は、本実施の形態に係るレプリケーションシステムの構成図である。
レプリケーションシステム10は、通信ネットワークNを介して接続された第1データベース装置1と第2データベース装置2とを備えるレプリケーションシステムである。
第1データベース装置1は、記憶部11、更新処理部12(本発明の第1更新処理部に相当)を備え、記憶部11は、データベース11A(本発明の第1データベースに相当)、空塞管理部11B、チェーン情報記憶部11C(本発明の第1テーブル記憶部に相当)を備える。第1データベース装置1は、通信回線を介して、データ投入端末3に接続される。
第2データベース装置2は、記憶部21、更新処理部22(本発明の第2更新処理部に相当)を備え、記憶部21は、データベース21A(本発明の第2データベースに相当)、空塞管理部21B、チェーン情報記憶部21C(本発明の第2テーブル記憶部に相当)を備える。
レプリケーションシステム10は、通常では、まず、データベース11Aを更新し、データベース11Aを更新したら、データベース21Aをデータベース11Aに一致させるべく更新するようになっている。つまり、通常では、データベース11Aが所謂マスターデータベースである。
しかし、場合によっては、まず、データベース21Aを更新し、次に、データベース11Aを更新することもある。この場合は、データベース21Aがマスターデータベースである。
この目的故に、空塞管理部11B、21Bは同一構成を有し、チェーン情報記憶部11C、21Cは同一構成を有し、更新処理部12、22は同じ機能を備えている。
なお、以下の説明では、便宜上、データベース11Aがマスターデータベースである場合を主に述べる。
図2に示すように、各データベース11A、21Aは、データを記憶するための複数のレコードを有する。図では、便宜的に、レコードの数は6とし、各レコードを示すIndex値「1」〜「6」も示す。
各空塞管理部11B、21Bは、それぞれデータベース11A、21Aにつき、各レコードが空きレコードか否かを示すステータスを有する。図では、対応するレコードのIndex値「1」〜「6」も示す。
各チェーン情報11D、21Dは、データベース11A、21Aの空きレコードならびに当該空きレコードにデータを書き込む順序を示すもので、それぞれ、チェーン情報記憶部11C、21Cに記憶される。図では、対応するレコードのIndex値「1」〜「6」も示す。各チェーン情報11D、21Dは、データベース11A、21Aを高速に検索するのに使用される。
各チェーン情報11D、21Dは、データを書き込む順序の先頭のレコードのIndex値と同じ先頭Index、末尾のレコードのIndex値と同じ末尾Index、ならびに、各レコードにつき、1つ前の順序のレコードのIndex値と同じ前Indexおよび1つ後の順序のレコードのIndex値と同じ後Indexを有する。なお、空きレコードでないレコードの前Index、後Index、先頭のレコードの前Index、末尾のレコードの後Indexは、それぞれ「Null」となっている。
つまり、各チェーン情報11D、21Dは、各レコードについての情報からなる複数の情報を有し且つ当該情報間で関連をもつテーブルである。
図1に戻り、データ投入端末3は、更新すべき部分に関する更新情報を第1データベース装置1に送信するものである。
更新処理部12は、データ投入端末3からの更新情報に基づき、データベース11Aを更新し、更新後のデータベース11Aに基づいて、空塞管理部11Bおよびチェーン情報11Dを更新し、データベース11Aおよび空塞管理部11Bの更新された部分に関する更新情報を第2データベース装置2に送信するものである。なお、以下の説明では省略するが、更新処理部22は、同様にデータベース21A、空塞管理部21Bおよびチェーン情報21Dを更新し、データベース21Aおよび空塞管理部21Bの更新された部分に関する更新情報を第1データベース装置1に送信することができる。
更新処理部22は、第1データベース装置1からの更新情報に基づき、データベース21Aおよび空塞管理部21Bを更新し、更新後のデータベース21Aまたは更新後の空塞管理部21Bに基づいて、チェーン情報21Dを更新するものである。以下の説明では省略するが、更新処理部12は、同様にデータベース11A、空塞管理部11Bおよびチェーン情報11Dを更新することができる。
(基本動作)
図3は、レプリケーションシステム10における基本動作を示すシーケンス図である。
なお、便宜上、データベース21Aがマスターデータベースである場合だけを述べる。
データ投入端末3は、データベース11Aの更新すべき部分に関する更新情報を第1データベース装置1に送信する(S1)。
更新処理部12は、データベース11Aを更新情報に基づいて更新する(S3)。具体的には、更新処理部12は、先頭Indexに対応するレコードに対し、更新情報で指示されたデータを書き込む、または、更新情報で指示されたレコードのデータを消去する、または、更新情報で指示されたレコードのデータを更新情報で指示されたデータに変更する(S3)。
次に、更新処理部12は、このように更新したレコードについては、更新情報を受け付けないように、つまり、受け付けを一時的に中止する(S5)。この動作は、所謂レコードのロック(更新禁止)という。
更新処理部12は、このレコードにデータが書き込まれたなら、当該レコードに対応する空塞管理部11Bのステータスを「使用中」に置き換える(S7)。
一方、更新処理部12は、このレコードからデータが消去されたなら、当該レコードに対応する空塞管理部11Bのステータスを「空き」に置き換える(S7)。
また、更新処理部12は、データが書き込まれたなら、または、消去されたなら、チェーン情報11Dを更新する(S7)。
具体的には、チェーン情報11Dが、データを書き込む順序でIndex値が「2−4−5−6」となるようなものの場合、更新処理部12は、先頭Indexが示すレコードにデータを書き込んだなら、「2−4−5−6」が「4−5−6」となるようにチェーン情報11Dを更新する。
一方、チェーン情報11Dが、データを書き込む順序でIndex値が「2−5−6」となるようなものの場合、更新処理部12は、例えば、Index値「3」のレコードからデータを消去したなら、「2−5−6」が「2−5−6−3」となるようにチェーン情報11Dを更新する。
記憶部11は、こうしてデータベース11Aや空塞管理部11Bやチェーン情報11Dが更新されたら、更新内容を含む更新成功の更新応答を更新処理部12を送信する(S9)。
更新処理部12は、更新成功の更新応答を受信したなら、データベース11Aおよび空塞管理部11Bの更新された部分に関する更新情報を第2データベース装置2に送信する(S11)。
更新処理部22は、データベース21Aを更新情報に基づいて更新する(S13)。具体的には、更新処理部22は、更新情報で指示されたレコードに更新情報で指示されたデータを書き込む、または、更新情報で指示されたレコードのデータを消去する、または、更新情報で指示されたレコードのデータを更新情報で指示されたデータに変更する(S13)。
更新処理部22は、例えば、更新情報で指示された空塞管理部21Bの位置にあるステータスを、更新情報内に含まれるステータスで置き換える(S17)。
記憶部21は、こうしてデータベース21Aや空塞管理部21Bが更新されたら、更新内容を含む更新成功の更新応答を更新処理部22に送信する(S19)。
また、更新処理部22は、こうしてデータベース21Aが更新されたなら、更新後のデータベース21Aに基づいて、チェーン情報21Dを更新する(S21)。
具体的には、チェーン情報21Dが、データを書き込む順序でIndex値が「2−4−5−6」となるようなものの場合、更新処理部22は、先頭Indexが示すレコードにデータを書き込んだなら、「2−4−5−6」が「4−5−6」となるようにチェーン情報21Dを更新する。
一方、チェーン情報21Dが、データを書き込む順序でIndex値が「2−5−6」となるようなものの場合、更新処理部22は、例えば、Index値「3」のレコードからデータを消去したなら、「2−5−6」が「2−5−6−3」となるようにチェーン情報21Dを更新する。
更新処理部22は、記憶部21から更新成功の更新応答を受信したなら、第1データベース装置1に更新成功の更新応答を送信する(S23)。
更新処理部12は、更新成功の更新応答を受信したなら、更新成功の更新応答をデータ投入端末3に送信し(S25)、更新情報の受け付けを中止したレコードについて、更新情報の受け付けを再開する(S27)。つまり、レコードのロックを解除する。
(動作例1)
次に、図4を参照し、レプリケーションシステム10の具体的な動作例(動作例1)について説明する。図2と同様、レコードの数は便宜的に6とする。
まず、当初、各データベース11A、データベース21Aでは、Index値「1」のレコードにデータ「AA」、Index値「3」のレコードに「CC」があり、他のレコードは空きレコードになっている。つまり、データベース11Aとデータベース21Aは互いに一致している。
また、当初、各空塞管理部11B、空塞管理部21Bでは、Index値「1」のステータスと、Index値「3」のステータスが「使用中」で、他のステータスは「空き」である。つまり、空塞管理部11Bと空塞管理部21Bは互いに一致している。
また、各チェーン情報11D、チェーン情報21Dでは、Index値「1」の前Index、Index値「1」の後Indexは「Null」であり、Index値「2」の前Index、Index値「2」の後Indexはそれぞれ、「Null」、「4」であり、Index値「3」の前Index、Index値「3」の後Indexは「Null」であり、Index値「4」の前Index、Index値「4」の後Indexはそれぞれ、「2」、「5」であり、Index値「5」の前Index、Index値「5」の後Indexはそれぞれ、「4」、「6」であり、Index値「6」の前Index、Index値「6」の後Indexはそれぞれ、「5」、「Null」であり、先頭Indexは「2」であり、末尾Indexは「6」である。つまり、チェーン情報11Dとチェーン情報21Dは互いに一致しており、各チェーン情報11D、チェーン情報21Dにおいては、順序の抜けや重複などの矛盾がない。
例えば、第1データベース装置1において、データベース11AのIndex値「2」のレコードに「BB」が書き込まれると(T1)、空塞管理部11BのIndex値「2」のステータスが「使用中」に変わり、チェーン情報11DのIndex値「2」の後Indexが「Null」に変わり、Index値「4」の前Indexが「Null」に変わり、先頭Indexが「4」に変わる(T3)。
第1データベース装置1は、Index値「2」のレコード、Index値「2」のステータスに関する更新情報を第2データベース装置2に送信する(T5)。
また、第1データベース装置1において、データベース11AのIndex値「4」のレコードに「DD」が書き込まれると(T11)、空塞管理部11BのIndex値「4」のステータスが「使用中」に変わり、チェーン情報11DのIndex値「4」の後Indexが「Null」に変わり、Index値「5」の前Indexが「Null」に変わり、先頭Indexが「5」に変わる(T13)。
第1データベース装置1は、Index値「4」のレコード、Index値「4」のステータスに関する更新情報を第2データベース装置2に送信する(T15)。
例えば、ステップT5の更新情報よりもステップT15の更新情報が早く受信された際には、第2データベース装置2においては、データベース21AのIndex値「4」のレコードに「DD」が書き込まれ、空塞管理部21BのIndex値「4」のステータスが「使用中」に変わり、チェーン情報21DのIndex値「2」の後Indexが「5」に変わり、Index値「4」の前Indexが「Null」に変わり、Index値「4」の後Indexが「Null」に変わる(T21)。
その後、ステップT5の更新情報が受信された際には、第2データベース装置2においては、データベース21AのIndex値「2」のレコードに「BB」が書き込まれ、空塞管理部21BのIndex値「2」のステータスが「使用中」に変わり、チェーン情報21DのIndex値「2」の後Indexが「Null」に変わり、Index値「5」の前Indexが「Null」に変わり、先頭Indexが「5」に変わる(T23)。
つまり、チェーン情報11Dとチェーン情報21Dは互いに一致しており、各チェーン情報11D、チェーン情報21Dにおいては、順序の抜けや重複などの矛盾がない。
(動作例2)
次に、図5を参照し、レプリケーションシステム10の具体的な動作例(動作例2)について説明する。
まず、当初、各データベース11A、データベース21Aでは、Index値「1」のレコードに「AA」、Index値「3」のレコードに「CC」、Index値「4」のレコードに「DD」があり、他のレコードは空きレコードになっている。つまり、データベース11Aとデータベース21Aは互いに一致している。
また、当初、各空塞管理部11B、空塞管理部21Bでは、Index値「1」のステータス、Index値「3」のステータス、Index値「4」のステータスが「使用中」で、他のステータスは「空き」である。つまり、空塞管理部11Bと空塞管理部21Bは互いに一致している。
また、各チェーン情報11D、チェーン情報21Dでは、Index値「1」の前Index、Index値「1」の後Indexは「Null」であり、Index値「2」の前Index、Index値「2」の後Indexはそれぞれ、「Null」、「5」であり、Index値「3」の前Index、Index値「3」の後Indexは「Null」であり、Index値「4」の前Index、Index値「4」の後Indexは「Null」であり、Index値「5」の前Index、Index値「5」の後Indexはそれぞれ、「2」、「6」であり、Index値「6」の前Index、Index値「6」の後Indexはそれぞれ、「5」、「Null」であり、先頭Indexは「2」であり、末尾Indexは「6」である。つまり、チェーン情報11Dとチェーン情報21Dは互いに一致しており、各チェーン情報11D、チェーン情報21Dにおいては、順序の抜けや重複などの矛盾がない。
例えば、第1データベース装置1において、データベース11AのIndex値「3」のレコードから「CC」が消去されると(T31)、空塞管理部11BのIndex値「3」のステータスが「空き」に変わり、チェーン情報11DのIndex値「3」の前Indexが「6」に変わり、Index値「6」の後Indexが「3」に変わり、末尾Indexが「3」に変わる(T33)。
第1データベース装置1は、Index値「3」のレコード、Index値「3」のステータスに関する更新情報を第2データベース装置2に送信する(T35)。
また、第1データベース装置1において、データベース11AのIndex値「1」のレコードから「AA」が消去されると(T41)、空塞管理部11BのIndex値「1」のステータスが「空き」に変わり、チェーン情報11DのIndex値「1」の前Indexが「3」に変わり、Index値「3」の後Indexが「1」に変わり、末尾Indexが「1」に変わる(T43)。
第1データベース装置1は、Index値「1」のレコード、Index値「1」のステータスに関する更新情報を第2データベース装置2に送信する(T45)。
例えば、ステップT35の更新情報よりもステップT45の更新情報が早く受信された際には、第2データベース装置2においては、データベース21AのIndex値「1」のレコードから「AA」が消去され、空塞管理部21BのIndex値「1」のステータスが「空き」に変わり、チェーン情報21DのIndex値「1」の前Indexが「6」に変わり、Index値「6」の後Indexが「1」に変わり、末尾Indexが「1」に変わる(T51)。
その後、ステップT35の更新情報が受信された際には、第2データベース装置2においては、データベース21AのIndex値「3」のレコードから「CC」が消去され、空塞管理部21BのIndex値「3」のステータスが「空き」に変わり、チェーン情報21DのIndex値「1」の後Indexが「3」に変わり、Index値「3」の前Indexが「1」に変わり、末尾Indexが「3」に変わる(T53)。
つまり、チェーン情報11Dとチェーン情報21Dは互いに一致していないが、各チェーン情報11D、チェーン情報21Dにおいては、順序の抜けや重複などの矛盾がない。よって、データベース21Aがマスターデータベースとなっても問題はない。
なお、このような場合であってもチェーン情報11Dとチェーン情報21Dを一致させるには、以下のようにすればよい。
つまり、チェーン情報11Dが、データを書き込む順序でIndex値が「2−5−6」となるようなもの場合、更新処理部12は、例えば、Index値「3」のレコードからデータを消去したなら、「2−5−6」が「2−3−5−6」となるようにチェーン情報11Dを更新し、チェーン情報21Dが、データを書き込む順序でIndex値が「2−5−6」となるようなもの場合、更新処理部22は、例えば、Index値「3」のレコードからデータを消去したなら、「2−5−6」が「2−3−5−6」となるようにチェーン情報21Dを更新すればよい。
(変形例)
本実施の形態では、各チェーン情報11D、チェーン情報21Dは、図6(a)に示すように、先頭Indexと後Indexだけからなるものとしてもよい。また、各チェーン情報11D、チェーン情報21Dは、図6(b)に示すように、先頭Indexと後Indexだけからなるものとしてもよい。
また、各空塞管理部11B、空塞管理部21Bのステータスは、図7に示すように、それぞれデータベース11A、データベース21Aの対応するレコードに含めてもよい。
以上説明したように、本実施の形態によれば、第1データベース装置1から第2データベース装置2には、チェーン情報11Dの更新された部分に関する更新情報を送信せず、更新処理部22は、更新後のデータベース21Aに基づいてチェーン情報21Dを更新するので、あるレコードを更新している間でも、他のレコードなら更新でき、もって、チェーン情報11D、チェーン情報21Dとともに使用されるデータベース11A、データベース21Aの更新を迅速に行うことができる。
また、チェーン情報11Dの更新された部分に関する更新情報を送信しないので、送信される更新情報の量を低減することができる。
なお、チェーン情報21Dを更新する代わりに、更新後のデータベース21Aに基づいて新たにチェーン情報21Dを生成し、これで既存のチェーン情報21Dを置き換えてもよい。この場合であっても、結果的には、更新後のデータベース21Aに基づいてチェーン情報21Dが更新されたことになる。
また、空塞管理部11B、空塞管理部21Bのステータスは、データベース11A、データベース21Aに基づいて、適宜取得できるので、空塞管理部11B、空塞管理部21Bを設けなくてもよい。
また、本実施の形態では、複数の情報を有し且つ当該情報間で関連をもつテーブルの例として、チェーン情報を用いたが、チェーン情報に限らず、テーブルは、複数の情報を有し且つ当該情報間で関連をもつものであればよい。
また、第1データベース装置1や第2データベース装置2としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
1 第1データベース装置
2 第2データベース装置
3 データ投入端末
10 レプリケーションシステム
11、21 記憶部
11A、21A データベース
11B、21B 空塞管理部
11C、21C チェーン情報記憶部
11D、21D チェーン情報
12、22 更新処理部

Claims (4)

  1. 第1データベース装置と第2データベース装置を備えるレプリケーションシステムであって、
    前記第1データベース装置は、
    データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、
    前記第2データベース装置は、
    前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備える
    ことを特徴とするレプリケーションシステム。
  2. 前記第2更新処理部は、前記第2データベースを更新したなら、前記第1更新処理部に更新応答を送信するものであり、
    前記第1更新処理部は、前記第2データベース装置に更新情報を送信してから、前記更新応答を受信するまでは、前記第1データベース装置の更新された部分を更新しない
    ことを特徴とする請求項1記載のレプリケーションシステム。
  3. 第1データベース装置と第2データベース装置を備えるレプリケーションシステムの前記第1データベース装置であって、
    前記第1データベース装置は、
    データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、
    前記第2データベース装置は、
    前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備える
    ことを特徴とするレプリケーションシステムの第1データベース装置。
  4. 第1データベース装置と第2データベース装置を備えるレプリケーションシステムの前記第2データベース装置であって、
    前記第1データベース装置は、
    データを記憶するための複数のレコードを有する第1データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第1テーブル記憶部、前記第1データベースを更新し、更新後の前記第1データベースに基づいて前記第1テーブル記憶部のテーブルを更新し、前記第1データベースの更新された部分に関する更新情報を前記第2データベース装置に送信する第1更新処理部を備え、
    前記第2データベース装置は、
    前記第1データベースに一致すべき第2データベース、複数の情報を有し且つ当該情報間で関連をもつテーブルが記憶される第2テーブル記憶部、前記更新情報に基づいて前記第2データベースを更新し、更新後の前記第2データベースに基づいて前記第2テーブル記憶部のテーブルを更新する第2更新処理部を備える
    ことを特徴とするレプリケーションシステムの第2データベース装置。
JP2012184863A 2012-08-24 2012-08-24 レプリケーションシステムおよびその第1データベース装置と第2データベース装置 Active JP5449485B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012184863A JP5449485B2 (ja) 2012-08-24 2012-08-24 レプリケーションシステムおよびその第1データベース装置と第2データベース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012184863A JP5449485B2 (ja) 2012-08-24 2012-08-24 レプリケーションシステムおよびその第1データベース装置と第2データベース装置

Publications (2)

Publication Number Publication Date
JP2014044466A true JP2014044466A (ja) 2014-03-13
JP5449485B2 JP5449485B2 (ja) 2014-03-19

Family

ID=50395712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012184863A Active JP5449485B2 (ja) 2012-08-24 2012-08-24 レプリケーションシステムおよびその第1データベース装置と第2データベース装置

Country Status (1)

Country Link
JP (1) JP5449485B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016016998A1 (ja) * 2014-07-31 2016-02-04 三菱電機株式会社 コントローラ、および、ホームシステム
CN110851528A (zh) * 2019-10-09 2020-02-28 网联清算有限公司 数据库同步方法、装置、存储介质及计算机设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016016998A1 (ja) * 2014-07-31 2016-02-04 三菱電機株式会社 コントローラ、および、ホームシステム
JPWO2016016998A1 (ja) * 2014-07-31 2017-04-27 三菱電機株式会社 コントローラ、ホームシステム、同期制御方法、および、プログラム
CN110851528A (zh) * 2019-10-09 2020-02-28 网联清算有限公司 数据库同步方法、装置、存储介质及计算机设备
CN110851528B (zh) * 2019-10-09 2022-09-02 网联清算有限公司 数据库同步方法、装置、存储介质及计算机设备

Also Published As

Publication number Publication date
JP5449485B2 (ja) 2014-03-19

Similar Documents

Publication Publication Date Title
CN104156361B (zh) 一种实现数据同步的方法及系统
CN103548010B (zh) 分布式存储环境中的同步复制
CN103780638B (zh) 数据同步方法及系统
CN103095769B (zh) 跨机房的数据同步方法以及系统
US7254685B1 (en) Method for maintaining high performance while preserving relative write I/O ordering for a semi-synchronous remote replication solution
CN103530362B (zh) 一种用于多副本分布式系统的计算机数据读写方法
CN105049504B (zh) 一种大数据中转传输同步及存储方法
CN103514173B (zh) 数据处理的方法和节点设备
WO2015081473A1 (zh) 异步复制方法、装置与系统
JP6475304B2 (ja) トランザクション処理方法および装置
JP2003263280A (ja) 複数リモートストレージのデータ同期方式
CN102098342A (zh) 一种基于事务级的数据同步方法、装置及系统
US20200104404A1 (en) Seamless migration of distributed systems
JP5741254B2 (ja) 送信制御方法、装置及びプログラム
WO2015014170A1 (zh) 分区日志队列同步管理方法及设备
US9614646B2 (en) Method and system for robust message retransmission
CN103856516A (zh) 数据存储、读取方法及数据存储、读取装置
WO2021147793A1 (zh) 数据处理方法、装置、系统、电子设备及计算机存储介质
CN104793981B (zh) 一种虚拟机集群的在线快照管理方法及装置
CN106897288B (zh) 数据库的服务提供方法和系统
CN104580425A (zh) 一种客户端数据同步方法及系统
JP5449485B2 (ja) レプリケーションシステムおよびその第1データベース装置と第2データベース装置
CN103559198A (zh) 一种数据同步的方法及设备
CN112804276B (zh) 虚拟化宽带远程接入服务器及其控制方法、通信系统
CN106855869A (zh) 一种实现数据库高可用的方法、装置和系统

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131224

R150 Certificate of patent or registration of utility model

Ref document number: 5449485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350