JP6025679B2 - 分散データベースシステム - Google Patents

分散データベースシステム Download PDF

Info

Publication number
JP6025679B2
JP6025679B2 JP2013166848A JP2013166848A JP6025679B2 JP 6025679 B2 JP6025679 B2 JP 6025679B2 JP 2013166848 A JP2013166848 A JP 2013166848A JP 2013166848 A JP2013166848 A JP 2013166848A JP 6025679 B2 JP6025679 B2 JP 6025679B2
Authority
JP
Japan
Prior art keywords
data
virtual node
management server
key
dummy data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013166848A
Other languages
English (en)
Other versions
JP2015035182A (ja
Inventor
文彦 澤崎
文彦 澤崎
近藤 悟
悟 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2015035182A publication Critical patent/JP2015035182A/ja
Application granted granted Critical
Publication of JP6025679B2 publication Critical patent/JP6025679B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、複数のサーバが協調してデータ処理を行うクラスタ構成の分散データベースシステムに関する。
クラウドコンピューティングのストレージには、多量のデータを保持し、効率的に処理する一方で、故障等が起きた場合でもデータの損失がないことが求められる。これに関し、フロントエンドとなるサーバと、複数のサーバで構成され、多量のデータをサーバ毎に分散して保持・管理するクラスタと、を備える分散データベースシステムが提案されている。
フロントエンドとなるサーバは、データの登録、削除、参照等の要求を受け付け、それらの要求を、データを保持・管理するサーバに振り分ける。データを保持・管理するサーバは、振り分けられた要求を処理する。
また、データを保持するサーバは、そのデータの複製(複製データ)を1つ以上生成し、サーバ間でその複製データを送受信することにより、複製データを生成したサーバ以外の他のサーバが複製データを保持する。これは、1つのサーバに故障等が起きた場合でも、複製データが存在することによりデータの欠損を避けるためである。
なお、以下において、フロントエンドとなるサーバを振り分けサーバ、クラスタを構成し、データを分散して保持するサーバそれぞれをデータ管理サーバと呼ぶ。
データを分散して保持するために、振り分けサーバは、どのデータをどのデータ管理サーバに振り分ければよいかの組み合わせを管理し、データの登録、削除、参照等の要求を正しい振り分け先に転送する必要がある。また、データ管理サーバの故障等が起きた場合には、データ管理サーバのクラスタ構成が変化するため、どのデータをどのデータ管理サーバに振り分ければよいかの組合せを、構成の変化に応じて変更する必要がある。これらを実現するための技術として、コンシステントハッシュ法を用いた技術が知られている(例えば、特許文献1、非特許文献1参照)。
コンシステントハッシュ法では、振り分け先として仮想ノードの概念を導入する場合がある。仮想ノードは、振り分けアルゴリズムにおいて、1つのデータ管理サーバ(物理ノード)に対応付けて設定される論理的なデータ管理サーバであり、物理的なデータ管理サーバとは多対1の関係にある。この仮想ノードは、クラスタを構成する物理的なデータ管理サーバの負荷のばらつきを低減させるために導入される。
また、コンシステントハッシュ法において、データの登録、削除等の要求には、そのデータを振り分けるためのキー(そのデータに固有な識別子)となる情報が設定される。例えば、データの登録要求では、そのデータ登録要求に設定されたキーを所定のハッシュ関数にかけて、そのキーのハッシュ値を求める。そして、そのキーのハッシュ値と、分散ハッシュテーブルとにより、その要求の振り分け先となるデータ管理サーバ(仮想ノード)を求め、そのデータ管理サーバ(仮想ノード)に当該要求が転送され、登録処理が実行される。なお、以降の説明においては、データ管理サーバに仮想ノードが設定されているものとして説明する。
図1は、コンシステントハッシュ法のアルゴリズムの説明するための図である。コンシステントハッシュ法では、ハッシュ関数の出力であるハッシュ値の集合を線で表し、図1(a)に示すように、その最大値と最小値とを結んでリング(コンシステントハッシュリング)として表現する。コンシステントハッシュリング上には、各仮想ノードの仮想ノードID(「A」,「B」,…,「Y」)に対応したハッシュ値(「a」,「b」,…,「y」)が配置される。なお、以下の説明および図において、例えば、仮想ノードIDが「A」の仮想ノードのことを仮想ノード「A」、仮想ノードIDが「B」の仮想ノードのことを仮想ノード「B」等と表現することがある。
そして、ある仮想ノード(例えば、仮想ノード「B」)は、コンシステントハッシュリング上での自身のハッシュ値「b」から反時計回り方向に隣接する仮想ノード(仮想ノード「A」)のハッシュ値「a」の次のハッシュ値から、その仮想ノード(仮想ノード「B」)自身のハッシュ値「b」までのハッシュ値の範囲(a<仮想ノード「B」が担当するハッシュ値≦b)を、担当範囲とする。
また、図1(b)は分散ハッシュテーブルであり、図1(a)に示したコンシステントハッシュリングをテーブルで表現したものである。分散ハッシュテーブルでは、仮想ノードのハッシュ値の順にレコードがソートされ、1行上のレコードの仮想ノードのハッシュ値の次の値から、自身の仮想ノードのハッシュ値までの範囲が、その仮想ノードが担当するハッシュ値の担当範囲となる。図1(b)では、例えば、仮想ノード「B」のレコードの1行上のレコードを参照し、そのレコードに示される仮想ノード「A」のハッシュ値「a」の次のハッシュ値から、その仮想ノード(仮想ノード「B」)自身のハッシュ値「b」までのハッシュ値の範囲(a<仮想ノード「B」が担当するハッシュ値≦b)が、仮想ノード「B」が担当するハッシュ値の範囲(担当範囲)となる。
つまり、この図1(a)のコンシステントハッシュリングと、図1(b)の分散ハッシュテーブルは、共に、各仮想ノードの担当範囲(ハッシュ値の範囲)を表している。
コンシステントハッシュ法では、登録要求等のキーのハッシュ値をハッシュ関数により求め、そのハッシュ値が、どの仮想ノードが担当するハッシュ値の範囲(担当範囲)に含まれるかにより、その登録要求等の振り分け先となる仮想ノードを決定する。
特開2013−025497号公報
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>
コンシステントハッシュ法を用いた分散データベースシステムでは、複製の数+1(冗長数)以上のデータ管理サーバが一度に故障した場合に、特定の仮想ノードの担当範囲のデータが全て欠損する可能性がある。
図2は、コンシステントハッシュ法における、データ管理サーバの原本データと複製データの保存手法を説明するための図である。
複製の数がnの場合、仮想ノードに対応するデータ管理サーバは、該当仮想ノードのコンシステントハッシュリング上での担当範囲のデータである原本データと、コンシステントハッシュリングの該当仮想ノードから反時計回り方向に連続するn個の仮想ノードの複製データとを保存する。例えば、複製の数が「2」(n=2)の場合、図2に示すように、仮想ノード「C」(仮想ノードID:「C」)に対応するデータ管理サーバは、仮想ノード「C」の原本データと、仮想ノード「A」,「B」それぞれの原本データを複製した複製データとが保存される。言い換えると、ある仮想ノードの複製データは、その仮想ノードから時計回り方向に連続するn個の仮想ノードの、対応するデータ管理サーバにおいて保存される。図2においては、仮想ノード「A」の複製データは、仮想ノード「B」,「C」に対応するデータ管理サーバにおいて保存される。
以上を踏まえると、コンシステントハッシュリングに沿って、複製の数n+1個(冗長数)以上の連続する仮想ノードについて、これらの仮想ノードに対応するデータ管理サーバが一度に故障等すると、欠損データが発生する。なお、本実施形態における欠損データとは、クラスタを構成する全てのデータ管理サーバにおいて、原本データ、複製データのいずれもが欠損したデータを意味する。例えば、複製の数が「2」の場合、仮想ノード「A」,「B」,「C」に対応するデータ管理サーバが一度に故障等すると、仮想ノード「A」のコンシステントハッシュリング上での担当範囲のデータが欠損データとなる。
データが欠損した場合、バックアップデータ等により、故障した仮想ノードの担当範囲に含まれる欠損した各データをリストアする必要がある。しかし、仮想ノードは、対応するデータ管理サーバが故障すると、分散ハッシュテーブルやコンシステントハッシュリングから消滅してしまうため、どの仮想ノードのデータが欠損したかを特定するのは難しい。
図3は、データ管理サーバが故障した場合の仮想ノードの担当範囲の変更を説明するための図である。
データ管理サーバが故障すると、対応する仮想ノードは消滅する。具体的には、分散ハッシュテーブルから該当仮想ノードのレコードが削除される。その結果、該当仮想ノードの担当範囲は、分散ハッシュテーブルにおいて次のレコードとなる仮想ノードに引き継がれる。図3(a)に示す例では、仮想ノード「B」に対応するデータ管理サーバが故障したため、該当する仮想ノード「B」のレコードが削除されることを示している。その結果、仮想ノード「B」の担当範囲は、次のレコードの仮想ノード「C」に引き継がれる。
コンシステントハッシュリングでは、仮想ノードが消滅すると、該当仮想ノードのハッシュ値の点がコンシステントハッシュリング上から削除される。よって、該当仮想ノードの担当範囲は、時計回り方向に隣接する仮想ノードの担当範囲にマージされる。図3(b)に示す例では、故障した仮想ノード「B」のハッシュ値「b」が削除され、ハッシュ値「a」の次の値からハッシュ値「c」までの範囲が、消滅した仮想ノード「B」に時計回り方向に隣接する仮想ノード「C」の担当範囲になることを示している。
このように、データが欠損した場合の仮想ノードの担当範囲は、他の仮想ノードの担当範囲の一部となり、故障時の分散ハッシュテーブルは変更されてしまう。そのため、故障した後の情報から欠損したデータの範囲を求めることは難しい。さらに、複数台が故障等した状況では、故障順なども関係するため、欠損したデータの範囲を求めるのはさらに困難となる。したがって、従来技術では、欠損したデータのキーの範囲を特定することができないため、データ管理サーバのクラスタの全データとバックアップデータとの突合せ確認を行い、欠損したデータを特定してリストアを行っていた。よって、データが多量な場合には、復旧までに多くの時間を要するという問題があった。
このような背景に鑑みて本発明がなされたのであり、本発明は、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる分散データベースシステムを提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、クライアント装置から受信した要求信号を、複数のデータ管理サーバに振り分ける振り分けサーバと、前記振り分けサーバから受信した要求信号に基づき、自身が記憶するデータについて処理を実行する複数の前記データ管理サーバと、前記データ管理サーバに記憶されたデータの欠損を検出する欠損データ特定装置と、を備える分散データベースシステムであって、前記振り分けサーバが、コンシステントハッシュリング上に、前記データ管理サーバに固有な識別子を所定のハッシュ関数にかけて算出したハッシュ値を昇順に配置すると共に、受信した前記要求信号に付されるデータに固有なキーを前記所定のハッシュ関数にかけて算出したハッシュ値を配置することにより、前記受信した要求信号の振り分け先となる前記データ管理サーバを決定する、振り分け手法を採用すると共に、前記データ管理サーバそれぞれが、自身に振り分けられた前記要求信号に対応するデータを原本データとして記憶しておき、前記コンシステントハッシュリング上において隣接する所定の複製数の他のデータ管理サーバに対し、前記原本データの複製データを生成して送信することにより、当該複製データを他のデータ管理サーバに記憶させる冗長化手法を採用しており、前記振り分けサーバが、前記コンシステントハッシュリング上において前記データ管理サーバそれぞれが振り分け先となる担当範囲を示す、前記データのキーのハッシュ値の範囲を格納する分散ハッシュ情報が記憶される記憶部と、受信した前記要求信号に付される前記キーのハッシュ値を算出し、前記分散ハッシュ情報に基づき決定した振り分け先の前記データ管理サーバに当該要求信号を転送する振り分け処理部と、複数の前記データ管理サーバの死活を監視し、死活状態に変化があると前記分散ハッシュ情報の前記担当範囲を変更する死活監視部と、変更された分散ハッシュ情報を含む分散ハッシュ情報変更通知信号を前記欠損データ特定装置に送信する変更通知部と、を備え、前記欠損データ特定装置が、前記受信した分散ハッシュ情報変更通知信号に含まれる分散ハッシュ情報を、新世代の分散ハッシュ情報とし、当該受信以前に受信していた分散ハッシュ情報を、旧世代の分散ハッシュ情報として記憶する記憶部と、前記新世代の分散ハッシュ情報と前記旧世代の分散ハッシュ情報を比較し、前記データ管理サーバの増減を判定する増減検出部と、前記判定の結果、前記データ管理サーバが増加していた場合、または、前記旧世代の分散ハッシュ情報が記憶されていない場合に、前記データ管理サーバそれぞれに対応付けてダミーデータを生成し、前記生成したダミーデータを含むダミーデータ登録要求信号を、前記振り分けサーバを介して、前記ダミーデータの対になる前記データ管理サーバに送信することにより前記ダミーデータを登録させるダミーデータ登録部と、前記判定の結果、前記データ管理サーバが減少していた場合、前記減少したデータ管理サーバに対応付けられたダミーデータの削除を要求するダミーデータ削除要求信号を、前記振り分けサーバを介して、前記減少したデータ管理サーバに送信し、前記減少したデータ管理サーバに対応付けられたダミーデータを削除できないことにより、データの欠損を検出するダミーデータ削除部と、当該減少したデータ管理サーバの前記コンシステントハッシュリング上での担当範囲で示される、前記データのキーのハッシュ値の範囲を、前記旧世代の分散ハッシュ情報に基づき抽出し、前記原本データおよび前記所定の複製数の複製データが失われた欠損データのキーの範囲として特定する警報通知部と、を備えることを特徴とする分散データベースシステムとした。
このようにすることで、クラスタを構成する複数のデータ管理サーバが故障等した場合に、原本データと所定の複製数の複製データが失われたことによる、データの欠損を検出することができる。また、損失データ特定装置が、旧世代の分散ハッシュ情報を記憶しておくことにより、減少したデータ管理装置の担当範囲に基づき、欠損したデータのキーのハッシュ値の範囲を特定することができる。
請求項2に記載の発明は、前記欠損データ特定装置が、ランダムにキーを生成し、当該キーを前記所定のハッシュ関数にかけて算出したハッシュ値が前記新世代の分散ハッシュ情報に示される前記データ管理サーバの中から抽出したデータ管理サーバの振り分け先となる担当範囲に含まれるまで、当該キーの生成と、当該キーのハッシュ値の算出を繰り返し、当該キーが、前記抽出したデータ管理サーバの振り分け先となる担当範囲に含まれる場合に、当該キーを、前記抽出したデータ管理サーバに対応付けた前記ダミーデータのキーとして決定するキー生成部を、さらに備えることを特徴とする請求項1に記載の分散データベースシステムとした。
このようにすることで、欠損データ特定装置は、データ管理サーバのコンシステントハッシュリング上での担当範囲に含まれるキーを、そのデータ管理サーバに対応するダミーデータのキーとすることができる。よって、振り分けサーバは、ダミーデータに付されたキーを用いて振り分け処理を実行することにより、ダミーデータを、対応するデータ管理サーバに確実に登録させることができる。
本発明によれば、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる分散データベースシステムを提供する。
コンシステントハッシュ法のアルゴリズムの説明するための図である。 コンシステントハッシュ法における、データ管理サーバの原本データと複製データの保存手法を説明するための図である。 データ管理サーバが故障した場合の仮想ノードの担当範囲の変更を説明するための図である。 本実施形態に係る分散データベースシステムの全体構成と各装置の機能ブロックを説明するための図である。 本実施形態に係る分散ハッシュテーブルのデータ構成を示す図である。 本実施形態に係るダミーデータ登録要求信号のデータ構成を示す図である。 本実施形態に係るダミーデータ削除要求信号のデータ構成を示す図である。 本実施形態に係る応答信号のデータ構成を示す図である。 本実施形態に係るダミーデータキーテーブルのデータ構成を示す図である。 本実施形態に係るダミーデータのキー生成処理を説明するためのフローチャートである。 クラスタのセットアップ時における、全ての仮想ノードに対するダミーデータ登録処理を示すシーケンス図である。 仮想ノードの追加時における、既存の仮想ノードの担当範囲の分割を説明するための図である。 仮想ノードの追加時における、分散ハッシュテーブルの変更を説明するための図である。 仮想ノードの追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。 仮想ノードの追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。 仮想ノードの消滅時におけるダミーデータ削除処理を説明するためのシーケンス図である。 仮想ノードの消滅時におけるデータ欠損の検出と警報情報の出力処理とを説明するためのシーケンス図である。
次に、本発明を実施するための形態(以下、「本実施形態」という)における分散データベースシステム1000等について説明する。
<システム構成と処理概要>
図4は、本実施形態に係る分散データベースシステム1000の全体構成と各装置の機能ブロックを説明するための図である。
図4に示すように、分散データベースシステム1000は、複数のクライアント装置5に接続される振り分けサーバ1と、クラスタを構成する複数のデータ管理サーバ(ここでは、「仮想ノード2」とする。)と、警報監視装置4等に接続される欠損データ特定装置3と、を含んで構成される。
振り分けサーバ1は、各クライアント装置5からの要求信号を受信し、受信したその要求信号の振り分け先となる仮想ノード2を、コンシステントハッシュ法に基づき決定し、その決定した振り分け先の仮想ノード2に対して、要求信号を送信する。
また、振り分けサーバ1は、欠損データ特定装置3と接続され、その欠損データ特定装置3から、ダミーデータ(詳細は後記)の登録を要求するダミーデータ登録要求信号や、ダミーデータの削除を要求するダミーデータ削除要求信号等を受信する。そして、振り分けサーバ1は、クライアント装置5から受信した要求信号に対する振り分け手法と同じ手法、つまり、コンシステントハッシュ法を適用し同じハッシュ関数に基づいて振り分け先となる仮想ノード2を決定し、それらのダミーデータに関する要求信号を送信する。
さらに、振り分けサーバ1は、仮想ノード2から、要求情報に対する処理結果である応答情報を受信して、クライアント装置5や欠損データ特定装置3に向けて送信する。
また、振り分けサーバ1は、仮想ノード2(データ管理サーバ)の死活監視を行っており、クラスタ内のデータ管理サーバの増設(仮想ノード2の追加)や、データ管理サーバの障害発生等により仮想ノード2が消滅した場合に、振り分け先となる仮想ノード2(データ管理サーバ)を管理する分散ハッシュテーブル(分散ハッシュ情報)100を変更(レコードの追加や削除)する。そして、振り分けサーバ1は、分散ハッシュテーブル100の変更内容を含む分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)を欠損データ特定装置3に送信する。
仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバである。本実施形態においては、図4に示すように、仮想ノードIDが「A」の仮想ノード2を、仮想ノード「A」と表し、仮想ノードIDが「B」の仮想ノード2を、仮想ノード「B」等のように表して説明する。
各仮想ノード2は、振り分けサーバ1により振り分け先として決定されたデータである原本データと、他の仮想ノード2が原本データの保存先となっている複製データとを記憶する。なお、複製データは、前記したコンシステントハッシュリングにおいて、原本データを記憶する仮想ノード2から、時計回りに複製の数分の仮想ノード2に記憶される。また、仮想ノード2は、欠損データ特定装置3が生成したダミーデータを、通常のデータ(「原本データ」「複製データ」)と同様に、自身の担当範囲に含まれるダミーデータをダミーデータ(原本)として記憶し、他の仮想ノード2の担当範囲に含まれるダミーデータをダミーデータ(複製)として記憶する。
欠損データ特定装置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に送信する。
このように、本実施形態に係る分散データベースシステム1000は、予め仮想ノード2と対になるダミーデータを、そのダミーデータ(原本)を記憶する仮想ノード2と、ダミーデータ(複製)を記憶する仮想ノード2とに登録しておき、登録したダミーデータが削除できないことを検出することにより、当該仮想ノード2のデータが欠損したことを検出する。振り分けサーバ1は、また、そのダミーデータと対になる仮想ノード2の担当範囲を、旧世代の分散ハッシュテーブル100bを参照することにより、欠損したデータのキーの範囲を特定することができる。
よって、クラスタを構成するデータ管理サーバが故障等した場合に、データ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる。
なお、ハッシュ値の範囲に基づき、バックアップ(欠損したデータを保持するクライアント装置やデータ管理サーバと接続されたバックアップ装置等)から欠損したデータを抽出することができるため、抽出したデータを振り分けサーバ1経由でデータ管理サーバ2に投入することにより、データをリストアすることができる。
<各装置の構成>
以下、本実施形態に係る分散データベースシステム1000を構成する各装置の構成例について、図4を参照して、具体的に説明する。
≪振り分けサーバ≫
振り分けサーバ1は、各クライアント装置5から受信した要求信号や、欠損データ特定装置3から受信した、ダミーデータ登録要求信号およびダミーデータ削除要求信号等の、振り分け先となる仮想ノード2(データ管理サーバ)を、コンシステントハッシュ法に基づき決定し、その決定した仮想ノード2から、要求信号等に対する処理結果である応答信号を受信し、要求信号等を送信してきたクライアント装置5や欠損データ特定装置3に送信する。
さらに、振り分けサーバ1は、クラスタを構成する各仮想ノード2(データ管理サーバ)の追加(増設)や消滅(減設)を監視しており、クラスタの構成に変化があった場合には、自身の記憶部(図示省略)に記憶した分散ハッシュテーブル100を変更する。そして、振り分けサーバ1は、その分散ハッシュテーブル100の変更情報を、各仮想ノード2(データ管理サーバ)に送信すると共に、欠損データ特定装置3に対しても送信する。
本実施形態に係る振り分けサーバ1は、図示を省略した、制御部、入出力部および記憶部を含んで構成される。
入出力部は、クライアント装置5や、各仮想ノード2(データ管理サーバ)および欠損データ特定装置3との間の情報の入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
記憶部は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等の記憶手段からなり、前記した、分散ハッシュテーブル100等が記憶される。
制御部は、図4に示すように、振り分け処理部10と、死活監視部11と、分散ハッシュテーブル変更通知部(変更通知部)12とを備える。なお、この制御部は、例えば、記憶部に格納されたプログラムを、図示を省略したCPU(Central Processing Unit)がRAMに展開し実行することで実現される。
振り分け処理部10は、クライアント装置5や、欠損データ特定装置3から、要求信号や、ダミーデータ登録要求信号、ダミーデータ削除要求信号等を受信すると、それらの要求信号に含まれるキーを抽出し、ハッシュ関数にかけることで、その要求信号が対象とするデータのハッシュ値を計算する。そして、振り分け処理部10は、計算したハッシュ値に基づき、記憶部(図示省略)に記憶された分散ハッシュテーブル100を参照し、その要求信号の振り分け先となる仮想ノード2(データ管理サーバ)を決定する。
なお、ここで、記憶部に記憶された分散ハッシュテーブル(分散ハッシュ情報)100は、図5に示すように、データ管理サーバや仮想ノード2に固有な識別子(ここでは、「仮想ノードID」とする。)と、その仮想ノードIDを、ハッシュ関数にかけることで得られたハッシュ値とが対応付けられて、例えば、ハッシュ値が小さい順にソートされたテーブルである。そして、この分散ハッシュテーブル100は、仮想ノードIDに示される仮想ノード2が担当するハッシュ値の範囲(担当範囲)を示している。
図4に戻り、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の追加(増設)や消滅(減設)を監視しており、クラスタの構成に変化があった場合には、自身の記憶部(図示省略)に記憶した分散ハッシュテーブル100を変更する。具体的には、死活監視部11は、データ管理サーバが増設され、仮想ノード2が追加された場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを追加する。また、死活監視部11は、データ管理サーバが故障等により減設され、仮想ノード2が消滅した場合には、分散ハッシュテーブル100の該当する仮想ノード2のレコードを削除する。
なお、死活監視部11は、クラスタを構成する各仮想ノード2(データ管理サーバ)の増減情報を、例えば、次のようにして取得することができる。
各仮想ノード2(データ管理サーバ)は、例えば、分散ハッシュテーブル100上で、次の行の仮想ノード2(データ管理サーバ)に、所定の時間間隔で生存確認情報を送信しており、生存確認情報を所定の時間内に受信できない場合に、その仮想ノード2(データ管理サーバ)がクラスタから離脱したものして、その離脱した仮想ノード2(データ管理サーバ)のIDを含む離脱情報を振り分けサーバ1に送信する。また、クラスタ内に、新たに仮想ノード2が追加されると、その仮想ノード2から、自身がクラスタに参加することを要請する情報を、振り分けサーバ1に送信することにより、振り分けサーバ1が新たな仮想ノード2(データ管理サーバ)がクラスタに追加されることの情報を得る。
この他にも、例えば、振り分けサーバ1から、各仮想ノード2(データ管理サーバ)に対し、所定の時間間隔で、生存確認情報を送信することにより、各仮想ノード2の離脱情報を取得してもよい。また、仮想ノード2(データ管理サーバ)がシステム内に追加されたことの情報を、図示を省略したシステム全体のネットワーク管理サーバ等から取得するようにしてもよい。
分散ハッシュテーブル変更通知部(変更通知部)12は、死活監視部11により、分散ハッシュテーブル100が変更されると、その変更された分散ハッシュテーブル100を、分散ハッシュテーブル変更通知信号(分散ハッシュ情報変更通知信号)に付して、各仮想ノード2および欠損データ特定装置3へ送信する。
なお、分散ハッシュテーブル変更通知部12は、分散ハッシュテーブル100そのものではなく、分散ハッシュテーブル100において追加されるレコードや、削除されるレコードを示す変更部分の情報のみを、分散ハッシュテーブル変更通知信号に付して送信してもよい。
なお、本実施形態においては、図4に示すように、振り分けサーバ1は1つとして説明するが、振り分けサーバ1は複数であってもよい。その場合には、複数の振り分けサーバ1のうちの1つが代表(マスタ)となり、上記において説明した振り分け処理部10が実行する以外の処理、つまり、死活監視に基づく分散ハッシュテーブル100の変更処理や、分散ハッシュテーブルの変更通知の送信処理を行う。
≪仮想ノード(データ管理サーバ)≫
仮想ノード2は、データ管理サーバ(物理ノード)上に設定される論理的なデータ管理サーバであり、データ管理部20と、図示を省略した、入出力部および記憶部とを含んで構成される。
データ管理部20は、振り分けサーバ1により自身が振り分け先として決定されたデータを原本データとして記憶部に記憶する。また、データ管理部20は、他の仮想ノード2から受信した原本データの複製(複製データ)を記憶部に記憶する。
図示を省略した記憶部には、この原本データおよび複製データ以外に、振り分けサーバ1と同じデータが格納された分散ハッシュテーブル100が記憶されている。この分散ハッシュテーブル100は、振り分けサーバ1から仮想ノード2それぞれが分散ハッシュテーブル変更通知を受信して自身の記憶部に記憶された分散ハッシュテーブル100を変更することにより、振り分けサーバ1に記憶された分散ハッシュテーブル100と同期される。
データ管理部20は、クラスタのセットアップ時や、分散ハッシュテーブル100が変更された時に、自身が記憶する原本データについて、予め設定された複製の数nだけ複製データを生成し、コンシステントハッシュリング上で時計回りの方向にn個(分散ハッシュテーブル100では、自身の行の下n行まで)の仮想ノード2に対して、生成した複製データを送信することにより保存させる。
また、データ管理部20は、欠損データ特定装置3から、振り分けサーバ1を介して、ダミーデータ受信した場合には、そのダミーデータを原本として自身の記憶部に記憶する。また、データ管理部20は、自身の記憶部に記憶された分散ハッシュテーブル100を参照し、自身が記憶するダミーデータ(原本)について、通常のデータと同様に、予め設定された複製の数nだけダミーデータ(複製)を生成し、コンシステントハッシュリング上で時計回りの方向にn個(分散ハッシュテーブル100では、自身の行の下n行まで)の仮想ノード2に対して、生成したダミーデータ(複製)を送信することにより保存させる。
入出力部(図示省略)は、振り分けサーバ1や、他の仮想ノード2との間の情報の入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。なお、仮想ノード2の場合は、実体としてデータ管理サーバ(物理ノード)の入出力部が仮想ノード2の入出力部の機能を具備する。
記憶部は、ハードディスクやフラッシュメモリ、RAM等の記憶手段からなり、前記した、原本データ、複製データ、ダミーデータ(原本)、ダミーデータ(複製)、および、分散ハッシュテーブル100(図示省略)等が記憶される。なお、仮想ノード2の場合は、実体としてデータ管理サーバ(物理ノード)の記憶部が仮想ノード2の記憶部の機能を具備する。
≪欠損データ特定装置≫
欠損データ特定装置3は、仮想ノード2それぞれと対となるダミーデータを生成し、振り分けサーバ1を介して、各仮想ノード2にダミーデータ(原本)およびダミーデータ(複製)として記憶させる。また、欠損データ特定装置3は、仮想ノード2が消滅した場合に、ダミーデータの削除を要求するダミーデータ削除要求信号(図7参照)を、振り分けサーバ1を介して、仮想ノード2に送信し、ダミーデータを削除できないこと(NG)の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。また、そのダミーデータと対になる仮想ノード2の担当範囲を、変更前の(旧世代の)分散ハッシュテーブル100(100b)を参照することにより特定する。
図4を参照して、本実施形態に係る欠損データ特定装置3の構成例について説明する。
本実施形態に係る欠損データ特定装置3は、図4に示すように、制御部30、入出力部31および記憶部32を含んで構成される。
入出力部31は、振り分けサーバ1や、警報監視装置4等との間の情報の入出力を行う。この入出力部31は、通信回線を介して情報の送受信を行う通信インタフェースと、図示を省略したキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
記憶部32は、ハードディスクやフラッシュメモリ、RAM等の記憶手段からなり、変更後の(新世代の)分散ハッシュテーブル100(100a)(図4において「分散ハッシュテーブル(新)」と表記)と、変更前の(旧世代の)分散ハッシュテーブル100(100b)(図4において「分散ハッシュテーブル(旧)」と表記)と、ダミーデータキーテーブル200(詳細は後記)とが記憶される。
制御部30は、欠損データ特定装置3全体の制御を司り、図4に示すように、欠損データ特定処理部300と、キー生成部310と、警報通知部320とを備える。なお、この制御部30は、例えば、記憶部32に格納されたプログラムを、図示を省略したCPUがRAMに展開し実行することで実現される。
欠損データ特定処理部300は、仮想ノード2それぞれと対となるダミーデータを生成し、該当する仮想ノード2に記憶させると共に、変更後の(新世代の)分散ハッシュテーブル100aと変更前の(旧世代の)分散ハッシュテーブル100bを比較することにより、仮想ノード2(データ管理サーバ)の増減を検出する。そして、欠損データ特定処理部300は、仮想ノード2(データ管理サーバ)の消滅を検出した場合には、その仮想ノード2と対となるダミーデータのキーを付したダミーデータ削除要求信号(図7参照)を送信し、ダミーデータが削除できない旨の応答情報を受信することにより、該当仮想ノード2のデータが欠損したことを検出する。そして、欠損データ特定処理部300は、そのダミーデータと対になる仮想ノード2の担当範囲を変更前(旧世代の)分散ハッシュテーブル100bを参照することにより特定する。
この欠損データ特定処理部300は、ノード増減検出部(増減検出部)301と、ダミーデータ登録部302と、ダミーデータ削除部303とを備える。
ノード増減検出部(増減検出部)301は、振り分けサーバ1から、分散ハッシュテーブル変更通知信号を、入出力部31を介して受信し、記憶部32に、変更後の(新世代の)分散ハッシュテーブル100aとして記憶する。なお、その際、ノード増減検出部301は、それ以前に記憶部32に記憶されている、今回の変更前の分散ハッシュテーブル100を旧世代の分散ハッシュテーブル100bとして、そのまま記憶部32に記憶しておく。
ノード増減検出部301は、記憶部32に記憶された新世代の分散ハッシュテーブル100aと、旧世代の分散ハッシュテーブル100bとを比較し、その差分を検出することにより、仮想ノード2(データ管理サーバ)の追加若しくは消滅を検出する。具体的には、ノード増減検出部301は、新世代の分散ハッシュテーブル100aに仮想ノード2の新たなレコードが挿入されていることにより、仮想ノード2が追加されたことを検出する。一方、ノード増減検出部301は、新世代の分散ハッシュテーブル100aにおいて、既存の仮想ノード2のレコードが削除されていれることにより、仮想ノード2が消滅したことを検出する。
ダミーデータ登録部302は、クラスタのセットアップ時、つまり、旧世代の分散ハッシュテーブル100bが記憶部32に存在しない場合、また、仮想ノード2が追加されたことを検出した場合に、その仮想ノード2の仮想ノードIDに対応するダミーデータのキーの生成を、キー生成部310に依頼することにより取得する。そして、ダミーデータ登録部302は、ダミーデータ登録要求信号(図6)を生成し、振り分けサーバ1へ送信する。
図6は、本実施形態に係るダミーデータ登録要求信号のデータ構成を示す図である。
ダミーデータ登録要求信号は、要求種別として「登録」を示す要求種別情報と、振り分けサーバ1の振り分け処理部10において、コンシステントハッシュのキーとして用いるためのダミーデータのキーの情報と、登録されるデータであるバリューと、を含んで構成される。ここで、バリューは、仮想ノードID等の仮想ノード2を特定するための値が設定される。
図4に戻り、ダミーデータ削除部303は、ノード増減検出部301が、クラスタを構成する仮想ノード2が消滅したことを検出した場合に、後記するダミーデータキーテーブル200から、消滅が検出された仮想ノード2に対応するダミーデータのキーを取得し、ダミーデータ削除要求信号(図7)を生成し、振り分けサーバ1へ送信する。
図7は、本実施形態に係るダミーデータ削除要求信号のデータ構成を示す図である。
ダミーデータ削除要求信号は、要求種別として「削除」を示す要求種別情報と、振り分けサーバ1の振り分け処理部10において、コンシステントハッシュのキーとして用いるための、消滅が検出された仮想ノード2に対応するダミーデータのキーの情報と、を含んで構成される。
また、ダミーデータ削除部303は、ダミーデータ削除要求信号に対する応答信号(図8)を振り分けサーバ1から受信する。
図8は、本実施形態に係る応答信号のデータ構成を示す図である。
応答信号は、応答種別として「OK」若しくは「NG」のどちらかが格納される。
ダミーデータ削除部303は、振り分けサーバ1から、「OK」が付された応答信号を受信した場合には、ダミーデータキーテーブル200(図9参照)において、消滅が検出された仮想ノード2の仮想ノードIDに対応するレコードを削除する。
一方、ダミーデータ削除部303は、振り分けサーバ1から、「NG」が付された応答信号を受信した場合には、ダミーデータに対応する仮想ノード2のデータが欠損したと判定する。そして、その判定結果を、警報通知部320に出力する。
キー生成部310は、図9に示すように、データ管理サーバや仮想ノード2に固有な識別子(ここでは、「仮想ノードID」とする。)と、ダミーデータのキーとを対応付けた情報であるダミーデータキーテーブル200を生成する。
図9は、本実施形態に係るダミーデータキーテーブル200のデータ構成を示す図である。
図9に示すように、ダミーデータキーテーブル200は、仮想ノードIDと、ダミーデータのキーの組み合わせが、仮想ノード2の数分のレコードとして記憶される。
キー生成部310は、ダミーデータキーテーブル200に登録された仮想ノードIDの値を取得し、これを、ダミーデータ投入先仮想ノードIDとする。そして、キー生成部310は、このダミーデータ投入先仮想ノードIDと、分散ハッシュテーブル100(100a)に基づき、以下に示すキー生成アルゴリズムを用いて、ダミーデータのキーを生成する。
(キー生成アルゴリズム)
図10は、本実施形態に係るキー生成部310が実行する、ダミーデータのキー生成アルゴリズムを説明するためのフローチャートである。
ここで、ハッシュ関数は一方向性関数であるため、ハッシュ値からキーを生成することはできない。そのため、キー生成部310は、トライアンドエラーで仮想ノード2の担当範囲に含まれるキーを見つけることにより、ダミーデータのキーを生成する。
なお、キー生成部310は、ダミーデータのキーを生成するにあたり、分散ハッシュテーブル100(100a)を参照し、全ての仮想ノードIDの情報を取得して、ダミーデータキーテーブル200の各仮想ノードIDのレコードを生成しておく。
まず、キー生成部310は、ダミーデータキーテーブル200の1つの行(1行目から順に取得)に登録された仮想ノードIDの値を取得し、これをダミーデータ投入先仮想ノードIDとする。そして、ダミーデータ投入先仮想ノードへのダミーデータの登録要求のキーとして、ランダムな文字列を生成する(ステップS1)。若しくは、キー生成部310は、「dummydata」など意味をもった文字列にランダム形成した文字列を繋げたキーを生成してもよい。
次に、キー生成部310は、振り分けサーバ1の振り分け処理部10と同じハッシュ関数を用いて、ステップS1において生成したキーのハッシュ値を計算する(ステップS2)。
続いて、キー生成部310は、生成したキーのハッシュ値を用いて、分散ハッシュテーブル100(100a)を参照し、そのキーのハッシュ値を担当範囲とする振り分け先仮想ノードの仮想ノードIDを算出する(ステップS3)。
そして、キー生成部310は、算出した仮想ノードIDと、ダミーデータ投入先仮想ノードIDとが一致するか否かを判定する(ステップS4)。
ステップS4の判定の結果、一致した場合には(ステップS4→Yes)、ステップS1において生成したキーを、ダミーデータキーテーブル200のステップS1において取得した仮想ノードID(ダミーデータ投入先仮想ノードID)に対応付けて、ダミーデータキーテーブル200に登録する(ステップS5)。
一方、ステップS4の判定の結果、一致しない場合には(ステップS4→No)、ステップS1に戻り、再度、ダミーデータのキーとして、ランダムな文字列を生成する。
キー生成部310は、ステップS5において、ダミーデータキーテーブル200の1つの行の仮想ノードIDに対応するダミーデータのキーを登録すると、次の行の仮想ノードIDを取得し、ステップS1〜S5を繰り返す。これを、キー生成部310は、ダミーデータキーテーブル200に記憶されたすべての行の仮想ノードIDについて実行する。
このようにすることで、キー生成部310は、各仮想ノードIDに対応するダミーデータのキーを生成し、ダミーデータキーテーブル200に登録する。
図4に戻り、警報通知部320は、ダミーデータ削除部303が「NG」が付された応答信号を受信したことにより、データが欠損したと判定した場合に、そのダミーデータのキーに対応する仮想ノード2の担当範囲を、旧世代の分散ハッシュテーブル100bを参照することにより特定する。そして、警報通知部320は、欠損したデータのキーのハッシュ値の範囲として、当該仮想ノード2の担当範囲を付したデータ欠損検出信号を生成し、警報監視装置4に通知する。なお、警報通知部320は、このデータ欠損検出信号を、例えば、SNMP(Simple Network Management Protocol)トラップとして、警報監視装置4に送信するようにしてもよい。
≪警報監視装置≫
警報監視装置4は、欠損データ特定装置3からデータ欠損検出信号を受信し、データ欠損を検出したことと、その欠損データのキーのハッシュ値の範囲とを、出力手段(図示省略)に出力する。
警報監視装置4は、制御部と、入出力部と、記憶部と(いずれも図示省略)を備える装置であり、制御部が備える警報受信部40が、データ欠損検出信号を受信することにより、分散データベースシステム1000の管理者等に、データ欠損の検出を報知する。
<分散データベースシステムの欠損データ特定処理>
次に、本実施形態に係る分散データベースシステム1000が実行する欠損データ特定処理について説明する。
分散データベースシステム1000において、欠損データ特定装置3は、最初にデータ管理サーバが複数の仮想ノード2のクラスタをセットアップする際に、全ての仮想ノード2に対して、ダミーデータの登録を実行する。
その後、欠損データ特定装置3および振り分けサーバ1は、仮想ノード2の追加や消滅等の変化に応じて、ダミーデータの登録や削除を行うことで、クラスタ内に存在する仮想ノード2それぞれと対になるダミーデータが必ず登録されている状態を維持する。
そして、欠損データ特定装置3は、仮想ノード2の消滅時において、消滅した仮想ノード2のダミーデータの削除要求(ダミーデータ削除要求信号)を振り分けサーバ1に送信し、削除することができたか否かに基づいて仮想ノード2のデータが欠損データであるか否かを判定する。
以上の欠損データ特定処理の流れについて、(1)クラスタセットアップ時のダミーデータ登録処理、(2)仮想ノード追加時のダミーデータ登録処理、(3)仮想ノード消滅時のダミーデータ削除処理、(4)データ欠損の検出と警報情報の出力処理、の順に詳細に説明する。
≪(1)クラスタセットアップ時のダミーデータ登録処理≫
図11は、データ管理サーバをクラスタにセットアップする際に、全ての仮想ノード2に対して実行するダミーデータ登録処理を示すシーケンス図である。
まず、振り分けサーバ1(振り分け処理部10および死活監視部11)は、データ管理サーバ上に形成された複数の仮想ノード2のクラスタのセットアップ時に、図5に示すような分散ハッシュテーブル100を生成する(ステップS10)。そして、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、生成された分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を欠損データ特定装置3に送信する(ステップS11)。
なお、分散ハッシュテーブル変更通知部12は、生成された分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を、各仮想ノード2に対しても送信することにより、各仮想ノード2に同一の分散ハッシュテーブル100を記憶させる。この分散ハッシュテーブル100を参照することにより、各仮想ノード2は、自身が記憶する原本データの複製先となる仮想ノード2を特定する。
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に既に登録された分散ハッシュテーブル100がないことから、分散ハッシュテーブル100の初回登録であると判定し、分散ハッシュテーブル変更通知信号から分散ハッシュテーブル100を抽出して、記憶部32に分散ハッシュテーブル100を記憶する(ステップS12)。
次に、欠損データ特定装置3のキー生成部310は、記憶部32に記憶した分散ハッシュテーブル100の仮想ノードIDに基づいて、ダミーデータキーテーブル200を生成し、図10において説明した、ダミーデータのキー生成処理を実行する(ステップS13)。そして、キー生成部310は、ダミーデータキーテーブル200(図9)を完成させ、記憶部32に記憶する。
続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成し(ステップS14)、振り分けサーバ1に送信する。
なお、このダミーデータ登録要求信号には、要求種別「登録」と、生成したダミーデータのキーと、バリューとが設定される。なお、バリューとしては、例えば仮想ノードIDなどの仮想ノード2を特定する値がダミーデータキーテーブル200を参照して設定される。
ダミーデータ登録要求信号を受信した振り分けサーバ1は、振り分け処理部10により、ダミーデータ登録要求信号に設定されたダミーデータのキーをハッシュ関数にかけることによりハッシュ値を算出する。そして、振り分け処理部10は、記憶部(図示省略)に記憶された分散ハッシュテーブル100を参照することにより、振り分け先となる仮想ノード2を決定し、そのダミーデータ登録要求信号を転送する(ステップS15)。このとき、ダミーデータ登録要求信号の転送先となる仮想ノード2は、欠損データ特定装置3のキー生成部310が設定したダミーデータ投入先仮想ノード、つまり、ダミーデータ登録要求信号のバリューとして設定された仮想ノード2となる。
続いて、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータを自身の記憶部に記憶する(ステップS16)。なお、振り分けサーバ1やデータ管理サーバの仮想ノード2にとっては、ダミーデータは通常のデータとなんら変わらないデータであり、ここで記憶されるダミーデータは、ダミーデータ(原本)となる。仮想ノード2のデータ管理部20は、コンシステントハッシュのアルゴリズムに従い、自身に記憶された分散ハッシュテーブル100を参照し、予め設定された複製の数分のダミーデータ(複製)を生成して、複製データの記憶を担当する他の仮想ノード2にそのダミーデータ(複製)を送信し記憶させる。
振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2からダミーデータを登録した旨の応答情報を受信すると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS17)。
欠損データ特定装置3のダミーデータ登録部302は、このようにして、全ての仮想ノード2に、ダミーデータを登録する。これにより、欠損データ特定装置3による仮想ノード2ごとの欠損データ検出の準備が整うものとなる。
≪(2)仮想ノード追加時のダミーデータ登録処理≫
分散データベースシステム1000の運用後に、物理的なデータベース管理サーバが増設等された場合には、クラスタを構成する仮想ノード2が追加される。新たな仮想ノード2が追加されると、既存の仮想ノード2の中で、ハッシュ値の担当範囲が分割される仮想ノード2が発生する。以下、仮想ノード追加時におけるダミーデータの登録処理について、図12〜図15を参照して説明する。
図12は、仮想ノード2の追加時における、既存の仮想ノード2の担当範囲の分割を説明するための図である。図13は、仮想ノード2の追加時における、分散ハッシュテーブル100の変更を説明するための図である。
データ管理サーバが増設等されることにより、仮想ノード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」の担当範囲にダミーデータの再登録を行う。
なお、担当範囲が分割された仮想ノード「B」について、ダミーデータの削除・再登録を行わず、ダミーデータキーテーブル200に基づいて既存のダミーデータが新たな仮想ノード「X」の担当範囲に属するデータか、元の仮想ノード「B」の担当範囲に属するデータかを判定し、ダミーデータが登録されていない方の仮想ノード2に対してダミーデータの登録処理を行うようにしてもよい。
次に、ダミーデータ登録処理の流れについて説明する。図14および図15は、仮想ノード2の追加時におけるダミーデータ登録処理を説明するためのシーケンス図である。
図14に示すように、まず、振り分けサーバ1の死活監視部11が、新たな仮想ノード2(データ管理サーバ)の追加を検出すると(ステップS20)、分散ハッシュテーブル100を参照し、既存の仮想ノード2の担当範囲の広さなどを基準にして、例えば、担当範囲が広い順に仮想ノード2を選択するようにして、既存の仮想ノード2から分割対象となる仮想ノードを選定する。
死活監視部11は、選定した仮想ノード2の担当範囲を、コンシステントハッシュリングとしては、その担当範囲内に新たに追加する仮想ノード2の仮想ノードIDのハッシュ値の点(丸印)を追加することで分割する(図12参照)。このことは、死活監視部11が、分散ハッシュテーブル100において、新たに追加される仮想ノード2のレコードを、分割対象となる仮想ノードのレコードの1つ前に追加することで実現される(図13参照)。以上のようにして、死活監視部11は、新たな仮想ノード2を追加して、分散ハッシュテーブル100を変更する(ステップS21)。
続いて、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、上記のように分散ハッシュテーブル100が変更されると、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を生成し、欠損データ特定装置3に送信する(ステップS22)。なお、分散ハッシュテーブル変更通知部12は、同様に、各仮想ノード2(追加された仮想ノード2を含む)に向けて、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を送信しておく。このようにすることにより、分散データベースシステム1000内においては、同一の分散ハッシュテーブル100に基づき処理を実行できるようにする。
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS23)。
ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS24)。そして、ノード増減検出部301は、比較の結果、新世代の分散ハッシュテーブル100aに、新たな仮想ノード2が追加されていることを検出する(ステップS25)。
仮想ノード2が追加されたことをノード増減検出部301が検出すると、ダミーデータ登録部302は、追加された仮想ノード2に対して、ダミーデータの登録処理を実行する(以下、「手順A」と呼ぶことがある。)。一方、分散ハッシュテーブル100において、追加された仮想ノード2のレコードの次のレコードの仮想ノード2について、担当範囲が分割され変更となるため、ダミーデータ削除部303が既存のダミーデータを削除し、その後ダミーデータ登録部302が再度登録する処理を実行する(以下、「手順B」と呼ぶことがある。図15参照。)。以下、具体的に説明する。
(手順A:追加された仮想ノードへのダミーデータの登録処理)
まず、欠損データ特定装置3のキー生成部310は、記憶部32に記憶されたダミーデータキーテーブル200(図9)に追加された仮想ノード2の仮想ノードIDのレコードを追加する。
そして、キー生成部310は、追加された仮想ノード2の仮想ノードIDと、新世代の分散ハッシュテーブル100aとに基づき、図10において説明した、ダミーデータのキー生成処理を実行し、追加された仮想ノード2の仮想ノードIDに対応するダミーデータのキーを生成する(ステップS26)。そして、キー生成部310は、生成したダミーデータのキーを、ダミーデータキーテーブル200に登録する。
続いて、欠損データ特定装置3のダミーデータ登録部302は、ダミーデータキーテーブル200を参照し、ダミーデータ登録要求信号(図6)を生成する(ステップS27)。ここで、ダミーデータ登録部302は、要求種別を「登録」とし、生成したダミーデータのキーと、バリューとを設定したダミーデータ登録要求信号を生成する。なお、ここでバリューには、追加された仮想ノード2の仮想ノードIDなどの、追加された仮想ノード2を特定する値が設定される。そして、ダミーデータ登録部302は、生成したダミーデータ登録要求信号を振り分けサーバ1に送信する。
そして、ダミーデータ登録要求信号を受信した振り分けサーバ1は、ダミーデータ登録要求信号に設定されたダミーデータのキーに基づき、追加された仮想ノード2を振り分け先に決定し、ダミーデータ登録要求信号を転送する(ステップS28)。
次に、ダミーデータ登録要求信号を受信した仮想ノード2は、ダミーデータ(原本)を自身の記憶部に記憶する(ステップS29)。なお、当該仮想ノード2は、ダミーデータ(複製)を生成し、コンシステントハッシュのアルゴリズムに従い、複製データを担当する他の仮想ノード2に送信し記憶させる。
振り分けサーバ1の振り分け処理部10は、所定の仮想ノード2にダミーデータが正しく登録されると、欠損データ特定装置3に、OKの応答信号を送信する(ステップS30)。
(手順B:既存の仮想ノードへのダミーデータの削除と再登録処理)
次に、新たな仮想ノード2が追加されたことにより、担当範囲が分割され変更された、既存の仮想ノード2へのダミーデータの削除と再登録処理について説明する。
図15に示すように、まず、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、担当範囲が分割された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS31)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。
そして、ダミーデータ削除要求信号を受信した振り分けサーバ1は、ダミーデータ削除要求信号に設定されたダミーデータのキーに基づき、コンシステントハッシュのアルゴリズムに従い、該当する仮想ノード2を振り分け先に決定し、ダミーデータ削除要求信号を転送する(ステップS32)。
ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータ(原本)を削除する(ステップS33)。また、当該仮想ノード2は、ダミーデータ(複製)を記憶する他の仮想ノード2に対し、ダミーデータ削除要求信号を送信し、ダミーデータ(複製)を削除させる。
ダミーデータが削除されると、振り分けサーバ1は、欠損データ特定装置3に、OKの応答信号を送信する(ステップS34)。
ダミーデータ削除要求信号に対するOKの応答信号を受信した欠損データ特定装置3のダミーデータ削除部303は、記憶部32内のダミーデータキーテーブル200から、担当範囲が分割された仮想ノード2の仮想ノードIDのレコードを削除する(ステップS35)。
続いて、ダミーデータ登録部302は、担当範囲が分割された仮想ノード2のダミーデータの登録処理(再登録)を実行する(ステップS36)。なお、このダミーデータの登録処理(再登録)は、前記した手順AのステップS26〜S30(図14参照)と同様である。
このようにすることで、新たな仮想ノード2が追加された場合においても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。
≪(3)仮想ノード消滅時のダミーデータ削除処理≫
次に、データ管理サーバの故障等を契機に、仮想ノード2が消滅した場合における、ダミーデータ削除処理について、図16を参照して説明する。なお、ここでは、ダミーデータの削除処理において、ダミーデータを削除できた場合について説明する。
図16は、仮想ノード2の消滅時におけるダミーデータ削除処理を説明するためのシーケンス図である。欠損データ特定装置3は、仮想ノード2(データ管理サーバ)が消滅した場合、データ欠損(原本データも複製データも消滅)が発生したか否かを、ダミーデータを削除できるか否かにより判定する。ある仮想ノード2(データ管理サーバ)が消滅した場合、振り分けサーバ1は、ダミーデータ削除要求を該当データの複製データを記憶していた他の仮想ノード2に転送することとなる。ここで、該当データを削除できたということは、そのデータが他の仮想ノード2において消滅せず存在することを意味し、これに対し、該当データを削除できないということは、複製データを記憶していた他の仮想ノード2でもそのデータが消滅したことを意味するからである。
まず、振り分けサーバ1の死活監視部11が、仮想ノード2の障害発生を検出すると(ステップS40)、分散ハッシュテーブル100(図5)を参照し、その障害が発生した仮想ノード2のレコードを削除して、分散ハッシュテーブル100を変更する(ステップS41)。
続いて、振り分けサーバ1の分散ハッシュテーブル変更通知部12は、上記のように分散ハッシュテーブル100が変更されると、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を生成し、欠損データ特定装置3に送信する(ステップS42)。なお、分散ハッシュテーブル変更通知部12は、同様に、各仮想ノード2に向けて、変更した分散ハッシュテーブル100を含む分散ハッシュテーブル変更通知信号を送信しておく。
欠損データ特定装置3のノード増減検出部301は、分散ハッシュテーブル変更通知信号を受信すると、記憶部32に先の分散ハッシュテーブル100が存在することから、分散ハッシュテーブルの2回目以降の登録であると認識する。そして、ノード増減検出部301は、記憶部32にすでに存在する分散ハッシュテーブル100を、旧世代の分散ハッシュテーブル100(100b)とし、今回受信した分散ハッシュテーブル100を、新世代の分散ハッシュテーブル100(100a)として記憶部32に記憶する(ステップS43)。
ノード増減検出部301は、新世代の分散ハッシュテーブル100aと旧世代の分散ハッシュテーブル100bとを比較する(ステップS44)。そして、ノード増減検出部301は、比較の結果、旧世代の分散ハッシュテーブル100bに存在していた仮想ノード2が、新世代の分散ハッシュテーブル100aにおいて、削除されていることを検出する(ステップS45)。
ノード増減検出部301が、仮想ノード2が削除されていることを検出すると、欠損データ特定装置3のダミーデータ削除部303は、ダミーデータキーテーブル200(図9)を参照し、削除された仮想ノード2のダミーデータのキーを取得し、要求種別を「削除」として、ダミーデータ削除要求信号を生成する(ステップS46)。そして、ダミーデータ削除部303は、生成したダミーデータ削除要求信号を振り分けサーバ1に送信する。欠損データ特定装置3が実行するそれ以降の処理(ステップS47〜S51)は、前記したステップS32〜S36(図15参照)の処理と同様であるので説明を省略する。
ここで、データ管理サーバの故障などにより、既存の仮想ノード2が消滅すると、コンシステントハッシュのアルゴリズムに従い、該当仮想ノード2の担当範囲が他の仮想ノード2にマージされる。マージ先の仮想ノード2は、旧世代の分散ハッシュテーブル100bにおいて、消滅した仮想ノード2の次のレコードの仮想ノード2である。その仮想ノード2も消滅している場合、その次のレコードの仮想ノード2がマージ先となり、その仮想ノード2も消滅している場合には、その次のレコードの仮想ノード2がマージ先となり、以下、消滅していない仮想ノード2のレコードがマージ先となる。
欠損データ特定装置3(ダミーデータ削除部303およびダミーデータ登録部302)は、マージ先の仮想ノード2に対して、ダミーデータの削除処理と再登録処理を実行する。
このようにすることにより、データ管理サーバの故障等により、仮想ノード2が消滅した場合であっても、各仮想ノード2に対応付けたダミーデータを、仮想ノード2それぞれに記憶させる状態を維持することができる。
≪(4)データ欠損の検出と警報情報の出力処理≫
次に、欠損データ特定装置3によるデータ欠損の検出と警報情報の出力処理について説明する。
本実施形態に係る分散データベースシステム1000では、データの複製の数を超える複数台のデータ管理装置(物理ノード)が一度に故障すると、仮想ノード2の担当範囲の単位でデータ欠損が発生し、その担当範囲に含まれるダミーデータも欠損する。このとき、欠損したデータを管理していた仮想ノード2も消滅するため、仮想ノード2の消滅時の処理として、前記したステップS40〜S47(図16参照)の処理を試みる。しかしながら、データの欠損に合わせてダミーデータも欠損しているため、ダミーデータの削除を行うことができない。よって、欠損データ特定装置3は、振り分けサーバ1から「NG」の応答情報を受信することとなる。この処理以降についてシーケンス図を用いて、詳細に説明する。
図17は、仮想ノード2の消滅時におけるデータ欠損の検出と警報情報の出力処理とを説明するためのシーケンス図である。
ダミーデータ削除要求信号を受信した仮想ノード2は、ダミーデータを削除しようとするが、ダミーデータ(原本)およびダミーデータ(複製)が全て消滅しているため、ダミーデータが存在せず、削除することができない。よって、振り分けサーバ1は、欠損データ特定装置3に、NGの応答信号を送信する(ステップS60)。
欠損データ特定装置3のダミーデータ削除部303は、NGの応答信号を受信すると、そのダミーデータに対応する仮想ノード2のデータが欠損したと判定する(データ欠損を検出:ステップS61)。
データ欠損が検出されると、警報通知部320は、ダミーデータの削除がNGとなった仮想ノード2の仮想ノードIDと、旧世代の分散ハッシュテーブル100bとにより、欠損したデータのキーのハッシュ値の範囲を特定する(ステップS62)。この欠損したデータのキーのハッシュ値の範囲は、ダミーデータの削除がNGとなった仮想ノード2の担当範囲である。
警報通知部320は、欠損したデータのハッシュ値の範囲の情報を含むデータ欠損検出信号を生成し(ステップS63)、警報監視装置4の警報受信部40に通知する。
以上説明したように、本実施形態に係る分散データベースシステム1000においては、クラスタを構成するデータ管理サーバが故障等した場合に、欠損データ特定装置3のダミーデータの削除処理によりデータ欠損を検出し、その欠損したデータのキーのハッシュ値の範囲を特定することができる。よって、データ管理サーバが故障等した場合でも、迅速に復旧することができる分散データベースシステムを提供することができる。
なお、本実施形態に係る分散データベースシステム1000は、上述した実施形態に限定されるものではない。例えば、本分散データベースシステム1000では、振り分けサーバ1の振り分け先は、複数の仮想ノード2として説明しているが、必ずしも仮想ノード2である必要はなく、振り分け先が物理ノードである複数のデータ管理サーバであっても、欠損データ特定装置3の行うべき処理や本発明の特徴に変わりはない。
1 振り分けサーバ
2 仮想ノード(データ管理サーバ)
3 欠損データ特定装置
4 警報監視装置
5 クライアント装置
10 振り分け処理部
11 死活監視部
12 分散ハッシュテーブル変更通知部(変更通知部)
20 データ管理部
30 制御部
31 入出力部
32 記憶部
40 警報受信部
100 分散ハッシュテーブル(分散ハッシュ情報)
100a 分散ハッシュテーブル(分散ハッシュ情報)(新)
100b 分散ハッシュテーブル(分散ハッシュ情報)(旧)
200 ダミーデータキーテーブル
300 欠損データ特定処理部
301 ノード増減検出部(増減検出部)
302 ダミーデータ登録部
303 ダミーデータ削除部
310 キー生成部
320 警報通知部
1000 分散データベースシステム

Claims (2)

  1. クライアント装置から受信した要求信号を、複数のデータ管理サーバに振り分ける振り分けサーバと、前記振り分けサーバから受信した要求信号に基づき、自身が記憶するデータについて処理を実行する複数の前記データ管理サーバと、前記データ管理サーバに記憶されたデータの欠損を検出する欠損データ特定装置と、を備える分散データベースシステムであって、
    前記振り分けサーバは、コンシステントハッシュリング上に、前記データ管理サーバに固有な識別子を所定のハッシュ関数にかけて算出したハッシュ値を昇順に配置すると共に、受信した前記要求信号に付されるデータに固有なキーを前記所定のハッシュ関数にかけて算出したハッシュ値を配置することにより、前記受信した要求信号の振り分け先となる前記データ管理サーバを決定する、振り分け手法を採用すると共に、
    前記データ管理サーバそれぞれは、自身に振り分けられた前記要求信号に対応するデータを原本データとして記憶しておき、前記コンシステントハッシュリング上において隣接する所定の複製数の他のデータ管理サーバに対し、前記原本データの複製データを生成して送信することにより、当該複製データを他のデータ管理サーバに記憶させる冗長化手法を採用しており、
    前記振り分けサーバは、
    前記コンシステントハッシュリング上において前記データ管理サーバそれぞれが振り分け先となる担当範囲を示す、前記データのキーのハッシュ値の範囲を格納する分散ハッシュ情報が記憶される記憶部と、
    受信した前記要求信号に付される前記キーのハッシュ値を算出し、前記分散ハッシュ情報に基づき決定した振り分け先の前記データ管理サーバに当該要求信号を転送する振り分け処理部と、
    複数の前記データ管理サーバの死活を監視し、死活状態に変化があると前記分散ハッシュ情報の前記担当範囲を変更する死活監視部と、
    変更された分散ハッシュ情報を含む分散ハッシュ情報変更通知信号を前記欠損データ特定装置に送信する変更通知部と、を備え、
    前記欠損データ特定装置は、
    前記受信した分散ハッシュ情報変更通知信号に含まれる分散ハッシュ情報を、新世代の分散ハッシュ情報とし、当該受信以前に受信していた分散ハッシュ情報を、旧世代の分散ハッシュ情報として記憶する記憶部と、
    前記新世代の分散ハッシュ情報と前記旧世代の分散ハッシュ情報を比較し、前記データ管理サーバの増減を判定する増減検出部と、
    前記判定の結果、前記データ管理サーバが増加していた場合、または、前記旧世代の分散ハッシュ情報が記憶されていない場合に、前記データ管理サーバそれぞれに対応付けてダミーデータを生成し、前記生成したダミーデータを含むダミーデータ登録要求信号を、前記振り分けサーバを介して、前記ダミーデータの対になる前記データ管理サーバに送信することにより前記ダミーデータを登録させるダミーデータ登録部と、
    前記判定の結果、前記データ管理サーバが減少していた場合、前記減少したデータ管理サーバに対応付けられたダミーデータの削除を要求するダミーデータ削除要求信号を、前記振り分けサーバを介して、前記減少したデータ管理サーバに送信し、前記減少したデータ管理サーバに対応付けられたダミーデータを削除できないことにより、データの欠損を検出するダミーデータ削除部と、
    当該減少したデータ管理サーバの前記コンシステントハッシュリング上での担当範囲で示される、前記データのキーのハッシュ値の範囲を、前記旧世代の分散ハッシュ情報に基づき抽出し、前記原本データおよび前記所定の複製数の複製データが失われた欠損データのキーの範囲として特定する警報通知部と、を備えること
    を特徴とする分散データベースシステム。
  2. 前記欠損データ特定装置は、
    ランダムにキーを生成し、当該キーを前記所定のハッシュ関数にかけて算出したハッシュ値が前記新世代の分散ハッシュ情報に示される前記データ管理サーバの中から抽出したデータ管理サーバの振り分け先となる担当範囲に含まれるまで、当該キーの生成と、当該キーのハッシュ値の算出を繰り返し、当該キーが、前記抽出したデータ管理サーバの振り分け先となる担当範囲に含まれる場合に、当該キーを、前記抽出したデータ管理サーバに対応付けた前記ダミーデータのキーとして決定するキー生成部を、
    さらに備えることを特徴とする請求項1に記載の分散データベースシステム。
