JP5918802B2 - ノードおよびプログラム - Google Patents
ノードおよびプログラム Download PDFInfo
- Publication number
- JP5918802B2 JP5918802B2 JP2014079232A JP2014079232A JP5918802B2 JP 5918802 B2 JP5918802 B2 JP 5918802B2 JP 2014079232 A JP2014079232 A JP 2014079232A JP 2014079232 A JP2014079232 A JP 2014079232A JP 5918802 B2 JP5918802 B2 JP 5918802B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- owner
- redundancy
- member identifier
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
このように原本データ・複製データを担当するノード(メンバ)を決定することで、ノードに障害等が発生し、当該ノードが離脱した場合でも、複製データを所持しているノードが新たに原本データを担当するノードとなることにより処理を継続できるという利点がある。
まず、本実施形態に係るノード1含む分散処理システム1000の全体構成について説明する。
図2は、本実施形態に係るノード1を含む分散処理システム1000の全体構成を示す図である。
また、本実施形態に係る分散処理システム1000では、クラスタからのノード1の離脱時におけるデータの再冗長化処理と、クラスタへのノード1の追加時におけるデータの再配置処理とにおいて同様の仕組みでノード間のデータ移行を行うため、以下の説明では、ノード1の離脱時と追加時とのデータ移行の処理を、併せて再冗長化処理と称して説明する。
本実施形態に係る分散処理システム1000のノード1は、クラスタを構成する複数のノード1の通常の処理(クライアント2からのメッセージ処理)に影響を及ぼさないようにするため、ノード1の離脱や追加があった場合に、その離脱や追加の直後ではなく、所定のタイミングで再冗長化処理の対象となるデータ(再冗長化処理対象データ)を検出する処理を実行し、そこで検出されたデータについて、再冗長化処理を実行する。さらに、本実施形態に係るノード1は、各ノード1が保持する原本データについて、所定の時間間隔で、複製ノード(バディ)が保持する複製データとの間で不整合が発生しているか否かの検出処理(不整合検出処理)を行い、不整合が検出された場合に、その不整合を回復させる。この不整合検出処理の際、ノード1は、再冗長化処理において、整合性が回復できるデータについては、処理対象のデータ(後記する「整合対象データ」)として抽出しないことによりデータを絞り込み、ノード1への負荷を抑えた不整合検出処理を実行する。
以下、本実施形態に係るノード1の構成例について、具体的に説明する。
ノード1は、図2に示したように、振り分け装置4と通信可能に接続されると共に、クラスタを構成する自身以外の他のノード1とも通信可能に接続される。そして、クライアント2からのメッセージを受信し、サービスを提供する。また、ノード1は、クラスタを構成するノードに離脱または追加があった場合に、移行が必要なデータについて、再冗長化処理を実行する。さらに、ノード1は、自身が保持する原本データと、他のノード1が保持するその原本データの複製データについての不整合を検出し、回復させる処理を実行する。
このノード1は、図3に示すように、制御部10と、入出力部11と、メモリ部12と、記憶部13(記憶手段)とを含んで構成される。
ノードアドレス301(ノード識別情報)は、各ノード1に固有なアドレスであり、例えば、IPアドレスである。
メンバ識別子302は、ノード1(メンバ)に固有な識別子であり、例えば、コンシステントハッシュのID空間上でのノードIDに相当する。また、コンシステントハッシュ法において仮想IDを用いる場合には、メンバ識別子302は、仮想ID毎に割り当てられ、メンバ識別子管理テーブル300に登録される。そして、このメンバ識別子管理テーブル300では、例えば、メンバ識別子302を昇順に並べることにより、コンシステントハッシュのID空間におけるID(または仮想ID)を昇順に並べて管理することができる。つまり、メンバ識別子管理テーブル300において、メンバ識別子302を昇順に並べたときの次のノード1(メンバ)が、ID空間上での右隣(時計回りに次)のノード1(メンバ)となる。
なお、このメンバ識別子302は、メンバ識別子管理部101が各ノード1に対して付与することもできるし、他のノード1や外部装置(例えば、振り分け装置4等)が生成したメンバ識別子管理テーブル300を受信して格納することも可能である。
図5(a)に示すように、ノード1に保持されるデータ400には、データ識別子401と、所有者・バディ情報402(所有者・複製先情報)と、データ本体403とが格納される。図5(b)を参照して、各データの内容を説明する。
所有者・バディ情報402(所有者・複製先情報)には、そのデータについて、原本データを保持しているノード(所有者)に関する情報と、複製データを保持しているノード(バディ:複製ノード)に関する情報とが格納される。ここで、所有者に関する情報は、ID空間上での所有者(メンバ)を識別する情報として、ノードアドレス301(ノード識別情報)とメンバ識別子302の情報が格納される。なお、このノードアドレス301とメンバ識別子302は、メンバ識別子管理テーブル300(図4)に格納される情報と同様の情報であるが、図5(b)においては、ノードアドレス「1」、メンバ識別子「1」等のように簡略化して表記している。また、バディに関する情報は、ID空間上でのバディを識別する情報として、ノードアドレス301(ノードアドレス「2」)とメンバ識別子302(メンバ識別子「2」)の情報が格納される。
データ本体403には、メッセージ処理の対象となるデータそのものが格納される。
なお、ノード1が追加された場合には、(2)の原本データが消失した複製データは、存在しないため、そのノード1が原本として管理しているデータ(原本データ)のみが抽出される。
なお、この再冗長化処理スレッド数、再冗長化処理実行間隔、シミュレーション最大個数の各パラメータは、予めすべて設定されてもよいし、いずれか1つでもよいし、各パラメータを任意に組み合わせて設定されてもよい。
また、このパラメータにより調整される所定のタイミングでの再冗長化処理の詳細については、図7を参照して後記する。
(条件B)データの「データ識別子」が、メンバ識別子管理テーブルにおける自ノードのメンバの担当領域内に位置するデータである。
また、(条件B)は、データに付与されたデータ識別子401が、メンバ識別子管理テーブル300に基づき自ノードが所有者となるデータであることを示す。そして、この(条件B)は、その時点における(更新された最新の)メンバ識別子管理テーブル300において、データ識別子401が、自ノード1のメンバの担当領域内に位置しない、つまり、他ノード1の担当領域内に位置する場合、今後の再冗長化処理により他ノード1が所有者となるようなデータの再配置が行われ、そこで整合性回復が期待できるため、不整合検出処理の対象としないようにするためのものである。
(条件A)、(条件B)の両方を満たすデータを、不整合検出処理の対象となるデータ(整合対象データ)として抽出することにより、ノード1が保持する全データの中から、整合対象データを絞り込むことができ、ノード1の処理負荷を抑えることができる。
ノード1(所有者)のデータ整合処理部106は、所有者・バディ情報402に示される複製ノード(バディ)に対して、整合対象データ(原本データ)をハッシュ値に変換した値を送信する。複製ノード(バディ)のデータ整合処理部106は、整合対象データ(原本データ)の複製データを抽出して、その複製データをハッシュ値に変換した値を算出する。そして、複製ノード(バディ)のデータ整合処理部106は、受信した整合対象データ(原本データ)のハッシュ値と、算出した複製データのハッシュ値とを比較することにより、整合性を確認する。ここで、整合性確認処理に利用するデータの情報は、整合対象データ(原本データ)そのものでもよいし、その他、整合性確認を実行できる値であればよい。
複製ノード(バディ)のデータ整合処理部106は、整合性を確認した結果(値が一致すれば「整合」、値が不一致であれば「不整合」)を、原本データを保持するノード1(所有者)に送信する。
自ノード1(所有者)のデータ整合処理部106は、整合性を確認した結果が不整合である応答を受け取ると、その整合対象データ(原本データ)を、不整合となった複製ノード(バディ)に送信し、その複製データを送信した原本データで上書き(更新)させることにより、整合性を回復する。
なお、データ400の各データには、図5に示すように、そのデータのデータ識別子401、所有者・バディ情報402およびデータ本体403が格納される。
次に、本実施形態に係るノード1が実行する処理の流れについて説明する。ここでは、再冗長化処理部105が行う再冗長化対象データの検出処理、および、所定のタイミングでの再冗長化処理について説明する。その後、データ整合処理部106が行う不整合検出処理について説明する。
再冗長化対象データの検出処理は、データ抽出部104が判定対象データとして抽出し、抽出データ管理テーブル100に格納したデータについて、ノード1の離脱や追加に対応して変更されたメンバ識別子管理テーブル300に基づき、コンシステントハッシュ法等の予め定められたデータ管理手法に従った場合の所有者とバディとを特定し(シミュレーション)、各データ(判定対象データ)に付与されている所有者・バディ情報402と比較する。そして、再冗長化処理部105は、この比較の結果、所有者のメンバ識別子およびバディのメンバ識別子が一致(完全一致)しないデータを、再冗長化対象データとして検出する。
次に、図7を参照して、再冗長化処理部105が、予め設定されるパラメータに基づいて、再冗長化処理を実行する所定のタイミングについて説明する。
図7においては、予め設定されるパラメータの例として、再冗長化処理スレッド数、再冗長化処理実行間隔、および、シミュレーション最大個数が設定されている例を示す。
また、各スレッドにおいて、再冗長化処理部105が、抽出データ管理テーブル100から判定対象データを取得すると(ステップS20)、再冗長化対象データの検出処理を実行し(ステップS21)、再冗長化対象データが検出された場合には、そのまま再冗長化処理を実行する(ステップS22)。
次にデータ整合処理部106が実行する不整合検出処理について説明する。図1を参照して説明したように、原本データの更新が発生した場合に、その複製データに更新が反映するように、メッセージ処理部102(図3)によりデータの複製が行われるが、その複製処理に失敗した場合に、原本データと複製データとの間で不整合が発生する。データ整合処理部106は、この原本データと複製データとの間で発生した不整合を検出して回復する処理(不整合検出処理)を実行する。
この整合対象データの抽出は、データ整合処理部106が、自ノード1に格納された全データに関して、前記した(条件A)、(条件B)の両方を満たすデータのデータ識別子を抽出することにより行う。
図9は、本実施形態に係るノード1のデータ整合処理部106が行う整合対象データリスト200の生成処理を説明するための図である。
データ整合処理部106は、自ノード1が格納するデータ400が(条件B)を満たすか否かを判定するため、まず、データ400のデータ識別子401の値を抽出する。図10(a)に示す例においては、ノード「A」に格納されたデータ「X」のデータ識別子401として、コンシステントハッシュのIDの値「12345」が抽出されたものとする。
次に、データ整合処理部106は、メンバ識別子管理テーブル300を参照し、抽出されたデータ識別子401の値が、自ノード1のメンバの担当領域内に位置するか否かを判定する。図10(b)に示す例では、抽出されたデータ識別子401の値「12345」が、コンシステントハッシュのID空間における領域「1」、つまり、自ノード(ここでは、ノードアドレス「10.0.0.1」のノード「A」)のメンバ「1」(メンバ識別子「22222」)の担当領域(「11112」〜「22222」)内に位置するデータであるため、(条件B)を満たすと判定される。
この整合性確認処理は、以下の処理により行われる。自ノード1(所有者)のデータ整合処理部106は、所有者・バディ情報402に示される複製ノード(バディ)に対して、整合対象データ(原本データ)をハッシュ値に変換した値を送信する。その情報を受信した複製ノード(バディ)のデータ整合処理部106は、その整合対象データ(原本データ)に対応する複製データをハッシュ値に変換した値を算出し、その算出した複製データのハッシュ値と、受信した整合対象データ(原本データ)のハッシュ値とを比較することにより整合性を確認する。そして、複製ノード(バディ)のデータ整合処理部106は、その整合性の確認結果(整合、不整合)を、原本データを保持するノード1(所有者)に送信する。
具体的には、データ整合処理部106は、その整合対象データ(原本データ)を、不整合となった複製ノード(バディ)に送信する。そして、複製ノード(バディ)のデータ整合処理部106が、受信した原本データを用いて、複製データを上書き(更新)することにより、整合性を回復させる。そして、ステップS34に進む。
2 クライアント
3 ロードバランサ
4 振り分け装置
10 制御部
11 入出力部
12 メモリ部
13 記憶部(記憶手段)
100 抽出データ管理テーブル
101 メンバ識別子管理部(メンバ識別子管理手段)
102 メッセージ処理部
103 データ情報付与部(データ情報付与手段)
104 データ抽出部
105 再冗長化処理部(再冗長化処理手段)
106 データ整合処理部(データ整合処理手段)
200 整合対象データリスト
300 メンバ識別子管理テーブル(メンバ識別子管理情報)
400 データ
1000 分散処理システム
Claims (2)
- クラスタを構成する複数のノードのいずれかが、クライアントにサービスを提供するためのデータを原本データとして格納する所有者ノード、または、前記データの複製データを格納する1つ以上の複製ノードとして割り当てられるクラスタシステムの前記ノードであって、
前記クラスタを構成する複数のノードそれぞれのノード識別情報と、当該複数のノードそれぞれに対応付けられて設定されたメンバに固有な識別子であるメンバ識別子と、が格納されたメンバ識別子管理情報であって、前記データと前記所有者ノードおよび前記複製ノードとの対応関係を求めるために用いられる前記メンバ識別子管理情報が記憶される記憶部と、
前記クラスタにおいて前記ノードが離脱または追加した際に、前記メンバ識別子管理情報を、前記ノードの離脱または追加に応じた、前記データと前記所有者ノードおよび前記複製ノードとの新たな対応関係に変更して格納するメンバ識別子管理部と、
変更された前記メンバ識別子管理情報に基づいて、自ノードが記憶している前記原本データおよび前記複製データを再配置する再冗長化処理を実行する再冗長化処理部と、
前記データを新規に保持する際、および、前記再冗長化処理を実行する際に、(1)前記データに固有な識別子であるデータ識別子と、(2)当該データの前記原本データを格納する前記所有者ノードの前記ノード識別情報および前記メンバ識別子、並びに、当該データの前記複製データを格納する前記複製ノードの前記ノード識別情報および前記メンバ識別子、を示す所有者・複製先情報と、を前記データそれぞれに付与するデータ情報付与部と、
自ノードが保持する前記データの中から、(条件A)前記データに付与された前記所有者・複製先情報の前記所有者ノードの前記ノード識別情報が、自ノードのノード識別情報であること、(条件B)前記データに付与された前記データ識別子が、前記メンバ識別子管理情報に基づき自ノードが前記所有者ノードとなるデータであること、の両条件を満たす前記データを整合対象データとして抽出し、前記抽出した整合対象データについて、自ノードが格納する原本データと、前記所有者・複製先情報に示される前記複製ノードが格納する複製データとを比較し、不整合が検出された場合に、前記原本データにより前記複製データを更新することにより不整合を回復させるデータ整合処理部と、
を備えることを特徴とするノード。 - クラスタを構成する複数のノードのいずれかが、クライアントにサービスを提供するためのデータを原本データとして格納する所有者ノード、または、前記データの複製データを格納する1つ以上の複製ノードとして割り当てられるクラスタシステムの前記ノードとしてのコンピュータを、
前記クラスタを構成する複数のノードそれぞれのノード識別情報と、当該複数のノードそれぞれに対応付けられて設定されたメンバに固有な識別子であるメンバ識別子と、が格納されたメンバ識別子管理情報であって、前記データと前記所有者ノードおよび前記複製ノードとの対応関係を求めるために用いられる前記メンバ識別子管理情報が記憶される記憶手段、
前記クラスタにおいて前記ノードが離脱または追加した際に、前記メンバ識別子管理情報を、前記ノードの離脱または追加に応じた、前記データと前記所有者ノードおよび前記複製ノードとの新たな対応関係に変更して格納するメンバ識別子管理手段、
変更された前記メンバ識別子管理情報に基づいて、自ノードが記憶している前記原本データおよび前記複製データを再配置する再冗長化処理を実行する再冗長化処理手段、
前記データを新規に保持する際、および、前記再冗長化処理を実行する際に、(1)前記データに固有な識別子であるデータ識別子と、(2)当該データの前記原本データを格納する前記所有者ノードの前記ノード識別情報および前記メンバ識別子、並びに、当該データの前記複製データを格納する前記複製ノードの前記ノード識別情報および前記メンバ識別子、を示す所有者・複製先情報と、を前記データそれぞれに付与するデータ情報付与手段、
自ノードが保持する前記データの中から、(条件A)前記データに付与された前記所有者・複製先情報の前記所有者ノードの前記ノード識別情報が、自ノードのノード識別情報であること、(条件B)前記データに付与された前記データ識別子が、前記メンバ識別子管理情報に基づき自ノードが前記所有者ノードとなるデータであること、の両条件を満たす前記データを整合対象データとして抽出し、前記抽出した整合対象データについて、自ノードが格納する原本データと、前記所有者・複製先情報に示される前記複製ノードが格納する複製データとを比較し、不整合が検出された場合に、前記原本データにより前記複製データを更新することにより不整合を回復させるデータ整合処理手段、
として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014079232A JP5918802B2 (ja) | 2014-04-08 | 2014-04-08 | ノードおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014079232A JP5918802B2 (ja) | 2014-04-08 | 2014-04-08 | ノードおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015201027A JP2015201027A (ja) | 2015-11-12 |
JP5918802B2 true JP5918802B2 (ja) | 2016-05-18 |
Family
ID=54552238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014079232A Active JP5918802B2 (ja) | 2014-04-08 | 2014-04-08 | ノードおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5918802B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101756136B1 (ko) * | 2016-01-22 | 2017-07-26 | 계명대학교 산학협력단 | 계층적 구조를 갖는 시스템의 정보 결함허용 방법 |
JP6564349B2 (ja) * | 2016-06-09 | 2019-08-21 | 日本電信電話株式会社 | 保守減設システム、ノードおよび保守減設方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163549A (ja) * | 2008-01-08 | 2009-07-23 | Konica Minolta Holdings Inc | ネットワークシステム、共有データの同期方法およびプログラム |
JP5969315B2 (ja) * | 2012-08-23 | 2016-08-17 | 日本電信電話株式会社 | データ移行処理システムおよびデータ移行処理方法 |
-
2014
- 2014-04-08 JP JP2014079232A patent/JP5918802B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015201027A (ja) | 2015-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288248B2 (en) | Performing file system operations in a distributed key-value store | |
US8234518B2 (en) | Method for voting with secret shares in a distributed system | |
US8352482B2 (en) | System and method for replicating disk images in a cloud computing based virtual machine file system | |
US9727273B1 (en) | Scalable clusterwide de-duplication | |
US9305072B2 (en) | Information storage system and data replication method thereof | |
US20140229440A1 (en) | Method and apparatus for replicating virtual machine images using deduplication metadata | |
JP2009020757A (ja) | データ登録装置、データ登録方法及びプログラム | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
JP5969315B2 (ja) | データ移行処理システムおよびデータ移行処理方法 | |
US11409715B2 (en) | Maintaining high-availability of a file system instance in a cluster of computing nodes | |
JP6059558B2 (ja) | 負荷分散判定システム | |
JP6025679B2 (ja) | 分散データベースシステム | |
JP5918802B2 (ja) | ノードおよびプログラム | |
KR101750601B1 (ko) | 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
KR101748913B1 (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 | |
JP5711771B2 (ja) | ノード離脱処理システム | |
JP6093320B2 (ja) | 分散処理システム | |
JP5845298B2 (ja) | ノードおよびプログラム | |
EP2947579A1 (en) | Method for generating a backup copy of a distributed data structure, system for generating a backup copy of a distributed data structure, program and computer program product | |
JP4818396B2 (ja) | オーバーレイネットワークシステム及び同システムにおけるオブジェクト登録方法 | |
JP5711772B2 (ja) | クラスタシステム | |
JP6506156B2 (ja) | ノードおよびグラビテーション抑止方法 | |
JP6714547B2 (ja) | 負荷分散装置、負荷分散方法、および、負荷分散プログラム | |
JP6127005B2 (ja) | クラスタシステムのサーバ装置およびプログラム | |
JP2015011434A (ja) | バックアップ方法及びバックアップシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160127 |
|
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: 20160405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160408 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5918802 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |