JP2010277467A - Distributed data management system, data management apparatus, data management method and program - Google Patents

Distributed data management system, data management apparatus, data management method and program Download PDF

Info

Publication number
JP2010277467A
JP2010277467A JP2009131309A JP2009131309A JP2010277467A JP 2010277467 A JP2010277467 A JP 2010277467A JP 2009131309 A JP2009131309 A JP 2009131309A JP 2009131309 A JP2009131309 A JP 2009131309A JP 2010277467 A JP2010277467 A JP 2010277467A
Authority
JP
Japan
Prior art keywords
proposal
notification
candidacy
proposal number
slave
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
JP2009131309A
Other languages
Japanese (ja)
Other versions
JP5395517B2 (en
Inventor
Masakei Kan
正圭 韓
Daigoro Yokozeki
大子郎 横関
Miki Sakai
美樹 境
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 JP2009131309A priority Critical patent/JP5395517B2/en
Publication of JP2010277467A publication Critical patent/JP2010277467A/en
Application granted granted Critical
Publication of JP5395517B2 publication Critical patent/JP5395517B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To increase the availability of a system for holding a database with one of three or more database devices as a master and the others as slaves, when the master fails. <P>SOLUTION: When the master fails, the slave database device 10A obtains a database log update number "L" and its own ID "I" from a storage part (S301), and generates a proposal number (L, I) for identifying a notification of candidacy for a new master and sends a candidacy notification Prepare(L, I) to the other slave database devices 10B and 10C (S302). The other slaves each obtain their own database log update number "L'" and their own ID "I'" from their own storage part to generate their own proposal number (L', I'), and if the received (L, I) is not smaller than their own (L', I'), send an acknowledgment notification PrepareACK (L, I). The slave that has the proposal number of a majority of acknowledgment notifications becomes a candidate for a new master. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、3台以上のデータベース装置によって構成され、1台をマスタ、残りのデータベース装置をスレーブとしてデータベースを保持する分散データベースシステムにおいて、マスタに障害が発生したときの可用性(システムを継続して稼動できること)の確率を高める技術に関する。   The present invention is a distributed database system comprising three or more database devices, one database serving as a master and the remaining database devices serving as slaves. The availability when a failure occurs in the master (continuing the system) It relates to a technology for increasing the probability of being able to operate.

分散データベースシステムの可用性の確率を高めるために、分散データベースシステムを構成する複数のデータベース装置に同じデータベースを保持させて、一部のデータベース装置に障害が発生しても、残りのデータベース装置によってサービスを継続させる手法がある。   To increase the probability of the availability of a distributed database system, the same database is held in multiple database devices that make up the distributed database system, and even if some database devices fail, services can be provided by the remaining database devices. There is a technique to continue.

前記した手法を用いるものとして、例えば、PAXOS(非特許文献1参照)が知られている。PAXOSを実用に供する場合、ユーザからデータベースの更新や参照のためにアクセスされるデータベース装置を1台決定しておき、それをマスタと呼び、マスタ以外のデータベース装置をスレーブとすることが、一般的に行われている。なお、マスタは、ユーザの処理要求(データベースの更新または参照に係る要求)を受け付けるとともに、その処理要求に対して応答する。また、マスタは、スレーブに最新のデータベースの状態を送信して、スレーブのデータベースをマスタのデータベースと同じ状態に維持する。   For example, PAXOS (see Non-Patent Document 1) is known as one using the above-described method. When PAXOS is put to practical use, it is common to determine one database device to be accessed by the user for database update or reference, call it the master, and use the database device other than the master as the slave. Has been done. The master accepts a user's processing request (request for updating or referencing the database) and responds to the processing request. In addition, the master transmits the latest database state to the slave and maintains the slave database in the same state as the master database.

PAXOSは、マスタに障害が発生したときに、スレーブの中から新たなマスタを決定するアルゴリズムを備えている。例えば、スレーブがマスタに障害が発生したと判定するケースは、マスタからスレーブに対して一定周期で出力されるハートビートメッセージを、スレーブが受信できなくなったときである。しかし、マスタおよびスレーブが接続されているネットワークにおいてパケットの損失、遅延、転置が発生している場合には、マスタが正常に動作していても、スレーブがハートビートメッセージを受信できないことがあるため、新たなマスタが決定されて、データベースの状態の異なるマスタが2つ存在することになってしまう可能性がある。その結果、データベースの整合性が損なわれることになる。   PAXOS has an algorithm for determining a new master from among slaves when a failure occurs in the master. For example, a case where the slave determines that a failure has occurred in the master is when the slave cannot receive a heartbeat message output from the master to the slave at a fixed period. However, if packet loss, delay, or transposition occurs in the network to which the master and slave are connected, the slave may not receive the heartbeat message even if the master is operating normally. There is a possibility that a new master is determined and two masters having different database states exist. As a result, the integrity of the database is impaired.

そこで、PAXOSのアルゴリズムは、2つのマスタが存在しないように調停するため、2つのフェーズで動作する(非特許文献2参照)。第1のフェーズでは、既存のマスタに障害が発生したと判断したスレーブが、次の新たなマスタに選ばれるために、立候補通知Prepare()を他のスレーブに送信する。そして、最も早く立候補通知Prepare()を出したデータベース装置が選ばれて立候補者となる、または、立候補通知Prepare()を出したデータベース装置が複数あった場合には、予め決められた優先順位の高いデータベース装置が選ばれて立候補者となる。次に、第2のフェーズでは、第1のフェーズで選ばれた立候補者が、「自分がマスタである」という提案内容を提案通知Propose()として他のスレーブに送信し、その提案内容について他のスレーブから承認を受けることによって、自分がマスタとなり、自分以外のデータベース装置をスレーブとする関係を確立する。   Therefore, the PAXOS algorithm operates in two phases because it arbitrates so that there are no two masters (see Non-Patent Document 2). In the first phase, a slave that has determined that a failure has occurred in an existing master is selected as the next new master, so that a candidacy notification Prepare () is transmitted to another slave. If the database device that has issued the candidacy notification Prepare () earliest is selected and becomes a candidate, or if there are multiple database devices that have issued the candidacy notification Prepare (), a predetermined priority order is set. A high database device is selected to become a candidate. Next, in the second phase, the candidate selected in the first phase sends the proposal content “I am the master” to another slave as a proposal notification Propose (), and the other By receiving the approval from the slave, the master becomes the master and establishes a relationship in which the other database device is the slave.

L. Lamport,“The part-time parliament”,ACM Transactions on Computer System(TOCS),Vol.16,Issue 2,1998年5月,p.133-169L. Lamport, “The part-time parliament”, ACM Transactions on Computer System (TOCS), Vol. 16, Issue 2, May 1998, p.133-169 T. D. Chandra他,“PAXOS made live: an engineering perspective”,PODC’07,Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing,2007年6月20日,p.1-16T. D. Chandra et al., “PAXOS made live: an engineering perspective”, PODC’07, Proceedings of the twenty-sixth annual ACM symposium on Principles of distributed computing, June 20, 2007, p.1-16

前記したように、PAXOSのアルゴリズムでは、新しいマスタを決定することができるが、その決定された新しいマスタが、最新のデータベースを備えているとは限らないという問題がある。そして、新しいマスタのデータベースが最新でない場合には、最新のデータベースを持つデータベース装置から最新のデータベースを取得して自身に適用するまでに掛かる期間において、分散データベースシステムの稼動が停止する。そのため、可用性を損なうという問題が発生する。なお、前記した問題は、データベースを含む、データやファイルの版数を管理するデータ管理についても発生する。   As described above, in the PAXOS algorithm, a new master can be determined, but there is a problem that the determined new master does not always have the latest database. If the new master database is not up-to-date, the operation of the distributed database system is stopped during the period from the acquisition of the latest database from the database device having the latest database to application to the database. Therefore, the problem of impairing availability occurs. The above-described problem also occurs in data management that manages the version number of data and files including a database.

そこで、本発明の課題は、前記した問題を解決するために、3台以上のデータ管理装置によって構成され、1台をマスタ、残りの2台以上をスレーブとしてデータを保持する分散データ管理システムにおいて、マスタに障害が発生したときの可用性の確率を高める技術を提供することを目的とする。   Therefore, in order to solve the above-described problem, the object of the present invention is a distributed data management system configured by three or more data management devices and holding data using one as a master and the remaining two or more as slaves. An object of the present invention is to provide a technique for increasing the probability of availability when a failure occurs in a master.

前記課題を解決するために、本発明は、3台以上のデータ管理装置がネットワークを介して相互に通信可能に接続され、データ管理装置の中の1台をマスタとし、他のデータ管理装置をスレーブとして、マスタ障害時にスレーブの中から新しいマスタを選択する分散データ管理システムであって、スレーブが、処理部と、当該スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる更新番号を変数とする提案番号を記憶する記憶部とを備え、スレーブの処理部が、マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信し、他のスレーブの処理部が、立候補通知を新たに受信したとき、自身の記憶部を探索して、該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した立候補通知の提案番号との大小を比較して、新たに受信した立候補通知の提案番号が該自身の提案番号以上のとき、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送信したスレーブに返信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶し、立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、新たに受信した立候補通知の提案番号が最大の提案番号以上であれば、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送出したスレーブに送信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶し、立候補通知を送信したスレーブが、分散データ管理システムに属するすべてのデータ管理装置中の過半数のスレーブから自身の提案番号を含む確認通知を受信したときに、自身の提案番号を含む自身がマスタになることを示す提案情報をすべてのスレーブに送信し、分散データ管理システムに属するすべてのデータ管理装置中の過半数のスレーブから提案情報に対する確認通知を受信した後、提案情報が確定したことを示す決定通知を他のスレーブに送信し、他のスレーブが、決定通知を受信し、自身の記憶部から、既に記憶されている立候補通知の提案番号を消去することを特徴とする。   In order to solve the above-described problems, the present invention is configured such that three or more data management devices are communicably connected to each other via a network, one of the data management devices is a master, and the other data management devices are As a slave, a distributed data management system that selects a new master from slaves in the event of a master failure, where the slave updates the processing unit and the data managed by the slave, and the data update number that increases. A storage unit that stores a proposal number whose variable is an update number that increases as the number increases, and the slave processing unit reads its update number from its own storage unit in the event of a master failure, and the update number When a candidate notification including a proposal number with a variable is sent to another slave and the processing unit of the other slave newly receives a candidate notification If there is no proposal number stored before searching for its own storage unit and receiving the candidacy notification, it reads its own update number from its own storage unit, and uses its update number as a variable A number is generated, and the size of the proposal number of the candidate notification that is newly received is compared with the proposal number of the candidate notification that is newly received. A confirmation notification for the candidacy notification including the proposal number is returned to the slave that sent the candidacy notification, the proposal number of the newly received candidacy notification is stored in its own storage unit, and the proposal stored before receiving the candidacy notification If there is a number, the largest proposal number is extracted from the stored proposal numbers, and if the newly received candidate number proposal number is greater than or equal to the largest proposal number, A confirmation notification for the candidate notification is transmitted to the slave that sent the candidacy notification, the proposal number of the newly received candidacy notification is stored in its own storage unit, and all the slaves that have transmitted the candidacy notification belong to the distributed data management system When a confirmation notification including its own proposal number is received from a majority of the slaves in the data management apparatus, proposal information indicating that the self including the proposal number is a master is transmitted to all slaves, and distributed data After receiving the confirmation notification for the proposal information from the majority of slaves in all the data management devices belonging to the management system, the decision notification indicating that the proposal information is confirmed is sent to the other slaves, and the other slaves are notified of the decision. And the proposal number of the candidacy notification already stored is deleted from its own storage unit.

また、本発明は、前記分散データ管理システムにおいて用いられるデータ管理装置であって、スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる更新番号を変数とする提案番号を記憶する記憶手段と、マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信する手段と、立候補通知を新たに受信したとき、自身の記憶部を探索して、該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した立候補通知の提案番号との大小を比較して、新たに受信した立候補通知の提案番号が該自身の提案番号以上のとき、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送信したスレーブに返信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶し、立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、新たに受信した立候補通知の提案番号が最大の提案番号以上であれば、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送信したスレーブに返信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶する手段と、受信した確認通知に含まれる提案番号ごとに受信した数をカウントする第1のカウント手段と、分散データ管理システムに属するすべてのデータ管理装置の数と第1のカウント手段によってカウントされた提案番号ごとの受信数との比から、確認通知の受信数が過半数を超えたことを判定する第1の判定手段と、第1の判定手段によって、確認通知の受信数が過半数を超えたと判定されたとき、自身の提案番号を含む自身がマスタになることを示す提案情報をすべてのスレーブに送信する手段と、受信した自身の提案番号を含む自身がマスタになることを示す情報に含まれる提案番号ごとに受信した数をカウントする第2のカウント手段と、分散データ管理システムに属するすべてのデータ管理装置の数と第2のカウント手段によってカウントされた提案番号ごとの受信数との比から、いずれかの提案番号の提案情報の受信数が過半数を超えたことを判定する第2の判定手段と、第2の判定手段によって、提案情報の受信数が過半数を超えたと判定されたとき、提案情報が確定したことを示す決定通知を他のスレーブに送信する手段と、決定通知を受信し、自身の記憶部から、既に記憶されている立候補通知の提案番号を消去する手段とを備えることを特徴とする。   The present invention is also a data management apparatus used in the distributed data management system, wherein the data update number increases each time the data managed by the slave is updated, and the update number increases as the update number increases. Means for storing a proposal number having a variable as a variable, and means for reading a candidate's update number from its own storage unit in the event of a master failure and transmitting a candidate notification including a proposal number having the update number as a variable to another slave When the candidate notification is newly received, the storage unit searches its own storage unit, and if there is no proposal number stored before receiving the candidate notification, the update number is read from the storage unit , Generating its own proposal number with the update number as a variable, comparing the size of its own proposal number with the proposal number of the newly received candidacy notification, When the proposal number of the candidacy notification received is equal to or greater than the own proposal number, a confirmation notification for the candidacy notification including the proposal number of the candidacy notification is returned to the slave that sent the candidacy notification, and the newly received candidacy notification If there is a proposal number stored before receiving the candidacy notification, the largest proposal number is extracted from the stored proposal numbers, and the newly received candidate notification is received. If the proposal number is equal to or greater than the maximum proposal number, a confirmation notification for the candidate notification including the proposal number of the candidate notification is returned to the slave that transmitted the candidate notification, and the proposal number of the newly received candidate notification is Means for storing in the storage unit, first counting means for counting the number received for each proposal number included in the received confirmation notification, and belonging to the distributed data management system First determination means for determining that the number of confirmation notifications received exceeds a majority from the ratio of the number of all data management devices and the number of receptions for each proposal number counted by the first counting means; When it is determined by the determination means of 1 that the number of confirmation notifications received exceeds a majority, means for transmitting proposal information indicating that itself including the proposal number is a master to all slaves; Second count means for counting the number received for each proposal number included in the information indicating that the self including the proposal number is the master, the number of all data management devices belonging to the distributed data management system, and the second A second determination for determining that the number of proposal information received for any of the proposal numbers exceeds a majority from a ratio with the number of receptions for each proposal number counted by the counting means Means, and when the second determination means determines that the number of proposal information received exceeds a majority, means for transmitting a decision notification indicating that the proposal information has been confirmed to another slave; and receiving the decision notification And a means for erasing the proposal number of the candidacy notification already stored from its own storage unit.

また、本発明は、3台以上のデータ管理装置がネットワークを介して相互に通信可能に接続され、データ管理装置の中の1台をマスタとし、他のデータ管理装置をスレーブとして、マスタ障害時にスレーブの中から新しいマスタを選択する分散データ管理システムにおいて用いられるデータ管理方法であって、スレーブが、処理部と、当該スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる更新番号を変数とする提案番号を記憶する記憶部とを備え、スレーブの処理部が、マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信し、他のスレーブの処理部が、立候補通知を新たに受信したとき、自身の記憶部を探索して、該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した立候補通知の提案番号との大小を比較して、新たに受信した立候補通知の提案番号が該自身の提案番号以上のとき、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送信したスレーブに返信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶し、立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、新たに受信した立候補通知の提案番号が最大の提案番号以上であれば、立候補通知の提案番号を含むその立候補通知に対する確認通知を、立候補通知を送信したスレーブに返信し、新たに受信した立候補通知の提案番号を自身の記憶部に記憶し、立候補通知を送信したスレーブが、分散データ管理システムに属するすべてのデータ管理装置中の過半数のスレーブから自身の提案番号を含む確認通知を受信したときに、自身の提案番号を含む自身がマスタになることを示す提案情報をすべてのスレーブに送信し、分散データ管理システムに属するすべてのデータ管理装置中の過半数のスレーブから提案情報に対する確認通知を受信した後、提案情報が確定したことを示す決定通知を他のスレーブに送信し、他のスレーブが、決定通知を受信し、自身の記憶部から、既に記憶されている立候補通知の提案番号を消去することを特徴とするデータ管理方法。   In the present invention, three or more data management devices are communicably connected to each other via a network. One of the data management devices is a master and another data management device is a slave. A data management method used in a distributed data management system for selecting a new master from among slaves, the slave updating the processing unit and the data managed by the slave, and the data update number and its update A storage unit that stores a proposal number whose variable is an update number that increases as the number increases, and the slave processing unit reads its update number from its own storage unit in the event of a master failure, and the update number The candidate notification including the proposal number with the variable is sent to the other slaves, and the processing unit of the other slave newly When there is no proposal number stored before the candidate notification is received by searching its own storage unit, the update number is read from the storage unit and the update number is set as a variable. When the proposal number of the newly received candidacy notification is greater than or equal to the own proposal number by comparing the size of the proposal number of the own candidate and the proposal number of the newly received candidate notification Before sending the confirmation notification for the candidacy notification including the proposal number of the candidacy notification to the slave that sent the candidacy notification, storing the newly received proposal number of the candidacy notification in its own storage unit, and receiving the candidacy notification If there is a stored proposal number, the largest proposal number is extracted from the stored proposal numbers, and if the newly received proposal number of the candidacy notification is greater than or equal to the maximum proposal number, the proposal number of the candidacy notification The confirmation notification for the candidacy notification is sent back to the slave that sent the candidacy notification, the proposal number of the newly received candidacy notification is stored in its own storage unit, and the slave that sent the candidacy notification is distributed data management system When a confirmation notification including its own proposal number is received from a majority of the slaves in all data management devices belonging to, the proposal information indicating that itself including its own proposal number becomes the master is transmitted to all slaves. After receiving the confirmation notification for the proposal information from the majority of the slaves in all the data management devices belonging to the distributed data management system, the decision notification indicating that the proposal information is confirmed is sent to the other slaves, and the other slaves Receiving the decision notification, and deleting the already stored proposal number of the candidacy notification from its own storage unit. Data management method.

このような構成によれば、スレーブは、データを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる前記更新番号を変数とする提案番号を記憶している。そして、スレーブは、マスタ障害時に、他のデータ管理装置から受信した立候補通知に含まれる提案番号と、記憶部に記憶してある最大の提案番号(当初記憶されているのは自身の提案番号のみ)とを比較して、立候補通知に含まれる提案番号が記憶部に記憶してある最大の提案番号以上の場合にのみ、立候補通知の提案番号を含む確認通知を、立候補通知を送信したスレーブに返信し、その立候補通知の提案番号を記憶する。すなわち、記憶部には、自分の提案番号以上のものが記憶されることになる。そして、スレーブが、過半数のスレーブから前記自身の提案番号を含む確認通知を受信したときに、自身の提案番号を含む自身がマスタになることを示す提案情報を、立候補通知を送信したスレーブに返信し、さらに、過半数の前記スレーブからいずれかの同じ提案番号を含む提案情報に示されるスレーブが、新しいマスタになる。そのため、より大きな提案番号のスレーブが新しいマスタに選ばれる、すなわち、最新の(提案番号が最も大きいまたは更新番号が最も大きい)データを持つスレーブが新しいマスタに選ばれる確率が高くなるので、マスタに障害が発生したときの可用性の確率を高めることができる。   According to such a configuration, the slave stores a data update number that increases each time data is updated and a proposal number that uses the update number that increases as the update number increases as a variable. Then, in the event of a master failure, the slave, the proposal number included in the candidacy notification received from the other data management device, and the maximum proposal number stored in the storage unit (only the own proposal number is initially stored) ), The confirmation notification including the proposal number of the candidacy notification is sent to the slave that has transmitted the candidacy notification only when the proposal number included in the candidacy notification is equal to or greater than the maximum proposal number stored in the storage unit. Reply and store the proposal number of the candidacy notification. In other words, the storage unit stores more than its own proposal number. Then, when the slave receives a confirmation notification including the proposal number from a majority of slaves, it returns proposal information indicating that the slave including the proposal number is a master to the slave that has transmitted the candidacy notification. Furthermore, a slave indicated in the proposal information including any one of the same proposal numbers from the majority of the slaves becomes a new master. Therefore, the slave with the larger proposal number is selected as the new master, that is, the slave with the latest data (the highest proposal number or the highest update number) is selected as the new master. The probability of availability when a failure occurs can be increased.

また、本発明は、分散データ管理システムにおいて、提案番号が、データの更新番号に、新しいマスタに選択される優先順位を示すデータを識別するIDをさらに組み合わせたものであり、処理部が、提案番号の大小比較において、提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、提案番号が大きいと判定し、更新番号同士が等しい場合には、データを識別するID同士を比較し、データを識別するIDの大きい方を、提案番号が大きいと判定することを特徴とする。   In the distributed data management system according to the present invention, the proposal number is a combination of the update number of the data and an ID for identifying data indicating the priority selected for the new master. In the size comparison of the numbers, the update numbers extracted from the proposal numbers are compared, and the larger update number is determined to be the larger proposal number. A comparison is made, and the larger ID for identifying the data is determined to have a larger proposal number.

本発明は、データ管理装置において、提案番号が、データの更新番号に、新しいマスタに選択される優先順位を示すデータを識別するIDをさらに組み合わせたものであり、提案番号の大小比較において、提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、提案番号が大きいと判定し、更新番号同士が等しい場合には、データを識別するID同士を比較し、データを識別するIDの大きい方を、提案番号が大きいと判定する手段を備えることを特徴とする。   In the data management apparatus, the proposal number is a combination of the data update number and an ID for identifying data indicating the priority order selected by the new master. The update numbers extracted from the numbers are compared, and the larger update number is determined to be the larger proposal number. If the update numbers are equal, the IDs for identifying the data are compared to identify the data. Means are provided for determining that the proposal number is larger for the larger ID.

本発明は、データ管理方法において、提案番号が、データの更新番号に、新しいマスタに選択される優先順位を示すデータを識別するIDをさらに組み合わせたものであり、処理部が、提案番号の大小比較において、提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、提案番号が大きいと判定し、更新番号同士が等しい場合には、データを識別するID同士を比較し、データを識別するIDの大きい方を、提案番号が大きいと判定することを特徴とする。   According to the present invention, in the data management method, the proposal number is a combination of the data update number and an ID for identifying data indicating the priority order selected by the new master. In comparison, the update numbers taken out from the proposal number are compared with each other, the larger update number is determined as the proposal number is large, and when the update numbers are equal, the IDs for identifying the data are compared with each other, It is characterized by determining with the larger ID which identifies data that a proposal number is large.

このような構成によれば、提案番号が、データの更新番号と優先順位を示すIDとの組み合わせであるので、ユニークな番号となり、データの更新番号が等しい場合であっても、優先順位を示すIDの大小によって、新しいマスタの選択を早めることができる。すなわち、新しいマスタが決まるまでの分散データ管理システムの停止時間が短くなるため、マスタに障害が発生したときの可用性の確率を高めることができる。   According to such a configuration, since the proposal number is a combination of the data update number and the ID indicating the priority order, it becomes a unique number and indicates the priority order even when the data update numbers are equal. Selection of a new master can be accelerated by the size of the ID. That is, since the stop time of the distributed data management system until a new master is determined is shortened, the probability of availability when a failure occurs in the master can be increased.

本発明は、データ管理方法において、他のスレーブの処理部が、立候補通知を新たに受信したとき、自身の記憶部を探索して、自身の更新番号を読出し、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した立候補通知の提案番号との大小を比較して、新たに受信した立候補通知の提案番号が該自身の提案番号以下であれば、自身の立候補通知を自身以外のスレーブに送信することを特徴とする。   In the data management method, when a processing unit of another slave newly receives a candidacy notification, it searches its own storage unit, reads its own update number, and uses the update number as a variable If the proposal number of the newly received candidacy notification is equal to or less than the own proposal number, It is characterized in that its own candidacy notification is transmitted to a slave other than itself.

このような構成によれば、さらに、既に立候補通知を送信したスレーブの提案番号より大きな提案番号を含む立候補通知を分散データ管理ネットワーク内に送出することができるので、最新のデータを保持するデータ管理装置を新しいマスタに決定する確率を高くすることができる。   According to such a configuration, the candidacy notification including the proposal number larger than the proposal number of the slave that has already transmitted the candidacy notification can be sent into the distributed data management network, so that data management that holds the latest data is possible. The probability of determining a device as a new master can be increased.

本発明は、前記データ管理方法を、コンピュータとしてのデータ管理装置に実行させるためのプログラムとした。   The present invention provides a program for causing a data management apparatus as a computer to execute the data management method.

このようなプログラムをインストールされたコンピュータは、このプログラムに基づいた機能を実現することができる。   A computer in which such a program is installed can realize functions based on this program.

本発明によれば、3台以上のデータ装置によって構成され、1台をマスタ、残りの2台以上をスレーブとしてデータを保持する分散データ管理システムにおいて、マスタに障害が発生したときの可用性を高める技術を提供することができる。   According to the present invention, in a distributed data management system configured with three or more data devices and holding data using one as a master and the remaining two or more as slaves, the availability is improved when a failure occurs in the master. Technology can be provided.

分散データベースシステムの構成を示す図である。It is a figure which shows the structure of a distributed database system. 本実施形態におけるデータベース装置の構成および機能を示す図である。It is a figure which shows the structure and function of the database apparatus in this embodiment. 本実施形態における第1のフェーズの処理の流れを示す図である。It is a figure which shows the flow of a process of the 1st phase in this embodiment. 本実施形態における第2のフェーズの処理の流れを示す図である。It is a figure which shows the flow of a process of the 2nd phase in this embodiment. 比較例におけるデータベース装置の構成および機能を示す図である。It is a figure which shows the structure and function of the database apparatus in a comparative example. 比較例における第1のフェーズの処理の流れを示す図である。It is a figure which shows the flow of a process of the 1st phase in a comparative example. 比較例における第2のフェーズの処理の流れを示す図である。It is a figure which shows the flow of a process of the 2nd phase in a comparative example.

次に、本発明を実施するための形態(以降「本実施形態」と称す)について、適宜図面を参照しながら詳細に説明する。なお、本実施形態においては、データベースの場合を例として用いて説明する。   Next, a mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described in detail with reference to the drawings as appropriate. In the present embodiment, the case of a database will be described as an example.

(分散データベースシステム)
本実施形態における分散データベースシステム1は、図1に示すように、3台のデータベース装置10(10A,10B,10C)とクライアント端末20とが、ネットワーク30を介して、通信可能に接続されている。なお、図1では、データベース装置10が3台しか記載されていないが、3台以上であっても構わない。また、クライアント端末20は、図1では1台しか記載されていないが、2台以上であっても構わない。
(Distributed database system)
In the distributed database system 1 according to the present embodiment, as shown in FIG. 1, three database devices 10 (10A, 10B, 10C) and a client terminal 20 are connected via a network 30 so that they can communicate with each other. . In FIG. 1, only three database devices 10 are shown, but three or more database devices 10 may be used. Further, although only one client terminal 20 is shown in FIG. 1, two or more client terminals 20 may be used.

データベース装置10は、クライアント端末20からデータベースの更新や参照のための処理要求を受け付けて、その処理要求に応答する1台を決定しておき、それをマスタと呼び、マスタ以外のデータベース装置10をスレーブと呼ぶ。図1では、マスタは、データベース装置10Aであり、クライアント端末20との間で処理要求およびその処理要求に対する応答を送受信する。そして、データベース装置10B,10Cが、スレーブとなって、スレーブのデータベースをマスタのデータベースと同じ状態に維持するために、データベース同期のための情報をマスタ(データベース装置10A)との間で送受信する。スレーブの各データベース装置10B,10Cは、マスタに障害が発生したと判断したとき、新しいマスタに選択されるための調停を開始する。   The database device 10 receives a processing request for updating or referring to a database from the client terminal 20, determines one device that responds to the processing request, calls it the master, and refers to the database device 10 other than the master. Called a slave. In FIG. 1, the master is the database apparatus 10 </ b> A, and transmits / receives a processing request and a response to the processing request to / from the client terminal 20. Then, the database devices 10B and 10C become slaves and transmit / receive information for database synchronization to / from the master (database device 10A) in order to maintain the slave database in the same state as the master database. When each of the slave database devices 10B and 10C determines that a failure has occurred in the master, the slave database devices 10B and 10C start arbitration to be selected as a new master.

データベース装置10は、例えば、計算機やPC(Personal Computer)であって、汎用のOS(Operating System)、データベースやファイルシステム等のデータ管理システム、およびローカルストレージ(ローカル記憶部)を備えている。なお、データベース装置10は、例えば、ローカルストレージを備える携帯電話機であっても構わない。クライアント端末20は、例えば、PCであって、ユーザからの指示をマスタのデータベース装置10Aに送信し、その指示に対する応答を、図示しない出力装置等に出力する。また、ネットワーク30は、インターネットまたはローカルエリアネットワークであって、そのネットワーク内において、パケットの損失、遅延、転置が発生しても構わない。   The database device 10 is, for example, a computer or a PC (Personal Computer), and includes a general-purpose OS (Operating System), a data management system such as a database or a file system, and a local storage (local storage unit). Note that the database device 10 may be a mobile phone including a local storage, for example. The client terminal 20 is, for example, a PC, transmits an instruction from the user to the master database device 10A, and outputs a response to the instruction to an output device (not shown). The network 30 is the Internet or a local area network, and packet loss, delay, or transposition may occur in the network.

≪比較例≫
始めに、本実施形態の比較例として、前記したPAXOSのアルゴリズムを適用したマスタの決定処理について、図5〜7を用いて説明する。
≪Comparative example≫
First, as a comparative example of the present embodiment, a master determination process to which the above-described PAXOS algorithm is applied will be described with reference to FIGS.

(比較例のデータベース装置)
まず、データベース装置10(10D,10E,10F)の構成および機能について、図5を用いて説明する。図5に示すように、各データベース装置10D,10E,10Fは、処理部14、ローカル記憶部15、およびデータベース16を備える。処理部14は、コンピュータのCPU(Central Processing Unit)とメインメモリとで構成され、ローカル記憶部15に格納されているアプリケーションプログラムをメインメモリに展開して、各機能を具現化する。そして、処理部14は、図示しない入力装置を介して、クライアント端末20(図1参照)からの処理要求を受け付け、その処理要求に対する応答(処理結果)を返信する。ローカル記憶部15は、各種プログラムや処理部14の演算結果を記憶する。データベース16は、例えば、リレーショナルデータベース,ファイルシステム等によって、データを格納している。
(Comparative database device)
First, the configuration and function of the database device 10 (10D, 10E, 10F) will be described with reference to FIG. As shown in FIG. 5, each database device 10 </ b> D, 10 </ b> E, 10 </ b> F includes a processing unit 14, a local storage unit 15, and a database 16. The processing unit 14 includes a CPU (Central Processing Unit) of the computer and a main memory, and develops an application program stored in the local storage unit 15 in the main memory to realize each function. Then, the processing unit 14 receives a processing request from the client terminal 20 (see FIG. 1) via an input device (not shown), and returns a response (processing result) to the processing request. The local storage unit 15 stores various programs and calculation results of the processing unit 14. The database 16 stores data by a relational database, a file system, or the like, for example.

処理部14の機能は、図5に示すように、提案番号発行部141、提案部142、および調停部143を備える。   The function of the processing unit 14 includes a proposal number issuing unit 141, a suggesting unit 142, and an arbitrating unit 143, as shown in FIG.

提案番号発行部141は、立候補通知Prepare()を他のデータベース装置10に出力するときに、提案番号nを発行する。提案番号nは、予め決められたデータベース装置10間の優先順位に基づいて計算される、ユニークな番号である。例えば、提案番号n=データベースID+データベース装置の数×提案回数として計算される。ただし、提案回数は、新しいマスタが決定されるまでに立候補通知を出力する回数であって、立候補通知を出力するたびに+1増加される。つまり、提案番号発行部141は、新たなマスタが決定されるまでの間に立候補通知に対して他のスレーブから応答(確認通知)が無い場合、再度立候補通知を出すごとに提案回数を+1増加した提案番号nを発行する。なお、提案番号nは、新しいマスタが決定すると、初期値(例えば、0)にリセットされる。   The proposal number issuing unit 141 issues a proposal number n when outputting the candidacy notification Prepare () to the other database device 10. The proposal number n is a unique number calculated based on a predetermined priority order among the database devices 10. For example, it is calculated as proposal number n = database ID + number of database devices × number of proposals. However, the number of proposals is the number of times that a candidacy notification is output until a new master is determined, and is incremented by one each time a candidacy notification is output. In other words, the proposal number issuing unit 141 increases the number of proposals by +1 each time the candidacy notification is issued again if there is no response (confirmation notification) from the other slave to the candidacy notification until a new master is determined. Issue the proposal number n. The proposal number n is reset to an initial value (for example, 0) when a new master is determined.

提案部142は、立候補通知Prepare()や提案通知Propose()を他のデータベース装置10に送信し、他のデータベース装置10から立候補通知や提案通知に対する応答(確認通知PrepareACK(),ProposeACK())を受信する。調停部143は、立候補通知や提案通知を受信し、受信した立候補通知や提案通知をローカル記憶部15に記憶する。また、調停部143は、新たに受信した立候補通知や提案通知に含まれる提案番号nと、ローカル記憶部15に既に記憶されている、新しいマスタが決まるまでの間に受信してローカル記憶部15に記憶した提案番号n’との大小を比較し、提案番号nが提案番号n’以上であれば、確認通知PrepareACK(),ProposeACK()を送信する。   The proposing unit 142 transmits the candidacy notification Prepare () and the proposal notification Propose () to the other database device 10, and responds to the candidacy notification and the proposal notification from the other database device 10 (confirmation notification PrepareACK (), ProposeACK ()). Receive. The arbitration unit 143 receives the candidacy notification and the proposal notification, and stores the received candidacy notification and the proposal notification in the local storage unit 15. In addition, the arbitration unit 143 receives the proposal number n included in the newly received candidacy notification or proposal notification and the local storage unit 15 until the new master already stored in the local storage unit 15 is determined. Compared with the proposal number n ′ stored in the above, if the proposal number n is greater than or equal to the proposal number n ′, confirmation notifications PrepareACK () and ProposeACK () are transmitted.

(比較例における第1のフェーズの処理)
第1のフェーズでは、既存のマスタに障害が発生したと判断したスレーブが、次の新たなマスタに選ばれるために、立候補通知Prepare()を他のスレーブに送信する。そして、最も早く立候補通知Prepare()を出したデータベース装置が選ばれて立候補者となる、または、立候補通知Prepare()を出したデータベース装置が複数あった場合には、予め決められた優先順位の高いデータベース装置が選ばれて立候補者となる。
図6は、比較例における第1のフェーズの処理の流れを示す(適宜図5参照)。まず、ステップS601では、立候補通知を送信するデータベース装置10D(以降、データベース装置10Dと称す。)の提案番号発行部141は、例えばマスタからのハートビートメッセージを所定時間受信しなかったとき、マスタに障害が発生したと判断し、立候補通知Prepare()を識別する提案番号nを発行する。ステップS602では、提案部142は、立候補通知Prepare(n)を、立候補通知を受信するデータベース装置10E(10),10F(10),・(以降、他のデータベース装置10と称す。)に送信する。なお、データベース装置10Dは、立候補通知Prepare(n)を自分自身に送信しても構わない。
(Processing of the first phase in the comparative example)
In the first phase, a slave that has determined that a failure has occurred in an existing master is selected as the next new master, so that a candidacy notification Prepare () is transmitted to another slave. If the database device that has issued the candidacy notification Prepare () earliest is selected and becomes a candidate, or if there are multiple database devices that have issued the candidacy notification Prepare (), a predetermined priority order is set. A high database device is selected to become a candidate.
FIG. 6 shows a flow of processing in the first phase in the comparative example (see FIG. 5 as appropriate). First, in step S601, the proposal number issuing unit 141 of the database device 10D (hereinafter referred to as the database device 10D) that transmits a candidacy notification, for example, does not receive a heartbeat message from the master for a predetermined time. It is determined that a failure has occurred, and a proposal number n for identifying the candidacy notification Prepare () is issued. In step S602, the suggestion unit 142 transmits the candidacy notification Prepare (n) to the database devices 10E (10), 10F (10),... (Hereinafter referred to as other database devices 10) that receive the candidacy notification. . Note that the database device 10D may transmit the candidacy notification Prepare (n) to itself.

ステップS603では、他のデータベース装置10の調停部143は、データベース装置10Dから送信された立候補通知Prepare(n)を受信する。ステップS604では、調停部143は、ローカル記憶部15を探索して、以前受信した立候補通知Prepare(n’)がある(ローカル記憶部15に記憶されている)か否かを判定する。以前受信した立候補通知Prepare(n’)が無い場合(ステップS604でNo)、ステップS605では、調停部143は、確認通知PrepareACK(n)を、データベース装置10Dに返信する。その後、ステップS606では、調停部143は、ステップS603において受信した立候補通知Prepare(n)を自身のローカル記憶部15に記憶する。   In step S603, the arbitrating unit 143 of the other database device 10 receives the candidacy notification Prepare (n) transmitted from the database device 10D. In step S604, the arbitrating unit 143 searches the local storage unit 15 and determines whether or not there is a previously received candidate notification Prepare (n ′) (stored in the local storage unit 15). When there is no previously received candidate notification Prepare (n ′) (No in Step S604), in Step S605, the arbitrating unit 143 returns a confirmation notification PrepareACK (n) to the database device 10D. Thereafter, in step S606, the arbitrating unit 143 stores the candidacy notification Prepare (n) received in step S603 in its own local storage unit 15.

また、以前受信した立候補通知Prepare(n’)がある(ローカル記憶部15に記憶されている)場合(ステップS604でYes)、ステップS607では、調停部143は、提案番号nが以前受信した提案番号n’以上か否かを比較する。そして、提案番号nが以前受信した提案番号n’以上の場合(ステップS607でYes)、ステップS608では、調停部143は、提案番号がn以下の以前受信した提案通知Propose()の中で、最大の提案番号nmを持つ提案通知Propose(nm,v’)を読出し、確認通知PrepareACK(n,Propose(nm,v’))を、データベース装置10Dに返信する。なお、v’は、提案内容であり、例えば「誰(どのデータベース装置10)がマスタになる」という情報である。以前受信した提案通知Propose()がない場合は,確認通知PrepareACK(n)をデータベース装置10Dに返信する。前記ステップS605の確認通知PrepareACK(n)およびステップS608の確認通知PrepareACK(n,Propose(nm,v’))の返信と合わせて、あるデータベース装置Xが過半数以上の他のデータベース装置から確認通知ProposeACK()を受信した状態で,他のデータベース装置Yがデータベース装置Xの提案番号以上の提案番号を用いるPrepare()を発行した場合も,他のデータベース装置Yの提案通知Propose()はデータベース装置Xの提案内容と同じになる。したがって、あるデータベース装置Xが確認通知ProposeACK()を過半数受信していれば他のデータベース装置はマスタにならないことを保証する。また、ステップS609では、調停部143は、受信した立候補通知Prepare(n)を自身のローカル記憶部15に記憶する。   If there is a previously received candidate notification Prepare (n ′) (stored in the local storage unit 15) (Yes in step S604), in step S607, the arbitration unit 143 proposes the proposal number n previously received. It is compared whether the number n 'or more. If the proposal number n is greater than or equal to the previously received proposal number n ′ (Yes in step S607), in step S608, the arbitration unit 143 includes the previously received proposal notification Propose () whose proposal number is n or less. The proposal notification Propose (nm, v ′) having the maximum proposal number nm is read, and the confirmation notification PrepareACK (n, Propose (nm, v ′)) is returned to the database device 10D. Note that v ′ is the content of the proposal, for example, “who (which database device 10) becomes the master”. If there is no previously received proposal notification Propose (), a confirmation notification PrepareACK (n) is returned to the database device 10D. Together with the reply of the confirmation notification PrepareACK (n) in step S605 and the confirmation notification PrepareACK (n, Propose (nm, v ')) in step S608, a certain database device X receives confirmation notifications ProposeACK from more than half of the other database devices. Even when other database device Y issues Prepare () using a proposal number equal to or greater than the proposal number of database device X in the state of receiving (), proposal notification Propose () of other database device Y does not It will be the same as the proposal contents. Therefore, if a certain database apparatus X receives a majority of confirmation notifications ProposeACK (), it is guaranteed that no other database apparatus will become the master. Further, in step S609, the arbitrating unit 143 stores the received candidacy notification Prepare (n) in its own local storage unit 15.

また、提案番号nが以前受信した提案番号n’以上でない場合(ステップS607でNo)、他のデータベース装置10の処理部14は、処理を終了する。すなわち、他のデータベース装置10の調停部143は、確認通知PrepareACK()を、データベース装置10Dに送信しない。   If the proposal number n is not equal to or larger than the previously received proposal number n ′ (No in step S607), the processing unit 14 of the other database device 10 ends the process. That is, the arbitrating unit 143 of the other database device 10 does not transmit the confirmation notification PrepareACK () to the database device 10D.

また、データベース装置10Dは、自分自身に、確認通知PrepareACK()を送信するものとする。   Further, the database device 10D transmits a confirmation notification PrepareACK () to itself.

(比較例における第2のフェーズの処理)
第2のフェーズでは、第1のフェーズで選ばれた立候補者が、「自分がマスタである」という提案内容を提案通知Propose()として他のスレーブに送信し、その提案内容について他のスレーブから承認を受けることによって、自分がマスタとなり、自分以外のデータベース装置をスレーブとする関係を確立する。
図7は、比較例における第2のフェーズの処理の流れを示す(適宜図5参照)。まず、ステップS701では、データベース装置10Dの提案部142は、他のデータベース装置10から送信された確認通知PrepareACK()を受信する。次に、調停部143は、所定時間に受信した提案番号nの確認通知PrepareACK()の数が分散データベースシステム1全体に存在するデータベース装置10の数の過半数となったかを集計して、過半数の提案番号nの確認通知PrepareACK()を受信したか否かを判定する。そして、過半数の提案番号nの確認通知PrepareACK()を受信しなかった場合(ステップS701でNo)、ステップS702で、調停部143は、立候補が否決されたものと判断し、処理を終了する。なお、ステップS702の処理の後、新しいマスタが未だ決定していない場合には、データベース装置10Dの処理は、図6に示す処理のステップS601へ戻って、提案番号nを再計算して、ステップS602以降の処理を継続しても構わない。なお、再計算された提案番号nは、前回立候補通知に用いた数値よりは大きな数値にされる。
(Processing of second phase in comparative example)
In the second phase, the candidate selected in the first phase sends the proposal content “I am a master” to another slave as a proposal notification Propose (), and the proposal content is sent from another slave. By receiving the approval, the user becomes the master and establishes a relationship in which the database device other than the user is a slave.
FIG. 7 shows a flow of processing in the second phase in the comparative example (see FIG. 5 as appropriate). First, in step S701, the proposal unit 142 of the database device 10D receives the confirmation notification PrepareACK () transmitted from the other database device 10. Next, the arbitrating unit 143 counts whether the number of confirmation notifications PrepareACK () of the proposal number n received at a predetermined time is a majority of the number of database devices 10 existing in the entire distributed database system 1, and determines the majority It is determined whether or not the confirmation notification PrepareACK () of the proposal number n has been received. If the confirmation notification PrepareACK () of the majority proposal number n is not received (No in step S701), the arbitration unit 143 determines that the candidacy has been rejected in step S702, and ends the process. If the new master has not yet been determined after the process of step S702, the process of the database device 10D returns to step S601 of the process shown in FIG. You may continue the process after S602. The recalculated proposal number n is set to a value larger than the value used for the previous candidacy notification.

ステップS701において、過半数の提案番号nの確認通知PrepareACK()を受信した場合(ステップS701でYes)、ステップS703では、調停部143は、確認通知PrepareACK(n,Propose(nm,v’))を受信したか否かを判定する。そして、確認通知PrepareACK(n,Propose(nm,v’))を一つでも受信した場合(ステップS703でYes)、ステップS704では、調停部143は、各他のデータベース装置10から受信した提案通知Propose(nm,v’)の提案番号nm同士を比較する。そして、提案部142は、その比較結果を受けて、最大の提案番号の提案通知Propose()の提案内容v’を自身の提案内容vとして、提案通知Propose(n,v)を、他のデータベース装置10に送信する。なお、データベース装置10Dは、自分自身に提案通知Propose(n,v)を送信しても構わない。   When the confirmation notification PrepareACK () of the majority proposal number n is received in step S701 (Yes in step S701), in step S703, the arbitrating unit 143 receives the confirmation notification PrepareACK (n, Propose (nm, v ′)). It is determined whether or not it has been received. If even one confirmation notification PrepareACK (n, Propose (nm, v ′)) is received (Yes in step S703), in step S704, the arbitration unit 143 receives the proposal notification received from each of the other database devices 10. Compare proposal number nm of Propose (nm, v '). Then, the proposal unit 142 receives the comparison result, sets the proposal content v ′ of the proposal notification Propose () of the largest proposal number as its own proposal content v, and proposes the proposal notification Propose (n, v) to another database. Transmit to device 10. The database device 10D may transmit a proposal notification Propose (n, v) to itself.

ステップS703において確認通知PrepareACK(n,Propose(nm,v’))を受信しなかった場合(ステップS703でNo)、ステップS705では、提案部142は、自身の提案内容vを決定し、提案通知Propose(n,v)を、他のデータベース装置10に送信する。なお、ステップS704およびS705において、データベース装置10Dは、提案通知Propose(n,v)を自分自身に送信しても構わない。ステップS706では、他のデータベース装置10の調停部143は、提案通知Propose(n,v)を受信した後、ローカル記憶部15を探索し、提案番号nが以前受信した提案番号n’以上か否かを判定する。   When the confirmation notification PrepareACK (n, Propose (nm, v ′)) is not received in step S703 (No in step S703), in step S705, the proposal unit 142 determines its proposal content v and proposes notification. Propose (n, v) is transmitted to the other database device 10. In steps S704 and S705, the database device 10D may transmit a proposal notification Propose (n, v) to itself. In step S706, the arbitration unit 143 of the other database device 10 receives the proposal notification Propose (n, v), and then searches the local storage unit 15 to determine whether the proposal number n is greater than or equal to the previously received proposal number n ′. Determine whether.

そして、提案番号nが以前受信した提案番号n’以上の場合(ステップS706でYes)、ステップS707では、調停部143は、確認通知ProposeACK(n)を、データベース装置10Dに返信する。また、調停部143は、受信した提案通知Propose(n,v)をローカル記憶部15に記憶する。なお、提案番号nが以前受信した提案番号n’以上でない場合(ステップS706でNo)、他のデータベース装置10の処理部14は、処理を終了する。すなわち、他のデータベース装置10の調停部143は、確認通知ProposeACK()を、データベース装置10Dに送信しない。   If the proposal number n is greater than or equal to the previously received proposal number n ′ (Yes in step S706), in step S707, the arbitration unit 143 returns a confirmation notification ProposeACK (n) to the database device 10D. Further, the arbitration unit 143 stores the received proposal notification Propose (n, v) in the local storage unit 15. If the proposal number n is not greater than or equal to the previously received proposal number n ′ (No in step S706), the processing unit 14 of the other database device 10 ends the process. That is, the arbitrating unit 143 of the other database device 10 does not transmit the confirmation notification ProposeACK () to the database device 10D.

ステップS708では、データベース装置10Dの提案部142は、他のデータベース装置10から送信された確認通知ProposeACK()を受信する。そして、調停部143は、所定時間に受信した確認通知ProposeACK(n)の数が分散データベースシステム1全体に存在するデータベース装置10の数の過半数となったかを集計して、過半数の確認通知ProposeACK(n)を受信したか否かを判定する。そして、過半数の確認通知ProposeACK(n)を受信しなかった場合(ステップS708でNo)、処理はステップS702へ進み、データベース装置10Dの調停部143は、立候補が否決されたものと判断し、処理を終了する。また、過半数の確認通知ProposeACK(n)を受信した場合(ステップS708でYes)、ステップS709では、データベース装置10Dの調停部143は、提案内容v(データベース装置10Dがマスタになること)が決定されたと判断する。そして、データベース装置10Dの調停部143は、提案内容vが確定したことを示す決定通知を、他のデータベース装置10に送信する。   In step S708, the proposal unit 142 of the database device 10D receives the confirmation notification ProposeACK () transmitted from the other database device 10. Then, the arbitrating unit 143 counts whether the number of confirmation notifications ProposeACK (n) received at a predetermined time is a majority of the number of database devices 10 existing in the entire distributed database system 1, and determines the majority of confirmation notifications ProposeACK ( Determine whether n) is received. If the majority confirmation notification ProposeACK (n) is not received (No in step S708), the process proceeds to step S702, and the arbitrating unit 143 of the database device 10D determines that the candidacy has been rejected, and the process Exit. When the majority confirmation notification ProposeACK (n) is received (Yes in step S708), in step S709, the arbitration unit 143 of the database device 10D determines the proposal contents v (the database device 10D becomes the master). Judge that Then, the arbitrating unit 143 of the database device 10 </ b> D transmits a determination notification indicating that the proposal content v has been confirmed to the other database device 10.

なお、ステップS707以降のステップS710では、他のデータベース装置10の調停部143は、受信した提案通知Propose(n)を自身のローカル記憶部15に記憶する。そして、他のデータベース装置10の処理部14は、データベース装置10Dから決定通知を受信した後、ローカル記憶部15に記憶した立候補通知Prepare()、提案通知Propose()、確認通知PrepareACK(),ProposeACK()を消去して、処理を終了する。   In step S710 after step S707, the arbitrating unit 143 of the other database device 10 stores the received proposal notification Propose (n) in its own local storage unit 15. Then, after receiving the determination notification from the database device 10D, the processing unit 14 of the other database device 10 stores the candidacy notification Prepare (), proposal notification Propose (), confirmation notification PrepareACK (), ProposeACK stored in the local storage unit 15. Delete () and end the process.

≪本実施形態≫
次に本実施形態におけるマスタの決定処理について、図2〜4を用いて説明する。
<< this embodiment >>
Next, master determination processing in the present embodiment will be described with reference to FIGS.

(本実施形態のデータベース装置)
次に、データベース装置10(10A,10B,10C)の構成および機能について、図2を用いて説明する。図2に示すように、各データベース装置10A,10B,10Cは、処理部11、ローカル記憶部12、およびデータベース13を備える。処理部11は、コンピュータのCPUとメインメモリとで構成され、ローカル記憶部12に格納されているアプリケーションプログラムをメインメモリに展開して、各機能を具現化する。そして、処理部11は、図示しない入力装置を介して、クライアント端末20(図1参照)からの処理要求を受け付け、その処理要求に対する応答(処理結果)を返信する。ローカル記憶部12は、各種プログラムや処理部11の演算結果を記憶する。データベース13は、例えば、リレーショナルデータベース,ファイルシステム等によって、データを格納している。
(Database device of this embodiment)
Next, the configuration and function of the database device 10 (10A, 10B, 10C) will be described with reference to FIG. As shown in FIG. 2, each database device 10 </ b> A, 10 </ b> B, 10 </ b> C includes a processing unit 11, a local storage unit 12, and a database 13. The processing unit 11 includes a CPU of a computer and a main memory. The application program stored in the local storage unit 12 is expanded in the main memory to realize each function. And the process part 11 receives the process request from the client terminal 20 (refer FIG. 1) via the input device which is not shown in figure, and returns the response (process result) with respect to the process request. The local storage unit 12 stores various programs and calculation results of the processing unit 11. The database 13 stores data by a relational database, a file system, or the like, for example.

処理部11は、図2に示すように、ログ管理部111、提案番号発行部112、提案部113、および調停部114を備える。   As illustrated in FIG. 2, the processing unit 11 includes a log management unit 111, a proposal number issuing unit 112, a proposal unit 113, and an arbitration unit 114.

ログ管理部111は、データベース13の最新のログ更新番号を管理し、そのログ更新番号を、データベース13の状態と関連付けてローカル記憶部12に記憶する。なお、ログ更新番号は、連続する番号でなくともよく、データベースを更新するたびに大きくなるものとする。また、ログ管理部111は、提案番号発行部112からの指示によって、ローカル記憶部12から最新のログ更新番号を読み出し、提案番号発行部112へ出力する。   The log management unit 111 manages the latest log update number of the database 13 and stores the log update number in the local storage unit 12 in association with the state of the database 13. Note that the log update number does not have to be a consecutive number, and increases every time the database is updated. Further, the log management unit 111 reads out the latest log update number from the local storage unit 12 in accordance with an instruction from the proposal number issuing unit 112 and outputs it to the proposal number issuing unit 112.

提案番号発行部112は、立候補通知Prepare()を他のデータベース装置10に出力するときに、ローカル記憶部12に記憶された最新のログ更新番号「L」と、予めデータベース装置10ごとにユニークに決められたデータベース装置ID(Identification)の「I」とを変数として用いて、提案番号(L,I)を発行する。なお、提案番号(L,I)は、ログ更新番号「L」が大きくなるにしたがって大きくなるものとする。提案番号発行部112は、新たなマスタが決定されるまでの間に立候補通知に対する応答(確認通知)が無い場合、再度立候補通知を出すごとに、提案番号(L,I)の中のLの値を+1増加した提案番号を発行する。そして、提案番号(L,I)は、新しいマスタが決定すると、初期値(最新のログ管理番号「L」とデータベース装置IDの「I」の組)にリセットされる。なお、本実施形態の提案番号(L,I)が比較例の提案番号nと異なる点は、比較例の提案番号nはデータベースのログ更新番号とは無関係であったのに対して、本実施形態の提案番号(L,I)中の「L」が、データベースのログ更新番号であることである。すなわち、提案番号(L,I)の大小を比較するときに、ログ更新番号「L」によって、最新の(ログ更新番号または提案番号が最も大きい)データベースの状態を保持するデータベース装置10を選びやすくすることができる。ちなみに、本実施形態では、提案番号(L,I)の大小比較において、最初に、ログ更新番号同士を比較する。そして、L>L’であれば、提案番号(L,I)が提案番号(L’,I’)より大きいと判定する。また、L=L’であれば、次に、データベース装置ID同士を比較する。そして、I>I’であれば、提案番号(L,I)が提案番号(L’,I’)より大きいと判定する。   When the proposal number issuing unit 112 outputs the candidacy notification Prepare () to the other database device 10, the latest log update number “L” stored in the local storage unit 12 and the database device 10 are uniquely set in advance. A proposal number (L, I) is issued using “I” of the determined database device ID (Identification) as a variable. The proposal number (L, I) is assumed to increase as the log update number “L” increases. If there is no response (confirmation notification) to the candidacy notification until a new master is determined, the proposal number issuing unit 112 will return the L of the proposal numbers (L, I) each time the candidacy notification is issued. A proposal number with a value incremented by +1 is issued. When the new master is determined, the proposal number (L, I) is reset to an initial value (a combination of the latest log management number “L” and the database device ID “I”). The difference between the proposal number (L, I) of the present embodiment and the proposal number n of the comparative example is that the proposal number n of the comparative example has nothing to do with the log update number of the database. “L” in the form proposal number (L, I) is the log update number of the database. That is, when comparing the size of the proposal number (L, I), it is easy to select the database device 10 that holds the latest database state (the log update number or the proposal number is the largest) by the log update number “L”. can do. By the way, in the present embodiment, the log update numbers are first compared with each other in the size comparison of the proposal numbers (L, I). If L> L ′, it is determined that the proposal number (L, I) is larger than the proposal number (L ′, I ′). If L = L ′, the database device IDs are compared with each other. If I> I ′, it is determined that the proposal number (L, I) is larger than the proposal number (L ′, I ′).

提案部113は、立候補通知Prepare()や提案通知Propose()を他のデータベース装置10に送信し、他のデータベース装置10から立候補通知や提案通知に対する応答(確認通知PrepareACK(),ProposeACK())を受信する。調停部114は、立候補通知や提案通知を受信し、受信した立候補通知や提案通知をローカル記憶部12に記憶する。また、調停部114は、新たに受信した立候補通知や提案通知に含まれる提案番号(L,I)と、ローカル記憶部12に既に記憶されている、新しいマスタが決まるまでの間に受信してローカル記憶部12に記憶した提案番号(L’ ’,I’ ’)との大小を比較し、提案番号(L,I)が提案番号(L’ ’,I’ ’)以上であれば、確認通知PrepareACK(),ProposeACK()を送信する。   The proposing unit 113 transmits a candidacy notification Prepare () and a proposal notification Propose () to the other database device 10, and responses to the candidacy notification and the proposal notification from other database devices 10 (confirmation notification PrepareACK (), ProposeACK ()). Receive. The arbitration unit 114 receives the candidacy notification and the proposal notification, and stores the received candidacy notification and the proposal notification in the local storage unit 12. In addition, the arbitration unit 114 receives the proposal number (L, I) included in the newly received candidacy notification or proposal notification until the new master already stored in the local storage unit 12 is determined. Compare the proposal number (L ′ ′, I ′ ′) stored in the local storage unit 12 and confirm if the proposal number (L, I) is equal to or greater than the proposal number (L ′ ′, I ′ ′). Notification PrepareACK () and ProposeACK () are sent.

(本実施形態における第1のフェーズの処理)
図3は、本実施形態における第1のフェーズの処理の流れを示す(適宜図2参照)。まず、ステップS301では、立候補通知を送信するデータベース装置10A(以降、データベース装置10Aと称す。)のログ管理部111は、例えば、マスタからのハートビートメッセージを所定時間受信しなかった場合にマスタに障害が発生したと判断する提案番号発行部112からのトリガに基づいて、ログ更新番号「L」をローカル記憶部12から読出す。また、提案番号発行部112は、データベース装置ID「I」を取得する。ステップS302では、提案番号発行部112は、ログ更新番号「L」とデータベース装置ID「I」とを変数として、提案番号(L,I)を発行する。そして、提案部113は、立候補通知Prepare(L,I)を、立候補通知を受信するデータベース装置10B(10),10C(10),・(以降、他のデータベース装置10と称す。)に送信する。なお、データベース装置10Aは、立候補通知Prepare(L,I)を自分自身に送信しても構わない。
(Processing of the first phase in the present embodiment)
FIG. 3 shows the flow of processing in the first phase in the present embodiment (see FIG. 2 as appropriate). First, in step S301, the log management unit 111 of the database device 10A (hereinafter referred to as the database device 10A) that transmits a candidacy notification, for example, if the heartbeat message from the master is not received for a predetermined time, Based on a trigger from the proposal number issuing unit 112 that determines that a failure has occurred, the log update number “L” is read from the local storage unit 12. Also, the proposal number issuing unit 112 acquires the database device ID “I”. In step S302, the proposal number issuing unit 112 issues a proposal number (L, I) using the log update number “L” and the database device ID “I” as variables. Then, the proposing unit 113 transmits the candidacy notification Prepare (L, I) to the database devices 10B (10), 10C (10),... (Hereinafter referred to as other database devices 10) that receive the candidacy notification. . Note that the database device 10A may transmit the candidacy notification Prepare (L, I) to itself.

ステップS303では、他のデータベース装置10の調停部114は、データベース装置10Aから送信された立候補通知Prepare(L,I)を受信する。ステップS304では、調停部114は、ローカル記憶部12を探索して、記憶されている立候補通知Prepare()または提案通知Propose()の提案番号を読出して、以前受信した提案番号(L’’,I’’)があるか否かを判定する。そして、以前受信した提案番号(L’’,I’’)が無い場合(ステップS304でNo)、ステップS305では、ログ管理部111は、自身のログ更新番号「L’」およびデータベース装置ID「I’」をローカル記憶部12から取得し、提案番号発行部112が提案番号(L’,I’)を生成する。   In step S303, the arbitrating unit 114 of the other database device 10 receives the candidacy notification Prepare (L, I) transmitted from the database device 10A. In step S304, the arbitration unit 114 searches the local storage unit 12, reads the stored proposal number of the candidate notification Prepare () or the proposal notification Propose (), and receives the previously received proposal number (L ″, It is determined whether or not there is I ″). If there is no previously received proposal number (L ″, I ″) (No in step S304), in step S305, the log management unit 111 determines its own log update number “L ′” and the database device ID “ I ′ ”is acquired from the local storage unit 12, and the proposal number issuing unit 112 generates a proposal number (L ′, I ′).

ステップS306では、調停部114は、提案番号(L,I)が提案番号(L’,I’)以上か否かを判定する。提案番号(L,I)が提案番号(L’,I’)以上の場合(ステップS306でYes)、ステップS307では、調停部114は、確認通知PrepareACK(L,I)を、データベース装置10Aに返信する。その後、ステップS308では、調停部114は、ステップS303において受信した立候補通知Prepare(L,I)を自身のローカル記憶部12に記憶する。なお、本実施形態では、ステップS306を設けたことによって、少なくとも、ログ更新番号「L」が自身のものより小さいケースを受け付けなくすることができるようになり、ログ更新番号のより大きい(最新の)データベースを保持するデータベース装置10をマスタに選択する確率を高めることができる。   In step S306, the arbitrating unit 114 determines whether the proposal number (L, I) is greater than or equal to the proposal number (L ′, I ′). When the proposal number (L, I) is greater than or equal to the proposal number (L ′, I ′) (Yes in step S306), in step S307, the arbitrating unit 114 sends a confirmation notification PrepareACK (L, I) to the database device 10A. Send back. Thereafter, in step S308, the arbitrating unit 114 stores the candidacy notification Prepare (L, I) received in step S303 in its own local storage unit 12. In this embodiment, by providing step S306, at least a case where the log update number “L” is smaller than its own can be rejected, and the log update number is larger (the latest update number). ) The probability of selecting the database device 10 holding the database as the master can be increased.

