【文献】
高木 邦孝,外2名,「DHTにおける負荷分散を目的とした複製配置手法の特性改善」,電子情報通信学会技術研究報告,社団法人電子情報通信学会,2008年 2月28日,第107巻,第525号,pp.385-390,IN2007-223,情報ネットワーク
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0018】
(第1の実施の形態)
本実施の形態においては、DHT(Distributed Hash Table:分散ハッシュテーブル)型P2P方式のネットワークにおける障害時のマスターデータの回復について説明する。
【0019】
図1は、本発明の第1の実施の形態による情報処理システム100の構成を示すブロック図である。
図1を参照すると、本実施の形態による情報処理システム100は、データ書込要求ノード210と、マスターデータ処理ノード220と、レプリカデータ処理ノード230(230−1〜230−5)と、を備える。なお、
図1は例示であって、システム構成を制限するものではない。すなわち、レプリカデータ処理ノード230は任意の台数として構成可能である。
【0020】
本実施の形態では、データ書込要求ノード210、マスターデータ処理ノード220、及びレプリカデータ処理ノード230と明示的に分けているが、各ノードは同一の機能を有しており、全てのノードがデータ書込要求ノード210、マスターデータ処理ノード220、及びレプリカデータ処理ノード230としても動作が可能である。
【0021】
また、データ書込要求ノード210は、データ検索要求ノードとしても動作可能であるが、データ検索要求ノードについては本願発明の特徴的な部分ではないため、その詳細は特許文献1を参照されたい。
【0022】
マスターデータと、分散保持させる該マスターデータの複製データ(以下、レプリカデータと称す)については、基本はマスターデータで運用し、マスターデータ処理ノード220が故障した場合には、レプリカデータを使用する流れとなる。
【0023】
マスターデータ処理ノード220については、データ検索の対象が存在するマスターデータを保持するノードがその役割となるため、検索するデータによっては、どのノードでも、マスターデータ処理ノード220になる可能性があり得る。
【0024】
マスターデータは、その複製であるレプリカデータが分散して複数のレプリカデータ処理ノード230に保持される。各レプリカデータ処理ノード230に保持されるレプリカデータの一部を、以下分散データと称する。分散データは、ハッシュテーブルに基づいて検索されて特定される。
【0025】
また、本実施形態においては、分散データを保持するレプリカデータ処理ノード230を、分散識別情報であるフィンガーテーブル(Finger Table)に基づいて選定するように制御される。そして、分散データは、障害にあったノードを代行するノード、あるいは保存データを検索したノードによってマージされ、これによりマスターデータが復元される。
【0026】
以下、図面を参照しながら、各ノードの構成について説明する。
【0027】
図2は、データ書込要求ノード210の構成を示すブロック図である。データ書込要求ノード210は、データ書込要求処理を行うデータ書込要求手段211と、マスターデータ書込結果受信処理、マスターデータ書込結果判定処理、及びマスターデータ書込完了処理を行うマスターデータ書込結果処理手段212とを備える。各処理の詳細については、後述する。
【0028】
図3は、マスターデータ処理ノード220の構成を示すブロック図である。マスターデータ処理ノード220は、データ受信処理を行うデータ受信手段221と、マスターデータ書込処理及びマスターデータ書込結果通知処理を行うマスターデータ書込手段222と、フィンガーテーブル確認処理、接続可能ノード判定処理、及び分散保持先特定処理を行う分散保持先決定手段223と、データ分散処理を行うデータ分散手段224と、分散データ送信処理を行う分散データ送信手段225と、分散データ書込結果通知受信処理、分散データ書込結果判定処理、及び分散データ書込完了処理を行う分散データ書込結果処理手段226と、フィンガーテーブル、ハッシュテーブル、及びマスターデータを格納する記憶部227とを備える。各処理の詳細については、後述する。
【0029】
図4は、レプリカデータ処理ノード230の構成を示すブロック図である。レプリカデータ処理ノード230は、分散データ受信処理を行う分散データ受信手段231と、分散データ書込処理を行う分散データ書込手段232と、分散データ書込結果通知処理を行う分散データ書込完了通知手段233と、フィンガーテーブル、ハッシュテーブル、及び分散データを格納する記憶部234と、を備える。各処理の詳細については、後述する。
【0030】
以下、本実施の形態の基本的な動作を、
図5を参照して説明する。
【0031】
データ書込要求ノード210の書込要求により、書込対象のデータはその内容などによって選択されたマスターデータ処理ノード220の記憶部225にマスターデータとして保存される。そして、データ書込要求ノード210の該データは削除される。
【0032】
マスターデータ処理ノード220は、マスターデータをハッシュテーブル内のハッシュ値に対応付ける。ハッシュテーブルの詳細な例は特許文献2に説明があるので、特許文献2を参照されたい。そして、フィンガーテーブルに基づいて、マスターデータの複製であるレプリカデータの分散保持先を設定し、分散保持先の数に応じてマスターデータを分割する。分割数は分散保存先の数に対応させなくても、例えば分散保存数の半分にしたり重なり部分を設けたりして、復元能力を高めることもできる。なお、フィンガーテーブルの詳細な例は非特許文献1に説明があるので、非特許文献1を参照されたい。
【0033】
マスターデータ処理ノード220は、分散データ保持先のレプリカデータ処理ノード230に対し、分散データ及び分散データのハッシュ値の保持を要請する。
【0034】
マスターデータ処理ノード220から該要請を受けた各レプリカデータ処理ノード230は、分散データ及びハッシュ値を記憶部234に保持する。
【0035】
なお、
図1では、データ書込要求ノード210とマスターデータ処理ノード220以外のノードがレプリカデータ処理ノード230として図示されている。しかし、レプリカデータ処理ノード230はフィンガーテーブルに基づいて選択されるものであり、
図1はその特殊な例に過ぎない。
【0036】
また、データ書込要求ノード210は、データ検索要求ノードとしても機能するが、本願発明の特徴的な部分ではないため、その詳細は特許文献1を参照されたい。
【0037】
また、本実施形態では、マスターデータ処理ノード220からレプリカデータ処理ノード230の少なくとも1つに、マスターデータ処理ノード220が分散保持先を決めるために使用したフィンガーテーブルの複製が送信される。このため、レプリカデータ処理ノード230の少なくとも1つは、フィンガーテーブルの複製を保持することとなる。これにより、マスターデータ処理ノード220が障害を起こして動作不能となっても、データ書込要求ノード210による保存データの検索をレプリカデータ処理ノード230が代行して、分散データからマスターデータを復元することが可能となる。
【0038】
本発明は、上述の構成を有し、ノード間の距離に基づき用途に応じたデータの分散配置を行うものである。
【0039】
閾値の決定については、マスターデータ処理ノード220が、キャッシュにある全レプリカデータ処理ノード230にアクセスし、これらの距離の平均を算出し、該平均値を閾値とする。ただしこれに限定はされず、平均ではなく中央値等を用いても良い。
【0040】
キャッシュがない場合、あるいは、マスターデータ処理ノード220自体ややネットワークの状態が悪く頻繁にマスターデータ処理ノード220が障害となる状態においては、キャッシュを用いると、既に存在しないレプリカデータ処理ノード230がキャッシュとして登録されている可能性がある。このため、これらのときには、ChordのSuccessor Listを用いて、評価関数はChord1周の長さR=r01+r12+・・・+Rjkから、各ノード間の平均avgR=R/(k+1)を基準値にする。
【0041】
r01は、ノード0とノード1の間の距離とする。最大ノード数はkとする。仮に、r34がr34>c・avgR(C<0の定数)を満たす場合、ノード3とノード4の間の距離は平均よりも長いため、これらのノード間は切断する。切断されたノードは他のノードと接続するようにする。
【0042】
基本的には、データ移動のコストを考えて、ノード間の切断を行う。ただし、接続する対象となるノードが存在しない場合で、距離に問題があるノードが存在する場合には、この限りではなく、接続することもできる。
【0043】
ネットワークは動的に変化するものであるから、距離及び閾値について、予め定めた所定の間隔で再計測しても良いが、再測定をしなくても良い。また、再計測した結果、閾値が変わった場合には、データの再配置を行っても良いし、行わなくても良い。閾値の変更によりデータを分散したレプリカデータ処理ノード230までの距離が閾値より長くなった場合には、該レプリカデータ処理ノード230の分散データの使用を停止する。この場合、停止したレプリカデータ処理ノード230のレプリカ情報を他のレプリカデータ処理ノード230がカバーする必要がある。これについては、(1)元々分散データを持っていたレプリカデータ処理ノード230が別のレプリカデータ処理ノード230に対して引き継ぐ。ただし、(2)マスターデータ処理ノード220がマスターデータ処理ノード220からの距離が閾値内のレプリカデータ処理ノード230に対して、該当するデータを渡す方法でも良い。これらは算出された距離から自動的に選択することができるが、手動でも良い。
【0044】
ノード間の距離については、必ずしも近ければ良い訳ではない。ネットワークのコストを気にする場合には、なるべくノード間の距離が近い同士で接続できるように設計する。一方、ひとつの地域にまとめてデータがあると、データの消失等の問題がある場合を重視した場合には、地域障害等を考慮して、設定した距離以上のノードにデータを配置するようにする。
【0045】
特許文献1に記載の技術は、マスターデータの複製であるレプリカデータを複数のノードに対して分散して保持しているため、各ノードの負担は少ないが、なるべく、不要なデータの移動がないことは重要である。
【0046】
そこで、本発明では、アクセスがあったデータについてデータの移動を実施して、データのアクセスがないデータについては、データの移動をしない。ただし、全てのデータを移動させても良い。
【0047】
また、データの移動を実施した後においても、元々データを保持していたノードは任意の期間においてデータを保持しておくこととしてもよい。この場合、そのデータに対して何らかのアクセスがあった場合、移行した後のノードに対してチェックサムを投げて、データに変更がなければそのデータをそのまま検索先に返すこととする。これにより、不要なデータの移動を防ぐことができる。
【0048】
また、本発明は、特許文献1とは、下記の点で差分がある。
・障害時のために使用する分散保持データについて、距離を定義する。
・P2Pの動作及び前回特許の動作を阻害させないため、距離が適合しない場合には、ネットワークが切断されているものとして取り扱う。
・適合したノードについては、ランク付けをすることができるが、同列でも良い。
【0049】
(第1の実施の形態の動作の説明)
次に、本実施の形態による情報処理システム100の動作について、
図6を参照して詳細に説明する。
図6は、本実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【0050】
図6を参照すると、まず、データ書込要求ノード210は、データ書込要求処理(S611)を用いて、マスターデータ処理ノード220に対しデータ書込要求を行う。
【0051】
マスターデータ処理ノード220は、データ受信処理(S621)を用いて、該要求を受信する。次いで、マスターデータ処理ノード220は、マスターデータ書込処理(S622)を用いて、受信したデータをマスターデータとして記憶部227に書き込む。
【0052】
次いで、マスターデータ処理ノード220は、マスターデータ書込結果通知処理(S623)を用いて、マスターデータの書込結果をデータ書込要求ノード210に通知する。
【0053】
データ書込要求ノード210は、マスターデータ書込結果受信処理(S612)を用いて該書込結果を受信すると、マスターデータ書込結果判定処理(S613)を用いて該書込結果を判定する。
【0054】
マスターデータが正常に書き込められたと判定した場合、データ書込要求ノード210は、マスターデータ書込完了処理(S614)を用いて、データ書込要求ノード210が保持していた書込対象のデータ消去し、マスターデータ書込処理を完了させる。
【0055】
一方、マスターデータが正常に書き込められなかったと判定した場合には、データ書込要求ノード210は、マスターデータ書込完了処理(S614)を用いて、正常に書き込めなかった旨のメッセージを通知する。
【0056】
どこに正常に書き込めなかった旨のメッセージの通知先はシステム設計による。例えば、データ書込要求ノード210自身で通知を受けてもよいし、データ書込要求ノード210に書き込みを指示した依頼元に通知してもよい。さらに、正常に書き込めなかった場合、データ書込要求ノード210が保持するマスターデータ処理ノード220に書き込む内容を保持するか/消去するかもシステム設計による。さらに、データ書込要求ノード210が保持するマスターデータ処理ノード220に書き込む内容を再度マスターデータ処理ノード220に書き込むように要求するか否かもシステム設計による。
【0057】
マスターデータ書込結果通知処理(S623)の後、マスターデータ処理ノード220は、フィンガーテーブル確認処理(S624)、接続可能ノード判定処理(S625)、及び分散保持先特定処理(S626)を用いて、レプリカデータの分散保持先を決定する。
【0058】
まず、フィンガーテーブル確認処理(S624)を用いて、フィンガーテーブルを確認して、レプリカデータの分散保持先の対象となるレプリカデータ処理ノード230を選択する。
【0059】
次いで、接続可能ノード判定処理(S625)を用いて、マスターデータ処理ノード220と、各レプリカデータ処理ノード230との距離を比較し、該距離が予め定めた閾値を満たすレプリカデータ処理ノード230を分散保持先の対象として抽出する。
【0060】
図5の例では、フィンガーテーブル確認処理(S624)で選択されたレプリカデータ処理ノード230のうち、レプリカデータ処理ノード230−4が対象から外されている。なお、
図5の例では、距離が閾値以下のレプリカデータ処理ノード230を分散保持先の対象として、閾値より大きいレプリカデータ処理ノード230を分散保持先の対象から外しているが、地域障害等を考慮して、距離が閾値以内のレプリカデータ処理ノード230を分散保持先の対象から外すこととしてもよい。
【0061】
次いで、分散保持先特定処理(S626)を用いて、フィンガーテーブル確認処理(S624)、接続可能ノード判定処理(S625)の結果残ったレプリカデータ処理ノード230を、分散先ノードと特定する。そして、分散保持先特定処理(S626)からデータ分散処理(S627)に対し、どのレプリカデータ処理ノード230にレプリカデータを分散すれば良いのか(分散保持先の情報)を通知する。
【0062】
次いで、マスターデータ処理ノード220は、データ分散処理(S626)を用いて、マスターデータの複製(レプリカデータ)を生成した上で、該レプリカデータを所定数(
図3の例では4つ)に分散する。分割数は分散保存先の数に対応させてもよいし、例えば分散保存数の半分にしたりしてもよい。また、重なり部分を設けたりして、復元能力を高めることとしてもよい。
【0063】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理(S627)から分散データ送信処理(S628)に渡される。
【0064】
次いで、マスターデータ処理ノード220は、分散データ送信処理(S628)を用いて、渡された分散データ及びハッシュ値を分散保持先のレプリカデータ処理ノード230に対して送信する。また、分散保持先のレプリカデータ処理ノード230の少なくとも1つに、マスターデータ処理ノード220が分散保持先を決めるために使用したフィンガーテーブルの複製を送信する。
【0065】
図5の例では、レプリカデータ処理ノード230−2、230−3、2305の3つのノードに分散データ及びハッシュ値が送信されている。さらに、レプリカデータ処理ノード230−2へは、分散データ2つ分のデータが送信される。これは、分散データ送信処理(S628)において、データの移動コストに応じて、送信するレプリカデータのデータ量を可変できることを示している。データの移動コストに応じて、データ書込要求ノードからなるべく近くにデータをまとめたい場合、あるいは、なるべく遠くにデータをまとめたい場合に用いられる。
【0066】
レプリカデータ処理ノード230は、分散データ受信処理(S631)を用いて、マスターデータ処理ノード220から分散データ及びハッシュ値、場合によっては更にフィンガーテーブルを受信する。
【0067】
次いで、レプリカデータ処理ノード230は、分散データ書込処理(S632)を用いて、分散データとハッシュ値を記憶部234に書き込む。さらに、フィンガーテーブルを受信している場合は、フィンガーテーブルを記憶部234に書き込む。データ書込処理が終了すると、書込結果が分散データ書込結果通知処理(S633)に通知される。
【0068】
なお、フィンガーテーブルの登録は、システム設計に対応して、全ての分散先のレプリカデータ処理ノード230に登録してもよいし、予め決められたレプリカデータ処理ノード230への送信でもよい。例えば、
図5において、レプリカデータ処理ノード230−2がマスターデータ処理ノード220の障害時にデータ検索の代行をする設計であれば、レプリカデータ処理ノード230−2に送信すればよい。しかしながら、どのレプリカデータ処理ノード230でも障害時にデータ検索の代行ができるように設計すれば、全レプリカデータ処理ノード230に送信することになる。
【0069】
次いで、レプリカデータ処理ノード230は、分散データ書込結果通知処理(S633)を用いて、分散データ書込処理(S632)の書込結果をマスターデータ処理ノード220に通知する。
【0070】
マスターデータ処理ノード220は、分散データ書込結果通知受信処理(S629)を用いて、分散データ等の書込結果の通知を受信する。該通知は、データ書込結果通知受信処理(S629)から分散データ書込結果判定処理(S630)に通知される。
【0071】
マスターデータ処理ノード220は、分散データ書込結果判定処理(S630)を用いて、分散データ等が全ての分散先において正常に書き込まれたか否かを判定する。正常に書き込まれたと判定した場合、マスターデータ処理ノード220は、分散データ書込完了処理(S631)を用いて、データ分散処理(S627)で生成した分散データを消去し、分散データのレプリカデータ処理ノード230への書き込みを完了させる。
【0072】
一方、少なくとも1つのレプリカデータ処理ノード230において分散データ等が正常に書き込めなかった場合には、マスターデータ処理ノード220は、分散データ書込完了処理(S631)を用いて、正常に書き込めなかった旨のメッセージを通知する。どこに通知するかはシステムの設計による。
【0073】
例えば、マスターデータ処理ノード220自身で通知を受けて、他のフィンガーテーブルによる再分散を試みてもよいし、書き込みを失敗したレプリカデータ処理ノード230を他のレプリカデータ処理ノード230で代行して再分散を試みてもよい。あるいは、データ書込要求ノード210に通知してもよいし、データ書込要求ノード210を介してデータ書込要求を行ったシステム外部の他のシステムや装置でもよい。さらに、レプリカデータ処理ノード230に通知して、他のレプリカデータ処理ノード230で分散データの書き込みが失敗したことを通知して、記憶部234に書き込んだ分散データを削除するようにしてもよい。
【0074】
また、分散データ等が正常に書き込めなかった場合、マスターデータ処理ノード220が保存したマスターデータの保持を継続するか/消去するかも、システムの設計による。更に、マスターデータ処理ノード220が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノード230に要求するかも、システムの設計による。
【0075】
(第1の実施の形態による効果)
本実施の形態によれば、ノード障害時に使用するデータの分散方法の処理を阻害することなく、ノード間の距離から用途に応じたデータの分散配置を行うことができる。
【0076】
また、本実施の形態によれば、マスターデータのレプリカを分散書込みすることで、各ノードの負荷を分散できる。
【0077】
また、本実施の形態によれば、書き込み、検索で発生する不要なホップを防ぐことができる。その理由は、マスターデータのレプリカを分散書込みするノードはマスターデータを保持するノードのフィンガーテーブル内のノードであるからである。
【0078】
また、本実施の形態によれば、DHT型P2Pネットワーク内のノード追加・削除を分散処理できるため、これらの処理を効率良く実行することができる。すなわち、このバックアップデータを分散配置し、局所的に負荷がかかっていた問題を軽減させた。このため、再分散時に多量のデータを移管することなく、データ移管を可能にする。また、検索においても、ネットワークに流れるデータ量減少及び応答速度向上を目的として、ホップ数を削減させて検索できる。
【0079】
ここで、本発明の課題を解決できる最小限の構成を
図7に示す。P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システム100が、データの書き込みを指示するデータ書込要求ノード210と、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノード220と、マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノード230とを備え、マスターデータ処理ノード220が、マスターデータを記憶部227に書き込むマスターデータ書込手段222と、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノード230を決定する分散保持先決定手段223とを含むことで、上述した本発明の課題を解決することができる。
【0080】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明を行う。本実施の形態では、第1の実施の形態に比べ、レプリカデータ処理ノード230のうちの1つが、レプリカデータの全てを保持する同期ノードである点、及び同期ノードがから他のレプリカデータ処理ノード230へ分散データを送信する点が異なる。
【0081】
図8は、本実施の形態に係るマスターデータ処理ノード220の構成を示すブロック図である。第1の実施の形態と比較すると、データ分散手段224、分散データ送信手段225、及び分散データ書込結果処理手段226がなくなり、代わりに、レプリカデータ送信手段228と、レプリカデータ書込結果処理手段229とを備える。
【0082】
レプリカデータ送信手段228は、レプリカデータ送信処理を行い、レプリカデータ書込結果処理手段229は、レプリカデータ書込結果通知受信処理、及びレプリカデータ書込結果判定処理を行う。処理の詳細については後述する。
【0083】
図8は、本実施の形態に係る同期ノード240の構成を示すブロック図である。同期ノード240は、レプリカデータ処理ノード230のうちから任意に選択されたノードである。
【0084】
同期ノード240は、レプリカデータ受信処理を行うレプリカデータ受信手段241と、レプリカデータ書込処理及びレプリカデータ書込結果通知処理を行うレプリカデータ書込手段242と、データ分散処理を行うデータ分散手段244と、分散データ送信処理を行う分散データ送信手段245と、分散データ書込結果通知受信処理、分散データ書込結果判定処理、及び分散データ書込完了処理を行う分散データ書込結果処理手段246と、フィンガーテーブル、ハッシュテーブル、及びマスターデータを格納する記憶部247と、を備える。各処理の詳細については、後述する。
【0085】
データ分散手段244、分散データ送信手段245、分散データ書込結果処理手段246、記憶部247は、第1の実施の形態におけるデータ分散手段224、分散データ送信手段225、分散データ書込結果処理手段226、記憶部227に対応するものである。
【0086】
本実施の形態では、データ書込要求ノード210、マスターデータ処理ノード220、同期ノード240、及びレプリカデータ処理ノード230と明示的に分けているが、各ノードは同一の機能を有しており、全てのノードがデータ書込要求ノード210、マスターデータ処理ノード220、同期ノード240、及びレプリカデータ処理ノード230としても動作が可能である。
【0087】
データ書込要求ノード210、レプリカデータ処理ノード230については、第1の実施の形態と同様の構成であるため説明を省略する。
【0088】
以下、本実施の形態の基本的な動作を、
図10を参照して説明する。本実施の形態では、第1の実施の形態に加え、データ移動コストに応じて同期・非同期処理を行っている。
【0089】
図10を参照すると、(3)の処理では、マスターデータと全く同一のデータであるレプリカデータを、マスターデータの書き込みタイミングと同期して保存することを示している。同期であるため、データの応答速度を考慮すると、基本的には、データ移動コストが最小のレプリカデータ処理ノード230にレプリカデータを保存する。ただし、地域障害等を考慮して遠隔地でデータを同期させたい場合には、必ずしも最小ではなくてもよい。
【0090】
同期によるレプリカデータ保存手順は以下のように行う。
1.データ書込要求ノード210から書込対象のデータを受け取ったマスターデータ処理ノード220が、同期ノード240を選択して、レプリカデータの保存を依頼する。
2.同期ノード240は、マスターデータ処理ノード220にレプリカデータを保存した旨を通知する。
3.同期ノードから通知を受けたマスターデータ処理ノード220は、データ書込要求ノード210から書込依頼を受けたデータを、マスターデータとして記憶部227に保存し、その結果をデータ書込要求ノード210に通知する。
【0091】
用途に応じて距離別にブロックされた場合にどこにアクセスすれば良いかという論理については、同期ノードの順位付けを行う。
【0092】
例えば、P2Pネットワーク内のノードの台数をNとし、閾値をN以下とする。下記IDのレプリカデータ処理ノード230が、それぞれレプリカデータを以下のように保持していたとする。
ID0: レプリカ数4
ID10: レプリカ数1
ID20: レプリカ数0
P2Pノードが4台構成のとき、N=4となるため、ID10が優先的に選択される。
【0093】
同期ノードは、他の任意のレプリカデータ処理ノード230に対し、レプリカデータの分散データの書込依頼を、非同期で行う(
図10の(4)〜(6)の処理)。この処理は、第1の実施の形態と比べ、処理の主体が異なっているが、処理自体は
図5に示す(3)〜(6)の処理と同様である。
【0094】
(第1の実施の形態の動作の説明)
次に、本実施の形態による情報処理システム100の動作について、
図11を参照して詳細に説明する。
図11は、本実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【0095】
図11を参照すると、まず、データ書込要求ノード210は、データ書込要求処理(S1111)を用いて、マスターデータ処理ノード220に対しデータ書込要求を行う。
【0096】
マスターデータ処理ノード220は、データ受信処理(S1121)を用いて、該要求を受信する。
【0097】
次いで、マスターデータ処理ノード220は、フィンガーテーブル確認処理(S1122)、接続可能ノード判定処理(S1123)、及び分散保持先特定処理(S1124)を用いて、レプリカデータの分散保持先を決定する。
【0098】
まず、フィンガーテーブル確認処理(S1122)を用いて、フィンガーテーブルを確認して、レプリカデータの分散保持先の対象となるレプリカデータ処理ノード230を抽出する。
【0099】
次いで、接続可能ノード判定処理(S1123)を用いて、マスターデータ処理ノード220と、他の各レプリカデータ処理ノード230との距離を比較し、該距離が予め定めた閾値を満たすレプリカデータ処理ノード230を分散保持先の対象として抽出する。
【0100】
図10の例では、フィンガーテーブル確認処理(S624)で選択されたレプリカデータ処理ノード230のうち、レプリカデータ処理ノード230−4が対象から外されている。なお、
図10の例では、距離が閾値以下のレプリカデータ処理ノード230を分散保持先の対象として、閾値より大きいレプリカデータ処理ノード230を分散保持先の対象から外しているが、地域障害等を考慮して、距離が閾値以内のレプリカデータ処理ノード230を分散保持先の対象から外すこととしてもよい。また、マスターデータ処理ノード220ではなく、同期ノード240との距離に基づいて分散保持先を特定することとしても良い。
【0101】
次いで、分散保持先特定処理(S1124)を用いてにより、フィンガーテーブル確認処理(S1122)、接続可能ノード判定処理(S1123)の結果残ったレプリカデータ処理ノード230を、分散先ノードと特定する。そして、分散保持先特定処理(S1124)から同期データ送信処理(S1125)に対し、分散保持先の情報(どのレプリカデータ処理ノード230にレプリカデータを分散すれば良いのか)を通知する。
【0102】
次いで、マスターデータ処理ノード220は、レプリカデータ送信処理(S1125)を用いて、マスターデータの複製であるレプリカデータと、分散保持先の情報と、フィンガーテーブルとを、同期ノード240に送信する。
【0103】
同期ノード240は、レプリカデータ受信処理(S1141)を用いて、マスターデータ処理ノード220からのデータを受信し、レプリカデータ書込処理(S1142)を用いて、レプリカデータ及びフィンガーテーブルを記憶部247に書き込む。
【0104】
次いで、同期ノード240は、レプリカデータ書込結果通知処理(S1143)を用いて、レプリカデータの書込結果をマスターデータ処理ノード220に通知する。
【0105】
マスターデータ処理ノード220は、レプリカデータ書込結果通知受信処理(S1126)を用いて該書込結果を受信すると、レプリカデータ書込結果判定処理(S1127)を用いて該書込結果を判定する。
【0106】
レプリカデータ書込処理(S1142)におけるデータ書込結果が正常であった場合(正常に書き込まれていた場合)、マスターデータ処理ノード220は、マスターデータ書込処理(S1128)を用いて、記憶部227にマスターデータを書き込む。次いで、マスターデータ書込結果通知処理(S1129)を用いて、マスターデータの書込結果をデータ書込要求ノード210に通知する。
【0107】
一方、レプリカデータ書込処理(S1142)で正常に書き込められていなかった場合、マスターデータ書込処理(S1128)ではマスターデータを書き込まず、マスターデータ書込結果通知処理(S1129)を用いて、マスターデータが正常に書き込めなかった旨のメッセージをデータ書込要求ノード210に通知する。
【0108】
このように、本実施の形態では、レプリカデータの書き込みが正常に行われなかった場合、マスターデータの書き込みもされないため、レプリカデータとマスターデータの書き込みは同期的に行われることになる。
【0109】
データ書込要求ノード210は、マスターデータ書込結果受信処理(S1112)を用いて該書込結果を受信する。以降の処理については第1の実施の形態と同様であるため説明を省略する。
【0110】
レプリカデータ書込結果通知処理(S1143)の後、同期ノード240は、データ分散処理(S1144)を用いて、マスターデータ処理ノード220から受信した分散保持先の情報に基づいて、レプリカデータを所定数(
図11の例では4つ)に分割する。分割数は分散保存先の数に対応させてもよいし、例えば分散保存数の半分にしたりしてもよい。また、重なり部分を設けたりして、復元能力を高めることとしてもよい。
【0111】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理(S1144)から分散データ送信処理(S1145)に渡される。
【0112】
なお、レプリカデータ書込処理(S1142)で正常にデータ書込ができなかった場合は、データ分散処理(S1144)以降の処理は行わないものとする。ただしこれに限定はされない。
【0113】
次いで、同期ノード240は、分散データ送信処理(S1145)を用いて、渡された分散データ及びハッシュ値を分散保持先のレプリカデータ処理ノード230に対して送信する。また、分散保持先のレプリカデータ処理ノード230の少なくとも1つに、マスターデータ処理ノード220が分散保持先を決めるために使用したフィンガーテーブルの複製を送信する。
【0114】
図10の例では、レプリカデータ処理ノード230−2、230−3、2305の3つのノードに分散データ及びハッシュ値を送信する。
【0115】
さらに、レプリカデータ処理ノード230−2へは、分散データ2つ分のデータが送信される。これは、分散データ送信処理(S1145)において、データの移動コストに応じて、送信するレプリカデータのデータ量を可変できることを示している。データの移動コストに応じて、データ書込要求ノードからなるべく近くにデータをまとめたい場合、あるいは、なるべく遠くにデータをまとめたい場合に用いられる。
【0116】
分散保持先のレプリカデータ処理ノード230は、分散データ受信処理(S1131)を用いて、同期ノード240から分散データ及びハッシュ値、場合によっては更にフィンガーテーブルを受信する。
【0117】
次いで、レプリカデータ処理ノード230は、分散データ書込処理(S1132)を用いて、分散データとハッシュ値を記憶部234に書き込む。さらに、フィンガーテーブルを受信している場合は、フィンガーテーブルを記憶部234に書き込む。データ書込処理が終了すると、書込結果が分散データ書込結果通知処理(S1133)に通知される。
【0118】
なお、フィンガーテーブルの登録は、システム設計に対応して、全ての分散先のレプリカデータ処理ノード230に登録してもよいし、予め決められたレプリカデータ処理ノード230への送信でもよい。例えば、
図10において、レプリカデータ処理ノード230−2がマスターデータ処理ノード220の障害時にデータ検索の代行をする設計であれば、レプリカデータ処理ノード230−2に送信すればよい。しかしながら、どのレプリカデータ処理ノード230でも障害時にデータ検索の代行ができるように設計すれば、全レプリカデータ処理ノード230に送信することになる。
【0119】
次いで、レプリカデータ処理ノード230は、分散データ書込結果通知処理(S1133)を用いて、分散データ書込処理(S113)における分散データ等(分散データ、ハッシュ値、フィンガーテーブル)の書込結果を同期ノード240に通知する。
【0120】
同期ノード240は、分散データ書込結果通知受信処理(S1146)を用いて、分散データ等の書込結果の通知を受信する。該通知は、データ書込結果通知受信処理(S1146)から分散データ書込結果判定処理(S1147)に通知される。
【0121】
次いで、同期ノード240は、分散データ書込結果判定処理(S1147)を用いて、分散データ等が全ての分散先において正常に書き込まれたか否かを判定する。正常に書き込まれたと判定した場合、同期ノード240は、分散データ書込完了処理(S1148)を用いて、データ分散処理(S1144)で生成した分散データを消去し、分散データのレプリカデータ処理ノード230への書き込みを完了させる。
【0122】
一方、少なくとも1つのレプリカデータ処理ノード230において分散データ等が正常に書き込めなかった場合には、同期ノード240は、分散データ書込完了処理(S1148)を用いて、正常に書き込めなかった旨のメッセージを通知する。どこに通知するかはシステムの設計による。
【0123】
例えば、同期ノード240自身で通知を受けても良いし、マスターデータ処理ノード220に通知をしても良い。また、他のフィンガーテーブルによる再分散を試みてもよいし、書き込みを失敗したレプリカデータ処理ノード230を他のレプリカデータ処理ノード230で代行して再分散を試みてもよい。あるいは、データ書込要求ノード210に通知してもよいし、データ書込要求ノード210を介してデータ書込要求を行ったシステム外部の他のシステムや装置でもよい。さらに、レプリカデータ処理ノード230に通知して、他のレプリカデータ処理ノード230で分散データの書き込みが失敗したことを通知して、記憶部234に書き込んだ分散データを削除するようにしてもよい。
【0124】
また、分散データ等が正常に書き込めなかった場合、マスターデータ処理ノード220が保存したマスターデータや、同期ノード220が保存したレプリカデータの保持を継続するか/消去するかも、システムの設計による。更に、マスターデータ処理ノード220が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノード230に要求するかも、システムの設計による。
【0125】
(第2の実施の形態による効果)
本実施の形態によれば、応答速度を考慮して選択された同期ノードに対してレプリカデータを同期で書き込み、レプリカデータの分散保持先のレプリカデータ処理ノード230に対して、分散データを非同期で書き込むことにより、応答速度の劣化を最小限にすることができる。
【0126】
次に、本発明のマスターデータ処理ノード220のハードウェア構成例について、
図12を参照して説明する。
図12は、マスターデータ処理ノード220のハードウェア構成例を示すブロック図である。
【0127】
図12を参照すると、本発明のマスターデータ処理ノード220は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)1201、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部1202、ネットワークを介してデータの送受信を行う通信部1203、入力装置1205や出力装置1206及び記憶装置1207と接続してデータの送受信を行う入出力インタフェース部1204、上記各構成要素を相互に接続するシステムバス1208を備えている。記憶装置1207は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【0128】
本発明のマスターデータ処理ノード220の各機能は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置1207に格納し、そのプログラムを主記憶部1202にロードしてCPU1201で実行することにより、ソフトウェア的に実現することも可能である。
【0129】
また、本発明のデータ書込要求ノード210、レプリカデータ処理ノード230、同期ノード240も、上記のようなハードウェア構成を有し、各機能をハードウェア的又はソフトウェア的に実現する。
【0130】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0131】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【0132】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【0133】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【0134】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【0135】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0136】
(付記1)
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムであって、
データの書き込みを指示するデータ書込要求ノードと、
前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノードと、
前記マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノードとを備え、
前記マスターデータ処理ノードが、
前記マスターデータを記憶部に書き込むマスターデータ書込手段と、
自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定手段と
を含むことを特徴とする情報処理システム。
【0137】
(付記2)
ChordのSuccessor Listを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記1に記載の情報処理システム。
【0138】
(付記3)
前記分散保持先決定手段が、
フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認手段と、
前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定手段と、
接続可能ノード判定手段が抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定手段と
を含むことを特徴とする付記1又は付記2に記載の情報処理システム。
【0139】
(付記4)
前記接続可能ノード判定手段が、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記3に記載の情報処理システム。
【0140】
(付記5)
前記接続可能ノード判定手段が、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記3に記載の情報処理システム。
【0141】
(付記6)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記3から付記5の何れか1項に記載の情報処理システム。
【0142】
(付記7)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記3から付記5の何れか1項に記載の情報処理システム。
【0143】
(付記8)
前記マスターデータ処理ノードが、
前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段と
を含むことを特徴とする付記1から付記7の何れか1項に記載の情報処理システム。
【0144】
(付記9)
前記レプリカデータ処理ノードの1つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが、
前記保持先決定手段の決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信手段を含み、
前記同期ノードが、
前記レプリカデータを記憶部に書き込むレプリカデータ書込手段と、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段と、
前記マスターデータ処理ノードから受信した、前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段とを含む
ことを特徴とする付記1から付記7の何れか1項に記載の情報処理システム。
【0145】
(付記10)
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記9に記載の情報処理システム。
【0146】
(付記11)
前記同期ノードが、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段を含み、
前記マスターデータ書込手段が、
前記レプリカデータ書込結果通知手段からの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記9又は付記10に記載の情報処理システム。
【0147】
(付記12)
前記マスターデータ処理ノードが、
前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信手段を含む
ことを特徴とする付記1から付記11の何れか1項に記載の情報処理システム。
【0148】
(付記13)
前記分散データ送信手段が、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記8又は付記9に記載の情報処理システム。
【0149】
(付記14)
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムにおけるデータバックアップ方法であって、
前記情報処理システムが備えるデータ書込要求ノードが、データの書き込みを指示するステップと、
前記情報処理システムが備えるマスターデータ処理ノードが、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するステップと、
前記情報処理システムが備える複数のレプリカデータ処理ノードが、前記マスターデータの複製であるレプリカデータを分散保持するステップとを有するデータバックアップ方法において、
前記マスターデータ処理ノードが備えるマスターデータ書込手段が、前記マスターデータを記憶部に書き込むマスターデータ書込ステップと、
前記マスターデータ処理ノードが備える分散保持先決定手段が、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定ステップと
を有することを特徴とするデータバックアップ方法。
【0150】
(付記15)
ChordのSuccessor Listを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記14に記載のデータバックアップ方法。
【0151】
(付記16)
前記分散保持先決定手段が備えるフィンガーテーブル確認手段が、フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認ステップと、
前記分散保持先決定手段が備える接続可能ノード判定手段が、前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定ステップと、
前記分散保持先決定手段が備える分散保持先特定手段が、接続可能ノード判定ステップで抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定ステップと
を有することを特徴とする付記14又は付記15に記載のデータバックアップ方法。
【0152】
(付記17)
前記接続可能ノード判定ステップで、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記16に記載のデータバックアップ方法。
【0153】
(付記18)
前記接続可能ノード判定ステップで、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記16に記載のデータバックアップ方法。
【0154】
(付記19)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記16から付記18の何れか1項に記載のデータバックアップ方法。
【0155】
(付記20)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記16から付記18の何れか1項に記載のデータバックアップ方法。
【0156】
(付記21)
前記マスターデータ処理ノードが備えるデータ分散手段が、前記分散保持先決定ステップでの決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散ステップと、
前記マスターデータ処理ノードが備える分散データ送信手段が、前記分散データを、前記分散保持先決定ステップでの決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信ステップと
を有することを特徴とする付記14から付記20の何れか1項に記載のデータバックアップ方法。
【0157】
(付記22)
前記レプリカデータ処理ノードの1つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが備える同期データ送信手段が、前記保持先決定ステップでの決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信ステップと、
前記同期ノードが備えるレプリカデータ書込手段が、前記レプリカデータを記憶部に書き込むレプリカデータ書込ステップと、
前記同期ノードが備える書込結果通知手段が、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知ステップと、
前記同期ノードが備えるデータ分散手段が、前記マスターデータ処理ノードから受信した、前記分散保持先決定ステップでの決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散ステップと、
前記同期ノードが備える分散データ送信手段が、前記分散データを、前記分散保持先決定ステップでの決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信ステップと
を有することを特徴とする付記14から付記20の何れか1項に記載のデータバックアップ方法。
【0158】
(付記23)
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記22に記載のデータバックアップ方法。
【0159】
(付記24)
前記同期ノードが備えるレプリカデータ書込結果通知手段が、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知ステップを有し、
前記マスターデータ書込ステップで、
前記レプリカデータ書込結果通知ステップからの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記22又は付記23に記載のデータバックアップ方法。
【0160】
(付記25)
前記マスターデータ処理ノードが備えるマスターデータ書込結果送信手段が、前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信ステップを有する
ことを特徴とする付記14から付記24の何れか1項に記載のデータバックアップ方法。
【0161】
(付記26)
前記分散データ送信ステップで、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記21又は付記22に記載のデータバックアップ方法。
【0162】
(付記27)
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システム上で動作するデータバックアッププログラムであって、
前記情報処理システムが備えるデータ書込要求ノードに、データの書き込みを指示する処理を実行させ、
前記情報処理システムが備えるマスターデータ処理ノードに、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持する処理を実行させ、
前記情報処理システムが備える複数のレプリカデータ処理ノードに、前記マスターデータの複製であるレプリカデータを分散保持する処理を実行させるデータバックアッププログラムにおいて、
前記マスターデータ処理ノードが備えるマスターデータ書込手段に、前記マスターデータを記憶部に書き込むマスターデータ書込処理を実行させ、
前記マスターデータ処理ノードが備える分散保持先決定手段に、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定処理を実行させる
ことを特徴とするデータバックアッププログラム。
【0163】
(付記28)
ChordのSuccessor Listを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記27に記載のデータバックアッププログラム。
【0164】
(付記29)
前記分散保持先決定手段が備えるフィンガーテーブル確認手段に、フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認処理を実行させ、
前記分散保持先決定手段が備える接続可能ノード判定手段に、前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定処理を実行させ、
前記分散保持先決定手段が備える分散保持先特定手段に、接続可能ノード判定処理で抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定処理を実行させる
ことを特徴とする付記27又は付記28に記載のデータバックアッププログラム。
【0165】
(付記30)
前記接続可能ノード判定処理で、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記29に記載のデータバックアッププログラム。
【0166】
(付記31)
前記接続可能ノード判定処理で、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記29に記載のデータバックアッププログラム。
【0167】
(付記32)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記29から付記31の何れか1項に記載のデータバックアッププログラム。
【0168】
(付記33)
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記29から付記31の何れか1項に記載のデータバックアッププログラム。
【0169】
(付記34)
前記マスターデータ処理ノードが備えるデータ分散手段に、前記分散保持先決定処理での決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散処理を実行させ、
前記マスターデータ処理ノードが備える分散データ送信手段に、前記分散データを、前記分散保持先決定処理での決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信処理を実行させる
ことを特徴とする付記14から付記20の何れか1項に記載のデータバックアッププログラム。
【0170】
(付記35)
前記レプリカデータ処理ノードの1つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが備える同期データ送信手段に、前記保持先決定処理での決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信処理を実行させ、
前記同期ノードが備えるレプリカデータ書込手段に、前記レプリカデータを記憶部に書き込むレプリカデータ書込処理を実行させ、
前記同期ノードが備える書込結果通知手段に、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知処理を実行させ、
前記同期ノードが備えるデータ分散手段に、前記マスターデータ処理ノードから受信した、前記分散保持先決定処理での決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散処理を実行させ、
前記同期ノードが備える分散データ送信手段に、前記分散データを、前記分散保持先決定処理での決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信処理を実行させる
ことを特徴とする付記27から付記33の何れか1項に記載のデータバックアッププログラム。
【0171】
(付記36)
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記35に記載のデータバックアッププログラム。
【0172】
(付記37)
前記同期ノードが備えるレプリカデータ書込結果通知手段に、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知処理を実行させ、
前記マスターデータ書込処理で、
前記レプリカデータ書込結果通知処理からの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記35又は付記36に記載のデータバックアッププログラム。
【0173】
(付記38)
前記マスターデータ処理ノードが備えるマスターデータ書込結果送信手段に、前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信処理を実行させる
ことを特徴とする付記27から付記37の何れか1項に記載のデータバックアッププログラム。
【0174】
(付記39)
前記分散データ送信処理で、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記34又は付記35に記載のデータバックアッププログラム。