JP2015035182A - Distributed database system - Google Patents

Distributed database system Download PDF

Info

Publication number
JP2015035182A
JP2015035182A JP2013166848A JP2013166848A JP2015035182A JP 2015035182 A JP2015035182 A JP 2015035182A JP 2013166848 A JP2013166848 A JP 2013166848A JP 2013166848 A JP2013166848 A JP 2013166848A JP 2015035182 A JP2015035182 A JP 2015035182A
Authority
JP
Japan
Prior art keywords
data
virtual node
management server
data management
key
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
JP2013166848A
Other languages
Japanese (ja)
Other versions
JP6025679B2 (en
Inventor
文彦 澤崎
Fumihiko Sawazaki
文彦 澤崎
近藤 悟
Satoru Kondo
悟 近藤
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 JP2013166848A priority Critical patent/JP6025679B2/en
Publication of JP2015035182A publication Critical patent/JP2015035182A/en
Application granted granted Critical
Publication of JP6025679B2 publication Critical patent/JP6025679B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To detect a data loss when a data management server configuring a cluster breaks down, and to specify the range of the hash value of the key of the lost data.SOLUTION: A lost data specification device 3 disposed in a distributed database system 1000 is configured to generate dummy data making a pair of each of data management servers in which data are stored, and to store the dummy data in each data management server via a distribution server 1. The lost data specification device 3 is configured to, when receiving the change notification of distributed hash information for managing the increase/decrease of a data management device, compare the distributed hash information before and after change, and to determine the increase/decrease of the data management server. Then, the lost data specification device 3 is configured to, when the data management server is deleted, transmit the deletion request of the dummy data via the distribution server 1 to the data management server, and to, when the registered dummy data are undeletable, detect the loss of data, and to specify the range of the key of the lost data on the basis of the distributed hash information before change.

Description

本発明は、複数のサーバが協調してデータ処理を行うクラスタ構成の分散データベースシステムに関する。   The present invention relates to a clustered distributed database system in which a plurality of servers cooperate to perform data processing.

クラウドコンピューティングのストレージには、多量のデータを保持し、効率的に処理する一方で、故障等が起きた場合でもデータの損失がないことが求められる。これに関し、フロントエンドとなるサーバと、複数のサーバで構成され、多量のデータをサーバ毎に分散して保持・管理するクラスタと、を備える分散データベースシステムが提案されている。   A cloud computing storage is required to retain a large amount of data and efficiently process it, but to have no data loss even when a failure or the like occurs. In this regard, a distributed database system has been proposed that includes a front-end server and a cluster that includes a plurality of servers and that stores and manages a large amount of data in a distributed manner for each server.

フロントエンドとなるサーバは、データの登録、削除、参照等の要求を受け付け、それらの要求を、データを保持・管理するサーバに振り分ける。データを保持・管理するサーバは、振り分けられた要求を処理する。
また、データを保持するサーバは、そのデータの複製(複製データ)を1つ以上生成し、サーバ間でその複製データを送受信することにより、複製データを生成したサーバ以外の他のサーバが複製データを保持する。これは、1つのサーバに故障等が起きた場合でも、複製データが存在することによりデータの欠損を避けるためである。
なお、以下において、フロントエンドとなるサーバを振り分けサーバ、クラスタを構成し、データを分散して保持するサーバそれぞれをデータ管理サーバと呼ぶ。
The front-end server accepts requests for data registration, deletion, reference, etc., and distributes these requests to the server that holds and manages the data. The server that holds and manages the data processes the distributed request.
In addition, the server that holds the data generates one or more copies (replicated data) of the data, and the server other than the server that generated the replicated data transmits and receives the replicated data between the servers. Hold. This is to avoid data loss due to the presence of duplicate data even when a failure or the like occurs in one server.
In the following, a server serving as a front end is referred to as a distribution server, and each server that constitutes a cluster and stores data in a distributed manner is referred to as a data management server.

データを分散して保持するために、振り分けサーバは、どのデータをどのデータ管理サーバに振り分ければよいかの組み合わせを管理し、データの登録、削除、参照等の要求を正しい振り分け先に転送する必要がある。また、データ管理サーバの故障等が起きた場合には、データ管理サーバのクラスタ構成が変化するため、どのデータをどのデータ管理サーバに振り分ければよいかの組合せを、構成の変化に応じて変更する必要がある。これらを実現するための技術として、コンシステントハッシュ法を用いた技術が知られている(例えば、特許文献1、非特許文献1参照)。   To distribute and hold data, the distribution server manages the combination of which data should be distributed to which data management server, and forwards requests for data registration, deletion, reference, etc. to the correct distribution destination There is a need. In addition, when a data management server failure occurs, the cluster configuration of the data management server changes, so the combination of which data should be assigned to which data management server is changed according to the change in configuration. There is a need to. As a technique for realizing these, a technique using a consistent hash method is known (for example, see Patent Document 1 and Non-Patent Document 1).

コンシステントハッシュ法では、振り分け先として仮想ノードの概念を導入する場合がある。仮想ノードは、振り分けアルゴリズムにおいて、1つのデータ管理サーバ(物理ノード)に対応付けて設定される論理的なデータ管理サーバであり、物理的なデータ管理サーバとは多対1の関係にある。この仮想ノードは、クラスタを構成する物理的なデータ管理サーバの負荷のばらつきを低減させるために導入される。
また、コンシステントハッシュ法において、データの登録、削除等の要求には、そのデータを振り分けるためのキー(そのデータに固有な識別子)となる情報が設定される。例えば、データの登録要求では、そのデータ登録要求に設定されたキーを所定のハッシュ関数にかけて、そのキーのハッシュ値を求める。そして、そのキーのハッシュ値と、分散ハッシュテーブルとにより、その要求の振り分け先となるデータ管理サーバ(仮想ノード)を求め、そのデータ管理サーバ(仮想ノード)に当該要求が転送され、登録処理が実行される。なお、以降の説明においては、データ管理サーバに仮想ノードが設定されているものとして説明する。
In the consistent hash method, the concept of a virtual node may be introduced as a distribution destination. The virtual node is a logical data management server set in association with one data management server (physical node) in the distribution algorithm, and has a many-to-one relationship with the physical data management server. This virtual node is introduced in order to reduce the variation in the load of the physical data management server constituting the cluster.
In the consistent hash method, information that becomes a key (identifier unique to the data) for distributing the data is set in a request for registration or deletion of the data. For example, in a data registration request, a key set in the data registration request is subjected to a predetermined hash function to obtain a hash value of the key. Then, the data management server (virtual node) to which the request is distributed is obtained from the hash value of the key and the distributed hash table, the request is transferred to the data management server (virtual node), and the registration process is performed. Executed. In the following description, it is assumed that a virtual node is set in the data management server.

図1は、コンシステントハッシュ法のアルゴリズムの説明するための図である。コンシステントハッシュ法では、ハッシュ関数の出力であるハッシュ値の集合を線で表し、図1(a)に示すように、その最大値と最小値とを結んでリング(コンシステントハッシュリング)として表現する。コンシステントハッシュリング上には、各仮想ノードの仮想ノードID(「A」,「B」,…,「Y」)に対応したハッシュ値(「a」,「b」,…,「y」)が配置される。なお、以下の説明および図において、例えば、仮想ノードIDが「A」の仮想ノードのことを仮想ノード「A」、仮想ノードIDが「B」の仮想ノードのことを仮想ノード「B」等と表現することがある。   FIG. 1 is a diagram for explaining an algorithm of the consistent hash method. In the consistent hash method, a set of hash values, which is an output of a hash function, is represented by a line, and the maximum value and the minimum value are connected and expressed as a ring (consistent hash ring) as shown in FIG. To do. On the consistent hash ring, hash values (“a”, “b”,..., “Y”) corresponding to the virtual node IDs (“A”, “B”,..., “Y”) of the virtual nodes. Is placed. In the following description and drawings, for example, a virtual node whose virtual node ID is “A” is a virtual node “A”, a virtual node whose virtual node ID is “B” is a virtual node “B”, and the like. May be expressed.

そして、ある仮想ノード(例えば、仮想ノード「B」)は、コンシステントハッシュリング上での自身のハッシュ値「b」から反時計回り方向に隣接する仮想ノード(仮想ノード「A」)のハッシュ値「a」の次のハッシュ値から、その仮想ノード(仮想ノード「B」)自身のハッシュ値「b」までのハッシュ値の範囲(a<仮想ノード「B」が担当するハッシュ値≦b)を、担当範囲とする。   Then, a certain virtual node (for example, virtual node “B”) has a hash value of a virtual node (virtual node “A”) adjacent in the counterclockwise direction from its own hash value “b” on the consistent hash ring. A range of hash values from the hash value next to “a” to the hash value “b” of the virtual node (virtual node “B”) itself (a <hash value ≦ b handled by the virtual node “B”) Scope of charge.

また、図1(b)は分散ハッシュテーブルであり、図1(a)に示したコンシステントハッシュリングをテーブルで表現したものである。分散ハッシュテーブルでは、仮想ノードのハッシュ値の順にレコードがソートされ、1行上のレコードの仮想ノードのハッシュ値の次の値から、自身の仮想ノードのハッシュ値までの範囲が、その仮想ノードが担当するハッシュ値の担当範囲となる。図1(b)では、例えば、仮想ノード「B」のレコードの1行上のレコードを参照し、そのレコードに示される仮想ノード「A」のハッシュ値「a」の次のハッシュ値から、その仮想ノード(仮想ノード「B」)自身のハッシュ値「b」までのハッシュ値の範囲(a<仮想ノード「B」が担当するハッシュ値≦b)が、仮想ノード「B」が担当するハッシュ値の範囲(担当範囲)となる。   FIG. 1B is a distributed hash table, which represents the consistent hash ring shown in FIG. In the distributed hash table, records are sorted in the order of the hash value of the virtual node, and the range from the next value of the virtual node hash value of the record on one line to the hash value of its own virtual node is This is the scope of the assigned hash value. In FIG. 1B, for example, a record on one line of the record of the virtual node “B” is referred to, and from the hash value “a” next to the virtual node “A” indicated in the record, The range of hash values up to the hash value “b” of the virtual node (virtual node “B”) itself (a <hash value that the virtual node “B” is responsible ≦ b) is the hash value that the virtual node “B” is responsible for It becomes the range (charge range).

つまり、この図1(a)のコンシステントハッシュリングと、図1(b)の分散ハッシュテーブルは、共に、各仮想ノードの担当範囲(ハッシュ値の範囲)を表している。
コンシステントハッシュ法では、登録要求等のキーのハッシュ値をハッシュ関数により求め、そのハッシュ値が、どの仮想ノードが担当するハッシュ値の範囲(担当範囲)に含まれるかにより、その登録要求等の振り分け先となる仮想ノードを決定する。
That is, the consistent hash ring in FIG. 1A and the distributed hash table in FIG. 1B both represent the assigned range (hash value range) of each virtual node.
In the consistent hash method, a hash value of a key for a registration request or the like is obtained by a hash function, and depending on which virtual node is in charge of the range of hash values (the range in charge), the registration request or the like A virtual node to be a distribution destination is determined.

特開2013−025497号公報JP 2013-025497 A

D. Karger, et al.,“Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”、in Proceedings of the 29th ACM Symposium on Theory of Computing (STOC'97)、May 1997、pp.654-663、[online]、[平成25年7月27日検索]、インターネット<URL:http://thor.cs.ucsb.edu/~ravenben/papers/coreos/KLL+97.pdf>D. Karger, et al., “Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”, in Proceedings of the 29th ACM Symposium on Theory of Computing (STOC'97), May 1997, pp .654-663, [online], [Search July 27, 2013], Internet <URL: http: //thor.cs.ucsb.edu/~ravenben/papers/coreos/KLL+97.pdf>

コンシステントハッシュ法を用いた分散データベースシステムでは、複製の数+1(冗長数)以上のデータ管理サーバが一度に故障した場合に、特定の仮想ノードの担当範囲のデータが全て欠損する可能性がある。   In a distributed database system using the consistent hash method, if the number of replicas + 1 (redundancy number) or more of data management servers fails at a time, all data in the assigned range of a specific virtual node may be lost. .

図2は、コンシステントハッシュ法における、データ管理サーバの原本データと複製データの保存手法を説明するための図である。
複製の数がnの場合、仮想ノードに対応するデータ管理サーバは、該当仮想ノードのコンシステントハッシュリング上での担当範囲のデータである原本データと、コンシステントハッシュリングの該当仮想ノードから反時計回り方向に連続するn個の仮想ノードの複製データとを保存する。例えば、複製の数が「2」(n=2)の場合、図2に示すように、仮想ノード「C」(仮想ノードID:「C」)に対応するデータ管理サーバは、仮想ノード「C」の原本データと、仮想ノード「A」,「B」それぞれの原本データを複製した複製データとが保存される。言い換えると、ある仮想ノードの複製データは、その仮想ノードから時計回り方向に連続するn個の仮想ノードの、対応するデータ管理サーバにおいて保存される。図2においては、仮想ノード「A」の複製データは、仮想ノード「B」,「C」に対応するデータ管理サーバにおいて保存される。
FIG. 2 is a diagram for explaining a method of storing original data and duplicate data of the data management server in the consistent hash method.
When the number of replicas is n, the data management server corresponding to the virtual node uses the original data that is the data in the range of responsibility on the consistent hash ring of the virtual node and the counter clock from the virtual node of the consistent hash ring. The replica data of n virtual nodes continuous in the rotation direction are stored. For example, when the number of replicas is “2” (n = 2), as shown in FIG. 2, the data management server corresponding to the virtual node “C” (virtual node ID: “C”) is the virtual node “C”. ”And duplicate data obtained by copying the original data of the virtual nodes“ A ”and“ B ”are stored. In other words, the replicated data of a certain virtual node is stored in the corresponding data management server of n virtual nodes that continue in the clockwise direction from the virtual node. In FIG. 2, the replicated data of the virtual node “A” is stored in the data management server corresponding to the virtual nodes “B” and “C”.

以上を踏まえると、コンシステントハッシュリングに沿って、複製の数n+1個(冗長数)以上の連続する仮想ノードについて、これらの仮想ノードに対応するデータ管理サーバが一度に故障等すると、欠損データが発生する。なお、本実施形態における欠損データとは、クラスタを構成する全てのデータ管理サーバにおいて、原本データ、複製データのいずれもが欠損したデータを意味する。例えば、複製の数が「2」の場合、仮想ノード「A」,「B」,「C」に対応するデータ管理サーバが一度に故障等すると、仮想ノード「A」のコンシステントハッシュリング上での担当範囲のデータが欠損データとなる。   Based on the above, along the consistent hash ring, if the data management server corresponding to these virtual nodes has a failure, etc. at once for the continuous virtual nodes of the number of replicas n + 1 (redundancy number) or more, the missing data Occur. Note that the missing data in this embodiment means data in which both original data and duplicated data are missing in all data management servers constituting the cluster. For example, when the number of replicas is “2” and the data management server corresponding to the virtual nodes “A”, “B”, and “C” fails at a time, the virtual node “A” has a consistent hash ring. The data in the area of charge is missing data.

データが欠損した場合、バックアップデータ等により、故障した仮想ノードの担当範囲に含まれる欠損した各データをリストアする必要がある。しかし、仮想ノードは、対応するデータ管理サーバが故障すると、分散ハッシュテーブルやコンシステントハッシュリングから消滅してしまうため、どの仮想ノードのデータが欠損したかを特定するのは難しい。   When data is lost, it is necessary to restore each piece of missing data included in the assigned range of the failed virtual node using backup data or the like. However, since the virtual node disappears from the distributed hash table or the consistent hash ring when the corresponding data management server fails, it is difficult to specify which virtual node data is missing.

図3は、データ管理サーバが故障した場合の仮想ノードの担当範囲の変更を説明するための図である。
データ管理サーバが故障すると、対応する仮想ノードは消滅する。具体的には、分散ハッシュテーブルから該当仮想ノードのレコードが削除される。その結果、該当仮想ノードの担当範囲は、分散ハッシュテーブルにおいて次のレコードとなる仮想ノードに引き継がれる。図3(a)に示す例では、仮想ノード「B」に対応するデータ管理サーバが故障したため、該当する仮想ノード「B」のレコードが削除されることを示している。その結果、仮想ノード「B」の担当範囲は、次のレコードの仮想ノード「C」に引き継がれる。
コンシステントハッシュリングでは、仮想ノードが消滅すると、該当仮想ノードのハッシュ値の点がコンシステントハッシュリング上から削除される。よって、該当仮想ノードの担当範囲は、時計回り方向に隣接する仮想ノードの担当範囲にマージされる。図3(b)に示す例では、故障した仮想ノード「B」のハッシュ値「b」が削除され、ハッシュ値「a」の次の値からハッシュ値「c」までの範囲が、消滅した仮想ノード「B」に時計回り方向に隣接する仮想ノード「C」の担当範囲になることを示している。
FIG. 3 is a diagram for explaining the change of the assigned range of the virtual node when the data management server fails.
When the data management server fails, the corresponding virtual node disappears. Specifically, the record of the corresponding virtual node is deleted from the distributed hash table. As a result, the assigned range of the corresponding virtual node is taken over by the virtual node that becomes the next record in the distributed hash table. The example illustrated in FIG. 3A indicates that the record of the corresponding virtual node “B” is deleted because the data management server corresponding to the virtual node “B” has failed. As a result, the assigned range of the virtual node “B” is taken over by the virtual node “C” of the next record.
In the consistent hash ring, when the virtual node disappears, the hash value point of the virtual node is deleted from the consistent hash ring. Therefore, the assigned range of the virtual node is merged with the assigned range of the virtual node adjacent in the clockwise direction. In the example illustrated in FIG. 3B, the hash value “b” of the failed virtual node “B” is deleted, and the range from the next value after the hash value “a” to the hash value “c” disappears. This indicates that the assigned range of the virtual node “C” adjacent to the node “B” in the clockwise direction is included.

このように、データが欠損した場合の仮想ノードの担当範囲は、他の仮想ノードの担当範囲の一部となり、故障時の分散ハッシュテーブルは変更されてしまう。そのため、故障した後の情報から欠損したデータの範囲を求めることは難しい。さらに、複数台が故障等した状況では、故障順なども関係するため、欠損したデータの範囲を求めるのはさらに困難となる。したがって、従来技術では、欠損したデータのキーの範囲を特定することができないため、データ管理サーバのクラスタの全データとバックアップデータとの突合せ確認を行い、欠損したデータを特定してリストアを行っていた。よって、データが多量な場合には、復旧までに多くの時間を要するという問題があった。   As described above, the assigned range of the virtual node when data is lost becomes a part of the assigned range of other virtual nodes, and the distributed hash table at the time of failure is changed. For this reason, it is difficult to obtain the range of missing data from the information after the failure. Further, in a situation where a plurality of units are out of order, the order of failure is also involved, so it is more difficult to determine the range of missing data. Therefore, with the conventional technology, it is impossible to specify the key range of the missing data, so the data management server's cluster data is checked against the backup data, and the missing data is identified and restored. It was. Therefore, when there is a large amount of data, there is a problem that it takes a long time to recover.

このような背景に鑑みて本発明がなされたのであり、本発明は、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる分散データベースシステムを提供することを課題とする。   The present invention has been made in view of such a background, and in the present invention, when a data management server constituting a cluster fails, a data loss is detected, and a range of hash values of keys of the lost data It is an object of the present invention to provide a distributed database system that can specify a database.

前記した課題を解決するため、請求項1に記載の発明は、クライアント装置から受信した要求信号を、複数のデータ管理サーバに振り分ける振り分けサーバと、前記振り分けサーバから受信した要求信号に基づき、自身が記憶するデータについて処理を実行する複数の前記データ管理サーバと、前記データ管理サーバに記憶されたデータの欠損を検出する欠損データ特定装置と、を備える分散データベースシステムであって、前記振り分けサーバが、コンシステントハッシュリング上に、前記データ管理サーバに固有な識別子を所定のハッシュ関数にかけて算出したハッシュ値を昇順に配置すると共に、受信した前記要求信号に付されるデータに固有なキーを前記所定のハッシュ関数にかけて算出したハッシュ値を配置することにより、前記受信した要求信号の振り分け先となる前記データ管理サーバを決定する、振り分け手法を採用すると共に、前記データ管理サーバそれぞれが、自身に振り分けられた前記要求信号に対応するデータを原本データとして記憶しておき、前記コンシステントハッシュリング上において隣接する所定の複製数の他のデータ管理サーバに対し、前記原本データの複製データを生成して送信することにより、当該複製データを他のデータ管理サーバに記憶させる冗長化手法を採用しており、前記振り分けサーバが、前記コンシステントハッシュリング上において前記データ管理サーバそれぞれが振り分け先となる担当範囲を示す、前記データのキーのハッシュ値の範囲を格納する分散ハッシュ情報が記憶される記憶部と、受信した前記要求信号に付される前記キーのハッシュ値を算出し、前記分散ハッシュ情報に基づき決定した振り分け先の前記データ管理サーバに当該要求信号を転送する振り分け処理部と、複数の前記データ管理サーバの死活を監視し、前記死活状態に変化があると前記分散ハッシュ情報の前記担当範囲を変更する死活監視部と、変更された分散ハッシュ情報を含む分散ハッシュ情報変更通知信号を前記欠損データ特定装置に送信する変更通知部と、を備え、前記欠損データ特定装置が、前記受信した分散ハッシュ情報変更通知信号に含まれる分散ハッシュ情報を、新世代の分散ハッシュ情報とし、当該受信以前に受信していた分散ハッシュ情報を、旧世代の分散ハッシュ情報として記憶する記憶部と、前記新世代の分散ハッシュ情報と前記旧世代の分散ハッシュ情報を比較し、前記データ管理サーバの増減を判定する増減検出部と、前記判定の結果、前記データ管理サーバが増加していた場合、または、前記旧世代の分散ハッシュ情報が記憶されていない場合に、前記データ管理サーバそれぞれに対応付けてダミーデータを生成し、前記生成したダミーデータを含むダミーデータ登録要求信号を、前記振り分けサーバを介して、前記ダミーデータの対になる前記データ管理サーバに送信することにより前記ダミーデータを登録させるダミーデータ登録部と、前記判定の結果、前記データ管理サーバが減少していた場合、前記減少したデータ管理サーバに対応付けられたダミーデータの削除を要求するダミーデータ削除要求信号を、前記振り分けサーバを介して、前記減少したデータ管理サーバに送信し、前記減少したデータ管理サーバに対応付けられたダミーデータを削除できないことにより、データの欠損を検出するダミーデータ削除部と、当該減少したデータ管理サーバの前記コンシステントハッシュリング上での担当範囲で示される、前記データのキーのハッシュ値の範囲を、前記旧世代の分散ハッシュ情報に基づき抽出し、前記原本データおよび前記所定の複製数の複製データが失われた欠損データのキーの範囲として特定する警報通知部と、を備えることを特徴とする分散データベースシステムとした。   In order to solve the above-described problem, the invention according to claim 1 is based on a distribution server that distributes a request signal received from a client device to a plurality of data management servers and a request signal received from the distribution server. A distributed database system comprising: a plurality of the data management servers that execute processing on stored data; and a missing data specifying device that detects missing data stored in the data management server, wherein the distribution server includes: On the consistent hash ring, a hash value calculated by applying an identifier unique to the data management server to a predetermined hash function is arranged in ascending order, and a key unique to the data attached to the received request signal is assigned to the predetermined hash function. By placing the hash value calculated over the hash function, In addition to adopting a distribution method to determine the data management server to which the received request signal is distributed, each of the data management servers stores data corresponding to the request signal distributed to itself as original data The replica data of the original data is generated and transmitted to another data management server having a predetermined number of replicas adjacent on the consistent hash ring, and the replicated data is stored in another data management server. A distribution method in which the distribution server stores a range of hash values of the key of the data indicating the assigned range to which each of the data management servers is distributed on the consistent hash ring. A storage unit in which hash information is stored and attached to the received request signal The hash value of the key is calculated, the distribution processing unit that transfers the request signal to the data management server that is the distribution destination determined based on the distributed hash information, and the life and death of the plurality of data management servers are monitored, and the life and death An alive monitoring unit that changes the assigned range of the distributed hash information when there is a change, a change notification unit that transmits a distributed hash information change notification signal including the changed distributed hash information to the missing data specifying device, And the missing data specifying device uses the distributed hash information included in the received distributed hash information change notification signal as the new generation distributed hash information, and the distributed hash information received before the reception is the old generation. Compare the new generation of distributed hash information with the old generation of distributed hash information The increase / decrease detection unit for determining the increase / decrease of the data management server, and if the data management server has increased as a result of the determination, or the old generation distributed hash information is not stored, Dummy data is generated in association with each data management server, and a dummy data registration request signal including the generated dummy data is transmitted to the data management server paired with the dummy data via the distribution server. And dummy data deletion requesting deletion of dummy data associated with the decreased data management server when the data management server has decreased as a result of the determination. A request signal is transmitted to the reduced data management server via the distribution server, and the decrease By not being able to delete the dummy data associated with the data management server, the dummy data deletion unit that detects the loss of data, and the assigned range on the consistent hash ring of the reduced data management server, Alert notification that extracts the range of the hash value of the key of the data based on the old-generation distributed hash information and identifies the range of the key of the missing data in which the original data and the predetermined number of copies of the duplicated data are lost A distributed database system.

このようにすることで、クラスタを構成する複数のデータ管理サーバが故障等した場合に、原本データと所定の複製数の複製データが失われたことによる、データの欠損を検出することができる。また、損失データ特定装置が、旧世代の分散ハッシュ情報を記憶しておくことにより、減少したデータ管理装置の担当範囲に基づき、欠損したデータのキーのハッシュ値の範囲を特定することができる。   In this way, when a plurality of data management servers constituting the cluster fail, it is possible to detect data loss due to loss of original data and a predetermined number of replicas. In addition, since the lost data specifying device stores the old generation of distributed hash information, the hash value range of the missing data key can be specified based on the reduced range of the data management device.

請求項2に記載の発明は、前記欠損データ特定装置が、ランダムにキーを生成し、当該キーを前記所定のハッシュ関数にかけて算出したハッシュ値が前記新世代の分散ハッシュ情報に示される前記データ管理サーバの中から抽出したデータ管理サーバの振り分け先となる担当範囲に含まれるまで、当該キーの生成と、当該キーのハッシュ値の算出を繰り返し、当該キーが、前記抽出したデータ管理サーバの振り分け先となる担当範囲に含まれる場合に、当該キーを、前記抽出したデータ管理サーバに対応付けた前記ダミーデータのキーとして決定するキー生成部を、さらに備えることを特徴とする請求項1に記載の分散データベースシステムとした。   The invention according to claim 2 is the data management in which the missing data specifying device randomly generates a key, and a hash value calculated by applying the key to the predetermined hash function is indicated in the new generation distributed hash information. The generation of the key and the calculation of the hash value of the key are repeated until the key is included in the assigned range of the data management server extracted from the server, and the key is the distribution destination of the extracted data management server The key generation part which determines the said key as a key of the said dummy data matched with the said extracted data management server when it is contained in the charge range used as described in Claim 1 further characterized by the above-mentioned. A distributed database system was adopted.

このようにすることで、欠損データ特定装置は、データ管理サーバのコンシステントハッシュリング上での担当範囲に含まれるキーを、そのデータ管理サーバに対応するダミーデータのキーとすることができる。よって、振り分けサーバは、ダミーデータに付されたキーを用いて振り分け処理を実行することにより、ダミーデータを、対応するデータ管理サーバに確実に登録させることができる。   By doing in this way, the missing data identification device can use the key included in the assigned range on the consistent hash ring of the data management server as the key of the dummy data corresponding to the data management server. Therefore, the distribution server can securely register the dummy data in the corresponding data management server by executing the distribution process using the key attached to the dummy data.

本発明によれば、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる分散データベースシステムを提供する。   According to the present invention, there is provided a distributed database system capable of detecting a missing data and specifying a range of hash values of keys of the missing data when a data management server constituting the cluster fails.

コンシステントハッシュ法のアルゴリズムの説明するための図である。It is a figure for demonstrating the algorithm of a consistent hash method. コンシステントハッシュ法における、データ管理サーバの原本データと複製データの保存手法を説明するための図である。It is a figure for demonstrating the preservation | save method of the original data and replication data of a data management server in a consistent hash method. データ管理サーバが故障した場合の仮想ノードの担当範囲の変更を説明するための図である。It is a figure for demonstrating the change of the charge range of a virtual node when a data management server fails. 本実施形態に係る分散データベースシステムの全体構成と各装置の機能ブロックを説明するための図である。It is a figure for demonstrating the whole structure of the distributed database system which concerns on this embodiment, and the functional block of each apparatus. 本実施形態に係る分散ハッシュテーブルのデータ構成を示す図である。It is a figure which shows the data structure of the distributed hash table which concerns on this embodiment. 本実施形態に係るダミーデータ登録要求信号のデータ構成を示す図である。It is a figure which shows the data structure of the dummy data registration request signal which concerns on this embodiment. 本実施形態に係るダミーデータ削除要求信号のデータ構成を示す図である。It is a figure which shows the data structure of the dummy data deletion request signal which concerns on this embodiment. 本実施形態に係る応答信号のデータ構成を示す図である。It is a figure which shows the data structure of the response signal which concerns on this embodiment. 本実施形態に係るダミーデータキーテーブルのデータ構成を示す図である。It is a figure which shows the data structure of the dummy data key table which concerns on this embodiment. 本実施形態に係るダミーデータのキー生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the key generation process of the dummy data which concerns on this embodiment. クラスタのセットアップ時における、全ての仮想ノードに対するダミーデータ登録処理を示すシーケンス図である。It is a sequence diagram which shows the dummy data registration process with respect to all the virtual nodes at the time of cluster setup. 仮想ノードの追加時における、既存の仮想ノードの担当範囲の分割を説明するための図である。It is a figure for demonstrating the division | segmentation of the charge range of the existing virtual node at the time of addition of a virtual node. 仮想ノードの追加時における、分散ハッシュテーブルの変更を説明するための図である。It is a figure for demonstrating the change of a distributed hash table at the time of the addition of a virtual node. 仮想ノードの追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the dummy data registration process at the time of addition of a virtual node. 仮想ノードの追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the dummy data registration process at the time of addition of a virtual node. 仮想ノードの消滅時におけるダミーデータ削除処理を説明するためのシーケンス図である。It is a sequence diagram for demonstrating the dummy data deletion process at the time of extinction of a virtual node. 仮想ノードの消滅時におけるデータ欠損の検出と警報情報の出力処理とを説明するためのシーケンス図である。It is a sequence diagram for explaining detection of data loss and output processing of alarm information when a virtual node disappears.

次に、本発明を実施するための形態(以下、「本実施形態」という)における分散データベースシステム1000等について説明する。   Next, a distributed database system 1000 and the like in a mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described.

<システム構成と処理概要>
図4は、本実施形態に係る分散データベースシステム1000の全体構成と各装置の機能ブロックを説明するための図である。
図4に示すように、分散データベースシステム1000は、複数のクライアント装置5に接続される振り分けサーバ1と、クラスタを構成する複数のデータ管理サーバ(ここでは、「仮想ノード2」とする。)と、警報監視装置4等に接続される欠損データ特定装置3と、を含んで構成される。
<System configuration and processing overview>
FIG. 4 is a diagram for explaining the overall configuration of the distributed database system 1000 according to the present embodiment and the functional blocks of each device.
As shown in FIG. 4, the distributed database system 1000 includes a distribution server 1 connected to a plurality of client devices 5, and a plurality of data management servers (here, “virtual node 2”) constituting a cluster. And the missing data specifying device 3 connected to the alarm monitoring device 4 and the like.

振り分けサーバ1は、各クライアント装置5からの要求信号を受信し、受信したその要求信号の振り分け先となる仮想ノード2を、コンシステントハッシュ法に基づき決定し、その決定した振り分け先の仮想ノード2に対して、要求信号を送信する。
また、振り分けサーバ1は、欠損データ特定装置3と接続され、その欠損データ特定装置3から、ダミーデータ(詳細は後記)の登録を要求するダミーデータ登録要求信号や、ダミーデータの削除を要求するダミーデータ削除要求信号等を受信する。そして、振り分けサーバ1は、クライアント装置5から受信した要求信号に対する振り分け手法と同じ手法、つまり、コンシステントハッシュ法を適用し同じハッシュ関数に基づいて振り分け先となる仮想ノード2を決定し、それらのダミーデータに関する要求信号を送信する。
さらに、振り分けサーバ1は、仮想ノード2から、要求情報に対する処理結果である応答情報を受信して、クライアント装置5や欠損データ特定装置3に向けて送信する。
また、振り分けサーバ1は、仮想ノード2(データ管理サーバ)の死活監視を行っており、クラスタ内のデータ管理サーバの増設(仮想ノード2の追加)や、データ管理サーバの障害発生等により仮想ノード2が消滅した場合に、振り分け先となる仮想ノード2(データ管理サーバ)を管理する分散ハッシュテーブル(分散ハッシュ情報)100を変更(レコードの追加や削除)する。そして、振り分けサーバ1は、分散ハッシュテーブル100の変更内容を含む分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)を欠損データ特定装置3に送信する。
The distribution server 1 receives the request signal from each client device 5, determines the virtual node 2 to which the received request signal is distributed based on the consistent hash method, and determines the determined virtual node 2 of the distribution destination In response to this, a request signal is transmitted.
In addition, the distribution server 1 is connected to the missing data specifying device 3, and requests the dummy data registration request signal for requesting registration of dummy data (details will be described later) and the deletion of the dummy data from the missing data specifying device 3. Receives a dummy data deletion request signal or the like. Then, the distribution server 1 determines the virtual node 2 that is the distribution destination based on the same method as the distribution method for the request signal received from the client device 5, that is, the consistent hash method, A request signal for dummy data is transmitted.
Further, the distribution server 1 receives response information, which is a processing result for the request information, from the virtual node 2 and transmits the response information to the client device 5 and the missing data specifying device 3.
In addition, the distribution server 1 performs alive monitoring of the virtual node 2 (data management server), and the virtual node 2 is added due to an increase in the number of data management servers in the cluster (addition of the virtual node 2) or a failure of the data management server. When 2 disappears, the distributed hash table (distributed hash information) 100 that manages the virtual node 2 (data management server) that is the distribution destination is changed (addition or deletion of records). Then, the distribution server 1 transmits a distributed hash table change notification signal (distributed hash information change notification signal) including the change contents of the distributed hash table 100 to the missing data specifying device 3.

仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバである。本実施形態においては、図4に示すように、仮想ノードIDが「A」の仮想ノード2を、仮想ノード「A」と表し、仮想ノードIDが「B」の仮想ノード2を、仮想ノード「B」等のように表して説明する。
各仮想ノード2は、振り分けサーバ1により振り分け先として決定されたデータである原本データと、他の仮想ノード2が原本データの保存先となっている複製データとを記憶する。なお、複製データは、前記したコンシステントハッシュリングにおいて、原本データを記憶する仮想ノード2から、時計回りに複製の数分の仮想ノード2に記憶される。また、仮想ノード2は、欠損データ特定装置3が生成したダミーデータを、通常のデータ(「原本データ」「複製データ」)と同様に、自身の担当範囲に含まれるダミーデータをダミーデータ(原本)として記憶し、他の仮想ノード2の担当範囲に含まれるダミーデータをダミーデータ(複製)として記憶する。
The virtual node 2 is a logical data management server set on the data management server (physical node). In the present embodiment, as shown in FIG. 4, the virtual node 2 whose virtual node ID is “A” is represented as a virtual node “A”, and the virtual node 2 whose virtual node ID is “B” is represented as a virtual node “A”. B ”etc.
Each virtual node 2 stores original data that is data determined as a distribution destination by the distribution server 1 and duplicate data in which the other virtual node 2 is the storage destination of the original data. In the above-described consistent hash ring, the duplicate data is stored in the virtual nodes 2 corresponding to the number of replicas clockwise from the virtual node 2 that stores the original data. In addition, the virtual node 2 uses the dummy data generated by the missing data identification device 3 as dummy data (original data) in the same area as the normal data (“original data” and “replicated data”). ) And the dummy data included in the assigned range of the other virtual node 2 is stored as dummy data (replication).

欠損データ特定装置3は、振り分けサーバ1および警報監視装置4に接続される。
欠損データ特定装置3は、仮想ノード2毎にダミーデータを生成する。ダミーデータとは、仮想ノード2と対になるデータであり、つまり、コンシステントハッシュリングにおいてその仮想ノード2の担当範囲に含まれるデータを意味する。このダミーデータは、クライアント装置5へのサービス提供等のために用いられるものではなく、欠損データを検出する目的のために各仮想ノード2に記憶しておくデータである。そして、欠損データ特定装置3は、振り分けサーバ1を介して、各仮想ノード2に、そのダミーデータ(原本)とダミーデータ(複製)とを記憶させておく。
また、欠損データ特定装置3は、振り分けサーバ1から分散ハッシュテーブル変更通知信号を受信すると、受信した新たな(新世代の)分散ハッシュテーブル(分散ハッシュ情報)100aと、自身の記憶部32に記憶している(旧世代の)分散ハッシュテーブル(分散ハッシュ情報)100bと、を比較することにより、仮想ノード2の追加や消滅を検出する。欠損データ特定装置3は、仮想ノード2の消滅を検出した場合に、消滅した仮想ノード2と対になるダミーデータの削除要求(ダミーデータ削除要求信号)を振り分けサーバ1に送信し、そのダミーデータが削除できないことにより、該当する仮想ノード2の担当範囲のデータが欠損したことを検出する。そして、そのダミーデータと対になる仮想ノード2の担当範囲を旧世代の分散ハッシュテーブル100bを参照することにより特定する。さらに、欠損データ特定装置3は、欠損データの発生とその欠損データのキーの範囲(仮想ノードの担当範囲)とを含む警報情報(データ欠損検出信号)を警報監視装置4に送信する。
The missing data specifying device 3 is connected to the distribution server 1 and the alarm monitoring device 4.
The missing data specifying device 3 generates dummy data for each virtual node 2. The dummy data is data that is paired with the virtual node 2, that is, data included in the assigned range of the virtual node 2 in the consistent hash ring. This dummy data is not used for providing services to the client device 5 but is data stored in each virtual node 2 for the purpose of detecting missing data. The missing data specifying device 3 stores the dummy data (original) and dummy data (replicated) in each virtual node 2 via the distribution server 1.
Further, upon receiving the distributed hash table change notification signal from the distribution server 1, the missing data specifying device 3 stores the received new (new generation) distributed hash table (distributed hash information) 100 a and its own storage unit 32. The addition or disappearance of the virtual node 2 is detected by comparing the distributed hash table (distributed hash information) 100b. When the missing data specifying device 3 detects the disappearance of the virtual node 2, it transmits a dummy data deletion request (dummy data deletion request signal) paired with the disappeared virtual node 2 to the distribution server 1, and the dummy data , It is detected that the data in the assigned range of the corresponding virtual node 2 is missing. Then, the assigned range of the virtual node 2 paired with the dummy data is specified by referring to the old-generation distributed hash table 100b. Furthermore, the missing data specifying device 3 transmits alarm information (data missing detection signal) including the occurrence of missing data and the key range of the missing data (the assigned range of the virtual node) to the alarm monitoring device 4.

このように、本実施形態に係る分散データベースシステム1000は、予め仮想ノード2と対になるダミーデータを、そのダミーデータ(原本)を記憶する仮想ノード2と、ダミーデータ(複製)を記憶する仮想ノード2とに登録しておき、登録したダミーデータが削除できないことを検出することにより、当該仮想ノード2のデータが欠損したことを検出する。振り分けサーバ1は、また、そのダミーデータと対になる仮想ノード2の担当範囲を、旧世代の分散ハッシュテーブル100bを参照することにより、欠損したデータのキーの範囲を特定することができる。
よって、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる。
なお、ハッシュ値の範囲に基づき、バックアップ(欠損したデータを保持するクライアント装置やデータ管理サーバと接続されたバックアップ装置等)から欠損したデータを抽出することができるため、抽出したデータを振り分けサーバ1経由でデータ管理サーバ2に投入することにより、データをリストアすることができる。
As described above, the distributed database system 1000 according to the present embodiment has dummy data paired with the virtual node 2 in advance, the virtual node 2 that stores the dummy data (original), and the virtual data that stores the dummy data (replica). By registering with the node 2 and detecting that the registered dummy data cannot be deleted, it is detected that the data of the virtual node 2 has been lost. The distribution server 1 can also specify the key range of the missing data by referring to the old-generation distributed hash table 100b for the assigned range of the virtual node 2 paired with the dummy data.
Therefore, when the data management server constituting the cluster fails, it is possible to detect data loss and specify the range of the hash value of the key of the lost data.
Since the missing data can be extracted from the backup (a client device holding the missing data, a backup device connected to the data management server, etc.) based on the range of the hash value, the extracted data is assigned to the distribution server 1. The data can be restored by inputting the data to the data management server 2 via the network.

<各装置の構成>
以下、本実施形態に係る分散データベースシステム1000を構成する各装置の構成例について、図4を参照して、具体的に説明する。
<Configuration of each device>
Hereinafter, a configuration example of each device configuring the distributed database system 1000 according to the present embodiment will be specifically described with reference to FIG.

≪振り分けサーバ≫
振り分けサーバ1は、各クライアント装置5から受信した要求信号や、欠損データ特定装置3から受信した、ダミーデータ登録要求信号およびダミーデータ削除要求信号等の、振り分け先となる仮想ノード2(データ管理サーバ)を、コンシステントハッシュ法に基づき決定し、その決定した仮想ノード2から、要求信号等に対する処理結果である応答信号を受信し、要求信号等を送信してきたクライアント装置5や欠損データ特定装置3に送信する。
さらに、振り分けサーバ1は、クラスタを構成する各仮想ノード2(データ管理サーバ)の追加(増設)や消滅(減設)を監視しており、クラスタの構成に変化があった場合には、自身の記憶部(図示省略)に記憶した分散ハッシュテーブル100を変更する。そして、振り分けサーバ1は、その分散ハッシュテーブル100の変更情報を、各仮想ノード2(データ管理サーバ)に送信すると共に、欠損データ特定装置3に対しても送信する。
≪Distribution server≫
The distribution server 1 is a virtual node 2 (data management server) serving as a distribution destination such as a request signal received from each client device 5 or a dummy data registration request signal and a dummy data deletion request signal received from the missing data specifying device 3. ) Is determined based on the consistent hash method, a response signal that is a processing result for the request signal or the like is received from the determined virtual node 2, and the client device 5 or the missing data specifying device 3 that has transmitted the request signal or the like. Send to.
Furthermore, the distribution server 1 monitors the addition (extension) and disappearance (removal) of each virtual node 2 (data management server) constituting the cluster. The distributed hash table 100 stored in the storage unit (not shown) is changed. Then, the distribution server 1 transmits the change information of the distributed hash table 100 to each virtual node 2 (data management server) and also to the missing data specifying device 3.

本実施形態に係る振り分けサーバ1は、図示を省略した、制御部、入出力部および記憶部を含んで構成される。   The distribution server 1 according to the present embodiment includes a control unit, an input / output unit, and a storage unit, which are not shown.

入出力部は、クライアント装置5や、各仮想ノード2(データ管理サーバ)および欠損データ特定装置3との間の情報の入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。   The input / output unit inputs / outputs information between the client device 5, each virtual node 2 (data management server), and the missing data specifying device 3. This input / output unit includes a communication interface that transmits and receives information via a communication line, and an input / output interface that performs input / output between an input unit such as a keyboard (not shown) and an output unit such as a monitor. Is done.

記憶部は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等の記憶手段からなり、前記した、分散ハッシュテーブル100等が記憶される。   The storage unit includes storage means such as a hard disk, flash memory, and RAM (Random Access Memory), and stores the distributed hash table 100 and the like described above.

制御部は、図4に示すように、振り分け処理部10と、死活監視部11と、分散ハッシュテーブル変更通知部(変更通知部)12とを備える。なお、この制御部は、例えば、記憶部に格納されたプログラムを、図示を省略したCPU(Central Processing Unit)がRAMに展開し実行することで実現される。   As shown in FIG. 4, the control unit includes a distribution processing unit 10, an alive monitoring unit 11, and a distributed hash table change notification unit (change notification unit) 12. In addition, this control part is implement | achieved when CPU (Central Processing Unit) which abbreviate | omitted illustration expand | deployed and executed the program stored in the memory | storage part, for example.

振り分け処理部10は、クライアント装置5や、欠損データ特定装置3から、要求信号や、ダミーデータ登録要求信号、ダミーデータ削除要求信号等を受信すると、それらの要求信号に含まれるキーを抽出し、ハッシュ関数にかけることで、その要求信号が対象とするデータのハッシュ値を計算する。そして、振り分け処理部10は、計算したハッシュ値に基づき、記憶部(図示省略)に記憶された分散ハッシュテーブル100を参照し、その要求信号の振り分け先となる仮想ノード2(データ管理サーバ)を決定する。
なお、ここで、記憶部に記憶された分散ハッシュテーブル(分散ハッシュ情報)100は、図5に示すように、データ管理サーバや仮想ノード2に固有な識別子(ここでは、「仮想ノードID」とする。)と、その仮想ノードIDを、ハッシュ関数にかけることで得られたハッシュ値とが対応付けられて、例えば、ハッシュ値が小さい順にソートされたテーブルである。そして、この分散ハッシュテーブル100は、仮想ノードIDに示される仮想ノード2が担当するハッシュ値の範囲(担当範囲)を示している。
Upon receiving a request signal, a dummy data registration request signal, a dummy data deletion request signal, or the like from the client device 5 or the missing data specifying device 3, the distribution processing unit 10 extracts keys included in these request signals, By applying the hash function, the hash value of the data targeted by the request signal is calculated. Then, the distribution processing unit 10 refers to the distributed hash table 100 stored in the storage unit (not shown) based on the calculated hash value, and determines the virtual node 2 (data management server) that is the distribution destination of the request signal. decide.
Here, the distributed hash table (distributed hash information) 100 stored in the storage unit, as shown in FIG. 5, is an identifier (here, “virtual node ID”) unique to the data management server and the virtual node 2. And a hash value obtained by applying the virtual node ID to the hash function, for example, a table sorted in ascending order of hash values. The distributed hash table 100 indicates a range of hash values (in charge range) that the virtual node 2 indicated by the virtual node ID is in charge of.

図4に戻り、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の追加(増設)や消滅(減設)を監視しており、クラスタの構成に変化があった場合には、自身の記憶部(図示省略)に記憶した分散ハッシュテーブル100を変更する。具体的には、死活監視部11は、データ管理サーバが増設され、仮想ノード2が追加された場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを追加する。また、死活監視部11は、データ管理サーバが故障等により減設され、仮想ノード2が消滅した場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを削除する。   Returning to FIG. 4, the alive monitoring unit 11 monitors the addition (expansion) and disappearance (removal) of each virtual node 2 (data management server) constituting the cluster, and the cluster configuration has changed. The distributed hash table 100 stored in its own storage unit (not shown) is changed. Specifically, when the data management server is added and the virtual node 2 is added, the alive monitoring unit 11 adds the record of the corresponding virtual node 2 in the distributed hash table 100. In addition, when the data management server is removed due to failure or the like and the virtual node 2 disappears, the alive monitoring unit 11 deletes the record of the corresponding virtual node 2 in the distributed hash table 100.

なお、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の増減情報を、例えば、次のようにして取得することができる。
各仮想ノード2(データ管理サーバ)は、例えば、分散ハッシュテーブル100上で、次の行の仮想ノード2(データ管理サーバ)に、所定の時間間隔で生存確認情報を送信しており、生存確認情報を所定の時間内に受信できない場合に、その仮想ノード2(データ管理サーバ)がクラスタから離脱したものして、その離脱した仮想ノード2(データ管理サーバ)のIDを含む離脱情報を振り分けサーバ1に送信する。また、クラスタ内に、新たに仮想ノード2が追加されると、その仮想ノード2から、自身がクラスタに参加することを要請する情報を、振り分けサーバ1に送信することにより、振り分けサーバ1が新たな仮想ノード2(データ管理サーバ)がクラスタに追加されることの情報を得る。
この他にも、例えば、振り分けサーバ1から、各仮想ノード2(データ管理サーバ)に対し、所定の時間間隔で、生存確認情報を送信することにより、各仮想ノード2の離脱情報を取得してもよい。また、仮想ノード2(データ管理サーバ)がシステム内に追加されたことの情報を、図示を省略したシステム全体のネットワーク管理サーバ等から取得するようにしてもよい。
Note that the alive monitoring unit 11 can acquire the increase / decrease information of each virtual node 2 (data management server) constituting the cluster, for example, as follows.
Each virtual node 2 (data management server), for example, transmits survival confirmation information at a predetermined time interval to the virtual node 2 (data management server) in the next row on the distributed hash table 100, and the survival confirmation When the information cannot be received within a predetermined time, the virtual node 2 (data management server) leaves the cluster, and the separation server including the ID of the detached virtual node 2 (data management server) is assigned to the distribution server. 1 to send. When a new virtual node 2 is added to the cluster, the virtual node 2 transmits information requesting that the virtual node 2 itself participates in the cluster to the distribution server 1. The information that a virtual node 2 (data management server) is added to the cluster is obtained.
In addition to this, for example, by sending survival confirmation information from the distribution server 1 to each virtual node 2 (data management server) at a predetermined time interval, information on the withdrawal of each virtual node 2 is obtained. Also good. Further, information indicating that the virtual node 2 (data management server) has been added to the system may be acquired from a network management server or the like of the entire system (not shown).

分散ハッシュテーブル変更通知部(変更通知部)12は、死活監視部11により、分散ハッシュテーブル100が変更されると、その変更された分散ハッシュテーブル100を、分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)に付して、各仮想ノード2および欠損データ特定装置3へ送信する。
なお、分散ハッシュテーブル変更通知部12は、分散ハッシュテーブル100そのものではなく、分散ハッシュテーブル100において追加されるレコードや、削除されるレコードを示す変更部分の情報のみを、分散ハッシュテーブル変更通知信号に付して送信してもよい。
When the distributed hash table 100 is changed by the alive monitoring unit 11, the distributed hash table change notification unit (change notification unit) 12 transmits the changed distributed hash table 100 to the distributed hash table change notification signal (distributed hash information). The change notification signal is transmitted to each virtual node 2 and the missing data specifying device 3.
Note that the distributed hash table change notification unit 12 uses only the information of the changed portion indicating the record added or deleted in the distributed hash table 100 as the distributed hash table change notification signal, not the distributed hash table 100 itself. You may attach and transmit.

なお、本実施形態においては、図4に示すように、振り分けサーバ1は1つとして説明するが、振り分けサーバ1は複数であってもよい。その場合には、複数の振り分けサーバ1のうちの1つが代表(マスタ)となり、上記において説明した振り分け処理部10が実行する以外の処理、つまり、死活監視に基づく分散ハッシュテーブル100の変更処理や、分散ハッシュテーブルの変更通知の送信処理を行う。   In the present embodiment, as shown in FIG. 4, one distribution server 1 is described. However, a plurality of distribution servers 1 may be provided. In that case, one of the plurality of distribution servers 1 becomes a representative (master), and processing other than that executed by the distribution processing unit 10 described above, that is, processing for changing the distributed hash table 100 based on alive monitoring, Execute the process of sending the distributed hash table change notification.

≪仮想ノード(データ管理サーバ)≫
仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバであり、データ管理部20と、図示を省略した、入出力部および記憶部とを含んで構成される。
≪Virtual node (data management server) ≫
The virtual node 2 is a logical data management server set on the data management server (physical node), and includes a data management unit 20, an input / output unit and a storage unit, which are not shown. .

データ管理部20は、振り分けサーバ1により自身が振り分け先として決定されたデータを原本データとして記憶部に記憶する。また、データ管理部20は、他の仮想ノード2から受信した原本データの複製(複製データ)を記憶部に記憶する。
図示を省略した記憶部には、この原本データおよび複製データ以外に、振り分けサーバ1と同じデータが格納された分散ハッシュテーブル100が記憶されている。この分散ハッシュテーブル100は、振り分けサーバ1から仮想ノード2それぞれが分散ハッシュテーブル変更通知を受信して自身の記憶部に記憶された分散ハッシュテーブル100を変更することにより、振り分けサーバ1に記憶された分散ハッシュテーブル100と同期される。
データ管理部20は、クラスタのセットアップ時や、分散ハッシュテーブル100が変更された時に、自身が記憶する原本データについて、予め設定された複製の数nだけ複製データを生成し、コンシステントハッシュリング上で時計回りの方向にn個(分散ハッシュテーブル100では、自身の行の下n行まで)の仮想ノード2に対して、生成した複製データを送信することにより保存させる。
The data management unit 20 stores the data determined by the distribution server 1 as a distribution destination in the storage unit as original data. Further, the data management unit 20 stores a copy (replicated data) of the original data received from the other virtual node 2 in the storage unit.
The storage unit (not shown) stores a distributed hash table 100 in which the same data as the distribution server 1 is stored in addition to the original data and the duplicated data. The distributed hash table 100 is stored in the distribution server 1 when each virtual node 2 receives the distributed hash table change notification from the distribution server 1 and changes the distributed hash table 100 stored in its own storage unit. Synchronized with the distributed hash table 100.
When the cluster is set up or when the distributed hash table 100 is changed, the data management unit 20 generates replica data for the original data stored by itself for the number n of replicas set in advance. Thus, the generated duplicated data is stored by being transmitted to n virtual nodes 2 in the clockwise direction (in the distributed hash table 100, up to n rows below its own row).

また、データ管理部20は、欠損データ特定装置3から、振り分けサーバ1を介して、ダミーデータ受信した場合には、そのダミーデータを原本として自身の記憶部に記憶する。また、データ管理部20は、自身の記憶部に記憶された分散ハッシュテーブル100を参照し、自身が記憶するダミーデータ(原本)について、通常のデータと同様に、予め設定された複製の数nだけダミーデータ(複製)を生成し、コンシステントハッシュリング上で時計回りの方向にn個(分散ハッシュテーブル100では、自身の行の下n行まで)の仮想ノード2に対して、生成したダミーデータ(複製)を送信することにより保存させる。   Further, when the dummy data is received from the missing data specifying device 3 via the distribution server 1, the data management unit 20 stores the dummy data as an original in its own storage unit. In addition, the data management unit 20 refers to the distributed hash table 100 stored in its own storage unit, and the dummy data (original) stored by itself is the number n of preset replicas as in the case of normal data. Only dummy data (replicas) are generated and generated for n virtual nodes 2 in the clockwise direction on the consistent hash ring (up to n rows below its own row in the distributed hash table 100). Save by sending data (duplicate).

入出力部(図示省略)は、振り分けサーバ1や、他の仮想ノード2との間の情報の入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。なお、仮想ノード2の場合は、実体としてデータ管理サーバ(物理ノード)の入出力部が仮想ノード2の入出力部の機能を具備する。   An input / output unit (not shown) inputs / outputs information to / from the distribution server 1 and other virtual nodes 2. This input / output unit includes a communication interface that transmits and receives information via a communication line, and an input / output interface that performs input / output between an input unit such as a keyboard (not shown) and an output unit such as a monitor. Is done. In the case of the virtual node 2, the input / output unit of the data management server (physical node) has the function of the input / output unit of the virtual node 2 as an entity.

記憶部は、ハードディスクやフラッシュメモリ、RAM等の記憶手段からなり、前記した、原本データ、複製データ、ダミーデータ(原本)、ダミーデータ(複製)、および、分散ハッシュテーブル100(図示省略)等が記憶される。なお、仮想ノード2の場合は、実体としてデータ管理サーバ(物理ノード)の記憶部が仮想ノード2の記憶部の機能を具備する。   The storage unit includes storage means such as a hard disk, a flash memory, and a RAM. The above-described original data, replicated data, dummy data (original), dummy data (replicated), distributed hash table 100 (not shown), and the like. Remembered. In the case of the virtual node 2, the storage unit of the data management server (physical node) has the function of the storage unit of the virtual node 2 as an entity.

≪欠損データ特定装置≫
欠損データ特定装置3は、仮想ノード2それぞれと対となるダミーデータを生成し、振り分けサーバ1を介して、各仮想ノード2にダミーデータ(原本)およびダミーデータ(複製)として記憶させる。また、欠損データ特定装置3は、仮想ノード2が消滅した場合に、ダミーデータの削除を要求するダミーデータ削除要求信号(図7参照)を、振り分けサーバ1を介して、仮想ノード2に送信し、ダミーデータを削除できないこと(NG)の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。また、そのダミーデータと対になる仮想ノード2の担当範囲を、変更前の(旧世代の)分散ハッシュテーブル100(100b)を参照することにより特定する。
≪Missing data identification device≫
The missing data specifying device 3 generates dummy data that is paired with each of the virtual nodes 2, and stores them as dummy data (original) and dummy data (replicated) in each virtual node 2 via the distribution server 1. In addition, when the virtual node 2 disappears, the missing data specifying device 3 transmits a dummy data deletion request signal (see FIG. 7) requesting deletion of dummy data to the virtual node 2 via the distribution server 1. By receiving the response information indicating that the dummy data cannot be deleted (NG), it is detected that the data of the corresponding virtual node 2 has been lost. Further, the assigned range of the virtual node 2 paired with the dummy data is identified by referring to the (old generation) distributed hash table 100 (100b) before the change.

図4を参照して、本実施形態に係る欠損データ特定装置3の構成例について説明する。
本実施形態に係る欠損データ特定装置3は、図4に示すように、制御部30、入出力部31および記憶部32を含んで構成される。
With reference to FIG. 4, a configuration example of the missing data specifying device 3 according to the present embodiment will be described.
As shown in FIG. 4, the missing data specifying device 3 according to the present embodiment includes a control unit 30, an input / output unit 31, and a storage unit 32.

入出力部31は、振り分けサーバ1や、警報監視装置4等との間の情報の入出力を行う。この入出力部31は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。   The input / output unit 31 inputs and outputs information to and from the distribution server 1 and the alarm monitoring device 4. The input / output unit 31 includes a communication interface that transmits and receives information via a communication line, and an input / output interface that performs input / output between an input unit such as a keyboard (not shown) and an output unit such as a monitor. Composed.

記憶部32は、ハードディスクやフラッシュメモリ、RAM等の記憶手段からなり、変更後の(新世代の)分散ハッシュテーブル100(100a)(図4において「分散ハッシュテーブル(新)」と表記)と、変更前の(旧世代の)分散ハッシュテーブル100(100b)(図4において「分散ハッシュテーブル(旧)」と表記)と、ダミーデータキーテーブル200(詳細は後記)とが記憶される。   The storage unit 32 includes storage means such as a hard disk, a flash memory, and a RAM, and the (new generation) distributed hash table 100 (100a) after the change (indicated as “distributed hash table (new)” in FIG. 4); A pre-change (old generation) distributed hash table 100 (100b) (indicated as “distributed hash table (old)” in FIG. 4) and a dummy data key table 200 (described later in detail) are stored.

制御部30は、欠損データ特定装置3全体の制御を司り、図4に示すように、欠損データ特定処理部300と、キー生成部310と、警報通知部320とを備える。なお、この制御部30は、例えば、記憶部32に格納されたプログラムを、図示を省略したCPUがRAMに展開し実行することで実現される。   The control unit 30 controls the entire missing data identification device 3 and includes a missing data identification processing unit 300, a key generation unit 310, and an alarm notification unit 320 as shown in FIG. The control unit 30 is realized by, for example, a program stored in the storage unit 32 being developed and executed on a RAM by a CPU (not shown).

欠損データ特定処理部300は、仮想ノード2それぞれと対となるダミーデータを生成し、該当する仮想ノード2に記憶させると共に、変更後の(新世代の)分散ハッシュテーブル100aと変更前の(旧世代の)分散ハッシュテーブル100bを比較することにより、仮想ノード2(データ管理サーバ)の増減を検出する。そして、欠損データ特定処理部300は、仮想ノード2(データ管理サーバ)の消滅を検出した場合には、その仮想ノード2と対となるダミーデータのキーを付したダミーデータ削除要求信号(図7参照)を送信し、ダミーデータが削除できない旨の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。そして、欠損データ特定処理部300は、そのダミーデータと対になる仮想ノード2の担当範囲を変更前(旧世代の)分散ハッシュテーブル100bを参照することにより特定する。   The missing data identification processing unit 300 generates dummy data paired with each virtual node 2 and stores the dummy data in the corresponding virtual node 2, and the (new generation) distributed hash table 100 a after the change and the old (old) The increase / decrease in the virtual node 2 (data management server) is detected by comparing the distributed hash table 100b of the generation. When the missing data identification processing unit 300 detects the disappearance of the virtual node 2 (data management server), the dummy data deletion request signal (FIG. 7) with a dummy data key paired with the virtual node 2 is attached. ) And the response information indicating that the dummy data cannot be deleted is received to detect that the data of the corresponding virtual node 2 is missing. Then, the missing data identification processing unit 300 identifies the assigned range of the virtual node 2 paired with the dummy data by referring to the pre-change (old generation) distributed hash table 100b.

この欠損データ特定処理部300は、ノード増減検出部(増減検出部)301と、ダミーデータ登録部302と、ダミーデータ削除部303とを備える。   The missing data identification processing unit 300 includes a node increase / decrease detection unit (increase / decrease detection unit) 301, a dummy data registration unit 302, and a dummy data deletion unit 303.

ノード増減検出部(増減検出部)301は、振り分けサーバ1から、分散ハッシュテーブル変更通知信号を、入出力部31を介して受信し、記憶部32に、変更後の(新世代の)分散ハッシュテーブル100aとして記憶する。なお、その際、ノード増減検出部301は、それ以前に記憶部32に記憶されている、今回の変更前の分散ハッシュテーブル100を旧世代の分散ハッシュテーブル100bとして、そのまま記憶部32に記憶しておく。   The node increase / decrease detection unit (increase / decrease detection unit) 301 receives the distributed hash table change notification signal from the distribution server 1 via the input / output unit 31, and stores the changed (new generation) distributed hash in the storage unit 32. Store as table 100a. At that time, the node increase / decrease detection unit 301 stores the pre-change distributed hash table 100 stored in the storage unit 32 before that time as the old generation distributed hash table 100b in the storage unit 32 as it is. Keep it.

ノード増減検出部301は、記憶部32に記憶された新世代の分散ハッシュテーブル100aと、旧世代の分散ハッシュテーブル100bとを比較し、その差分を検出することにより、仮想ノード2(データ管理サーバ)の追加若しくは消滅を検出する。具体的には、ノード増減検出部301は、新世代の分散ハッシュテーブル100aに仮想ノード2の新たなレコードが挿入されていることにより、仮想ノード2が追加されたことを検出する。一方、ノード増減検出部301は、新世代の分散ハッシュテーブル100aにおいて、既存の仮想ノード2のレコードが削除されていれることにより、仮想ノード2が消滅したことを検出する。   The node increase / decrease detection unit 301 compares the new-generation distributed hash table 100a stored in the storage unit 32 with the old-generation distributed hash table 100b, and detects the difference between them to thereby detect the virtual node 2 (data management server ) Is detected. Specifically, the node increase / decrease detection unit 301 detects that the virtual node 2 has been added by inserting a new record of the virtual node 2 into the new generation distributed hash table 100a. On the other hand, the node increase / decrease detection unit 301 detects that the virtual node 2 has disappeared when the record of the existing virtual node 2 is deleted in the new generation distributed hash table 100a.

