JP2015035182A - Distributed database system - Google Patents
Distributed database system Download PDFInfo
- 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
Links
- 238000013523 data management Methods 0.000 claims abstract description 149
- 238000012217 deletion Methods 0.000 claims abstract description 66
- 230000037430 deletion Effects 0.000 claims abstract description 66
- 230000008859 change Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 53
- 238000001514 detection method Methods 0.000 claims description 39
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 30
- 230000004044 response Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000012806 monitoring device Methods 0.000 description 11
- 230000008034 disappearance Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000010076 replication Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 240000002989 Euphorbia neriifolia Species 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
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
コンシステントハッシュ法では、振り分け先として仮想ノードの概念を導入する場合がある。仮想ノードは、振り分けアルゴリズムにおいて、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.
コンシステントハッシュ法を用いた分散データベースシステムでは、複製の数+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
このようにすることで、クラスタを構成する複数のデータ管理サーバが故障等した場合に、原本データと所定の複製数の複製データが失われたことによる、データの欠損を検出することができる。また、損失データ特定装置が、旧世代の分散ハッシュ情報を記憶しておくことにより、減少したデータ管理装置の担当範囲に基づき、欠損したデータのキーのハッシュ値の範囲を特定することができる。 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
このようにすることで、欠損データ特定装置は、データ管理サーバのコンシステントハッシュリング上での担当範囲に含まれるキーを、そのデータ管理サーバに対応するダミーデータのキーとすることができる。よって、振り分けサーバは、ダミーデータに付されたキーを用いて振り分け処理を実行することにより、ダミーデータを、対応するデータ管理サーバに確実に登録させることができる。 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.
次に、本発明を実施するための形態(以下、「本実施形態」という)における分散データベースシステム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
振り分けサーバ1は、各クライアント装置5からの要求信号を受信し、受信したその要求信号の振り分け先となる仮想ノード2を、コンシステントハッシュ法に基づき決定し、その決定した振り分け先の仮想ノード2に対して、要求信号を送信する。
また、振り分けサーバ1は、欠損データ特定装置3と接続され、その欠損データ特定装置3から、ダミーデータ(詳細は後記)の登録を要求するダミーデータ登録要求信号や、ダミーデータの削除を要求するダミーデータ削除要求信号等を受信する。そして、振り分けサーバ1は、クライアント装置5から受信した要求信号に対する振り分け手法と同じ手法、つまり、コンシステントハッシュ法を適用し同じハッシュ関数に基づいて振り分け先となる仮想ノード2を決定し、それらのダミーデータに関する要求信号を送信する。
さらに、振り分けサーバ1は、仮想ノード2から、要求情報に対する処理結果である応答情報を受信して、クライアント装置5や欠損データ特定装置3に向けて送信する。
また、振り分けサーバ1は、仮想ノード2(データ管理サーバ)の死活監視を行っており、クラスタ内のデータ管理サーバの増設(仮想ノード2の追加)や、データ管理サーバの障害発生等により仮想ノード2が消滅した場合に、振り分け先となる仮想ノード2(データ管理サーバ)を管理する分散ハッシュテーブル(分散ハッシュ情報)100を変更(レコードの追加や削除)する。そして、振り分けサーバ1は、分散ハッシュテーブル100の変更内容を含む分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)を欠損データ特定装置3に送信する。
The
In addition, the
Further, the
In addition, the
仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバである。本実施形態においては、図4に示すように、仮想ノードIDが「A」の仮想ノード2を、仮想ノード「A」と表し、仮想ノードIDが「B」の仮想ノード2を、仮想ノード「B」等のように表して説明する。
各仮想ノード2は、振り分けサーバ1により振り分け先として決定されたデータである原本データと、他の仮想ノード2が原本データの保存先となっている複製データとを記憶する。なお、複製データは、前記したコンシステントハッシュリングにおいて、原本データを記憶する仮想ノード2から、時計回りに複製の数分の仮想ノード2に記憶される。また、仮想ノード2は、欠損データ特定装置3が生成したダミーデータを、通常のデータ(「原本データ」「複製データ」)と同様に、自身の担当範囲に含まれるダミーデータをダミーデータ(原本)として記憶し、他の仮想ノード2の担当範囲に含まれるダミーデータをダミーデータ(複製)として記憶する。
The
Each
欠損データ特定装置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
The missing
Further, upon receiving the distributed hash table change notification signal from the
このように、本実施形態に係る分散データベースシステム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
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
<各装置の構成>
以下、本実施形態に係る分散データベースシステム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
Furthermore, the
本実施形態に係る振り分けサーバ1は、図示を省略した、制御部、入出力部および記憶部を含んで構成される。
The
入出力部は、クライアント装置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
記憶部は、ハードディスクやフラッシュメモリ、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
振り分け処理部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
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
図4に戻り、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の追加(増設)や消滅(減設)を監視しており、クラスタの構成に変化があった場合には、自身の記憶部(図示省略)に記憶した分散ハッシュテーブル100を変更する。具体的には、死活監視部11は、データ管理サーバが増設され、仮想ノード2が追加された場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを追加する。また、死活監視部11は、データ管理サーバが故障等により減設され、仮想ノード2が消滅した場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを削除する。
Returning to FIG. 4, the
なお、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の増減情報を、例えば、次のようにして取得することができる。
各仮想ノード2(データ管理サーバ)は、例えば、分散ハッシュテーブル100上で、次の行の仮想ノード2(データ管理サーバ)に、所定の時間間隔で生存確認情報を送信しており、生存確認情報を所定の時間内に受信できない場合に、その仮想ノード2(データ管理サーバ)がクラスタから離脱したものして、その離脱した仮想ノード2(データ管理サーバ)のIDを含む離脱情報を振り分けサーバ1に送信する。また、クラスタ内に、新たに仮想ノード2が追加されると、その仮想ノード2から、自身がクラスタに参加することを要請する情報を、振り分けサーバ1に送信することにより、振り分けサーバ1が新たな仮想ノード2(データ管理サーバ)がクラスタに追加されることの情報を得る。
この他にも、例えば、振り分けサーバ1から、各仮想ノード2(データ管理サーバ)に対し、所定の時間間隔で、生存確認情報を送信することにより、各仮想ノード2の離脱情報を取得してもよい。また、仮想ノード2(データ管理サーバ)がシステム内に追加されたことの情報を、図示を省略したシステム全体のネットワーク管理サーバ等から取得するようにしてもよい。
Note that the
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
In addition to this, for example, by sending survival confirmation information from the
分散ハッシュテーブル変更通知部(変更通知部)12は、死活監視部11により、分散ハッシュテーブル100が変更されると、その変更された分散ハッシュテーブル100を、分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)に付して、各仮想ノード2および欠損データ特定装置3へ送信する。
なお、分散ハッシュテーブル変更通知部12は、分散ハッシュテーブル100そのものではなく、分散ハッシュテーブル100において追加されるレコードや、削除されるレコードを示す変更部分の情報のみを、分散ハッシュテーブル変更通知信号に付して送信してもよい。
When the distributed hash table 100 is changed by the
Note that the distributed hash table
なお、本実施形態においては、図4に示すように、振り分けサーバ1は1つとして説明するが、振り分けサーバ1は複数であってもよい。その場合には、複数の振り分けサーバ1のうちの1つが代表(マスタ)となり、上記において説明した振り分け処理部10が実行する以外の処理、つまり、死活監視に基づく分散ハッシュテーブル100の変更処理や、分散ハッシュテーブルの変更通知の送信処理を行う。
In the present embodiment, as shown in FIG. 4, one
≪仮想ノード(データ管理サーバ)≫
仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバであり、データ管理部20と、図示を省略した、入出力部および記憶部とを含んで構成される。
≪Virtual node (data management server) ≫
The
データ管理部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
The storage unit (not shown) stores a distributed hash table 100 in which the same data as the
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
また、データ管理部20は、欠損データ特定装置3から、振り分けサーバ1を介して、ダミーデータ受信した場合には、そのダミーデータを原本として自身の記憶部に記憶する。また、データ管理部20は、自身の記憶部に記憶された分散ハッシュテーブル100を参照し、自身が記憶するダミーデータ(原本)について、通常のデータと同様に、予め設定された複製の数nだけダミーデータ(複製)を生成し、コンシステントハッシュリング上で時計回りの方向にn個(分散ハッシュテーブル100では、自身の行の下n行まで)の仮想ノード2に対して、生成したダミーデータ(複製)を送信することにより保存させる。
Further, when the dummy data is received from the missing
入出力部(図示省略)は、振り分けサーバ1や、他の仮想ノード2との間の情報の入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。なお、仮想ノード2の場合は、実体としてデータ管理サーバ(物理ノード)の入出力部が仮想ノード2の入出力部の機能を具備する。
An input / output unit (not shown) inputs / outputs information to / from the
記憶部は、ハードディスクやフラッシュメモリ、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
≪欠損データ特定装置≫
欠損データ特定装置3は、仮想ノード2それぞれと対となるダミーデータを生成し、振り分けサーバ1を介して、各仮想ノード2にダミーデータ(原本)およびダミーデータ(複製)として記憶させる。また、欠損データ特定装置3は、仮想ノード2が消滅した場合に、ダミーデータの削除を要求するダミーデータ削除要求信号(図7参照)を、振り分けサーバ1を介して、仮想ノード2に送信し、ダミーデータを削除できないこと(NG)の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。また、そのダミーデータと対になる仮想ノード2の担当範囲を、変更前の(旧世代の)分散ハッシュテーブル100(100b)を参照することにより特定する。
≪Missing data identification device≫
The missing
図4を参照して、本実施形態に係る欠損データ特定装置3の構成例について説明する。
本実施形態に係る欠損データ特定装置3は、図4に示すように、制御部30、入出力部31および記憶部32を含んで構成される。
With reference to FIG. 4, a configuration example of the missing
As shown in FIG. 4, the missing
入出力部31は、振り分けサーバ1や、警報監視装置4等との間の情報の入出力を行う。この入出力部31は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
The input /
記憶部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
欠損データ特定処理部300は、仮想ノード2それぞれと対となるダミーデータを生成し、該当する仮想ノード2に記憶させると共に、変更後の(新世代の)分散ハッシュテーブル100aと変更前の(旧世代の)分散ハッシュテーブル100bを比較することにより、仮想ノード2(データ管理サーバ)の増減を検出する。そして、欠損データ特定処理部300は、仮想ノード2(データ管理サーバ)の消滅を検出した場合には、その仮想ノード2と対となるダミーデータのキーを付したダミーデータ削除要求信号(図7参照)を送信し、ダミーデータが削除できない旨の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。そして、欠損データ特定処理部300は、そのダミーデータと対になる仮想ノード2の担当範囲を変更前(旧世代の)分散ハッシュテーブル100bを参照することにより特定する。
The missing data
この欠損データ特定処理部300は、ノード増減検出部(増減検出部)301と、ダミーデータ登録部302と、ダミーデータ削除部303とを備える。
The missing data
ノード増減検出部(増減検出部)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
ノード増減検出部301は、記憶部32に記憶された新世代の分散ハッシュテーブル100aと、旧世代の分散ハッシュテーブル100bとを比較し、その差分を検出することにより、仮想ノード2(データ管理サーバ)の追加若しくは消滅を検出する。具体的には、ノード増減検出部301は、新世代の分散ハッシュテーブル100aに仮想ノード2の新たなレコードが挿入されていることにより、仮想ノード2が追加されたことを検出する。一方、ノード増減検出部301は、新世代の分散ハッシュテーブル100aにおいて、既存の仮想ノード2のレコードが削除されていれることにより、仮想ノード2が消滅したことを検出する。
The node increase /
ダミーデータ登録部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
図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
図4に戻り、ダミーデータ削除部303は、ノード増減検出部301が、クラスタを構成する仮想ノード2が消滅したことを検出した場合に、後記するダミーデータキーテーブル200から、消滅が検出された仮想ノード2に対応するダミーデータのキーを取得し、ダミーデータ削除要求信号(図7)を生成し、振り分けサーバ1へ送信する。
Returning to FIG. 4, when the node increase /
図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
また、ダミーデータ削除部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
図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
On the other hand, when receiving a response signal with “NG” from the
キー生成部310は、図9に示すように、データ管理サーバや仮想ノード2に固有な識別子(ここでは、「仮想ノードID」とする。)と、ダミーデータのキーとを対応付けた情報であるダミーデータキーテーブル200を生成する。
As shown in FIG. 9, the
図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
キー生成部310は、ダミーデータキーテーブル200に登録された仮想ノードIDの値を取得し、これを、ダミーデータ投入先仮想ノードIDとする。そして、キー生成部310は、このダミーデータ投入先仮想ノードIDと、分散ハッシュテーブル100(100a)に基づき、以下に示すキー生成アルゴリズムを用いて、ダミーデータのキーを生成する。
The
(キー生成アルゴリズム)
図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
Here, since the hash function is a one-way function, a key cannot be generated from the hash value. Therefore, the
Note that the
まず、キー生成部310は、ダミーデータキーテーブル200の1つの行(1行目から順に取得)に登録された仮想ノードIDの値を取得し、これをダミーデータ投入先仮想ノードIDとする。そして、ダミーデータ投入先仮想ノードへのダミーデータの登録要求のキーとして、ランダムな文字列を生成する(ステップS1)。若しくは、キー生成部310は、「dummydata」など意味をもった文字列にランダム形成した文字列を繋げたキーを生成してもよい。
First, the
次に、キー生成部310は、振り分けサーバ1の振り分け処理部10と同じハッシュ関数を用いて、ステップS1において生成したキーのハッシュ値を計算する(ステップS2)。
Next, the
続いて、キー生成部310は、生成したキーのハッシュ値を用いて、分散ハッシュテーブル100(100a)を参照し、そのキーのハッシュ値を担当範囲とする振り分け先仮想ノードの仮想ノードIDを算出する(ステップS3)。
Subsequently, the
そして、キー生成部310は、算出した仮想ノードIDと、ダミーデータ投入先仮想ノードIDとが一致するか否かを判定する(ステップS4)。
Then, the
ステップ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
このようにすることで、キー生成部310は、各仮想ノードIDに対応するダミーデータのキーを生成し、ダミーデータキーテーブル200に登録する。
In this way, the
図4に戻り、警報通知部320は、ダミーデータ削除部303が「NG」が付された応答信号を受信したことにより、データが欠損したと判定した場合に、そのダミーデータのキーに対応する仮想ノード2の担当範囲を、旧世代の分散ハッシュテーブル100bを参照することにより特定する。そして、警報通知部320は、欠損したデータのキーのハッシュ値の範囲として、当該仮想ノード2の担当範囲を付したデータ欠損検出信号を生成し、警報監視装置4に通知する。なお、警報通知部320は、このデータ欠損検出信号を、例えば、SNMP(Simple Network Management Protocol)トラップとして、警報監視装置4に送信するようにしてもよい。
Returning to FIG. 4, the
≪警報監視装置≫
警報監視装置4は、欠損データ特定装置3からデータ欠損検出信号を受信し、データ欠損を検出したことと、その欠損データのキーのハッシュ値の範囲とを、出力手段(図示省略)に出力する。
警報監視装置4は、制御部と、入出力部と、記憶部と(いずれも図示省略)を備える装置であり、制御部が備える警報受信部40が、データ欠損検出信号を受信することにより、分散データベースシステム1000の管理者等に、データ欠損の検出を報知する。
≪Alarm monitoring device≫
The alarm monitoring device 4 receives the data loss detection signal from the missing
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
<分散データベースシステムの欠損データ特定処理>
次に、本実施形態に係る分散データベースシステム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
Thereafter, the missing
Then, when the
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
まず、振り分けサーバ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
The distributed hash table
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に既に登録された分散ハッシュテーブル100がないことから、分散ハッシュテーブル100の初回登録であると判定し、分散ハッシュテーブル変更通知信号から分散ハッシュテーブル100を抽出して、記憶部32に分散ハッシュテーブル100を記憶する(ステップS12)。
When the node increase /
次に、欠損データ特定装置3のキー生成部310は、記憶部32に記憶した分散ハッシュテーブル100の仮想ノードIDに基づいて、ダミーデータキーテーブル200を生成し、図10において説明した、ダミーデータのキー生成処理を実行する(ステップS13)。そして、キー生成部310は、ダミーデータキーテーブル200(図9)を完成させ、記憶部32に記憶する。
Next, the
続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成し(ステップS14)、振り分けサーバ1に送信する。
なお、このダミーデータ登録要求信号には、要求種別「登録」と、生成したダミーデータのキーと、バリューとが設定される。なお、バリューとしては、例えば仮想ノードIDなどの仮想ノード2を特定する値がダミーデータキーテーブル200を参照して設定される。
Subsequently, the dummy data registration unit 302 of the missing
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
ダミーデータ登録要求信号を受信した振り分けサーバ1は、振り分け処理部10により、ダミーデータ登録要求信号に設定されたダミーデータのキーをハッシュ関数にかけることによりハッシュ値を算出する。そして、振り分け処理部10は、記憶部(図示省略)に記憶された分散ハッシュテーブル100を参照することにより、振り分け先となる仮想ノード2を決定し、そのダミーデータ登録要求信号を転送する(ステップS15)。このとき、ダミーデータ登録要求信号の転送先となる仮想ノード2は、欠損データ特定装置3のキー生成部310が設定したダミーデータ投入先仮想ノード、つまり、ダミーデータ登録要求信号のバリューとして設定された仮想ノード2となる。
Upon receiving the dummy data registration request signal, the
続いて、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータを自身の記憶部に記憶する(ステップS16)。なお、振り分けサーバ1やデータ管理サーバの仮想ノード2にとっては、ダミーデータは通常のデータとなんら変わらないデータであり、ここで記憶されるダミーデータは、ダミーデータ(原本)となる。仮想ノード2のデータ管理部20は、コンシステントハッシュのアルゴリズムに従い、自身に記憶された分散ハッシュテーブル100を参照し、予め設定された複製の数分のダミーデータ(複製)を生成して、複製データの記憶を担当する他の仮想ノード2にそのダミーデータ(複製)を送信し記憶させる。
Subsequently, the
振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2からダミーデータを登録した旨の応答情報を受信すると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS17)。
When receiving the response information indicating that the dummy data has been registered from the predetermined
欠損データ特定装置3のダミーデータ登録部302は、このようにして、全ての仮想ノード2に、ダミーデータを登録する。これにより、欠損データ特定装置3による仮想ノード2ごとの欠損データ検出の準備が整うものとなる。
In this way, the dummy data registration unit 302 of the missing
≪(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
図12は、仮想ノード2の追加時における、既存の仮想ノード2の担当範囲の分割を説明するための図である。図13は、仮想ノード2の追加時における、分散ハッシュテーブル100の変更を説明するための図である。
FIG. 12 is a diagram for explaining division of the assigned range of the existing
データ管理サーバが増設等されることにより、仮想ノード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
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
次に、ダミーデータ登録処理の流れについて説明する。図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
図14に示すように、まず、振り分けサーバ1の死活監視部11が、新たな仮想ノード2(データ管理サーバ)の追加を検出すると(ステップS20)、分散ハッシュテーブル100を参照し、既存の仮想ノード2の担当範囲の広さなどを基準にして、例えば、担当範囲が広い順に仮想ノード2を選択するようにして、既存の仮想ノード2から分割対象となる仮想ノードを選定する。
As shown in FIG. 14, first, when the
死活監視部11は、選定した仮想ノード2の担当範囲を、コンシステントハッシュリングとしては、その担当範囲内に新たに追加する仮想ノード2の仮想ノードIDのハッシュ値の点(丸印)を追加することで分割する(図12参照)。このことは、死活監視部11が、分散ハッシュテーブル100において、新たに追加される仮想ノード2のレコードを、分割対象となる仮想ノードのレコードの1つ前に追加することで実現される(図13参照)。以上のようにして、死活監視部11は、新たな仮想ノード2を追加して、分散ハッシュテーブル100を変更する(ステップS21)。
The
続いて、振り分けサーバ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
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS23)。
When the node increase /
ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS24)。そして、ノード増減検出部301は、比較の結果、新世代の分散ハッシュテーブル100aに、新たな仮想ノード2が追加されていることを検出する(ステップS25)。
The node increase /
仮想ノード2が追加されたことをノード増減検出部301が検出すると、ダミーデータ登録部302は、追加された仮想ノード2に対して、ダミーデータの登録処理を実行する(以下、「手順A」と呼ぶことがある。)。一方、分散ハッシュテーブル100において、追加された仮想ノード2のレコードの次のレコードの仮想ノード2について、担当範囲が分割され変更となるため、ダミーデータ削除部303が既存のダミーデータを削除し、その後ダミーデータ登録部302が再度登録する処理を実行する(以下、「手順B」と呼ぶことがある。図15参照。)。以下、具体的に説明する。
When the node increase /
(手順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
Then, the
続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成する(ステップS27)。ここで、ダミーデータ登録部302は、要求種別を「登録」とし、生成したダミーデータのキーと、バリューとを設定したダミーデータ登録要求信号を生成する。なお、ここでバリューには、追加された仮想ノード2の仮想ノードIDなどの、追加された仮想ノード2を特定する値が設定される。そして、ダミーデータ登録部302は、生成したダミーデータ登録要求信号を振り分けサーバ1に送信する。
Subsequently, the dummy data registration unit 302 of the missing
そして、ダミーデータ登録要求信号を受信した振り分けサーバ1は、ダミーデータ登録要求信号に設定されたダミーデータのキーに基づき、追加された仮想ノード2を振り分け先に決定し、ダミーデータ登録要求信号を転送する(ステップS28)。
Then, the
次に、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータ(原本)を自身の記憶部に記憶する(ステップS29)。なお、当該仮想ノード2は、ダミーデータ(複製)を生成し、コンシステントハッシュのアルゴリズムに従い、複製データを担当する他の仮想ノード2に送信し記憶させる。
Next, the
振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2にダミーデータが正しく登録されると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS30)。
When the dummy data is correctly registered in the predetermined
(手順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
図15に示すように、まず、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、担当範囲が分割された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS31)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。
As shown in FIG. 15, first, the dummy data deletion unit 303 of the missing
そして、ダミーデータ削除要求信号を受信した振り分けサーバ1は、ダミーデータ削除要求信号に設定されたダミーデータのキーに基づき、コンシステントハッシュのアルゴリズムに従い、該当する仮想ノード2を振り分け先に決定し、ダミーデータ削除要求信号を転送する(ステップS32)。
Then, the
ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータ(原本)を削除する(ステップS33)。また、当該仮想ノード2は、ダミーデータ(複製)を記憶する他の仮想ノード2に対し、ダミーデータ削除要求信号を送信し、ダミーデータ(複製)を削除させる。
The
ダミーデータが削除されると、振り分けサーバ1は、欠損データ特定装置3に、OKの応答信号を送信する(ステップS34)。
When the dummy data is deleted, the
ダミーデータ削除要求信号に対するOKの応答信号を受信した欠損データ特定装置3のダミーデータ削除部303は、記憶部32内のダミーデータキーテーブル200から、担当範囲が分割された仮想ノード2の仮想ノードIDのレコードを削除する(ステップS35)。
The dummy data deletion unit 303 of the missing
続いて、ダミーデータ登録部302は、担当範囲が分割された仮想ノード2のダミーデータの登録処理(再登録)を実行する(ステップS36)。なお、このダミーデータの登録処理(再登録)は、前記した手順AのステップS26〜S30(図14参照)と同様である。
Subsequently, the dummy data registration unit 302 executes dummy data registration processing (re-registration) of the
このようにすることで、新たな仮想ノード2が追加された場合においても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。
In this way, even when a new
≪(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
FIG. 16 is a sequence diagram for explaining dummy data deletion processing when the
まず、振り分けサーバ1の死活監視部11が、仮想ノード2の障害発生を検出すると(ステップS40)、分散ハッシュテーブル100(図5)を参照し、その障害が発生した仮想ノード2のレコードを削除して、分散ハッシュテーブル100を変更する(ステップS41)。
First, when the
続いて、振り分けサーバ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
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS43)。
When the node increase /
ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS44)。そして、ノード増減検出部301は、比較の結果、旧世代の分散ハッシュテーブル100bに存在していた仮想ノード2が、新世代の分散ハッシュテーブル100aにおいて、削除されていることを検出する(ステップS45)。
The node increase /
ノード増減検出部301が、仮想ノード2が削除されていることを検出すると、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、削除された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS46)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。欠損データ特定装置3が実行するそれ以降の処理(ステップS47〜S51)は、前記したステップS32〜S36(図15参照)の処理と同様であるので説明を省略する。
When the node increase /
ここで、データ管理サーバの故障などにより、既存の仮想ノード2が消滅すると、コンシステントハッシュのアルゴリズムに従い、該当仮想ノード2の担当範囲が他の仮想ノード2にマージされる。マージ先の仮想ノード2は、旧世代の分散ハッシュテーブル100bにおいて、消滅した仮想ノード2の次のレコードの仮想ノード2である。その仮想ノード2も消滅している場合、その次のレコードの仮想ノード2がマージ先となり、その仮想ノード2も消滅している場合には、その次のレコードの仮想ノード2がマージ先となり、以下、消滅していない仮想ノード2のレコードがマージ先となる。
欠損データ特定装置3(ダミーデータ削除部303およびダミーデータ登録部302)は、マージ先の仮想ノード2に対して、ダミーデータの削除処理と再登録処理を実行する。
このようにすることにより、データ管理サーバの故障等により、仮想ノード2が消滅した場合であっても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。
Here, when the existing
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
By doing so, even when the
≪(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
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
図17は、仮想ノード2の消滅時におけるデータ欠損の検出と警報情報の出力処理とを説明するためのシーケンス図である。
FIG. 17 is a sequence diagram for explaining data loss detection and alarm information output processing when the
ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータを削除しようとするが、ダミーデータ(原本)およびダミーデータ(複製)が全て消滅しているため、ダミーデータが存在せず、削除することができない。よって、振り分けサーバ1は、欠損データ特定装置3に、NGの応答信号を送信する(ステップS60)。
The
欠損データ特定装置3のダミーデータ削除部303は、NGの応答信号を受信すると、そのダミーデータに対応する仮想ノード2のデータが欠損したと判定する(データ欠損を検出:ステップS61)。
When receiving the NG response signal, the dummy data deleting unit 303 of the missing
データ欠損が検出されると、警報通知部320は、ダミーデータの削除がNGとなった仮想ノード2の仮想ノードIDと、旧世代の分散ハッシュテーブル100bとにより、欠損したデータのキーのハッシュ値の範囲を特定する(ステップS62)。この欠損したデータのキーのハッシュ値の範囲は、ダミーデータの削除がNGとなった仮想ノード2の担当範囲である。
When data loss is detected, the
警報通知部320は、欠損したデータのハッシュ値の範囲の情報を含むデータ欠損検出信号を生成し(ステップS63)、警報監視装置4の警報受信部40に通知する。
The
以上説明したように、本実施形態に係る分散データベースシステム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
なお、本実施形態に係る分散データベースシステム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
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
3 Missing data identification device 4 Alarm monitoring device 5
20 Data management unit 30
100a Distributed hash table (distributed hash information) (new)
100b Distributed hash table (distributed hash information) (old)
200 Dummy data key table 300 Missing data
302 Dummy data registration unit 303 Dummy
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:
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)
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)
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)
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 |
-
2013
- 2013-08-09 JP JP2013166848A patent/JP6025679B2/en not_active Expired - Fee Related
Patent Citations (3)
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)
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 |