JP2013166848A 2013-08-09 2013-08-09 分散データベースシステム Active JP6025679B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013166848A JP6025679B2 (ja) 2013-08-09 2013-08-09 分散データベースシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013166848A JP6025679B2 (ja) 2013-08-09 2013-08-09 分散データベースシステム

Publications (2)

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

Family

ID=52543635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013166848A Active JP6025679B2 (ja) 2013-08-09 2013-08-09 分散データベースシステム

Country Status (1)

Country Link
JP (1) JP6025679B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1731879A4 (en) * 2004-03-31 2015-05-06 Dainippon Printing Co Ltd METHOD FOR REGULATING LUMINOUS POWER OF TRANSMISSION LIGHT INDICATOR TABLE AND TRANSMISSION LIGHT INDICATOR TABLE

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6674099B2 (ja) 2016-06-10 2020-04-01 富士通株式会社 情報管理プログラム、情報管理方法、及び情報管理装置
WO2019008748A1 (ja) 2017-07-07 2019-01-10 株式会社Asj データ処理システムおよびこれを用いた分散データシステム
CN114629908B (zh) * 2022-03-28 2023-10-13 浙江邦盛科技股份有限公司 一种基于服务器节点硬件资源密度的数据分片方法
CN114866799B (zh) * 2022-05-11 2024-04-05 北京奇艺世纪科技有限公司 一种服务器调度方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020757A (ja) * 2007-07-12 2009-01-29 Toshiba Corp データ登録装置、データ登録方法及びプログラム
US8515915B2 (en) * 2010-09-24 2013-08-20 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
JP2012221419A (ja) * 2011-04-13 2012-11-12 Hitachi Ltd 情報記憶システム及びそのデータ複製方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1731879A4 (en) * 2004-03-31 2015-05-06 Dainippon Printing Co Ltd METHOD FOR REGULATING LUMINOUS POWER OF TRANSMISSION LIGHT INDICATOR TABLE AND TRANSMISSION LIGHT INDICATOR TABLE