ダミーデータ登録部302は、クラスタのセットアップ時、つまり、旧世代の分散ハッシュテーブル100bが記憶部32に存在しない場合、また、仮想ノード2が追加されたことを検出した場合に、その仮想ノード2の仮想ノードIDに対応するダミーデータのキーの生成を、キー生成部310に依頼することにより取得する。そして、ダミーデータ登録部302は、ダミーデータ登録要求信号(図6)を生成し、振り分けサーバ1へ送信する。   When the dummy data registration unit 302 sets up the cluster, that is, when the old-generation distributed hash table 100b does not exist in the storage unit 32, or detects that the virtual node 2 has been added, the dummy data registration unit 302 The key generation unit 310 is requested to generate a dummy data key corresponding to the virtual node ID. Then, the dummy data registration unit 302 generates a dummy data registration request signal (FIG. 6) and transmits it to the distribution server 1.

図6は、本実施形態に係るダミーデータ登録要求信号のデータ構成を示す図である。
ダミーデータ登録要求信号は、要求種別として「登録」を示す要求種別情報と、振り分けサーバ1の振り分け処理部10において、コンシステントハッシュのキーとして用いるためのダミーデータのキーの情報と、登録されるデータであるバリューと、を含んで構成される。ここで、バリューは、仮想ノードID等の仮想ノード2を特定するための値が設定される。
FIG. 6 is a diagram showing a data configuration of the dummy data registration request signal according to the present embodiment.
The dummy data registration request signal is registered with request type information indicating “registration” as a request type, and dummy data key information used as a consistent hash key in the distribution processing unit 10 of the distribution server 1. Data and value. Here, a value for specifying the virtual node 2 such as a virtual node ID is set as the value.

図4に戻り、ダミーデータ削除部303は、ノード増減検出部301が、クラスタを構成する仮想ノード2が消滅したことを検出した場合に、後記するダミーデータキーテーブル200から、消滅が検出された仮想ノード2に対応するダミーデータのキーを取得し、ダミーデータ削除要求信号(図7)を生成し、振り分けサーバ1へ送信する。   Returning to FIG. 4, when the node increase / decrease detection unit 301 detects that the virtual node 2 constituting the cluster has disappeared, the dummy data deletion unit 303 detects the disappearance from the dummy data key table 200 described later. A dummy data key corresponding to the virtual node 2 is acquired, a dummy data deletion request signal (FIG. 7) is generated, and transmitted to the distribution server 1.

図7は、本実施形態に係るダミーデータ削除要求信号のデータ構成を示す図である。
ダミーデータ削除要求信号は、要求種別として「削除」を示す要求種別情報と、振り分けサーバ1の振り分け処理部10において、コンシステントハッシュのキーとして用いるための、消滅が検出された仮想ノード2に対応するダミーデータのキーの情報と、を含んで構成される。
FIG. 7 is a diagram illustrating a data configuration of the dummy data deletion request signal according to the present embodiment.
The dummy data deletion request signal corresponds to the request type information indicating “delete” as the request type and the virtual node 2 in which the disappearance is detected in the distribution processing unit 10 of the distribution server 1 to be used as a consistent hash key. Key information of dummy data to be configured.

また、ダミーデータ削除部303は、ダミーデータ削除要求信号に対する応答信号(図8)を振り分けサーバ1から受信する。   Further, the dummy data deletion unit 303 receives a response signal (FIG. 8) to the dummy data deletion request signal from the distribution server 1.

図8は、本実施形態に係る応答信号のデータ構成を示す図である。
応答信号は、応答種別として「OK」若しくは「NG」のどちらかが格納される。
FIG. 8 is a diagram illustrating a data configuration of the response signal according to the present embodiment.
The response signal stores either “OK” or “NG” as the response type.

ダミーデータ削除部303は、振り分けサーバ1から、「OK」が付された応答信号を受信した場合には、ダミーデータキーテーブル200(図9参照)において、消滅が検出された仮想ノード2の仮想ノードIDに対応するレコードを削除する。
一方、ダミーデータ削除部303は、振り分けサーバ1から、「NG」が付された応答信号を受信した場合には、ダミーデータに対応する仮想ノード2のデータが欠損したと判定する。そして、その判定結果を、警報通知部320に出力する。
When the dummy data deletion unit 303 receives a response signal with “OK” from the distribution server 1, the dummy data deletion unit 303 detects the virtual node 2 in which the disappearance is detected in the dummy data key table 200 (see FIG. 9). Delete the record corresponding to the node ID.
On the other hand, when receiving a response signal with “NG” from the distribution server 1, the dummy data deletion unit 303 determines that the data of the virtual node 2 corresponding to the dummy data is missing. Then, the determination result is output to the alarm notification unit 320.

キー生成部310は、図9に示すように、データ管理サーバや仮想ノード2に固有な識別子(ここでは、「仮想ノードID」とする。)と、ダミーデータのキーとを対応付けた情報であるダミーデータキーテーブル200を生成する。   As shown in FIG. 9, the key generation unit 310 is information that associates an identifier unique to the data management server or the virtual node 2 (here, “virtual node ID”) and a key of dummy data. A dummy data key table 200 is generated.

図9は、本実施形態に係るダミーデータキーテーブル200のデータ構成を示す図である。
図9に示すように、ダミーデータキーテーブル200は、仮想ノードIDと、ダミーデータのキーの組み合わせが、仮想ノード2の数分のレコードとして記憶される。
FIG. 9 is a diagram showing a data configuration of the dummy data key table 200 according to the present embodiment.
As illustrated in FIG. 9, the dummy data key table 200 stores combinations of virtual node IDs and dummy data keys as records corresponding to the number of virtual nodes 2.

キー生成部310は、ダミーデータキーテーブル200に登録された仮想ノードIDの値を取得し、これを、ダミーデータ投入先仮想ノードIDとする。そして、キー生成部310は、このダミーデータ投入先仮想ノードIDと、分散ハッシュテーブル100(100a)に基づき、以下に示すキー生成アルゴリズムを用いて、ダミーデータのキーを生成する。   The key generation unit 310 acquires the value of the virtual node ID registered in the dummy data key table 200, and uses this value as the dummy data input destination virtual node ID. The key generation unit 310 generates a dummy data key using the following key generation algorithm based on the dummy data input destination virtual node ID and the distributed hash table 100 (100a).

(キー生成アルゴリズム)
図10は、本実施形態に係るキー生成部310が実行する、ダミーデータのキー生成アルゴリズムを説明するためのフローチャートである。
ここで、ハッシュ関数は一方向性関数であるため、ハッシュ値からキーを生成することはできない。そのため、キー生成部310は、トライアンドエラーで仮想ノード2の担当範囲に含まれるキーを見つけることにより、ダミーデータのキーを生成する。
なお、キー生成部310は、ダミーデータのキーを生成するにあたり、分散ハッシュテーブル100(100a)を参照し、全ての仮想ノードIDの情報を取得して、ダミーデータキーテーブル200の各仮想ノードIDのレコードを生成しておく。
(Key generation algorithm)
FIG. 10 is a flowchart for explaining a dummy data key generation algorithm executed by the key generation unit 310 according to the present embodiment.
Here, since the hash function is a one-way function, a key cannot be generated from the hash value. Therefore, the key generation unit 310 generates a key of dummy data by finding a key included in the assigned range of the virtual node 2 by trial and error.
Note that the key generation unit 310 refers to the distributed hash table 100 (100a) when generating the dummy data key, obtains information on all virtual node IDs, and acquires each virtual node ID in the dummy data key table 200. Generate a record.

まず、キー生成部310は、ダミーデータキーテーブル200の1つの行(1行目から順に取得)に登録された仮想ノードIDの値を取得し、これをダミーデータ投入先仮想ノードIDとする。そして、ダミーデータ投入先仮想ノードへのダミーデータの登録要求のキーとして、ランダムな文字列を生成する(ステップS1)。若しくは、キー生成部310は、「dummydata」など意味をもった文字列にランダム形成した文字列を繋げたキーを生成してもよい。   First, the key generation unit 310 acquires the value of the virtual node ID registered in one row (acquired sequentially from the first row) of the dummy data key table 200, and sets this value as the dummy data input destination virtual node ID. Then, a random character string is generated as a key for requesting registration of dummy data to the dummy data input destination virtual node (step S1). Alternatively, the key generation unit 310 may generate a key obtained by connecting a character string randomly formed to a meaningful character string such as “dummydata”.

次に、キー生成部310は、振り分けサーバ1の振り分け処理部10と同じハッシュ関数を用いて、ステップS1において生成したキーのハッシュ値を計算する(ステップS2)。   Next, the key generation unit 310 calculates the hash value of the key generated in step S1 using the same hash function as that of the distribution processing unit 10 of the distribution server 1 (step S2).

続いて、キー生成部310は、生成したキーのハッシュ値を用いて、分散ハッシュテーブル100(100a)を参照し、そのキーのハッシュ値を担当範囲とする振り分け先仮想ノードの仮想ノードIDを算出する(ステップS3)。   Subsequently, the key generation unit 310 refers to the distributed hash table 100 (100a) using the generated hash value of the key, and calculates the virtual node ID of the allocation destination virtual node whose assigned range is the hash value of the key. (Step S3).

そして、キー生成部310は、算出した仮想ノードIDと、ダミーデータ投入先仮想ノードIDとが一致するか否かを判定する(ステップS4)。   Then, the key generation unit 310 determines whether or not the calculated virtual node ID matches the dummy data input destination virtual node ID (step S4).

ステップS4の判定の結果、一致した場合には(ステップS4→Yes)、ステップS1において生成したキーを、ダミーデータキーテーブル200のステップS1において取得した仮想ノードID(ダミーデータ投入先仮想ノードID)に対応付けて、ダミーデータキーテーブル200に登録する(ステップS5)。   If they match as a result of the determination in step S4 (step S4 → Yes), the virtual node ID (dummy data input destination virtual node ID) obtained in step S1 of the dummy data key table 200 is used as the key generated in step S1. Are registered in the dummy data key table 200 (step S5).

一方、ステップS4の判定の結果、一致しない場合には(ステップS4→No)、ステップS1に戻り、再度、ダミーデータのキーとして、ランダムな文字列を生成する。   On the other hand, if they do not match as a result of the determination in step S4 (step S4 → No), the process returns to step S1 to generate a random character string again as a key for dummy data.

キー生成部310は、ステップS5において、ダミーデータキーテーブル200の1つの行の仮想ノードIDに対応するダミーデータのキーを登録すると、次の行の仮想ノードIDを取得し、ステップS1〜S5を繰り返す。これを、キー生成部310は、ダミーデータキーテーブル200に記憶されたすべての行の仮想ノードIDについて実行する。   When the key generation unit 310 registers the dummy data key corresponding to the virtual node ID of one row of the dummy data key table 200 in step S5, the key generation unit 310 acquires the virtual node ID of the next row, and performs steps S1 to S5. repeat. The key generation unit 310 executes this for the virtual node IDs of all rows stored in the dummy data key table 200.

このようにすることで、キー生成部310は、各仮想ノードIDに対応するダミーデータのキーを生成し、ダミーデータキーテーブル200に登録する。   In this way, the key generation unit 310 generates a dummy data key corresponding to each virtual node ID and registers it in the dummy data key table 200.

図4に戻り、警報通知部320は、ダミーデータ削除部303が「NG」が付された応答信号を受信したことにより、データが欠損したと判定した場合に、そのダミーデータのキーに対応する仮想ノード2の担当範囲を、旧世代の分散ハッシュテーブル100bを参照することにより特定する。そして、警報通知部320は、欠損したデータのキーのハッシュ値の範囲として、当該仮想ノード2の担当範囲を付したデータ欠損検出信号を生成し、警報監視装置4に通知する。なお、警報通知部320は、このデータ欠損検出信号を、例えば、SNMP(Simple Network Management Protocol)トラップとして、警報監視装置4に送信するようにしてもよい。   Returning to FIG. 4, the alarm notification unit 320 corresponds to the key of the dummy data when the dummy data deletion unit 303 determines that data has been lost by receiving the response signal with “NG”. The assigned range of the virtual node 2 is specified by referring to the old generation distributed hash table 100b. Then, the alarm notification unit 320 generates a data loss detection signal with the assigned range of the virtual node 2 as the range of the hash value of the missing data key, and notifies the alarm monitoring device 4 of the data loss detection signal. Note that the alarm notification unit 320 may transmit the data loss detection signal to the alarm monitoring device 4 as an SNMP (Simple Network Management Protocol) trap, for example.

≪警報監視装置≫
警報監視装置4は、欠損データ特定装置3からデータ欠損検出信号を受信し、データ欠損を検出したことと、その欠損データのキーのハッシュ値の範囲とを、出力手段(図示省略)に出力する。
警報監視装置4は、制御部と、入出力部と、記憶部と(いずれも図示省略)を備える装置であり、制御部が備える警報受信部40が、データ欠損検出信号を受信することにより、分散データベースシステム1000の管理者等に、データ欠損の検出を報知する。
≪Alarm monitoring device≫
The alarm monitoring device 4 receives the data loss detection signal from the missing data specifying device 3, and outputs the fact that the data loss has been detected and the hash value range of the key of the missing data to the output means (not shown). .
The alarm monitoring device 4 is a device including a control unit, an input / output unit, and a storage unit (all not shown), and the alarm reception unit 40 included in the control unit receives a data loss detection signal, The administrator of the distributed database system 1000 is notified of data loss detection.

<分散データベースシステムの欠損データ特定処理>
次に、本実施形態に係る分散データベースシステム1000が実行する欠損データ特定処理について説明する。
分散データベースシステム1000において、欠損データ特定装置3は、最初にデータ管理サーバが複数の仮想ノード2のクラスタをセットアップする際に、全ての仮想ノード2に対して、ダミーデータの登録を実行する。
その後、欠損データ特定装置3および振り分けサーバ1は、仮想ノード2の追加や消滅等の変化に応じて、ダミーデータの登録や削除を行うことで、クラスタ内に存在する仮想ノード2それぞれと対になるダミーデータが必ず登録されている状態を維持する。
そして、欠損データ特定装置3は、仮想ノード2の消滅時において、消滅した仮想ノード2のダミーデータの削除要求(ダミーデータ削除要求信号)を振り分けサーバ1に送信し、削除することができたか否かに基づいて仮想ノード2のデータが欠損データであるか否かを判定する。
以上の欠損データ特定処理の流れについて、(1)クラスタセットアップ時のダミーデータ登録処理、(2)仮想ノード追加時のダミーデータ登録処理、(3)仮想ノード消滅時のダミーデータ削除処理、(4)データ欠損の検出と警報情報の出力処理、の順に詳細に説明する。
<Distributed database system missing data identification processing>
Next, the missing data specifying process executed by the distributed database system 1000 according to the present embodiment will be described.
In the distributed database system 1000, the missing data identification device 3 registers dummy data for all virtual nodes 2 when the data management server first sets up a cluster of a plurality of virtual nodes 2.
Thereafter, the missing data specifying device 3 and the distribution server 1 pair with each virtual node 2 existing in the cluster by registering and deleting dummy data in accordance with changes such as addition or disappearance of the virtual node 2. The dummy data to be maintained is always registered.
Then, when the virtual node 2 disappears, the missing data identification device 3 transmits a dummy data deletion request (dummy data deletion request signal) of the virtual node 2 that has disappeared to the distribution server 1 and deletes it. Whether or not the data of the virtual node 2 is missing data is determined.
Regarding the flow of the above missing data specifying process, (1) dummy data registration process at the time of cluster setup, (2) dummy data registration process at the time of adding a virtual node, (3) dummy data deletion process at the time of disappearance of a virtual node, (4 ) Detailed description will be given in the order of data loss detection and alarm information output processing.

≪(1)クラスタセットアップ時のダミーデータ登録処理≫
図11は、データ管理サーバをクラスタにセットアップする際に、全ての仮想ノード2に対して実行するダミーデータ登録処理を示すシーケンス図である。
≪ (1) Dummy data registration process during cluster setup≫
FIG. 11 is a sequence diagram showing dummy data registration processing executed for all virtual nodes 2 when setting up the data management server in a cluster.

まず、振り分けサーバ1(振り分け処理部10および死活監視部11)は、データ管理サーバ上に形成された複数の仮想ノード2のクラスタのセットアップ時に、図5に示すような分散ハッシュテーブル100を生成する(ステップS10)。そして、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、生成された分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を欠損データ特定装置3に送信する(ステップS11)。
なお、分散ハッシュテーブル変更通知部12は、生成された分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を、各仮想ノード2に対しても送信することにより、各仮想ノード2に同一の分散ハッシュテーブル100を記憶させる。この分散ハッシュテーブル100を参照することにより、各仮想ノード2は、自身が記憶する原本データの複製先となる仮想ノード2を特定する。
First, the distribution server 1 (the distribution processing unit 10 and the alive monitoring unit 11) generates a distributed hash table 100 as shown in FIG. 5 when setting up a cluster of a plurality of virtual nodes 2 formed on the data management server. (Step S10). Then, the distributed hash table change notification unit 12 of the distribution server 1 transmits a distributed hash table change notification signal including the generated distributed hash table 100 to the missing data specifying device 3 (step S11).
The distributed hash table change notifying unit 12 transmits the distributed hash table change notification signal including the generated distributed hash table 100 to each virtual node 2, so that the same distributed hash is transmitted to each virtual node 2. The table 100 is stored. By referring to this distributed hash table 100, each virtual node 2 identifies the virtual node 2 that is the copy destination of the original data stored in itself.

欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に既に登録された分散ハッシュテーブル100がないことから、分散ハッシュテーブル100の初回登録であると判定し、分散ハッシュテーブル変更通知信号から分散ハッシュテーブル100を抽出して、記憶部32に分散ハッシュテーブル100を記憶する(ステップS12)。   When the node increase / decrease detection unit 301 of the missing data specifying device 3 receives the distributed hash table change notification signal, there is no distributed hash table 100 already registered in the storage unit 32. The distributed hash table 100 is extracted from the distributed hash table change notification signal, and the distributed hash table 100 is stored in the storage unit 32 (step S12).

次に、欠損データ特定装置3のキー生成部310は、記憶部32に記憶した分散ハッシュテーブル100の仮想ノードIDに基づいて、ダミーデータキーテーブル200を生成し、図10において説明した、ダミーデータのキー生成処理を実行する(ステップS13)。そして、キー生成部310は、ダミーデータキーテーブル200(図9)を完成させ、記憶部32に記憶する。   Next, the key generation unit 310 of the missing data specifying device 3 generates the dummy data key table 200 based on the virtual node ID of the distributed hash table 100 stored in the storage unit 32, and the dummy data described in FIG. The key generation process is executed (step S13). Then, the key generation unit 310 completes the dummy data key table 200 (FIG. 9) and stores it in the storage unit 32.

続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成し(ステップS14)、振り分けサーバ1に送信する。
なお、このダミーデータ登録要求信号には、要求種別「登録」と、生成したダミーデータのキーと、バリューとが設定される。なお、バリューとしては、例えば仮想ノードIDなどの仮想ノード2を特定する値がダミーデータキーテーブル200を参照して設定される。
Subsequently, the dummy data registration unit 302 of the missing data specifying device 3 refers to the dummy data key table 200, generates a dummy data registration request signal (FIG. 6) (step S14), and transmits it to the distribution server 1.
In this dummy data registration request signal, a request type “registration”, a key of the generated dummy data, and a value are set. As the value, for example, a value specifying the virtual node 2 such as a virtual node ID is set with reference to the dummy data key table 200.

ダミーデータ登録要求信号を受信した振り分けサーバ1は、振り分け処理部10により、ダミーデータ登録要求信号に設定されたダミーデータのキーをハッシュ関数にかけることによりハッシュ値を算出する。そして、振り分け処理部10は、記憶部(図示省略)に記憶された分散ハッシュテーブル100を参照することにより、振り分け先となる仮想ノード2を決定し、そのダミーデータ登録要求信号を転送する(ステップS15)。このとき、ダミーデータ登録要求信号の転送先となる仮想ノード2は、欠損データ特定装置3のキー生成部310が設定したダミーデータ投入先仮想ノード、つまり、ダミーデータ登録要求信号のバリューとして設定された仮想ノード2となる。   Upon receiving the dummy data registration request signal, the distribution server 1 uses the distribution processing unit 10 to calculate the hash value by applying the dummy data key set in the dummy data registration request signal to the hash function. Then, the distribution processing unit 10 refers to the distributed hash table 100 stored in the storage unit (not shown), determines the virtual node 2 that is the distribution destination, and transfers the dummy data registration request signal (step) S15). At this time, the virtual node 2 as the transfer destination of the dummy data registration request signal is set as the dummy data input destination virtual node set by the key generation unit 310 of the missing data specifying device 3, that is, as the value of the dummy data registration request signal. Virtual node 2.

続いて、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータを自身の記憶部に記憶する(ステップS16)。なお、振り分けサーバ1やデータ管理サーバの仮想ノード2にとっては、ダミーデータは通常のデータとなんら変わらないデータであり、ここで記憶されるダミーデータは、ダミーデータ(原本)となる。仮想ノード2のデータ管理部20は、コンシステントハッシュのアルゴリズムに従い、自身に記憶された分散ハッシュテーブル100を参照し、予め設定された複製の数分のダミーデータ(複製)を生成して、複製データの記憶を担当する他の仮想ノード2にそのダミーデータ(複製)を送信し記憶させる。   Subsequently, the virtual node 2 that has received the dummy data registration request signal stores the dummy data in its own storage unit (step S16). For the distribution server 1 and the virtual node 2 of the data management server, the dummy data is data that is not different from normal data, and the dummy data stored here is dummy data (original). The data management unit 20 of the virtual node 2 refers to the distributed hash table 100 stored in itself according to the consistent hash algorithm, generates dummy data (duplicates) for the number of replicas set in advance, The dummy data (replica) is transmitted to and stored in another virtual node 2 in charge of data storage.

振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2からダミーデータを登録した旨の応答情報を受信すると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS17)。   When receiving the response information indicating that the dummy data has been registered from the predetermined virtual node 2, the distribution processing unit 10 of the distribution server 1 transmits an OK response signal to the missing data specifying device 3 (step S17).

欠損データ特定装置3のダミーデータ登録部302は、このようにして、全ての仮想ノード2に、ダミーデータを登録する。これにより、欠損データ特定装置3による仮想ノード2ごとの欠損データ検出の準備が整うものとなる。   In this way, the dummy data registration unit 302 of the missing data specifying device 3 registers dummy data in all virtual nodes 2. As a result, preparation for missing data detection for each virtual node 2 by the missing data specifying device 3 is completed.

≪(2)仮想ノード追加時のダミーデータ登録処理≫
分散データベースシステム1000の運用後に、物理的なデータベース管理サーバが増設等された場合には、クラスタを構成する仮想ノード2が追加される。新たな仮想ノード2が追加されると、既存の仮想ノード2の中で、ハッシュ値の担当範囲が分割される仮想ノード2が発生する。以下、仮想ノード追加時におけるダミーデータの登録処理について、図12〜図15を参照して説明する。
≪ (2) Dummy data registration process when adding virtual node≫
When a physical database management server is added after the operation of the distributed database system 1000, the virtual node 2 constituting the cluster is added. When a new virtual node 2 is added, a virtual node 2 in which the assigned range of hash values is divided among the existing virtual nodes 2 is generated. The dummy data registration process when adding a virtual node will be described below with reference to FIGS.

図12は、仮想ノード2の追加時における、既存の仮想ノード2の担当範囲の分割を説明するための図である。図13は、仮想ノード2の追加時における、分散ハッシュテーブル100の変更を説明するための図である。   FIG. 12 is a diagram for explaining division of the assigned range of the existing virtual node 2 when the virtual node 2 is added. FIG. 13 is a diagram for explaining the change of the distributed hash table 100 when the virtual node 2 is added.

データ管理サーバが増設等されることにより、仮想ノード2(図12では、仮想ノード「X」)が追加されると、図12に示すように、追加された仮想ノード2の仮想ノードID「X」に対応するハッシュ値「x」の点(丸印)がコンシステントハッシュリング上に追加される。これにより、既存の仮想ノード「B」の担当範囲(ハッシュ値「a」〜「b」)が、追加した仮想ノード「X」の担当範囲(ハッシュ値「a」〜「x」)と、既存の仮想ノード「B」の担当範囲(ハッシュ値「x」〜「b」)とに分割される。なお、分散ハッシュテーブル100においては、図13に示すように、仮想ノードIDが「A」のレコードと、仮想ノードIDが「B」のレコードとの間に、仮想ノードIDが「X」のレコードが挿入されることとなる。
この結果、追加した仮想ノード「X」については、新たにダミーデータ登録処理を行う必要がある。さらに、仮想ノード「B」については、ハッシュ値の担当範囲が分割されたため、既に登録されているダミーデータは、仮想ノード「X」の担当範囲に属するか、仮想ノード「B」の担当範囲に属するかわからないため、既存のダミーデータを一旦削除した上で、分割後の仮想ノード「B」の担当範囲にダミーデータの再登録を行う。
When a virtual node 2 (virtual node “X” in FIG. 12) is added by adding a data management server or the like, the virtual node ID “X” of the added virtual node 2 is added as shown in FIG. A point (circle) of the hash value “x” corresponding to “” is added on the consistent hash ring. As a result, the assigned range (hash values “a” to “b”) of the existing virtual node “B” becomes the same as the assigned range (hash values “a” to “x”) of the added virtual node “X”. To the virtual node “B” in charge (hash values “x” to “b”). In the distributed hash table 100, as shown in FIG. 13, a record with a virtual node ID “X” between a record with a virtual node ID “A” and a record with a virtual node ID “B”. Will be inserted.
As a result, it is necessary to newly perform dummy data registration processing for the added virtual node “X”. Furthermore, for the virtual node “B”, the assigned range of the hash value is divided, so that the already registered dummy data belongs to the assigned range of the virtual node “X” or the assigned range of the virtual node “B”. Since it does not know whether it belongs, after deleting the existing dummy data, the dummy data is re-registered in the assigned range of the virtual node “B” after the division.

なお、担当範囲が分割された仮想ノード「B」について、ダミーデータの削除・再登録を行わず、ダミーデータキーテーブル200に基づいて既存のダミーデータが新たな仮想ノード「X」の担当範囲に属するデータか、元の仮想ノード「B」の担当範囲に属するデータかを判定し、ダミーデータが登録されていない方の仮想ノード2に対してダミーデータの登録処理を行うようにしてもよい。   For the virtual node “B” in which the assigned range is divided, the dummy data is not deleted and re-registered, and the existing dummy data is assigned to the assigned range of the new virtual node “X” based on the dummy data key table 200. It may be determined whether the data belongs to or belongs to the range in charge of the original virtual node “B”, and dummy data registration processing may be performed on the virtual node 2 on which no dummy data is registered.

次に、ダミーデータ登録処理の流れについて説明する。図14および図15は、仮想ノード2の追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。   Next, the flow of dummy data registration processing will be described. 14 and 15 are sequence diagrams for explaining the dummy data registration process when the virtual node 2 is added.

図14に示すように、まず、振り分けサーバ1の死活監視部11が、新たな仮想ノード2(データ管理サーバ)の追加を検出すると(ステップS20)、分散ハッシュテーブル100を参照し、既存の仮想ノード2の担当範囲の広さなどを基準にして、例えば、担当範囲が広い順に仮想ノード2を選択するようにして、既存の仮想ノード2から分割対象となる仮想ノードを選定する。   As shown in FIG. 14, first, when the alive monitoring unit 11 of the distribution server 1 detects the addition of a new virtual node 2 (data management server) (step S20), the distributed virtual machine table 100 is referred to and an existing virtual table 2 is referred to. Based on the size of the assigned range of the node 2, for example, the virtual node 2 is selected in order of increasing assigned range, and the virtual node to be divided is selected from the existing virtual nodes 2.

死活監視部11は、選定した仮想ノード2の担当範囲を、コンシステントハッシュリングとしては、その担当範囲内に新たに追加する仮想ノード2の仮想ノードIDのハッシュ値の点(丸印)を追加することで分割する(図12参照)。このことは、死活監視部11が、分散ハッシュテーブル100において、新たに追加される仮想ノード2のレコードを、分割対象となる仮想ノードのレコードの1つ前に追加することで実現される(図13参照)。以上のようにして、死活監視部11は、新たな仮想ノード2を追加して、分散ハッシュテーブル100を変更する(ステップS21)。   The alive monitoring unit 11 adds a point (circle) of the hash value of the virtual node ID of the virtual node 2 to be newly added to the assigned range of the selected virtual node 2 as a consistent hash ring. To divide (see FIG. 12). This is realized by the life and death monitoring unit 11 adding the record of the newly added virtual node 2 in the distributed hash table 100 immediately before the record of the virtual node to be divided (see FIG. 13). As described above, the alive monitoring unit 11 adds a new virtual node 2 and changes the distributed hash table 100 (step S21).

続いて、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、上記のように分散ハッシュテーブル100が変更されると、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を生成し、欠損データ特定装置3に送信する(ステップS22)。なお、分散ハッシュテーブル変更通知部12は、同様に、各仮想ノード2(追加された仮想ノード2を含む)に向けて、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を送信しておく。このようにすることにより、分散データベースシステム1000内においては、同一の分散ハッシュテーブル100に基づき処理を実行できるようにする。   Subsequently, when the distributed hash table 100 is changed as described above, the distributed hash table change notification unit 12 of the distribution server 1 generates a distributed hash table change notification signal including the changed distributed hash table 100, and the missing data. It transmits to the specific device 3 (step S22). Similarly, the distributed hash table change notification unit 12 transmits a distributed hash table change notification signal including the changed distributed hash table 100 to each virtual node 2 (including the added virtual node 2). deep. In this way, processing can be executed based on the same distributed hash table 100 in the distributed database system 1000.

欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS23)。   When the node increase / decrease detection unit 301 of the missing data specifying device 3 receives the distributed hash table change notification signal, since the previous distributed hash table 100 exists in the storage unit 32, it is the second and subsequent registrations of the distributed hash table. Recognize. Then, the node increase / decrease detection unit 301 sets the distributed hash table 100 already existing in the storage unit 32 as the old generation distributed hash table 100 (100b), and uses the newly received distributed hash table 100 as the new generation distributed hash table 100. (100a) is stored in the storage unit 32 (step S23).

ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS24)。そして、ノード増減検出部301は、比較の結果、新世代の分散ハッシュテーブル100aに、新たな仮想ノード2が追加されていることを検出する(ステップS25)。   The node increase / decrease detection unit 301 compares the new generation distributed hash table 100a with the old generation distributed hash table 100b (step S24). Then, as a result of the comparison, the node increase / decrease detection unit 301 detects that a new virtual node 2 has been added to the new generation distributed hash table 100a (step S25).

仮想ノード2が追加されたことをノード増減検出部301が検出すると、ダミーデータ登録部302は、追加された仮想ノード2に対して、ダミーデータの登録処理を実行する(以下、「手順A」と呼ぶことがある。)。一方、分散ハッシュテーブル100において、追加された仮想ノード2のレコードの次のレコードの仮想ノード2について、担当範囲が分割され変更となるため、ダミーデータ削除部303が既存のダミーデータを削除し、その後ダミーデータ登録部302が再度登録する処理を実行する(以下、「手順B」と呼ぶことがある。図15参照。)。以下、具体的に説明する。   When the node increase / decrease detection unit 301 detects that the virtual node 2 has been added, the dummy data registration unit 302 executes dummy data registration processing for the added virtual node 2 (hereinafter, “procedure A”). Sometimes called). On the other hand, in the distributed hash table 100, the assigned range is divided and changed for the virtual node 2 of the record next to the added virtual node 2 record, so the dummy data deletion unit 303 deletes the existing dummy data, Thereafter, the dummy data registration unit 302 executes a registration process again (hereinafter, referred to as “procedure B”, see FIG. 15). This will be specifically described below.

