(57)【要約】【課題】  ノード障害時に使用するデータの分散方法の処理を阻害することなく、ノード間の距離から用途に応じたデータの分散配置を行う。【解決手段】  Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システム１００が、データの書き込みを指示するデータ書込要求ノード２１０と、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノード２２０と、マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノード２３０とを備え、マスターデータ処理ノード２２０が、マスターデータを記憶部２２７に書き込むマスターデータ書込手段２２２と、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノード２３０を決定する分散保持先決定手段２２３とを含む。【選択図】  図５
2014038485.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムであって、
データの書き込みを指示するデータ書込要求ノードと、
前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノードと、
前記マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノードとを備え、
前記マスターデータ処理ノードが、
前記マスターデータを記憶部に書き込むマスターデータ書込手段と、
自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定手段と
を含むことを特徴とする情報処理システム。
【請求項２】
ＣｈｏｒｄのＳｕｃｃｅｓｓｏｒ  Ｌｉｓｔを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記分散保持先決定手段が、
フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認手段と、
前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定手段と、
接続可能ノード判定手段が抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定手段と
を含むことを特徴とする請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記マスターデータ処理ノードが、
前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段と
を含むことを特徴とする請求項１から請求項３の何れか１項に記載の情報処理システム。
【請求項５】
前記レプリカデータ処理ノードの１つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが、
前記保持先決定手段の決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信手段を含み、
前記同期ノードが、
前記レプリカデータを記憶部に書き込むレプリカデータ書込手段と、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段と、
前記マスターデータ処理ノードから受信した、前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段とを含む
ことを特徴とする請求項１から請求項３の何れか１項に記載の情報処理システム。
【請求項６】
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記同期ノードが、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段を含み、
前記マスターデータ書込手段が、
前記レプリカデータ書込結果通知手段からの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする請求項５又は請求項６に記載の情報処理システム。
【請求項８】
前記分散データ送信手段が、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする請求項４又は請求項５に記載の情報処理システム。
【請求項９】
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムにおけるデータバックアップ方法であって、
前記情報処理システムが備えるデータ書込要求ノードが、データの書き込みを指示するステップと、
前記情報処理システムが備えるマスターデータ処理ノードが、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するステップと、
前記情報処理システムが備える複数のレプリカデータ処理ノードが、前記マスターデータの複製であるレプリカデータを分散保持するステップとを有するデータバックアップ方法において、
前記マスターデータ処理ノードが備えるマスターデータ書込手段が、前記マスターデータを記憶部に書き込むマスターデータ書込ステップと、
前記マスターデータ処理ノードが備える分散保持先決定手段が、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定ステップと
を有することを特徴とするデータバックアップ方法。
【請求項１０】
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システム上で動作するデータバックアッププログラムであって、
前記情報処理システムが備えるデータ書込要求ノードに、データの書き込みを指示する処理を実行させ、
前記情報処理システムが備えるマスターデータ処理ノードに、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持する処理を実行させ、
前記情報処理システムが備える複数のレプリカデータ処理ノードに、前記マスターデータの複製であるレプリカデータを分散保持する処理を実行させるデータバックアッププログラムにおいて、
前記マスターデータ処理ノードが備えるマスターデータ書込手段に、前記マスターデータを記憶部に書き込むマスターデータ書込処理を実行させ、
前記マスターデータ処理ノードが備える分散保持先決定手段に、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定処理を実行させる
ことを特徴とするデータバックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムにおけるデータバックアップ技術に関し、特に、Ｐ２Ｐ方式の情報処理システムにおけるデータバックアップ技術に関する。
【背景技術】
【０００２】
Ｐ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）方式の情報処理システムにおけるバックアップ技術として、バックアップデータを各ノードに分散して保持する技術が特許文献１に開示されている。
【０００３】
図１３は、特許文献１に係る情報処理システム９００の構成を示すブロック図である。
【０００４】
図１３を参照すると、特許文献１に係る情報処理システム９００では、まず、データ書込要求ノード９１０がマスターデータ処理ノード９２０にデータ書込要求を送信する。マスターデータ処理ノード９２０は該書込要求に応じて、要求に係るデータをマスターデータとして自ノード内に保存する。
【０００５】
次いで、マスターデータ処理ノード９２０は、自ノードに保存したマスターデータの複製であるレプリカデータを分散して、複数のレプリカデータ処理ノード９３０に送信し、各レプリカデータ処理ノード９３０は該分散データを保存する。データの分散保持においては、フィンガーテーブルを使用し、分散ハッシュデーブル（ＤＨＴ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）により分散データを管理する。
【０００６】
特許文献１に開示の技術によれば、マスターデータ処理ノード９２０内に保持されているマスターデータの複製（レプリカデータ）をバックアップデータとして複数のレプリカデータ処理ノード９３０で分散保持することで、マスターデータ処理ノード９２０が障害で動作不能となった場合であっても、データ回復時に特定のノードへ負荷が局所的にかかることなく、各ノードの負荷を分散することができる。
【０００７】
また、別の関連技術として、複製によって冗長化された同一データを複数のサーバで保持する旨が特許文献２に開示されている。さらに、その他の関連技術として、Ｃｈｏｒｄアルゴリズム内でノード配列を最適にするアルゴリズムを有するシステムが一般に知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特願２０１１−０４０１１５号公報
【特許文献２】特願２０１０−０７４６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示の技術は、複製データの分散保持に関し、そのデータ配置についてノード同士の距離を考慮していない。このため、用途に応じた分散配置ができないという問題がある。
【００１０】
また、Ｃｈｏｒｄアルゴリズム内でノード配列を最適にするアルゴリズムを有するシステムにおいては、該アルゴリズムが、適用するシステム等により変更される場合、距離からノードを制御するアルゴリズムもそれぞれのアルゴリズムと親和性を持たせる必要があるため、共存をすることが非常に困難であった。このため、距離からノードを制御するアルゴリズムとＣｈｏｒｄアルゴリズムを完全に分けなければならないという問題がある。
【００１１】
（発明の目的）
本発明の目的は、上述の課題を解決し、ノード障害時に使用するデータの分散方法の処理を阻害することなく、ノード間の距離から用途に応じたデータの分散配置を行う情報処理システム、データバックアップ方法、データバックアッププログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明の第１の情報処理システムは、Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムであって、データの書き込みを指示するデータ書込要求ノードと、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノードと、マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノードとを備え、マスターデータ処理ノードが、マスターデータを記憶部に書き込むマスターデータ書込手段と、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノードを決定する分散保持先決定手段とを含む。
【００１３】
本発明の第１のデータバックアップ方法は、Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムにおけるデータバックアップ方法であって、情報処理システムが備えるデータ書込要求ノードが、データの書き込みを指示するステップと、情報処理システムが備えるマスターデータ処理ノードが、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するステップと、情報処理システムが備える複数のレプリカデータ処理ノードが、マスターデータの複製であるレプリカデータを分散保持するステップとを有するデータバックアップ方法において、マスターデータ処理ノードが備えるマスターデータ書込手段が、マスターデータを記憶部に書き込むマスターデータ書込ステップと、マスターデータ処理ノードが備える分散保持先決定手段が、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノードを決定する分散保持先決定ステップとを有する。
【００１４】
本発明の第１のデータバックアッププログラムは、Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システム上で動作するデータバックアッププログラムであって、情報処理システムが備えるデータ書込要求ノードに、データの書き込みを指示する処理を実行させ、情報処理システムが備えるマスターデータ処理ノードに、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持する処理を実行させ、情報処理システムが備える複数のレプリカデータ処理ノードに、マスターデータの複製であるレプリカデータを分散保持する処理を実行させるデータバックアッププログラムにおいて、マスターデータ処理ノードが備えるマスターデータ書込手段に、マスターデータを記憶部に書き込むマスターデータ書込処理を実行させ、マスターデータ処理ノードが備える分散保持先決定手段に、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノードを決定する分散保持先決定処理を実行させる。
【発明の効果】
【００１５】
本発明によれば、ノード障害時に使用するデータの分散方法の処理を阻害することなく、ノード間の距離から用途に応じたデータの分散配置を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施の形態に係る情報処理システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係るデータ書込要求ノードの構成を示すブロック図である。
【図３】本発明の第１の実施の形態に係るマスターデータ処理ノードの構成を示すブロック図である。
【図４】本発明の第１の実施の形態に係るレプリカデータ処理ノードの構成を示すブロック図である。
【図５】本発明の第１の実施の形態に係る情報処理システムの動作の概略を示す図である。
【図６】本発明の第１の実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【図７】本発明の情報処理システムの最小限の構成を示すブロック図である。
【図８】本発明の第２の実施の形態に係るマスターデータ処理ノードの構成を示すブロック図である。
【図９】本発明の第２の実施の形態に係る同期ノードの構成を示すブロック図である。
【図１０】本発明の第２の実施の形態に係る情報処理システムの動作の概略を示す図である。
【図１１】本発明の第２の実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【図１２】本発明のマスターデータ処理ノードのハードウェア構成例を示すブロック図である。
【図１３】背景技術による情報処理システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１８】
（第１の実施の形態）
本実施の形態においては、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ：分散ハッシュテーブル）型Ｐ２Ｐ方式のネットワークにおける障害時のマスターデータの回復について説明する。
【００１９】
図１は、本発明の第１の実施の形態による情報処理システム１００の構成を示すブロック図である。図１を参照すると、本実施の形態による情報処理システム１００は、データ書込要求ノード２１０と、マスターデータ処理ノード２２０と、レプリカデータ処理ノード２３０（２３０−１〜２３０−５）と、を備える。なお、図１は例示であって、システム構成を制限するものではない。すなわち、レプリカデータ処理ノード２３０は任意の台数として構成可能である。
【００２０】
本実施の形態では、データ書込要求ノード２１０、マスターデータ処理ノード２２０、及びレプリカデータ処理ノード２３０と明示的に分けているが、各ノードは同一の機能を有しており、全てのノードがデータ書込要求ノード２１０、マスターデータ処理ノード２２０、及びレプリカデータ処理ノード２３０としても動作が可能である。
【００２１】
また、データ書込要求ノード２１０は、データ検索要求ノードとしても動作可能であるが、データ検索要求ノードについては本願発明の特徴的な部分ではないため、その詳細は特許文献１を参照されたい。
【００２２】
マスターデータと、分散保持させる該マスターデータの複製データ（以下、レプリカデータと称す）については、基本はマスターデータで運用し、マスターデータ処理ノード２２０が故障した場合には、レプリカデータを使用する流れとなる。
【００２３】
マスターデータ処理ノード２２０については、データ検索の対象が存在するマスターデータを保持するノードがその役割となるため、検索するデータによっては、どのノードでも、マスターデータ処理ノード２２０になる可能性があり得る。
【００２４】
マスターデータは、その複製であるレプリカデータが分散して複数のレプリカデータ処理ノード２３０に保持される。各レプリカデータ処理ノード２３０に保持されるレプリカデータの一部を、以下分散データと称する。分散データは、ハッシュテーブルに基づいて検索されて特定される。
【００２５】
また、本実施形態においては、分散データを保持するレプリカデータ処理ノード２３０を、分散識別情報であるフィンガーテーブル（Ｆｉｎｇｅｒ  Ｔａｂｌｅ）に基づいて選定するように制御される。そして、分散データは、障害にあったノードを代行するノード、あるいは保存データを検索したノードによってマージされ、これによりマスターデータが復元される。
【００２６】
以下、図面を参照しながら、各ノードの構成について説明する。
【００２７】
図２は、データ書込要求ノード２１０の構成を示すブロック図である。データ書込要求ノード２１０は、データ書込要求処理を行うデータ書込要求手段２１１と、マスターデータ書込結果受信処理、マスターデータ書込結果判定処理、及びマスターデータ書込完了処理を行うマスターデータ書込結果処理手段２１２とを備える。各処理の詳細については、後述する。
【００２８】
図３は、マスターデータ処理ノード２２０の構成を示すブロック図である。マスターデータ処理ノード２２０は、データ受信処理を行うデータ受信手段２２１と、マスターデータ書込処理及びマスターデータ書込結果通知処理を行うマスターデータ書込手段２２２と、フィンガーテーブル確認処理、接続可能ノード判定処理、及び分散保持先特定処理を行う分散保持先決定手段２２３と、データ分散処理を行うデータ分散手段２２４と、分散データ送信処理を行う分散データ送信手段２２５と、分散データ書込結果通知受信処理、分散データ書込結果判定処理、及び分散データ書込完了処理を行う分散データ書込結果処理手段２２６と、フィンガーテーブル、ハッシュテーブル、及びマスターデータを格納する記憶部２２７とを備える。各処理の詳細については、後述する。
【００２９】
図４は、レプリカデータ処理ノード２３０の構成を示すブロック図である。レプリカデータ処理ノード２３０は、分散データ受信処理を行う分散データ受信手段２３１と、分散データ書込処理を行う分散データ書込手段２３２と、分散データ書込結果通知処理を行う分散データ書込完了通知手段２３３と、フィンガーテーブル、ハッシュテーブル、及び分散データを格納する記憶部２３４と、を備える。各処理の詳細については、後述する。
【００３０】
以下、本実施の形態の基本的な動作を、図５を参照して説明する。
【００３１】
データ書込要求ノード２１０の書込要求により、書込対象のデータはその内容などによって選択されたマスターデータ処理ノード２２０の記憶部２２５にマスターデータとして保存される。そして、データ書込要求ノード２１０の該データは削除される。
【００３２】
マスターデータ処理ノード２２０は、マスターデータをハッシュテーブル内のハッシュ値に対応付ける。ハッシュテーブルの詳細な例は特許文献２に説明があるので、特許文献２を参照されたい。そして、フィンガーテーブルに基づいて、マスターデータの複製であるレプリカデータの分散保持先を設定し、分散保持先の数に応じてマスターデータを分割する。分割数は分散保存先の数に対応させなくても、例えば分散保存数の半分にしたり重なり部分を設けたりして、復元能力を高めることもできる。なお、フィンガーテーブルの詳細な例は非特許文献１に説明があるので、非特許文献１を参照されたい。
【００３３】
マスターデータ処理ノード２２０は、分散データ保持先のレプリカデータ処理ノード２３０に対し、分散データ及び分散データのハッシュ値の保持を要請する。
【００３４】
マスターデータ処理ノード２２０から該要請を受けた各レプリカデータ処理ノード２３０は、分散データ及びハッシュ値を記憶部２３４に保持する。
【００３５】
なお、図１では、データ書込要求ノード２１０とマスターデータ処理ノード２２０以外のノードがレプリカデータ処理ノード２３０として図示されている。しかし、レプリカデータ処理ノード２３０はフィンガーテーブルに基づいて選択されるものであり、図１はその特殊な例に過ぎない。
【００３６】
また、データ書込要求ノード２１０は、データ検索要求ノードとしても機能するが、本願発明の特徴的な部分ではないため、その詳細は特許文献１を参照されたい。
【００３７】
また、本実施形態では、マスターデータ処理ノード２２０からレプリカデータ処理ノード２３０の少なくとも１つに、マスターデータ処理ノード２２０が分散保持先を決めるために使用したフィンガーテーブルの複製が送信される。このため、レプリカデータ処理ノード２３０の少なくとも１つは、フィンガーテーブルの複製を保持することとなる。これにより、マスターデータ処理ノード２２０が障害を起こして動作不能となっても、データ書込要求ノード２１０による保存データの検索をレプリカデータ処理ノード２３０が代行して、分散データからマスターデータを復元することが可能となる。
【００３８】
本発明は、上述の構成を有し、ノード間の距離に基づき用途に応じたデータの分散配置を行うものである。
【００３９】
閾値の決定については、マスターデータ処理ノード２２０が、キャッシュにある全レプリカデータ処理ノード２３０にアクセスし、これらの距離の平均を算出し、該平均値を閾値とする。ただしこれに限定はされず、平均ではなく中央値等を用いても良い。
【００４０】
キャッシュがない場合、あるいは、マスターデータ処理ノード２２０自体ややネットワークの状態が悪く頻繁にマスターデータ処理ノード２２０が障害となる状態においては、キャッシュを用いると、既に存在しないレプリカデータ処理ノード２３０がキャッシュとして登録されている可能性がある。このため、これらのときには、ＣｈｏｒｄのＳｕｃｃｅｓｓｏｒ  Ｌｉｓｔを用いて、評価関数はＣｈｏｒｄ１周の長さＲ＝ｒ０１＋ｒ１２＋・・・＋Ｒｊｋから、各ノード間の平均ａｖｇＲ＝Ｒ／（ｋ＋１）を基準値にする。
【００４１】
ｒ０１は、ノード０とノード１の間の距離とする。最大ノード数はｋとする。仮に、ｒ３４がｒ３４＞ｃ・ａｖｇＲ（Ｃ＜０の定数）を満たす場合、ノード３とノード４の間の距離は平均よりも長いため、これらのノード間は切断する。切断されたノードは他のノードと接続するようにする。
【００４２】
基本的には、データ移動のコストを考えて、ノード間の切断を行う。ただし、接続する対象となるノードが存在しない場合で、距離に問題があるノードが存在する場合には、この限りではなく、接続することもできる。
【００４３】
ネットワークは動的に変化するものであるから、距離及び閾値について、予め定めた所定の間隔で再計測しても良いが、再測定をしなくても良い。また、再計測した結果、閾値が変わった場合には、データの再配置を行っても良いし、行わなくても良い。閾値の変更によりデータを分散したレプリカデータ処理ノード２３０までの距離が閾値より長くなった場合には、該レプリカデータ処理ノード２３０の分散データの使用を停止する。この場合、停止したレプリカデータ処理ノード２３０のレプリカ情報を他のレプリカデータ処理ノード２３０がカバーする必要がある。これについては、（１）元々分散データを持っていたレプリカデータ処理ノード２３０が別のレプリカデータ処理ノード２３０に対して引き継ぐ。ただし、（２）マスターデータ処理ノード２２０がマスターデータ処理ノード２２０からの距離が閾値内のレプリカデータ処理ノード２３０に対して、該当するデータを渡す方法でも良い。これらは算出された距離から自動的に選択することができるが、手動でも良い。
【００４４】
ノード間の距離については、必ずしも近ければ良い訳ではない。ネットワークのコストを気にする場合には、なるべくノード間の距離が近い同士で接続できるように設計する。一方、ひとつの地域にまとめてデータがあると、データの消失等の問題がある場合を重視した場合には、地域障害等を考慮して、設定した距離以上のノードにデータを配置するようにする。
【００４５】
特許文献１に記載の技術は、マスターデータの複製であるレプリカデータを複数のノードに対して分散して保持しているため、各ノードの負担は少ないが、なるべく、不要なデータの移動がないことは重要である。
【００４６】
そこで、本発明では、アクセスがあったデータについてデータの移動を実施して、データのアクセスがないデータについては、データの移動をしない。ただし、全てのデータを移動させても良い。
【００４７】
また、データの移動を実施した後においても、元々データを保持していたノードは任意の期間においてデータを保持しておくこととしてもよい。この場合、そのデータに対して何らかのアクセスがあった場合、移行した後のノードに対してチェックサムを投げて、データに変更がなければそのデータをそのまま検索先に返すこととする。これにより、不要なデータの移動を防ぐことができる。
【００４８】
また、本発明は、特許文献１とは、下記の点で差分がある。
・障害時のために使用する分散保持データについて、距離を定義する。
・Ｐ２Ｐの動作及び前回特許の動作を阻害させないため、距離が適合しない場合には、ネットワークが切断されているものとして取り扱う。
・適合したノードについては、ランク付けをすることができるが、同列でも良い。
【００４９】
（第１の実施の形態の動作の説明）
次に、本実施の形態による情報処理システム１００の動作について、図６を参照して詳細に説明する。図６は、本実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【００５０】
図６を参照すると、まず、データ書込要求ノード２１０は、データ書込要求処理（Ｓ６１１）を用いて、マスターデータ処理ノード２２０に対しデータ書込要求を行う。
【００５１】
マスターデータ処理ノード２２０は、データ受信処理（Ｓ６２１）を用いて、該要求を受信する。次いで、マスターデータ処理ノード２２０は、マスターデータ書込処理（Ｓ６２２）を用いて、受信したデータをマスターデータとして記憶部２２７に書き込む。
【００５２】
次いで、マスターデータ処理ノード２２０は、マスターデータ書込結果通知処理（Ｓ６２３）を用いて、マスターデータの書込結果をデータ書込要求ノード２１０に通知する。
【００５３】
データ書込要求ノード２１０は、マスターデータ書込結果受信処理（Ｓ６１２）を用いて該書込結果を受信すると、マスターデータ書込結果判定処理（Ｓ６１３）を用いて該書込結果を判定する。
【００５４】
マスターデータが正常に書き込められたと判定した場合、データ書込要求ノード２１０は、マスターデータ書込完了処理（Ｓ６１４）を用いて、データ書込要求ノード２１０が保持していた書込対象のデータ消去し、マスターデータ書込処理を完了させる。
【００５５】
一方、マスターデータが正常に書き込められなかったと判定した場合には、データ書込要求ノード２１０は、マスターデータ書込完了処理（Ｓ６１４）を用いて、正常に書き込めなかった旨のメッセージを通知する。
【００５６】
どこに正常に書き込めなかった旨のメッセージの通知先はシステム設計による。例えば、データ書込要求ノード２１０自身で通知を受けてもよいし、データ書込要求ノード２１０に書き込みを指示した依頼元に通知してもよい。さらに、正常に書き込めなかった場合、データ書込要求ノード２１０が保持するマスターデータ処理ノード２２０に書き込む内容を保持するか／消去するかもシステム設計による。さらに、データ書込要求ノード２１０が保持するマスターデータ処理ノード２２０に書き込む内容を再度マスターデータ処理ノード２２０に書き込むように要求するか否かもシステム設計による。
【００５７】
マスターデータ書込結果通知処理（Ｓ６２３）の後、マスターデータ処理ノード２２０は、フィンガーテーブル確認処理（Ｓ６２４）、接続可能ノード判定処理（Ｓ６２５）、及び分散保持先特定処理（Ｓ６２６）を用いて、レプリカデータの分散保持先を決定する。
【００５８】
まず、フィンガーテーブル確認処理（Ｓ６２４）を用いて、フィンガーテーブルを確認して、レプリカデータの分散保持先の対象となるレプリカデータ処理ノード２３０を選択する。
【００５９】
次いで、接続可能ノード判定処理（Ｓ６２５）を用いて、マスターデータ処理ノード２２０と、各レプリカデータ処理ノード２３０との距離を比較し、該距離が予め定めた閾値を満たすレプリカデータ処理ノード２３０を分散保持先の対象として抽出する。
【００６０】
図５の例では、フィンガーテーブル確認処理（Ｓ６２４）で選択されたレプリカデータ処理ノード２３０のうち、レプリカデータ処理ノード２３０−４が対象から外されている。なお、図５の例では、距離が閾値以下のレプリカデータ処理ノード２３０を分散保持先の対象として、閾値より大きいレプリカデータ処理ノード２３０を分散保持先の対象から外しているが、地域障害等を考慮して、距離が閾値以内のレプリカデータ処理ノード２３０を分散保持先の対象から外すこととしてもよい。
【００６１】
次いで、分散保持先特定処理（Ｓ６２６）を用いて、フィンガーテーブル確認処理（Ｓ６２４）、接続可能ノード判定処理（Ｓ６２５）の結果残ったレプリカデータ処理ノード２３０を、分散先ノードと特定する。そして、分散保持先特定処理（Ｓ６２６）からデータ分散処理（Ｓ６２７）に対し、どのレプリカデータ処理ノード２３０にレプリカデータを分散すれば良いのか（分散保持先の情報）を通知する。
【００６２】
次いで、マスターデータ処理ノード２２０は、データ分散処理（Ｓ６２６）を用いて、マスターデータの複製（レプリカデータ）を生成した上で、該レプリカデータを所定数（図３の例では４つ）に分散する。分割数は分散保存先の数に対応させてもよいし、例えば分散保存数の半分にしたりしてもよい。また、重なり部分を設けたりして、復元能力を高めることとしてもよい。
【００６３】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理（Ｓ６２７）から分散データ送信処理（Ｓ６２８）に渡される。
【００６４】
次いで、マスターデータ処理ノード２２０は、分散データ送信処理（Ｓ６２８）を用いて、渡された分散データ及びハッシュ値を分散保持先のレプリカデータ処理ノード２３０に対して送信する。また、分散保持先のレプリカデータ処理ノード２３０の少なくとも１つに、マスターデータ処理ノード２２０が分散保持先を決めるために使用したフィンガーテーブルの複製を送信する。
【００６５】
図５の例では、レプリカデータ処理ノード２３０−２、２３０−３、２３０５の３つのノードに分散データ及びハッシュ値が送信されている。さらに、レプリカデータ処理ノード２３０−２へは、分散データ２つ分のデータが送信される。これは、分散データ送信処理（Ｓ６２８）において、データの移動コストに応じて、送信するレプリカデータのデータ量を可変できることを示している。データの移動コストに応じて、データ書込要求ノードからなるべく近くにデータをまとめたい場合、あるいは、なるべく遠くにデータをまとめたい場合に用いられる。
【００６６】
レプリカデータ処理ノード２３０は、分散データ受信処理（Ｓ６３１）を用いて、マスターデータ処理ノード２２０から分散データ及びハッシュ値、場合によっては更にフィンガーテーブルを受信する。
【００６７】
次いで、レプリカデータ処理ノード２３０は、分散データ書込処理（Ｓ６３２）を用いて、分散データとハッシュ値を記憶部２３４に書き込む。さらに、フィンガーテーブルを受信している場合は、フィンガーテーブルを記憶部２３４に書き込む。データ書込処理が終了すると、書込結果が分散データ書込結果通知処理（Ｓ６３３）に通知される。
【００６８】
なお、フィンガーテーブルの登録は、システム設計に対応して、全ての分散先のレプリカデータ処理ノード２３０に登録してもよいし、予め決められたレプリカデータ処理ノード２３０への送信でもよい。例えば、図５において、レプリカデータ処理ノード２３０−２がマスターデータ処理ノード２２０の障害時にデータ検索の代行をする設計であれば、レプリカデータ処理ノード２３０−２に送信すればよい。しかしながら、どのレプリカデータ処理ノード２３０でも障害時にデータ検索の代行ができるように設計すれば、全レプリカデータ処理ノード２３０に送信することになる。
【００６９】
次いで、レプリカデータ処理ノード２３０は、分散データ書込結果通知処理（Ｓ６３３）を用いて、分散データ書込処理（Ｓ６３２）の書込結果をマスターデータ処理ノード２２０に通知する。
【００７０】
マスターデータ処理ノード２２０は、分散データ書込結果通知受信処理（Ｓ６２９）を用いて、分散データ等の書込結果の通知を受信する。該通知は、データ書込結果通知受信処理（Ｓ６２９）から分散データ書込結果判定処理（Ｓ６３０）に通知される。
【００７１】
マスターデータ処理ノード２２０は、分散データ書込結果判定処理（Ｓ６３０）を用いて、分散データ等が全ての分散先において正常に書き込まれたか否かを判定する。正常に書き込まれたと判定した場合、マスターデータ処理ノード２２０は、分散データ書込完了処理（Ｓ６３１）を用いて、データ分散処理（Ｓ６２７）で生成した分散データを消去し、分散データのレプリカデータ処理ノード２３０への書き込みを完了させる。
【００７２】
一方、少なくとも１つのレプリカデータ処理ノード２３０において分散データ等が正常に書き込めなかった場合には、マスターデータ処理ノード２２０は、分散データ書込完了処理（Ｓ６３１）を用いて、正常に書き込めなかった旨のメッセージを通知する。どこに通知するかはシステムの設計による。
【００７３】
例えば、マスターデータ処理ノード２２０自身で通知を受けて、他のフィンガーテーブルによる再分散を試みてもよいし、書き込みを失敗したレプリカデータ処理ノード２３０を他のレプリカデータ処理ノード２３０で代行して再分散を試みてもよい。あるいは、データ書込要求ノード２１０に通知してもよいし、データ書込要求ノード２１０を介してデータ書込要求を行ったシステム外部の他のシステムや装置でもよい。さらに、レプリカデータ処理ノード２３０に通知して、他のレプリカデータ処理ノード２３０で分散データの書き込みが失敗したことを通知して、記憶部２３４に書き込んだ分散データを削除するようにしてもよい。
【００７４】
また、分散データ等が正常に書き込めなかった場合、マスターデータ処理ノード２２０が保存したマスターデータの保持を継続するか／消去するかも、システムの設計による。更に、マスターデータ処理ノード２２０が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノード２３０に要求するかも、システムの設計による。
【００７５】
（第１の実施の形態による効果）
本実施の形態によれば、ノード障害時に使用するデータの分散方法の処理を阻害することなく、ノード間の距離から用途に応じたデータの分散配置を行うことができる。
【００７６】
また、本実施の形態によれば、マスターデータのレプリカを分散書込みすることで、各ノードの負荷を分散できる。
【００７７】
また、本実施の形態によれば、書き込み、検索で発生する不要なホップを防ぐことができる。その理由は、マスターデータのレプリカを分散書込みするノードはマスターデータを保持するノードのフィンガーテーブル内のノードであるからである。
【００７８】
また、本実施の形態によれば、ＤＨＴ型Ｐ２Ｐネットワーク内のノード追加・削除を分散処理できるため、これらの処理を効率良く実行することができる。すなわち、このバックアップデータを分散配置し、局所的に負荷がかかっていた問題を軽減させた。このため、再分散時に多量のデータを移管することなく、データ移管を可能にする。また、検索においても、ネットワークに流れるデータ量減少及び応答速度向上を目的として、ホップ数を削減させて検索できる。
【００７９】
ここで、本発明の課題を解決できる最小限の構成を図７に示す。Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システム１００が、データの書き込みを指示するデータ書込要求ノード２１０と、データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノード２２０と、マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノード２３０とを備え、マスターデータ処理ノード２２０が、マスターデータを記憶部２２７に書き込むマスターデータ書込手段２２２と、自ノードからの距離に基づき、レプリカデータを分散保持させるレプリカデータ処理ノード２３０を決定する分散保持先決定手段２２３とを含むことで、上述した本発明の課題を解決することができる。
【００８０】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明を行う。本実施の形態では、第１の実施の形態に比べ、レプリカデータ処理ノード２３０のうちの１つが、レプリカデータの全てを保持する同期ノードである点、及び同期ノードがから他のレプリカデータ処理ノード２３０へ分散データを送信する点が異なる。
【００８１】
図８は、本実施の形態に係るマスターデータ処理ノード２２０の構成を示すブロック図である。第１の実施の形態と比較すると、データ分散手段２２４、分散データ送信手段２２５、及び分散データ書込結果処理手段２２６がなくなり、代わりに、レプリカデータ送信手段２２８と、レプリカデータ書込結果処理手段２２９とを備える。
【００８２】
レプリカデータ送信手段２２８は、レプリカデータ送信処理を行い、レプリカデータ書込結果処理手段２２９は、レプリカデータ書込結果通知受信処理、及びレプリカデータ書込結果判定処理を行う。処理の詳細については後述する。
【００８３】
図８は、本実施の形態に係る同期ノード２４０の構成を示すブロック図である。同期ノード２４０は、レプリカデータ処理ノード２３０のうちから任意に選択されたノードである。
【００８４】
同期ノード２４０は、レプリカデータ受信処理を行うレプリカデータ受信手段２４１と、レプリカデータ書込処理及びレプリカデータ書込結果通知処理を行うレプリカデータ書込手段２４２と、データ分散処理を行うデータ分散手段２４４と、分散データ送信処理を行う分散データ送信手段２４５と、分散データ書込結果通知受信処理、分散データ書込結果判定処理、及び分散データ書込完了処理を行う分散データ書込結果処理手段２４６と、フィンガーテーブル、ハッシュテーブル、及びマスターデータを格納する記憶部２４７と、を備える。各処理の詳細については、後述する。
【００８５】
データ分散手段２４４、分散データ送信手段２４５、分散データ書込結果処理手段２４６、記憶部２４７は、第１の実施の形態におけるデータ分散手段２２４、分散データ送信手段２２５、分散データ書込結果処理手段２２６、記憶部２２７に対応するものである。
【００８６】
本実施の形態では、データ書込要求ノード２１０、マスターデータ処理ノード２２０、同期ノード２４０、及びレプリカデータ処理ノード２３０と明示的に分けているが、各ノードは同一の機能を有しており、全てのノードがデータ書込要求ノード２１０、マスターデータ処理ノード２２０、同期ノード２４０、及びレプリカデータ処理ノード２３０としても動作が可能である。
【００８７】
データ書込要求ノード２１０、レプリカデータ処理ノード２３０については、第１の実施の形態と同様の構成であるため説明を省略する。
【００８８】
以下、本実施の形態の基本的な動作を、図１０を参照して説明する。本実施の形態では、第１の実施の形態に加え、データ移動コストに応じて同期・非同期処理を行っている。
【００８９】
図１０を参照すると、（３）の処理では、マスターデータと全く同一のデータであるレプリカデータを、マスターデータの書き込みタイミングと同期して保存することを示している。同期であるため、データの応答速度を考慮すると、基本的には、データ移動コストが最小のレプリカデータ処理ノード２３０にレプリカデータを保存する。ただし、地域障害等を考慮して遠隔地でデータを同期させたい場合には、必ずしも最小ではなくてもよい。
【００９０】
同期によるレプリカデータ保存手順は以下のように行う。
１．データ書込要求ノード２１０から書込対象のデータを受け取ったマスターデータ処理ノード２２０が、同期ノード２４０を選択して、レプリカデータの保存を依頼する。
２．同期ノード２４０は、マスターデータ処理ノード２２０にレプリカデータを保存した旨を通知する。
３．同期ノードから通知を受けたマスターデータ処理ノード２２０は、データ書込要求ノード２１０から書込依頼を受けたデータを、マスターデータとして記憶部２２７に保存し、その結果をデータ書込要求ノード２１０に通知する。
【００９１】
用途に応じて距離別にブロックされた場合にどこにアクセスすれば良いかという論理については、同期ノードの順位付けを行う。
【００９２】
例えば、Ｐ２Ｐネットワーク内のノードの台数をＮとし、閾値をＮ以下とする。下記ＩＤのレプリカデータ処理ノード２３０が、それぞれレプリカデータを以下のように保持していたとする。
ＩＤ０：  レプリカ数４
ＩＤ１０：  レプリカ数１
ＩＤ２０：  レプリカ数０
Ｐ２Ｐノードが４台構成のとき、Ｎ＝４となるため、ＩＤ１０が優先的に選択される。
【００９３】
同期ノードは、他の任意のレプリカデータ処理ノード２３０に対し、レプリカデータの分散データの書込依頼を、非同期で行う（図１０の（４）〜（６）の処理）。この処理は、第１の実施の形態と比べ、処理の主体が異なっているが、処理自体は図５に示す（３）〜（６）の処理と同様である。
【００９４】
（第１の実施の形態の動作の説明）
次に、本実施の形態による情報処理システム１００の動作について、図１１を参照して詳細に説明する。図１１は、本実施の形態に係る情報処理システムの動作を示すシーケンス図である。
【００９５】
図１１を参照すると、まず、データ書込要求ノード２１０は、データ書込要求処理（Ｓ１１１１）を用いて、マスターデータ処理ノード２２０に対しデータ書込要求を行う。
【００９６】
マスターデータ処理ノード２２０は、データ受信処理（Ｓ１１２１）を用いて、該要求を受信する。
【００９７】
次いで、マスターデータ処理ノード２２０は、フィンガーテーブル確認処理（Ｓ１１２２）、接続可能ノード判定処理（Ｓ１１２３）、及び分散保持先特定処理（Ｓ１１２４）を用いて、レプリカデータの分散保持先を決定する。
【００９８】
まず、フィンガーテーブル確認処理（Ｓ１１２２）を用いて、フィンガーテーブルを確認して、レプリカデータの分散保持先の対象となるレプリカデータ処理ノード２３０を抽出する。
【００９９】
次いで、接続可能ノード判定処理（Ｓ１１２３）を用いて、マスターデータ処理ノード２２０と、他の各レプリカデータ処理ノード２３０との距離を比較し、該距離が予め定めた閾値を満たすレプリカデータ処理ノード２３０を分散保持先の対象として抽出する。
【０１００】
図１０の例では、フィンガーテーブル確認処理（Ｓ６２４）で選択されたレプリカデータ処理ノード２３０のうち、レプリカデータ処理ノード２３０−４が対象から外されている。なお、図１０の例では、距離が閾値以下のレプリカデータ処理ノード２３０を分散保持先の対象として、閾値より大きいレプリカデータ処理ノード２３０を分散保持先の対象から外しているが、地域障害等を考慮して、距離が閾値以内のレプリカデータ処理ノード２３０を分散保持先の対象から外すこととしてもよい。また、マスターデータ処理ノード２２０ではなく、同期ノード２４０との距離に基づいて分散保持先を特定することとしても良い。
【０１０１】
次いで、分散保持先特定処理（Ｓ１１２４）を用いてにより、フィンガーテーブル確認処理（Ｓ１１２２）、接続可能ノード判定処理（Ｓ１１２３）の結果残ったレプリカデータ処理ノード２３０を、分散先ノードと特定する。そして、分散保持先特定処理（Ｓ１１２４）から同期データ送信処理（Ｓ１１２５）に対し、分散保持先の情報（どのレプリカデータ処理ノード２３０にレプリカデータを分散すれば良いのか）を通知する。
【０１０２】
次いで、マスターデータ処理ノード２２０は、レプリカデータ送信処理（Ｓ１１２５）を用いて、マスターデータの複製であるレプリカデータと、分散保持先の情報と、フィンガーテーブルとを、同期ノード２４０に送信する。
【０１０３】
同期ノード２４０は、レプリカデータ受信処理（Ｓ１１４１）を用いて、マスターデータ処理ノード２２０からのデータを受信し、レプリカデータ書込処理（Ｓ１１４２）を用いて、レプリカデータ及びフィンガーテーブルを記憶部２４７に書き込む。
【０１０４】
次いで、同期ノード２４０は、レプリカデータ書込結果通知処理（Ｓ１１４３）を用いて、レプリカデータの書込結果をマスターデータ処理ノード２２０に通知する。
【０１０５】
マスターデータ処理ノード２２０は、レプリカデータ書込結果通知受信処理（Ｓ１１２６）を用いて該書込結果を受信すると、レプリカデータ書込結果判定処理（Ｓ１１２７）を用いて該書込結果を判定する。
【０１０６】
レプリカデータ書込処理（Ｓ１１４２）におけるデータ書込結果が正常であった場合（正常に書き込まれていた場合）、マスターデータ処理ノード２２０は、マスターデータ書込処理（Ｓ１１２８）を用いて、記憶部２２７にマスターデータを書き込む。次いで、マスターデータ書込結果通知処理（Ｓ１１２９）を用いて、マスターデータの書込結果をデータ書込要求ノード２１０に通知する。
【０１０７】
一方、レプリカデータ書込処理（Ｓ１１４２）で正常に書き込められていなかった場合、マスターデータ書込処理（Ｓ１１２８）ではマスターデータを書き込まず、マスターデータ書込結果通知処理（Ｓ１１２９）を用いて、マスターデータが正常に書き込めなかった旨のメッセージをデータ書込要求ノード２１０に通知する。
【０１０８】
このように、本実施の形態では、レプリカデータの書き込みが正常に行われなかった場合、マスターデータの書き込みもされないため、レプリカデータとマスターデータの書き込みは同期的に行われることになる。
【０１０９】
データ書込要求ノード２１０は、マスターデータ書込結果受信処理（Ｓ１１１２）を用いて該書込結果を受信する。以降の処理については第１の実施の形態と同様であるため説明を省略する。
【０１１０】
レプリカデータ書込結果通知処理（Ｓ１１４３）の後、同期ノード２４０は、データ分散処理（Ｓ１１４４）を用いて、マスターデータ処理ノード２２０から受信した分散保持先の情報に基づいて、レプリカデータを所定数（図１１の例では４つ）に分割する。分割数は分散保存先の数に対応させてもよいし、例えば分散保存数の半分にしたりしてもよい。また、重なり部分を設けたりして、復元能力を高めることとしてもよい。
【０１１１】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理（Ｓ１１４４）から分散データ送信処理（Ｓ１１４５）に渡される。
【０１１２】
なお、レプリカデータ書込処理（Ｓ１１４２）で正常にデータ書込ができなかった場合は、データ分散処理（Ｓ１１４４）以降の処理は行わないものとする。ただしこれに限定はされない。
【０１１３】
次いで、同期ノード２４０は、分散データ送信処理（Ｓ１１４５）を用いて、渡された分散データ及びハッシュ値を分散保持先のレプリカデータ処理ノード２３０に対して送信する。また、分散保持先のレプリカデータ処理ノード２３０の少なくとも１つに、マスターデータ処理ノード２２０が分散保持先を決めるために使用したフィンガーテーブルの複製を送信する。
【０１１４】
図１０の例では、レプリカデータ処理ノード２３０−２、２３０−３、２３０５の３つのノードに分散データ及びハッシュ値を送信する。
【０１１５】
さらに、レプリカデータ処理ノード２３０−２へは、分散データ２つ分のデータが送信される。これは、分散データ送信処理（Ｓ１１４５）において、データの移動コストに応じて、送信するレプリカデータのデータ量を可変できることを示している。データの移動コストに応じて、データ書込要求ノードからなるべく近くにデータをまとめたい場合、あるいは、なるべく遠くにデータをまとめたい場合に用いられる。
【０１１６】
分散保持先のレプリカデータ処理ノード２３０は、分散データ受信処理（Ｓ１１３１）を用いて、同期ノード２４０から分散データ及びハッシュ値、場合によっては更にフィンガーテーブルを受信する。
【０１１７】
次いで、レプリカデータ処理ノード２３０は、分散データ書込処理（Ｓ１１３２）を用いて、分散データとハッシュ値を記憶部２３４に書き込む。さらに、フィンガーテーブルを受信している場合は、フィンガーテーブルを記憶部２３４に書き込む。データ書込処理が終了すると、書込結果が分散データ書込結果通知処理（Ｓ１１３３）に通知される。
【０１１８】
なお、フィンガーテーブルの登録は、システム設計に対応して、全ての分散先のレプリカデータ処理ノード２３０に登録してもよいし、予め決められたレプリカデータ処理ノード２３０への送信でもよい。例えば、図１０において、レプリカデータ処理ノード２３０−２がマスターデータ処理ノード２２０の障害時にデータ検索の代行をする設計であれば、レプリカデータ処理ノード２３０−２に送信すればよい。しかしながら、どのレプリカデータ処理ノード２３０でも障害時にデータ検索の代行ができるように設計すれば、全レプリカデータ処理ノード２３０に送信することになる。
【０１１９】
次いで、レプリカデータ処理ノード２３０は、分散データ書込結果通知処理（Ｓ１１３３）を用いて、分散データ書込処理（Ｓ１１３）における分散データ等（分散データ、ハッシュ値、フィンガーテーブル）の書込結果を同期ノード２４０に通知する。
【０１２０】
同期ノード２４０は、分散データ書込結果通知受信処理（Ｓ１１４６）を用いて、分散データ等の書込結果の通知を受信する。該通知は、データ書込結果通知受信処理（Ｓ１１４６）から分散データ書込結果判定処理（Ｓ１１４７）に通知される。
【０１２１】
次いで、同期ノード２４０は、分散データ書込結果判定処理（Ｓ１１４７）を用いて、分散データ等が全ての分散先において正常に書き込まれたか否かを判定する。正常に書き込まれたと判定した場合、同期ノード２４０は、分散データ書込完了処理（Ｓ１１４８）を用いて、データ分散処理（Ｓ１１４４）で生成した分散データを消去し、分散データのレプリカデータ処理ノード２３０への書き込みを完了させる。
【０１２２】
一方、少なくとも１つのレプリカデータ処理ノード２３０において分散データ等が正常に書き込めなかった場合には、同期ノード２４０は、分散データ書込完了処理（Ｓ１１４８）を用いて、正常に書き込めなかった旨のメッセージを通知する。どこに通知するかはシステムの設計による。
【０１２３】
例えば、同期ノード２４０自身で通知を受けても良いし、マスターデータ処理ノード２２０に通知をしても良い。また、他のフィンガーテーブルによる再分散を試みてもよいし、書き込みを失敗したレプリカデータ処理ノード２３０を他のレプリカデータ処理ノード２３０で代行して再分散を試みてもよい。あるいは、データ書込要求ノード２１０に通知してもよいし、データ書込要求ノード２１０を介してデータ書込要求を行ったシステム外部の他のシステムや装置でもよい。さらに、レプリカデータ処理ノード２３０に通知して、他のレプリカデータ処理ノード２３０で分散データの書き込みが失敗したことを通知して、記憶部２３４に書き込んだ分散データを削除するようにしてもよい。
【０１２４】
また、分散データ等が正常に書き込めなかった場合、マスターデータ処理ノード２２０が保存したマスターデータや、同期ノード２２０が保存したレプリカデータの保持を継続するか／消去するかも、システムの設計による。更に、マスターデータ処理ノード２２０が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノード２３０に要求するかも、システムの設計による。
【０１２５】
（第２の実施の形態による効果）
本実施の形態によれば、応答速度を考慮して選択された同期ノードに対してレプリカデータを同期で書き込み、レプリカデータの分散保持先のレプリカデータ処理ノード２３０に対して、分散データを非同期で書き込むことにより、応答速度の劣化を最小限にすることができる。
【０１２６】
次に、本発明のマスターデータ処理ノード２２０のハードウェア構成例について、図１２を参照して説明する。図１２は、マスターデータ処理ノード２２０のハードウェア構成例を示すブロック図である。
【０１２７】
図１２を参照すると、本発明のマスターデータ処理ノード２２０は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部１２０２、ネットワークを介してデータの送受信を行う通信部１２０３、入力装置１２０５や出力装置１２０６及び記憶装置１２０７と接続してデータの送受信を行う入出力インタフェース部１２０４、上記各構成要素を相互に接続するシステムバス１２０８を備えている。記憶装置１２０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【０１２８】
本発明のマスターデータ処理ノード２２０の各機能は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置１２０７に格納し、そのプログラムを主記憶部１２０２にロードしてＣＰＵ１２０１で実行することにより、ソフトウェア的に実現することも可能である。
【０１２９】
また、本発明のデータ書込要求ノード２１０、レプリカデータ処理ノード２３０、同期ノード２４０も、上記のようなハードウェア構成を有し、各機能をハードウェア的又はソフトウェア的に実現する。
【０１３０】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０１３１】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【０１３２】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１３３】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【０１３４】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【０１３５】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【０１３６】
（付記１）
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムであって、
データの書き込みを指示するデータ書込要求ノードと、
前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するマスターデータ処理ノードと、
前記マスターデータの複製であるレプリカデータを分散保持する複数のレプリカデータ処理ノードとを備え、
前記マスターデータ処理ノードが、
前記マスターデータを記憶部に書き込むマスターデータ書込手段と、
自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定手段と
を含むことを特徴とする情報処理システム。
【０１３７】
（付記２）
ＣｈｏｒｄのＳｕｃｃｅｓｓｏｒ  Ｌｉｓｔを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記１に記載の情報処理システム。
【０１３８】
（付記３）
前記分散保持先決定手段が、
フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認手段と、
前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定手段と、
接続可能ノード判定手段が抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定手段と
を含むことを特徴とする付記１又は付記２に記載の情報処理システム。
【０１３９】
（付記４）
前記接続可能ノード判定手段が、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記３に記載の情報処理システム。
【０１４０】
（付記５）
前記接続可能ノード判定手段が、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記３に記載の情報処理システム。
【０１４１】
（付記６）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記３から付記５の何れか１項に記載の情報処理システム。
【０１４２】
（付記７）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記３から付記５の何れか１項に記載の情報処理システム。
【０１４３】
（付記８）
前記マスターデータ処理ノードが、
前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段と
を含むことを特徴とする付記１から付記７の何れか１項に記載の情報処理システム。
【０１４４】
（付記９）
前記レプリカデータ処理ノードの１つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが、
前記保持先決定手段の決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信手段を含み、
前記同期ノードが、
前記レプリカデータを記憶部に書き込むレプリカデータ書込手段と、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段と、
前記マスターデータ処理ノードから受信した、前記分散保持先決定手段の決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散手段と、
前記分散データを、前記分散保持先決定手段の決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信手段とを含む
ことを特徴とする付記１から付記７の何れか１項に記載の情報処理システム。
【０１４５】
（付記１０）
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記９に記載の情報処理システム。
【０１４６】
（付記１１）
前記同期ノードが、
前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知手段を含み、
前記マスターデータ書込手段が、
前記レプリカデータ書込結果通知手段からの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記９又は付記１０に記載の情報処理システム。
【０１４７】
（付記１２）
前記マスターデータ処理ノードが、
前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信手段を含む
ことを特徴とする付記１から付記１１の何れか１項に記載の情報処理システム。
【０１４８】
（付記１３）
前記分散データ送信手段が、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記８又は付記９に記載の情報処理システム。
【０１４９】
（付記１４）
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システムにおけるデータバックアップ方法であって、
前記情報処理システムが備えるデータ書込要求ノードが、データの書き込みを指示するステップと、
前記情報処理システムが備えるマスターデータ処理ノードが、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持するステップと、
前記情報処理システムが備える複数のレプリカデータ処理ノードが、前記マスターデータの複製であるレプリカデータを分散保持するステップとを有するデータバックアップ方法において、
前記マスターデータ処理ノードが備えるマスターデータ書込手段が、前記マスターデータを記憶部に書き込むマスターデータ書込ステップと、
前記マスターデータ処理ノードが備える分散保持先決定手段が、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定ステップと
を有することを特徴とするデータバックアップ方法。
【０１５０】
（付記１５）
ＣｈｏｒｄのＳｕｃｃｅｓｓｏｒ  Ｌｉｓｔを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記１４に記載のデータバックアップ方法。
【０１５１】
（付記１６）
前記分散保持先決定手段が備えるフィンガーテーブル確認手段が、フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認ステップと、
前記分散保持先決定手段が備える接続可能ノード判定手段が、前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定ステップと、
前記分散保持先決定手段が備える分散保持先特定手段が、接続可能ノード判定ステップで抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定ステップと
を有することを特徴とする付記１４又は付記１５に記載のデータバックアップ方法。
【０１５２】
（付記１７）
前記接続可能ノード判定ステップで、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記１６に記載のデータバックアップ方法。
【０１５３】
（付記１８）
前記接続可能ノード判定ステップで、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記１６に記載のデータバックアップ方法。
【０１５４】
（付記１９）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記１６から付記１８の何れか１項に記載のデータバックアップ方法。
【０１５５】
（付記２０）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記１６から付記１８の何れか１項に記載のデータバックアップ方法。
【０１５６】
（付記２１）
前記マスターデータ処理ノードが備えるデータ分散手段が、前記分散保持先決定ステップでの決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散ステップと、
前記マスターデータ処理ノードが備える分散データ送信手段が、前記分散データを、前記分散保持先決定ステップでの決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信ステップと
を有することを特徴とする付記１４から付記２０の何れか１項に記載のデータバックアップ方法。
【０１５７】
（付記２２）
前記レプリカデータ処理ノードの１つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが備える同期データ送信手段が、前記保持先決定ステップでの決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信ステップと、
前記同期ノードが備えるレプリカデータ書込手段が、前記レプリカデータを記憶部に書き込むレプリカデータ書込ステップと、
前記同期ノードが備える書込結果通知手段が、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知ステップと、
前記同期ノードが備えるデータ分散手段が、前記マスターデータ処理ノードから受信した、前記分散保持先決定ステップでの決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散ステップと、
前記同期ノードが備える分散データ送信手段が、前記分散データを、前記分散保持先決定ステップでの決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信ステップと
を有することを特徴とする付記１４から付記２０の何れか１項に記載のデータバックアップ方法。
【０１５８】
（付記２３）
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記２２に記載のデータバックアップ方法。
【０１５９】
（付記２４）
前記同期ノードが備えるレプリカデータ書込結果通知手段が、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知ステップを有し、
前記マスターデータ書込ステップで、
前記レプリカデータ書込結果通知ステップからの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記２２又は付記２３に記載のデータバックアップ方法。
【０１６０】
（付記２５）
前記マスターデータ処理ノードが備えるマスターデータ書込結果送信手段が、前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信ステップを有する
ことを特徴とする付記１４から付記２４の何れか１項に記載のデータバックアップ方法。
【０１６１】
（付記２６）
前記分散データ送信ステップで、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記２１又は付記２２に記載のデータバックアップ方法。
【０１６２】
（付記２７）
Ｐ２Ｐ方式のネットワークに接続された複数のノードを含み、データを複製して２重に保持する情報処理システム上で動作するデータバックアッププログラムであって、
前記情報処理システムが備えるデータ書込要求ノードに、データの書き込みを指示する処理を実行させ、
前記情報処理システムが備えるマスターデータ処理ノードに、前記データ書込要求ノードに書き込みを指示されたデータをマスターデータとして保持する処理を実行させ、
前記情報処理システムが備える複数のレプリカデータ処理ノードに、前記マスターデータの複製であるレプリカデータを分散保持する処理を実行させるデータバックアッププログラムにおいて、
前記マスターデータ処理ノードが備えるマスターデータ書込手段に、前記マスターデータを記憶部に書き込むマスターデータ書込処理を実行させ、
前記マスターデータ処理ノードが備える分散保持先決定手段に、自ノードからの距離に基づき、前記レプリカデータを分散保持させる前記レプリカデータ処理ノードを決定する分散保持先決定処理を実行させる
ことを特徴とするデータバックアッププログラム。
【０１６３】
（付記２８）
ＣｈｏｒｄのＳｕｃｃｅｓｓｏｒ  Ｌｉｓｔを用いて、隣接する各ノード間の距離の平均値が算出され、
前記隣接するノード間の距離が当該平均値に基づき予め決定された閾値以上のノード間を論理的に切断した上で、前記マスターデータ処理ノードと前記レプリカデータ処理ノードとの距離が算出される
ことを特徴とする付記２７に記載のデータバックアッププログラム。
【０１６４】
（付記２９）
前記分散保持先決定手段が備えるフィンガーテーブル確認手段に、フィンガーテーブルに基づいて、前記レプリカデータの分散保持先の対象となる前記レプリカデータ処理ノードを選択するフィンガーテーブル確認処理を実行させ、
前記分散保持先決定手段が備える接続可能ノード判定手段に、前記フィンガーテーブル確認手段が選択した前記レプリカデータ処理ノードのうち、自ノードからの距離が予め定めた閾値を満たす前記レプリカデータ処理ノードを分散保持先の対象として抽出する接続可能ノード判定処理を実行させ、
前記分散保持先決定手段が備える分散保持先特定手段に、接続可能ノード判定処理で抽出した前記レプリカデータ処理ノードを、分散保持先ノードとして特定する分散保持先特定処理を実行させる
ことを特徴とする付記２７又は付記２８に記載のデータバックアッププログラム。
【０１６５】
（付記３０）
前記接続可能ノード判定処理で、
自ノードからの距離が前記閾値以下の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記２９に記載のデータバックアッププログラム。
【０１６６】
（付記３１）
前記接続可能ノード判定処理で、
自ノードからの距離が前記閾値以上の前記レプリカデータ処理ノードを、分散保持先の対象として抽出する
ことを特徴とする付記２９に記載のデータバックアッププログラム。
【０１６７】
（付記３２）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の平均値である
ことを特徴とする付記２９から付記３１の何れか１項に記載のデータバックアッププログラム。
【０１６８】
（付記３３）
前記閾値が、
前記マスターデータ処理ノードのキャッシュにある全ての前記レプリカデータ処理ノードの、前記マスターデータ処理ノードからの距離の中央値である
ことを特徴とする付記２９から付記３１の何れか１項に記載のデータバックアッププログラム。
【０１６９】
（付記３４）
前記マスターデータ処理ノードが備えるデータ分散手段に、前記分散保持先決定処理での決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散処理を実行させ、
前記マスターデータ処理ノードが備える分散データ送信手段に、前記分散データを、前記分散保持先決定処理での決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信処理を実行させる
ことを特徴とする付記１４から付記２０の何れか１項に記載のデータバックアッププログラム。
【０１７０】
（付記３５）
前記レプリカデータ処理ノードの１つが、前記レプリカデータの全てを保持する同期ノードであり、
前記マスターデータ処理ノードが備える同期データ送信手段に、前記保持先決定処理での決定に関する情報と、前記レプリカデータとを前記同期ノードに送信する同期データ送信処理を実行させ、
前記同期ノードが備えるレプリカデータ書込手段に、前記レプリカデータを記憶部に書き込むレプリカデータ書込処理を実行させ、
前記同期ノードが備える書込結果通知手段に、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知処理を実行させ、
前記同期ノードが備えるデータ分散手段に、前記マスターデータ処理ノードから受信した、前記分散保持先決定処理での決定に基づき、前記マスターデータを所定数に分割して分散データを生成するデータ分散処理を実行させ、
前記同期ノードが備える分散データ送信手段に、前記分散データを、前記分散保持先決定処理での決定に基づき所定の前記レプリカデータ処理ノードに送信する分散データ送信処理を実行させる
ことを特徴とする付記２７から付記３３の何れか１項に記載のデータバックアッププログラム。
【０１７１】
（付記３６）
前記マスターデータ及びレプリカデータの書込処理は同期的に行われ、
前記分散データの送信処理は非同期的に行われる
ことを特徴とする付記３５に記載のデータバックアッププログラム。
【０１７２】
（付記３７）
前記同期ノードが備えるレプリカデータ書込結果通知手段に、前記レプリカデータの書込結果を前記マスターデータ処理ノードに通知するレプリカデータ書込結果通知処理を実行させ、
前記マスターデータ書込処理で、
前記レプリカデータ書込結果通知処理からの通知を受け取った後に、前記マスターデータを記憶部に書き込む
ことを特徴とする付記３５又は付記３６に記載のデータバックアッププログラム。
【０１７３】
（付記３８）
前記マスターデータ処理ノードが備えるマスターデータ書込結果送信手段に、前記マスターデータの書込結果を前記データ書込要求ノードに通知するマスターデータ書込結果送信処理を実行させる
ことを特徴とする付記２７から付記３７の何れか１項に記載のデータバックアッププログラム。
【０１７４】
（付記３９）
前記分散データ送信処理で、
分散保持先の前記レプリカデータ処理ノードに対し、データの移動コストに応じたデータ量の分散データを送信する
ことを特徴とする付記３４又は付記３５に記載のデータバックアッププログラム。
【符号の説明】
【０１７５】
１００：情報処理システム
２２０：データ書込要求ノード
２１１：データ書込要求手段
２１２：マスターデータ書込結果処理手段
２２０：マスターデータ処理ノード
２２１：データ受信手段
２２２：マスターデータ書込手段
２２３：分散保持先決定手段
２２４：データ分散手段
２２５：分散データ送信手段
２２６：分散データ書込結果処理手段
２２７：記憶部
２２８：レプリカデータ送信手段
２２９：レプリカデータ書込結果処理手段
２３０（２３０−１〜２３０−５）：レプリカデータ処理ノード
２３１：分散データ受信手段
２３２：分散データ書込手段
２３３：分散データ書込完了通知手段
２３４：記憶部
２４０：同期ノード
２４１：レプリカデータ受信手段
２４２：レプリカデータ書込手段
２４４：データ分散手段
２４５：分散データ送信手段
２４６：分散データ書込結果処理手段
２５７：記憶部
１２０１：ＣＰＵ
１２０２：主記憶部
１２０３：通信部
１２０４：入出力インタフェース部
１２０５：入力装置
１２０６：出力装置
１２０７：記憶装置
１２０８：システムバス
【図１】
2014038485.tif 000003
【図２】
2014038485.tif 000004
【図３】
2014038485.tif 000005
【図４】
2014038485.tif 000006
【図５】
2014038485.tif 000007
【図６】
2014038485.tif 000008
【図７】
2014038485.tif 000009
【図８】
2014038485.tif 000010
【図９】
2014038485.tif 000011
【図１０】
2014038485.tif 000012
【図１１】
2014038485.tif 000013
【図１２】
2014038485.tif 000014
【図１３】
2014038485.tif 000015