(57)【要約】【課題】レプリカデータの分散送信及び複製時のデータ転送の円滑化を図りネットワークの負荷を軽減すること。【解決手段】ネットワーク１０を介してデータを二重に保持する情報処理システムであって、データの書込を指示する第１ノード１１と、前記データを保存し前記第１ノードの指示に従って該データを読み出す前記第２ノード２１と、この第２ノードに保存データのバックアップデータを保持する１又は２以上の第３ノード３１〜３４とを有し、前記第２ノード２１が、予め前記バックアップデータを１又は２以上の前記第３ノード用に分けて送信し分散保持させる送受信制御部２１Ａを備え、更に、バックアップデータの分割送信に際して事前に機能し、当該バックアップデータをパケットの最大サイズにより１又は２以上に分割する分散データ生成部２１Ｂとを備えていること。【選択図】図１
2014157397.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐ方式のネットワークに接続された複数のノードを備え、前記各ノードの内の一のノードが備えているデータを複製して二重に保持する情報処理システムであって、
前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとを備え、
前記第２ノードが、
前記第１ノードにより書込を指示されたデータを予め保存するデータ保存部と、
この保存したデータのバックアップデータを１又は２以上の前記第３ノードに分けて送信し分散保持させる送受信制御部と、
このデータの分割送信に際して事前に機能し当該データのバックアップデータをパケットの最大サイズにより１又は２以上に分割する分散データ生成部とを備えていることを特徴とした情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記第１ノードをデータ書込要求ノードとすると共に、前記第２ノードをマスターデータ処理ノードとし、
このマスターデータ処理ノードが、隣接する前記一の第３ノードに対して、前記１又は２以上の第３ノードを識別可能な分散識別情報を、前記データの分割送信に対応させて送信処理することを特徴とした情報処理システム。
【請求項３】
請求項１又は２に記載の情報処理システムにおいて、
前記データ書込要求ノードは、外部入力されるデータを保存するノードとして前記Ｐ２Ｐ方式のネットワークに接続された複数のノードから予め前記第２ノードをマスターデータ処理ノードとして選択する選択処理機能を備えていることを特徴とした情報処理システム。
【請求項４】
請求項２に記載の情報処理システムにおいて、
前記データ書込要求ノードは、
前記マスターデータ処理ノードに障害が発生した場合に稼働して前記一の第３ノードに対して、前記複数の第３ノードが保持する前記各分散データの読出し及び収集を指令する読出／収集指令機能を備えていることを特徴とした情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
前記一の第３ノードは、
前記分散識別情報に基づいて他の前記複数の第３ノードを特定すると共に当該複数の第３ノードが保持するデータを検索して返信するように指令する返信指令送信機能と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとを併合して前記マスターデータ処理ノードに保存している前記マスターデータと同一のマスターデータを復元するデータ復元処理機能と、
前記復元されたマスターデータを前記データ書込要求ノードに送信する復元データ送信処理機能とを有することを特徴とした情報処理システム。
【請求項６】
請求項４に記載の情報処理システムにおいて、
前記一の第３ノードは、
前記分散識別情報に基づいて他の前記複数の第３ノードを特定し、当該複数の第３ノードに分散保持させたデータを検索して前記データ書込要求ノードに返信するように指示する返信指示処理機能と、
前記分散識別情報を前記データ書込要求ノードに通知する分散識別情報通知処理機能と、
自ノードに分散保持されたデータを前記データ書込要求ノードに送信する自データ送信処理機能とを有し、
前記データ書込要求ノードは、前記分散識別情報に基づいて前記複数の第３ノードから返信されたデータを併合して前記マスターデータ処理ノードに保存されている前記マスターデータを復元する復元処理機能を有することを特徴とした情報処理システム。
【請求項７】
請求項１乃至６の何れか１項に記載の情報処理システムに装備され、前記第１ノード、前記第２ノード、及び前記第３ノードの少なくとも何れか一つのノードとして機能することを特徴とした情報処理装置。
【請求項８】
Ｐ２Ｐ方式のネットワークに装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置であって、
前記情報処理システムが備えている第１ノードにより書込を指示された場合に当該第１ノードから送り込まれるマスターデータを保存する機能を備えたデータ保存部と、
このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備されたバックアップ用の１又は２以上の第３ノードに分けて送信し分散保持させる送受信制御部と、
このデータの分割送信に際して機能し、パケットの最大サイズにより１又は２以上に分割する分散データ生成部と、を備えていることを特徴とした情報処理装置。
【請求項９】
Ｐ２Ｐ方式のネットワークに接続された複数のノードを備え、前記各ノードの内の一のノードが有するマスターデータを複製して二重に保持する情報処理システムにあって、
前記複数のノードとして、前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとが予め設置されており、
外部からの指令に基づいて前記第１ノードが稼働し、前記第２ノードに対して前記保存用のデータの書込を指令し、
この第１ノードの指令に従って前記第２ノードが稼働し、前記第１ノードからの書込指令の対象であるマスターデータを予め装備されたデータ保存部に保存し、
次に、この保存したマスターデータを前記各第３ノードに対応して複数に分割すると共に前記第２ノードの送受信制御部が前記各第３ノードにバックアップ用として送信しそれぞれに分散保持させるようにし、
このマスターデータの前記分割に際しては、前記第２ノードの分散データ生成部が稼働し、パケットの最大サイズにより１又は２以上に分割するようにしたことを特徴とするマスターデータのバックアップ方法。
【請求項１０】
Ｐ２Ｐ方式のネットワークに装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置にあって、
前記情報処理システムが備えている第１ノードによりデータ書込を指示された場合に当該第１ノードから送り込まれるマスターデータをデータ保存部に保存するデータ保存制御機能、
このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備された複数の第３ノードに送受信制御部を介してそれぞれバックアップ用として分散送信するデータ分散送信制御機能、
このデータの分散送信に先立って成される前記マスターデータの分割処理では、パケットの最大サイズにより１又は２以上に分割する構成とし、
これらの各制御機能および制御内容を、予め装備したコンピュータに実現させるようにしたことを特徴とする複製データ分散送信用制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに係り、特に、データ分散によるデータバックアップ技術を骨格とした情報処理システム、情報処理装置、データバックアップ方法、及びデータ分散送信用制御プログラムに関する。
【背景技術】
【０００２】
データ保存の重要性に鑑み、情報分散によるデータバックアップ技術は、従来より多くの研究開発が成されている。
かかるデータバックアップ技術の分野においては、下記特許文献１乃至３が知られている。この内、特許文献１には、複数のバックアップ装置とデータファイルの漏洩防止等を意図してこれを監視する複数の監視制御装置が分散配置されたネットワークシステムが開示されている。
【０００３】
又、特許文献２には、ネットワーク上の複数のサーバを複数のクライアントが有効利用するための技術が開示され、特にサーバデータのレプリカを作成し管理する収集手段を設けると共に当該収集手段が複数のクライアントからの問合せ処理を実行し、これによってサーバの負荷低減を意図したネットワークシステムが開示されている。
【０００４】
更に、特許文献３には、ネットワークを介して連結されデータを保存する複数のノードを備え、メインのノードが障害で動作不能となった場合でも、データ回復をノードへの負荷を偏らせることなく実現するためのネットワークシステムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−４５６７０号公報
【特許文献２】特許第４５０２０６３号公報
【特許文献３】特開２０１２−１７８０１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記各関連技術にあっては、バックアップ用として使用するレプリカデータの有効利用は成されている一方で、ネットワーク上のノード相互間でのレプリカデータの分散処理やそれに伴うデータ転送が多発すると、ネットワークのトラフィックが混雑し、ネットワークに流れるパケット数が処理しきれない量になり、データ転送等の実行が抑制されるという不都合が生じていた。
【０００７】
また、例えば特許文献３に記載の関連技術にあっては、ノード障害時に使用するデータの分散方法が述べられているが、分散する対象となるデータの特性について着目していないため、機械的にレプリカデータを分散するのみであり、データ分割の量が増加するとパケット数が処理しきれない量になり、転送時のネットワークの負荷が増大するという不都合があった。
【０００８】
（発明の目的）
本発明は、かかる関連技術の有する不都合を改善し、特に、レプリカデータの分散送信および複製時のデータ転送の円滑化を図り得る情報処理システム、情報処理装置、データバックアップ方法、及びデータ分散送信用制御プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明にかかる情報処理システムは、Ｐ２Ｐ方式のネットワーク１０に接続された複数のノードを備え、前記各ノードの内の一のノードが備えているデータを複製して二重に保持する情報処理システムであって、
前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとを備え、
前記第２ノードが、前記第１ノードにより書込を指示されたデータを予め保存するデータ保存部と、この保存したデータのバックアップデータを１又は２以上の前記第３ノードに分けて送信し分散保持させる送受信制御部と、このデータの分割送信に際して事前に機能し当該データのバックアップデータをパケットの最大サイズにより１又は２以上に分割する分散データ生成部とを備えている、という構成を採っている。
【００１０】
上記目的を達成するため、本発明にかかる情報処理装置は、前述した情報処理システムに装備され、前記第１ノード、前記第２ノード、及び前記第３ノードの少なくとも何れか一つのノードとして機能する、という構成を採っている。
【００１１】
上記目的を達成するため、本発明にかかる情報処理装置は、Ｐ２Ｐ方式のネットワーク１０に装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置であって、
前記情報処理システムが備えている第１ノードにより書込を指示された場合に当該第１ノードから送り込まれるマスターデータを保存する機能を備えたデータ保存部と、このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備されたバックアップ用の１又は２以上の第３ノードに分けて送信し分散保持させる送受信制御部と、このデータの分割送信に際して機能し、パケットの最大サイズにより１又は２以上に分割する分散データ生成部と、を備えている、という構成を採っている。
【００１２】
上記目的を達成するため、本発明にかかるデータバックアップ方法は、Ｐ２Ｐ方式のネットワークに接続された複数のノードを備え、前記各ノードの内の一のノードが有するマスターデータを複製して二重に保持する情報処理システムにあって、
前記複数のノードとして、前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとが予め設置されており、
外部からの指令に基づいて前記第１ノードが稼働し、前記第２ノードに対して前記保存用のデータの書込（及び検索）を指令し、
この第１ノードの指令に従って前記第２ノードが稼働し、前記第１ノードからの書込指令の対象であるマスターデータを予め装備されたデータ保存部に保存し、
次に、この保存したマスターデータを前記各第３ノードに対応して複数に分割すると共に前記第２ノードの送受信制御部が前記各第３ノードにバックアップ用として送信しそれぞれに分散保持させるようにし、
このマスターデータの前記分割に際しては、前記第２ノードの分散データ生成部が稼働し、パケットの最大サイズにより１又は２以上に分割するようにする、という構成を採っている。
【００１３】
上記目的を達成するため、本発明にかかるデータ処理プログラムは、Ｐ２Ｐ方式のネットワーク１０に装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置にあって、
前記情報処理システムが備えている第１ノードによりデータ書込を指示された場合に当該第１ノードから送り込まれるマスターデータをデータ保存部に保存するデータ保存制御機能、
このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備された複数の第３ノードに送受信制御部を介してそれぞれバックアップ用として分散送信するデータ分散送信制御機能、
および前記データの分散送信に先立って成される前記マスターデータの分割処理では、パケットの最大サイズにより１又は２以上に分割するバックアップ用データ分割処理機能、とを備えた構成とし、
これらの各制御機能および処理機能を、予め装備したコンピュータに実現させるようにする、という構成を採っている。
【発明の効果】
【００１４】
本発明は上記のように構成したので、これによると、バックアップ用として使用するレプリカデータのデータサイズをネットワークや蓄積媒体に対応してパケットの最大サイズにより１又は２以上に分割して分散保持させる、即ち、パケットの最大データサイズを超えるレプリカデータについては、他のレプリカデータ処理ノードに蓄積するようにしたので、レプリカデータの転送・蓄積を効率良く実行することができ、複数のレプリカデータ処理ノードへのデータ蓄積時にネットワークにかかる負荷を軽減することができ、これにより、より大量データを扱うことができるという優れた情報処理システム、情報処理装置、データバックアップ方法、及びデータ分散送信用制御プログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の情報処理システムに係る第１実施形態を示す全体構成図である。
【図２】図１に開示したシステムの一部を成すマスターデータ処理ノードの構成の一例を示すブロック図である。
【図３】図１に開示したシステムのデータ書込み時の全体的な動作を示すフローチャートである。
【図４】図１に開示したシステムのデータ検索時の状態を示す説明図である。
【図５】図１に開示したシステムでマスターデータ処理ノードの障害発生時におけるマスターデータ復元時の全体的な関連動作を示す説明図である。
【図６】図５に開示した障害時におけるマスターデータ復元時の全体的な動作を示すフローチャートである。
【図７】本発明の情報処理システムに係る第２実施形態を示す全体構成図である。
【図８】図７に開示したシステムの一部を成すマスターデータ処理ノード（第２のノード）の構成の一例を示すブロック図である。
【図９】図７に開示したシステムのデータ書込み時の全体的な動作を示すフローチャートである。
【図１０】図７に開示したシステムでマスターデータ処理ノード（第２のノード）の障害発生時におけるマスターデータ復元時の全体的な関連動作を示す説明図である。
【図１１】本発明の情報処理システムに係る第３実施形態を示す全体構成図である。
【図１２】図１１に開示したシステムの一部を成すマスターデータ処理ノードの構成の一例を示すブロック図である。
【図１３】図１１に開示したシステムのデータ書込み時の全体的な動作を示すフローチャートである。
【図１４】図１１に開示したシステムでマスターデータ処理ノードの障害発生時におけるマスターデータ復元時の全体的な関連動作を示す説明図である。
【図１５】図１４に開示した障害時におけるマスターデータ復元時の全体的な動作を示すフローチャートである。
【図１６】本発明の第４実施形態におけるシステムの一部を成すマスターデータ処理ノード（第２のノード）の具体的なハードウエー構成を示すブロック図である。
【図１７】図１６に開示したシステムの一部を成すストレージに格納されているマスターデータ処理ノード（第２のノード）が保持するテーブルの内容を示す図表である。
【図１８】図１６に開示したＲＡＭ内の一部を成すフィンガーテーブルとストレージに格納されたフィンガーテーブル保持部の内容とを示す図で、図１８（Ａ）はフィンガーテーブルの内容を示す図表、図１８（Ａ）はフィンガーテーブル保持部が保持するフィンガーテーブルとファイルとの関連を示す図表である。
【図１９】図１６に開示したＲＡＭ内の一部を成す分散データ送信先を示す図表である。
【図２０】図１６に開示したストレージに格納されているハッシュテーブルと保存データＤＢとの関連性を示す図表である。
【図２１】図１６に開示したシステムの各ノード間で使用される送信メッセージの構成内容の一例を示す説明図である。
【図２２】図１６に開示したシステムにおける各ノード相互間における情報処理プログラムの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明にかかる情報処理システムの実施形態を、図面を参照して説明する。ここで、以下の実施形態に記載されている構成要素は、あくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１７】
〔第１実施形態〕
（概要）
本第１実施形態では、バックアップデータであるレプリカデータを分割する際に、分割数を規定したデータを図１に示すレプリカデータ処理ノード３１にのみ、蓄積しておく。  同時に、本第１実施形態では、レプリカデータ処理ノード３１〜３４によるバックアップデータ分散保持に際しては、バックアップデータをパケットの最大データサイズにより、分割する方式を採っている。例えば、パケットの最大データサイズが１５００Ｂ（バイト）であり、データサイズが４０００Ｂ（バイト）の場合を示す。
【００１８】
そして、パケットの最大データサイズを超えるレプリカデータについては、図１に示すように、レプリカデータ処理ノード３２、３３に蓄積する。
【００１９】
このため、必要な場合にはレプリカデータ処理ノード３１にアクセスすると、分割数が分かるので、必要なレプリカデータ処理ノード（この例では、３２、３３のみ）に限定して問い合わせる。このため、アクセス回数およびデータ転送回数等が必要最小限となり、ネットワークの負荷を軽減することができる。
【００２０】
図２は、マスターデータ処理ノード（第２のノード）２１の構成例を示し、図３はデータ処理のフローチャートを示す。
【００２１】
又、検索時（マスター処理ノード２１に障害が発生した場合）には、図５に示すレプリカデータ処理ノード３１にアクセスし、レプリカデータの分割数を入手してから、その他のレプリカデータ処理ノード３２，３３に問い合わせを行う。図６はこの場合のデータ処理のフローチャートを示す。
【００２２】
以下、これを説明する。
本発明にかかる情報処理システム１は、図１に示すように、複数の情報処理装置がノードとしてＰ２Ｐ方式のネットワーク１０に接続され、この内のマスターデータ処理ノード２１が備えている保存データをバックアップデータとして複数のレブリカデータ処理ノード３１〜３４により分散保持されて成るデータ二重保持システムである。
【００２３】
図１において、この情報処理システム１は、インターネット等のネットワーク１０を介して接続されデータの書込み及び検索を指示する第１ノードであるデータ書込要求ノード１１と、第２ノードであるマスターデータ処理ノード２１と、複数（本第１実施形態では４個）の第３ノードであるレブリカデータ処理ノード３１〜３４とを含んで構成されている。
【００２４】
第１ノード１１は、外部入力されるデータの書込及び検索を第２ノード（マスターデータ処理ノード）２１に対して指示する。又、第２ノード２１は、第１ノード１１に書込を指示されたデータを保存し、或いは第１ノード１１からの検索指示に従ってデータを読出すように機能する。第３ノード３１乃至３４は、第２ノード２１に保存されたデータを複製して保持する機能を備えている。
【００２５】
この場合、第２ノード２１は、具体的には後述するが、複数の前記第３ノード３１〜３４に対しては、予めパケットの最大データサイズにより、バックアップ用の送信データを分割送信するように構成されている。
具体的には後述するが、本第１実施形態では、例えば、パケットの最大データサイズよりも大きいデータサイズのマスターデータを対象としており、パケットの最大データサイズに基づいて分割送信するように構成されている。
【００２６】
ここで、第２ノード２１は、データ保存部２１Ｃと送受信部２１Ａとを有する。データ保存部２１Ｃは、当該第２ノード２１へ第１ノード１１から書込を指示されたデータを保存する。送受信部２１Ａは、データ保存部２１Ｃで保存したデータをバックアップ用として複数に分割された場合に、主制御部２１Ｆに送信制御されて稼働しこれを複数の第３ノード３１〜３４に対して送信して分散保持させる。
【００２７】
又、送受信部２１Ａは、この保存したデータを分散保持させた複数の第３ノード３１〜３４については、そのデータの分割内容を示す識別可能な分散識別情報を、主制御部２１Ｆに送信制御されて当該複数の第３ノード３１〜３４の内の少なくとも１つ（本第１実施形態では第３ノード３１）に送信する。
【００２８】
このような基本的な構成を備えたことにより、上記Ｐ２Ｐ方式の情報処理システムにおいては、データを保存する第２ノード２１が障害で動作不能となった場合であっても、データ回復を、特定の一のノードへの負荷を偏らせることなく実現することができる。
【００２９】
ここで、上記情報処理システム１は、ＤＨＴ（Distributed Hash Table：分散ハッシュテーブル）型Ｐ２Ｐ方式のネットワーク１０に上述した複数のノードが接続されて成立している。そして、この当該情報処理システム１については、特に、障害時に保存データ（以下「マスターデータ」とも言う）を如何に回復するかが重要視される。
【００３０】
ここで、分散して複数のノード３１〜３４に保持された分散データは、ハッシュテーブルに基づいて検索されて特定される。また、本第１実施形態においては、保存データを分散して保持するノードを分散識別情報であるフィンガーテーブル（Finger Table) に基づいて選定するように制御される。
【００３１】
そして、分散データは、第２ノード（マスターデータ処理ノード）２１に障害が発生した場合、当該第２ノード（マスターデータ処理ノード）２１を代行する第３ノード（複数のレブリカデータ処理ノードの内の一つ）３１或いは保存データを検索した第１ノード（データ書込要求ノード）１１に読み出されてマージ（併合）され、これによって保存データが復元される。
【００３２】
ここで、前述したデータ書込要求ノード（第１ノード）１１は、外部入力されるデータを保存するノードとして前記Ｐ２Ｐ方式のネットワークに接続された複数のノードから前記第２ノードであるマスターデータ処理ノード２１を選択する選択処理機能を、予め備えている。
又、このデータ書込要求ノード１１は、上記マスターデータ処理ノード２１に障害が発生した場合に稼働して前記第３ノード３１〜３４の内の一の第３ノード３１に対して、前記複数の第３ノードが分散保持する前記各データの読出し及び収集を指令する読出／収集指令機能を備えている。
【００３３】
更に、上記一の第３ノード３１は、前記分散識別情報に基づいて他の前記複数の第３ノードを特定すると共に当該複数の第３ノード３２〜３４が保持するデータを検索して返信するように指令する返信指令送信機能と、前記分散識別情報に基づいて自ノードのデータと返信されたデータとを併合して前記マスターデータ処理ノード２１に保存している前記マスターデータと同一のマスターデータを復元するデータ復元処理機能と、前記復元されたマスターデータを前記データ書込要求ノード１１に送信する復元データ送信処理機能とを備えている。
【００３４】
又、上記一の第３ノード３１は、前記データ書込要求ノード１１による併合動作に際しては、上述した返信指示処理機能に加えて、前記分散識別情報をデータ書込要求ノード１１に通知する分散識別情報通知処理機能を備え、更に、自ノードに分散保持されたデータを前記データ書込要求ノード１１に送信する自データ送信処理機能を備えている。
そして、前述したデータ書込要求ノード１１は、前記分散識別情報に基づいて前記複数の第３ノード３１〜３４から返信されたデータを併合して前記マスターデータ処理ノードに保存されている前記マスターデータを復元する復元処理機能を有する。
【００３５】
このため、具体的には後述するが、本第１実施形態によれば、（１）マスターデータのレプリカを分散書込みすることで、各ノードの負荷を分散できる。また、（２）マスターデータのレプリカを分散書込みするノードはマスターデータを保持するノードのフィンガーテーブル内のみであるため、書込み、検索で発生する不要なホップを防ぐことができる。更に、（３）ＤＨＴ型Ｐ２Ｐネットワーク内のノード追加・削除を分散処理できるため、これらの処理を効率良く実行することができる。
【００３６】
このように、本第１実施形態では、バックアップデータを分散配置し、従来技術では、局所的に負荷がかかっていた問題を軽減させることが可能となった。このため、再分散時に多量のデータを移管することなく、データ移管を可能にする。
【００３７】
即ち、このバックアップデータを分散配置に際しては、前述したようにパケットの最大データサイズにより、バックアップ用の送信データを分割送信するように構成したので、これにより、負荷の集中という上記従来例の不都合を改善することができ、再分散時のデータ移管の円滑化を図り得るようになった。また、データ検索においても、ネットワークに流れるデータ量減少及び応答速度向上を目的として、ホップ数を削減させて検索できる。
【００３８】
（具体的構成）
上記構成内容を、以下、更に具体的に説明する。
図１に示すように、本第１実施形態に係る情報処理システム１は、前述したようにＤＨＴ型のＰ２Ｐネットワーク１０に、前述した各ノード、即ち情報処理装置を構成する書込要求ノード１１、マスターデータ処理ノード２１、レプリカデータ処理ノード３１乃至３４が、それぞれ連結されている。
【００３９】
ここで、マスターデータ処理ノード２１（以下「マスター処理ノード」とする）は、図２に示すように、マスターデータと同一のバックアップ用データを第３ノード３１〜３４に対して分割し分散送信する前述した送受信制御部２１Ａと、この分散送信するバックアップ用データを所定の条件で分割し前記送受信制御部２１Ａに送り込む分散データ生成部２１Ｂと、この分割前の前記バックアップ用データを保持する前述したデータ保持部２１Ｄと、これら各構成要素の動作を制御し且つマスターデータ処理ノード２１の外部の対する種々の動作機能を設定する主制御部２１Ｆとを備えている。
【００４０】
更に、図２において、符号２１Ｄは、上記主制御部２１Ｆの動作に必要な各種プログラム等が予め格納された第１の記憶部を示す。この第１の記憶部２１Ｄは、ＲＯＭにより構成され、後述するファインテーブル２２４およびハッシュテーブル２２５が格納されている。
又、符号２１Ｅは、上記主制御部２１Ｆの動作に必要な各種データ等が必要に応じて格納され若しくは取り出される第２の記憶部を示す。この第２の記憶部２１Ｅは、ＲＡＭにより構成されている。
【００４１】
ここで、送受信制御部２１Ａは、前述したように、データ保存部２１Ｃで保存したデータをバックアップ用として複数に分割された場合に、主制御部２１Ｆに送信制御されて稼働しこれを複数の第３ノード３１〜３４に対して送信して分散保持させるように機能する。
又、この送受信制御部２１Ａは、そのバックアップ用のデータの分割内容を示す識別可能な分散識別情報を、主制御部２１Ｆに送信制御されて当該複数の第３ノード３１〜３４の内の少なくとも１つ（本第１実施形態では隣接する第３ノード３１）に送信するように機能する。
【００４２】
他のノード１１，３１〜３４も、本第１実施形態では、このマスター処理ノード２１の構成要素２１Ａ〜２１Ｆと同等の構成要素を備えて構成されている。このため、この各ノード１１，２１，３１乃至３４は、基本的にはそれぞれ同一の機能を有している。
【００４３】
即ち、本第１実施形態では、前述したように、全てのノードが、データ書込／検索要求ノード１１、マスターデータ処理ノード（「データ保存ノード」とも称す）２１、レプリカデータ処理ノード（「分散保持ノード」とも称す）３１〜３４の動作が可能な構成となっている。
【００４４】
ここで、例えば、データ書込／検索要求ノード（以下、「書込／検索要求ノード」という）１１になる条件としては、オペレータ等がＤＨＴ型Ｐ２Ｐネットワークの外部から検索要求を行った場合である。ただし、オペレータ等がどのノードで検索するかは自由である。
【００４５】
又、マスター処理ノード２１が保持するマスターデータとレプリカ処理ノード３１〜３４に分散保持されたレプリカデータとについては、基本はマスターデータで運用し、マスター処理ノード２１が故障した場合には、レプリカ処理ノード３１乃至３４が備えているレプリカデータを使用する流れとなる。
【００４６】
上記マスター処理ノード２１については、データ検索の対象が存在するマスターデータを保持するノードがその役割となるため、検索するデータによっては、どのノードでも、マスター処理ノード２１になる可能性があり得る。
【００４７】
ここで、前述したマスター処理ノード２１における上記分散データ生成部２１Ｂは、主制御部２１Ｆに制御されて作動し、バックアップ用のデータであるレプリカデータのデータサイズを、ネットワークや蓄積媒体（レプリカデータ処理ノード）によって変化させる機能を備えている。この分散データ生成部２３Ｂは、具体的には、パケットの最大データサイズにより、バックアップデータを分割し複数のレプリカデータを生成する機能を備えている。
【００４８】
このバックアップデータの分割数は、本第１実施形態では、下記の式に基づいて算定される。
即ち、レプリカデータの分割数ｎの範囲は、１≦ｎ≦Ｎ＿｛MAX ｝である。
ここで、ｎ＝レプリカデータの分割数、である。
更に、Ｎ＿｛MAX ｝＝分割データの最大値で「フィンガーテーブルが保持する全ノード数−１」又は「予め決めた値」、である。
尚、この内、「予め決めた値」は、本第１実施形態では、「全ノード数−１」以下とする。
【００４９】
（基本動作）
次に、上記第１実施形態の基本的な動作を説明する。
図１において、書込／検索要求ノード１１には、まず、書込／検索をするデータ１０ａが、外部から設定入力される。
【００５０】
次に、この書込／検索要求ノード１１の書込要求によりマスター処理ノード２１が稼働し、データ１０ａは、その内容などによって選択されたマスター処理ノード２１のデータ保存部２１Ｃに、保存データ１０ｂとして保存される。一方、書込／検索要求ノード１１のデータ１０ａは削除される。
【００５１】
ここで、マスター処理ノード２１は、保存データ１０ｂを、ハッシュテーブル２２５内のハッシュ値に対応付ける。ここで、ハッシュテーブル２２５の詳細な例は、公知文献（例えば、特表2010-519630 号公報）で知られているものが使用される。そして、分散識別情報保持部（図２：ＲＯＭ２１Ｄのフィンガーテーブル２２４）に従って、保存データ１０ｂの分散保持先が設定され、保存データ１０ｂのバックアップ用データが分散データ生成部２１Ｂで分割される。
【００５２】
そして、この場合の分割数は、分散保存先の数に対応して設定し、更には分散保存数の半分にしたり重なり部分を設けたりして、復元能力を高めることもできる。尚、フィンガーテーブル２２４の詳細な例は公知文献（例えば、ACM SIGCOMM Communication Review 31(4):149-160.New York,USA:ACM Press. ）で知られているものが使用される。
【００５３】
又、バックアップデータの分割に際しては、前述したように、第２ノード２１は、具体的には後述するが、複数の前記第３ノード３１〜３４に対しては、予めパケットの最大データサイズにより、バックアップ用の送信データを分割送信するように構成されている。
【００５４】
具体的には、本実施形態では、例えば、パケットの最大データサイズが１５００Ｂ（バイト）であり、データサイズが４０００Ｂ（バイト）に場合を想定している。この場合、本第１実施形態では、図１に示すように４個のレプリカ処理ノード３１乃至３４が備えているが、３個のレプリカ処理ノード３１乃至３３の使用で必要充分なレプリカ処理ノードの数となり、レプリカ処理ノード３１乃至３４の有効利用も可能となる。
【００５５】
ここで、送受信制御部２１Ａからは、フィンガーテーブル２２４により特定される分散データ保持先のレプリカ処理ノード３１〜３３に、分散データ及び分散データのハッシュ値の保持が要請される。
【００５６】
マスター処理ノード２１から分散保持が要請された各分散データ及びハッシュ値は、複数（本実施形態では４個）のレプリカ処理ノード３１〜３３のそれぞれに分散され、当該第３ノード（レブリカ処理ノード）３１〜３４のデータ保存部３０ａ〜３０ｃ、及びハッシュテーブル２３１〜２３３に保持される。
【００５７】
ここで、図１では、書込／検索要求ノード１１とマスター処理ノード２１以外のノードは、レプリカ処理ノード３１〜３４として図示されている。
この場合、レプリカ処理ノード３１〜３４は、フィンガーテーブル２２４に従ってマスター処理ノード２１で選択されるものであり、図１はその特殊な一例に過ぎない。
【００５８】
また、本第１実施形態では、マスター処理ノード２１からレプリカ処理ノード３１〜３４の少なくとも１つに、マスター処理ノード２１が分散保持先を決めるために使用したフィンガーテーブル２２４の複製が送信される。レプリカ処理ノード３１〜３４の少なくとも１つはフィンガーテーブル２２４の複製を保持している。本第１実施形態では、前述したようにレプリカ処理ノード３１がフィンガーテーブル２２４の複製を保持している。
【００５９】
従って、マスターデータ処理ノード２１が障害を起こして動作不能となっても、書込／検索要求ノード１１による保存データの検索をレプリカデータ処理ノード３１が代行することによって、分散データから保存データを復元することが可能となる。
尚、マスター処理ノード２１の障害時に、書込／検索要求ノード１１による保存データの検索を受けて代行するレプリカ処理ノード３１を、以下、他のレプリカデータ処理ノード３２〜３４と区別するため「障害支援ノード」とも呼ぶ。
【００６０】
（本第１実施形態の具体的な動作）
上記図１乃至図２に開示した情報処理システムの動作を具体的に説明する。
ここで、図１において、書込／検索要求ノード１１として動作した情報処理装置は、同じ構成を備えた情報処理装置が、データ書込要求ノード１１として動作し、或いはデータ検索要求ノードとして動作する。
【００６１】
（保存データの書込動作）
まず、外部からの指令に基づいて前記書込／検索要求ノード（第１ノード）１１が稼働し、前記マスター処理ノード（第２ノード）２１に対して前記保存用のデータの書込を指令し、この第１ノード１１の指令に従って前記第２ノード２１が稼働し、前記第１ノード１１からの書込指令の対象であるマスターデータを予め装備されたデータ保存部２１Ｃに保存する。
【００６２】
次に、この保存したマスターデータを前記各第３ノード３１〜３４に対応して複数に分割すると共に前記第２ノード２１の送受信制御部２１Ａが前記各第３ノード３１〜３４にバックアップ用として送信しそれぞれに分散保持させるようにする。
そして、このマスターデータの前記分割に際しては、前記第２ノード２１の分散データ生成部２１Ｂが稼働し、パケットの最大サイズにより１又は２以上に分割するように機能する。
【００６３】
前述した図１は、具体的には、保存データの書込状態を示す図である。
ここで、以下に示す(1)(2)(3)(4)は、図１中の丸数字に対応するものとする。
【００６４】
検索要求ノード１１のデータ書込要求に従って、マスター処理ノード２１は(1) 及び(2) の処理を行う。即ち、マスター処理ノード２１が全てのデータを自ノードに保存すると共に、それぞれのレプリカデータ処理ノード３１〜３３にデータを分散配置する。データの分散配置にはマスター処理ノード２１のフィンガーテーブルを用いる。
【００６５】
図１には、保存データが４つの部分に分割されて、その内の三つのレプリカデータ処理ノード３１〜３３に、その１つ１つが分散配置される様子を示している。
マスター処理ノード２１が分散データの分散配置に使用したフィンガーテーブルは、分散配置するレプリカデータ処理ノード３１〜３３に配置される。
【００６６】
（保存データ書込のシーケンス）
図３は、図１に示すシステムにあって、保存データの書込手順を示すシーケンス図である。
【００６７】
まず、書込要求ノード１１のデータ書込要求処理（図３：Ａ１０）によるデータ書込要求を、マスター処理ノード２１は、データ受信処理（図３：Ａ２０）により送受信制御部２１Ａを介して受信する。このマスター処理ノード２１は、マスターデータの書込要求に対応して、マスターデータ書込処理（図３：Ａ２２）によりデータベース（データ保存部２１Ｃ）に保存データとして書き込む。
【００６８】
同時に、このマスター処理ノード２１は、正常に書き込まれた場合、書込結果送信処理（図３：Ａ２４）により、書込要求ノード１１に正常に書き込まれたことを通知する。
尚、マスターデータ書込処理（図３：Ａ２２）で正常に書き込めなかった場合、書込結果送信処理（図３：Ｓ２４）により正常に書き込めなかった旨のメッセージを書込要求ノード１１に通知する。
【００６９】
書込要求ノード１１は、書込結果受信処理（図３：Ａ１２）において書込結果を受信すると、マスターデータ書込結果判定処理（図３：Ａ１４）においてマスターデータ書込結果を、主制御部１１Ｆが判定する。続いて、マスターデータ書込完了処理（図３：Ａ１６）においては、判定結果からマスターデータを正常に書込めた場合、書込要求ノード１１が格納していたマスター処理ノード２１に書き込む内容を消去し、マスターデータ書込み処理を完了させる。一方、正常に書き込めなかった場合には、マスターデータ書込完了処理（図３：Ａ１６）において、正常に書込めなかった旨のメッセージを通知する。
【００７０】
尚、正常に書込めなかった旨のメッセージを、何処に通知するかは、システム設計による。例えば、書込要求ノード１１自身で通知しても、書込要求ノード１１に書込を指示した依頼元に通知してもよい。さらに、正常に書き込めなかった場合、書込み要求ノード１１が保持するマスター処理ノード２１に書き込む内容を保持するか／消去するかについても、システム設計による。更に、書込み要求ノード１１が保持するマスター処理ノード２１に書き込む内容を再度マスター処理ノード２１に書き込むように要求するか否かについても、システム設計による。
【００７１】
次に、マスター処理ノード２１は、フィンガーテーブル確認処理（図３：Ａ２６）において、フィンガーテーブルを確認して、どのノード３１乃至３４にレプリカデータを分散すれば良いのかを決定する。
本第１実施形態の場合は、データサイズ４０００Ｂに対してパケットの最大データサイズを１５００Ｂとしたので、三つのノード３１乃至３３で必要充分となる。マスター処理ノード２１によるこれらの判断は、主制御部２１Ｆによって実行される（図３：Ａ２７）。
【００７２】
このデータサイズ分割処理と共に各分割データの分散先ノードが決定されると、その後、データ分散処理（図３：Ａ２８）に対して、どのノードにレプリカデータを分散すれば良いのかを通知する。
【００７３】
マスター処理ノード２１は、このデータ分散処理（図３：Ａ２８）において、フィンガーテーブル確認処理（図３：Ａ２６）から通知されたノードに分散するように、保存したマスターデータを所定数（図１の例では３つ）に分散する。
【００７４】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理（図３：Ａ２８）から分割数情報付与処理（図３：Ａ３０）を実行した後、分散データ送信処理（図３：Ａ４０）に渡される。
【００７５】
この分散データ送信処理（図３：Ａ４０）において、マスター処理ノード２１は、渡された分割数情報が付された分散データ及びハッシュ値を、フィンガーテーブル上に設定された各レプリカ処理ノード３１〜３３に対して送信する。
図３の例では、レプリカデータ処理ノード３１〜３３の三つのノードに、分割数情報が付された分散データ及びハッシュ値を送信する。
【００７６】
各レプリカデータ処理ノード３１〜３３は、データ受信処理（図３：Ａ５０）において、送信された分散データ及びハッシュ値を受信する。
以下、レプリカ処理ノード３１〜３３の処理は同様なので、１つのレプリカ処理ノード３１の処理について説明する。
【００７７】
この内、レプリカデータ処理ノード３１は、データ書込処理及びフィンガーテーブル受信処理（図３：Ａ５０）において、データベース（データ保存部）に分散データとハッシュ値を書込み、フィンガーテーブルを登録する。
【００７８】
尚、フィンガーテーブルの登録は、システム設計に対応して、分散データの分散先の全てのレプリカデータ処理ノードに登録してもよいし、予め決められたレプリカデータ処理ノードへの送信でもよい。例えば、図１において、マスター処理ノード２１の時計回りの次のレプリカデータ処理ノード３１が、マスター処理ノード２１の障害時にデータ検索の代行をするとの設計であれば、レプリカ処理ノード３１に送信すればよい。
【００７９】
しかしながら、どのレプリカ処理ノード３１〜３４でも障害時にデータ検索の代行ができるように設計すれば、全レプリカ処理ノード３１〜３４に送信することになる。そして、書き込みが完了したことが、データ書込処理及びフィンガーテーブル登録処理（図３：Ａ５２）からデータ書込完了通知処理（図３：Ａ５４）に通知される。
【００８０】
一方、レプリカデータ処理ノード３１のデータベース（データ保存部）に分散データが書き込まれなかった場合には、書き込まれなかったことが、データ書込処理及びフィンガーテーブル登録処理（図３：Ａ５２）からデータ書込完了通知処理（図３：Ａ５４）に通知される。
レプリカデータ処理ノード３１は、データ書込完了通知処理（図３：Ａ５４）によって、書込完了或いは書込未了の通知を、マスター処理ノード２１に通知する。
【００８１】
これを受けて、マスター処理ノード２１は、データ書込み完了通知受信処理（図３：Ａ６０）において、レプリカ処理ノード３１〜３４からの書込完了あるいは書込未了の通知を受信する。この書込完了あるいは書込未了の通知は、データ書込み完了通知受信処理（図３：Ａ６０）から分散データ書込結果判定処理（図３：Ａ６２）に通知される。マスター処理ノード２１は、この分散データ書込結果判定処理（図３：Ａ６２）において、分散データが全ての分散先に正常に書き込まれたか否かを判定する。
【００８２】
そして、マスター処理ノード２１は、判定結果から分散データを正常に書込めた場合には、分散データ書込完了処理（図３：Ａ６４）において、マスター処理ノード２１が格納していた分散データを消去し、分散データのレプリカ処理ノード３１〜３４への書込みを完了させる。
【００８３】
一方、分散データが少なくとも１つのレプリカ処理ノード３１，３２，又は３３に対して正常に書き込めなかった場合は、正常に書込めなかった旨のメッセージを通知する。
どこに通知するかはシステムの設計による。例えば、マスター処理ノード２１自身で通知を受けて、他のフィンガーテーブルによる再分散を試みてもよいし、書込を失敗したレプリカ処理ノードを他のレプリカ処理ノードで代行して再分散を試みてもよい。或いは、書込要求ノード１１に通知してもよいし、書込要求ノード１１を介してデータ書込要求を行なったシステム外部の他のシステムや装置でもよい。
【００８４】
更に、レプリカ処理ノード３２，又は３３に通知して、他のレプリカデータ処理ノード３１で分散データの書込が失敗したことを通知して、データベース（データ保存部）に書き込んだ分散データを削除するようにしてもよい。
また、分散データが正常に書き込めなかった場合、マスターデータ処理ノード２１が保存したマスターデータの保持を継続するか／消去するかも、システムの設計による。
更に、マスターデータ処理ノード２１が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノードに要求するか否かも、システムの設計による。
【００８５】
（保存データの正常検索）
次に、図４を参照して正常時の検索処理を説明する。
【００８６】
図４において、マスター処理ノード２１に障害がなく正常検索を行なわれた場合には、図４の(1) (2) の順序で、保存データの検索が完了する。
即ち、図４の(1) では、検索要求ノード１１がマスター処理ノード２１に対して検索要求を行う。これに対して、図４の(2) では、マスター処理ノード２１が自己が保持するマスーデータを検索し、その結果を検索要求ノード１１に返答し、これにより保存データの検索が完了する。
尚、本第１実施形態において、保存データの検索は、ハッシュテーブルのハッシュ値との比較に基づいて行われる。
【００８７】
（保存データ障害時の分散データ検索）
図５に、保存データ障害時における分散データ検索の一例を示す。
この図５の例では、データの検索中に障害が発生したマスター処理ノード２１の検索処理を代行するレプリカ処理ノード３１が、分散データを集めてデータ復元のためのマージ(merge：併合）を行ない、その結果を検索要求ノード１１に送信する。
【００８８】
この図５の例では、(1) では、マスター処理ノード２１に障害が発生した場合を示す。  次に、この障害発生時には、本第１実施形態では、まず、(2) のように、障害が発生したマスター処理ノード２１から図５において右回り（時計回り）に、次のレプリカ処理ノード３１に、検索要求ノード１１からの検索要求が行われる。
【００８９】
ここで、障害が発生したマスター処理ノード２１の代行は、図５のように右回り（時計回り）の次のレプリカ処理ノード３１に限定する必要はなく、システムの設計による。
本第１実施形態では、上記のように、次のレプリカ処理ノード３１に分割数にかかる情報が格納されているものとする。このため、レプリカ処理ノード３１にアクセスすると、分割数が判るようになっている。
【００９０】
この検索要求を受けたレプリカ処理ノード３１は、故障したマスター処理ノード２１の代わりに、(3) のようにレプリカデータ（分散データ）を保存しているレプリカ処理ノード３２，３３，又は３４に限定して検索処理を実行する。
【００９１】
この (3)の処理では、検索要求を受けた各レプリカ処理ノード３２，３３，又は３４が検索要求元のレプリカデータ処理ノード３１に検索結果を返す。自ノード以外のレプリカ処理ノード３２〜３４から検索した分散データが返送されると、(4) のように、要求元のレプリカデータ処理ノード３１は、自ノードに保持している分散データと他のレプリカデータ処理ノード３２〜３４からの分散データとを併合する。
【００９２】
そして、レプリカ処理ノード３１は、併合して復元したマスターデータの複製を検索要求ノード１１に検索結果として送信する。
このようにして、検索要求ノード１１は、マスター処理ノード２１に保存したマスターデータと同一のマスターデータを復元し取得することができる。
【００９３】
（保存データ障害時の分散データ検索動作）
次に、上記保存データ障害時の分散データ検索（図５の検索動作）の具体例を、図６のシーケンス図を参照して説明する。
【００９４】
まず、検索要求ノード１１は、レプリカ処理ノード３１に対してデータ検索要求処理（図６：Ｂ１）によるデータ検索要求を発信する。これを、レプリカ処理ノード３１は、検索データ受信処理（図６：Ｂ１０）により受信する。
【００９５】
続いて、レプリカ処理ノード３１は、フィンガーテーブル確認処理（図６：Ｂ２０）において、図３のＡ５２で登録した検索データに対応するフィンガーテーブルを検索し見つける。そして、フィンガーテーブル確認処理（図６：Ｂ２０）から分割数情報確認処理（図６：Ｂ２１）で分割数を確認した後、検索する分散データ問い合わせ処理（Ｓ７２３／図６：Ｂ２２）に対して前記検索し見付けたフィンガーテーブルの情報を分割数情報と共に渡す。
【００９６】
次に、レプリカ処理ノード３１は、検索する分散データ問い合わせ処理（図６：Ｂ２２）において、フィンガーテーブルの情報に基づいて検索要求を行うレプリカ処理ノードを特定する。図５の例では、レプリカ処理ノード３２，３３，及び３４を特定する。
【００９７】
そして、検索する分散データ問い合わせ処理（図６：Ｂ２２）から、特定したレプリカデータ処理ノード３２，３３，及び３４の情報と検索する分散データを特定可能なハッシュ値とを、分散データ内容送信処理（図６：Ｂ３０）に渡す。この分散データ内容送信処理（ハッシュ値送信処理／図６：Ｂ３０）において、各分散データを検索する検索キーとなるハッシュ値を送信することにより、特定されたレプリカ処理ノード３２，３３，及び３４に対して分散データの検索要求を行う。
【００９８】
ここで、本第１実施形態では、ハッシュ値を分散データの検索として送信するが、他の検索キーを使うシステム設計であってもよい。ただし、検索キー割当の容易性や秘匿性からハッシュ値が望ましい。また、図６のＢ３０には、分散データ返信先を特に明記していない。これは、本第１実施形態が、返信先を検索要求元のレプリカ処理ノード３１とする構成であることによる。尚、他の例で、返信先を選択できる設計とするのであれば、図６のＢ３０で、分散データ返信先を明記する必要性が生じる。
【００９９】
検索要求を受けたレプリカ処理ノード３２，３３，及び３４は、分散データ内容受信処理（ハッシュ値受信処理／図６：Ｂ４０）において、分散データ検索要求として分散データのハッシュ値を受信する。
ここで、レプリカ処理ノード３２，３３，及び３４の処理は同様なので、以下、レプリカ処理ノード３２を代表させて説明する。
【０１００】
上記レプリカ処理ノード３２は、要求を受けた検索を実施するため、分散データ内容送信処理（ハッシュ値受信処理／図６：Ｂ４０）からデータ検索処理（図６：Ｂ４２）に検索内容を渡すよう制御する。そして、このデータ検索処理（図６：Ｂ４２）において、ハッシュ値を基にデータ検索が行われる。
【０１０１】
次に、この検索された分散データ及び検索結果の情報等が、データ検索処理（図６：Ｂ４２）から検索データ及び検索結果取得処理（図６：Ｂ４４）に渡される。更に、これらの結果が、検索データ及び検索結果取得処理（図６：Ｂ４４）から検索データ送信処理（図６：Ｂ４６）に渡される。そして、検索データ送信処理（図６：Ｂ４６）では、検索された分散データ及び検索結果の情報等を前述したレプリカ処理ノード３１に返信する。
【０１０２】
レプリカ処理ノード３１は、検索データ及び検索結果受信処理（図６：Ｂ５０）において、各レプリカ処理ノード３２，３３，及び３４の検索データ送信処理（図６：Ｂ４６）からの分散データ及び検索結果の情報等を受信する。この受信した情報は、検索データ及び検索結果受信処理（図６：Ｂ５０）から検索データマージ処理（図６：Ｂ２８）に渡される。
【０１０３】
一方、このレプリカ処理ノード３１は、他のレプリカ処理ノード３２，３３，及び３４への分散データの検索要請と並行して、データ検索処理（図６：Ｂ２４）以降の処理を、検索する分散データ問合わせ処理（図６：Ｂ２２）の実行完了後に実行する。即ち、検索データ受信処理（図６：Ｂ１０）において受信した検索内容から、レプリカデータ処理ノード３１自身に対する検索を実行する。
【０１０４】
この検索結果は、前述した検索データ及び検索結果取得処理（図６：Ｂ２６）に渡され、他の分散データと共に検索データマージ処理（図６：Ｂ２８）に渡される。レプリカ処理ノード３１は、検索データマージ処理（図６：Ｂ２８）において、検索データ及び検索結果取得処理（図６：Ｂ２６）で得られたレプリカデータ処理ノード３１が保持した分散データと検索データ及び検索結果取得処理（図６：Ｂ５０）で得られたレプリカ処理ノード３２，３３，及び３４の分散データとをマージする。
【０１０５】
そして、マージ結果であるマスターデータの複製は、検索データ送信処理（図６：Ｂ６０）に渡される。レプリカ処理ノード３１は、検索データ送信処理（図６：Ｂ６０）により、この結果をデータ検索要求ノード１１に送信する。
【０１０６】
上記検索要求ノード１１は、レプリカ処理ノード３１が検索データ送信処理（図６：Ｂ６０）により送信した検索結果を、検索データ受信処理（図６：Ｂ７０）において受信する。そして、検索データ判定処理（図６：Ｂ７２）において、検索結果の検索データは自分が検索要求したデータであることを判定し、これをもって検索データの受信処理を完了とする。
【０１０７】
ここで、上記第１実施形態にあっては、マスターデータ処理ノード２１に隣接するレプリカ処理ノード３１にバックアップ用のデータの分割数にかかる情報を保持するようにしたが、他のレプリカ処理ノード３２等に上記分割数にかかる情報を保持するように構成してもよい。
【０１０８】
又、上記各ノードのデータ処理にかかる各動作については、各ノードが備えている主制御部（例えば、ノード２１については主制御部２１Ｆ）が自ノードの各構成要素の動作を制御するように構成したが、この主制御部の制御動作を含めて前記各ノードにおける信号処理動作については、これをプログラム化し、各ノードに対応して予め装備したコンピュータにより実行するように構成してもよい。後述する第２，第３の各実施形態においても同様である。
【０１０９】
この第１実施形態では、上述したように、パケットの最大データサイズに基づいて分散保存するレプリカデータを分割送信するように構成したので、分割処理を円滑に実行することが出来るばかりでなく、レプリカデータ処理ノードとの相互間におけるに対するデータの転送および蓄積を効率よく実行することができ、マスターデータ処理ノードの障害発生時にも、マスターデータ処理ノード２１の代行がデータ検索要求ノード１１によって一義的に特定されるので、迅速に且つ確実にマスターデータの復元処理が可能となる。
【０１１０】
このように、本第１実施形態は上記のように構成され機能するので、これによると、バックアップ用として使用するレプリカデータのデータサイズをネットワーク１０や蓄積媒体（レプリカデータ処理ノード３１〜３４）に対応してパケットの最大サイズにより１又は２以上に分割して分散保持させる、即ち、パケットの最大データサイズを超えるレプリカデータについては、他のレプリカデータ処理ノードに蓄積するようにしたので、レプリカデータの転送・蓄積を効率良くすることができ、複数のレプリカデータ処理ノード３１〜３４へのデータ蓄積時にネットワーク１０にかかる負荷を軽減することができ、これにより、より大量データを扱うことができるようになるという上記関連技術にない優れた利点がある。
【０１１１】
更に、元のデータを保持するマスターデータ処理ノード２１が障害で動作不能となった場合でも、当該マスターデータの復元をネットワーク１０の負荷を増大させることなく迅速に成し得るという利点がある。
【０１１２】
〔第２実施形態〕
次に、本発明に係る情報処理システムの第２実施形態を、図７乃至図１０を参照して説明する。ここで、前述した第１実施形態の場合と同一の構成部材については同一の符号を用いるものとする。
【０１１３】
まず、図７において、情報処理システム２は、前述した第１実施形態の情報処理システム１の場合と同様に、インターネット等のネットワーク１０を介して接続された第１ノード（データ書込要求ノード）１１と、第２ノード（マスターデータ処理ノード）２２と、前記マスターデータのバックアップデータを保持する複数（本第２実施形態では４個）の第３ノード（レブリカデータ処理ノード）３１〜３４とを備えて構成されている。
【０１１４】
上記マスターデータ処理ノード（以下「マスター処理ノード」という）２２は、図８に示すように、送受信部２２Ａと、この分散送信するバックアップ用データを所定の条件で分割し前記送受信部２２Ａに送り込む分散データ生成部２２Ｂと、この分割前の前記バックアップ用データを保持する前述したデータ保持部２２Ｄと、これら各構成要素の動作を制御し且つマスターデータ処理ノード２２の外部に対する種々の動作機能を設定する主制御部２２Ｆと、第１および第２の各記憶部２２Ｄ，２２Ｅを備えて構成されている。
この図８に示すマスターデータ処理ノード２２の各構成要素は、前述した第１実施形態に示すマスターデータ処理ノード２１の各構成要素（図２参照）と同等に機能する構成要素となっている。
【０１１５】
そして、この内、分散データ生成部２２Ｂは、基本的には前述した図２における分散データ生成部２１Ｂと同様に複数の前記第３ノード３１〜３４に対して分散保持させるためのバックアップ用の送信データ（分割送信するに必要な分割データ）を生成する機能を備えている。
【０１１６】
一方、この第２実施形態では、データサイズが、前述した第１実施形態の場合と異なり、パケットの最大データサイズよりも小さいものを対象としている。具体的には、データサイズ７００Ｂ程度のデータを対象とし、パケットの最大データサイズは前述した第１実施形態の場合と同様に１５００Ｂとした。
そのため、本第２実施形における上記態分散データ生成部２２Ｂは、バックアップデータの生成に際しては、データ保存部２２Ｃからデータを分割することなく取り出して送受信部２２Ａへ送り出すように機能する。
その他の構成は、前述した第１実施形態の場合と同一となっている。
【０１１７】
（第２実施形態の動作）
次に、本第２実施形態の動作を説明する。
【０１１８】
まず、図７において、書込／検索要求ノード１１のデータ書込要求に従って、マスター処理ノード２２は(1) 及び(2) の処理を行う。即ち、マスター処理ノード２２が全てのデータを自ノードに保存すると共に、レプリカ処理ノード３１〜３３の内のレプリカ処理ノード３１にマスターデータのバックアップデータを配置する。
この第２実施形態では、データサイズがパケットの最大データサイズより小さい場合に限定してあるので、データの分散配置はしない。図７の(1) (2) は、この場合の状態を示すものである。
【０１１９】
（保存データ書込みのシーケンス）
図９は、図７に示す情報処理システム２にあって、保存データの書き込み手順を示すシーケンスである。
この図９において、まず、書込／検索要求ノード１１は、外部から送り込まれるデータ（マスターデータ）をデータ書込要求処理（図９：Ａ１０）によりデータ書込要求としてマスター処理ノード２２へ送る。
【０１２０】
マスター処理ノード２２は、このマスターデータをデータ受信処理（図９：Ａ２０）により送受信部２２Ａを介して受信する。そして、このマスター処理ノード２２は、マスターデータの書込要求に対応して、マスターデータ書込処理（図９：Ａ２２）によりデータベース（データ保存部２２Ｃ）に保存データとして書き込む。
【０１２１】
同時に、このマスター処理ノード２２は、正常に書き込まれた場合、書込結果送信処理（図９：Ａ２４）により、書込要求ノード１１に正常に書き込まれたことを通知する。
尚、マスターデータ書込処理（図９：Ａ２２）で正常に書き込めなかった場合、書込結果送信処理（図９：Ｓ２４）により正常に書き込めなかった旨のメッセージを書込要求ノード１１に通知する。
【０１２２】
書込要求ノード１１は、以下、前述した第１実施形態の場合と同様に、書込結果受信処理（図９：Ａ１２）、マスターデータ書込結果判定処理（図９：Ａ１４）、マスターデータ書込完了処理（図９：Ａ１６）を順次実行する。続いて、マスターデータ書込完了処理（図９：Ａ１６）においては、判定結果からマスターデータを正常に書込めた場合、書込要求ノード１１が格納していたマスター処理ノード２２に書き込む内容を消去し、マスターデータ書込み処理を完了させる。一方、正常に書き込めなかった場合には、マスターデータ書込完了処理（図９：Ａ１６）において、正常に書込めなかった旨のメッセージを通知する。
【０１２３】
次に、マスター処理ノード２２は、フィンガーテーブル確認処理（図９：Ａ２６）において、フィンガーテーブルを確認して、どのノード３１乃至３４にレプリカデータを分散すれば良いのかを決定する。
本第２実施形態の場合は、データサイズ７００Ｂに対してパケットの最大データサイズを１５００Ｂとしたので、一つのノード３１で必要充分となり、その結果は、分散データ・ハッシュ値／フィンガーテーブル送信処理（図９：Ａ４０）に渡される。
【０１２４】
この分散データ・ハッシュ値／フィンガーテーブル送信処理（図９：Ａ４０）において、マスター処理ノード２２は、分散データ及びハッシュ値を、フィンガーテーブル上に設定されたレプリカ処理ノード３１に対して送信する。
【０１２５】
以後、このレプリカデータ処理ノード３１は、前述した第１実施形態の場合（図６参照）と同様に、データ受信処理（図９：Ａ５０）、データ書込処理及びフィンガーテーブル受信処理（図９：Ａ５０）、データ書込処理及びフィンガーテーブル登録処理（図９：Ａ５２）を順次実行し、その結果をデータ書込完了通知処理（図９：Ａ５４）にて、マスター処理ノード２２に通知する。
【０１２６】
一方、レプリカデータ処理ノード３１のデータベース（データ保存部）に分散データが書き込まれなかった場合には、書き込まれなかったことが、データ書込処理及びフィンガーテーブル登録処理（図９：Ａ５２）からデータ書込完了通知処理（図９：Ａ５４）に通知される。
レプリカデータ処理ノード３１は、データ書込完了通知処理（図９：Ａ５４）によって、書込完了或いは書込未了の通知を、マスター処理ノード２２に通知する。
【０１２７】
これを受けて、マスター処理ノード２２は、データ書込み完了通知受信処理（図９：Ａ６０）において、レプリカ処理ノード３１からの書込完了あるいは書込未了の通知を受信する。この書込完了あるいは書込未了の通知は、データ書込み完了通知受信処理（図９：Ａ６０）から分散データ書込結果判定処理（図９：Ａ６２）に通知される。マスター処理ノード２２は、この分散データ書込結果判定処理（図９：Ａ６２）において、分散データが全ての分散先に正常に書き込まれたか否かを判定する。
【０１２８】
そして、マスター処理ノード２２は、判定結果から分散データを正常に書込めた場合には、分散データ書込完了処理（図９：Ａ６４）において、マスター処理ノード２２が格納していた分散データを消去し、分散データのレプリカ処理ノード３１への書込みを完了させる。
【０１２９】
（保存データ障害時のデータ検索について）
図１０にこれを示す。
本第２実施形態では、マスターデータのバックアップを単一のレプリカ処理ノード３１で実行するように構成したことから、この図１０における障害時のデータ検索については、レプリカ処理ノード３１に対する書込要求ノード１１による検索要求があって後、正常時の上記保存データ書込みのシーケンス（図９）の場合と同一の手順で、データ検索が順次実行される。
【０１３０】
尚、この場合、書込／検索要求ノード１１は、システムの安全確認の観点から、他のレプリカ処理ノード３２〜３４についても、データ所持有無の問い合わせを実行する構成とした。同時に、各レプリカ処理ノード３２〜３４は、データを所持していない場合（当然なれど）、データを所持していない旨、書込／検索要求ノード１１に送信する構成となっており、これによって、システム全体の実効ある確認動作が図られている。
【０１３１】
その他の構成およびその作用効果は、前述した第１実施形態の場合と同一となっており、同一目的を達成することが可能となっている。
【０１３２】
〔第３実施形態〕
次に、本発明に係る情報処理システムの第３実施形態を、図１１乃至図１５を参照して説明する。ここで、前述した第１実施形態の場合と同一の構成部材については同一の符号を用いるものとする。
【０１３３】
まず、図１１において、情報処理システム３は、前述した第１実施形態の情報処理システム１の場合と同様に、インターネット等のネットワーク１０を介して接続された第１ノード（データ書込要求ノード）１１と、第２ノード（マスターデータ処理ノード）２３と、前記マスターデータのバックアップデータを保持する複数（本第２実施形態では４個）の第３ノード（レブリカデータ処理ノード）３１〜３４とを備えて構成されている。
【０１３４】
上記マスターデータ処理ノード（以下「マスター処理ノード」という）２３は、図１２に示すように、送受信部２３Ａと、この分散送信するバックアップ用データを所定の条件で分割し前記送受信部２３Ａに送り込む分散データ生成部２３Ｂと、この分割前の前記バックアップ用データを保持する前述したデータ保持部２３Ｄと、これら各構成要素の動作を制御し且つマスターデータ処理ノード２３の外部の対する種々の動作機能を設定する主制御部２３Ｆと、第１および第２の各記憶部２３Ｄ，２３Ｅを備えて構成されている。
【０１３５】
この図１２に示すマスターデータ処理ノード２３の各構成要素は、前述した第１実施形態（図２）に示すマスターデータ処理ノード２１の各構成要素と同一に機能する構成要素となっている。
【０１３６】
そして、この内、分散データ生成部２３Ｂは、基本的には前述した図２における分散データ生成部２１Ｂと同様に複数の前記第３ノード３１〜３４に対して分散保持させるためのバックアップ用の送信データ（分割送信するに必要な分割データ）を生成する機能を備えている。
【０１３７】
又、この第３実施形態では、データサイズが、前述した第１実施形態の場合と同様に、パケットの最大データサイズよりも大きいものを対象としている。本第３実施形態では、データサイズがパケットの最大データサイズより大きいサイズのデータ、例えば４０００Ｂ程度のデータを対象とし、パケットの最大データサイズは前述した第１実施形態の場合と同様に１５００Ｂとした。
【０１３８】
そして、この場合の分散送信するデータの数は分散データ生成部２３Ｂで特定される。  更に、この第３実施形態では、複数の第３ノード全体をバックアップデータの分散保持の対象とすることを前提としており、従って、分割数の情報は送信しない構成とした。
その他の構成は、前述した第１実施形態の場合と同一となっている。
【０１３９】
（第３実施形態の動作）
次に、本第３実施形態の動作を説明する。
まず、図１１において、書込／検索要求ノード１１のデータ書込要求に従って、マスター処理ノード２３は(1) (2) 及び(3) の処理を行う。
【０１４０】
即ち、本第３実施形態では、マスター処理ノード２３が全てのデータを自ノードに保存しマスターデータすると共に、レプリカ処理ノード３１〜３４の全てを対象としてマスターデータのバックアップデータを分割保持させることを、前提としている。
【０１４１】
一方、この第３実施形態では、パケットの最大データサイズは前述した第１実施形態の場合と同様に１５００Ｂとし、マスターデータは例えばデータサイズ４０００Ｂのデータとした。従って、各ノードには、バックアップ用のデータが、マスター処理ノード２３の分散データ生成部２３Ｂでパケットの最大データサイズに分割されて第３ノード３１〜３４に分散保持されるように構成されている。
【０１４２】
この第３実施形態では、データサイズをパケットの最大データサイズより大きい場合に限定してあるので、データの分散配置がなされる。図１１の(1) (2) 及び(3) は、この場合の状態を示すものである。
【０１４３】
（保存データ書込みのシーケンス）
図１３は、図１１に示す情報処理システム３にあって、保存データの書き込み手順を示すシーケンスである。
この図９において、まず、書込／検索要求ノード１１は、外部から送り込まれるデータ（マスターデータ）をデータ書込要求処理（図１３：Ａ１０）によりデータ書込要求としてマスター処理ノード２３へ送る。
【０１４４】
マスター処理ノード２３は、このマスターデータをデータ受信処理（図１３：Ａ２０）により送受信部２３Ａを介して受信する。そして、このマスター処理ノード２３は、マスターデータの書込要求に対応して、マスターデータ書込処理（図１３：Ａ２２）によりデータベース（データ保存部２３Ｃ）に保存データとして書き込む。
【０１４５】
同時に、このマスター処理ノード２３は、正常に書き込まれた場合、書込結果送信処理（図１３：Ａ２４）にて、書込要求ノード１１に正常に書き込まれたことを通知する。
尚、マスターデータ書込処理（図１３：Ａ２２）で正常に書き込めなかった場合、書込結果送信処理（図１３：Ｓ２４）により正常に書き込めなかった旨のメッセージを書込要求ノード１１に通知する。
【０１４６】
書込要求ノード１１は、書込結果受信処理（図１３：Ａ１２）において書込結果を受信すると、前述した第１実施形態の場合と同様に、マスターデータ書込結果判定処理（図１３：Ａ１４）、マスターデータ書込完了処理（図１３：Ａ１６）を順次実行しマスターデータ書込完了する。
【０１４７】
次に、マスター処理ノード２１は、フィンガーテーブル確認処理（図１３：Ａ２６）において、フィンガーテーブルを確認して、どのノード３１乃至３４にレプリカデータを分散すれば良いのかを決定する。
本第３実施形態の場合は、データサイズ４０００Ｂに対してパケットの最大データサイズを１５００Ｂとしたので、三つのノード３１乃至３３で必要充分となる。マスター処理ノード２１によるこれらの判断は、主制御部２１Ｆによって実行される（図１３：Ａ２７）。
【０１４８】
このデータサイズ分割処理と共に各分割データの分散先ノードが決定されると、その後、データ分散処理（図１３：Ａ２８）に対して、どのノード３１乃至３３にレプリカデータを分散すれば良いのかを通知する。
【０１４９】
マスター処理ノード２３は、このデータ分散処理（図１３：Ａ２８）において、フィンガーテーブル確認処理（図１３：Ａ２６）から通知されたノードに分散するように、保存したマスターデータを所定数（図１の例では三つ）に分散する。
【０１５０】
そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理（データ分散処理／図１３：Ａ２８）から分散データ送信処理（図１３：Ａ４０）に渡される。
【０１５１】
この分散データ送信処理（図１３：Ａ４０）において、マスター処理ノード２３は、渡された分散データ及びハッシュ値を、フィンガーテーブル上に設定された各レプリカ処理ノード３１〜３３に対して送信する。
図１３の例では、レプリカデータ処理ノード３１〜３３の三つのノードに、分散データ及びハッシュ値を送信する。
【０１５２】
各レプリカデータ処理ノード３１〜３３は、データ受信処理（図３：Ａ５０）において、送信された分散データ及びハッシュ値を受信し、以後は、前述した第１実施形態の場合と同様に、データ書込処理及びフィンガーテーブル受信処理（図１３：Ａ５０）、データ書込処理及びフィンガーテーブル登録処理（図３：Ａ５２）、データ書込完了通知処理（図１３：Ａ５４）を順次実行する。そして、レプリカデータ処理ノード３１は、データ書込完了通知処理（図１３：Ａ５４）によって、書込完了或いは書込未了の通知を、マスター処理ノード２１に通知する。
【０１５３】
これを受けて、マスター処理ノード２３は、前述した第１実施形態の場合と同様に、データ書込み完了通知受信処理（図１３：Ａ６０）、分散データ書込結果判定処理（図１３：Ａ６２）分散データ書込完了処理（図１３：Ａ６４）を順次実行し、マスター処理ノード２１が格納していた分散データを消去し、分散データのレプリカ処理ノード３１〜３４への書込みを完了させる。
【０１５４】
尚、分散データが少なくとも１つのレプリカ処理ノード３１，３２，又は３３に対して正常に書き込めなかった場合は、正常に書込めなかった旨のメッセージを書込要求ノード１１等に通知する。
【０１５５】
（保存データ障害時の分散データ検索例）
図１４に、保存データ障害時における分散データ検索の一例を示す。
この図１４の例では、データの検索中に障害が発生したマスター処理ノード２３の検索処理を代行するレプリカ処理ノード３１が、分散データを集めてデータ復元のためのマージ(merge：併合）を行ない、その結果を検索要求ノード１１に送信する。
【０１５６】
この図１４においても、前述した第１実施形態の場合と同様に、(1) (2) が順次実行される。ここで、障害が発生したマスター処理ノード２３の代行を、本第３実施形態でも、図１３のように右回り（時計回り）の次のレプリカ処理ノード３１に設定する。
【０１５７】
そして、検索要求ノード１１から検索要求を受けたレプリカ処理ノード３１は、故障したマスター処理ノード２３の代わりに、(3) のように、マスター処理ノード２３のフィンガーテーブルに基づいてレプリカを保持する各レプリカ処理ノード３２，３３，又は３４に検索要求を行う。
この図１４の (3)の処理では、検索要求を受けた各レプリカ処理ノード３２，３３，又は３４は、検索要求元のレプリカデータ処理ノード３１に検索結果を返す。
【０１５８】
自ノード以外のレプリカ処理ノード３２〜３４から検索した分散データが返送されると、レプリカデータ処理ノード３１は、図１４の(5) のように、要求元のレプリカデータ処理ノード３１は、自ノードに保持している分散データと他のレプリカデータ処理ノード３２〜３４からの分散データとを併合する。
【０１５９】
そして、レプリカ処理ノード３１は、併合して復元したマスターデータの複製を検索要求ノード１１に検索結果として送信する。
このようにして、検索要求ノード１１は、マスター処理ノード２３に保存したマスターデータと同一のマスターデータを復元し取得することができる。
【０１６０】
（保存データ障害時の分散データ検索の具体例）
次に、上記保存データ障害時の分散データ検索（図１４の検索動作）の具体例を、図１５のシーケンス図を参照して説明する。
【０１６１】
まず、検索要求ノード１１は、レプリカ処理ノード３１に対してデータ検索要求処理（図１５：Ｂ１）によるデータ検索要求を発信する。これを、レプリカ処理ノード３１は、検索データ受信処理（図１５：Ｂ１０）により受信する。
【０１６２】
続いて、レプリカ処理ノード３１は、前述した第１実施形態の場合（図６）と同様に、フィンガーテーブル確認処理（図１５：Ｂ２０）、検索する分散データ問い合わせ処理（Ｓ７２３／図１５：Ｂ２２）、を順次実行し、検索する分散データ問い合わせ処理（図１５：Ｂ２２）において、フィンガーテーブルの情報に基づいて検索要求を行うレプリカ処理ノードを特定する。図１５の例では、レプリカ処理ノード３２，３３，及び３４を特定する。
【０１６３】
そして、検索する分散データ問い合わせ処理（図１５：Ｂ２２）から、特定したレプリカデータ処理ノード３２，３３，及び３４の情報と検索する分散データを特定可能なハッシュ値とを、分散データ内容送信処理（図１５：Ｂ３０）に渡す。この分散データ内容送信処理（ハッシュ値送信処理／図１５：Ｂ３０）において、各分散データを検索する検索キーとなるハッシュ値を送信することにより、特定されたレプリカ処理ノード３２，３３，及び３４に対して分散データの検索要求を行う。
【０１６４】
検索要求を受けたレプリカ処理ノード３２，３３，及び３４は、前述した第１実施形態の場合と同様に、分散データ内容受信処理（ハッシュ値受信処理／図１５：Ｂ４０）、データ検索処理（図１５：Ｂ４２）、検索データ及び検索結果取得処理（図１５：Ｂ４４）、検索データ送信処理（図１５：Ｂ４６）を順次実行する。そして、検索データ送信処理（図１５：Ｂ４６）では、検索された分散データ及び検索結果の情報等を前述したレプリカ処理ノード３１に返信する。
【０１６５】
レプリカ処理ノード３１は、検索データ及び検索結果受信処理（図１５：Ｂ５０）において、各レプリカ処理ノード３２，３３，及び３４の検索データ送信処理（図１５：Ｂ４６）からの分散データ及び検索結果の情報等を受信する。この受信した情報は、検索データ及び検索結果受信処理（図１５：Ｂ５０）から検索データマージ処理（図１５：Ｂ２８）に渡される。
【０１６６】
一方、このレプリカ処理ノード３１は、他のレプリカ処理ノード３２，３３，及び３４への分散データの検索要請と並行して、データ検索処理（図１５：Ｂ２４）以降の処理を、検索する分散データ問合わせ処理（図１５：Ｂ２２）の実行完了後に実行する。即ち、検索データ受信処理（図１５：Ｂ１０）において受信した検索内容から、レプリカデータ処理ノード３１自身に対する検索を実行する。
【０１６７】
この検索結果は、前述した検索データ及び検索結果取得処理（図１５：Ｂ２６）に渡され、他の分散データと共に検索データマージ処理（図１５：Ｂ２８）に渡される。レプリカ処理ノード３１は、検索データマージ処理（図１５：Ｂ２８）において、検索データ及び検索結果取得処理（図１５：Ｂ２６）で得られたレプリカデータ処理ノード３１が保持した分散データと検索データ及び検索結果取得処理（図１５：Ｂ５０）で得られたレプリカ処理ノード３２，３３，及び３４の分散データとを併合され、マスターデータが複製される。
【０１６８】
そして、このマスターデータの複製を、レプリカ処理ノード３１は、検索データ送信処理（図１５：Ｂ６０）を介して検索要求ノード１１に送信する。
【０１６９】
上記検索要求ノード１１は、レプリカ処理ノード３１が検索データ送信処理（図１５：Ｂ６０）により送信した検索結果を、検索データ受信処理（図１５：Ｂ７０）において受信する。そして、検索データ判定処理（図１５：Ｂ７２）において、検索結果の検索データは自分が検索要求したデータであることを判定し、これをもって検索データの受信処理を完了とする。
【０１７０】
この第３実施形態でも、前述した第１実施形態の場合と同様に、パケットの最大データサイズに基づいて分散保存するレプリカデータを分割送信するように構成したので、分割処理を円滑に実行することが出来るばかりでなく、レプリカデータ処理ノードとの相互間におけるに対するデータの転送および蓄積を効率よく実行することができ、マスターデータ処理ノードの障害発生時にも、マスターデータ処理ノード２１の代行がデータ検索要求ノード１１によって一義的に特定されるので、迅速に且つ確実にマスターデータの復元処理が可能となる。
【０１７１】
〔第４実施形態〕
次に、本発明に係る情報処理システムの第４実施形態を図１６乃至図２２を参照して説明する。
【０１７２】
この第４実施形態は、上述した第１乃至第３の各実施形態においてその要部を構成するノードである情報処理装置２１（又は２２，２３）のハードウェア構成の一例を示すものである。
このため、ここでは、前述した第１実施形態（図１乃至図６）における情報処理装置１の具体例として、以下、説明する。
【０１７３】
まず、図１６において、情報処理装置１は、外部に対するバックアップデータの分割生成および送受信を実行する通信制御部２１Ｇと、この通信制御部２１Ｇで必要とする各種プログラムおよび必要なデータを保持するストレージ２１Ｓと、受信および送信の各メッセージ及び必要な情報処理データを格納する第２の記憶部（ＲＡＭ）２１Ｅと、初期データや所定の動作制御プログラム等を記憶する第１の記憶部（ＲＯＭ）２１Ｄと、これら各構成部分の動作を規制し制御するＣＰＵから成る主制御部２１Ｆとを備えている。
【０１７４】
ここで、通信制御部２１Ｇは、図２における送受信制御部２１Ａと分散データ生成部２１Ｂとを含んで構成されている。また、ストレージ２１Ｓは、図２におけるデータ保存部２１Ｃと第１記憶部２１Ｄの一部とを含んで構成されている。
【０１７５】
以下、これを更に詳述する。
図１６において、ＣＰＵ（主制御部）２１Ｆは、演算制御用のプロセッサであり、第１の記憶部（ＲＯＭ）２１Ｄに記憶されたプログラムを実行することで、図２の各機能構成部を実現する。
【０１７６】
ＲＯＭ２１Ｄは、初期データ及びプログラムなどの固定データ及びプログラムを記憶する。通信制御部２１Ｇは、ネットワーク１０を介して他のノードと通信する。この通信制御部２１Ｇは、本Ｐ２Ｐ方式のネットワーク１０の外部にある他のネットワークや装置との通信をしてもよい。通信は無線でも有線でもよい。
【０１７７】
ＲＡＭ（第２の記憶部）２１Ｅは、ＣＰＵ２１Ｆが一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ２１Ｅには、本第４実施形態の実現に必要なデータを記憶する領域が確保されている。領域は、大きく分けて、受信メッセージ１４１用と、送信メッセージ１４６用と、本第４実施形態では対象としない情報処理データとを含む。
【０１７８】
ＲＡＭ２１Ｅの受信メッセージ１４１としては、書込／検索する受信データ１４２と、である受信データから算出されるハッシュ値１４３と、例えば、データ書込／検索要求ノード１１が障害支援ノードとなったレプリカデータ処理ノード３１から受信するフィンガーテーブル２２４と、分散データを送信する検索データ送信先１４５とを含んで構成されている。又、レプリカデータ処理ノード３１がマスターデータ処理ノード２１から受信するフィンガーテーブル２２４を含んで構成されている。前述した受信データ１４２には分散データも含まれる。
【０１７９】
又、ＲＡＭ２１Ｅの送信メッセージ１４６としては、書込／検索する送信データ１４７と、送信データから算出されるハッシュ値１４８と、例えば、障害支援ノードとなったレプリカデータ処理ノードからデータ書込／検索要求ノード２１０に送信するフィンガーテーブル２２４とを含んで構成されている。又、マスターデータ処理ノード２１からレプリカデータ処理ノード３１乃至３４に送信するフィンガーテーブル２２４も含んで構成されている。ここで、前述した送信データ１４７は分散データも含まれる。
【０１８０】
尚、受信メッセージ１４１及び送信メッセージ１４６については、本第４実施形態に重要な一部のデータ要素を示したのみであり、他のデータ要素も随時に使用される（図２１参照）。
【０１８１】
ストレージ２１Ｓには、データベースや各種のパラメータ、或いは本第４実施形態の実現に必要な以下のデータ又はプログラム、即ち、マスターデータ処理ノードテーブル１５１と、フィンガーテーブル保持部１５２と、ハッシュテーブル２２５と、保存データＤＢ（分散データも含む）２１Ｃとが格納されている。
【０１８２】
ここで、マスターデータ処理ノードテーブル１５１は、データ書込／検索要求ノードがデータの書込／検索を行なう先を、そのデータの内容や形式に対応して設定するテーブルである。フィンガーテーブル保持部１５２は、予め保持する或いは他ノードから送信されたフィンガーテーブルを保持するテーブル保持部である。ハッシュテーブル２２５は、保存あるいは保持したデータを検索するための検索キーとして、データに対応付けられて記憶する。保存データＤＢ（分散データも含む）２１Ｃは、保存あるいは保持したデータを検索可能に蓄積するテーブルである。
【０１８３】
更に、このストレージ１５０には、情報処理プログラム（例、図２２参照）１５５と、データ書込／検索要求ノード実行モジュール１５６と、マスターデータ処理ノード実行モジュール１５７と、レプリカデータ処理ノード実行モジュール１５８とが格納されている。
【０１８４】
ここで、情報処理プログラム１５５は、全体の処理を実行させる本第４実施形態の書込／検索以外の処理も含む情報処理を行なうプログラムである（図２２参照）。データ書込／検索要求ノード実行モジュール１５６は、情報処理プログラム１５５において、情報処理装置がデータ書込／検索要求ノード１１として動作する場合に実行されるデータ書込／検索要求ノード実行モジュールである。
【０１８５】
更に、マスターデータ処理ノード実行モジュール１５７は、情報処理プログラム１５５において、情報処理装置がマスターデータ処理ノード２１として動作する場合に実行されるマスターデータ処理ノード用の実行モジュールである。更に、レプリカデータ処理ノード実行モジュール１５８は、情報処理プログラム１５５において、情報処理装置がレプリカデータ処理ノードとして動作する場合に実行されるレプリカデータ処理ノード用の実行モジュールである。
尚、上記図１６には、本第４実施形態に必須なデータやプログラムのみが示されており、ＯＳなどの汎用のデータやプログラムは図示されていない。
【０１８６】
（マスターデータ処理ノードテーブル）
図１７は、マスターデータ処理ノードテーブル１５１の構成を示す図である。
かかるマスターデータ処理ノードテーブル１５１は、データ書込／検索要求ノード１１がデータファイルの内容や形式などから、マスターデータ処理ノード２１を決定するために使用する。
【０１８７】
尚、前述した第１実施形態では、マスターデータ処理ノード２１は、ひとまず固定したノードのように示したが、実際には、データ書込／検索要求ノード１１がデータファイルの内容や形式などから決定する。なぜなら、マスターデータのＤＢ（データベース）などの作成に当たっては、同種あるいは同形式のデータを管理するのが効率的である。更に、１つのノードをマスターデータ処理ノード専用にするのではなく、全てのノードがマスターデータを分散管理することで、ノードへの負荷を分散することができる。
【０１８８】
図１７において、マスターデータ処理ノードを決める条件として、ファイル内容１５１Ａやファイル形式１５１Ｂのそれぞれ又はその組合せに対応付けて、マスターデータ処理ノードとなるノードのノードＩＤが記憶されている。
【０１８９】
（フィンガーテーブル及びフィンガーテーブル格納部）
図１８は、フィンガーテーブル２２４及びフィンガーテーブル格納部１５２の構成を示す図表である。
【０１９０】
図１８のフィンガーテーブル２２４は、分散データ書込元ノードＩＤ２２４Ａに対応して分散データ書込先ノードＩＤ２２４Ｂのセットが記憶されている。
尚、フィンガーテーブルについては、図１８の構成に限定することはなく、分散データの書込元と書込先との関連が記述されていればよい。
【０１９１】
図１８のフィンガーテーブル格納部１５２は、上記構成のフィンガーテーブルのどれを分散データの分散書込に使用したかを、ファイル名に対応付けて記録する。各データのファイル名１５２Ａに対応付けて使用したフィンガーテーブル１５２Ｂが記憶される。もし、ノードによって使用するフィンガーテーブルが固定であるなら、書込元ノードＩＤに対応付けてフィンガーテーブルを記憶することになる。
【０１９２】
（検索データの送信先）
図１９は、検索データ送信先情報１４５の構成を示す図である。
【０１９３】
この検索データ送信先情報１４５は、マスターデータ処理ノードに障害が発生した場合に代替して分散データを検索するレプリカデータ処理ノードからの検索要請に対して、各レプリカデータ処理ノードが分散データを何処に送信するかの送信先を記憶する。
この図１９においては、書込／検索するデータのファイル名１４５Ａに対応付けて検索した分散データの送信先ノードＩＤ１４５Ｂが記憶されている。ここで、送信先ノードＩＤ１４５Ｂはレプリカデータ処理ノード３１およびデータ書込／検索要求ノード１１の送信先を示している。
【０１９４】
尚、上記図１９は、ファイル名に対応付けて送信先を設定しているが、例えば、マスターデータ処理ノードがどれか、代替のレプリカデータ処理ノードがどれか、データ書込／検索要求ノードがどれか、などに対応付けてもよい。さらに、システムの設計に従った対応付けが可能である。
【０１９５】
（ハッシュテーブル及び保存データ）
図２０は、ハッシュテーブル２２５及び保存データ１５４の構成を示す図表である。
【０１９６】
この図２０に示すハッシュテーブル２２５は、ハッシュ値の比較によりデータを検索し、ハッシュ値が一致したデータファイルを検索データとするための検索キーテーブルである。データファイルに対して別途にＩＤなどの検索キーを付すのではなく、データの内容から算出されたハッシュ値を検索キーとすることで、容易に検索キーを付すことができると共に、秘匿性が優れている。
【０１９７】
このハッシュテーブル２２５は、ハッシュ値２２５Ａに対応付けられてファイル名が記憶されている。各ノードは、検索を要請されたデータファイルのハッシュ値により一致するハッシュ値のファイルを探し出し、保存データＤＢからそのファイルを読み出すことができる。
【０１９８】
（各ノード間の送信メッセージ）
図２１は、各ノード間の送信メッセージ１４６の構成を示す図表である。
図２１の送信メッセージ５１０は、データ書込／検索要求ノードから送信される送信メッセージである。符号５１１はマスターデータ処理ノードへの書込要求の送信メッセージの構成を示している。ここで、括弧で示した「分散データ送信先」は、データ書込／検索要求ノード１１が主導して分散データ報告先を指定する場合に使用されるが、マスターデータ処理ノード２１が予め保持している場合や、データ内容やデータ形式から決定される場合は、使用されない。
【０１９９】
符号５１２は、マスターデータ処理ノードや障害時にレプリカデータ処理ノードの１つである障害支援ノードに送信される検索要求の送信メッセージである。検索要求がいずれによるかに対応して、マスターデータ処理ノード２１への正常な検索要求であるか／障害支援ノードへの障害支援の検索要求であるかを示すデータ以外は共通である。なお、括弧で示した「分散データ送信先」は、書込要求と同様である。
【０２００】
この図２１の送信メッセージ５２０は、マスターデータ処理ノード２１から送信される送信メッセージである。符号５２１は、データ保存後にレプリカデータ処理ノードに送信される分散データ書込要求の送信メッセージである。尚、ここでは、フィンガーテーブルも分散データと共に送信される。
【０２０１】
又、図２１の送信メッセージ５３０は、レプリカデータ処理ノードの１つである障害支援ノーから送信される送信メッセージである。符号５３１は、フィンガーテーブルにより確定した他のレプリカデータ処理ノードへの分散データ検索要求の送信メッセージである。符号５３２は、分散データの送信先が要求元と異なり、データ書込／検索要求ノード１１である場合のフィンガーテーブルの送信メッセージである。
【０２０２】
《各ノードとして動作する情報処理装置の処理手順》
図２２は、情報処理プログラムの処理手順を示すフローチャートである。
まず、ステップＳ６１０において、自装置内部からあるいは外部装置からデータをシステム内に書き込む指示があったか／データを検索する指示があったかを判定する。データ書込またはデータ検索の指示があればステップＳ６１２に進んで、まず、情報処理装置は、データ書込／検索要求ノード１１として動作する。
【０２０３】
次に、ステップＳ６２０において、他のノードからデータを書き込む指示があったか／データを検索する指示があったかを判定する。データ書込又はデータ検索の指示があればステップＳ６２２に進んで、情報処理装置はマスターデータ処理ノード２１として動作する。
【０２０４】
次に、ステップＳ６３０において、他のノードから分散データを書き込む指示があったか／分散データを検索する指示があったかを判定する。分散データ書込又は分散データ検索の指示があればステップＳ６３２に進んで、情報処理装置１はレプリカデータ処理ノードとして動作する。
【０２０５】
以上のように、前述した第１実施形態の具体例として本第４実施形態を説明したが、
このようにしても、前述した第１実施形態と同等の作用効果を備えた情報処理システムを得ることができ、前述した目的を有効に達成することができる。
【０２０６】
〔他の実施形態〕
以上、本発明の実施形態について詳述したが、それぞれの実施形態に含まれる別々の特徴をいかように組み合わせたシステム又は装置も、本発明の範疇に含まれる。
【０２０７】
また、本発明は、複数の機器から構成されるシステムに適用されても良いし、単体の装置に適用されても良い。さらに、本発明は、実施形態の機能を実現する制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされる制御プログラム、あるいはその制御プログラムを格納した媒体、その制御プログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。
【０２０８】
上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、本発明は、その内容をこれに限定するものではない。
【０２０９】
〔付記１〕
Ｐ２Ｐ方式のネットワークに接続された複数のノードを備え、前記各ノードの内の一のノードが備えているデータを複製して二重に保持する情報処理システムであって、
前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとを備え、
前記第２ノードが、
前記第１ノードにより書込を指示されたデータを予め保存するデータ保存部と、
この保存したデータのバックアップデータを１又は２以上の前記第３ノードに分けて送信し分散保持させる送受信制御部と、
このデータの分割送信に際して事前に機能し当該データのバックアップデータをパケットの最大サイズにより１又は２以上に分割する分散データ生成部とを備えていることを特徴とした情報処理システム。
【０２１０】
〔付記２〕
付記１に記載の情報処理システムにおいて、
前記第１ノードをデータ書込要求ノードとすると共に、前記第２ノードをマスターデータ処理ノードとし、
このマスターデータ処理ノードが、隣接する前記一の第３ノードに対して、前記１又は２以上の第３ノードを識別可能な分散識別情報を、前記データの分割送信に対応させて送信処理することを特徴とした情報処理システム。
【０２１１】
〔付記３〕
付記２に記載の情報処理システムにおいて、
前記第３ノードにかかる前記分散識別情報は、前記マスターデータ処理ノードが予め備えている記憶部のファインテーブルに予め格納されていることを特徴とした情報処理システム。
【０２１２】
〔付記４〕
請求項３に記載の情報処理システムにおいて、
前記データ書込要求ノードは、
前記マスターデータ処理ノードに障害が発生した場合に稼働して前記一の第３ノードに対して、前記複数の第３ノードが保持する前記各分散データの読出し及び収集を指令する読出／収集指令機能を備えていることを特徴とした情報処理システム。
【０２１３】
〔付記５〕
請求項４に記載の情報処理システムにおいて、
前記一の第３ノードは、
前記分散識別情報に基づいて他の前記複数の第３ノードを特定すると共に当該複数の第３ノードが保持するデータを検索して返信するように指令する返信指令送信機能と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとを併合して前記マスターデータ処理ノードに保存している前記マスターデータと同一のマスターデータを復元するデータ復元処理機能と、
前記復元されたマスターデータを前記データ書込要求ノードに送信する復元データ送信処理機能とを有することを特徴とした情報処理システム。
【０２１４】
〔付記６〕
請求項４に記載の情報処理システムにおいて、
前記一の第３ノードは、
前記分散識別情報に基づいて他の前記複数の第３ノードを特定し、当該複数の第３ノードに分散保持させたデータを検索して前記データ書込要求ノードに返信するように指示する返信指示処理機能と、
前記分散識別情報を前記データ書込要求ノードに通知する分散識別情報通知処理機能と、
自ノードに分散保持されたデータを前記データ書込要求ノードに送信する自データ送信処理機能とを有し、
前記データ書込要求ノードは、前記分散識別情報に基づいて前記複数の第３ノードから返信されたデータを併合して前記マスターデータ処理ノードに保存されている前記マスターデータを復元する復元処理機能を有することを特徴とした情報処理システム。
【０２１５】
〔付記７〕
請求項１乃至６の何れか１項に記載の情報処理システムにおいて、
前記データ書込要求ノードは、外部入力されるデータを保存するノードとして前記Ｐ２Ｐ方式のネットワークに接続された複数のノードから前記第２ノードであるマスターデータ処理ノードを予め選択する選択処理機能を、更に有することを特徴とした情報処理システム。
【０２１６】
〔付記８〕
請求項１乃至６の何れか１項に記載の情報処理システムに装備され、前記第１ノード、前記第２ノード、及び前記第３ノードの少なくとも何れか一つのノードとして機能することを特徴とした情報処理装置。
【０２１７】
〔付記９〕
Ｐ２Ｐ方式のネットワークに装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置であって、
前記情報処理システムが備えている第１ノードにより書込を指示された場合に当該第１ノードから送り込まれるマスターデータを保存する機能を備えたデータ保存部と、
このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備されたバックアップ用の１又は２以上の第３ノードに分けて送信し分散保持させる送受信制御部と、
このデータの分割送信に際して機能し、パケットの最大サイズにより１又は２以上に分割する分散データ生成部と、を備えていることを特徴とした情報処理装置。
【０２１８】
〔付記１０〕
Ｐ２Ｐ方式のネットワークに接続された複数のノードを備え、前記各ノードの内の一のノードが有するマスターデータを複製して二重に保持する情報処理システムにあって、
前記複数のノードとして、前記データの書込及び検索を指示する第１ノードと、この第１ノードによって書込を指示されたデータを保存し前記第１ノードの検索の指示に従って該データを読み出す前記一のノードである第２ノードと、前記第２ノードに保存されたデータを複製して保持する１又は２以上の第３ノードとが予め設置されており、
外部からの指令に基づいて前記第１ノードが稼働し、前記第２ノードに対して前記保存用のデータの書込（及び検索）を指令し、
この第１ノードの指令に従って前記第２ノードが稼働し、前記第１ノードからの書込指令の対象であるマスターデータを予め装備されたデータ保存部に保存し、
次に、この保存したマスターデータを前記各第３ノードに対応して複数に分割すると共に前記第２ノードの送受信制御部が前記各第３ノードにバックアップ用として送信しそれぞれに分散保持させるようにし、
このマスターデータの前記分割に際しては、前記第２ノードの分散データ生成部が稼働し、パケットの最大サイズにより１又は２以上に分割するようにしたことを特徴とするマスターデータのバックアップ方法。
【０２１９】
〔付記１１〕
Ｐ２Ｐ方式のネットワークに装備され、バックアップの対象となるマスターデータを保持する機能を備えると共に、当該マスターデータを複製して二重に保持する情報処理システムの一部を構成する一の情報処理装置にあって、
前記情報処理システムが備えている第１ノードによりデータ書込を指示された場合に当該第１ノードから送り込まれるマスターデータをデータ保存部に保存するデータ保存制御機能、
このデータ保存部に保存されたマスターデータを分割して前記ネットワーク上に連結装備された複数の第３ノードに送受信制御部を介してそれぞれバックアップ用として分散送信するデータ分散送信制御機能、
このデータの分散送信に先立って成される前記マスターデータの分割処理では、パケットの最大サイズにより１又は２以上に分割する構成とし、
これらの各制御機能および制御内容を、予め装備したコンピュータに実現させるようにしたことを特徴とする複製データ分散送信用制御プログラム。
【図１】
2014157397.tif 000003
【図２】
2014157397.tif 000004
【図３】
2014157397.tif 000005
【図４】
2014157397.tif 000006
【図５】
2014157397.tif 000007
【図６】
2014157397.tif 000008
【図７】
2014157397.tif 000009
【図８】
2014157397.tif 000010
【図９】
2014157397.tif 000011
【図１０】
2014157397.tif 000012
【図１１】
2014157397.tif 000013
【図１２】
2014157397.tif 000014
【図１３】
2014157397.tif 000015
【図１４】
2014157397.tif 000016
【図１５】
2014157397.tif 000017
【図１６】
2014157397.tif 000018
【図１７】
2014157397.tif 000019
【図１８】
2014157397.tif 000020
【図１９】
2014157397.tif 000021
【図２０】
2014157397.tif 000022
【図２１】
2014157397.tif 000023
【図２２】
2014157397.tif 000024