(手順A:追加された仮想ノードへのダミーデータの登録処理)
まず、欠損データ特定装置3のキー生成部310は、記憶部32に記憶されたダミーデータキーテーブル200(図9)に追加された仮想ノード2の仮想ノードIDのレコードを追加する。
そして、キー生成部310は、追加された仮想ノード2の仮想ノードIDと、新世代の分散ハッシュテーブル100aとに基づき、図10において説明した、ダミーデータのキー生成処理を実行し、追加された仮想ノード2の仮想ノードIDに対応するダミーデータのキーを生成する(ステップS26)。そして、キー生成部310は、生成したダミーデータのキーを、ダミーデータキーテーブル200に登録する。
(Procedure A: Dummy data registration process to the added virtual node)
First, the key generation unit 310 of the missing data specifying device 3 adds a record of the virtual node ID of the virtual node 2 added to the dummy data key table 200 (FIG. 9) stored in the storage unit 32.
Then, the key generation unit 310 executes the dummy data key generation processing described with reference to FIG. 10 based on the added virtual node ID of the virtual node 2 and the new generation distributed hash table 100a. A dummy data key corresponding to the virtual node ID of the virtual node 2 is generated (step S26). Then, the key generation unit 310 registers the generated dummy data key in the dummy data key table 200.

続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成する(ステップS27)。ここで、ダミーデータ登録部302は、要求種別を「登録」とし、生成したダミーデータのキーと、バリューとを設定したダミーデータ登録要求信号を生成する。なお、ここでバリューには、追加された仮想ノード2の仮想ノードIDなどの、追加された仮想ノード2を特定する値が設定される。そして、ダミーデータ登録部302は、生成したダミーデータ登録要求信号を振り分けサーバ1に送信する。   Subsequently, the dummy data registration unit 302 of the missing data specifying device 3 refers to the dummy data key table 200 and generates a dummy data registration request signal (FIG. 6) (step S27). Here, the dummy data registration unit 302 sets the request type to “registration”, and generates a dummy data registration request signal in which a key and a value of the generated dummy data are set. Here, in the value, a value that identifies the added virtual node 2 such as the virtual node ID of the added virtual node 2 is set. Then, the dummy data registration unit 302 transmits the generated dummy data registration request signal to the distribution server 1.

そして、ダミーデータ登録要求信号を受信した振り分けサーバ1は、ダミーデータ登録要求信号に設定されたダミーデータのキーに基づき、追加された仮想ノード2を振り分け先に決定し、ダミーデータ登録要求信号を転送する(ステップS28)。   Then, the distribution server 1 that has received the dummy data registration request signal determines the added virtual node 2 as the distribution destination based on the dummy data key set in the dummy data registration request signal, and outputs the dummy data registration request signal. Transfer (step S28).

次に、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータ(原本)を自身の記憶部に記憶する(ステップS29)。なお、当該仮想ノード2は、ダミーデータ(複製)を生成し、コンシステントハッシュのアルゴリズムに従い、複製データを担当する他の仮想ノード2に送信し記憶させる。   Next, the virtual node 2 that has received the dummy data registration request signal stores the dummy data (original) in its storage unit (step S29). The virtual node 2 generates dummy data (replica), and transmits and stores the replicated data to the other virtual node 2 in charge according to the consistent hash algorithm.

振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2にダミーデータが正しく登録されると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS30)。   When the dummy data is correctly registered in the predetermined virtual node 2, the distribution processing unit 10 of the distribution server 1 transmits an OK response signal to the missing data specifying device 3 (step S30).

(手順B:既存の仮想ノードへのダミーデータの削除と再登録処理)
次に、新たな仮想ノード2が追加されたことにより、担当範囲が分割され変更された、既存の仮想ノード2へのダミーデータの削除と再登録処理について説明する。
(Procedure B: Deletion and re-registration processing of dummy data to an existing virtual node)
Next, a description will be given of deletion and re-registration processing of dummy data to an existing virtual node 2 in which the assigned range is divided and changed by adding a new virtual node 2.

図15に示すように、まず、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、担当範囲が分割された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS31)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。   As shown in FIG. 15, first, the dummy data deletion unit 303 of the missing data specifying device 3 refers to the dummy data key table 200 (FIG. 9) and determines the dummy data key of the virtual node 2 in which the assigned range is divided. Obtaining and setting the request type as “delete”, a dummy data deletion request signal is generated (step S31). Then, the dummy data deletion unit 303 transmits the generated dummy data deletion request signal to the distribution server 1.

そして、ダミーデータ削除要求信号を受信した振り分けサーバ1は、ダミーデータ削除要求信号に設定されたダミーデータのキーに基づき、コンシステントハッシュのアルゴリズムに従い、該当する仮想ノード2を振り分け先に決定し、ダミーデータ削除要求信号を転送する(ステップS32)。   Then, the distribution server 1 that has received the dummy data deletion request signal determines the corresponding virtual node 2 as the distribution destination according to the consistent hash algorithm based on the dummy data key set in the dummy data deletion request signal, The dummy data deletion request signal is transferred (step S32).

ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータ(原本)を削除する(ステップS33)。また、当該仮想ノード2は、ダミーデータ(複製)を記憶する他の仮想ノード2に対し、ダミーデータ削除要求信号を送信し、ダミーデータ(複製)を削除させる。   The virtual node 2 that has received the dummy data deletion request signal deletes the dummy data (original) (step S33). In addition, the virtual node 2 transmits a dummy data deletion request signal to the other virtual node 2 that stores the dummy data (replication) to delete the dummy data (replication).

ダミーデータが削除されると、振り分けサーバ1は、欠損データ特定装置3に、OKの応答信号を送信する(ステップS34)。   When the dummy data is deleted, the distribution server 1 transmits an OK response signal to the missing data specifying device 3 (step S34).

ダミーデータ削除要求信号に対するOKの応答信号を受信した欠損データ特定装置3のダミーデータ削除部303は、記憶部32内のダミーデータキーテーブル200から、担当範囲が分割された仮想ノード2の仮想ノードIDのレコードを削除する(ステップS35)。   The dummy data deletion unit 303 of the missing data specifying apparatus 3 that has received the OK response signal to the dummy data deletion request signal, from the dummy data key table 200 in the storage unit 32, the virtual node of the virtual node 2 to which the assigned range is divided The ID record is deleted (step S35).

続いて、ダミーデータ登録部302は、担当範囲が分割された仮想ノード2のダミーデータの登録処理(再登録)を実行する(ステップS36)。なお、このダミーデータの登録処理(再登録)は、前記した手順AのステップS26〜S30(図14参照)と同様である。   Subsequently, the dummy data registration unit 302 executes dummy data registration processing (re-registration) of the virtual node 2 in which the assigned range is divided (step S36). The dummy data registration process (re-registration) is the same as steps S26 to S30 (see FIG. 14) of the procedure A described above.

このようにすることで、新たな仮想ノード2が追加された場合においても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。   In this way, even when a new virtual node 2 is added, it is possible to maintain a state in which dummy data associated with each virtual node 2 is stored in each virtual node 2.

≪(3)仮想ノード消滅時のダミーデータ削除処理≫
次に、データ管理サーバの故障等を契機に、仮想ノード2が消滅した場合における、ダミーデータ削除処理について、図16を参照して説明する。なお、ここでは、ダミーデータの削除処理において、ダミーデータを削除できた場合について説明する。
図16は、仮想ノード2の消滅時におけるダミーデータ削除処理を説明するためのシーケンス図である。欠損データ特定装置3は、仮想ノード2(データ管理サーバ)が消滅した場合、データ欠損(原本データも複製データも消滅)が発生したか否かを、ダミーデータを削除できるか否かにより判定する。ある仮想ノード2(データ管理サーバ)が消滅した場合、振り分けサーバ1は、ダミーデータ削除要求を該当データの複製データを記憶していた他の仮想ノード2に転送することとなる。ここで、該当データを削除できたということは、そのデータが他の仮想ノード2において消滅せず存在することを意味し、これに対し、該当データを削除できないということは、複製データを記憶していた他の仮想ノード2でもそのデータが消滅したことを意味するからである。
≪ (3) Dummy data deletion process when virtual node disappears≫
Next, dummy data deletion processing when the virtual node 2 disappears due to a failure of the data management server or the like will be described with reference to FIG. Here, a case where dummy data can be deleted in the dummy data deletion processing will be described.
FIG. 16 is a sequence diagram for explaining dummy data deletion processing when the virtual node 2 disappears. When the virtual node 2 (data management server) disappears, the missing data specifying device 3 determines whether or not data loss (both original data and duplicated data disappeared) depends on whether or not dummy data can be deleted. . When a certain virtual node 2 (data management server) disappears, the distribution server 1 transfers the dummy data deletion request to the other virtual node 2 storing the duplicate data of the corresponding data. Here, the fact that the corresponding data can be deleted means that the data does not disappear in the other virtual node 2, and the fact that the corresponding data cannot be deleted means that the duplicate data is stored. This is because it means that the data has disappeared also in the other virtual node 2 that has been stored.

まず、振り分けサーバ1の死活監視部11が、仮想ノード2の障害発生を検出すると(ステップS40)、分散ハッシュテーブル100(図5)を参照し、その障害が発生した仮想ノード2のレコードを削除して、分散ハッシュテーブル100を変更する(ステップS41)。   First, when the alive monitoring unit 11 of the distribution server 1 detects the occurrence of a failure in the virtual node 2 (step S40), the record of the virtual node 2 in which the failure has occurred is deleted with reference to the distributed hash table 100 (FIG. 5). Then, the distributed hash table 100 is changed (step S41).

続いて、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、上記のように分散ハッシュテーブル100が変更されると、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を生成し、欠損データ特定装置3に送信する(ステップS42)。なお、分散ハッシュテーブル変更通知部12は、同様に、各仮想ノード2に向けて、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を送信しておく。   Subsequently, when the distributed hash table 100 is changed as described above, the distributed hash table change notification unit 12 of the distribution server 1 generates a distributed hash table change notification signal including the changed distributed hash table 100, and the missing data. It transmits to the specific device 3 (step S42). Similarly, the distributed hash table change notification unit 12 transmits a distributed hash table change notification signal including the changed distributed hash table 100 to each virtual node 2.

欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS43)。   When the node increase / decrease detection unit 301 of the missing data specifying device 3 receives the distributed hash table change notification signal, since the previous distributed hash table 100 exists in the storage unit 32, it is the second and subsequent registrations of the distributed hash table. Recognize. Then, the node increase / decrease detection unit 301 sets the distributed hash table 100 already existing in the storage unit 32 as the old generation distributed hash table 100 (100b), and uses the newly received distributed hash table 100 as the new generation distributed hash table 100. (100a) is stored in the storage unit 32 (step S43).

ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS44)。そして、ノード増減検出部301は、比較の結果、旧世代の分散ハッシュテーブル100bに存在していた仮想ノード2が、新世代の分散ハッシュテーブル100aにおいて、削除されていることを検出する(ステップS45)。   The node increase / decrease detection unit 301 compares the new generation distributed hash table 100a with the old generation distributed hash table 100b (step S44). Then, as a result of the comparison, the node increase / decrease detection unit 301 detects that the virtual node 2 existing in the old generation distributed hash table 100b has been deleted in the new generation distributed hash table 100a (step S45). ).

ノード増減検出部301が、仮想ノード2が削除されていることを検出すると、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、削除された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS46)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。欠損データ特定装置3が実行するそれ以降の処理(ステップS47〜S51)は、前記したステップS32〜S36(図15参照)の処理と同様であるので説明を省略する。   When the node increase / decrease detection unit 301 detects that the virtual node 2 has been deleted, the dummy data deletion unit 303 of the missing data identification device 3 refers to the dummy data key table 200 (FIG. 9), and the deleted virtual The dummy data key of the node 2 is acquired, the request type is set to “delete”, and a dummy data deletion request signal is generated (step S46). Then, the dummy data deletion unit 303 transmits the generated dummy data deletion request signal to the distribution server 1. Subsequent processes (steps S47 to S51) executed by the missing data specifying device 3 are the same as the processes of the above-described steps S32 to S36 (see FIG. 15), and thus description thereof is omitted.

ここで、データ管理サーバの故障などにより、既存の仮想ノード2が消滅すると、コンシステントハッシュのアルゴリズムに従い、該当仮想ノード2の担当範囲が他の仮想ノード2にマージされる。マージ先の仮想ノード2は、旧世代の分散ハッシュテーブル100bにおいて、消滅した仮想ノード2の次のレコードの仮想ノード2である。その仮想ノード2も消滅している場合、その次のレコードの仮想ノード2がマージ先となり、その仮想ノード2も消滅している場合には、その次のレコードの仮想ノード2がマージ先となり、以下、消滅していない仮想ノード2のレコードがマージ先となる。
欠損データ特定装置3(ダミーデータ削除部303およびダミーデータ登録部302)は、マージ先の仮想ノード2に対して、ダミーデータの削除処理と再登録処理を実行する。
このようにすることにより、データ管理サーバの故障等により、仮想ノード2が消滅した場合であっても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。
Here, when the existing virtual node 2 disappears due to a failure of the data management server or the like, the assigned range of the virtual node 2 is merged with another virtual node 2 according to the consistent hash algorithm. The merge-destination virtual node 2 is the virtual node 2 of the next record of the virtual node 2 that disappeared in the old-generation distributed hash table 100b. If the virtual node 2 has also disappeared, the virtual node 2 of the next record becomes the merge destination, and if the virtual node 2 has also disappeared, the virtual node 2 of the next record becomes the merge destination, Hereinafter, the record of the virtual node 2 that has not disappeared becomes the merge destination.
The missing data specifying device 3 (dummy data deletion unit 303 and dummy data registration unit 302) executes dummy data deletion processing and re-registration processing on the merged virtual node 2.
By doing so, even when the virtual node 2 disappears due to a failure of the data management server or the like, the state in which the dummy data associated with each virtual node 2 is stored in each virtual node 2 is maintained. be able to.

≪(4)データ欠損の検出と警報情報の出力処理≫
次に、欠損データ特定装置3によるデータ欠損の検出と警報情報の出力処理について説明する。
本実施形態に係る分散データベースシステム1000では、データの複製の数を超える複数台のデータ管理装置(物理ノード)が一度に故障すると、仮想ノード2の担当範囲の単位でデータ欠損が発生し、その担当範囲に含まれるダミーデータも欠損する。このとき、欠損したデータを管理していた仮想ノード2も消滅するため、仮想ノード2の消滅時の処理として、前記したステップS40〜S47(図16参照)の処理を試みる。しかしながら、データの欠損に合わせてダミーデータも欠損しているため、ダミーデータの削除を行うことができない。よって、欠損データ特定装置3は、振り分けサーバ1から「NG」の応答情報を受信することとなる。この処理以降についてシーケンス図を用いて、詳細に説明する。
≪ (4) Data loss detection and alarm information output processing≫
Next, data loss detection and alarm information output processing by the missing data specifying device 3 will be described.
In the distributed database system 1000 according to the present embodiment, when a plurality of data management devices (physical nodes) exceeding the number of data replications fail at a time, data loss occurs in units of the assigned range of the virtual node 2, Dummy data included in the assigned range is also missing. At this time, since the virtual node 2 that has managed the missing data also disappears, the above-described processing of steps S40 to S47 (see FIG. 16) is attempted as processing when the virtual node 2 disappears. However, the dummy data cannot be deleted because the dummy data is also missing along with the missing data. Therefore, the missing data specifying device 3 receives the response information “NG” from the distribution server 1. This process and after will be described in detail with reference to a sequence diagram.

図17は、仮想ノード2の消滅時におけるデータ欠損の検出と警報情報の出力処理とを説明するためのシーケンス図である。   FIG. 17 is a sequence diagram for explaining data loss detection and alarm information output processing when the virtual node 2 disappears.

ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータを削除しようとするが、ダミーデータ(原本)およびダミーデータ(複製)が全て消滅しているため、ダミーデータが存在せず、削除することができない。よって、振り分けサーバ1は、欠損データ特定装置3に、NGの応答信号を送信する(ステップS60)。   The virtual node 2 that has received the dummy data deletion request signal tries to delete the dummy data. However, since all the dummy data (original) and dummy data (duplicate) have disappeared, the dummy data does not exist and is deleted. I can't. Therefore, the distribution server 1 transmits an NG response signal to the missing data identification device 3 (step S60).