Also Published As

Publication number Publication date
JP2015035182A (ja) 2015-02-19

Similar Documents

Publication Publication Date Title
JP6025679B2 (ja) 分散データベースシステム
EP3159794B1 (en) Distributed storage replication system and method
WO2017177941A1 (zh) 主备数据库切换方法和装置
JP5952960B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
US9747168B2 (en) Data block based backup
US20080005334A1 (en) System and method for perennial distributed back up
KR20130137897A (ko) 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
US11829253B2 (en) Systems and methods for non-blocking backups
JP2017504880A (ja) 分散データグリッドにおいて永続性パーティションリカバリをサポートするためのシステムおよび方法
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
CN112883119B (zh) 数据同步方法、装置、计算机设备及计算机可读存储介质
KR101527634B1 (ko) 샤딩 서비스를 제공하는 방법 및 장치
EP3039568B1 (en) Distributed disaster recovery file sync server system
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
JP5685213B2 (ja) 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
JP5918802B2 (ja) ノードおよびプログラム
JP2015018508A (ja) 分散処理システム
JP2008226177A (ja) 分散処理プログラム、システムおよび方法
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
JP5956364B2 (ja) クラスタシステム
JP5711772B2 (ja) クラスタシステム
JP6093320B2 (ja) 分散処理システム
JP6506156B2 (ja) ノードおよびグラビテーション抑止方法
JP5815000B2 (ja) ノードおよびプログラム

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 Written amendment

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