ここで、ステップS306における、提案番号(L,I)と提案番号(L’,I’)との大小比較について説明する。本実施形態では、最初に、ログ更新番号同士を比較する。そして、L>L’であれば、提案番号(L,I)が提案番号(L’,I’)より大きいと判定する。また、L=L’であれば、次に、データベース装置ID同士を比較する。そして、I>I’であれば、提案番号(L,I)が提案番号(L’,I’)より大きいと判定する。   Here, the size comparison between the proposal number (L, I) and the proposal number (L ′, I ′) in step S306 will be described. In this embodiment, first, log update numbers are compared with each other. If L> L ′, it is determined that the proposal number (L, I) is larger than the proposal number (L ′, I ′). If L = L ′, the database device IDs are compared with each other. If I> I ′, it is determined that the proposal number (L, I) is larger than the proposal number (L ′, I ′).

そして、図3に戻って、ステップS306において、提案番号(L,I)が提案番号(L’,I’)以上でない場合(ステップS306でNo)、他のデータベース装置10の処理部14は、処理は終了する。すなわち、他のデータベース装置10の調停部114は、確認通知PrepareACK()を、データベース装置10Aに送信しない。   Returning to FIG. 3, when the proposal number (L, I) is not greater than or equal to the proposal number (L ′, I ′) in step S306 (No in step S306), the processing units 14 of the other database devices 10 The process ends. That is, the arbitrating unit 114 of the other database device 10 does not transmit the confirmation notification PrepareACK () to the database device 10A.

また、ステップS304において、以前受信した提案番号(L’’,I’’)がある場合(ステップS304でYes)、ステップS309では、調停部114は、ローカル記憶部12を探索して、以前受信した立候補通知Prepare()または提案通知Propose()の提案番号(L’’,I’’)の中で、最大の提案番号を抽出し、(Lm,Im)とする。次に、ステップS310では、調停部114は、提案番号(L,I)が提案番号(Lm,Im)以上か否かを判定する。   In step S304, when there is a proposal number (L ″, I ″) received in advance (Yes in step S304), in step S309, the arbitrating unit 114 searches the local storage unit 12 and receives the previous received number. The maximum proposal number is extracted from the proposal numbers (L ″, I ″) of the candidate candidacy notification Prepare () or the proposal notification Propose () and is set as (Lm, Im). Next, in step S310, the arbitrating unit 114 determines whether the proposal number (L, I) is greater than or equal to the proposal number (Lm, Im).

提案番号(L,I)が提案番号(Lm,Im)以上の場合(ステップS310でYes)、ステップS311では、調停部114は、以前受信した提案通知Propose()の中で、最大の提案番号(Lm,Im)を持つPropose((Lm,Im),v’)をローカル記憶部12から読出し、確認通知PrepareACK((L,I),Propose((Lm,Im),v’)を、データベース装置10Aに返信する。なお、v’は、提案内容であり、例えば「誰(どのデータベース装置10)がマスタになる」という情報である。以前受信した提案通知Propose(Lm, Im)がない場合は、確認通知PrepareACK(L,I)をデータベース装置10Aに返信する。また、ステップS312では、調停部114は、受信した立候補通知Prepare(L,I)を自身のローカル記憶部12に記憶する。   When the proposal number (L, I) is greater than or equal to the proposal number (Lm, Im) (Yes in step S310), in step S311, the arbitration unit 114 has the largest proposal number in the previously received proposal notification Propose (). Propose ((Lm, Im), v ′) having (Lm, Im) is read from the local storage unit 12 and confirmation notification PrepareACK ((L, I), Propose ((Lm, Im), v ′) is stored in the database. Reply to the device 10A, where v ′ is the content of the proposal, for example, information indicating “who (which database device 10) becomes the master.” When there is no previously received proposal notification Propose (Lm, Im) Returns a confirmation notification PrepareACK (L, I) to the database device 10 A. In step S312, the arbitration unit 114 stores the received candidacy notification Prepare (L, I) in its local storage unit 12.

また、提案番号(L,I)が提案番号(Lm,Im)以上でないの場合(ステップS310でNo)、他のデータベース装置10の処理部11は、処理を終了する。すなわち、他のデータベース装置10の調停部114は、確認通知PrepareACK()を、データベース装置10Aに送信しない。   If the proposal number (L, I) is not greater than or equal to the proposal number (Lm, Im) (No in step S310), the processing unit 11 of the other database device 10 ends the process. That is, the arbitrating unit 114 of the other database device 10 does not transmit the confirmation notification PrepareACK () to the database device 10A.

また、データベース装置10Aは、自分自身に、確認通知PrepareACK()を送信するものとする。   Further, the database device 10A transmits a confirmation notification PrepareACK () to itself.

(本実施形態における第2のフェーズの処理)
図4は、本実施形態における第2のフェーズの処理の流れを示す(適宜図2参照)。まず、ステップS401では、データベース装置10Aの提案部113は、他のデータベース装置10から送信された確認通知PrepareACK(L,I)を受信する。次に、調停部114は、所定時間に受信した提案番号(L,I)の確認通知PrepareACK()の数が分散データベースシステム1全体に存在するデータベース装置10の数の過半数となったかを集計して、過半数の確認通知PrepareACK(L,I)を受信したか否かを判定する。そして、過半数の確認通知PrepareACK(L,I)を受信しなかった場合(ステップS401でNo)、ステップS402では、調停部114は、立候補が否決されたものと判断し、処理を終了する。なお、ステップS402の処理の後、新しいマスタが未だ決定していない場合には、データベース装置10Aの処理は、図3に示す処理のステップS301へ戻って、提案番号(L,I)を再計算し、ステップS302以降の処理を継続しても構わない。なお、再計算された提案番号(L,I)は、前回の立候補通知に用いたLに+1増加して生成される。
(Process of the second phase in the present embodiment)
FIG. 4 shows the flow of processing of the second phase in the present embodiment (see FIG. 2 as appropriate). First, in step S401, the proposal unit 113 of the database device 10A receives the confirmation notification PrepareACK (L, I) transmitted from the other database device 10. Next, the arbitrating unit 114 counts whether the number of confirmation notifications PrepareACK () of the proposal numbers (L, I) received at a predetermined time is a majority of the number of database devices 10 existing in the entire distributed database system 1. Thus, it is determined whether or not the majority confirmation notification PrepareACK (L, I) has been received. When the majority confirmation notification PrepareACK (L, I) is not received (No in step S401), in step S402, the arbitrating unit 114 determines that the candidacy has been rejected, and ends the process. If a new master has not yet been determined after the process of step S402, the process of the database device 10A returns to step S301 of the process shown in FIG. 3, and recalculates the proposal number (L, I). However, you may continue the process after step S302. The recalculated proposal number (L, I) is generated by adding +1 to L used in the previous candidacy notification.

ステップS401において、過半数の確認通知PrepareACK(L,I)を受信した場合(ステップS401でYes)、ステップS403では、調停部114は、確認通知PrepareACK((L,I),Propose((Lm,Im),v’))を受信したか否かを判定する。そして、確認通知PrepareACK((L,I),Propose((Lm,Im),v’))を一つでも受信した場合(ステップS403でYes)、ステップS404では、調停部114は、各他のデータベース装置10から受信した提案通知Propose((Lm,Im),v’)の提案番号(Lm,Im)同士を比較する。そして、提案部113は、その比較結果を受けて、最大の提案番号の提案通知Propose()の提案内容v’を自身の提案内容vとして、提案通知Propose((L,I),v)を、他のデータベース装置10に送信する。なお、データベース装置10Aは、自分自身に提案通知Propose((L,I),v)を送信しても構わない。   When a majority confirmation notification PrepareACK (L, I) is received in step S401 (Yes in step S401), in step S403, the arbitrating unit 114 confirms the confirmation notification PrepareACK ((L, I), Propose ((Lm, Im ), v ′)) is received. When at least one confirmation notification PrepareACK ((L, I), Propose ((Lm, Im), v ′)) is received (Yes in step S403), in step S404, the arbitrating unit 114 makes each other The proposal numbers (Lm, Im) of the proposal notification Propose ((Lm, Im), v ′) received from the database device 10 are compared. Then, the proposing unit 113 receives the result of the comparison, sets the proposal content v ′ of the proposal notification Propose () with the largest proposal number as its proposal content v, and sets the proposal notification Propose ((L, I), v) To the other database device 10. Note that the database device 10A may transmit a proposal notification Propose ((L, I), v) to itself.

ステップS403において確認通知PrepareACK((L,I),Propose((Lm,Im),v’))を受信しなかった場合(ステップS403でNo)、ステップS405では、提案部113は、自身の提案内容vを決定し、提案通知Propose((L,I),v)を、他のデータベース装置10に送信する。なお、ステップS404およびS405において、データベース装置10Aは、提案通知Propose((L,I),v)を、自分自身に送信しても構わない。ステップS406では、他のデータベース装置10の調停部114は、提案通知Propose((L,I),v)を受信した後、ローカル記憶部12を探索し、提案番号(L,I)が以前受信した提案番号(L’’,I’’)以上か否かを判定する。   When the confirmation notification PrepareACK ((L, I), Propose ((Lm, Im), v ′)) is not received in step S403 (No in step S403), in step S405, the proposing unit 113 makes its own proposal. The content v is determined and a proposal notification Propose ((L, I), v) is transmitted to the other database device 10. In steps S404 and S405, the database device 10A may transmit a proposal notification Propose ((L, I), v) to itself. In step S406, the arbitration unit 114 of the other database device 10 receives the proposal notification Propose ((L, I), v), searches the local storage unit 12, and previously receives the proposal number (L, I). It is determined whether or not the proposal number (L ″, I ″) is equal to or higher.

そして、提案番号(L,I)が以前受信した提案番号(L’’,I’’)以上の場合(ステップS406でYes)、ステップS407では、調停部114は、確認通知ProposeACK(L,I)を、データベース装置10に返信する。また、調停部114は、受信した提案通知Propose(L,I)を自身のローカル記憶部12に記憶する。なお、提案番号(L,I)が以前受信した提案番号(L’’,I’’)以上でない場合(ステップS406でNo)、他のデータベース装置10の処理部11は、処理を終了する。すなわち、他のデータベース装置10の調停部114は、確認通知ProposeACK()を、データベース装置10Aに送信しない。   If the proposal number (L, I) is greater than or equal to the previously received proposal number (L ″, I ″) (Yes in step S406), in step S407, the arbitration unit 114 checks the confirmation notification ProposeACK (L, I ) To the database apparatus 10. Further, the arbitrating unit 114 stores the received proposal notification Propose (L, I) in its local storage unit 12. If the proposal number (L, I) is not greater than or equal to the previously received proposal number (L ″, I ″) (No in step S406), the processing unit 11 of the other database device 10 ends the process. That is, the arbitrating unit 114 of the other database device 10 does not transmit the confirmation notification ProposeACK () to the database device 10A.

ステップS408では、データベース装置10Aの提案部113は、他のデータベース装置10から送信された確認通知ProposeACK(L,I)を受信する。そして、調停部114は、所定時間に受信した確認通知ProposeACK(L,I)の数が分散データベースシステム1全体に存在するデータベース装置10の数の過半数となったかを集計して、過半数の確認通知ProposeACK(L,I)を受信したか否かを判定する。そして、過半数の確認通知ProposeACK(L,I)を受信しなかった場合(ステップS408でNo)、処理はステップS402へ進み、データベース装置10Aの調停部114は、立候補が否決されたものと判断し、処理を終了する。また、過半数の確認通知ProposeACK(L,I)を受信した場合(ステップS408でYes)、ステップS409では、データベース装置10Aの調停部114は、提案内容v(データベース装置10Aがマスタになること)が決定されたと判断する。そして、データベース装置10Aの調停部114は、提案内容vが確定したことを示す決定通知を、他のデータベース装置10に送信する。   In step S408, the proposal unit 113 of the database device 10A receives the confirmation notification ProposeACK (L, I) transmitted from the other database device 10. Then, the arbitrating unit 114 totals whether the number of confirmation notifications ProposeACK (L, I) received at a predetermined time has become a majority of the number of database devices 10 existing in the entire distributed database system 1, and a confirmation notification of the majority Determine whether ProposeACK (L, I) is received. If the majority confirmation notification ProposeACK (L, I) is not received (No in step S408), the process proceeds to step S402, and the arbitrating unit 114 of the database device 10A determines that the candidacy has been rejected. The process is terminated. Further, when the majority confirmation notification ProposeACK (L, I) is received (Yes in step S408), in step S409, the arbitrating unit 114 of the database device 10A has a proposal v (the database device 10A becomes a master). Judge that it was decided. Then, the arbitrating unit 114 of the database device 10 </ b> A transmits a determination notification indicating that the proposal content v has been confirmed to the other database device 10.

なお、ステップS407以降、ステップS410では、他のデータベース装置10の調停部114は、受信した提案通知Propose(L,I)を自身のローカル記憶部12に記憶する。そして、他のデータベース装置10の処理部11は、データベース装置10Aから決定通知を受信した後、ローカル記憶部12に記憶した立候補通知Prepare()、提案通知Propose()、確認通知PrepareACK(),ProposeACK()を消去して、処理を終了する。   After step S407, in step S410, the arbitrating unit 114 of the other database device 10 stores the received proposal notification Propose (L, I) in its own local storage unit 12. Then, after receiving the determination notification from the database device 10A, the processing unit 11 of the other database device 10 stores the candidacy notification Prepare (), proposal notification Propose (), confirmation notification PrepareACK (), ProposeACK stored in the local storage unit 12. Delete () and end the process.

(具体例)
本実施形態の処理の流れとその効果について、表1に示す具体例を用いて説明する(適宜図3,4参照)。表1に示すように、分散データベースシステム1が、マスタ(データベース装置名N1)1台、スレーブ(データベース装置名N2,N3,N4,N5)4台の合計5台のデータベース装置によって構成されているものとする。
(Concrete example)
The flow of processing according to the present embodiment and its effects will be described using specific examples shown in Table 1 (see FIGS. 3 and 4 as appropriate). As shown in Table 1, the distributed database system 1 is composed of a total of five database devices, one master (database device name N1) and four slaves (database device names N2, N3, N4, N5). Shall.


Figure 2010277467
Figure 2010277467

第1のフェーズでは、マスタのN1に障害が発生して、各スレーブは、N4,N2,N3,N5の順に立候補通知Prepare()を送信するものとする。スレーブN4は、提案番号を(122,4)として、立候補通知Prepare(122,4)を他のスレーブN2,N3,N5に送信する(ステップS302)。他のスレーブN2,N3,N5は、N4から立候補通知Prepare(122,4)を受信する(ステップS303)。この立候補通知Prepare(122,4)受信時点では、他のスレーブN2,N3,N5は、それぞれの記憶部に記憶した立候補通知が存在しない(すなわち、以前受信した提案番号がない)ので(ステップS304)、それぞれの記憶部から自身のログ更新番号「L」を読出し(ステップS305)、自身の提案番号(L,I)を生成する。そして、他のスレーブN2,N3,N5は、自身の提案番号(L,I)と、受信した立候補通知Prepare(122,4)の提案番号(122,4)とを比較する(ステップS306)。提案番号同士の比較では、スレーブN2については、(123,2)>(122,4)、スレーブN3については、(122,3)<(122,4)、スレーブN5については、(122,5)>(122,4)となる。その結果、スレーブN3および自分(N4)は、確認通知PrepareACK(122,4)を送信する(ステップS307)。その後、スレーブN3およびスレーブN4は、確認通知Prepare(122,4)を記憶部に記憶する(ステップS308)。そして、スレーブN4は、スレーブN3および自分(N4)から確認通知PrepareACK(122,4)を受信する(ステップS401)。すなわち、スレーブN4は、5台のデータベース装置のうち、2台からしか確認通知PrepareACK(122,4)を受信できない。したがって、スレーブN4は、過半数の確認通知PrepareACK(122,4)を受信できないことになり、立候補否決となる(ステップS402)。   In the first phase, a failure occurs in N1 of the master, and each slave transmits a candidacy notification Prepare () in the order of N4, N2, N3, and N5. The slave N4 sets the proposal number to (122, 4) and transmits a candidacy notification prepare (122, 4) to the other slaves N2, N3, and N5 (step S302). The other slaves N2, N3, and N5 receive the candidacy notification Prepare (122, 4) from N4 (step S303). At the time of receiving this candidate notification Prepare (122,4), the other slaves N2, N3, and N5 do not have the candidate notification stored in their storage units (that is, there is no previously received proposal number) (step S304). ) Reads its own log update number “L” from each storage unit (step S305), and generates its own proposal number (L, I). Then, the other slaves N2, N3, N5 compare their own proposal numbers (L, I) with the proposal numbers (122, 4) of the received candidate notification prepare (122, 4) (step S306). In comparison between the proposal numbers, for slave N2, (123,2)> (122,4), for slave N3, (122,3) <(122,4), for slave N5, (122,5) )> (122, 4). As a result, the slave N3 and itself (N4) transmit a confirmation notification PrepareACK (122, 4) (step S307). Thereafter, the slave N3 and the slave N4 store the confirmation notification Prepare (122, 4) in the storage unit (step S308). Then, the slave N4 receives the confirmation notification PrepareACK (122, 4) from the slave N3 and itself (N4) (step S401). That is, the slave N4 can receive the confirmation notification PrepareACK (122, 4) from only two of the five database devices. Therefore, the slave N4 cannot receive a majority confirmation notification PrepareACK (122, 4), and the candidate is rejected (step S402).

次に、スレーブN2が送信した立候補通知Prepare(123,2)に対しては、それを受信したスレーブN3およびスレーブN4は、ステップS308において既に記憶部に記憶した立候補通知Prepare(122,4)が存在するため、記憶されている最大の提案番号である(122,4)を抽出し(ステップS309)、提案番号同士の比較を行う(ステップS310)。その比較結果は、スレーブ3については、(122,4)<(123,2)、スレーブ4については、(122,4)<(123,2)となる。また、スレーブ5については、(122,5)<(123,2)となる。したがって、スレーブN2の送信した立候補通知Prepare(123,2)に対しては、スレーブN2,N3,N4,N5は、確認通知PrepareACK(123,2)を送信することになる(ステップS311)。そして、スレーブN2は、スレーブN2,N3,N4,N5から確認通知PrepareACK(123,2)を受信する(ステップS401)。したがって、スレーブN2は、第2のフェーズにおいて、提案通知Propose((123,2),「マスタはN2である」)を全データベース装置に送信する(ステップS405)。次に、ステップS406において提案番号(123,2)が以前受信した提案番号(123,2)以上であるので、各スレーブN2、N3,N4,N5は、確認通知Propose(123,2)を送信する。そして、スレーブN2は、過半数のデータベース装置から確認通知ProposeACK(123,2)を受信して(ステップS408)、提案内容「マスタはN2である」に決定する(ステップS409、S411)。   Next, for the candidate notification Prepare (123, 2) transmitted by the slave N2, the slave N3 and the slave N4 that have received it receive the candidate notification Prepare (122, 4) already stored in the storage unit in Step S308. Since it exists, (122, 4) which is the maximum stored proposal number is extracted (step S309), and the proposal numbers are compared (step S310). The comparison results are (122,4) <(123,2) for slave 3 and (122,4) <(123,2) for slave 4. For the slave 5, (122, 5) <(123, 2). Therefore, the slaves N2, N3, N4, and N5 transmit the confirmation notification PrepareACK (123, 2) to the candidacy notification Prepare (123, 2) transmitted by the slave N2 (step S311). Then, the slave N2 receives the confirmation notification PrepareACK (123, 2) from the slaves N2, N3, N4, and N5 (step S401). Therefore, in the second phase, the slave N2 transmits a proposal notification Propose ((123,2), “master is N2”) to all the database devices (step S405). Next, since the proposal number (123, 2) is equal to or larger than the previously received proposal number (123, 2) in step S406, each of the slaves N2, N3, N4, and N5 transmits a confirmation notification Propose (123, 2). To do. Then, the slave N2 receives the confirmation notification ProposeACK (123, 2) from the majority of the database devices (step S408), and determines the proposal content “master is N2” (steps S409 and S411).

前記したように、本実施形態では、ステップS304において、最初に受信した立候補通知の提案番号は必ず自身の提案番号と比較されるため、記憶部に記憶される、以前受信した提案番号は必ず自身の提案番号以上に限られる。したがって、過半数のデータベース装置のログ更新番号が最新のものである場合、必ず(100%の確率で)、最新のログ更新番号のデータベースを保持するデータベース装置が新しいマスタに選択される。なお、半数以下のデータベース装置しか最新のログ更新番号のデータベースを保持していない場合、データベース装置の台数をMとすると、最悪の状態で、(M+1)/(2×(M−1))の確率で最新のログ更新番号のデータベースを持つデータベース装置が、新しいマスタになる。すなわち、表1に示すM=5の場合には、最悪でも75%の確率で最新のログ更新番号のデータベースを保持するデータベース装置が、新しいマスタになる。また、半数以上のデータベース装置のログ更新番号が最新のものである確率を0.5とした場合、新しいマスタが最新のログ更新番号となる確率は、100%×0.5+75%×0.5=87.5%となる。   As described above, in the present embodiment, since the proposal number of the candidacy notification received first is always compared with its own proposal number in step S304, the previously received proposal number stored in the storage unit is always No more than the proposal number. Therefore, when the log update numbers of the majority of database devices are the latest, the database device that holds the database of the latest log update numbers is always selected as the new master (with a probability of 100%). Note that if only half or less of the database devices hold the database with the latest log update number, assuming that the number of database devices is M, in the worst case, (M + 1) / (2 × (M−1)) The database device having the database with the latest log update number with probability becomes the new master. That is, in the case of M = 5 shown in Table 1, the database device that holds the database of the latest log update number with a probability of 75% at worst becomes a new master. Also, when the probability that the log update number of more than half of the database devices is the latest is 0.5, the probability that the new master will be the latest log update number is 100% × 0.5 + 75% × 0.5 = 87.5 %.

≪変形例≫
前記した実施形態では、マスタに障害が発生したと判定してから、初回(1回目)の立候補通知Prepare()を送信した場合について説明をしたが、本変形例では、新しいマスタが決まるまでの間に、再度の立候補通知Prepare()を送信する場合において、最新のログ更新番号のデータベースを保持するデータベース装置10が新しいマスタに決定される確率を高める方法について、説明する(適宜図1,3参照)。
≪Modification≫
In the embodiment described above, the case where the first (first) candidate notification Prepare () is transmitted after it is determined that a failure has occurred in the master has been described. However, in this modification, a new master is determined. In the meantime, a method for increasing the probability that the database device 10 holding the database of the latest log update number is determined to be a new master in the case of sending another candidate notification Prepare () will be described (as appropriate in FIGS. 1 and 3). reference).

本実施形態における第1のフェーズにおいて、データベース装置10Aが初回(1回目)の立候補通知Prepare()を送信したにもかかわらす、確認通知PrepareACK()を受信できず、その後他のスレーブの立候補通知Prepare()や提案通知Propose()も受信できなかった場合を想定する。この場合、データベース装置10Aは、確認通知PrepareACK()を受信できない理由が、(a)立候補通知Prepare()がネットワーク30内でパケット損失によって消滅してしまったのか、(b)提案番号が小さいためなのか、(c)確認通知PrepareACK()がネットワーク30内でパケット損失によって消滅してしまったのか、(d)新たにマスタに選択されたデータベース装置10が故障したのか、を知ることができない。それを明確にするために、データベース装置10Aは、所定時間待った後、立候補通知Prepare()を再度送信する。このとき、立候補通知Prepare()に用いる提案番号(L,I)は、前回の立候補通知Prepare()に用いたLの値に、立候補通知Prepare()を送信するごとに+1増加したものを用いる。そして、前回用いたLに+1増加した提案番号を用いて、図3のステップS302以降の処理が実行される。   In the first phase in the present embodiment, the database apparatus 10A cannot receive the confirmation notification PrepareACK () after transmitting the first (first) candidate notification Prepare (), and then receives other slave candidate notifications. Assume that Prepare () and proposal notification Propose () could not be received. In this case, the database device 10A cannot receive the confirmation notification PrepareACK () because (a) the candidacy notification Prepare () has disappeared due to packet loss in the network 30, or (b) the proposal number is small. It is impossible to know whether (c) the confirmation notification PrepareACK () has disappeared due to packet loss in the network 30 or (d) whether the database device 10 newly selected as the master has failed. In order to clarify this, the database device 10A waits for a predetermined time, and then transmits the candidacy notification Prepare () again. At this time, the proposal number (L, I) used for the candidacy notification Prepare () uses the value of L used for the previous candidacy notification Prepare () increased by +1 every time the candidacy notification Prepare () is transmitted. . And the process after step S302 of FIG. 3 is performed using the proposal number which increased +1 to L used last time.

この立候補通知を再度送信する場合について、表1のケースを用いて説明する。マスタN1に障害が発生したと判断したとき、スレーブN4,N2,N3,N5の順で第1のフェーズが開始されたものとする。スレーブN4の初回(1回目)の立候補通知Prepare()は、提案番号比較の結果、前記したように、過半数の確認通知PrepareACK()を受信することはできない。しかし、スレーブN4は、所定時間待った後、2回目の立候補通知Prepare()を送信するまでに、他のスレーブN2,N3,N5のいずれもが立候補通知Prepare()を送信していなければ、初回の提案番号(122,4)を提案番号(123,4)として立候補通知Prepare(123,4)を送信するために、最新のログ更新番号でないにもかかわらず、新しいマスタになってしまうという事態が起きる。   A case where this candidacy notification is transmitted again will be described using the case of Table 1. When it is determined that a failure has occurred in the master N1, it is assumed that the first phase is started in the order of the slaves N4, N2, N3, and N5. As described above, the first (first) candidacy notification Prepare () of the slave N4 cannot receive the majority confirmation notification PrepareACK () as described above. However, after the slave N4 waits for a predetermined time and before any of the other slaves N2, N3, and N5 transmits the candidacy notification Prepare () until the second candidacy notification Prepare () is transmitted, the first time Since the proposal number (122, 4) is set as the proposal number (123, 4) and the candidate notification prepare (123,4) is transmitted, it becomes a new master even though it is not the latest log update number. Happens.

そこで、ログ更新番号が最新のデータベースを保持するスレーブが、新しいマスタに選択される確率を高くするために、3つの案について説明する。   In order to increase the probability that a slave holding a database with the latest log update number will be selected as a new master, three plans will be described.