欠損データ特定装置3のダミーデータ削除部303は、NGの応答信号を受信すると、そのダミーデータに対応する仮想ノード2のデータが欠損したと判定する(データ欠損を検出:ステップS61)。   When receiving the NG response signal, the dummy data deleting unit 303 of the missing data specifying device 3 determines that the data of the virtual node 2 corresponding to the dummy data is missing (detects data loss: step S61).

データ欠損が検出されると、警報通知部320は、ダミーデータの削除がNGとなった仮想ノード2の仮想ノードIDと、旧世代の分散ハッシュテーブル100bとにより、欠損したデータのキーのハッシュ値の範囲を特定する(ステップS62)。この欠損したデータのキーのハッシュ値の範囲は、ダミーデータの削除がNGとなった仮想ノード2の担当範囲である。   When data loss is detected, the alarm notification unit 320 uses the virtual node ID of the virtual node 2 in which the deletion of dummy data is NG and the hash value of the key of the missing data based on the distributed hash table 100b of the previous generation. Is specified (step S62). The range of the hash value of the key of the missing data is a range in charge of the virtual node 2 in which the deletion of the dummy data is NG.

警報通知部320は、欠損したデータのハッシュ値の範囲の情報を含むデータ欠損検出信号を生成し(ステップS63)、警報監視装置4の警報受信部40に通知する。   The alarm notification unit 320 generates a data loss detection signal including information on the hash value range of the lost data (step S63), and notifies the alarm reception unit 40 of the alarm monitoring device 4 of the data loss detection signal.

以上説明したように、本実施形態に係る分散データベースシステム1000においては、クラスタを構成するデータ管理サーバが故障等した場合に、欠損データ特定装置3のダミーデータの削除処理によりデータ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる。よって、データ管理サーバが故障等した場合でも、迅速に復旧することができる分散データベースシステムを提供することができる。   As described above, in the distributed database system 1000 according to the present embodiment, when a data management server that constitutes a cluster fails, data loss is detected by the dummy data deletion process of the missing data specifying device 3, The range of the hash value of the key of the missing data can be specified. Therefore, it is possible to provide a distributed database system that can be quickly recovered even if the data management server fails.

なお、本実施形態に係る分散データベースシステム1000は、上述した実施形態に限定されるものではない。例えば、本分散データベースシステム1000では、振り分けサーバ1の振り分け先は、複数の仮想ノード2として説明しているが、必ずしも仮想ノード2である必要はなく、振り分け先が物理ノードである複数のデータ管理サーバであっても、欠損データ特定装置3の行うべき処理や本発明の特徴に変わりはない。   Note that the distributed database system 1000 according to the present embodiment is not limited to the above-described embodiment. For example, in this distributed database system 1000, the distribution destination of the distribution server 1 is described as a plurality of virtual nodes 2. However, the distribution destination is not necessarily the virtual node 2, and a plurality of data managements in which the distribution destination is a physical node. Even if it is a server, the process which should be performed by the missing data specifying device 3 and the features of the present invention are not changed.

1 振り分けサーバ
2 仮想ノード(データ管理サーバ)
3 欠損データ特定装置
4 警報監視装置
5 クライアント装置
10 振り分け処理部
11 死活監視部
12 分散ハッシュテーブル変更通知部(変更通知部)
20 データ管理部
30 制御部
31 入出力部
32 記憶部
40 警報受信部
100 分散ハッシュテーブル(分散ハッシュ情報)
100a 分散ハッシュテーブル(分散ハッシュ情報)(新)
100b 分散ハッシュテーブル(分散ハッシュ情報)(旧)
200 ダミーデータキーテーブル
300 欠損データ特定処理部
301 ノード増減検出部(増減検出部)
302 ダミーデータ登録部
303 ダミーデータ削除部
310 キー生成部
320 警報通知部
1000 分散データベースシステム
1 Distribution server 2 Virtual node (data management server)
3 Missing data identification device 4 Alarm monitoring device 5 Client device 10 Distribution processing unit 11 Alive monitoring unit 12 Distributed hash table change notification unit (change notification unit)
20 Data management unit 30 Control unit 31 Input / output unit 32 Storage unit 40 Alarm reception unit 100 Distributed hash table (distributed hash information)
100a Distributed hash table (distributed hash information) (new)
100b Distributed hash table (distributed hash information) (old)
200 Dummy data key table 300 Missing data identification processing unit 301 Node increase / decrease detection unit (change increase / decrease detection unit)
302 Dummy data registration unit 303 Dummy data deletion unit 310 Key generation unit 320 Alarm notification unit 1000 Distributed database system

Claims (2)

クライアント装置から受信した要求信号を、複数のデータ管理サーバに振り分ける振り分けサーバと、前記振り分けサーバから受信した要求信号に基づき、自身が記憶するデータについて処理を実行する複数の前記データ管理サーバと、前記データ管理サーバに記憶されたデータの欠損を検出する欠損データ特定装置と、を備える分散データベースシステムであって、
前記振り分けサーバは、コンシステントハッシュリング上に、前記データ管理サーバに固有な識別子を所定のハッシュ関数にかけて算出したハッシュ値を昇順に配置すると共に、受信した前記要求信号に付されるデータに固有なキーを前記所定のハッシュ関数にかけて算出したハッシュ値を配置することにより、前記受信した要求信号の振り分け先となる前記データ管理サーバを決定する、振り分け手法を採用すると共に、
前記データ管理サーバそれぞれは、自身に振り分けられた前記要求信号に対応するデータを原本データとして記憶しておき、前記コンシステントハッシュリング上において隣接する所定の複製数の他のデータ管理サーバに対し、前記原本データの複製データを生成して送信することにより、当該複製データを他のデータ管理サーバに記憶させる冗長化手法を採用しており、
前記振り分けサーバは、
前記コンシステントハッシュリング上において前記データ管理サーバそれぞれが振り分け先となる担当範囲を示す、前記データのキーのハッシュ値の範囲を格納する分散ハッシュ情報が記憶される記憶部と、
受信した前記要求信号に付される前記キーのハッシュ値を算出し、前記分散ハッシュ情報に基づき決定した振り分け先の前記データ管理サーバに当該要求信号を転送する振り分け処理部と、
複数の前記データ管理サーバの死活を監視し、前記死活状態に変化があると前記分散ハッシュ情報の前記担当範囲を変更する死活監視部と、
変更された分散ハッシュ情報を含む分散ハッシュ情報変更通知信号を前記欠損データ特定装置に送信する変更通知部と、を備え、
前記欠損データ特定装置は、
前記受信した分散ハッシュ情報変更通知信号に含まれる分散ハッシュ情報を、新世代の分散ハッシュ情報とし、当該受信以前に受信していた分散ハッシュ情報を、旧世代の分散ハッシュ情報として記憶する記憶部と、
前記新世代の分散ハッシュ情報と前記旧世代の分散ハッシュ情報を比較し、前記データ管理サーバの増減を判定する増減検出部と、
前記判定の結果、前記データ管理サーバが増加していた場合、または、前記旧世代の分散ハッシュ情報が記憶されていない場合に、前記データ管理サーバそれぞれに対応付けてダミーデータを生成し、前記生成したダミーデータを含むダミーデータ登録要求信号を、前記振り分けサーバを介して、前記ダミーデータの対になる前記データ管理サーバに送信することにより前記ダミーデータを登録させるダミーデータ登録部と、
前記判定の結果、前記データ管理サーバが減少していた場合、前記減少したデータ管理サーバに対応付けられたダミーデータの削除を要求するダミーデータ削除要求信号を、前記振り分けサーバを介して、前記減少したデータ管理サーバに送信し、前記減少したデータ管理サーバに対応付けられたダミーデータを削除できないことにより、データの欠損を検出するダミーデータ削除部と、
当該減少したデータ管理サーバの前記コンシステントハッシュリング上での担当範囲で示される、前記データのキーのハッシュ値の範囲を、前記旧世代の分散ハッシュ情報に基づき抽出し、前記原本データおよび前記所定の複製数の複製データが失われた欠損データのキーの範囲として特定する警報通知部と、を備えること
を特徴とする分散データベースシステム。
A distribution server that distributes the request signal received from the client device to a plurality of data management servers, a plurality of the data management servers that execute processing on data stored by itself based on the request signal received from the distribution server, A distributed database system comprising a missing data identification device that detects missing data stored in a data management server,
The distribution server arranges hash values calculated by applying an identifier unique to the data management server to a predetermined hash function on the consistent hash ring in ascending order, and is unique to the data attached to the received request signal. Adopting a distribution method to determine the data management server to which the received request signal is distributed by arranging the hash value calculated by applying the key to the predetermined hash function,
Each of the data management servers stores data corresponding to the request signal distributed to itself as original data, and with respect to another data management server having a predetermined number of replicas adjacent on the consistent hash ring, Adopting a redundancy method of storing the duplicate data in another data management server by generating and sending duplicate data of the original data,
The distribution server is
A storage unit for storing distributed hash information for storing a range of hash values of the key of the data, indicating a responsible range to which each of the data management servers is assigned on the consistent hash ring;
A distribution processing unit that calculates a hash value of the key attached to the received request signal and transfers the request signal to the data management server of the distribution destination determined based on the distributed hash information;
A life and death monitoring unit that monitors the life and death of the plurality of data management servers, and changes the assigned range of the distributed hash information when there is a change in the life and death state,
A change notification unit that transmits a distributed hash information change notification signal including the changed distributed hash information to the missing data specifying device, and
The missing data specifying device includes:
A storage unit that stores the distributed hash information included in the received distributed hash information change notification signal as a new generation distributed hash information, and stores the distributed hash information received before the reception as an old generation distributed hash information; ,
An increase / decrease detection unit that compares the new generation distributed hash information with the old generation distributed hash information and determines an increase / decrease in the data management server;
As a result of the determination, if the number of data management servers has increased, or if the old generation distributed hash information is not stored, dummy data is generated in association with each of the data management servers, and the generation A dummy data registration unit that registers the dummy data by transmitting a dummy data registration request signal including the dummy data to the data management server that is a pair of the dummy data via the distribution server;
If the data management server has decreased as a result of the determination, a dummy data deletion request signal for requesting deletion of dummy data associated with the decreased data management server is sent via the distribution server to the decrease. A dummy data deletion unit that detects the loss of data by not being able to delete the dummy data associated with the reduced data management server,
The range of the hash value of the key of the data indicated by the assigned range on the consistent hash ring of the reduced data management server is extracted based on the distributed hash information of the old generation, and the original data and the predetermined data And a warning notification unit that identifies the key range of missing data in which duplicated data of the number of duplicates is lost.
前記欠損データ特定装置は、
ランダムにキーを生成し、当該キーを前記所定のハッシュ関数にかけて算出したハッシュ値が前記新世代の分散ハッシュ情報に示される前記データ管理サーバの中から抽出したデータ管理サーバの振り分け先となる担当範囲に含まれるまで、当該キーの生成と、当該キーのハッシュ値の算出を繰り返し、当該キーが、前記抽出したデータ管理サーバの振り分け先となる担当範囲に含まれる場合に、当該キーを、前記抽出したデータ管理サーバに対応付けた前記ダミーデータのキーとして決定するキー生成部を、
さらに備えることを特徴とする請求項1に記載の分散データベースシステム。
The missing data specifying device includes:
A range that is assigned to a data management server that is generated by randomly generating a key and having the hash value calculated by applying the key to the predetermined hash function extracted from the data management server indicated in the new-generation distributed hash information Until the key is included and the calculation of the hash value of the key is repeated, and when the key is included in the assigned range to be the distribution destination of the extracted data management server, the key is extracted. A key generation unit that determines the key of the dummy data associated with the data management server,
The distributed database system according to claim 1, further comprising:
JP2013166848A 2013-08-09 2013-08-09 Distributed database system Expired - Fee Related JP6025679B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013166848A JP6025679B2 (en) 2013-08-09 2013-08-09 Distributed database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013166848A JP6025679B2 (en) 2013-08-09 2013-08-09 Distributed database system

Publications (2)

Publication Number Publication Date
JP2015035182A true JP2015035182A (en) 2015-02-19
JP6025679B2 JP6025679B2 (en) 2016-11-16

Family

ID=52543635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013166848A Expired - Fee Related JP6025679B2 (en) 2013-08-09 2013-08-09 Distributed database system

Country Status (1)

Country Link
JP (1) JP6025679B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017220141A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management
WO2019008792A1 (en) 2017-07-07 2019-01-10 株式会社Asj Encoding/decoding structure, and distribution data system using same
CN114629908A (en) * 2022-03-28 2022-06-14 浙江邦盛科技股份有限公司 Data fragmentation method based on server node hardware resource density
CN114866799A (en) * 2022-05-11 2022-08-05 北京奇艺世纪科技有限公司 Server scheduling method and device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4185879B2 (en) * 2004-03-31 2008-11-26 大日本印刷株式会社 Luminance adjustment method for transmission illumination type display board, and transmission illumination type display board whose luminance is adjusted by the method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020757A (en) * 2007-07-12 2009-01-29 Toshiba Corp Data registration apparatus, data registration method and program
US20120078849A1 (en) * 2010-09-24 2012-03-29 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
JP2012221419A (en) * 2011-04-13 2012-11-12 Hitachi Ltd Information storage system and data duplication method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020757A (en) * 2007-07-12 2009-01-29 Toshiba Corp Data registration apparatus, data registration method and program
US20120078849A1 (en) * 2010-09-24 2012-03-29 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
JP2012221419A (en) * 2011-04-13 2012-11-12 Hitachi Ltd Information storage system and data duplication method thereof

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017220141A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management
US10754843B2 (en) 2016-06-10 2020-08-25 Fujitsu Limited Method and apparatus for information management
WO2019008792A1 (en) 2017-07-07 2019-01-10 株式会社Asj Encoding/decoding structure, and distribution data system using same
US11064024B1 (en) 2017-07-07 2021-07-13 Asj Inc. Encoding/decoding structure and distributed data system using the same
CN114629908A (en) * 2022-03-28 2022-06-14 浙江邦盛科技股份有限公司 Data fragmentation method based on server node hardware resource density
CN114629908B (en) * 2022-03-28 2023-10-13 浙江邦盛科技股份有限公司 Data slicing method based on hardware resource density of server node
CN114866799A (en) * 2022-05-11 2022-08-05 北京奇艺世纪科技有限公司 Server scheduling method and device
CN114866799B (en) * 2022-05-11 2024-04-05 北京奇艺世纪科技有限公司 Server scheduling method and device

Also Published As

Publication number Publication date
JP6025679B2 (en) 2016-11-16

Similar Documents

Publication Publication Date Title
US11494404B2 (en) Data synchronization in a distributed data storage system
JP6025679B2 (en) Distributed database system
US20170242767A1 (en) Distributed storage and replication system and method
WO2017177941A1 (en) Active/standby database switching method and apparatus
JP5952960B2 (en) Computer system, computer system management method and program
JP2017504880A (en) System and method for supporting persistent partition recovery in a distributed data grid
US11829253B2 (en) Systems and methods for non-blocking backups
JP2016162389A (en) Thin client system, connection management device, virtual machine operating device, method, and program
JP5969315B2 (en) Data migration processing system and data migration processing method
KR101527634B1 (en) Method and apparatus for providing sharding service
CN113190620B (en) Method, device, equipment and storage medium for synchronizing data between Redis clusters
JP5945252B2 (en) Distributed processing system
JP5918802B2 (en) Nodes and programs
KR101750601B1 (en) Cluster management method and data storage system for watching state and changing form of cluster having fault tolerance
JP2008226177A (en) Distributed processing program, system and method
JP5658621B2 (en) Signal distribution duplication destination determination system, signal distribution duplication destination determination method and program
KR101748913B1 (en) Cluster management method and data storage system for selecting gateway in distributed storage environment
JP2013171483A (en) Difference replication system, master database device and slave database device
JP5956364B2 (en) Cluster system
JP5711772B2 (en) Cluster system
JP6093320B2 (en) Distributed processing system
JP6506156B2 (en) Node and gravitation suppression method
JP5815000B2 (en) Nodes and programs
JP5711771B2 (en) Node leave processing system
JP6127005B2 (en) Cluster system server device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161011

R150 Certificate of patent or registration of utility model

Ref document number: 6025679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees