JP6553125B2 - データベースサーバ、データベース管理方法、およびプログラム - Google Patents

データベースサーバ、データベース管理方法、およびプログラム Download PDF

Info

Publication number
JP6553125B2
JP6553125B2 JP2017120318A JP2017120318A JP6553125B2 JP 6553125 B2 JP6553125 B2 JP 6553125B2 JP 2017120318 A JP2017120318 A JP 2017120318A JP 2017120318 A JP2017120318 A JP 2017120318A JP 6553125 B2 JP6553125 B2 JP 6553125B2
Authority
JP
Japan
Prior art keywords
database
database server
server
request
state
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
JP2017120318A
Other languages
English (en)
Other versions
JP2019003584A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2017120318A priority Critical patent/JP6553125B2/ja
Priority to PCT/JP2018/008667 priority patent/WO2018235348A1/ja
Priority to US16/082,771 priority patent/US11269922B2/en
Publication of JP2019003584A publication Critical patent/JP2019003584A/ja
Application granted granted Critical
Publication of JP6553125B2 publication Critical patent/JP6553125B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

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

Description

本発明の実施形態は、データベースサーバ、データベース管理方法、およびプログラム
に関する。
従来、データのレプリケーションを行うシステムが知られている。レプリケーションは、複数のデータベース間で行われる。複数のデータベースを備えるデータベースシステムでは、いずれかのデータベースサーバがマスターとして機能し、他のデータベースサーバがスレーブとして機能する場合がある。マスターは、クライアントからの要求を受け付け、自身のデータベースを更新すると共に、スレーブのデータベースサーバにデータの複製を保存すること(データの同期)を依頼する。
ここで、データベースシステムとして、要求に基づく処理が完了したことをクライアントに通知する動作パターンには、主に2通りの動作パターンがある。例えば、スレーブにおいて同期が完了してからクライアントに通知する動作パターン(同期レプリケーション)と、クライアントに通知してから任意のタイミングで同期を行う動作パターン(非同期レプリケーション)とがある。
そして、マスターとスレーブの関係は、何らかの契機で入れ替わる場合がある。以下、この動作をスイッチオーバーと称する。従来の非同期レプリケーションを行うデータベースシステムでは、スイッチオーバーを開始する時点で同期が完了していない場合、同期が完了するまでスイッチオーバーが完了せず、クライアントからの要求を受け付けられない期間が生じる場合があった。なお、機器故障などの異常時に実行されるスイッチに関してはこの限りでない。
上記に関連し、第1のサイトと第2のサイトとを備え、第2のサイトが、第1のサイトに代わってまたは第1のサイトの補助としてシステム機能の少なくとも一部を提供するために書き込み要求または読み出し要求を受け付けることができ、要求に基づく処理を実行するとき、要求の対象となる最新のデータを未だ保持していなければ、必要な更新情報を取得してから処理を実行するシステムが知られている。しかしながら、この技術においても、要求の対象となる最新のデータを未だ保持していない場合には、必要な更新情報を取得するまでの間、要求に基づく処理を実行できないことになり、クライアントへの応答が遅延する場合があった。
特開2006−11848号公報
本発明が解決しようとする課題は、スイッチオーバー実行時に、より迅速にクライアントに応答することができるデータベースサーバ、データベース管理方法、およびプログラムを提供することである。
実施形態のデータベースサーバは、データベースシステムに含まれる。データベースシステムは、複数のデータベースサーバを備える。データベースサーバは、データベース管理部と、同期処理部とを持つ。データベース管理部は、自データベースサーバが、クライアントからの要求を受け付ける第1の状態である場合、前記クライアントからの要求に応じてデータベースを更新し、前記要求に基づき前記複数のデータベースサーバに含まれる他のデータベースサーバに当該他のデータベースサーバのデータベースを更新させるための更新データと、データの管理単位ごとの前記更新データの管理情報とをメモリに登録する。同期処理部は、自データベースサーバが、前記第1の状態である場合、前記メモリに登録された更新データを前記他のデータベースに送信する。自データベースサーバが、役割変更指示に応じて前記第1の状態から第2の状態に遷移するとき、前記同期処理部は、前記メモリに登録された前記管理情報を前記他のデータベースに送信する。自データベースサーバが、前記第2の状態である場合、前記同期処理部は、前記メモリに登録された更新データを前記他のデータベースに送信する。自データベースサーバが、前記第2の状態から遷移する第3の状態である場合、前記同期処理部は、前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいて前記データベースを更新する。
実施形態のデータベースシステム1の構成図。 通常時におけるステージシステム1の動作を説明するための図。 通常時におけるステージシステム1の動作を説明するための図。 通常時におけるステージシステム1の動作を説明するための図。 通常時におけるステージシステム1の動作を説明するための図。 通常時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 スイッチオーバー時におけるステージシステム1の動作を説明するための図。 第1DBサーバ100のDB管理部110およびレプリケーション処理部130により実行される処理の流れの一例を示すフローチャート。 第2DBサーバ200のDB管理部210およびレプリケーション処理部230により実行される処理の流れの一例を示すフローチャート。 比較例のデータベースシステムにおいてスイッチオーバー実行時に行われる処理の流れを模式的に示す図。 実施形態のデータベースシステム1においてスイッチオーバー実行時に行われる処理の流れを模式的に示す図。 三つ以上のDBサーバを備えるデータベースシステム2の概略図。 データベースシステム2においてスイッチオーバーが開始された場面を示す図。 データベースシステム2においてスイッチオーバーが完了した後の場面を示す図。
以下、実施形態のデータベースサーバ、データベース管理方法、およびプログラム
を、図面を参照して説明する。
[全体構成]
図1は、実施形態のデータベースシステム1の構成図である。データベースシステム1は、クライアント300からの要求に応じて、ストレージ装置に格納したデータベースを管理するシステムである。クライアント300は、例えば、ネットワーク(不図示)を介してデータベースシステム1に要求(換言するとコマンド、リクエスト)を送信する各種コンピュータ装置である。クライアント300は、データベースシステム1よりも上位のデータベースシステムの管理コンピュータであってもよい。要求は、例えばSQL文によって伝達される。実施形態では、クライアント300とデータベースシステム1との通信経路をクライアントリンクCLと称し、図示する。
データベースシステム1は、例えば、第1DB(データベース)サーバ100と、第2DBサーバ200とを備える。第1DBサーバ100および第2DBサーバ200は、一方がマスターDBとして動作し、他方がスレーブDBとして動作する。図1の例では、第1DBサーバ100がマスターDBとして動作し、第2DBサーバ200がスレーブDBとして動作している。この関係は、例えば、図示しないデータベースシステム1の入力部に対して指示信号を出力することで切り替え可能である。
マスターDBは、クライアント300からの要求を受け付け、まず自信のDBを更新しでクライアント300に応答を返し、任意のタイミングでスレーブDBに同じ要求を送信してDBを同期させる。すなわち、データベースシステム1は、非同期レプリケーションを行う。
マスターDBとスレーブDBの間の通信経路として、例えば、DBリンクDLと、レプリケーションリンクRLの二つが用意されている。これらの通信経路は、物理的に異なる通信経路であってもよいし、一つの通信線を用いた仮想的な通信経路であってもよいし、無線通信を用いた通信経路であってもよい。
[第1DBサーバ]
第1DBサーバ100は、例えば、DB管理部110と、DB120と、レプリケーション処理部130と、更新リストモジュール140とを備える。DB管理部110およびレプリケーション処理部130は、例えば、CPU(Central Processing Unit)などのプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらのうち一方または双方は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェア(回路部:circuitry)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
DB管理部110は、第1DBサーバ100がマスターDBである場合、クライアント300に対する窓口として機能する。DB管理部110は、クライアント300からの要求を解釈し、DB120の更新あるいはDB120からのデータの読み出しを行う。更新の要求には、書き込みと削除があるが、以下ではこれらをまとめて更新要求と称する。DB管理部110は、所定のデータの管理単位でDB120を管理する。データの管理単位は、テーブル、ブロック、ページ、レコードその他の名称で称することができるが、本実施形態ではデータの管理単位をテーブルとして説明する。また、簡易的に、DB120およびDB220には、A、B、C、D、Eの5つのテーブルが設定されているものとする。また、DB管理部110は、DB120を更新するのに応じて、更新リストモジュール140を更新する。
DB120は、例えば、一以上の、HDD(Hard Disk Drive)やフラッシュメモリ、磁気抵抗メモリなどの不揮発性の記憶装置(ストレージ装置)によって記憶されるデータベースである。
レプリケーション処理部130は、第1DBサーバ100がマスターDBである場合、DB管理部110によって更新された更新リストモジュール140を参照し、クライアント300からの要求を解釈した結果(或いは要求そのもの)を、レプリケーションリンクRLを介して第2DBサーバ200のレプリケーション処理部230に送信する。この際に、レプリケーション処理部130は、更新リストモジュール140を更新する。また、レプリケーション処理部130は、第1DBサーバ100がスレーブDBである場合、レプリケーションリンクRLを介して第2DBサーバ200のレプリケーション処理部230から受信した情報に基づいて、DB120を更新する。
更新リストモジュール140は、例えばRAM(Random Access Memory)、フラッシュメモリなどのメモリによって記憶される情報である。更新リストモジュール140は、DB120と同じ記憶装置によって記憶されてもよい。更新リストモジュール140は、例えば、送信更新リスト141と、受信更新リスト142と、送信更新テーブルリスト143と、受信更新テーブルリスト144とを備える。
送信更新リスト141には、更新データが登録される。送信更新リスト141に登録される更新データは、DB管理部110によりDB120に更新がなされたデータであって、未だ第2DBサーバ200に送信されていないデータである。
受信更新リスト142には、更新データとフラグとが登録される。受信更新リスト142に登録される更新データは、これからDB120に対して更新処理がなされる対象のデータである。フラグについては後述する。
送信更新テーブルリスト143には、テーブルと更新回数とが登録される。送信更新テーブルリスト143に登録されるテーブルは、送信更新リスト141に登録されている更新データが更新対象とするテーブルである。
送信更新テーブルリスト143、受信更新テーブルリスト144、送信更新テーブルリスト243、および受信更新テーブルリスト244における更新回数は、通常時とスイッチオーバー時で意味合いが異なる。ここでスイッチオーバーについて説明する。スイッチオーバーとは、例えば、外部からの指示に応じて、或いは内部的なロジックに基づいて、マスターDBとスレーブDBの機能を入れ替えることをいう。この機能の入れ替えには、スイッチオーバーの他に、機器故障や通信障害などによって緊急的に行うフェールオーバーがある。スイッチオーバーは、上記のような異常に起因して行われるものではないため、スイッチオーバーの完了時には、クライアント300から見てスイッチオーバー前の状態が引き継がれている必要がある。以下、スイッチオーバーの処理が開始されてから完了するまでの間をスイッチオーバー時と称し、それ以外の期間を通常時と称する。
通常時の場合、送信更新テーブルリスト143における更新回数は、対応するテーブルにおいて、送信更新リスト141に登録されている更新データの数を表す。また、スイッチオーバー時の場合、送信更新テーブルリスト143における更新回数は、スイッチオーバー開始時にレプリケーション処理部230に送信された後、レプリケーション処理部130によってリセットされる。
受信更新テーブルリスト144には、テーブルと更新回数とが登録される。受信更新テーブルリスト144に登録されるテーブルは、第2DBサーバ200の送信更新リスト241に登録されている更新データが更新対象とするテーブルである。
通常時の場合、受信更新テーブルリスト144における更新回数は、対応するテーブルにおいて、受信更新リスト142に登録されている更新データの数を表す。スイッチオーバー時の場合、受信更新テーブルリスト144における更新回数は、スイッチオーバー開始時にレプリケーション処理部230から受信した回数に対して、未同期のテーブルに関する更新要求がクライアント300から受信される度にDB管理部110によってインクリメントされ、DB120に格納される度にレプリケーション処理部130によってデクリメントされる。
[第2DBサーバ]
第2DBサーバ200は、例えば、DB管理部210と、DB220と、レプリケーション処理部230と、更新リストモジュール240とを備える。DB管理部210およびレプリケーション処理部230は、例えば、CPUなどのプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらのうち一方または双方は、LSIやASIC、FPGAなどのハードウェア(回路部:circuitry)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
DB管理部210は、第2DBサーバ100がマスターDBである場合、クライアント300に対する窓口として機能する。DB管理部210は、クライアント300からの要求を解釈し、DB220の更新あるいはDB220からのデータの読み出しを行う。DB管理部210は、第1DBサーバ100と同じ管理単位でDB220を管理する。また、DB管理部210は、DB220を更新するのに応じて、更新リストモジュール240を更新する。
DB220は、例えば、一以上の、HDDやフラッシュメモリ、磁気抵抗メモリなどの不揮発性の記憶装置(ストレージ装置)によって記憶されるデータベースである。
レプリケーション処理部230は、第2DBサーバ200がマスターDBである場合、DB管理部210によって更新された更新リストモジュール240を参照し、クライアント300からの要求を解釈した結果(或いは要求そのもの)を、レプリケーションリンクRLを介して第1DBサーバ100のレプリケーション処理部130に送信する。この際に、レプリケーション処理部230は、更新リストモジュール240を更新する。また、レプリケーション処理部230は、第2DBサーバ200がスレーブDBである場合、レプリケーションリンクRLを介して第1DBサーバ100のレプリケーション処理部130から受信した情報に基づいて、DB210を更新する。
更新リストモジュール240は、例えばRAM、フラッシュメモリなどの記憶装置によって記憶される情報である。更新リストモジュール240は、DB220と同じ記憶装置によって記憶されてもよい。更新リストモジュール240は、例えば、送信更新リスト241と、受信更新リスト242と、送信更新テーブルリスト243と、受信更新テーブルリスト244とを備える。
送信更新リスト241には、更新データが登録される。送信更新リスト241に登録される更新データは、DB管理部210によりDB220に更新がなされたデータであって、未だ第1DBサーバ100に送信されていないデータである。
受信更新リスト242には、更新データとフラグとが登録される。受信更新リスト242に登録される更新データは、第1DBサーバ100から受信し、未だDB220に対して更新処理がなされていないデータである。フラグについては後述する。
送信更新テーブルリスト243には、テーブルと更新回数とが登録される。送信更新テーブルリスト243に登録されるテーブルは、送信更新リスト241に登録されている更新データが更新対象とするテーブルである。
通常時において、送信更新テーブルリスト243における更新回数は、対応するテーブルにおいて、送信更新リスト241に登録されている更新データの数を表す。また、スイッチオーバー時の場合、送信更新テーブルリスト243における更新回数は、スイッチオーバー開始時にレプリケーション処理部230に送信された後、レプリケーション処理部230によってリセットされる。
受信更新テーブルリスト244には、テーブルと更新回数とが登録される。受信更新テーブルリスト244に登録されるテーブルは、第2DBサーバ100の送信更新リスト141に登録されている更新データが更新対象とするテーブルである。
通常時において、受信更新テーブルリスト244における更新回数は、対応するテーブルにおいて、受信更新リスト242に登録されている更新データの数を表す。スイッチオーバー時の場合、受信更新テーブルリスト244における更新回数は、スイッチオーバー開始時にレプリケーション処理部230から受信した回数に対して、未同期のテーブルに関する更新要求がクライアント300から受信される度にDB管理部210によってインクリメントされ、DB220に格納される度にレプリケーション処理部230によってデクリメントされる。
[処理内容:通常時]
以下、ステージシステム1における処理の内容について、より詳細に説明する。まず、前述した通常時の処理について説明する。図2〜6は、通常時におけるステージシステム1の動作を説明するための図である。
以下、時系列に場面を例示して説明する。図2は、クライアント300からテーブルAに「1」を格納する更新要求がなされた場面を示している。DB管理部110は、DB120のテーブルAに「1」を格納すると共に、送信更新リスト141に、クライアント300からの要求内容を示す“Inset into A values (1)”のようなデータ(以下、更新データ)を登録し、更に、送信更新テーブルリスト143のテーブルAの更新回数をインクリメントして1とする。
図3は、図2に例示した場面の後、クライアント300からテーブルBに「2」を格納する更新要求がなされた場面を例示した図である。DB管理部110は、DB120のテーブルBに「2」を格納すると共に、送信更新リスト141に更新データ“Inset into B values (2)”を登録し、更に、送信更新テーブルリスト143のテーブルBの更新回数をインクリメントして1とする。
図4は、図3に例示した場面の後、レプリケーション処理部130によって送信更新リスト141のうちテーブルAに関する更新データ“Inset into A values (1)”と、送信更新テーブルリスト143のうちテーブルAに関する情報とがレプリケーション処理部230に送信され、レプリケーション処理部230によって受信更新リスト242および受信更新テーブルリスト244が更新された場面を例示した図である。レプリケーション処理部230は、テーブルAに関する更新データ“Inset into A values (1)”を受信更新リスト242の更新データに登録すると共に、受信更新テーブルリスト244におけるテーブルAに関する更新回数をインクリメントして1とする。ここで、受信更新リスト242のフラグはゼロ、すなわち非設定のままである。受信更新リスト142および受信更新リスト242のフラグは、専らスイッチオーバー時に使用される。なお、通常時において、送信更新リスト141の情報を送信する際に、送信更新テーブルリスト143の情報の送信を省略してもよい。また、通常時において、送信される送信更新リスト141の情報に対応した部分のみを送信するのではなく、送信更新テーブルリスト143の全ての情報を一括して送信してもよい。
図5は、図4に例示した場面の後、レプリケーション処理部230によってDB200が更新され、更に、レプリケーション処理部130によって送信更新リスト141のうちテーブルBに関する更新データ“Inset into B values (2)”と、送信更新テーブルリスト143のうちテーブルBに関する情報とがレプリケーション処理部230に送信された場面を例示した図である。レプリケーション処理部230は、受信更新リスト242に登録されていた、テーブルAに関する更新データ“Inset into A values (1)”に基づいて、DB220を更新し、受信更新テーブルリスト244のテーブルAの更新回数をデクリメントして0とする。更に、レプリケーション処理部230は、テーブルBに関する更新データ“Inset into B values (2)”を受信更新リスト242の更新データに登録すると共に、受信更新テーブルリスト244におけるテーブルBの更新回数をインクリメントして1とする。このように、レプリケーション処理部130とレプリケーション処理部230との間では、例えば、相手方のDBへの格納が完了したことを通知された後に、次の更新データを送信するといった規則でデータ送信が行われる。
図6は、図5に例示した場面の後、レプリケーション処理部230によってDB200が更新された場面を例示した図である。レプリケーション処理部230は、受信更新リスト242に登録されていた、テーブルBに関する更新データ“Inset into A values (2)”に基づいて、DB220を更新し、受信更新テーブルリスト244のテーブルBの更新回数をデクリメントして0とする。これによって、DB120とDB220との間で、全てのテーブルについて同期が完了した状態となる。データベースシステム1は、このような一連の動作を繰り返し実行し、非同期レプリケーションを継続する。
[処理内容:スイッチオーバー時]
以下、スイッチオーバー時の処理について説明する。図7〜14は、スイッチオーバー時におけるステージシステム1の動作を説明するための図である。
以下、時系列に場面を例示して説明する。図7は、スイッチオーバー要求を受け付けた場面を例示した図である。スイッチオーバー要求(役割変更要求の一例)は、クライアント300以外の機器(キーボードやマウスなどの入力デバイスを含む)から受け付けられてもよいし、クライアント300から受け付けられてもよい。また、スイッチオーバー要求は、より上位のデータベースシステムから受け付けられてもよい。この場面において、送信更新リスト141には、テーブルBに関する更新データ“Inset into B values (3)”および“Inset into B values (4)”が登録されている。DB120には、これらの双方が反映済であり、テーブルBには、後に受け付けた要求である“Inset into B values (4)”に基づいて「4」が格納されている。また、送信更新テーブルリスト143には、テーブルBの更新回数として2が登録されている。
図8は、図7に例示した場面の後の場面を例示した図である。DB管理部110は、DBリンクDLを介してDB管理部210に、スイッチオーバー通知を行う。DB管理部210は、以降、自身がクライアント300からの要求を受け付ける旨の通知をクライアント300に対して行う。
また、DB管理部110は、レプリケーション処理部130に対して、スイッチオーバーに伴い、送信更新テーブルリスト143に登録された情報の全てをレプリケーション処理部230に送信するように指示する。レプリケーション処理部130は、送信更新テーブルリスト143に登録された情報の全てをレプリケーション処理部230に送信すると共に、送信更新テーブルリスト143に登録された情報をリセット(削除、消去、あるいは無効化)する。レプリケーション処理部230は、レプリケーション処理部130から受信した情報を、受信更新テーブルリスト244に登録する。
図9は、図8に例示した場面の後、DB管理部210によって、クライアント300からテーブルAに「6」を格納する更新要求と、テーブルBに「7」を格納する更新要求とが受け付けられた場面を例示した図である。この場合、DB管理部210は、それぞれの要求に係るテーブルが未同期であるか否かを判定する。例えば、DB管理部210は、受信更新テーブルリスト244における当該テーブルの更新回数がゼロでなければ未同期であり、ゼロであれば同期済であると判定する。
DB管理部210は、要求が同期済のテーブルに関するものであれば、自身のDB220に格納すると共に送信更新リスト241および送信更新テーブルリスト243に当該テーブルの情報を登録する。図9の例では、DB管理部210は、同期済のテーブルAについては自身のDB220に「6」を格納すると共に送信更新リスト241に更新データ“Insert into A values(6)”を登録し、送信更新テーブルリスト243のテーブルAの更新回数をインクリメントして1とする。
一方、DB管理部210は、要求が未同期のテーブルに関するものであれば、DBリンクDLを介してDB管理部110に要求(或いは要求を解釈した結果)を転送すると共に、受信更新リスト242に要求を解釈した結果を登録する。この際に、DB管理部210は、登録した結果に対してフラグ1を設定し、且つ、更新の順序性を保つためDB220を更新しない。このように、受信更新リスト142および受信更新リスト242におけるフラグは、スイッチオーバーを開始してから完了するまでの間に、未同期のテーブルについて受け付けられた要求に基づくものであることを示すフラグである。図9の例では、DB管理部210は、未同期のテーブルBについては、受信更新リスト242に更新データ“Insert into B values(7)”を登録してフラグを1に設定し、受信更新テーブルリスト244のテーブルBの更新回数をインクリメントして3とする。
未同期のテーブルに関する要求を受けたDB管理部110は、DB120のテーブルBに「7」を格納する。この場合、DB管理部110は、スイッチオーバー中の要求転送であることを認識しているため、DB120を更新するが、送信更新リスト141および送信更新テーブルリスト143の更新は行わない。
なお、更新要求以外の要求、例えば読み出し要求を受け付けた場合も、同様の振り分けが行われる。すなわち、DB管理部210は、読み出し要求が未同期のテーブルに関するものであれば、DBリンクDLを介してDB管理部110に要求(或いは要求を解釈した結果)を転送すると共にDB管理部110により返信された結果をクライアント300に返し、同期済のテーブルに関するものであれば、DB220から読み出してクライアント300に結果を返す。
図10は、図9に例示した場面の後、レプリケーション処理部130によって送信更新リスト141のうちテーブルBに関する更新データ“Inset into B values (3)”がレプリケーション処理部230に送信され、レプリケーション処理部230によって受信更新リスト242が更新された場面を例示した図である。図示するように、レプリケーション処理部230は、受信更新リスト242に“Insert into B values(3)”を登録してフラグを0に設定する。
図11は、図10に例示した場面の後、レプリケーション処理部230によってDB220が更新され、更に、レプリケーション処理部130によって送信更新リスト141のうちテーブルBに関する更新データ“Inset into B values (4)”と、送信更新テーブルリスト143のうちテーブルBに関する情報とがレプリケーション処理部230に送信され、レプリケーション処理部230によって受信更新リスト242および受信更新テーブルリスト244が更新された場面を例示した図である。図示するように、レプリケーション処理部230は、DB220のテーブルBに「3」を格納し、受信更新テーブルリスト244のテーブルBの更新回数をデクリメントして2とする。ここで、レプリケーション処理部230は、フラグがゼロである更新データを先にDB220に格納する。これによって、更新処理の順序性が維持される。次いで、レプリケーション処理部230は、受信更新リスト242に“Inset into B values (4)”を登録する。
なお、図11に示した旧マスター側から新マスター側に送信更新リストの情報を送信する処理は、新マスター側に読み出し要求または更新要求がなされたテーブルから順に行われてもよい。また、図12に示した新マスター側で旧マスター側からの送信更新リストに基づいてDBを更新する処理も、新マスター側に読み出し要求または更新要求がなされたテーブルから順に行われてもよい。
図12は、図11に例示した場面の後、レプリケーション処理部230によってDB220が更新され、受信更新リスト242および受信更新テーブルリスト244が更新された場面を例示した図である。図示するように、レプリケーション処理部230は、DB220のテーブルBに「4」を格納し、受信更新テーブルリスト244のテーブルBの更新回数をデクリメントして1とする。ここでも、レプリケーション処理部230は、フラグがゼロである更新データを先にDB220に格納する。
図13は、図12に例示した場面の後、レプリケーション処理部230によってDB220が更新され、受信更新リスト242および受信更新テーブルリスト244が更新された場面を例示した図である。図示するように、レプリケーション処理部230は、テーブルBについてフラグがゼロである更新データが無くなったため、フラグが1である更新データに基づいてDB220を更新する。レプリケーション処理部230は、DB220のテーブルBに「7」を格納し、受信更新テーブルリスト244のテーブルBの更新回数をデクリメントして0とする。なお、この場面の処理はDB管理部210によって行われてもよい。
スイッチオーバー開始後に送信更新リスト241に登録された、スイッチオーバー開始時点では同期済のテーブルAについての更新データ“Insert into A (6)”は、図11〜図13で例示した場面の後、あるいはそれらの間の任意のタイミングで、通常時と同じように第1DBサーバ100に送信され、DB120に反映される。図14は、テーブルAの同期が完了した場面を例示した図である。これによって、未同期データの同期が完了する。未同期データの同期の完了は、例えば、新たにマスターDBとなった方のDB管理部210によって判断され、旧マスターDBのDB管理部110に通知される。未同期データの同期が完了すると、通常時の処理に戻る。なお、図13に示すように、スイッチオーバー開始時点で存在していた未同期データの同期が完了したことをもって、未同期データの同期が完了したと判断してもよい。
[処理フロー]
以下、スイッチオーバー時におけるデータベースシステム1における処理の流れについて説明する。ここでは、第1DBサーバ100が旧マスターDBであり、第2DBサーバ200が新マスターDBであるものとして説明するが、逆の場合もあり得る。
図15は、第1DBサーバ100のDB管理部110およびレプリケーション処理部130により実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理は、DB管理部110がスイッチオーバー要求を受け付けたときに開始される。
まず、DB管理部110が、スイッチオーバーする旨の情報を新しくマスターDBとなるDB200のDB管理部210に通知する(ステップS100)。次に、レプリケーション処理部130が、送信更新テーブルリスト143に登録された情報を一括してレプリケーション処理部230に送信する(ステップS102)。
次に、DB管理部110が、DBリンクDLを介して更新要求があったか否かを判定する(ステップS104)。DBリンクDLを介して更新要求があった場合、DB管理部110が、DB120を更新する(ステップS106)。なお、ステップS106において更新リストモジュール140の更新は行わない。
次に、レプリケーション処理部130が、送信更新リスト141に更新データが存在するか否かを判定する(ステップS108)。送信更新リスト141に更新データが存在する場合、レプリケーション処理部130は、レプリケーションリンクRLを介して更新データを送信可能な状態であるか否かを判定する(ステップS110)。送信可能な状態でない場合、ステップS104に処理が戻される。送信可能な状態でない場合とは、例えば、先に送信した更新データに関してレプリケーション処理部230から、DB220への反映を完了した旨の通知を受けていない場合、或いは、レプリケーションリンクRLが通信に使用されている最中である場合などである。一方、送信可能な状態である場合、レプリケーション処理部130は、レプリケーションリンクRLを介して、更新データのうち登録されたタイミングの最も早いものをレプリケーション処理部230に送信し、送信更新リスト141から送信した更新データを削除する(ステップS112)。
そして、DB管理部110は、未同期データの同期が完了したか否かを判定する(ステップS114)。未同期データの同期が完了していないと判定された場合、ステップS104に処理が戻され、未同期データの同期が完了したと判定された場合、本フローチャートの処理が終了する。なお、DB管理部110は、例えば、DBリンクDLを介してDB管理部210から受信される通知情報に基づいて、未同期データの同期が完了したか否かを判定する。
図16は、第2DBサーバ200のDB管理部210およびレプリケーション処理部230により実行される処理の流れの一例を示すフローチャートである。本フローチャートの処理は、DB管理部210がスイッチオーバー通知(図15のステップS100の通知)を受けた受け付けたときに開始される。
まず、DB管理部210は、スイッチオーバーする旨をクライアント300に通知する(ステップS200)。次に、レプリケーション処理部230が、レプリケーション処理部130から、第1DBサーバ100の送信更新テーブルリスト143の情報を一括して受信し、受信更新テーブルリスト244に登録する(ステップS202)。
次に、DB管理部210は、クライアント300から更新要求を受け付けたか否かを判定する(ステップS204)。クライアント300から更新要求を受け付けたと判定した場合、DB管理部210は、更新要求の対象が未同期のテーブルであるか否かを判定する(ステップS206)。更新要求の対象が未同期のテーブルでないと判定した場合、DB管理部210は、自身(第2DBサーバ200)のDB220を更新し、更新内容を更新リストモジュール240に登録する(ステップS208)。
一方、更新要求の対象が未同期のテーブルであると判定した場合、DB管理部210は、DBリンクDLを介して旧マスターDBである第1DBサーバ100のDB管理部110に更新要求を転送する(ステップS210)。そして、DB管理部210は、更新要求を自身の更新リストモジュール240に登録する(ステップS212)。
次に、レプリケーション処理部230は、旧マスターDBである第1DBサーバ100のレプリケーション処理部130から更新データを受信したか否かを判定する(ステップS214)。レプリケーション処理部130から更新データを受信した場合、レプリケーション処理部230は、更新リストモジュール140に更新データなどの情報を登録する(ステップS216)。次に、レプリケーション処理部230は、DB220を更新可能であるか否かを判定する(ステップS218)。DB220を更新可能であると判定した場合、レプリケーション処理部230は、更新リストモジュール240の内容に基づいてDB220を更新する(ステップS220)。DBを更新可能でない場合とは、例えば、DB管理部210によってDB220の更新が行われている最中である場合である。
次に、DB管理部210は、未同期データの同期が完了したか否かを判定する(ステップS222)。未同期データの同期が完了していないと判定された場合、ステップS204に処理が戻される。一方、未同期データの同期が完了したと判定された場合、DB管理部210は、旧マスターDBである第1DBサーバ100のDB管理部110に完了通知を行う(ステップS224)。DB管理部210は、例えば、第1DBサーバ100との通信により更新リストモジュール140および240の全ての情報がリセットされているか否かを判定し、全ての情報がリセットされていることが確認された場合に、未同期データの同期が完了したと判定する。
以上説明した処理によれば、スイッチオーバーの実行時に、より迅速にクライアントに応答することができる。
図17は、比較例のデータベースシステムにおいてスイッチオーバー実行時に行われる処理の流れを模式的に示す図である。比較例のデータベースシステムでは、スイッチオーバー(図中、SO)発生時に未同期データが旧マスターにある場合、未同期データを転送し、未同期データを新マスターのメモリに格納し、更に、未同期データを新マスターのDBに格納してからスイッチオーバーが完了する。この処理の中で、未同期データをDBに格納する処理の時間が支配的であり、例えば、数[sec]〜数十[sec]といったオーダーでスイッチオーバー完了までの時間がかかる場合がある。
図18は、実施形態のデータベースシステム1においてスイッチオーバー実行時に行われる処理の流れを模式的に示す図である。実施形態のデータベースシステム1では、スイッチオーバーが発生すると、まず送信更新テーブルリストが旧マスターから新マスターに送信され、新マスターは、受信した送信更新テーブルリストを受信更新テーブルリストとして保持する。この時点でスイッチオーバーは完了する。実施形態では、スイッチオーバー完了までの間にDBの更新処理は必要でなく、例えば、1[sec]未満のオーダーで処理が完了することが見込まれる。そして、新マスターは、受信更新テーブルリストを参照しながらクライアントからの要求を自身または旧マスターに振り分け、データベースシステム1の原則全てのテーブルについて、クライアントからの要求に迅速に応じることができる。
[三以上のDBサーバを備える場合]
なお、以上の説明では、データベースシステムは、二つのDBサーバを備えるものとして説明したが、データベースシステムは、三つ以上のDBサーバを備えてもよい。図19は、三つ以上のDBサーバを備えるデータベースシステム2の概略図である。図では、第1DBサーバ100Aと、第2DBサーバ200Aと、一以上の第nDBサーバ400A(nは3以上の自然数)とを備えるデータベースシステム2を示している。それぞれのDBサーバは、DB管理部と、DBと、更新リストモジュールと、レプリケーション処理部とを備える。
以下、第1DBサーバ100Aが旧マスターDBであり、第2DBサーバ200Aが新マスターDB、第nDBサーバ400Aはスイッチオーバーの前後を通じてスレーブDBであるものとする。図20は、データベースシステム2においてスイッチオーバーが開始された場面を示す図である。第1DBサーバ100Aは、スイッチオーバーが開始されたとき、送信更新テーブルリストを第2DBサーバ200Aに送信する。図21は、データベースシステム2においてスイッチオーバーが完了した後の場面を示す図である。図示するように、DB管理部210Aは、未同期テーブルに対する要求を第1DBサーバ100Aに転送する。レプリケーション処理部140Aは、更新リストモジュール130Aに登録された未同期データ(更新データ)を第2DBサーバ200Aおよび第nDBサーバ400Aに送信する。また、レプリケーション処理部240Aは、スイッチオーバー完了後、同期完了までの間に発生した未同期データを第1DBサーバ100Aおよび第nDBサーバ400Aに送信する。これによって、二つのDBサーバを備える場合と同様のスイッチオーバーが実現される。
以上説明した少なくともひとつの実施形態によれば、自データベースサーバが、クライアントからの要求を受け付ける第1の状態である場合、前記クライアントからの要求に応じてデータベースを更新し、前記要求に基づき前記複数のデータベースサーバに含まれる他のデータベースサーバに当該他のデータベースサーバのデータベースを更新させるための更新データと、データの管理単位ごとの前記更新データの管理情報とをメモリに登録するデータベース管理部と、自データベースサーバが、前記第1の状態である場合、前記メモリに登録された更新データを前記他のデータベースサーバに送信する同期処理部と、を備え、自データベースサーバが、役割変更指示に応じて前記第1の状態から第2の状態に遷移するとき、前記同期処理部は、前記メモリに登録された前記管理情報を前記他のデータベースサーバに送信し、自データベースサーバが、前記第2の状態である場合、前記同期処理部は、前記メモリに登録された更新データを前記他のデータベースサーバに送信し、自データベースサーバが、前記第2の状態から遷移する第3の状態である場合、前記同期処理部は、前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいて前記データベースを更新する。これによって、スイッチオーバー実行時に、より迅速にクライアントに応答することができる。
なお、上記実施形態では、レプリケーション処理部が通常時とスイッチオーバー時との双方において処理を実行するものとしたが、データベースシステムは、通常時には起動せず、スイッチオーバー時に起動して上記レプリケーション処理部と同様の処理を行う機能部を備えてもよい。前者の場合、レプリケーション処理部が「同期処理部」の一例であり、後者の場合、レプリケーション処理部と、その機能部とを合わせたものが「同期処理部」の一例である。
また、マスターDBである状態が第1の状態に相当し、マスターDBからスレーブDBに切り替わってスイッチオーバーが完了するまでの状態が第2の状態に相当し、スレーブDBである状態が第3の状態に相当し、スレーブDBからマスターDBに切り替わってスイッチオーバーが完了するまでの状態が第4の状態に相当する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
100 第1DBサーバ
110 DB管理部
120 DB
130 レプリケーション処理部
140 更新リストモジュール
141 送信更新リスト
142 受信更新リスト
143 送信更新テーブルリスト
144 受信更新テーブルリスト
210 DB管理部
220 DB
230 レプリケーション処理部
240 更新リストモジュール
241 送信更新リスト
242 受信更新リスト
243 送信更新テーブルリスト
244 受信更新テーブルリスト

Claims (9)

  1. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバであって、
    自データベースサーバが、クライアントからの要求を受け付ける第1の状態である場合、前記クライアントからの要求に応じてデータベースを更新し、前記要求に基づき前記複数のデータベースサーバに含まれる他のデータベースサーバに当該他のデータベースサーバのデータベースを更新させるための更新データと、データの管理単位ごとの前記更新データの管理情報とをメモリに登録するデータベース管理部と、
    自データベースサーバが、前記第1の状態である場合、前記メモリに登録された更新データを前記他のデータベースサーバに送信する同期処理部と、を備え、
    自データベースサーバが、役割変更指示に応じて前記第1の状態から第2の状態に遷移するとき、前記同期処理部は、前記メモリに登録された前記管理情報を前記他のデータベースサーバに送信し、
    自データベースサーバが、前記第2の状態である場合、前記同期処理部は、前記メモリに登録された更新データを前記他のデータベースサーバに送信し、
    自データベースサーバが、前記第2の状態である場合、前記データベース管理部は、前記他のデータベースサーバから受信される要求に基づいて前記データベースを更新し、前記更新データと前記管理情報とを更新せず、
    自データベースサーバが、前記第2の状態から遷移する第3の状態である場合、前記同期処理部は、前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいて前記データベースを更新する、
    データベースサーバ。
  2. 自データベースサーバが、前記役割変更指示に応じて前記第3の状態から遷移する第4の状態である場合、前記データベース管理部は、前記他のデータベースサーバから受信した前記管理情報を参照し、前記クライアントからの要求が、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求であるか否かを判定し、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求である場合に、前記他のデータベースサーバに、前記要求に基づく情報を送信する、
    請求項1記載のデータベースサーバ。
  3. 自データベースサーバが、前記第4の状態である場合、
    前記データベース管理部は、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求に基づく更新データをメモリに登録し、
    前記データベース管理部または前記同期処理部は、前記他のデータベースサーバから前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する更新データを受信して自データベースサーバのデータベースを更新した後に、前記メモリに登録した更新データを自データベースサーバのデータベースに反映させる、
    請求項2記載のデータベースサーバ。
  4. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバであって、
    自データベースサーバが、クライアントからの要求を受け付けない第3の状態である場合、前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいてデータベースを更新する同期処理部と、
    自データベースサーバが、役割変更指示に応じて前記第3の状態から遷移する第4の状態である場合、前記他のデータベースサーバから受信した管理情報を参照し、前記クライアントからの要求が、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースおいて更新されていない管理単位に関する要求であるか否かを判定し、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求である場合に、前記他のデータベースサーバに、前記要求に基づく情報を送信するデータベース管理部と、
    を備えるデータベースサーバ。
  5. 自データベースサーバが、前記第4の状態である場合、
    前記データベース管理部は、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求に基づく更新データをメモリに登録し、
    前記データベース管理部または前記同期処理部は、前記他のデータベースサーバから前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する更新データを受信して自データベースサーバのデータベースを更新した後に、前記メモリに登録した更新データを自データベースサーバのデータベースに反映させる、
    請求項4記載のデータベースサーバ。
  6. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバが、
    自データベースサーバが、クライアントからの要求を受け付ける第1の状態である場合、
    前記クライアントからの要求に応じてデータベースを更新し、
    前記要求に基づき前記複数のデータベースサーバに含まれる他のデータベースサーバに当該他のデータベースサーバのデータベースを更新させるための更新データと、データの管理単位ごとの前記更新データの管理情報とをメモリに登録し、
    前記メモリに登録された更新データを前記他のデータベースに送信し、
    自データベースサーバが、役割変更指示に応じて前記第1の状態から第2の状態に遷移するとき、
    前記メモリに登録された前記管理情報を前記他のデータベースサーバに送信し、
    自データベースサーバが、前記第2の状態である場合、
    前記メモリに登録された更新データを前記他のデータベースサーバに送信し、
    前記他のデータベースサーバから受信される要求に基づいて前記データベースを更新し、
    前記更新データと前記管理情報とを更新せず、
    自データベースサーバが、前記第2の状態から遷移する第3の状態である場合、
    前記複数のデータベースサーバに含まれる他のデータベースサーバサーバから受信した更新データに基づいて前記データベースを更新する、
    データベース管理方法。
  7. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバが、
    自データベースサーバが、クライアントからの要求を受け付けない第3の状態である場合、
    前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいてデータベースを更新し、
    自データベースサーバが、役割変更指示に応じて前記第3の状態から遷移する第4の状態である場合、
    前記他のデータベースサーバから受信した管理情報を参照し、前記クライアントからの要求が、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースおいて更新されていない管理単位に関する要求であるか否かを判定し、
    前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求である場合に、前記他のデータベースサーバに、前記要求に基づく情報を送信する、
    データベース管理方法。
  8. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバに、
    自データベースサーバが、クライアントからの要求を受け付ける第1の状態である場合、
    前記クライアントからの要求に応じてデータベースを更新させ、
    前記要求に基づき前記複数のデータベースサーバに含まれる他のデータベースサーバに当該他のデータベースサーバのデータベースを更新させるための更新データと、データの管理単位ごとの前記更新データの管理情報とをメモリに登録させ、
    前記メモリに登録された更新データを前記他のデータベースに送信させ、
    自データベースサーバが、役割変更指示に応じて前記第1の状態から第2の状態に遷移するとき、
    前記メモリに登録された前記管理情報を前記他のデータベースサーバに送信させ、
    自データベースサーバが、前記第2の状態である場合、
    前記メモリに登録された更新データを前記他のデータベースに送信させ、
    前記他のデータベースサーバから受信される要求に基づいて前記データベースを更新させ、
    前記更新データと前記管理情報とを更新させず、
    自データベースサーバが、前記第2の状態から遷移する第3の状態である場合、
    前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいて前記データベースを更新させる、
    プログラム。
  9. 複数のデータベースサーバを備えるデータベースシステムに含まれるデータベースサーバが、
    自データベースサーバが、クライアントからの要求を受け付けない第3の状態である場合、
    前記複数のデータベースサーバに含まれる他のデータベースサーバから受信した更新データに基づいてデータベースを更新させ、
    自データベースサーバが、役割変更指示に応じて前記第3の状態から遷移する第4の状態である場合、
    前記他のデータベースサーバから受信した管理情報を参照し、前記クライアントからの要求が、前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースおいて更新されていない管理単位に関する要求であるか否かを判定させ、
    前記他のデータベースサーバのデータベースにおいて更新され且つ自データベースサーバのデータベースにおいて更新されていない管理単位に関する要求である場合に、前記他のデータベースサーバに、前記要求に基づく情報を送信させる、
    プログラム。
