JP4719318B2 - データの複製管理方法及びシステム - Google Patents

データの複製管理方法及びシステム Download PDF

Info

Publication number
JP4719318B2
JP4719318B2 JP2010536265A JP2010536265A JP4719318B2 JP 4719318 B2 JP4719318 B2 JP 4719318B2 JP 2010536265 A JP2010536265 A JP 2010536265A JP 2010536265 A JP2010536265 A JP 2010536265A JP 4719318 B2 JP4719318 B2 JP 4719318B2
Authority
JP
Japan
Prior art keywords
node
transaction log
master
slave
received
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.)
Active
Application number
JP2010536265A
Other languages
English (en)
Other versions
JPWO2010106991A1 (ja
Inventor
浩之 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Murakumo Corp
Original Assignee
Murakumo 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 Murakumo Corp filed Critical Murakumo Corp
Priority to JP2010536265A priority Critical patent/JP4719318B2/ja
Application granted granted Critical
Publication of JP4719318B2 publication Critical patent/JP4719318B2/ja
Publication of JPWO2010106991A1 publication Critical patent/JPWO2010106991A1/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Description

本発明は、データの複製管理方法及びシステムに関するものであり、より詳細には、ネットワークに接続された1の計算機(ノード)のデータベースと検索要求のあった他のノードのデータベースとの間のデータの複製管理方法及びシステムに関する。
近年、トランザクション・ログを応用して、レプリケーション・システムを実現しようとする技術が提案されている。トランザクション・ログは、データベースに加えられた変更の履歴を、データベースの記録領域とは異なる領域に記録することにより、変更の永続性を維持しながら操作の高速性を実現することができる。トランザクション・ログにはすべての更新の履歴が保存されるため、トランザクション・ログが保存されていれば、データベースの更新はすべて再構築できる。
トランザクション・ログによるデータの同期方法として、転送元ノード(マスタノード)がトランザクション・ログの記録領域への記録を開始し、レプリケーション・システム内に存在する他のすべてのノードへ同一のトランザクション・ログを転送し、転送先ノード(スレーブノード)がトランザクション・ログの受信を完了後、マスタノードへ完了を通知し、マスタノードがすべてのスレーブノードから完了の通知を受け取り、かつ自身の記録領域への記録処理が終了したとき、マスタノードとスレーブノードのデータの同期処理を完了する方法が提案されている(例えば、特許文献1参照。)。この方法では、スレーブノードが検索を行う際に改めてマスタノードに最新の情報を問い合わせる必要がないので検索処理を速く実行することができる。
特開2006−293910号公報
しかしながら、上記のデータの同期方法では、マスタノードのデータベース(以下、「データベース」を「DB」ということがある。)を更新、削除、挿入(以下、「更新、削除、挿入」を単に「更新」ということがある。)する毎にすべてのレプリカDB(特許文献1において「転送先ノードのデータベース」)との同期処理を行うので、いずれかのノード又はその通信経路などに不具合があっていずれかのレプリカDB同期処理に時間がかかると、同期処理の完了までに時間がかかり、システム全体のパフォーマンスが低下するという課題がある。
本発明は、上記の課題を改良し、システム全体のパフォーマンス向上を図りつつ、逐次更新されるデータに対して、データの同期を維持しながら、迅速な検索を可能にするデータの複製管理方法及びシステムを提供することを主目的とする。
本発明の第1の観点によれば、検索指示を受領したスレーブノードは、マスタノードへリクエストメッセージを送信した時から所定時間(Ts1)以内にマスタノードから返信メッセージを受領しなかった場合、マスタノードにマスタDBの更新に係る最新バージョンまでのトランザクション・ログを要求し、該要求を受領したマスタノードは、スレーブノードへ該トランザクション・ログを送信し、スレーブノードは、マスタノードから転送された該トランザクション・ログを参照してレプリカDBを更新することを特徴とする。
本発明において、検索指示を受領したスレーブノードは、前記所定時間(Ts1)以内にマスタノードから返信メッセージを受領した場合、既に受領しているトランザクション・ログを参照してレプリカデータベースを更新することが好ましい。このことにより、トランザクション・ログの適用を遅延して検索指示を受領したときにだけトランザクション・ログを適用してからレプリカDBを更新するので、特に検索頻度が高くない場合に、システム全体のパフォーマンスを向上させることができる。
本発明において、更新の指示を受領したマスタノードは、リクエストメッセージの受領時から所定時間(Tr1)以内に新たなリクエストメッセージを受領したスレーブノードのすべてから転送完了の通知を受領し、かつマスタDBの更新を完了すると、更新の指示に従った更新を完了することが好ましい。このことにより、マスタノードは、スレーブノードのうち通信に時間がかかるノードを外したノードと同期処理を実行することができ、いずれかのスレーブノード又はその通信経路に障害が生じたとしても更新処理を迅速に完了することができる。
本発明の第2の観点によれば、検索の指示を受領したスレーブノードは、その親ノードへリクエストメッセージを送信した時から所定時間(Ts3)以内に該親ノードから返信メッセージを受領しなかった場合、マスタDBの更新に係る最新バージョンまでのトランザクション・ログを該親ノードへ要求し、該親ノードが該トランザクション・ログを有しなかった場合、該親ノードは更にその親ノードへ該トランザクション・ログを要求することを、該トランザクション・ログを有するノードに達するまで繰り返し、該要求を受領した該トランザクション・ログを有するノードは、その子ノードへ該トランザクション・ログを送信し、該送信を受領した該子ノードは更にその子ノードへ該トランザクション・ログを送信することを、前記スレーブノードが該トランザクション・ログを受領するまで繰り返し、該スレーブノードは転送された該トランザクション・ログを参照してレプリカDBを更新することを特徴とする。
本発明において、検索指示を受領したスレーブノードは、前記所定時間(Ts3)以内に前記親ノードから返信メッセージを受領した場合、既に受領しているトランザクション・ログを参照してレプリカDBを更新することが好ましい。このことにより、トランザクション・ログの適用を遅延して検索指示を受領したときにだけトランザクション・ログを適用してからレプリカDBを更新するので、特に検索頻度が高くない場合に、システム全体のパフォーマンスを向上させることができる。
本発明において、各ノードは、マスタDBの更新に係る最新バージョンまでのトランザクション・ログをその子ノードへ送信後であって、リクエストメッセージの受領時から所定時間(Tr3)以内に新たなリクエストメッセージを受領した前記子ノードのすべてから転送完了の通知を受領すると、その親ノードに転送完了の通知を送信することが好ましい。
このことにより、各ノードは、通信に時間がかかるノードを外したノードと同期処理を実行することができ、いずれかのノード又はその通信経路に障害が生じても更新処理を迅速に完了することができる。
本発明のデータの複製管理方法及びシステムによれば、検索指示を受領したスレーブノードが、その親ノード又はマスタノードへリクエストメッセージを送信した時から所定時間以内に返信メッセージを受信しなかった場合、最新バージョンまでのトランザクション・ログを有するノード又はマスタノードから転送された該トランザクション・ログを参照してレプリカDBが更新される。したがって、いずれかのノード又は通信経路に障害が生じても迅速に同期処理をすることができ、使用者は、マスタDBと同期のとれたレプリカDBを用いて検索できる。つまり、システム全体のパフォーマンスの向上が図られ、迅速な検索を提供することができる。
図1は本発明の一実施例に係るデータの複製管理を示す説明図である。(実施例1及び2) 図2はスレーブノードとマスタノードとの間のハートビート通信を示す説明図である。(実施例1及び2) 図3は本発明の一実施例に係る木構造のデータの複製管理を示す説明図である。(実施例3及び4) 図4はスレーブノードとその親ノードとの間のハートビート通信を示す説明図である。(実施例3及び4)
以下、添付図面を参照しながら本発明を実施するための形態について詳細に説明するが、本発明は、これに限定されて解釈されるものではなく、本発明の範囲を逸脱しない限りにおいて、当業者の知識に基づいて、種々の更新、修正、改良を加え得るものである。また、以下の実施例において実施例1と同一部材については同一の符号を付し、その重複する説明は省略する。
図1は、本発明の実施例1に係るデータの複製管理の概略を示し、マスタノード100と、マスタノード100とネットワーク120を介して接続されている複数(N個)のスレーブノードを有する。ここで、複数のスレーブノードはすべて同じ構成であり、同じ番号200を付ける。
マスタノード100は、マスタノード100によって管理されるマスタDB102、トランザクション・ログを記録し保存するトランザクション・ログ記録領域104、マスタDB102及びトランザクション・ログ記録領域104への書き込み指示を与えるDBバックエンド106、スレーブノードとの通信を行う通信モジュール108を備える。
スレーブノード200はそれぞれ、スレーブノード200によってマスタDB102と同一内容となるよう管理され、検索対象として使用されるレプリカDB202、トランザクション・ログを記録し保存するトランザクション・ログ記録領域204、レプリカDB202及びトランザクション・ログ記録領域204への書き込み指示を与えるDBバックエンド206、マスタノード100との通信を行う通信モジュール208、マスタノード100から受領したトランザクション・ログをトランザクション・ログ記録領域204に書き込むトランザクション・ログ書き込みモジュール210、トランザクション・ログの復元処理を行いレプリカDB202に書き込む復元モジュール212を備える。
次に、本実施例におけるデータの複製管理システムの動作について、図1を参照して説明する。
使用者からのデータの更新要求は、更新指示としてマスタノード100のDBバックエンド106に入る。該更新指示を受領したDBバックエンド106は、トランザクション・ログ記録領域104への書き込みを開始すると同時に、通信モジュール108に新たな更新に係るトランザクション・ログの転送指示を与える。
DBバックエンド106は、トランザクション・ログ記憶領域104への書き込みを終了すると、マスタDB102の更新を開始する。
前記転送指示を受領した通信モジュール108は、原則として、接続されているすべてのスレーブノード200の通信モジュール208に前記トランザクション・ログを送信する。通信モジュール208は、前記トランザクション・ログを受領するとトランザクション・ログ書き込みモジュール210に送信し、トランザクション・ログ書き込みモジュール210は、前記トランザクション・ログをトランザクション・ログ記録領域204に書き込む。
次いで、復元モジュール212は、トランザクション・ログ記録領域204から前記トランザクション・ログを呼び出し、レプリカDB202に適用することにより、マスタDB102と検索対象として使用されるレプリカDB202との間のデータの複製が完了する。
複製の完了を待って、通信モジュール208は通信モジュール108に、通信モジュール108はDBバックエンド106に転送完了を送信する。
通信モジュール108がすべてのスレーブノード200の通信モジュール208からトランザクション・ログの転送完了の通知を受領し、かつマスタDB102の更新が終了すると、使用者からのデータの更新要求(更新指示)に従った更新作業は完了する。
図2は、スレーブノード200とマスタノード100との間の正常なハートビート通信を示す説明図である。ここで、ハートビート通信とは、一定時間毎に心臓の鼓動のように通信相手との間でリクエストメッセージを送信し、相手方から所定時間内にその返信メッセージを受信することで通信回線と相手方ノードが正常に機能していることを確認する通
信機能である。
スレーブノード200はそれぞれ、マスタノード100への所定時間Ti1間隔でハートビート通信におけるリクエストメッセージを送る。ここで、所定の時間Ti1は、スレーブノード200がマスタノード100へリクエストメッセージを送信した後、返信メッセージを受領してから時間To1 を経過するまでの時間とする。
リクエストメッセージを受信したマスタノード100は、送信した各スレーブノード200に前記ハートビート通信における返信メッセージを送る。スレーブノード200がリクエストメッセージを送信した時から所定時間TS1以内にマスタノード100から返信メッセージがなかった場合、マスタノード100又はその通信経路に何らかの障害が発生しているおそれがある。前者のマスタノード100の障害の場合とは、マスタノード自体がダウンしている場合の他、マスタノードのタスク処理の負荷が大きすぎて、所定時間内に返信メッセージを返信できないような場合があり得る。また、通信経路の障害の場合とは、通信経路そのものがダウンしている場合の他、通信経路の負荷が大きいため、所定時間内に返信メッセージを到着させることができないような場合があり得る。つまり、ハートビート通信は過大な負荷のために成立していないが、遅延を生じつつも、マスタノード100も通信経路も機能はしている場合があり得る。
なお、前記所定の時間Ti1を、ハートビート通信におけるリクエストメッセージを送信した時から時間To1を経過するまでの時間とすることもできる。この場合も、リクエストメッセージを送信した時から所定時間Ts1以内にマスタノード100から前記ハートビート通信における返信メッセージがなかった場合、システムに何らかの障害が発生しているおそれがある。
スレーブノード200は、リクエストメッセージを送信した時から所定時間Ts1以内にマスタノード100から返信メッセージを受領しなかった場合、システムに何らかの障害が発生しているおそれがあるとみなし、マスタノード100にリクエストメッセージを送ることを停止する。
この場合のシステムの障害についても、マスタノード自体がダウンしている場合の他、マスタノードのタスク処理の負荷が大きすぎて、所定時間内にハートビート通信の返信メッセージを返信できないような場合があり得る。また通信経路の障害として、通信経路そのものがダウンしている場合の他、通信経路の負荷が大きいため、所定時間内に返信メッセージを到着させることができないような場合もあり得る。つまり、ハートビート通信は過大な負荷のために成立していないが、遅延を生じつつも、マスタノード100も通信経路も機能はしている場合があり得る。
また、リクエストメッセージを受信したマスタノード100は、返信メッセージ送信時から所定時間Tr1以内に送信したスレーブノード200から次の新たなリクエストメッセージを受信しなかった場合、該スレーブノード200又はその通信経路に何らかの異常が発生したものとみなす。
ここで、所定時間Tr1は、該スレーブノード200がマスタノード100と同時かそれよりも先に異常を検知できるように、時間Ts1よりも十分長い時間、例えば数式Tr1=T01+2×Ts1で計算される時間とする。
マスタノード100が返信メッセージを送信した時からTs1経過してもスレーブノード200が該返信メッセージを受信していないなら、スレーブノード200は異常を検知する。異常を検知していないとすれば、スレーブノード200は、リクエストメッセージを送信した時からT01+Ts1経過するまでに次のリクエストメッセージを送信する。スレーブノード200が次のリクエストメッセージを送信した時からTs1経過してもマスタノード100が次のリクエストメッセージを受信していない場合、スレーブノード200は次のリクエストメッセージを送信した時からTs1経過しても返信メッセージを受領しないため、異常を検知する。
したがって、マスタノード200がTr1(=T01+2×Ts1)経過するまでの間に新たなリクエストメッセージを受け取らずに異常を検知した時には、スレーブノード200は、最新のリクエストメッセージに対する返信メッセージを該リクエストメッセージ送信時からTs1以内に受け取っていないか、次のリクエストメッセージに対する返信メッセージを該リクエストメッセージ送信時からTs1以内に受け取っていないかのどちらかなので、既に異常を検知している。
マスタノード100は、使用者からデータの更新要求を受けると、トランザクション・ログ記録領域104への書き込みを開始すると同時に、返信メッセージ送信時から所定時間Tr1以内に新たなリクエストメッセージの送信があったスレーブノード200の通信モジュール208に新たな更新に係るトランザクション・ログを転送する。そして、該トランザクション・ログを受領したスレーブノード200はレプリカDB202を更新し、マスタノード100に転送完了を送信することは上述のとおりである。
所定時間Tr1以内に新たなリクエストメッセージの送信がなかったスレーブノード200は何らかの異常が発生しているとみなし、その通信モジュール208には該トランザクション・ログを転送しない。
マスタノード100は、該トランザクション・ログを転送したすべてのスレーブノード200から転送完了の通知を受けたならば、新たなリクエストメッセージの送信がないスレーブノード200から転送完了の通知がなくてもトランザクション・ログの同期処理が完了したとみなす。トランザクション・ログの同期処理が完了し、かつ自らのマスタDB102の更新が終了したならば、使用者からのデータ更新要求は完了する。
使用者からのデータの検索要求は、検索指示としていずれかのスレーブノード200のDBバックエンド206に入り、該スレーブノード200がマスタノード100へリクエストメッセージを送信した時から所定時間Ts1以内に返信メッセージを受領した場合、使用者から要求された検索は、レプリカDB202を使用して行われる。
しかしながら、前記スレーブノード200が、所定時間Ts1以内にハートビート通信における返信メッセージを受領しなかった場合、通信モジュール208は、マスタノード100の通信モジュール108に、未取得かつ最新バージョンまでのトランザクション・ログ(本明細書において併せて「最新バージョンまでのトランザクション・ログ」又は単
に「トランザクション・ログ」ということがある。)を要求する。該要求するトランザクション・ログにスレーブノード200が既に取得しているトランザクション・ログを含まないことによって、伝達する情報量を減らし、通信負荷を軽減することができる。
該要求を受領した通信モジュール108は、該要求を送信したスレーブノード200の通信モジュール208に、最新バージョンまでのトランザクション・ログを送信する。
通信モジュール208は、受領した前記トランザクション・ログをトランザクション・ログ書き込みモジュール210に送信し、トランザクション・ログ書き込みモジュール210はトランザクション・ログ記録領域204に書き込む。次いで、復元モジュール212は、トランザクション・ログ記録領域204から前記トランザクション・ログを呼び出し、レプリカDB202に適用することにより、マスタDB102と検索対象として使用されるレプリカDB202との間のデータの複製が完了する。
使用者から要求された検索は、レプリカDB202を使用して行われる。
リクエストメッセージを送信した時から所定時間Ts1以内に返信メッセージを受領しなかったためにリクエストメッセージの送信を停止したスレーブノード200は、リクエストメッセージの送信を停止してから所定時間経過後、マスタノード100にリクエスト再開メッセージを送信し、その後最新バージョンまでのトランザクション・ログをマスタノード100に要求する。再開メッセージ送信時から所定時間Ts1以内に再開許可メッセージを受領すると、スレーブノード200は、マスタノード100にリクエストメッセージを送信し、その後は障害が発生する前と同様に、返信メッセージ受信時から所定時間T01毎にマスタノード100にリクエストメッセージを送信する。そして、リクエスト再開メッセージに対する返信メッセージを所定時間Ts1以内に受信しないか、再開拒否メッセージを受領すると、所定時間経過後再度リクエスト再開メッセージを送信する。
リクエスト再開メッセージを受信したマスタノード100は、該スレーブノード200に異常が発生したとみなしている場合は再開許可メッセージを送信し、該スレーブノード200をトランザクション・ログを転送する際の同期処理の対象となるノードに加える。その後、最新バージョンまでのトランザクション・ログの要求を受けると、該トランザクション・ログを送信する。
同期処理の対象から外されたスレーブノード200は、検索を実行するに際して最新バージョンまでのトランザクション・ログを入手してレプリカDBを更新するため、マスタDBと同期のとれたレプリカDBを用いて検索できる。
しかしながら、マスタノード100は、該スレーブノード200の異常を検知していない場合は、再開拒否メッセージを送信する。
実施例1では、原則として、使用者から更新要求を受けるとその都度、マスタノード100は、マスタDB102の更新に係るトランザクション・ログをすべてのスレーブノード200に転送し、各スレーブノード200にてレプリカDB202の更新が行われたことを確認してから該更新要求を完了するので、検索指示を受領したスレーブノード200は、既に最新の状態に保たれているレプリカDB202を使用して迅速に検索でき、検索頻度が高い場合にも検索スピードが低下しないというメリットがある。
また、マスタノード100といずれかのスレーブノード200との間のリクエスト又は返信メッセージに対する応答が所定時間以内にないときは、該ノード又はその通信経路に障害が発生したとみなし、マスタノード100は、マスタDB102を更新する際に該スレーブノード200を同期処理の対象から外し、該スレーブノード200が検索指示を受領するとその都度マスタノード100へ最新バージョンまでのトランザクション・ログを要求するので、障害発生時にもスレーブノード200を同期が取れた状態に保ちながら同期処理を高速に実行することができる。
本実施例では、上述のようにマスタノード100が返信メッセージ送信後新たなリクエストメッセージを受信するまでの時間Tr1を、Ts1よりも十分に長く設定している。このため、マスタノード100が障害を検知し、スレーブノード200を同期処理の対象から外したにもかかわらず、該スレーブノード200が障害に気づかないで、自らは最新バージョンまでのトランザクション・ログを受領していると判断することを防止できる。つまり、使用者が更新されたマスタDB102と同期されていないレプリカDB202を使用して検索するのを防止できる。
障害を検知したスレーブノード200は、障害が復旧した後、リクエストメッセージの送信を再開し、障害発生前の状態に復帰することができる。スレーブノード200との間の一時的なネットワークの障害に対して、障害が発生しているときは該スレーブノード200を同期の対象から外して更新要求を迅速に処理し、復旧後は再び同期の対象に加えて該スレーブノード200に対する検索要求を迅速に処理できるので、システム全体のパフォーマンスを向上することができる。
本実施例において、リクエスト及び返信メッセージの送受信とトランザクション・ログの要求及びその転送とを同一の通信経路を使用して行うことができる。また、通信経路として、先に送信したメッセージが必ず先に届くような通信経路を使用することができる。このことにより、リクエストメッセージと返信メッセージの送受信の確認により、その通信経路間のトランザクション・ログの転送が確実に行われていることが保証できる。
図1は、本発明の実施例2に係るデータの複製管理の概略を示し、その動作について、図1を参照して説明する。
実施例1の場合と同様に、使用者からのデータの更新要求を更新指示として受領したマスタノード100は、マスタDB102の更新を開始し、原則として、接続されているすべてのスレーブノード200の通信モジュール208にマスタDB102の更新に係るトランザクション・ログを送信する。
通信モジュール208は、該トランザクション・ログの受領が終了すると、転送完了の通知を通信モジュール108に送信し、通信モジュール108は、DBバックエンド106に送信する。
通信モジュール108がすべてのスレーブノード200の通信モジュール208からトランザクション・ログの転送完了の通知を受領し、かつマスタDB102の更新が終了すると、使用者からのデータの更新要求(更新指示)に従った更新作業は完了する。
図2は、マスタノード100とスレーブノード200との間の正常時のハートビート通信を示し、実施例1で説明したとおりである。
使用者からのデータの検索要求は、検索指示としていずれかのスレーブノード200のDBバックエンド206に入る。DBバックエンド206は、該検索指示を通信モジュール208に送信し、該スレーブノード200が、マスタノード100へリクエストメッセージを送信した時から所定時間Ts1以内に返信メッセージを受領した場合、通信モジュール208は、自ら所有する最新バージョンまでのトランザクション・ログをトランザクション・ログ書き込みモジュール210に送信する。トランザクション・ログ書き込みモジュール210は、該トランザクション・ログをトランザクション・ログ記録領域204に書き込む。
次いで、復元モジュール212は、トランザクション・ログ記録領域204から前記トランザクション・ログを呼び出し、レプリカDB202に適用することにより、マスタDB102と検索対象として使用されるレプリカDB202との間のデータの複製が完了する。データの検索要求は、レプリカDB202を使用して行われる。
検索指示を受領したスレーブノード200が、マスタノード100へリクエストメッセージを送信した時から所定時間Ts1以内に返信メッセージを受領しなかった場合については、実施例1と同様であり、本実施例における上記以外の実施例1で説明した態様についても、実施例1と同様である。
本実施例特有の効果は次のとおりである。
実施例2では、更新指示を反映したトランザクション・ログをスレーブノード200に送信したマスタノード100は、通信モジュール208から該トランザクション・ログの受領通知を受信するのを待つだけでよく、該トランザクション・ログがレプリカDB202に適用されるまで待つ必要がないので、トランザクション・ログ転送時の同期処理を迅速に処理できる。
また、検索指示を受領したスレーブノード200は既に受領している最新バージョンまでのトランザクション・ログを参照してレプリカDB202のデータ更新を行い、該レプリカDB202を使用して検索が行われる。
本実施例では、トランザクション・ログの適用を遅延して検索指示を受領したときにだけトランザクション・ログを適用してレプリカDBを更新するので、改めてマスタノード100に最新バージョンまでのトランザクション・ログを要求する必要がないというメリットがある。
図3は、本発明の実施例3において使用する木構造のデータの複製管理を示す説明図である。
木構造の根としてマスタノード100を有し、木構造の節点及び葉として複数のスレーブノード200を有する。マスタノードを最上層とし、マスタノード100からn層下層に位置するスレーブノードをスレーブノード200(n)と示す。
各ノードは、図3に示すように、1つ下層又は1つ上層に位置するノードとそれぞれネットワーク(図3にて図示せず)で直接接続されている。本明細書において、1のノードの「子ノード」とは該1のノードに直接接続されている1つ下層のノードをいい、1のノードの「親ノード」とは該1のノードに直接接続されている1つ上層のノードをいう。また、「葉ノード」とは子ノードを持たないノードをいう。
1のノードの「子孫ノード」とは、該1のノードの子ノード、該子ノードの子ノードと、木構造に沿って該1のノードから下層に下りることで到達することができるノードをいい、子孫ノードのうち、最も下層に位置するノード(葉ノード)と該1のノードとが位置する層の差を「高さ」と呼ぶことがある。
マスタノード100及び各スレーブノード200の構成は、それぞれ図1に示すマスタノード100及びスレーブノード200と同じである。
次に、実施例3に係るデータの複製管理方法について、図1及び図3を参照して説明する。
使用者からのデータの更新要求は、更新指示としてマスタノード100のDBバックエンド106に入る。DBバックエンド106は、該更新指示を受領すると、トランザクション・ログ記録領域104への書き込みを開始すると同時に、通信モジュール108に新たな更新に係るトランザクション・ログの転送指示を与える。
DBバックエンド106は、トランザクション・ログ記憶領域104への書き込みを終了すると、マスタDB102の更新を開始する。
新たな更新に係るトランザクション・ログの転送指示を受けた通信モジュール108は、すべての子ノード200(1)の通信モジュール208(1)に該トランザクション・ログを送信する。通信モジュール208(1)は、受領した該トランザクション・ログをトランザクション・ログ書き込みモジュール210(1)に送信し、レプリカDB202(1)の更新を指示するとともに、該トランザクション・ログを更にすべての子ノード200(2)の通信モジュール208(2)へ送信する。
上述のことは、葉ノードの200(z)の通信モジュール208(z)へ該トランザクション・ログを送信するまで繰り返される。
該通信モジュール208(z)は、該トランザクション・ログを受領するとトランザクション・ログ書き込みモジュール210(z)に送信し、トランザクション・ログ書き込みモジュール210(z)は、該トランザクション・ログをトランザクション・ログ記録領域204(z)に書き込む。
次いで、復元モジュール212(z)は、トランザクション・ログ記録領域204(z)から該トランザクション・ログを呼び出し、レプリカDB202(z)に適用することにより、マスタDB102と葉ノードの200(z)が管理するレプリカDB202(z)との間のデータの複製が完了する。
複製の完了を待って、通信モジュール208(z)は、前記トランザクション・ログを転送した親ノード200(z−1)の通信モジュール208(z−1)に転送完了を送信し、該通信モジュール208(z−1)は、送信したすべてのスレーブノード200(z)から転送完了を受領し、かつ自らのレプリカDB202(z−1)のデータの更新が完了したなら、更にその親ノード200(z−2)の通信モジュール208(z−2)に転送完了を送信する。
上記転送完了の送信を繰り返し、マスタノード100の通信モジュール108がすべての子ノード200(1)から転送完了を受領し、かつマスタDB102の更新が終了したなら、使用者からのデータの更新要求(更新指示)に従った更新作業は完了する。
図4は、スレーブノード200(n)とその親ノード200(n−1)又は100との間の正常なハートビート通信を示す説明図である。
スレーブノード200(n)は、その親ノードへ所定の時間Ti3間隔でハートビート通信におけるリクエストメッセージを送る。該リクエストメッセージを受信した親ノードは、スレーブノード200(n)へ前記ハートビート通信における返信メッセージを送る。スレーブノード200(n)がリクエストメッセージを送信した時から所定時間Ts3以内に親ノードから返信メッセージがなかった場合、該親ノード又はその通信経路に何らかの障害が発生しているおそれがある。前者の親ノードの障害の場合とは、親ノード自体がダウンしている場合の他、親ノードのタスク処理の負荷が大きすぎて、所定時間内に返信メッセージを返信できないような場合があり得る。また、通信経路の障害の場合とは、通信経路そのものがダウンしている場合の他、通信経路の負荷が大きいため、所定時間内に返信メッセージを到着させることができないような場合があり得る。つまり、ハートビート通信は過大な負荷のために成立していないが、遅延を生じつつも、親ノードも通信経路も機能はしている場合があり得る。
ここで、親ノードは、nが1より大きい場合はスレーブノード200(n−1)、n=1の場合はマスタノード100である(本明細書において併せて「親ノード200(n−1)又は100」と示すことがある。)。前記所定の時間Ti3は、スレーブノード200(n)が該親ノードへハートビート通信におけるリクエストメッセージを送信した後、返信メッセージ受領してから時間To3経過するまでの時間とする。
なお、前記所定の時間Ti3を、スレーブノード200(n)がハートビート通信におけるリクエストメッセージを送信した時から時間To3が経過するまでの時間とすることもできる。この場合も、リクエストメッセージを送信した時から所定時間Ts3以内に該親ノードから返信メッセージがなかった場合、システムに何らかの障害が発生しているおそれがある。
この場合のシステムの障害についても、親ノード自体がダウンしている場合の他、親ノードのタスク処理の負荷が大きすぎて、所定時間内にハートビート通信の返信メッセージを返信できないような場合があり得る。また通信経路の障害として、通信経路そのものがダウンしている場合の他、通信経路の負荷が大きいため、所定時間内に返信メッセージを到着させることができないような場合もあり得る。つまり、ハートビート通信は過大な負荷のために成立していないが、遅延を生じつつも、親ノードも通信経路も機能はしている場合があり得る。
スレーブノード200(n)は、ハートビート通信におけるリクエストメッセージを送信した時から所定時間Ts3以内にその親ノードからその返信メッセージを受け取った場合、自ノードが最新バージョンまでのトランザクションログを所有しているとみなす。
逆に、前記所定時間Ts3以内にその親ノードから前記ハートビート通信における返信メッセージを受領しなかった場合、該親ノードにハートビート通信におけるリクエストメッセージを送ることを停止する。つまり、スレーブノード200(n)は、システムに何らかの障害が発生しているおそれがあるとみなし、自ノードは最新バージョンまでのトランザクション・ログを所有していないとみなす。
この場合のシステムの障害についても、親ノード自体がダウンしている場合の他、親ノードのタスク処理の負荷が大きすぎて、所定時間内にハートビート通信の返信メッセージを返信できないような場合があり得る。また通信経路の障害として、通信経路そのものがダウンしている場合の他、通信経路の負荷が大きいため、所定時間内に返信メッセージを到着させることができないような場合もあり得る。つまり、ハートビート通信は過大な負荷のために成立していないが、遅延を生じつつも、親ノードも通信経路も機能はしている場合があり得る。
また、リクエストメッセージの送信を停止した前記スレーブノード200(n)は、その子ノード200(n+1)からリクエストメッセージがあると、それに対する返信メッセージを送信しない。そのため、該子ノード200(n+1)は、所定時間Ts3経過しても返信メッセージを受信しないため、該子ノードの子ノード200(n+2)に返答メッセージを送信しない。このことを、すべての子孫ノードに達するまで繰り返す。
なお、スレーブノード200(n)が返信メッセージの送信を停止してからそのすべての子孫ノードが障害を検知するまでにかかる最大の時間Tm3は、スレーブノード200(n)の木構造における高さをqとすると、T03,Ts3,qを変数とする関数Tm3=f(T03,Ts3,q)として計算することができ、qが大きくなるほど長くなる。
また、リクエストメッセージを受信したスレーブノード200(n)の親ノード200(n−1)又は100は、返信メッセージ送信時から所定時間Tr3以内に該スレーブノード200(n)から新たなリクエストメッセージがなかった場合、該スレーブノード200(n)又はその通信経路に何らかの異常が発生したものとみなす。ここで、Tr3は、該スレーブノード200(n)及びそのすべての子孫ノードが異常を検知するよりも確実に長い時間とする。1例として、数式Tr3=T03+2×Ts3+Tm3で計算される時間とする。
返信メッセージ送信時から時間T(=T03+2×Ts3)が経過するまでにスレーブノード200(n)は異常を検知し、その子ノードからのリクエストメッセージに返信メッセージを返さなくなる。該スレーブノード200(n)の木構造における高さをqとすると、その時点からさらに所定の関数Tm3=f(T03,Ts3,q)で計算される時間Tm3が経過すれば該スレーブノード200(n)のすべての子孫ノードが異常を検知することになる。したがって、Tr3=T03+2×Ts3+Tm3とすれば、時間Tr3は、スレーブノード200(n)及びそのすべての子孫ノードが異常を検知するよりも長い時間となる。
何らかの異常が発生したとみなした親ノード200(n−1)又は100は、返信メッセージ送信時から所定時間Tr3以内に新たなリクエストメッセージの送信があったスレーブノード200(n)の通信モジュール208(n)には前記トランザクション・ログを転送するが、前記所定時間Tr3以内に新たなリクエストメッセージの送信がなかったスレーブノード200(n)の通信モジュール208(n)には転送しない。
前記親ノードは、前記トランザクション・ログを転送したすべてのノード200(n)から転送完了の通知を受けたならば、新たなリクエストメッセージの送信がないスレーブノード200(n)から転送完了の通知がなくてもトランザクション・ログの同期処理が完了したとみなす。該親ノードがスレーブノード200(n−1)の場合は、トランザクション・ログの同期処理が完了し、かつ自らが管理するレプリカDB202(n−1)の更新が終了したならば、更にその親ノード200(n−2)又は100に転送完了の通知を送る。該親ノードがマスタノード100の場合は、トランザクション・ログの同期処理が完了し、かつ自らのマスタDB102の更新が終了したならば、使用者からのデータ更新要求は完了する。
使用者からのデータの検索要求は、検索指示としていずれかのスレーブノード200(k)のDBバックエンド206(k)に入り、該スレーブノード200(k)がその親ノード200(k−1)又は100へリクエストメッセージを送信し、該送信時から所定時間Ts3以内に該親ノードから返信メッセージを受領した場合には、データ検索はレプリカDB202(k)を使用して行われる。
しかしながら、前記所定時間Ts3以内に該親ノードからハートビート通信における返信メッセージを受領しなかった場合には、スレーブノード200(k)のDBバックエンド206(k)は、前記検索指示を通信モジュール208(k)に送信し、通信モジュール208(k)は、該親ノードの通信モジュール208(k−1)又は108に、マスタDB102の更新に係る最新バージョンまでのトランザクション・ログを要求する。
該親ノードが該トランザクション・ログを所有するスレーブノード200(k−1)又はマスタノード100である場合、該親ノードの通信モジュール208(k−1)又は108は、該スレーブノード200(k)の通信モジュール208(k)に該トランザクション・ログを送信する。
該親ノードが該トランザクション・ログを所有していないスレーブノード200(k−1)である場合、通信モジュール208(k−1)は、通信モジュール208(k)から前記トランザクション・ログの要求を受領してから所定時間経過後、更にその親ノードの通信モジュール208(k−2)又は108(k=2の場合)へ該トランザクション・ログの転送を要求する。
上述のように最新バージョンまでのトランザクション・ログの転送要求を繰り返し、該トランザクション・ログを所有するスレーブノード200(m)又はマスタノード100に達したならば、その通信モジュール208(m)又は108は、該トランザクション・ログを、転送要求を送信してきた子ノード200(m+1)又は200(1)の通信モジュール208(m+1)又は208(1)へ送信する。該トランザクション・ログを受領した通信モジュール208(m+1)又は208(1)は、転送要求を送信したその子ノードの子ノード200(m+2)又は208(2)の通信モジュール208(m+2)又は208(2)へ送る。同様な転送を繰り返し、スレーブノード200(k)の通信モジュール208(k)は、該トランザクション・ログを取得する。
通信モジュール208(k)は、該トランザクション・ログをトランザクション・ログ書き込みモジュール210(k)に転送し、トランザクション・ログ書き込みモジュール210(k)は、トランザクション・ログ記録領域204(k)に書き込む。
次いで、復元モジュール212(k)は、トランザクション・ログ記録領域204(k)から該トランザクション・ログを呼び出し、レプリカDB202(k)に適用することにより、マスタDB102と検索対象として使用されるレプリカDB202(k)との間のデータの複製が完了する。
リクエストメッセージを送信時から所定時間Ts3以内に親ノード200(n−1)又は100から返信メッセージを受領しなかったためにリクエストメッセージの送信を停止したスレーブノード200(n)は、リクエストメッセージの送信を停止してから数式Tm3=f(T03,Ts3,q)で計算される時間Tm3が経過した後、該親ノードにリクエスト再開メッセージを送信し、その後最新バージョンまでのトランザクション・ログを該親ノードに要求する。該リクエスト再開メッセージに対する再開許可メッセージを該リクエスト再開メッセージ送信時から所定時間Ts3以内に受領しないか、再開拒否メッセージを受領した場合、スレーブノード200(n)は所定時間経過後再度リクエスト再開メッセージを送信する。
再開メッセージ送信時から所定時間Ts3以内に再開許可メッセージを受領すると、該親ノードにリクエストメッセージを送信し、その後は異常を検知する前と同様に、返信メッセージ受信時から所定時間Ts1毎に該親ノードにリクエストメッセージを送信する。
リクエスト再開メッセージを受け取った該親ノードは、すでに該スレーブノード200(n)に異常が発生したとみなしており、かつ自ノードが最新バージョンまでのトランザクション・ログを所有している場合、再開許可メッセージを送信し、該ノード200(n)をトランザクション・ログを転送する対象となるノードに加える。また、その後に最新バージョンまでのトランザクション・ログの要求を受けると、所有している最新バージョンまでのトランザクション・ログを送信する。まだ該スレーブノード200(n)に異常が発生したとみなしていないか、自ノードが最新バージョンまでのトランザクション・ログを所有していない場合は再開拒否メッセージを送信する。
以上のようなので、障害が復旧するとまずスレーブノード200(n)がリクエストメッセージの送信を再開する。すると該スレーブノード200(n)が最新バージョンまでのトランザクション・ログを所有するようになるので、その子ノード200(n+1)がリクエストメッセージの送信を再開する。したがって、スレーブノード200(n)からすべての子孫ノードにいたるまで、上層から順にリクエストメッセージの送信を再開し、最終的にすべての子孫ノードが障害発生前の状態に復帰する。
このように同期処理の対象から外されたスレーブノード200(n)が検索指示を受領したときには検索を実行するに際して最新バージョンまでのトランザクション・ログを入手してレプリカDBを更新するため、マスタDBと同期のとれたレプリカDBを用いて検索できる。
実施例3では、木構造の根としてマスタノードであるマスタノード100を有し、木構造の節点及び葉としてスレーブノードである複数のスレーブノード200を有する構造において、マスタDBの更新に係るトランザクション・ログが、原則として、その更新の都度、すべてのスレーブノード200に転送され、各スレーブノード200にてレプリカDB202の更新が行われるので、使用者から検索要求を受けたスレーブノード200は、レプリカDB202を使用して迅速に検索ができ、検索頻度が高い場合にも検索スピードが低下しないというメリットがある。
また、接続されているいずれかのノード間のリクエストメッセージ又は応答メッセージに対して所定時間以内に応答がないときは、なんらかの障害が発生したとみなし、更新要求を受領したマスタノード100及びトランザクション・ログを受領したスレーブノード200は、リクエストメッセージを受領していない子ノード200を同期処理の対象から外し、検索要求を受領したスレーブノード200は、返信メッセージを受領していない場合は、スレーブノード200からその親ノードへ最新バージョンまでのトランザクション・ログを要求するので、障害発生時にもスレーブノード200を同期が取れた状態に保ちながら同期処理を高速に実行することができる。
本実施例において、親ノードが返信メッセージを送信した時から子ノードから新たなリクエストメッセージを受信するまでの時間Tr3を、T03、Ts3及び該子ノードの木構造における高さqを勘案して設定している。このため、親ノードが障害を検知して子ノードを同期処理の対象から外したにもかかわらず、該子ノード200及びその子孫ノードとなるすべてのスレーブノード200が、障害に気づかないで、最新バージョンまでのトランザクション・ログを受領していると判断することを防止できる。つまり、更新されたマスタDB102と同期されていないレプリカDB202を使用して検索するのを防止できる。
返信メッセージを受信できずに障害を検知したスレーブノード200は、障害が復旧した後、リクエストメッセージの送信を再開し、障害発生前の状態に復帰することができる。スレーブノード200との間の一時的なネットワークの障害に対して、障害が発生しているときは該スレーブノード200を更新要求に対する同期の対象から外して更新要求を迅速に処理し、障害が復旧した後は再び同期の対象に加えて該スレーブノード200に対する検索要求を迅速に処理できるので、システム全体のパフォーマンスを向上することができるというメリットがある。
本実施例において、通信モジュール208(n)から前記トランザクション・ログの要求を受領してから所定時間以内に、該スレーブノード200(n−1)の別の子ノードから最新バージョンまでのトランザクション・ログの要求が入ってきたら、それらの要求を取りまとめて更にその親ノードへ送ることができる。このようにすることによって、ネットワークトラフィックの負担を軽減できる。
さらに、本実施例において、リクエスト及び返信メッセージの送受信とトランザクション・ログの要求及びその転送とを同一の通信経路を使用して行うことができる。また、通信経路として、先に送信したメッセージが必ず先に届くような通信経路を使用することができる。このことにより、リクエストメッセージと返信メッセージの送受信の確認により、その通信経路間のトランザクション・ログの転送が確実に行われていることが保証できる。
図3は、本発明の実施例2に係るデータの複製管理の概略を示し、その動作について、図1及び図3を参照して説明する。
使用者からのデータの更新要求を受けたマスタノード100のDBバックエンド106から新たな更新に係るトランザクション・ログの転送指示を受けた通信モジュール108は、そのすべての子ノード200(1)の通信モジュール208(1)に前記トランザクション・ログを転送し、受領した通信モジュール208(1)はそれぞれ、更にそのすべての子ノード200(2)の通信モジュール208(2)に前記トランザクション・ログを転送する。
上述のことは、葉ノード200(z)の通信モジュール208(z)が前記トランザクション・ログを受信するまで繰り返される。
葉ノードの200(z)の通信モジュール208(z)は、前記トランザクション・ログを受信したなら、その親ノードの通信モジュール208(z−1)に転送完了を送信し、該通信モジュール208(z−1)は、転送したすべての葉ノード200(z)から転送完了を受領したら、更にその親ノードの通信モジュール208(z−2)に転送完了を送信する。
上記転送完了の送信を繰り返し、マスタノード100の通信モジュール108がすべてのスレーブノード200(1)から転送完了を受領し、かつマスタDB102の更新が終了したならば、クライアントからのデータの更新要求(更新指示)に従った更新作業は完了する。
使用者から要求された検索は、いずれかのスレーブノード200(k)のDBバックエンド206(k)に入り、該スレーブノード200(k)がその1つ上層のノード200(n−1)又はマスタノード100へリクエストメッセージを送信した時から所定時間Ts3以内に返信メッセージを受領し、自らが異常を検知していなかった場合、レプリカDB202(k)を使用して行われる。
使用者からのデータの検索要求は、検索指示としていずれかのスレーブノード200(k)のDBバックエンド206(k)に入る。DBバックエンド206(k)は、該検索指示を通信モジュール208(k)に送信し、該スレーブノード200(k)がその親ノード200(k−1)又はマスタノード100へリクエストメッセージを送信した時から所定時間Ts3以内に返信メッセージを受領した場合、通信モジュール208(k)は、自ら所有する最新バージョンまでのトランザクション・ログをトランザクション・ログ書き込みモジュール210(k)に送信する。トランザクション・ログ書き込みモジュール210は、該トランザクション・ログをトランザクション・ログ記録領域204(k)に書き込む。
次いで、復元モジュール212(k)は、トランザクション・ログ記録領域204(k)から該トランザクション・ログを呼び出し、レプリカDB202(k)に適用することにより、マスタDB102と検索対象として使用されるレプリカDB202(k)との間のデータの複製が完了し、データの検索要求は、レプリカDB202(k)を使用して行われる。
検索指示を受領したスレーブノード200(k)が、前記所定時間Ts3以内に返信メッセージを受領しなかった場合については実施例3と同様であり、本実施例における上記以外の実施例3で説明した態様についても、実施例3と同様である。
本実施例特有の効果は次のとおりである。
実施例4では、更新指示を反映したトランザクション・ログをスレーブノード200(k)に送信した親ノード200(k−1)は、通信モジュール208(k)から該トランザクション・ログの受領通知を受領するのを待つだけでよく、該トランザクション・ログがスレーブDB202(k)に適用するまで待つ必要がないので、トランザクション・ログ転送時の同期処理を迅速に処理できる。
また、検索指示を受領したスレーブノード200(k)は既に受領している最新バージョンまでのトランザクション・ログを参照してレプリカDB202(k)のデータ更新を行い、該レプリカDB202(k)を使用して検索が行われる。
本実施例では、トランザクション・ログの適用を遅延して検索指示を受領したときにだけトランザクション・ログを適用してレプリカDBを更新するので、改めて該親ノードに最新バージョンまでのトランザクション・ログを要求する必要がないというメリットがある。
以上説明したように、本発明によると複数サイト間で、逐次更新される情報が整合性を確保しながら検索することのできるDB管理システムとして使用できる。
100 マスタノード
102 マスタDB
104,204 トランザクション・ログ記憶領域
106,206 DBバックエンド
108,208 トランザクション・ログ書き込みモジュール
120 ネットワーク
200 スレーブノード
202 レプリカDB

Claims (6)

  1. マスタノードによって管理されるマスタデータベースと、該マスタデータノードを根として本構造に接続された複数のスレーブノードによって前記マスタデータベースと同一内容となるよう管理され、検索対象として使用されるレプリカデータベースとの間のデータ複製管理方法であって、
    検索の指示を受領した前記スレーブノードは、該スレーブノードの親ノードへハートビート通信におけるリクエストメッセージを送信した時から所定時間(Ts3)以内に該親ノードから前記ハートビート通信における返信メッセージを受領しなかった場合、前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログの要求を前記親ノードへ送信するステップと、
    前記親ノードが該トランザクション・ログを有しなかった場合、該親ノードは更に該親ノードの親ノードへ該トランザクション・ログを要求することを、該トランザクション・ログを有するノードに達するまで繰り返すステップと、
    要求を受領した該トランザクション・ログを有するノードは、該ノードの子ノードへ該トランザクション・ログを送信し、該子ノードは更にその子ノードへ該トランザクション・ログを送信することを、前記スレーブノードが該トランザクション・ログを受領するまで繰り返すステップと、
    前記スレーブノードは、受信した該トランザクション・ログを参照して前記レプリカデータベースを更新するステップと
    を含むデータの複製管理方法。
  2. 前記スレーブノードは、該スレーブノードの親ノードへハートビート通信におけるリクエストメッセージを送信した時から所定時間(Ts3)以内に前記親ノードから前記ハートビート通信における返信メッセージを受領した場合、既に受領しているトランザクション・ログを参照して前記レプリカデータベースを更新するステップをさらに含む請求項1記載のデータ複製管理方法。
  3. 前記ノードは、前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログを前記子ノードへ送信後であって、前記リクエストメッセージの受領時から所定時間(Tr3)以内に新たなリクエストメッセージを受領した前記子ノードのすべてから転送の完了の通知を受領すると、その親ノードに転送完了の通知を送信するステップ
    を含む請求項1または2記載のデータの複製管理方法。
  4. 前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログを有しない前記ノードは、該ノードの子ノードのいずれかから該トランザクション・ログの要求を受領した場合、これらの要求を取りまとめて、前記ノードの親ノードへ該トランザクション・ログを要求するステップを含む請求項1乃至3のいずれか1項に記載のデータの複製管理方法。
  5. マスタノードによって管理されるマスタデータベースと、該マスタノードを根として木構造に接続された複数のスレーブノードによって前記マスタデータベースと同一内容となるよう管理され、検索対象として使用されるレプリカデータベースとを接続して構成されるデータの複製管理システムであって、
    前記マスタノードが、更新の指示に従って前記マスタデータベースを更新する手段と、
    前記マスタデータベースの更新に係るトランザクション・ログを前記マスタノードの子ノードへ送信する手段と、
    該子ノードの要求に従って前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログを該子ノードへ送信する手段とを備え、
    前記スレーブノードが、該スレーブノードの親ノードへハートビート通信におけるリクエストメッセージを送信した時から所定時間(Ts3)以内に該1つ上層のノードから前記ハートビート通信における返信メッセージを受領しなかった場合、前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログを該親ノードへ要求する手段と、
    転送された該トランザクション・ログを参照して前記レプリカデータベースを更新する手段と
    前記ノードが前記マスタデータベースの更新に係る最新バージョンまでのトランザクション・ログを有しない場合、前記ノードの親ノードへ該トランザクション・ログを要求する手段と、
    該トランザクション・ログを有する場合、要求した前記ノードの子ノードへ該トランザクション・ログを送信する手段と、
    該トランザクション・ログを前記ノードの子ノードへ送信後であって、前記リクエストメッセージの受領時から所定時間以内に新たなリクエストメッセージを受領した該子ノードのすべてから転送完了の通知を受領すると、前記親ノード又はマスタノードへ転送完了の通信を送信する手段と
    を備えるデータの複製管理システム。
  6. 前記スレーブノードが、該スレーブノードの親ノードへリクエストメッセージを送信した時から所定時間(Ts3)以内に該親ノードから返信メッセージを受領した場合、検索の指示に従って既に受領しているトランザクション・ログを参照して前記レプリカデータベースを更新する手段をさらに備える請求項5記載のデータの複製管理システム。
JP2010536265A 2009-03-19 2010-03-15 データの複製管理方法及びシステム Active JP4719318B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010536265A JP4719318B2 (ja) 2009-03-19 2010-03-15 データの複製管理方法及びシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009069140 2009-03-19
JP2009069140 2009-03-19
PCT/JP2010/054311 WO2010106991A1 (ja) 2009-03-19 2010-03-15 データの複製管理方法及びシステム
JP2010536265A JP4719318B2 (ja) 2009-03-19 2010-03-15 データの複製管理方法及びシステム

Publications (2)

Publication Number Publication Date
JP4719318B2 true JP4719318B2 (ja) 2011-07-06
JPWO2010106991A1 JPWO2010106991A1 (ja) 2012-09-20

Family

ID=42739650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010536265A Active JP4719318B2 (ja) 2009-03-19 2010-03-15 データの複製管理方法及びシステム

Country Status (5)

Country Link
US (1) US8423507B2 (ja)
EP (1) EP2410431B1 (ja)
JP (1) JP4719318B2 (ja)
KR (1) KR101335101B1 (ja)
WO (1) WO2010106991A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016184432A (ja) * 2016-06-22 2016-10-20 株式会社Murakumo データベースの管理方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012056734A1 (ja) * 2010-10-26 2012-05-03 株式会社Murakumo データベースの管理方法
JP5812512B2 (ja) * 2011-05-10 2015-11-17 日本電気株式会社 データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
EP2544107A1 (en) * 2011-07-05 2013-01-09 Murakumo Corporation Method of managing a database
JP5283766B2 (ja) * 2011-07-05 2013-09-04 株式会社Murakumo データベースの管理方法、データベース管理システム、およびプログラム
WO2012169080A1 (ja) * 2011-07-05 2012-12-13 株式会社Murakumo データベースの管理方法
ES2723781T3 (es) * 2011-08-03 2019-09-02 Amadeus Sas Método y sistema para mantener consistencia fuerte de contenidos replicados distribuidos en un sistema de cliente/servidor
US9058371B2 (en) * 2011-11-07 2015-06-16 Sap Se Distributed database log recovery
WO2013076819A1 (ja) * 2011-11-22 2013-05-30 株式会社Murakumo データベースの管理方法
WO2013132628A1 (ja) 2012-03-08 2013-09-12 株式会社Murakumo データベースの管理方法
JP5464675B2 (ja) * 2012-04-02 2014-04-09 Necシステムテクノロジー株式会社 ミラーリングシステム、ノード、ミラーリング方法、及びプログラム
JP6008947B2 (ja) 2012-04-18 2016-10-19 株式会社Murakumo データベースの管理方法、データベースシステム、及び、プログラム
US8768891B2 (en) * 2012-04-27 2014-07-01 Sap Ag Ensuring database log recovery consistency
US9348927B2 (en) * 2012-05-07 2016-05-24 Smart Security Systems Llc Systems and methods for detecting, identifying and categorizing intermediate nodes
US10778659B2 (en) 2012-05-24 2020-09-15 Smart Security Systems Llc System and method for protecting communications
WO2015116768A2 (en) 2014-01-29 2015-08-06 Sipn, Llc Systems and methods for protecting communications
US9325676B2 (en) 2012-05-24 2016-04-26 Ip Ghoster, Inc. Systems and methods for protecting communications between nodes
WO2014010014A1 (ja) * 2012-07-09 2014-01-16 株式会社Murakumo ツリー構造の管理方法、情報処理システム、及び、プログラム
CN103024047A (zh) * 2012-12-17 2013-04-03 江苏乐买到网络科技有限公司 一种数据容错方法
EP2937788A4 (en) 2012-12-21 2016-06-22 Murakumo Corp INFORMATION PROCESSING METHOD, INFORMATION PROCESSING DEVICE, AND PROGRAM
US10120900B1 (en) 2013-02-25 2018-11-06 EMC IP Holding Company LLC Processing a database query using a shared metadata store
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
CN103425756B (zh) * 2013-07-31 2016-06-29 西安交通大学 一种hdfs中数据块的副本管理策略
US9991514B2 (en) * 2013-08-29 2018-06-05 Lg Chem, Ltd. Method of manufacturing lithium nickel complex oxide, lithium nickel complex oxide manufactured thereby, and cathode active material including the same
US9430545B2 (en) * 2013-10-21 2016-08-30 International Business Machines Corporation Mechanism for communication in a distributed database
JP6461101B2 (ja) * 2014-03-25 2019-01-30 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム
JP6257748B2 (ja) 2014-03-25 2018-01-10 株式会社Murakumo データベースシステム、情報処理装置、方法およびプログラム
US9990224B2 (en) * 2015-02-23 2018-06-05 International Business Machines Corporation Relaxing transaction serializability with statement-based data replication
KR101672724B1 (ko) * 2015-05-08 2016-11-04 주식회사 엘지유플러스 미들티어, 이를 포함하는 데이터 처리 시스템, 및 데이터베이스 이관 방법
US10210520B2 (en) 2015-07-10 2019-02-19 Mastercard International Incorporated Co-processing electronic signals for redundancy
JP6846111B2 (ja) * 2016-02-26 2021-03-24 オムロン株式会社 マスタ装置、スレーブ装置、情報処理装置、イベントログ収集システム、マスタ装置の制御方法、スレーブ装置の制御方法、および制御プログラム
KR101706252B1 (ko) * 2016-02-29 2017-02-13 주식회사 티맥스데이터 이기종 데이터베이스들 간의 쿼리 결과를 동기화하기 위한 방법, 서버 및 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램
US11222003B1 (en) * 2016-09-28 2022-01-11 Amazon Technologies, Inc. Executing transactions for a hierarchy of data objects stored in a non-transactional data store
CN107908370B (zh) * 2017-11-30 2021-07-06 新华三技术有限公司 数据存储方法及装置
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11194930B2 (en) 2018-04-27 2021-12-07 Datatrendz, Llc Unobtrusive systems and methods for collecting, processing and securing information transmitted over a network
US11269679B2 (en) 2018-05-04 2022-03-08 Microsoft Technology Licensing, Llc Resource-governed protocol and runtime for distributed databases with consistency models
CN109032849B (zh) * 2018-08-30 2021-03-23 百度在线网络技术(北京)有限公司 热备份系统、热备份方法和计算机设备
US11544232B2 (en) * 2019-12-11 2023-01-03 Western Digital Technologies, Inc. Efficient transaction log and database processing
CN111049928B (zh) * 2019-12-24 2022-03-29 北京奇艺世纪科技有限公司 数据同步方法、系统、电子设备及计算机可读存储介质
US11513574B2 (en) * 2020-02-12 2022-11-29 Arm Limited System and method for controlling a reset procedure
CN112104888B (zh) * 2020-09-18 2022-07-05 北京一起教育信息咨询有限责任公司 一种直播用户分组的方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028594A (ja) * 1999-07-14 2001-01-30 Nippon Telegr & Teleph Corp <Ntt> データ複製方法およびデータ複製プログラムを記録した記録媒体
JP2003345640A (ja) * 2002-05-28 2003-12-05 Mitsubishi Electric Corp データベースバックアップシステム
JP2009015476A (ja) * 2007-07-03 2009-01-22 Hitachi Ltd Cdpリモート構成におけるジャーナル管理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6500596A (en) 1995-07-20 1997-02-18 Novell, Inc. Transaction log management in a disconnectable computer and network
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
AU1838200A (en) * 1998-11-30 2000-06-19 Siebel Systems, Inc. Client server system with thin client architecture
US6889254B1 (en) * 1999-03-30 2005-05-03 International Business Machines Corporation Scalable merge technique for information retrieval across a distributed network
US6694337B1 (en) * 2000-10-26 2004-02-17 Intel Corporation Synchronizing databases
US20020165724A1 (en) * 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
US7054910B1 (en) * 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US6857053B2 (en) 2002-04-10 2005-02-15 International Business Machines Corporation Method, system, and program for backing up objects by creating groups of objects
US7158985B1 (en) * 2003-04-09 2007-01-02 Cisco Technology, Inc. Method and apparatus for efficient propagation of large datasets under failure conditions
US7325097B1 (en) * 2003-06-26 2008-01-29 Emc Corporation Method and apparatus for distributing a logical volume of storage for shared access by multiple host computers
US7233991B2 (en) * 2003-08-22 2007-06-19 Clearmesh Networks, Inc. Self-healing tree network
US20050086384A1 (en) * 2003-09-04 2005-04-21 Johannes Ernst System and method for replicating, integrating and synchronizing distributed information
US7552122B1 (en) * 2004-06-01 2009-06-23 Sanbolic, Inc. Methods and apparatus facilitating access to storage among multiple computers
US7734585B2 (en) * 2004-12-03 2010-06-08 Oracle International Corporation Updateable fan-out replication with reconfigurable master association
US7523110B2 (en) * 2005-03-03 2009-04-21 Gravic, Inc. High availability designated winner data replication
JP2006293910A (ja) 2005-04-14 2006-10-26 Kokolink:Kk 安全で高速なデータベース・レプリケーション技術
US7551572B2 (en) 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7739239B1 (en) * 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
US7664125B1 (en) * 2006-01-03 2010-02-16 Emc Corporation Indication forwarding in a distributed environment
US20070220059A1 (en) * 2006-03-20 2007-09-20 Manyi Lu Data processing node

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028594A (ja) * 1999-07-14 2001-01-30 Nippon Telegr & Teleph Corp <Ntt> データ複製方法およびデータ複製プログラムを記録した記録媒体
JP2003345640A (ja) * 2002-05-28 2003-12-05 Mitsubishi Electric Corp データベースバックアップシステム
JP2009015476A (ja) * 2007-07-03 2009-01-22 Hitachi Ltd Cdpリモート構成におけるジャーナル管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016184432A (ja) * 2016-06-22 2016-10-20 株式会社Murakumo データベースの管理方法

Also Published As

Publication number Publication date
JPWO2010106991A1 (ja) 2012-09-20
EP2410431A4 (en) 2012-11-28
EP2410431B1 (en) 2014-05-07
EP2410431A1 (en) 2012-01-25
WO2010106991A1 (ja) 2010-09-23
US20120011098A1 (en) 2012-01-12
KR20110139739A (ko) 2011-12-29
KR101335101B1 (ko) 2013-12-03
US8423507B2 (en) 2013-04-16

Similar Documents

Publication Publication Date Title
JP4719318B2 (ja) データの複製管理方法及びシステム
US9934242B2 (en) Replication of data between mirrored data sites
JP5776267B2 (ja) 分散ファイルシステム
US8433676B2 (en) Solution method of in-doubt state in two-phase commit protocol of distributed transaction
JP4224126B1 (ja) データベース管理サーバ装置、データベース管理システム、データベース管理方法およびデータベース管理プログラム
US20140089619A1 (en) Object replication framework for a distributed computing environment
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
JP5982842B2 (ja) コンピュータ障害監視プログラム、方法、及び装置
US11301490B2 (en) Synchronous database replication with asynchronous transaction recovery
CN103870570A (zh) 一种基于远程日志备份的HBase数据可用性及持久性的方法
US11892982B2 (en) Facilitating immediate performance of volume resynchronization with the use of passive cache entries
CN105493474A (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
CN113168404A (zh) 用于在分布式数据库系统中复制数据的系统和方法
JP2010033467A (ja) 情報管理システム
US10769174B2 (en) Site-consolidated disaster-recovery with synchronous-to-asynchronous traffic conversion
CN105069152A (zh) 数据处理方法及装置
JP2008141361A (ja) データ配信方法、データ配信システム及びノード装置
CN104023061A (zh) 一种lustre的oss高可用集群方案
JP2006048122A (ja) 通信システム
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
JP2938860B1 (ja) 分散型データ管理システム
JP5449471B2 (ja) 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム
KR102221350B1 (ko) 백업 데이터에 대한 신뢰성을 확보하면서도 블록체인 네트워크를 복구하는 딜레이드 동기화 방법 및 장치
WO2023125412A1 (en) Method and system for synchronous data replication
JP2016051256A (ja) Dbシステム及びデータ要求信号のプロキシ方法

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110401

R150 Certificate of patent or registration of utility model

Ref document number: 4719318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250