第1案は、いずれかのデータベース装置10が再度の立候補通知Prepare()を送信する前に、すべてのスレーブが初回の立候補通知Prepare()を送信できるように、再度の立候補通知を発行できる時間を設定することである。例えば、マスタからのハートビートメッセージは、ブロードキャストによって全スレーブに送信される。スレーブは、所定時間内にハートビートメッセージを受信しなければ、マスタに障害が発生したと判定し、第1のフェーズを開始する。マスタのハートビート送出装置の負荷状況またはネットワークの輻輳状況によっては、立候補通知Prepare()を送信するタイミングが、スレーブごとに異なって、最も早く送信される立候補通知Prepare()の送信時刻と最後に送信される立候補通知Prepare()の送信時刻との時間差が大きくなる場合がある。5台のデータベース装置10を用いたシミュレーション実験による結果では、前記時間差を2秒と見積もればほとんどの場合で、再度の立候補通知Prepare()の送信前に、すべてのスレーブが初回の立候補通知Prepare()を送信できることが分かった。   In the first plan, before any of the database devices 10 transmits the candidacy notification Prepare () again, the time when all the slaves can issue the candidacy notification Prepare () for the first time can be issued again. Is to set. For example, a heartbeat message from the master is transmitted to all slaves by broadcast. If the slave does not receive the heartbeat message within a predetermined time, the slave determines that a failure has occurred in the master and starts the first phase. Depending on the load status of the master heartbeat sending device or network congestion, the timing for sending the candidacy notification Prepare () differs for each slave, and the sending time of the candidacy notification Prepare () that is sent earliest and the last There may be a case where the time difference from the transmission time of the candidacy notification Prepare () to be transmitted becomes large. As a result of a simulation experiment using five database devices 10, in most cases, the time difference is estimated to be 2 seconds. Before sending another candidate notification Prepare () again, all the slaves prepare the initial candidate notification Prepare ( ) Can be sent.

第2案は、受信した立候補通知Prepare()の提案番号(L,I)が、自身の提案番号(L’,I’)より小さい場合に、自身の立候補通知Prepare()を送信することである。この構成によって、ログ更新番号が小さいスレーブが立候補通知Prepare()を送信しても、そのログ更新番号以上のログ更新番号のスレーブが立候補通知Prepare()を送信するため、より高い確率で、最新のログ更新番号のデータベースを保持するデータベース装置10が新しいマスタに選択されることになる。なお、前記第1案および第2案では、ネットワーク30において、パケットの損失、遅延、転置が発生する場合を含む環境において有効な方法である。   The second proposal is to transmit its own candidacy notification Prepare () when the proposed number (L, I) of the received candidacy notification Prepare () is smaller than its own proposal number (L ', I'). is there. With this configuration, even if a slave with a small log update number sends a candidate notification Prepare (), a slave with a log update number equal to or higher than the log update number sends a candidate notification Prepare (). The database apparatus 10 that holds the database of the log update numbers is selected as the new master. The first and second proposals are effective methods in an environment including cases where packet loss, delay, and transposition occur in the network 30.

第3案では、ネットワーク30において、パケットの損失、遅延、転置が発生しない環境において用いることが有効な方法について説明する。例えば、表1のケースにおいて、スレーブN5,N4,N3,N2の順に第1のフェーズの処理を開始したとする。スレーブN5は、提案番号(122,5)を含む立候補通知Prepare(122,5)を他のスレーブN2,N3,N4に送信する。スレーブN5は、スレーブN3,N4および自身(N5)からPrepareACK(122,5)を受信する、すなわち、過半数のPrepareACK()を受信することができる。そして、スレーブN5は、最新のログ更新番号のデータベースを保持していなくても、新しいマスタとなってしまうという問題がある。これは、最新のログ更新番号のデータベースを保持するスレーブの台数が半数未満であり、かつ、スレーブN5のIDが過半数のスレーブのIDより高いことに起因している。そこで、マスタからハートビートメッセージを受信してからマスタの故障と判定するまでの判定時間を、優先順位の高いほど(IDの大きいほど)判定時間を長くすることによって、前記問題を解決することができる。   In the third plan, a method that is effective in an environment in which no loss, delay, or transposition of packets occurs in the network 30 will be described. For example, in the case of Table 1, it is assumed that the processing of the first phase is started in the order of slaves N5, N4, N3, and N2. The slave N5 transmits a candidate notification prepare (122, 5) including the proposal number (122, 5) to the other slaves N2, N3, and N4. The slave N5 can receive PrepareACK (122,5) from the slaves N3, N4 and itself (N5), that is, receive a majority of PrepareACK (). Then, there is a problem that the slave N5 becomes a new master even if it does not hold the database of the latest log update numbers. This is because the number of slaves holding the database of the latest log update numbers is less than half, and the ID of the slave N5 is higher than the majority of slave IDs. Therefore, the above problem can be solved by increasing the determination time from the reception of the heartbeat message from the master to the determination of the master failure as the priority is higher (as the ID is larger). it can.

以上、本実施形態および変形例の分散データベースシステム1によれば、図3に示すステップS304〜S305において、以前に受信した提案番号(L’’,I’’)がない(すなわち、初めて立候補通知Prepare(L,I)を受信した)場合、自身のログ更新番号「L」’およびデータベース装置ID「I’」を取得して生成した提案番号(L’,I’)を比較基準として備えている。しかし、比較例では、ステップS604において、以前に受信した提案番号n’がない(すなわち、初めて立候補通知Prepare(n)を受信した)場合、提案番号の大小を比較する基準を備えていない。そのため、本実施形態では、少なくとも、立候補通知Prepare(L,I)を受信したデータベース装置10は、自身のログ更新番号「L’」より小さい立候補通知Prepare()に対して、確認通知PrepareACK()を返信することはなく、必ず、自身のログ更新番号「L」以上のデータベース装置10をマスタの候補とすることができる。すなわち、新しく選ばれるマスタが、最新のログ更新番号のデータベースを備えている確率を高めることができる。したがって、分散データベースシステム1において、マスタに障害が発生したときの可用性を高めることができる。   As described above, according to the distributed database system 1 of the present embodiment and the modification, there is no previously received proposal number (L ″, I ″) in steps S304 to S305 illustrated in FIG. When Prepare (L, I) is received), a proposal number (L ′, I ′) generated by acquiring its own log update number “L” ′ and database device ID “I ′” is provided as a comparison criterion. Yes. However, in the comparative example, if there is no previously received proposal number n ′ (that is, the first candidate notification Prepare (n) is received) in step S604, there is no reference for comparing the size of the proposal number. Therefore, in this embodiment, at least the database device 10 that has received the candidacy notification Prepare (L, I) receives the confirmation notification PrepareACK () for the candidacy notification Prepare () smaller than its log update number “L ′”. The database apparatus 10 having its own log update number “L” or higher can always be set as a master candidate. That is, it is possible to increase the probability that a newly selected master has a database of the latest log update numbers. Therefore, in the distributed database system 1, availability when a failure occurs in the master can be increased.

なお、本実施形態では、提案番号を(L,I)の場合について説明したが、ログ更新番号「L」だけを用いても、可用性を高める効果をもたらすことが可能である。   In this embodiment, the case where the proposal number is (L, I) has been described. However, even if only the log update number “L” is used, the effect of increasing availability can be brought about.

また、本実施形態では、データベースの場合について説明したが、版数管理をしているデータやファイルに対しても、適用することが可能である。   In this embodiment, the case of a database has been described. However, the present invention can also be applied to data and files whose version number is managed.

また、本実施形態において、データベース装置10(図2参照)の各部の処理は、データベース装置10をコンピュータで実現したときに搭載されるプログラムによって実現されてもよい。このプログラムは、通信回線を介して提供することもできるし、CD−ROM等のコンピュータ読み取り可能な記録媒体に書き込んで配布することも可能である。   Moreover, in this embodiment, the process of each part of the database apparatus 10 (refer FIG. 2) may be implement | achieved by the program mounted when the database apparatus 10 is implement | achieved by the computer. This program can be provided via a communication line, or can be distributed by writing in a computer-readable recording medium such as a CD-ROM.

1 分散データベースシステム(分散データ管理システム)
10(10A,10B,10C) データベース装置(データ管理装置)
11 処理部
12 ローカル記憶部(記憶部)
13 データベース
30 ネットワーク
111 ログ管理部
112 提案番号発行部
113 提案部
114 調停部
1 Distributed database system (distributed data management system)
10 (10A, 10B, 10C) Database device (data management device)
11 Processing Unit 12 Local Storage Unit (Storage Unit)
13 Database 30 Network 111 Log Management Unit 112 Proposal Number Issuing Unit 113 Proposal Unit 114 Arbitration Unit

Claims (8)

3台以上のデータ管理装置がネットワークを介して相互に通信可能に接続され、前記データ管理装置の中の1台をマスタとし、他の前記データ管理装置をスレーブとして、マスタ障害時にスレーブの中から新しいマスタを選択する分散データ管理システムであって、
前記スレーブは、処理部と、当該スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる前記更新番号を変数とする提案番号を記憶する記憶部とを備え、
前記スレーブの処理部は、
マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信し、
前記他のスレーブの処理部は、
前記立候補通知を新たに受信したとき、自身の記憶部を探索して、
該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した前記立候補通知の提案番号との大小を比較して、前記新たに受信した前記立候補通知の提案番号が該自身の提案番号以上のとき、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送信したスレーブに返信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶し、
前記立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、前記新たに受信した前記立候補通知の提案番号が前記最大の提案番号以上であれば、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送出したスレーブに送信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶し、
前記立候補通知を送信したスレーブは、
前記分散データ管理システムに属するすべての前記データ管理装置中の過半数の前記スレーブから前記自身の提案番号を含む確認通知を受信したときに、自身の提案番号を含む自身がマスタになることを示す提案情報をすべての前記スレーブに送信し、
前記分散データ管理システムに属するすべての前記データ管理装置中の過半数の前記スレーブから前記提案情報に対する確認通知を受信した後、前記提案情報が確定したことを示す決定通知を前記他のスレーブに送信し、
前記他の前記スレーブは、前記決定通知を受信し、自身の記憶部から、既に記憶されている前記立候補通知の提案番号を消去する
ことを特徴とする分散データ管理システム。
Three or more data management devices are communicably connected to each other via a network. One of the data management devices is used as a master, and the other data management device is used as a slave. A distributed data management system for selecting a new master,
The slave stores a processing unit and a data update number that increases each time the data managed by the slave is updated, and a storage unit that stores a proposal number with the update number increasing as the update number increases. And
The processing unit of the slave is
At the time of a master failure, read out its own update number from its own storage unit, send a candidate notification including a proposal number with the update number as a variable to other slaves,
The processing unit of the other slave is
When the candidate notification is newly received, search its own storage unit,
If there is no proposal number stored before receiving the candidacy notification, it reads its own update number from its own storage unit, generates its own proposal number with the update number as a variable, and Comparing the number of the newly received candidacy notification with the proposed number of the candidacy notification, and including the proposed number of the candidacy notification when the newly received proposal number of the candidacy notification is greater than or equal to its own proposal number A confirmation notification for the candidacy notification is returned to the slave that sent the candidacy notification, and the newly received proposal number of the candidacy notification is stored in its own storage unit,
If there is a proposal number stored before receiving the candidacy notification, the largest proposal number is extracted from the stored proposal numbers, and the newly received proposal number of the candidacy notification is the maximum proposal number. If it is above, the confirmation notification for the candidacy notification including the proposal number of the candidacy notification is transmitted to the slave that sent the candidacy notification, and the newly received proposal number of the candidacy notification is stored in its own storage unit And
The slave that sent the candidacy notification
A proposal indicating that itself including its own proposal number becomes a master when receiving a confirmation notification including its own proposal number from a majority of the slaves in all the data management devices belonging to the distributed data management system Send information to all the slaves,
After receiving a confirmation notification for the proposal information from a majority of the slaves in all the data management devices belonging to the distributed data management system, a decision notification indicating that the proposal information is confirmed is transmitted to the other slaves. ,
The said other said slave receives the said notification of a decision, and deletes the proposal number of the said candidate notification already memorize | stored from its memory | storage part, The distributed data management system characterized by the above-mentioned.
前記提案番号は、前記データの更新番号に、新しいマスタに選択される優先順位を示す前記データを識別するIDをさらに組み合わせたものであり、
前記処理部は、前記提案番号の大小比較において、
前記提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、前記提案番号が大きいと判定し、
前記更新番号同士が等しい場合には、前記データを識別するID同士を比較し、前記データを識別するIDの大きい方を、前記提案番号が大きいと判定する
ことを特徴とする請求項1に記載の分散データ管理システム。
The proposal number is a combination of the update number of the data and an ID for identifying the data indicating the priority order selected for the new master,
The processing unit, in the size comparison of the proposal number,
Compare the update numbers extracted from the proposal number, determine the larger update number, the proposal number is large,
The IDs for identifying the data are compared with each other when the update numbers are equal to each other, and a larger ID for identifying the data is determined to have a larger proposal number. Distributed data management system.
請求項1に記載の分散データ管理システムにおいて用いられるデータ管理装置であって、
前記スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる前記更新番号を変数とする提案番号を記憶する記憶手段と、
マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信する手段と、
前記立候補通知を新たに受信したとき、自身の記憶部を探索して、該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した前記立候補通知の提案番号との大小を比較して、前記新たに受信した前記立候補通知の提案番号が該自身の提案番号以上のとき、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送信したスレーブに返信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶し、前記立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、前記新たに受信した前記立候補通知の提案番号が前記最大の提案番号以上であれば、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送信したスレーブに返信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶する手段と、
受信した確認通知に含まれる提案番号ごとに受信した数をカウントする第1のカウント手段と、
前記分散データ管理システムに属するすべての前記データ管理装置の数と前記第1のカウント手段によってカウントされた提案番号ごとの受信数との比から、前記確認通知の受信数が過半数を超えたことを判定する第1の判定手段と、
前記第1の判定手段によって、前記確認通知の受信数が過半数を超えたと判定されたとき、自身の提案番号を含む自身がマスタになることを示す提案情報をすべての前記スレーブに送信する手段と、
受信した前記自身の提案番号を含む自身がマスタになることを示す情報に含まれる提案番号ごとに受信した数をカウントする第2のカウント手段と、
前記分散データ管理システムに属するすべての前記データ管理装置の数と前記第2のカウント手段によってカウントされた提案番号ごとの受信数との比から、いずれかの提案番号の前記提案情報の受信数が過半数を超えたことを判定する第2の判定手段と、
前記第2の判定手段によって、前記提案情報の受信数が過半数を超えたと判定されたとき、前記提案情報が確定したことを示す決定通知を前記他のスレーブに送信する手段と、
前記決定通知を受信し、自身の記憶部から、既に記憶されている前記立候補通知の提案番号を消去する手段
とを備えることを特徴とするデータ管理装置。
A data management apparatus used in the distributed data management system according to claim 1,
Storage means for storing an update number of data that increases each time the data managed by the slave is updated, and a proposal number that uses the update number that increases as the update number increases as a variable;
At the time of a master failure, a means for reading out its own update number from its own storage unit and sending a candidate notification including a proposal number with the update number as a variable to other slaves;
When newly receiving the candidacy notification, search for its own storage unit, if there is no suggestion number stored before receiving the candidacy notification, read its own update number from its own storage unit, Generates the proposal number of the candidate using the update number as a variable, compares the proposal number of the proposal with the proposal number of the newly received candidacy notification, and compares the newly received proposal number of the candidacy notification Is returned to the slave that sent the candidacy notification, and the newly received proposal number of the candidacy notification is sent to the slave that sent the candidacy notification If there is a proposal number stored before receiving the candidacy notification, the largest proposal number is extracted from the stored proposal numbers, and the newly received candidate is If the knowledge proposal number is equal to or greater than the maximum proposal number, a confirmation notification for the candidate notification including the proposal number of the candidate notification is returned to the slave that transmitted the candidate notification, and the newly received candidate notification Means for storing the proposal number in its own storage unit;
First counting means for counting the number received for each proposal number included in the received confirmation notification;
From the ratio between the number of all the data management devices belonging to the distributed data management system and the number of receptions for each proposal number counted by the first counting means, the number of confirmation notifications received exceeds a majority. First determining means for determining;
Means for transmitting to each of the slaves proposal information indicating that the first determination means includes itself as a master when it is determined that the number of confirmation notifications received exceeds a majority. ,
Second counting means for counting the number received for each proposal number included in the information indicating that the self including the received proposal number is the master;
From the ratio between the number of all the data management devices belonging to the distributed data management system and the number of receptions for each proposal number counted by the second counting means, the number of receptions of the proposal information of any proposal number is A second determination means for determining that the majority has been exceeded;
Means for transmitting a determination notification indicating that the proposal information has been confirmed to the other slave when the second determination means determines that the number of receptions of the proposal information exceeds a majority;
And a means for receiving the decision notification and erasing the stored proposal number of the candidacy notification from its own storage unit.
前記提案番号は、前記データの更新番号に、新しいマスタに選択される優先順位を示す前記データを識別するIDをさらに組み合わせたものであり、
前記提案番号の大小比較において、前記提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、前記提案番号が大きいと判定し、前記更新番号同士が等しい場合には、前記データを識別するID同士を比較し、前記データを識別するIDの大きい方を、前記提案番号が大きいと判定する手段
を備えることを特徴とする請求項3に記載のデータ管理装置。
The proposal number is a combination of the update number of the data and an ID for identifying the data indicating the priority order selected for the new master,
In the comparison of the proposal numbers, the update numbers extracted from the proposal numbers are compared with each other, and the larger update number is determined as the proposal number is large. 4. The data management apparatus according to claim 3, further comprising means for comparing IDs for identifying the data and determining that the larger ID for identifying the data has a larger proposal number.
3台以上のデータ管理装置がネットワークを介して相互に通信可能に接続され、前記データ管理装置の中の1台をマスタとし、他の前記データ管理装置をスレーブとして、マスタ障害時にスレーブの中から新しいマスタを選択する分散データ管理システムにおいて用いられるデータ管理方法であって、
前記スレーブは、処理部と、当該スレーブの管理するデータを更新するたびに大きくなるデータの更新番号およびその更新番号が大きくなるにしたがって大きくなる前記更新番号を変数とする提案番号を記憶する記憶部とを備え、
前記スレーブの処理部は、
マスタ障害時に、自身の記憶部から自身の更新番号を読出し、その更新番号を変数とする提案番号を含む立候補通知を他のスレーブに送信し、
前記他のスレーブの処理部は、
前記立候補通知を新たに受信したとき、自身の記憶部を探索して、
該立候補通知を受信する以前に記憶した提案番号が無い場合には、自身の記憶部から自身の更新番号を読み出して、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した前記立候補通知の提案番号との大小を比較して、前記新たに受信した前記立候補通知の提案番号が該自身の提案番号以上のとき、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送信したスレーブに返信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶し、
前記立候補通知を受信する以前に記憶した提案番号がある場合には、該記憶した提案番号中で最大の提案番号を抽出し、前記新たに受信した前記立候補通知の提案番号が前記最大の提案番号以上であれば、前記立候補通知の提案番号を含むその立候補通知に対する確認通知を、前記立候補通知を送信したスレーブに返信し、前記新たに受信した前記立候補通知の提案番号を自身の記憶部に記憶し、
前記立候補通知を送信したスレーブは、
前記分散データ管理システムに属するすべての前記データ管理装置中の過半数の前記スレーブから前記自身の提案番号を含む確認通知を受信したときに、自身の提案番号を含む自身がマスタになることを示す提案情報をすべての前記スレーブに送信し、
前記分散データ管理システムに属するすべての前記データ管理装置中の過半数の前記スレーブから前記提案情報に対する確認通知を受信した後、前記提案情報が確定したことを示す決定通知を前記他のスレーブに送信し、
前記他の前記スレーブは、前記決定通知を受信し、自身の記憶部から、既に記憶されている前記立候補通知の提案番号を消去する
ことを特徴とするデータ管理方法。
Three or more data management devices are communicably connected to each other via a network. One of the data management devices is used as a master, and the other data management device is used as a slave. A data management method used in a distributed data management system for selecting a new master,
The slave stores a processing unit and a data update number that increases each time the data managed by the slave is updated, and a storage unit that stores a proposal number with the update number increasing as the update number increases. And
The processing unit of the slave is
At the time of a master failure, read out its own update number from its own storage unit, send a candidate notification including a proposal number with the update number as a variable to other slaves,
The processing unit of the other slave is
When the candidate notification is newly received, search its own storage unit,
If there is no proposal number stored before receiving the candidacy notification, it reads its own update number from its own storage unit, generates its own proposal number with the update number as a variable, and Comparing the number of the newly received candidacy notification with the proposed number of the candidacy notification, and including the proposed number of the candidacy notification when the newly received proposal number of the candidacy notification is greater than or equal to its own proposal number A confirmation notification for the candidacy notification is returned to the slave that sent the candidacy notification, and the newly received proposal number of the candidacy notification is stored in its own storage unit,
If there is a proposal number stored before receiving the candidacy notification, the largest proposal number is extracted from the stored proposal numbers, and the newly received proposal number of the candidacy notification is the maximum proposal number. If it is above, the confirmation notification for the candidacy notification including the proposal number of the candidacy notification is returned to the slave that transmitted the candidacy notification, and the newly received proposal number of the candidacy notification is stored in its own storage unit And
The slave that sent the candidacy notification
A proposal indicating that itself including its own proposal number becomes a master when receiving a confirmation notification including its own proposal number from a majority of the slaves in all the data management devices belonging to the distributed data management system Send information to all the slaves,
After receiving a confirmation notification for the proposal information from a majority of the slaves in all the data management devices belonging to the distributed data management system, a decision notification indicating that the proposal information is confirmed is transmitted to the other slaves. ,
The other slave receives the determination notification and deletes the proposal number of the candidacy notification already stored from its own storage unit.
前記他のスレーブの処理部は、
前記立候補通知を新たに受信したとき、
自身の記憶部を探索して、自身の更新番号を読出し、該更新番号を変数とする自身の提案番号を生成し、該自身の提案番号と新たに受信した前記立候補通知の提案番号との大小を比較して、前記新たに受信した前記立候補通知の提案番号が該自身の提案番号以下であれば、自身の立候補通知を自身以外の前記スレーブに送信する
ことを特徴とする請求項5に記載のデータ管理方法。
The processing unit of the other slave is
When the candidate notification is newly received,
Searches its own storage unit, reads its own update number, generates its own proposal number with the update number as a variable, and determines the size of the own proposal number and the newly received proposal number of the candidacy notification 6. If the proposal number of the newly received candidacy notification is equal to or less than the own proposal number, the candidacy notification of its own is transmitted to the slaves other than itself. Data management method.
前記提案番号は、前記データの更新番号に、新しいマスタに選択される優先順位を示す前記データを識別するIDをさらに組み合わせたものであり、
前記処理部は、前記提案番号の大小比較において、
前記提案番号から取り出した更新番号同士を比較し、該更新番号の大きい方を、前記提案番号が大きいと判定し、
前記更新番号同士が等しい場合には、前記データを識別するID同士を比較し、前記データを識別するIDの大きい方を、前記提案番号が大きいと判定する
ことを特徴とする請求項5または請求項6に記載のデータ管理方法。
The proposal number is a combination of the update number of the data and an ID for identifying the data indicating the priority order selected for the new master,
The processing unit, in the size comparison of the proposal number,
Compare the update numbers extracted from the proposal number, determine the larger update number, the proposal number is large,
The IDs for identifying the data are compared with each other when the update numbers are equal to each other, and the larger ID for identifying the data is determined to have the larger proposal number. Item 7. The data management method according to item 6.
請求項5ないし請求項7のいずれか一項に記載のデータ管理方法を、コンピュータとしてのデータ管理装置に実行させるためのプログラム。   A program for causing a data management apparatus as a computer to execute the data management method according to any one of claims 5 to 7.
JP2009131309A 2009-05-29 2009-05-29 Distributed data management system, data management apparatus, data management method, and program Expired - Fee Related JP5395517B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009131309A JP5395517B2 (en) 2009-05-29 2009-05-29 Distributed data management system, data management apparatus, data management method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009131309A JP5395517B2 (en) 2009-05-29 2009-05-29 Distributed data management system, data management apparatus, data management method, and program

Publications (2)

Publication Number Publication Date
JP2010277467A true JP2010277467A (en) 2010-12-09
JP5395517B2 JP5395517B2 (en) 2014-01-22

Family

ID=43424346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009131309A Expired - Fee Related JP5395517B2 (en) 2009-05-29 2009-05-29 Distributed data management system, data management apparatus, data management method, and program

Country Status (1)

Country Link
JP (1) JP5395517B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025765A (en) * 2011-07-26 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> Master/slave system, control device, master/slave switching method and master/slave switching program
JP2013206072A (en) * 2012-03-28 2013-10-07 Nec Corp Data matching system, data matching method, and data matching program
JP2016151795A (en) * 2015-02-16 2016-08-22 日本電信電話株式会社 Database system and master/slave determination method thereof
KR101750601B1 (en) 2014-08-28 2017-06-27 네이버 주식회사 Cluster management method and data storage system for watching state and changing form of cluster having fault tolerance
JP2019110531A (en) * 2017-12-18 2019-07-04 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Scalable Crash Fault Tolerant Consensus Protocol with Efficient Message Aggregation
US10771279B2 (en) 2017-05-02 2020-09-08 Megachips Corporation Communication terminal device, information communication system, recording medium, and information communication method
US20230283663A1 (en) * 2020-08-03 2023-09-07 Hitachi Vantara Llc Randomization of heartbeat communications among multiple partition groups

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502957A (en) * 2001-09-06 2005-01-27 ビーイーエイ システムズ, インコーポレイテッド Exactly one-time cache framework
JP2005196763A (en) * 2003-12-30 2005-07-21 Microsoft Corp Simplified paxos
JP2006004434A (en) * 2004-06-18 2006-01-05 Microsoft Corp Efficient changing of replica set in distributed fault-tolerant computing system
JP2006155614A (en) * 2004-11-23 2006-06-15 Microsoft Corp GENERALIZED Paxos

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502957A (en) * 2001-09-06 2005-01-27 ビーイーエイ システムズ, インコーポレイテッド Exactly one-time cache framework
JP2005196763A (en) * 2003-12-30 2005-07-21 Microsoft Corp Simplified paxos
JP2006004434A (en) * 2004-06-18 2006-01-05 Microsoft Corp Efficient changing of replica set in distributed fault-tolerant computing system
JP2006155614A (en) * 2004-11-23 2006-06-15 Microsoft Corp GENERALIZED Paxos

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025765A (en) * 2011-07-26 2013-02-04 Nippon Telegr & Teleph Corp <Ntt> Master/slave system, control device, master/slave switching method and master/slave switching program
JP2013206072A (en) * 2012-03-28 2013-10-07 Nec Corp Data matching system, data matching method, and data matching program
KR101750601B1 (en) 2014-08-28 2017-06-27 네이버 주식회사 Cluster management method and data storage system for watching state and changing form of cluster having fault tolerance
JP2016151795A (en) * 2015-02-16 2016-08-22 日本電信電話株式会社 Database system and master/slave determination method thereof
US10771279B2 (en) 2017-05-02 2020-09-08 Megachips Corporation Communication terminal device, information communication system, recording medium, and information communication method
EP3399834B1 (en) * 2017-05-02 2021-02-24 MegaChips Corporation Communication terminal device, information communication system, recording medium, and information communication method
JP2019110531A (en) * 2017-12-18 2019-07-04 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Scalable Crash Fault Tolerant Consensus Protocol with Efficient Message Aggregation
US20230283663A1 (en) * 2020-08-03 2023-09-07 Hitachi Vantara Llc Randomization of heartbeat communications among multiple partition groups

Also Published As

Publication number Publication date
JP5395517B2 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
US10204114B2 (en) Replicating data across data centers
JP5395517B2 (en) Distributed data management system, data management apparatus, data management method, and program
US8914333B2 (en) Systems for storing files in a distributed environment
KR101484333B1 (en) Propagation of conflict knowledge
JP5092234B2 (en) Information processing apparatus, distributed synchronization information system, information synchronization method, and program
US8095495B2 (en) Exchange of syncronization data and metadata
EP2176777B1 (en) Processing write requests with server having global knowledge
KR20120072909A (en) Distribution storage system with content-based deduplication function and object distributive storing method thereof, and computer-readable recording medium
US11620087B2 (en) Implicit leader election in a distributed storage network
US11265182B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
JP5331050B2 (en) Data synchronization system, data synchronization method, information processing apparatus, information processing method, and program
JP3756349B2 (en) Database management apparatus and recording medium on which program is recorded
JP6586174B2 (en) Database system, transaction management node, method and program
JP5416490B2 (en) Distributed data management system, data management apparatus, data management method, and program
JP6459654B2 (en) Event-driven system, information processing apparatus, event-driven program, and event-driven method
JPH03157742A (en) File server device
JP6043687B2 (en) Server / client system
Brahneborg et al. Towards a more reliable store-and-forward protocol for mobile text messages
JPWO2016067370A1 (en) Information processing apparatus, method, and program
JPH11327989A (en) Data base management device and recording medium having recorded program thereof
RU2609089C2 (en) System and method of performing queue of requests for digital objects
CN116795544A (en) Hadoop resource sensing method and device, electronic equipment and storage medium
JP2013218635A (en) Replication execution device
JP2016062520A (en) Computer system

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110819

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110920

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131018

R150 Certificate of patent or registration of utility model

Ref document number: 5395517

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

LAPS Cancellation because of no payment of annual fees