JP2017120318A 2017-06-20 2017-06-20 データベースサーバ、データベース管理方法、およびプログラム Active JP6553125B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017120318A JP6553125B2 (ja) 2017-06-20 2017-06-20 データベースサーバ、データベース管理方法、およびプログラム
PCT/JP2018/008667 WO2018235348A1 (ja) 2017-06-20 2018-03-07 データベースサーバ、データベース管理方法、および記憶媒体
US16/082,771 US11269922B2 (en) 2017-06-20 2018-03-07 Database server, database management method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017120318A JP6553125B2 (ja) 2017-06-20 2017-06-20 データベースサーバ、データベース管理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019003584A JP2019003584A (ja) 2019-01-10
JP6553125B2 true JP6553125B2 (ja) 2019-07-31

Family

ID=64736062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017120318A Active JP6553125B2 (ja) 2017-06-20 2017-06-20 データベースサーバ、データベース管理方法、およびプログラム

Country Status (3)

Country Link
US (1) US11269922B2 (ja)
JP (1) JP6553125B2 (ja)
WO (1) WO2018235348A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3877519B2 (ja) * 2000-12-15 2007-02-07 株式会社日立製作所 システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体
JP4582297B2 (ja) * 2004-06-25 2010-11-17 日本電気株式会社 レプリケーションシステム、装置、方法、およびプログラム
US7475281B2 (en) * 2005-03-10 2009-01-06 International Business Machines Corporation Method for synchronizing replicas of a database
US9239767B2 (en) * 2008-12-22 2016-01-19 Rpx Clearinghouse Llc Selective database replication
US10747776B2 (en) * 2012-12-04 2020-08-18 International Business Machines Corporation Replication control using eventually consistent meta-data
JP6248747B2 (ja) * 2014-03-28 2017-12-20 富士通株式会社 情報処理装置、制御方法および制御プログラム
US10282433B1 (en) * 2015-11-17 2019-05-07 Quintiles Ims Incorporated Management of database migration
JP6676352B2 (ja) * 2015-11-27 2020-04-08 株式会社三菱Ufj銀行 データ処理装置

Also Published As

Publication number Publication date
WO2018235348A1 (ja) 2018-12-27
US11269922B2 (en) 2022-03-08
US20200110760A1 (en) 2020-04-09
JP2019003584A (ja) 2019-01-10

Similar Documents

Publication Publication Date Title
US11899684B2 (en) System and method for maintaining a master replica for reads and writes in a data store
US20200228393A1 (en) System and method for data replication using a single master failover protocol
US10929240B2 (en) System and method for adjusting membership of a data replication group
US11893264B1 (en) Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US8719225B1 (en) System and method for log conflict detection and resolution in a data store
US9489434B1 (en) System and method for replication log branching avoidance using post-failover rejoin
JP2010061559A (ja) 情報処理システム、データ更新方法およびデータ更新プログラム
WO2012045245A1 (zh) 一种保持数据一致性的方法及系统
JP5724735B2 (ja) データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム
US10970256B2 (en) Reconciler for a distributed storage system
Domaschka et al. Reliability and availability properties of distributed database systems
US20220197761A1 (en) Cloud architecture for replicated data services
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
JP6553125B2 (ja) データベースサーバ、データベース管理方法、およびプログラム
JP5416490B2 (ja) 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
JP5494915B2 (ja) レプリケーションシステム、マスタサーバ、レプリカサーバ、レプリケーション方法、及びプログラム
KR101696911B1 (ko) 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
JP6404892B2 (ja) データベースシステムおよびデータ処理方法
JP6200387B2 (ja) 冗長化システム、およびレプリケーション方法
WO2024005829A1 (en) Conflict resolution for object metadata

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190521

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190703

R151 Written notification of patent or utility model registration

Ref document number: 6553125

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151