JP2012178015A - Information processing system, data backup method, information processor, and control method and control program of the same - Google Patents

Information processing system, data backup method, information processor, and control method and control program of the same Download PDF

Info

Publication number
JP2012178015A
JP2012178015A JP2011040115A JP2011040115A JP2012178015A JP 2012178015 A JP2012178015 A JP 2012178015A JP 2011040115 A JP2011040115 A JP 2011040115A JP 2011040115 A JP2011040115 A JP 2011040115A JP 2012178015 A JP2012178015 A JP 2012178015A
Authority
JP
Japan
Prior art keywords
data
node
distributed
search
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011040115A
Other languages
Japanese (ja)
Other versions
JP5655628B2 (en
Inventor
Ryuichi Nagano
竜一 永野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011040115A priority Critical patent/JP5655628B2/en
Publication of JP2012178015A publication Critical patent/JP2012178015A/en
Application granted granted Critical
Publication of JP5655628B2 publication Critical patent/JP5655628B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To restore data without biasing loads on a node even when a node preserving the data becomes inoperable due to a fault in an information processing system of a P2P system.SOLUTION: In the information processing system, a plurality of nodes are connected to a network of the P2P system and data are duplicated and held doubly. The information processing system includes a first node for instructing write and retrieval of data, a second node for preserving the data for which write is instructed by the first node and reading the data according to the instruction of the retrieval by the first node, and a third node for duplicating and holding the data preserved in the second node. The second node includes a preservation part for preserving the data for which the write is instructed by the first node to the own node, and a transmission part for dividing the preserved data, transmitting it to the plurality of third nodes to be distributed and held, and transmitting distribution identification information capable of identifying the plurality of third nodes in which the preserved data is distributed and held to at least one of the plurality of third nodes.

Description

本発明は、情報処理システムにおける情報分散によるデータバックアップの技術に関する。   The present invention relates to a data backup technique using information distribution in an information processing system.

上記技術分野において、特許文献1には、ネットワークに接続された複数のPOSの各メモリの内容を、他のPOSに圧縮して分散保持する技術が開示されている。特許文献1においては、自メモリの障害を他のPOSの分散保持された圧縮データにより復元する。また、非特許文献1には、P2P(Peer-to-peer)方式のシステムにおいて、フィンガーテーブルによりデータの分散保持を行なうことが記載されている。さらに、特許文献2には、P2P方式のシステムにおいて、分散ハッシュテーブル(DHT:Distributed Hash Table)により分散データを管理することが開示されている。   In the above technical field, Patent Document 1 discloses a technology for compressing and storing the contents of each memory of a plurality of POSs connected to a network into other POSs. In Patent Document 1, a failure of its own memory is restored by using compressed data that is distributed and held by other POSs. Non-Patent Document 1 describes that data is distributed and held by a finger table in a P2P (Peer-to-peer) system. Furthermore, Patent Document 2 discloses managing distributed data using a distributed hash table (DHT) in a P2P system.

特開2003−067232号公報JP 2003-067232 A 特表2010−519630号公報Special table 2010-519630

Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan (2001). “Chord: A scalable peer-to-peer lookup service for internet applications”. ACM SIGCOMM Computer Communication Review 31 (4): 149 - 160. New York, NY, USA: ACM Press.Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan (2001). “Chord: A scalable peer-to-peer lookup service for internet applications”. ACM SIGCOMM Computer Communication Review 31 (4): 149-160 New York, NY, USA: ACM Press.

しかしながら、特許文献1には、メモリの障害が考慮されるのみで、コントローラの障害によりPOS全体が動作不能になった場合のデータ回復については示されていない。あくまで、他のPOSに対してデータを分散したPOS自身がその分散先から分散データを集める技術である。この特許文献1の技術に、非特許文献1のフィンガーテーブルや特許文献2のDHTを組み合わせたとしても、データを保存する装置全体が動作不能になった場合のデータ回復の技術に対するヒントは得られない。   However, Patent Document 1 only considers a memory failure, and does not show data recovery when the entire POS becomes inoperable due to a controller failure. To the last, the POS that has distributed data to other POSs is a technology that collects distributed data from the distribution destination. Even if the technique of Patent Document 1 is combined with the finger table of Non-Patent Document 1 or the DHT of Patent Document 2, hints for the data recovery technique when the entire device for storing data becomes inoperable can be obtained. Absent.

一方、従来のP2P方式のシステムにおいて、データを保存するノードが動作不能になった場合のデータ回復の技術では、障害のためシステムから外されたノードの直近に存在する一部の特定ノードに対してデータ移管の処理が行われていた。そのため、データ移管をするノードに多大な負荷がかかっていた。   On the other hand, in the conventional P2P system, in the data recovery technique when the data storage node becomes inoperable, some specific nodes existing in the immediate vicinity of the node removed from the system due to the failure Data transfer processing was performed. For this reason, a large load is applied to the node to which data is transferred.

本発明の目的は、上述の課題を解決する技術を提供することにある。   The objective of this invention is providing the technique which solves the above-mentioned subject.

上記目的を達成するため、本発明に係るシステムは、
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムであって、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、
を有することを特徴とする。
In order to achieve the above object, a system according to the present invention provides:
An information processing system including a plurality of nodes connected to a P2P network, duplicating data and holding it in duplicate,
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
Storage means for storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner Transmitting means for transmitting to at least one of the plurality of third nodes;
It is characterized by having.

上記目的を達成するため、本発明に係る方法は、
複数のノードがP2P方式のネットワークに接続され、データを複製して2重に保持する情報処理システムのバックアップ方法であって、
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含むことを特徴とする。
In order to achieve the above object, the method according to the present invention comprises:
A backup method for an information processing system in which a plurality of nodes are connected to a P2P network and duplicated and retained in duplicate.
The information processing system is
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
A storing step of storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner A transmission step of transmitting to at least one of the plurality of third nodes.

上記目的を達成するため、本発明に係る装置は、
上記情報処理システムにおける、前記第1ノード、前記第2ノード、及び前記第3ノードの少なくとも何れか一つのノードとして機能することを特徴とする。
In order to achieve the above object, an apparatus according to the present invention provides:
The information processing system functions as at least one of the first node, the second node, and the third node.

上記目的を達成するため、本発明に係る他の方法は、上記情報処理装置の制御方法であって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
を有することを特徴とする。
In order to achieve the above object, another method according to the present invention is a method of controlling the information processing apparatus,
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
It is characterized by having.

上記目的を達成するため、本発明に係るプログラムは、
上記情報処理装置の制御プログラムであって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
をコンピュータに実行させることを特徴とする。
In order to achieve the above object, a program according to the present invention provides:
A control program for the information processing apparatus,
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
Is executed by a computer.

本発明によれば、P2P方式の情報処理システムにおいて、データを保存するノードが障害で動作不能となった場合であっても、データ回復をノードへの負荷を偏らせることなく実現することができる。   According to the present invention, in a P2P information processing system, even when a node that stores data becomes inoperable due to a failure, data recovery can be realized without biasing the load on the node. .

本発明の第1実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データの書込を示す図である。It is a figure which shows writing of preserve | saved data in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データの書込の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of writing of preserve | saved data in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データの正常検索を示す図である。It is a figure which shows the normal search of preserve | saved data in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索の一例を示す図である。It is a figure which shows an example of the distributed data search at the time of a preservation | save data failure in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索の一例の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of an example of the distributed data search at the time of a preservation | save data failure in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索の他例を示す図である。It is a figure which shows the other example of the distributed data search at the time of a preservation | save data failure in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索の他例の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the other example of the distributed data search at the time of storage data failure in the information processing system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る各ノードとして動作する情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus which operate | moves as each node which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るマスターデータ処理ノードテーブルの構成を示す図である。It is a figure which shows the structure of the master data processing node table which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るフィンガーテーブル及びフィンガーテーブル格納部の構成を示す図である。It is a figure which shows the structure of the finger table and finger table storage part which concern on 2nd Embodiment of this invention. 本発明の第2実施形態に係る検索データ送信先情報の構成を示す図である。It is a figure which shows the structure of the search data transmission destination information which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るハッシュテーブル及び保存データの構成を示す図である。It is a figure which shows the structure of the hash table and preservation | save data which concern on 2nd Embodiment of this invention. 本発明の第2実施形態に係る各ノード間の送信メッセージの構成を示す図である。It is a figure which shows the structure of the transmission message between each node which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理プログラムの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing program which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るデータ検索要求ノードとして動作する場合の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence in the case of operate | moving as a data search request | requirement node concerning 2nd Embodiment of this invention. 本発明の第2実施形態に係るマスターデータ処理ノードとして動作する場合の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence in the case of operate | moving as a master data processing node concerning 2nd Embodiment of this invention. 本発明の第2実施形態に係るレプリカデータ処理ノードとして動作する場合の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence in the case of operate | moving as a replica data processing node concerning 2nd Embodiment of this invention. 本発明の第3実施形態に係るデータ検索要求ノードからマスターデータ処理ノードへの送信メッセージの構成を示す図である。It is a figure which shows the structure of the transmission message from the data search request node which concerns on 3rd Embodiment of this invention to a master data processing node. 本発明の第4実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索を示す図である。It is a figure which shows the distributed data search at the time of a preservation | save data failure in the information processing system which concerns on 4th Embodiment of this invention. 本発明の第5実施形態に係る情報処理システムにおける、保存データ障害時の分散データ検索を示す図である。It is a figure which shows the distributed data search at the time of a preservation | save data failure in the information processing system which concerns on 5th Embodiment of this invention. 本発明の第5実施形態に係る検索データ送信先及び復元データ送信先情報の構成を示す図である。It is a figure which shows the structure of the search data transmission destination and restoration data transmission destination information which concern on 5th Embodiment of this invention. 本発明の第6実施形態に係る複数の情報処理システムが接続したシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the system which the some information processing system which concerns on 6th Embodiment of this invention connected.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。   Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the components described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them.

[第1実施形態]
本発明の第1実施形態としての情報処理システム100について、図1を用いて説明する。情報処理システム100は、複数のノードがP2P方式のネットワークに接続され、保存データを複製して2重に保持するシステムである。
[First Embodiment]
An information processing system 100 as a first embodiment of the present invention will be described with reference to FIG. The information processing system 100 is a system in which a plurality of nodes are connected to a P2P network, and the stored data is duplicated and held in duplicate.

図1に示すように、情報処理システム100は、第1ノード110と、第2ノード120と、第3ノード130と、を含む。第1ノード110は、データの書込及び検索を指示する。第2ノード120は、第1ノード110に書込を指示されたデータを保存し、第1ノード110の検索の指示にしたがってデータを読出す。第3ノード130は、第2ノード120に保存されたデータを複製して保持する。そして、第2ノード120は、保存部122と、送信部121とを有する。122保存部は、自ノードへ第1ノード110により書込を指示されたデータを保存する。送信部121は、保存したデータを分割して、複数の第3ノード130に対して送信して分散保持させると共に、保存したデータを分散保持させた複数の第3ノード130を識別可能な分散識別情報を複数の第3ノード130の少なくとも1つに送信する。   As illustrated in FIG. 1, the information processing system 100 includes a first node 110, a second node 120, and a third node 130. The first node 110 instructs data writing and retrieval. The second node 120 stores the data instructed to be written by the first node 110 and reads the data in accordance with the search instruction from the first node 110. The third node 130 duplicates and holds the data stored in the second node 120. The second node 120 includes a storage unit 122 and a transmission unit 121. The 122 saving unit saves data instructed to be written by the first node 110 to its own node. The transmission unit 121 divides the stored data, transmits the data to a plurality of third nodes 130, and distributes and holds the data, and the distributed identification that can identify the plurality of third nodes 130 that stores and holds the stored data in a distributed manner Information is transmitted to at least one of the plurality of third nodes 130.

本実施形態によれば、P2P方式の情報処理システムにおいて、データを保存するノードが障害で動作不能となった場合であっても、データ回復をノードへの負荷を偏らせることなく実現することができる。   According to this embodiment, in a P2P information processing system, even when a node that stores data becomes inoperable due to a failure, data recovery can be realized without biasing the load on the node. it can.

[第2実施形態]
本発明に係る第2実施形態においては、DHT(Distributed Hash Table:分散ハッシュテーブル)型P2P方式のネットワークにおける障害時の保存データ(以下、マスターデータとも言う)の回復について説明する。すなわち、分散して複数のノードに保持された分散データは、ハッシュテーブルに基づいて検索されて特定される。また、本実施形態においては、保存データを分散して保持するノードを分散識別情報であるフィンガーテーブル(Finger Table)に基づいて選定するように制御される。そして、分散データは、障害にあったノードを代行するノード、あるいは保存データを検索したノードによってマージされて、保存データが復元される。本実施形態によれば、(1)マスターデータのレプリカを分散書込みすることで、各ノードの負荷を分散できる。また、(2)マスターデータのレプリカを分散書込みするノードはマスターデータを保持するノードのフィンガーテーブル内のみであるため、書込み、検索で発生する不要なホップを防ぐことができる。また、(3)DHT型P2Pネットワーク内のノード追加・削除を分散処理できるため、これらの処理を効率良く実行することができる。すなわち、このバックアップデータを分散配置し、局所的に負荷がかかっていた問題を軽減させた。このため、再分散時に多量のデータを移管することなく、データ移管を可能にする。また、検索においても、ネットワークに流れるデータ量減少及び応答速度向上を目的として、ホップ数を削減させて検索できる。
[Second Embodiment]
In the second embodiment of the present invention, recovery of stored data (hereinafter also referred to as master data) at the time of failure in a DHT (Distributed Hash Table) type P2P network will be described. That is, distributed data that is distributed and held in a plurality of nodes is searched and specified based on a hash table. Further, in the present embodiment, control is performed so as to select a node that holds the stored data in a distributed manner based on a finger table that is distributed identification information. Then, the distributed data is merged by a node acting on behalf of the failed node or a node that has searched the stored data, and the stored data is restored. According to the present embodiment, (1) the load of each node can be distributed by performing distributed writing of replicas of master data. In addition, (2) since the nodes that perform master-data replica distributed writing are only in the finger table of the node that holds the master data, unnecessary hops that occur during writing and retrieval can be prevented. Further, (3) node addition / deletion in the DHT type P2P network can be distributed, so that these processes can be executed efficiently. In other words, this backup data was distributed and alleviated the problem of local load. For this reason, it is possible to transfer data without transferring a large amount of data at the time of redistribution. In the search, it is possible to reduce the number of hops and search for the purpose of reducing the amount of data flowing through the network and improving the response speed.

《本実施形態に係る情報処理システムの構成》
図2は、本実施形態に係る情報処理システム200の構成を示すブロック図である。
<< Configuration of Information Processing System According to this Embodiment >>
FIG. 2 is a block diagram illustrating a configuration of the information processing system 200 according to the present embodiment.

図2においては、DHT型P2Pネットワークに各ノード210、220、230−1〜−3となる情報処理装置が存在する。各ノードは同一の機能を有しており、全てのノードがデータ書込/検索要求ノード210、マスターデータ処理ノード220(データ保存ノードとも称す)、レプリカデータ処理ノード230−1〜−3(分散保持ノードとも称す)の動作が可能である。たとえば、データ書込/検索要求ノード210になる条件としては、オペレータ等がDHT型P2Pネットワークの外部から検索要求を行った場合がある。ただ、オペレータ等がどのノードで検索するかは自由である。マスターデータとレプリカデータとについては、基本はマスターデータで運用し、マスターデータ処理ノード220が故障した場合には、レプリカデータを使用する流れとなる。マスターデータ処理ノード220については、データ検索の対象が存在するマスターデータを保持するノードがその役割となるため、検索するデータによっては、どのノードでも、マスターデータ処理ノード220になる可能性があり得る。   In FIG. 2, there are information processing apparatuses serving as the nodes 210, 220, 230-1 to -3 in the DHT type P2P network. Each node has the same function, and all nodes have a data write / search request node 210, a master data processing node 220 (also referred to as a data storage node), and replica data processing nodes 230-1 to -3 (distributed). (Also referred to as a holding node). For example, a condition for becoming the data write / search request node 210 is that an operator or the like makes a search request from outside the DHT type P2P network. However, which node the operator or the like searches is free. The master data and the replica data are basically operated by the master data, and when the master data processing node 220 fails, the replica data is used. With respect to the master data processing node 220, the node that holds the master data for which the data search target exists plays a role. Therefore, depending on the data to be searched, any node may be the master data processing node 220. .

以下、本実施形態の基本的な動作を説明する。   Hereinafter, the basic operation of this embodiment will be described.

図2のデータ書込/検索要求ノード210には、書込/検索をするデータ210aがある。データ書込/検索要求ノード210の書込要求により、データ210aはその内容などによって選択されたマスターデータ処理ノード220の保存部222に保存データ210bとして複製される。そして、データ書込/検索要求ノード210のデータ210aは削除される。   The data write / search request node 210 in FIG. 2 includes data 210a to be written / searched. In response to a write request from the data write / search request node 210, the data 210a is duplicated as the saved data 210b in the saving unit 222 of the master data processing node 220 selected according to the contents. Then, the data 210a of the data write / search request node 210 is deleted.

マスターデータ処理ノード220は、保存データ210bをハッシュテーブル225内のハッシュ値に対応付ける。ハッシュテーブル225の詳細な例は特許文献2に説明があるので、特許文献2を参照されたい。そして、分散識別情報保持部のフィンガーテーブル224に従って、保存データ210bの分散保持先を設定し、保存データ210bを分散データ生成部223で分割する。分割数は分散保存先の数に対応していても、さらに分散保存数の半分にしたり重なり部分を設けたりして、復元能力を高めることもできる。なお、フィンガーテーブル224の詳細な例は非特許文献1に説明があるので、非特許文献1を参照されたい。送信部221からは、フィンガーテーブル224により特定される分散データ保持先のレプリカデータ処理ノード230−1〜−3に分散データ及び分散データのハッシュ値の保持が要請される。図2には、フィンガーテーブル224及び231が1つのように図示されているが、保存データの種別やデータ書込を指示したデータ書込/検索要求ノードなどによって異なる複数のフィンガーテーブルから選択されて使用されてよい。   The master data processing node 220 associates the stored data 210b with the hash values in the hash table 225. A detailed example of the hash table 225 is described in Patent Document 2, so refer to Patent Document 2. Then, according to the finger table 224 of the distributed identification information holding unit, the distributed holding destination of the stored data 210b is set, and the stored data 210b is divided by the distributed data generating unit 223. Even if the number of divisions corresponds to the number of distributed storage destinations, it is possible to increase the restoration capability by further reducing the number of distributed storages to half or providing an overlapping portion. A detailed example of the finger table 224 is described in Non-Patent Document 1, so refer to Non-Patent Document 1. The transmission unit 221 requests the distributed data holding destination replica data processing nodes 230-1 to 230-3 specified by the finger table 224 to hold the distributed data and the hash value of the distributed data. In FIG. 2, the finger tables 224 and 231 are illustrated as one. However, the finger tables 224 and 231 are selected from a plurality of different finger tables depending on the type of stored data, the data write / search request node instructing data write, and the like. May be used.

マスターデータ処理ノード220から分散保持が要請された各分散データ及びハッシュ値は、レプリカデータ処理ノード230−1〜−3のそれぞれ分散データ230a〜230c、及びハッシュテーブル232a〜232cに保持される。なお、図2では、データ書込/検索要求ノード210とマスターデータ処理ノード220以外のノードがレプリカデータ処理ノード230−1〜−3として図示されている。しかし、レプリカデータ処理ノード230−1〜−3はフィンガーテーブル224に従って選択されるものであり、図2はその特殊な例に過ぎない。   The respective distributed data and hash values requested to be distributed and held by the master data processing node 220 are held in the distributed data 230a to 230c and the hash tables 232a to 232c of the replica data processing nodes 230-1 to 230-3, respectively. In FIG. 2, nodes other than the data write / search request node 210 and the master data processing node 220 are shown as replica data processing nodes 230-1 to 230-3. However, the replica data processing nodes 230-1 to 230-3 are selected according to the finger table 224, and FIG. 2 is only a special example.

また、本実施形態では、マスターデータ処理ノード220からレプリカデータ処理ノード230−1〜−3の少なくとも1つに、マスターデータ処理ノード220が分散保持先を決めるために使用したフィンガーテーブル224の複製が送信される。レプリカデータ処理ノード230−1〜−3の少なくとも1つは、フィンガーテーブル224の複製を保持している。従って、マスターデータ処理ノード220が障害を起こして動作不能となっても、データ書込/検索要求ノード210による保存データの検索をレプリカデータ処理ノード230−1〜−3の1つが代行することによって、分散データから保存データを復元することが可能となる。なお、マスターデータ処理ノードの障害時に、データ書込/検索要求ノードによる保存データの検索を代行するレプリカデータ処理ノードを、以下、他のレプリカデータ処理ノードと区別するため「障害支援ノード」とも呼ぶ。   Further, in this embodiment, the replica of the finger table 224 used by the master data processing node 220 to determine the distribution holding destination is transferred from the master data processing node 220 to at least one of the replica data processing nodes 230-1 to 230-3. Sent. At least one of the replica data processing nodes 230-1 to 230-3 holds a copy of the finger table 224. Therefore, even if the master data processing node 220 fails and becomes inoperable, one of the replica data processing nodes 230-1 to 230-3 performs the retrieval of the stored data by the data write / search request node 210. The stored data can be restored from the distributed data. A replica data processing node acting as a search for stored data by the data write / search request node in the event of a failure of the master data processing node is hereinafter also referred to as a “failure support node” to distinguish it from other replica data processing nodes. .

《本実施形態に係る情報処理システムの動作》
以下、図3〜図10を参照して、図2の情報処理システムにおける動作手順を具体的に説明する。なお、図2において、データ書込/検索要求ノード210として動作した情報処理装置は、図3〜図10においては、同じ情報処理装置がデータ書込要求ノード210として動作したりデータ検索要求ノードとして動作したりする。
<< Operation of Information Processing System According to this Embodiment >>
Hereinafter, the operation procedure in the information processing system in FIG. 2 will be described in detail with reference to FIGS. In FIG. 2, the information processing apparatus operating as the data write / search request node 210 is the same as the data write request node 210 or as the data search request node in FIGS. It works.

(保存データの書込)
図3は、保存データの書込300を示す図である。なお。以下明細書の(n)は図3、図5、図6及び図8の丸数字に対応する。
(Write saved data)
FIG. 3 is a diagram illustrating the writing 300 of stored data. Note that. In the following description, (n) corresponds to the circled numbers in FIG. 3, FIG. 5, FIG. 6 and FIG.

データ検索要求ノード210のデータ書込要求に従って、マスターデータ処理ノード220は(1)及び(2)の処理を行う。すなわち、マスターデータ処理ノード220が全てのデータを自ノードに保存すると共に、それぞれのレプリカデータ処理ノード230−1〜−4にデータを分散配置する。データの分散配置にはマスターデータ処理ノード220のフィンガーテーブルを用いる。図3には、保存データが4つの部分に分割されて、4つのレプリカデータ処理ノード230−1〜−4にその1つ1つが分散配置される様子を示している。マスターデータ処理ノード220が分散データの分散配置に使用したフィンガーテーブルは分散配置するレプリカデータ処理ノード230−1〜−4に配置される。   In accordance with the data write request of the data search request node 210, the master data processing node 220 performs the processes (1) and (2). That is, the master data processing node 220 stores all data in its own node and distributes data to the respective replica data processing nodes 230-1 to 230-4. The finger table of the master data processing node 220 is used for data distribution. FIG. 3 shows a state in which the stored data is divided into four parts and each one is distributed and arranged in four replica data processing nodes 230-1 to 230-4. The finger tables used by the master data processing node 220 for the distributed arrangement of the distributed data are arranged in the replica data processing nodes 230-1 to -4 to be distributed.

(保存データ書込のシーケンス)
図4は、図3のような保存データの書込の手順400を示すシーケンス図である。
(Saved data writing sequence)
FIG. 4 is a sequence diagram showing a stored data writing procedure 400 as shown in FIG.

データ書込要求ノード210のデータ書込要求処理(S411)によるデータ書込要求を、マスターデータ処理ノード220は、データ受信処理(S421)により受信する。マスターデータ処理ノード220は、マスターデータの書込要求に対応して、マスターデータ書込処理(S422)によりDBに保存データとして書き込む。マスターデータ処理ノード220は、正常に書き込まれた場合、書込結果送信処理(S423)によりデータ書込要求ノード210に正常に書き込まれたことを通知する。なお、マスターデータ書込処理(S422)で正常に書き込めなかった場合、書込結果送信処理(S423)により正常に書き込めなかった旨のメッセージをデータ書込要求ノード210に通知する。   The master data processing node 220 receives the data write request by the data write request processing (S411) of the data write request node 210 by the data reception processing (S421). In response to the master data write request, the master data processing node 220 writes the stored data in the DB by the master data writing process (S422). When the master data processing node 220 has been normally written, the master data processing node 220 notifies the data write request node 210 that the data has been normally written by the write result transmission processing (S423). If the master data write process (S422) fails to write normally, the write result transmission process (S423) notifies the data write request node 210 of a message indicating that the writing was not successful.

データ書込要求ノード210は、書込結果受信処理(S413)において書込結果を受信すると、マスターデータ書込結果判定処理(S415)においてマスターデータ書込結果を判定する。マスターデータ書込完了処理(S417)においては、判定結果からマスターデータを正常に書込めた場合、データ書込要求ノード210が格納していたマスターデータ処理ノード220に書き込む内容を消去し、マスターデータ書込み処理を完了させる。また、正常に書き込めなかった場合には、マスターデータ書込完了処理(S417)において、正常に書込めなかった旨のメッセージを通知する。   When receiving the write result in the write result receiving process (S413), the data write request node 210 determines the master data write result in the master data write result determining process (S415). In the master data writing completion process (S417), when the master data can be normally written from the determination result, the contents to be written to the master data processing node 220 stored in the data write request node 210 are erased, and the master data Complete the write process. If the data cannot be written normally, a message indicating that the data could not be written normally is notified in the master data writing completion process (S417).

なお、どこに正常に書込めなかった旨のメッセージを通知するかはシステム設計による。例えば、データ書込要求ノード210自身で通知しても、データ書込要求ノード210に書込を指示した依頼元に通知してもよい。さらに、正常に書き込めなかった場合、データ書込み要求ノード210が保持するマスターデータ処理ノード220に書き込む内容を保持するか/消去するかもシステム設計による。さらに、データ書込み要求ノード210が保持するマスターデータ処理ノード220に書き込む内容を再度マスターデータ処理ノード220に書き込むように要求するかもシステム設計による。   Note that it is up to the system design where the message indicating that writing could not be performed normally is notified. For example, it may be notified by the data write request node 210 itself, or may be notified to the requester who has instructed the data write request node 210 to write. In addition, when data cannot be written normally, whether to write / erase the contents to be written to the master data processing node 220 held by the data write request node 210 depends on the system design. Further, whether to write to the master data processing node 220 again what is written to the master data processing node 220 held by the data write request node 210 depends on the system design.

次に、マスターデータ処理ノード220は、フィンガーテーブル確認処理(S424)において、フィンガーテーブルを確認して、どのノードにレプリカを分散すれば良いのか決定する。分散先ノードの決定後、フィンガーテーブル確認処理(S424)からデータ分散処理(S425)に対して、どのノードにレプリカを分散すれば良いのかを通知する。マスターデータ処理ノード220は、データ分散処理(S425)において、フィンガーテーブル確認処理(S424)から通知されたノードに分散するように、保存したマスターデータを所定数(図3の例では4つ)に分散する。そして、各分散データのハッシュ値を算出して、分散データ及びハッシュ値を振り分ける。振り分けた分散データは、データ分散処理(S425)から分散データ送信処理(S426)に渡される。マスターデータ処理ノード220は、分散データ送信処理(S426)において、渡された分散データ及びハッシュ値をフィンガーテーブル上のノードに対して送信する。図3の例では、レプリカデータ処理ノード230−1〜−4の4つのノードに分散データ及びハッシュ値を送信する。なお、分散データの送信先は、フィンガーテーブルによって設定される。   Next, in the finger table confirmation process (S424), the master data processing node 220 confirms the finger table and determines to which node the replica should be distributed. After the distribution destination node is determined, the finger table confirmation process (S424) notifies the data distribution process (S425) which node the replica should be distributed to. In the data distribution process (S425), the master data processing node 220 sets the stored master data to a predetermined number (four in the example of FIG. 3) so as to be distributed to the nodes notified from the finger table confirmation process (S424). scatter. Then, the hash value of each distributed data is calculated, and the distributed data and the hash value are distributed. The distributed data distributed is transferred from the data distribution process (S425) to the distributed data transmission process (S426). In the distributed data transmission process (S426), the master data processing node 220 transmits the passed distributed data and hash value to the nodes on the finger table. In the example of FIG. 3, the distributed data and the hash value are transmitted to the four nodes of the replica data processing nodes 230-1 to 230-4. The transmission destination of the distributed data is set by a finger table.

レプリカデータ処理ノード230−1〜−4は、データ受信処理(S431)において、送信された分散データ及びハッシュ値を受信する。以下、レプリカデータ処理ノード230−1〜−4の処理は同様なので、1つのレプリカデータ処理ノード230−1の処理について説明する。レプリカデータ処理ノード230−1は、データ書込処理及びフィンガーテーブル登録処理(S433)において、DBに分散データとハッシュ値を書込み、フィンガーテーブルを登録する。なお、フィンガーテーブルの登録は、システム設計に対応して、分散データの分散先の全てのレプリカデータ処理ノードに登録してもよいし、予め決められたレプリカデータ処理ノードへの送信でもよい。例えば、図3において、マスターデータ処理ノード220の時計回りの次のレプリカデータ処理ノード230−1が、マスターデータ処理ノード220の障害時にデータ検索の代行をする設計であれば、レプリカデータ処理ノード230−1に送信すればよい。しかしながら、どのレプリカデータ処理ノードでも障害時にデータ検索の代行ができるように設計すれば、全レプリカデータ処理ノード230−1〜−4に送信することになる。そして、書き込みが完了したことが、データ書込処理及びフィンガーテーブル登録処理(S433)からデータ書込完了通知処理(S435)に通知される。レプリカデータ処理ノード230−1のDBに分散データが書き込まれなかった場合には、書き込まれなかったことが、データ書込処理及びフィンガーテーブル登録処理(S433)からデータ書込完了通知処理(S435)に通知される。レプリカデータ処理ノード230−1は、データ書込完了通知処理(S435)によって、書込完了あるいは書込未了の通知を、マスターデータ処理ノード220に通知する。   The replica data processing nodes 230-1 to -4 receive the transmitted distributed data and hash value in the data reception process (S431). Hereinafter, since the processing of the replica data processing nodes 230-1 to 230-4 is the same, the processing of one replica data processing node 230-1 will be described. In the data write process and finger table registration process (S433), the replica data processing node 230-1 writes the distributed data and the hash value in the DB and registers the finger table. The registration of the finger table may be registered in all replica data processing nodes to which the distributed data is distributed, or may be transmitted to a predetermined replica data processing node in accordance with the system design. For example, in FIG. 3, if the next replica data processing node 230-1 in the clockwise direction of the master data processing node 220 is designed to perform data search in the event of a failure of the master data processing node 220, the replica data processing node 230 To -1. However, if any replica data processing node is designed so that data retrieval can be performed in the event of a failure, the data is transmitted to all replica data processing nodes 230-1 to 230-4. Then, the completion of writing is notified from the data writing process and finger table registration process (S433) to the data writing completion notification process (S435). If the distributed data has not been written to the DB of the replica data processing node 230-1, the fact that the data has not been written is indicated by the data writing processing and finger table registration processing (S433) to the data writing completion notification processing (S435). Will be notified. The replica data processing node 230-1 notifies the master data processing node 220 of the writing completion or writing incomplete notification through the data writing completion notification processing (S435).

マスターデータ処理ノード220は、データ書込み完了通知受信処理(S427)において、レプリカデータ処理ノード230−1〜−4からの書込完了あるいは書込未了の通知を受信する。そして、書込完了あるいは書込未了の通知は、データ書込み完了通知受信処理(S427)から分散データ書込結果判定処理(S428)に通知される。マスターデータ処理ノード220は、分散データ書込結果判定処理(S428)において、分散データが全ての分散先に正常に書き込まれたか否かを判定する。マスターデータ処理ノード220は、判定結果から分散データを正常に書込めた場合には、分散データ書込完了処理(S429)において、マスターデータ処理ノード220が格納していた分散データを消去し、分散データのレプリカデータ処理ノード230−1〜−4への書込みを完了させる。   In the data write completion notification reception process (S427), the master data processing node 220 receives the write completion or incomplete notification from the replica data processing nodes 230-1 to 230-4. Then, the notification of writing completion or incomplete writing is notified from the data writing completion notification receiving process (S427) to the distributed data writing result determination process (S428). The master data processing node 220 determines whether or not the distributed data has been normally written in all the distribution destinations in the distributed data write result determination processing (S428). If the distributed data can be normally written from the determination result, the master data processing node 220 erases the distributed data stored in the master data processing node 220 in the distributed data write completion processing (S429) and distributes the distributed data. Writing of data to the replica data processing nodes 230-1 to 230-4 is completed.

一方、分散データが少なくとも1つのレプリカデータ処理ノードに対して正常に書き込めなかった場合には、正常に書込めなかった旨のメッセージを通知する。どこに通知するかはシステムの設計による。例えば、マスターデータ処理ノード220自身で通知を受けて、他のフィンガーテーブルによる再分散を試みてもよいし、書込を失敗したレプリカデータ処理ノードを他のレプリカデータ処理ノードで代行して再分散を試みてもよい。あるいは、データ書込要求ノード210に通知してもよいし、データ書込要求ノード210を介してデータ書込要求を行なったシステム外部の他のシステムや装置でもよい。さらに、レプリカデータ処理ノードに通知して、他のレプリカデータ処理ノードで分散データの書込が失敗したことを通知して、DBに書き込んだ分散データを削除するようにしてもよい。また、分散データが正常に書き込めなかった場合、マスターデータ処理ノード220が保存したマスターデータの保持を継続するか/消去するかも、システムの設計による。更に、マスターデータ処理ノード220が保存したマスターデータの分散データの保持を再度レプリカデータ処理ノードに要求するかも、システムの設計による。   On the other hand, when the distributed data cannot be normally written to at least one replica data processing node, a message indicating that the data has not been normally written is notified. The notification location depends on the system design. For example, the master data processing node 220 itself may receive notification and try to redistribute using another finger table, or the replica data processing node that failed to write may be redistributed on behalf of another replica data processing node. You may try. Alternatively, the data write request node 210 may be notified, or another system or device outside the system that has made a data write request via the data write request node 210 may be used. Further, it is possible to notify the replica data processing node, notify the other replica data processing node that the writing of the distributed data has failed, and delete the distributed data written in the DB. In addition, when the distributed data cannot be written normally, whether or not to retain the master data stored by the master data processing node 220 depends on the design of the system. Further, whether the master data processing node 220 requests the replica data processing node to hold the distributed data of the master data stored again depends on the system design.

(保存データの正常検索)
次に、検索処理について説明する。
(Normal search of stored data)
Next, the search process will be described.

図5は、一般的に行われている検索方法において、保存データの正常検索500を示す図である。   FIG. 5 is a diagram showing a normal search 500 of stored data in a commonly performed search method.

マスターデータ処理ノード220に障害がなく正常検索を行なわれた場合は、図5の(1)−(2)の順序で、保存データの検索が完了する。なお、本実施形態において、保存データの検索はハッシュテーブルのハッシュ値との比較に基づいて行われる。   When the master data processing node 220 has no fault and is normally searched, the search for stored data is completed in the order of (1)-(2) in FIG. In the present embodiment, the search for stored data is performed based on a comparison with the hash value of the hash table.

(保存データ障害時の分散データ検索の一例)
図6は、保存データ障害時の分散データ検索の一例600を示す図である。図6の例では、データの検索中に障害が発生したマスターデータ処理ノードの検索処理を代行するレプリカデータ処理ノードが、自分に分散データを集めてデータ復元のためのマージ(merge:併合)を行なって、データ検索要求ノードに送信する。
(An example of distributed data search in case of stored data failure)
FIG. 6 is a diagram illustrating an example 600 of distributed data retrieval when a storage data failure occurs. In the example of FIG. 6, the replica data processing node acting as the search processing of the master data processing node in which a failure occurs during the data search collects the distributed data and performs a merge (merge) for data restoration. And send it to the data search request node.

図6の例では、(1)のように、マスターデータ処理ノード220に障害が発生した場合、次のように処理する。まず、(2)のように、障害が発生したマスターデータ処理ノード220から図6において右回り(時計回り)に次のレプリカデータ処理ノード230−1に、データ検索要求ノード210から検索要求を行う。なお、障害が発生したマスターデータ処理ノード220の代行は、図6のように右回り(時計回り)の次のレプリカデータ処理ノード230−1に限定する必要はなく、システムの設計による。検索要求を受けたレプリカデータ処理ノード230−2は、故障したマスターデータ処理ノード220の代わり(3)のように検索処理を実行する。(3)の処理では、検索要求を受けた各レプリカデータ処理ノード230−2〜−4が検索要求元のレプリカデータ処理ノード230−1に検索結果を返す。自ノード以外のレプリカデータ処理ノード230−2〜−4から検索した分散データが返送されると、(4)のように、要求元のレプリカデータ処理ノード230−1は、自ノードに保持している分散データと他のレプリカデータ処理ノード230−2〜−4からの分散データとをマージする。そして、レプリカデータ処理ノード230−1は、マージして復元したマスターデータの複製をデータ検索要求ノード210に検索結果として送信する。このようにして、データ検索要求ノード210は保存したマスターデータを得ることができる。   In the example of FIG. 6, when a failure occurs in the master data processing node 220 as shown in (1), the following processing is performed. First, as shown in (2), a search request is issued from the data search request node 210 to the next replica data processing node 230-1 in the clockwise direction (clockwise) in FIG. . The substitution of the master data processing node 220 in which a failure has occurred need not be limited to the next replica data processing node 230-1 that is clockwise (clockwise) as shown in FIG. 6, but depends on the design of the system. The replica data processing node 230-2 that has received the search request executes the search processing as in (3) instead of the failed master data processing node 220. In the process (3), each replica data processing node 230-2 to 230-4 that has received the search request returns a search result to the replica data processing node 230-1 that is the search request source. When the distributed data retrieved from the replica data processing nodes 230-2 to -4 other than its own node is returned, the replica data processing node 230-1 as the request source holds it in its own node as shown in (4). And the distributed data from the other replica data processing nodes 230-2 to 230-4 are merged. Then, the replica data processing node 230-1 transmits a copy of the master data restored by merging to the data search request node 210 as a search result. In this way, the data search request node 210 can obtain stored master data.

(保存データ障害時の分散データ検索のシーケンス)
図7は、保存データ障害時の分散データ検索の一例の手順700を示すシーケンス図である。
(Distributed data search sequence when stored data fails)
FIG. 7 is a sequence diagram illustrating a procedure 700 of an example of distributed data retrieval when a storage data failure occurs.

データ検索要求ノード210のデータ検索要求処理(S711)によるデータ検索要求を、レプリカデータ処理ノード230−1は検索データ受信処理(S721)により受信する。レプリカデータ処理ノード230−1は、フィンガーテーブル確認処理(S722)において、図4のS432で登録した検索データに対応するフィンガーテーブルを見付ける。そして、フィンガーテーブル確認処理(S722)から検索する分散データ問い合わせ処理(S723)に対して見付けたフィンガーテーブルの情報を渡す。レプリカデータ処理ノード230−1は、検索する分散データ問い合わせ処理(S723)において、フィンガーテーブルの情報を基に検索要求を行うレプリカデータ処理ノードを特定する。図6の例では、レプリカデータ処理ノード230−2〜−4を特定する。そして、検索する分散データ問い合わせ処理(S723)から、特定したレプリカデータ処理ノード230−2〜−4の情報と検索する分散データを特定可能なハッシュ値とを、分散データ内容送信処理(S724)に渡す。ハッシュ値送信処理(S724)において各分散データを検索する検索キーとなるハッシュ値を送信することにより、特定されたレプリカデータ処理ノード230−2〜−4に対して分散データの検索要求を行う。なお、本例ではハッシュ値を分散データの検索として送信するが、他の検索キーを使うシステム設計であってもよい。ただし、検索キー割当の容易性や秘匿性からハッシュ値が望ましい。また、S724の括弧内の「分散データ返信先」は、返信先が検索要求元のレプリカデータ処理ノード230−1とする設計であれば必要ない。しかし、次の例で示すように、返信先を選択できる設計とするのであれば必要であり、本例では、レプリカデータ処理ノード230−1が返信元に指定される。   The replica data processing node 230-1 receives the data search request by the data search request processing (S711) of the data search request node 210 by the search data reception processing (S721). In the finger table confirmation process (S722), the replica data processing node 230-1 finds the finger table corresponding to the search data registered in S432 of FIG. Then, the information of the found finger table is passed to the distributed data inquiry process (S723) to be searched from the finger table confirmation process (S722). The replica data processing node 230-1 identifies the replica data processing node that makes a search request based on the information of the finger table in the distributed data inquiry processing (S723) to be searched. In the example of FIG. 6, the replica data processing nodes 230-2 to -4 are specified. Then, from the distributed data inquiry process (S723) to be searched, information on the identified replica data processing nodes 230-2 to 230-4 and a hash value that can specify the distributed data to be searched are sent to the distributed data content transmission process (S724). hand over. In the hash value transmission process (S724), by transmitting a hash value that serves as a search key for searching for each shared data, a distributed data search request is made to the identified replica data processing nodes 230-2 to -4. In this example, the hash value is transmitted as a search for distributed data, but a system design using another search key may be used. However, a hash value is desirable because of ease of search key assignment and confidentiality. Further, the “distributed data return destination” in parentheses in S724 is not required if the return destination is designed to be the replica data processing node 230-1 of the search request source. However, as shown in the following example, it is necessary if the design is such that a reply destination can be selected. In this example, the replica data processing node 230-1 is designated as the reply source.

検索要求を受けたレプリカデータ処理ノード230−2〜−4は、ハッシュ値受信処理(S731)において、分散データ検索要求として分散データのハッシュ値を受信する。なお、括弧内の「分散データの返信先」の役割については前述した。なお、レプリカデータ処理ノード230−2〜−4の処理は同様なので、以下、レプリカデータ処理ノード230−2を代表させて説明する。レプリカデータ処理ノード230−2は、要求を受けた検索を実施するため、ハッシュ値受信処理(S731)からデータ検索処理(S733)に検索内容を渡すよう制御する。データ検索処理(S733)において、ハッシュ値を基にデータ検索を行う。そして、検索された分散データ及び検索結果の情報等が、データ検索処理(S733)から検索データ及び検索結果取得処理(S735)に渡される。さらに、これらの結果が、検索データ及び検索結果取得処理(S735)から検索データ送信処理(S737)に渡され、検索データ送信処理(S737)は検索された分散データ及び検索結果の情報等をレプリカデータ処理ノード230−1に返信する。   Receiving the search request, the replica data processing nodes 230-2 to 230-4 receive the hash value of the distributed data as the distributed data search request in the hash value receiving process (S731). The role of “distributed data return destination” in parentheses has been described above. Since the processing of the replica data processing nodes 230-2 to 230-4 is the same, the replica data processing node 230-2 will be described below as a representative. The replica data processing node 230-2 controls to pass the search contents from the hash value reception process (S731) to the data search process (S733) in order to perform the requested search. In the data search process (S733), data search is performed based on the hash value. Then, the searched distributed data, search result information, and the like are transferred from the data search process (S733) to the search data and search result acquisition process (S735). Further, these results are transferred from the search data and search result acquisition process (S735) to the search data transmission process (S737), and the search data transmission process (S737) replicates the searched distributed data, the search result information, and the like. It returns to the data processing node 230-1.

レプリカデータ処理ノード230−1は、検索データ及び検索結果受信処理(S727)において、各レプリカデータ処理ノード230−2〜−4の検索データ送信処理(S737)からの分散データ及び検索結果の情報等を受信する。受信した情報は、検索データ及び検索結果受信処理(S727)から検索データマージ処理(S728)に渡される。一方、レプリカデータ処理ノード230−1は、他のレプリカデータ処理ノード230−2〜−4への分散データの検索要請と並行して、データ検索処理(S725)以降の処理を検索する分散データ問い合わせ処理(S723)の実行完了後に実行する。すなわち、検索データ受信処理(S721)において受信した検索内容から、レプリカデータ処理ノード230−1自身に対する検索を実行する。この検索結果は、検索データ及び検索結果取得処理(S726)に渡され、他の分散データと共に検索データマージ処理(S728)に渡される。レプリカデータ処理ノード230−1は、検索データマージ処理(S728)において、検索データ及び検索結果取得処理(S726)で得られたレプリカデータ処理ノード230−1が保持した分散データと検索データ及び検索結果取得処理(S727)で得られたレプリカデータ処理ノード230−2〜−4の分散データとをマージする。そして、マージ結果のマスターデータの複製は、検索データ送信処理(S729)に渡される。レプリカデータ処理ノード230−1は、検索データ送信処理(S729)により、この結果をデータ検索要求ノード210に送信する。   In the search data and search result reception process (S727), the replica data processing node 230-1 receives the distributed data and the search result information from the search data transmission process (S737) of each replica data processing node 230-2 to -4. Receive. The received information is transferred from the search data and search result reception process (S727) to the search data merge process (S728). On the other hand, the replica data processing node 230-1 searches for the processing after the data search processing (S725) in parallel with the distributed data search request to the other replica data processing nodes 230-2 to 230-4. Executed after completion of execution of the process (S723). That is, a search for the replica data processing node 230-1 itself is executed from the search contents received in the search data reception process (S721). This search result is passed to the search data and search result acquisition process (S726), and is passed to the search data merge process (S728) together with other distributed data. In the search data merge process (S728), the replica data processing node 230-1 stores the distributed data, the search data, and the search result held by the replica data processing node 230-1 obtained in the search data and search result acquisition process (S726). The replica data processing nodes 230-2 to 230-4 obtained in the acquisition process (S727) are merged with the distributed data. Then, a copy of the merged master data is passed to the search data transmission process (S729). The replica data processing node 230-1 transmits this result to the data search request node 210 by the search data transmission process (S729).

データ検索要求ノード210は、レプリカデータ処理ノード230−1が検索データ送信処理(S729)により送信した検索結果を、検索データ受信処理(S713)において受信する。そして、検索データ判定処理(S715)において、検索結果の検索データは自分が検索要求したデータであることを判定する。   The data search request node 210 receives the search result transmitted by the replica data processing node 230-1 through the search data transmission process (S729) in the search data reception process (S713). Then, in the search data determination process (S715), it is determined that the search data of the search result is the data requested by the user.

(保存データ障害時の分散データ検索の他例)
図8は、保存データ障害時の分散データ検索の他例800を示す図である。
(Another example of distributed data search in case of stored data failure)
FIG. 8 is a diagram illustrating another example 800 of distributed data search when a storage data failure occurs.

図8の他例800では、図6の例と分散データをマージするところが異なる。すなわち、図8においては(4)のように、データ検索を代行したレプリカデータ処理ノード230−1が、自ノードに保持されている分散データと、分散データの検索要求をしたレプリカデータ処理ノード230−2〜−4を示すフィンガーテーブルとを、データ検索要求ノード210に送信する。そして、(5)のように、それぞれのレプリカデータ処理ノード230−2〜−4が、検索した分散データをデータ検索要求ノード210に返信する。データ検索要求ノード210が、フィンガーテーブルを使って対応するレプリカデータ処理ノード230−2〜−4から受信した分散データをマージして、データ書込要求したデータを複製して分散した分散データから復元する。なお、レプリカデータ処理ノード230−2〜−4の検索した分散データの返信先は、図7の括弧内に記載した「分散データ返信先」を分散データの検索依頼時にレプリカデータ処理ノード230−1からレプリカデータ処理ノード230−2〜−4に送信することで実現する。本他例によれば、データの移動量が少ない(レプリカデータ処理ノード230−1を経由しない)ため効率的であることから、ファイアウォール等の問題がない場合には、図8の方法を用いるのが望ましい。   8 differs from the example in FIG. 6 in merging distributed data. That is, as shown in (4) in FIG. 8, the replica data processing node 230-1 that has performed the data search substitutes the distributed data held in its own node and the replica data processing node 230 that has issued the distributed data search request. The finger table indicating −2 to −4 is transmitted to the data search request node 210. Then, as shown in (5), each of the replica data processing nodes 230-2 to 230-4 returns the searched distributed data to the data search request node 210. The data search request node 210 merges the distributed data received from the corresponding replica data processing nodes 230-2 to -4 using the finger table, replicates the data requested to be written, and restores from the distributed data To do. It should be noted that the return destination of the distributed data searched by the replica data processing nodes 230-2 to 230-4 is the “distributed data return destination” described in parentheses in FIG. 7 at the time of the distributed data search request. To the replica data processing nodes 230-2 to 230-4. According to this other example, since the amount of data movement is small (not via the replica data processing node 230-1), it is efficient. Therefore, when there is no problem such as a firewall, the method of FIG. 8 is used. Is desirable.

(保存データ障害時の分散データ検索の他のシーケンス)
図9は、保存データ障害時の分散データ検索の他例の手順900を示す図である。
(Other sequence of distributed data search in case of stored data failure)
FIG. 9 is a diagram illustrating a procedure 900 of another example of distributed data search when a storage data failure occurs.

図9の図7との相違は、フィンガーテーブルのレプリカデータ処理ノード230−1からデータ検索要求ノード210への送信と、検索した分散データのマージをデータ検索要求ノード210が行うことである。従って、以下、図7との相違点について説明し、図7と同様処理の手順には図7と同じ参照番号を付与している。   9 differs from FIG. 7 in that the data search request node 210 performs transmission from the replica data processing node 230-1 of the finger table to the data search request node 210 and merges the searched distributed data. Therefore, the difference from FIG. 7 will be described below, and the same reference numerals as those in FIG.

最初の図7との相違点では、レプリカデータ処理ノード230−1は、ハッシュ値/分散データ返信先送信処理(S924)において、検索キーであるハッシュ値と共に、分散データ返信先を、レプリカデータ処理ノード230−2〜−4に送信する。本例では、データ検索要求ノード210を分散データ返信先に指定する。各レプリカデータ処理ノード230−1は、ハッシュ値/分散データ返信先受信処理(S931)において、検索キーであるハッシュ値と共に、分散データ返信先を受信する。   The difference from the first FIG. 7 is that the replica data processing node 230-1 uses the hash value / distributed data return destination transmission processing (S924) to set the distributed data return destination together with the hash value as the search key to the replica data processing. Transmit to the nodes 230-2 to -4. In this example, the data search request node 210 is designated as a distributed data return destination. Each replica data processing node 230-1 receives the distributed data return destination together with the hash value that is the search key in the hash value / distributed data return destination receiving process (S931).

次の図7との相違点では、レプリカデータ処理ノード230−1は、フィンガーテーブル送信処理(S927)において、フィンガーテーブル確認処理(S722)及び検索する分散データ問い合わせ処理(S723)で問い合わせ先を決定するために使用したフィンガーテーブルを、障害支援中にデータ検索要求ノード210に送信する。データ検索要求ノード210は、フィンガーテーブル受信処理(S917)において、レプリカデータ処理ノード230−1が送信したフィンガーテーブルを受信し、検索した分散データのマージのために使用する。すなわち、分散させた全ての分散データが返信されたかをこのフィンガーテーブルにより確認することになる。   The difference from FIG. 7 is that the replica data processing node 230-1 determines the inquiry destination in the finger table transmission process (S927) in the finger table confirmation process (S722) and the distributed data inquiry process (S723) to be searched. The finger table used for the transmission is transmitted to the data search request node 210 during failure support. In the finger table reception process (S917), the data search request node 210 receives the finger table transmitted by the replica data processing node 230-1, and uses it for merging the retrieved distributed data. That is, it is confirmed from this finger table whether all the distributed data that have been distributed have been returned.

最後の図7との相違点では、レプリカデータ処理ノード230−1は、検索データ及び検索結果取得処理(S726)で取得した自ノードの分散データのみを直接、検索データ送信処理(S928)によりデータ検索要求ノード210に送信する。そして、データ検索要求ノード210は、検索データ受信処理(S713)において受信した全ての分散データを、検索データマージ処理(S919)においてマージして保存したデータを復元し、検索データ判定処理(S715)に渡す。以上の処理では、データ検索要求ノード210は、レプリカデータ処理ノード230−1から受信したフィンガーテーブルに記載されているレプリカデータ処理ノードからの分散データの返信を待ち、全ての分散データを受信した場合には検索成功とみなす。なお、レプリカデータ処理ノードのいずれかから分散データが送信されなかった場合のタイムアウトやその後の処理については、システムの設計により種々の設定が可能である。   The last difference from FIG. 7 is that the replica data processing node 230-1 directly receives only the search data and the distributed data of the own node acquired in the search result acquisition process (S726) by the search data transmission process (S928). Transmit to the search request node 210. Then, the data search request node 210 restores the data stored by merging all the distributed data received in the search data receiving process (S713) in the search data merging process (S919), and searches the data to be searched (S715). To pass. In the above processing, the data search request node 210 waits for the return of the distributed data from the replica data processing node described in the finger table received from the replica data processing node 230-1, and receives all the distributed data Is considered a successful search. It should be noted that various settings can be made for timeout and subsequent processing when distributed data is not transmitted from any of the replica data processing nodes, depending on the system design.

《各ノードとして動作する情報処理装置のハードウェア構成》
図10は、本実施形態に係る各ノードとして動作する情報処理装置1000のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing device operating as each node >>
FIG. 10 is a block diagram illustrating a hardware configuration of the information processing apparatus 1000 that operates as each node according to the present embodiment.

図10で、CPU1010は演算制御用のプロセッサであり、プログラムを実行することで図2の各機能構成部を実現する。ROM1020は、初期データ及びプログラムなどの固定データ及びプログラムを記憶する。通信制御部1030は、ネットワークを介して他のノードと通信する。あるいは、通信制御部1030は、本P2P方式のネットワークの外部にある他のネットワークや装置との通信をしてもよい。また、上記2つの機能をそれぞれ別個に有する複数の通信制御部で構成してもよい。通信は無線でも有線でもよい。   In FIG. 10, a CPU 1010 is an arithmetic control processor, and implements each functional component shown in FIG. 2 by executing a program. The ROM 1020 stores fixed data and programs such as initial data and programs. The communication control unit 1030 communicates with other nodes via the network. Alternatively, the communication control unit 1030 may communicate with another network or device outside the P2P network. Moreover, you may comprise with the some communication control part which has said 2 function separately, respectively. Communication may be wireless or wired.

RAM1040は、CPU1010が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。領域は、大きく分けて、受信メッセージ1041用と、送信メッセージ1046用と、本例では対象としない情報処理データとを含む。   The RAM 1040 is a random access memory that the CPU 1010 uses as a work area for temporary storage. The RAM 1040 has an area for storing data necessary for realizing the present embodiment. The area is broadly divided into reception message 1041, transmission message 1046, and information processing data that is not targeted in this example.

受信メッセージ1041の内、1042は、書込/検索する受信データである。受信データには分散データも含まれる。1043は、受信データから算出されるハッシュ値である。1044は、例えば、データ書込/検索要求ノード210が障害支援ノードとなったレプリカデータ処理ノードから受信するフィンガーテーブルや、レプリカデータ処理ノードがマスターデータ処理ノード220から受信するフィンガーテーブルである。1045は、図8及び図9の場合における、分散データを送信する検索データ送信先である。   Of the received message 1041, 1042 is received data to be written / searched. The received data includes distributed data. Reference numeral 1043 denotes a hash value calculated from the received data. 1044 is, for example, a finger table received from the replica data processing node in which the data write / search request node 210 is a failure support node, or a finger table received from the master data processing node 220 by the replica data processing node. Reference numeral 1045 denotes a search data transmission destination for transmitting distributed data in the cases of FIGS.

送信メッセージ1046の内、1047は、書込/検索する送信データである。送信データには分散データも含まれる。1048は、送信データから算出されるハッシュ値である。1049は、例えば、障害支援ノードとなったレプリカデータ処理ノードからデータ書込/検索要求ノード210に送信するフィンガーテーブルや、マスターデータ処理ノード220からレプリカデータ処理ノードに送信するフィンガーテーブルである。   Of the transmission message 1046, 1047 is transmission data to be written / searched. The transmission data includes distributed data. Reference numeral 1048 denotes a hash value calculated from the transmission data. Reference numeral 1049 denotes, for example, a finger table transmitted from the replica data processing node serving as the failure support node to the data write / search request node 210 or a finger table transmitted from the master data processing node 220 to the replica data processing node.

なお、受信メッセージ1041及び送信メッセージ1046については、本実施形態に重要な一部のデータ要素を示したのみであり、他のデータ要素も随時に使用される(図15参照)。   Note that the reception message 1041 and the transmission message 1046 only show some data elements important to the present embodiment, and other data elements are also used as needed (see FIG. 15).

ストレージ1050は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータ又はプログラムが記憶されている。1051は、データ書込/検索要求ノードがデータの書込/検索を行なう先を、そのデータの内容や形式に対応して設定するためのマスターデータ処理ノードテーブルである。1052は、予め保持する、あるいは他ノードから送信されたフィンガーテーブルを保持するフィンガーテーブル保持部である。1053は、保存あるいは保持したデータを検索するための検索キーとして、データに対応付けられて記憶するハッシュテーブルである。1054は、保存あるいは保持したデータを検索可能に蓄積する保存データDBであり、分散データも含まれる。ストレージ1050には、以下のプログラムが格納される。1055は、全体の処理を実行させる本例の書込/検索以外の処理も含む情報処理を行なう情報処理プログラムである(図16参照)。1056は、情報処理プログラム1055において、情報処理装置1000がデータ書込/検索要求ノードとして動作する場合に実行されるデータ書込/検索要求ノード実行モジュールである。1057は、情報処理プログラム1055において、情報処理装置1000がマスターデータ処理ノードとして動作する場合に実行されるマスターデータ処理ノード実行モジュールである。1058は、情報処理プログラム1055において、情報処理装置1000がレプリカデータ処理ノードとして動作する場合に実行されるレプリカデータ処理ノード実行モジュールである。   The storage 1050 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment. Reference numeral 1051 denotes a master data processing node table for setting a destination where the data write / search request node writes / searches data in accordance with the contents and format of the data. A finger table holding unit 1052 holds a finger table held in advance or transmitted from another node. Reference numeral 1053 denotes a hash table that is stored in association with data as a search key for searching stored or held data. Reference numeral 1054 denotes a storage data DB that stores the stored or stored data so as to be searchable, and includes distributed data. The storage 1050 stores the following programs. Reference numeral 1055 denotes an information processing program for performing information processing including processing other than writing / searching of the present example for executing the entire processing (see FIG. 16). A data write / search request node execution module 1056 is executed when the information processing apparatus 1000 operates as a data write / search request node in the information processing program 1055. Reference numeral 1057 denotes a master data processing node execution module that is executed when the information processing apparatus 1000 operates as a master data processing node in the information processing program 1055. Reference numeral 1058 denotes a replica data processing node execution module executed when the information processing apparatus 1000 operates as a replica data processing node in the information processing program 1055.

なお、図10には、本実施形態に必須なデータやプログラムのみが示されており、OSなどの汎用のデータやプログラムは図示されていない。   Note that FIG. 10 shows only data and programs essential to the present embodiment, and general-purpose data and programs such as OS are not shown.

(マスターデータ処理ノードテーブル)
図11は、マスターデータ処理ノードテーブル1051の構成を示す図である。
(Master data processing node table)
FIG. 11 is a diagram showing the configuration of the master data processing node table 1051.

かかるマスターデータ処理ノードテーブル1051は、データ書込/検索要求ノードがデータファイルの内容や形式などから、マスターデータ処理ノードを決定するために使用する。図3〜図9に示した例では、マスターデータ処理ノード220は固定したノードのように示されていたが、実際には、データ書込/検索要求ノード210がデータファイルの内容や形式などから決定する。なぜなら、マスターデータのDBなどの作成に当たっては、同種あるいは同形式のデータを管理するのが効率的である。さらに、1つのノードをマスターデータ処理ノード専用にするのではなく、全てのノードがマスターデータを分散管理することで、ノードへの負荷を分散することができる。   The master data processing node table 1051 is used by the data write / search request node to determine a master data processing node from the contents and format of the data file. In the example shown in FIGS. 3 to 9, the master data processing node 220 is shown as a fixed node. However, in reality, the data write / search request node 210 is based on the contents and format of the data file. decide. This is because it is efficient to manage data of the same type or the same format when creating a master data DB or the like. Furthermore, instead of dedicating one node to the master data processing node, all nodes can manage the master data in a distributed manner, whereby the load on the nodes can be distributed.

図11において、マスターデータ処理ノードを決める条件として、ファイル内容1101やファイル形式1102のそれぞれ又はその組合せに対応付けて、マスターデータ処理ノードとなるノードのノードIDが記憶されている。なお、図11においては、理解を容易にするため、ノードIDは図3〜図9に示した参照番号を援用した。   In FIG. 11, as a condition for determining a master data processing node, a node ID of a node serving as a master data processing node is stored in association with each of the file contents 1101 and the file format 1102 or a combination thereof. In FIG. 11, the reference numbers shown in FIGS. 3 to 9 are used as node IDs for easy understanding.

(フィンガーテーブル及びフィンガーテーブル格納部)
図12は、フィンガーテーブル1044及びフィンガーテーブル格納部1052の構成を示す図である。
(Finger table and finger table storage)
FIG. 12 is a diagram illustrating the configuration of the finger table 1044 and the finger table storage unit 1052.

図12のフィンガーテーブル1044は、分散データ書込元ノードID1211に対応して分散データ書込先ノードID1212のセットが記憶されている。図12においては、各ノードIDは図3〜図9の参照番号を援用している。なお、フィンガーテーブルについては、図12の構成に限定することはなく、分散データの書込元と書込先との関連が記述されていればよい。フィンガーテーブルの例については、非特許文献1を参照されたい。   The finger table 1044 in FIG. 12 stores a set of distributed data write destination node IDs 1212 corresponding to the distributed data write source node IDs 1211. In FIG. 12, each node ID uses the reference numbers in FIGS. Note that the finger table is not limited to the configuration shown in FIG. 12, and it is only necessary to describe the relationship between the write source and the write destination of the distributed data. See Non-Patent Document 1 for examples of finger tables.

図12のフィンガーテーブル格納部1052は、上記構成のフィンガーテーブルのどれを分散データの分散書込に使用したかを、ファイル名に対応付けて記録する。各データのファイル名1221に対応付けて使用したフィンガーテーブル1222が記憶される。もし、ノードによって使用するフィンガーテーブルが固定であるなら、書込元ノードIDに対応付けてフィンガーテーブルを記憶することになる。   The finger table storage unit 1052 in FIG. 12 records which of the above-configured finger tables was used for distributed writing of distributed data in association with the file name. A finger table 1222 used in association with the file name 1221 of each data is stored. If the finger table used by the node is fixed, the finger table is stored in association with the write source node ID.

(検索データの送信先)
図13は、検索データ送信先情報1045の構成を示す図である。
(Search data destination)
FIG. 13 is a diagram showing a configuration of the search data transmission destination information 1045.

検索データ送信先情報1045は、マスターデータ処理ノードに障害が発生した場合に代替して分散データを検索するレプリカデータ処理ノードからの検索要請に対して、各レプリカデータ処理ノードが分散データを何処に送信するかの送信先を記憶する。図13においては、書込/検索するデータのファイル名1301に対応付けて検索した分散データの送信先ノードID1302が記憶されている。なお、送信先ノードID1302は、図3〜図10の参照番号を援用した。図13においては、図6の場合(送信先ノードID1302はレプリカデータ処理ノード230−1)と、図7の場合(送信先ノードID1302はデータ書込/検索要求ノード210)との、送信先を示している。   The search data transmission destination information 1045 indicates where each replica data processing node stores the distributed data in response to a search request from a replica data processing node that searches for distributed data instead of when a failure occurs in the master data processing node. Stores the transmission destination. In FIG. 13, the transmission destination node ID 1302 of the distributed data searched in association with the file name 1301 of the data to be written / searched is stored. In addition, the reference number of FIGS. 3-10 was used for transmission destination node ID1302. 13, the transmission destinations in the case of FIG. 6 (transmission destination node ID 1302 is the replica data processing node 230-1) and the case of FIG. 7 (transmission destination node ID 1302 is the data write / search request node 210) are shown. Show.

なお、図13は、ファイル名に対応付けて送信先を設定しているが、例えば、マスターデータ処理ノードがどれか、代替のレプリカデータ処理ノードがどれか、データ書込/検索要求ノードがどれか、などに対応付けてもよい。さらに、システムの設計に従った対応付けが可能である。   In FIG. 13, the transmission destination is set in association with the file name. For example, which is the master data processing node, which is the alternative replica data processing node, which is the data write / search request node Or the like. Furthermore, association according to system design is possible.

(ハッシュテーブル及び保存データ)
図14は、ハッシュテーブル1053及び保存データ1054の構成を示す図である。
(Hash table and stored data)
FIG. 14 is a diagram showing the configuration of the hash table 1053 and the saved data 1054.

図14のハッシュテーブル1053は、ハッシュ値の比較によりデータを検索し、ハッシュ値が一致したデータファイルを検索データとするための検索キーテーブルである。データファイルに対して別途にIDなどの検索キーを付すのではなく、データの内容から算出されたハッシュ値を検索キーとすることで、容易に検索キーを付すことができると共に、秘匿性が優れている。   The hash table 1053 in FIG. 14 is a search key table for searching for data by comparing hash values and using a data file with a matching hash value as search data. By using a hash value calculated from the contents of the data as a search key instead of attaching a search key such as ID separately to the data file, the search key can be easily attached and has excellent confidentiality. ing.

ハッシュテーブル1053は、ハッシュ値1411に対応付けられてファイル名が記憶されている。各ノードは、検索を要請されたデータファイルのハッシュ値により一致するハッシュ値のファイルを探し出し、保存データDBからそのファイルを読み出すことができる。ハッシュテーブルの詳細については、その一例が特許文献2に記載されているので、参照されたい。   The hash table 1053 stores a file name in association with the hash value 1411. Each node can find a file having a hash value that matches the hash value of the data file requested to be searched, and can read the file from the stored data DB. For details of the hash table, refer to Patent Document 2 for an example.

(各ノード間の送信メッセージ)
図15は、各ノード間の送信メッセージ1046の構成を示す図である。
(Sent messages between each node)
FIG. 15 is a diagram showing a configuration of a transmission message 1046 between the nodes.

図15の送信メッセージ1510は、データ書込/検索要求ノードから送信される送信メッセージである。1511は、マスターデータ処理ノードへの書込要求の送信メッセージの構成を示している。ここで、括弧で示した「分散データ送信先」は、データ書込/検索要求ノードが主導して分散データ報告先を指定する場合に使用されるが、マスターデータ処理ノードが予め保持している場合や、データ内容やデータ形式から決定される場合は、使用されない。1512は、マスターデータ処理ノードや障害時にレプリカデータ処理ノードの1つである障害支援ノードに送信される検索要求の送信メッセージである。検索要求がいずれによるかに対応して、マスターデータ処理ノードへの正常な検索要求であるか/障害支援ノードへの障害支援の検索要求であるかを示すデータ以外は共通である。なお、括弧で示した「分散データ送信先」は、書込要求と同様である。   A transmission message 1510 in FIG. 15 is a transmission message transmitted from the data write / search request node. Reference numeral 1511 denotes the configuration of a transmission message for a write request to the master data processing node. Here, the “distributed data transmission destination” shown in parentheses is used when the data write / search request node takes the lead in specifying the distributed data report destination, but the master data processing node holds it in advance. If it is determined from the data content or data format, it is not used. A search request transmission message 1512 is transmitted to the master data processing node or a failure support node that is one of the replica data processing nodes in the event of a failure. The data other than the data indicating whether the search request is a normal search request to the master data processing node or a failure support search request to the failure support node is common. The “distributed data transmission destination” shown in parentheses is the same as the write request.

図15の送信メッセージ1520は、マスターデータ処理ノードから送信される送信メッセージである。1521は、データ保存後にレプリカデータ処理ノードに送信される分散データ書込要求の送信メッセージである。なお、ここでは、フィンガーテーブルも分散データと共に送信される。   A transmission message 1520 in FIG. 15 is a transmission message transmitted from the master data processing node. Reference numeral 1521 denotes a distributed data write request transmission message transmitted to the replica data processing node after storing the data. Here, the finger table is also transmitted together with the distributed data.

図15の送信メッセージ1530は、レプリカデータ処理ノードの1つである障害支援ノーから送信される送信メッセージである。1531は、フィンガーテーブルにより確定した他のレプリカデータ処理ノードへの分散データ検索要求の送信メッセージである。なお、括弧で示した「分散データ送信先」は、図8のように分散データの送信先が要求元と異なる場合に使用される。分散データの送信先が要求元と同じ場合は、使用しなくてもよい。1532は、図8のように分散データの送信先が要求元と異なり、データ書込/検索要求ノードである場合のフィンガーテーブルの送信メッセージである。   A transmission message 1530 in FIG. 15 is a transmission message transmitted from a failure support node that is one of the replica data processing nodes. Reference numeral 1531 denotes a transmission message of a distributed data search request to another replica data processing node determined by the finger table. The “distributed data transmission destination” shown in parentheses is used when the transmission destination of the distributed data is different from the request source as shown in FIG. When the destination of the distributed data is the same as the request source, it may not be used. Reference numeral 1532 denotes a finger table transmission message when the distributed data transmission destination is a data write / search request node as shown in FIG.

《各ノードとして動作する情報処理装置の処理手順》
図16は、情報処理プログラムの処理手順を示すフローチャートである。以下、図16〜図19に示すフローチャートは、図10のCPU1010が、RAM1040を使用しながら実行し、図2〜図9に図示された各機能構成部及びその処理を実現する。
<< Processing procedure of information processing apparatus operating as each node >>
FIG. 16 is a flowchart showing the processing procedure of the information processing program. Hereinafter, the flowcharts illustrated in FIGS. 16 to 19 are executed by the CPU 1010 illustrated in FIG. 10 using the RAM 1040, and realize the functional components illustrated in FIGS.

まず、ステップS1610において、自装置内部からあるいは外部装置からデータをシステム内に書き込む指示があったか/データを検索する指示があったかを判定する。データ書込またはデータ検索の指示があればステップS1612に進んで、情報処理装置1000はデータ書込/検索要求ノードとして動作する(図17参照)。次に、ステップS1620において、他のノードからデータを書き込む指示があったか/データを検索する指示があったかを判定する。データ書込またはデータ検索の指示があればステップS1622に進んで、情報処理装置1000はマスターデータ処理ノードとして動作する(図18参照)。次に、ステップS1630において、他のノードから分散データを書き込む指示があったか/分散データを検索する指示があったかを判定する。分散データ書込または分散データ検索の指示があればステップS1632に進んで、情報処理装置1000はレプリカデータ処理ノードとして動作する(図19参照)。   First, in step S1610, it is determined whether there is an instruction to write data into the system from the own apparatus or from an external apparatus / whether there is an instruction to search for data. If there is a data write or data search instruction, the process advances to step S1612, and the information processing apparatus 1000 operates as a data write / search request node (see FIG. 17). Next, in step S1620, it is determined whether there is an instruction to write data / an instruction to search for data from another node. If there is an instruction for data writing or data retrieval, the process advances to step S1622, and the information processing apparatus 1000 operates as a master data processing node (see FIG. 18). Next, in step S1630, it is determined whether there is an instruction to write distributed data from another node / an instruction to search for distributed data. If distributed data write or distributed data search is instructed, the process advances to step S1632, and the information processing apparatus 1000 operates as a replica data processing node (see FIG. 19).

(データ検索要求ノード実行モジュール)
図17は、データ検索要求ノードとして動作する場合(S1612)の処理手順を示すフローチャートである。
(Data search request node execution module)
FIG. 17 is a flowchart showing a processing procedure when operating as a data search request node (S1612).

まず、ステップS1710において、自装置内部からあるいは外部装置からデータをシステム内に書き込む指示があったかを判定する。データ書込の指示があればステップS1712に進んで、送信データを含む送信メッセージを予め決まったマスターデータ処理ノード、あるいは選択したマスターデータ処理ノードに送信する。なお、送信メッセージは図15の送信メッセージ1511のフォーマットを有する。次に、ステップS1714において、送信エラーであるか否かを判断する。送信エラーが無ければ処理を終了する。送信エラーが有ればステップS1716に進んで、エラーを報知する。なお、エラー報知は自装置から行なっても、あるいはデータ書込を指示した外部装置から行なってもよい。   First, in step S1710, it is determined whether there is an instruction to write data into the system from within the own apparatus or from an external apparatus. If there is an instruction to write data, the process proceeds to step S1712, and a transmission message including transmission data is transmitted to a predetermined master data processing node or a selected master data processing node. Note that the transmission message has the format of the transmission message 1511 of FIG. Next, in step S1714, it is determined whether there is a transmission error. If there is no transmission error, the process is terminated. If there is a transmission error, the process proceeds to step S1716 to notify the error. The error notification may be performed from its own device or from an external device that has instructed data writing.

次に、ステップS1720において、自装置内部からあるいは外部装置からデータをシステム内から検索する指示があったかを判定する。データ検索の指示があればステップS1722に進んで、検索するデータを書き込んだマスターデータ処理ノードにデータ検索要求の送信メッセージを送信する。なお、送信メッセージは、図15の送信メッセージ1512のフォーマットを有する。次に、ステップS1724において、送信エラーがあったか否かを判断する。送信エラーが無ければ処理を終了する。送信エラーが有ればステップS1726に進んで、障害支援ノードに対してデータ検索要求の送信メッセージを送信する。なお、送信メッセージは、図15の送信メッセージ1512のフォーマットである。次に、ステップS1728において、障害支援ノードからフィンガーテーブルの送信があれば受信する。このステップS1728は図8の場合の処理であり、障害支援ノードからフィンガーテーブルの送信がなければ、スキップして処理を終了する。   Next, in step S1720, it is determined whether there is an instruction to retrieve data from within the system from within the own apparatus or from an external apparatus. If there is a data search instruction, the process advances to step S 1722 to transmit a data search request transmission message to the master data processing node in which the data to be searched is written. Note that the transmission message has the format of the transmission message 1512 of FIG. Next, in step S1724, it is determined whether there has been a transmission error. If there is no transmission error, the process is terminated. If there is a transmission error, the process advances to step S1726 to transmit a data retrieval request transmission message to the failure support node. The transmission message has the format of the transmission message 1512 in FIG. Next, in step S1728, if a finger table is transmitted from the failure support node, it is received. This step S1728 is processing in the case of FIG. 8, and if there is no transmission of the finger table from the failure support node, the processing is skipped and the processing is ended.

次に、ステップS1730において、検索したデータを受信したか否かを判定する。データの受信であればステップS1732において、マスターデータ処理ノードからの受信であるかを判断する。マスターデータ処理ノードからのデータ受信であれば、データの検索が正常に完了したと考えられるので、ステップS1738において検索データとして記憶する。一方、マスターデータ処理ノードからのデータでなければステップS1734に進んで、障害支援ノードからの受信であるかを判断する。障害支援ノードからのデータ受信であれば、分散データの検索とマージとが障害支援ノードで完了したと考えられるので、ステップS1738において検索データとして記憶する。一方、障害支援ノードからのデータでなければ、分散データの検索が指示された他のレプリカデータ処理ノードからのデータと判断する。従って、ステップS1736に進んで、フィンガーテーブルに基づいて全分散データが検索され送信されたのを待って、それをマージする。そして、ステップS1738においてマージした復元データを検索データとして記憶する。   Next, in step S1730, it is determined whether the retrieved data has been received. If it is data reception, in step S1732, it is determined whether it is reception from a master data processing node. If the data is received from the master data processing node, it is considered that the data search has been completed normally, and is stored as search data in step S1738. On the other hand, if it is not data from the master data processing node, the process advances to step S1734 to determine whether the data is received from the failure support node. If the data is received from the failure support node, it is considered that the search and merging of the distributed data has been completed at the failure support node, so that it is stored as search data in step S1738. On the other hand, if the data is not from the failure support node, it is determined as data from another replica data processing node instructed to search for distributed data. Accordingly, the process proceeds to step S1736 to wait until all distributed data is retrieved and transmitted based on the finger table and merged. The restored data merged in step S1738 is stored as search data.

(マスターデータ処理ノード実行モジュール)
図18は、マスターデータ処理ノードとして動作する場合(S1622)の処理手順を示すフローチャートである。
(Master data processing node execution module)
FIG. 18 is a flowchart showing a processing procedure when operating as a master data processing node (S1622).

まず、ステップS1810において、データ書込/検索要求ノードからデータ書込要求があったかを判定する。データ書込要求があればステップS1812に進んで、受信データを書き込んで保存する。次に、ステップS1814において、保存データの複製の分散データの送信先を決定するためにフィンガーテーブルを参照する。そして、フィンガーテーブルに基づいて決定された送信先へ分散データ及び使用したフィンガーテーブルを送信する。   First, in step S1810, it is determined whether there is a data write request from the data write / search request node. If there is a data write request, the process proceeds to step S1812, where the received data is written and stored. Next, in step S1814, the finger table is referred to in order to determine the transmission destination of the distributed data of the stored data replica. Then, the distributed data and the used finger table are transmitted to the transmission destination determined based on the finger table.

次に、ステップS1820において、データ書込/検索要求ノードからデータ検索要求があったかを判定する。データ検索要求があればステップS1822に進んで、ハッシュ値を検索キーとして要求データを検索する。前述の実施形態においては、次に、ステップS1824に進んで、検索したデータをデータ書込/検索ノードへ返信する。   Next, in step S1820, it is determined whether or not there is a data search request from the data write / search request node. If there is a data search request, the process advances to step S1822 to search for the requested data using the hash value as a search key. In the above-described embodiment, the process proceeds to step S1824, and the retrieved data is returned to the data write / search node.

図18のステップS1830とS1832とは、オプションとしての処理である。上述の実施形態では、障害支援ノードに分散データの検索を要求するのはデータ書込/検索ノードであった。このステップS1830とS1832では、マスターデータ処理ノードが動作可能であるが検索エラーが発生した場合の処理として、ステップS1832において、マスターデータ処理ノードから障害支援ノードに分散データの検索を依頼する。このオプションによれば、データ書込/検索要求ノードの負荷や通信負荷の軽減につながる。   Steps S1830 and S1832 in FIG. 18 are optional processing. In the above-described embodiment, the data write / search node requests the failure support node to search for distributed data. In steps S1830 and S1832, the master data processing node is operable but a search error occurs. In step S1832, the master data processing node requests the failure support node to search for distributed data. This option leads to a reduction in load on the data write / search request node and communication load.

(レプリカデータ処理ノード実行モジュール)
図19は、レプリカデータ処理ノードとして動作する場合(S1632)の処理手順を示すフローチャートである。
(Replica data processing node execution module)
FIG. 19 is a flowchart showing a processing procedure when operating as a replica data processing node (S1632).

まず、ステップS1910において、障害支援ノードから分散データの書込要求があったかを判定する。分散データ書込要求があればステップS1912に進んで、分散データを受信する。そして、ステップS1914において、分散データを記憶して保持する。   First, in step S1910, it is determined whether there has been a distributed data write request from the failure support node. If there is a distributed data write request, the process advances to step S1912 to receive the distributed data. In step S1914, the distributed data is stored and held.

次に、ステップS1920において、障害支援ノードから分散データの検索要求があったかを判定する。分散データ検索要求があればステップS1922に進んで、ハッシュ値を検索キーとして要求された分散データを検索する。ステップS1924においては、返信先の指定があるか否かが判断される。返信先の指定がなければステップS1926に進んで、検索した分散データを直接の検索指示元のマスターデータ処理ノードへ返信する。一方、返信先の指定があればステップS1928に進んで、検索した分散データを指定された返信元へ返信する。図8のように、データを要求しているデータ書込/検索要求ノードに直接、検索した分散データを返信する場合は、返信先としてデータ書込/検索要求ノードが指定される。   Next, in step S1920, it is determined whether there is a distributed data search request from the failure support node. If there is a distributed data search request, the process advances to step S1922 to search the requested distributed data using the hash value as a search key. In step S1924, it is determined whether a reply destination is designated. If no reply destination is designated, the process advances to step S1926 to return the retrieved distributed data to the master data processing node that is the direct retrieval instruction source. On the other hand, if a reply destination is designated, the process proceeds to step S1928, and the retrieved shared data is returned to the designated reply source. As shown in FIG. 8, when the distributed data retrieved is directly returned to the data write / search request node requesting the data, the data write / search request node is designated as a reply destination.

[第3実施形態]
第2実施形態においては、マスターデータ処理ノードが使用するフィンガーテーブルは、自ノードが持っているフィンガーテーブルであった。しかしながら、データ検索を行なうデータ書込/検索要求ノードとしては、自ノードに都合の良い(出来るだけ近い:特に、分散データの返信先が直接である場合など)フィンガーテーブルを使用したい場合もあり得る。本実施形態においては、データ書込/検索要求ノードがデータ書込要求時にマスターデータ処理ノードが使用するフィンガーテーブルを送信メッセージで指定する。本実施形態によれば、マスターデータ処理ノードの置かれたシステム内の環境によらず、データ書込/検索要求ノードのシステム内の環境に対応した分散データの保持が可能になる。
[Third Embodiment]
In the second embodiment, the finger table used by the master data processing node is a finger table owned by the own node. However, as a data write / search request node for performing data search, there may be a case where it is desired to use a finger table that is convenient to the own node (as close as possible: especially when the return destination of distributed data is direct). . In the present embodiment, the data write / search request node specifies the finger table used by the master data processing node in the transmission message when the data write request is made. According to the present embodiment, it is possible to hold distributed data corresponding to the environment in the system of the data write / search request node regardless of the environment in the system where the master data processing node is placed.

なお、第3実施形態の第2実施形態との相違点は、データ書込/検索要求ノードがデータ書込要求時にマスターデータ処理ノードに送信する送信メッセージのフォーマットである。従って、第3実施形態の他の構成及び動作は第2実施形態と同様であるので、説明は省略する。   The difference of the third embodiment from the second embodiment is the format of a transmission message that the data write / search request node transmits to the master data processing node when a data write request is made. Accordingly, the other configuration and operation of the third embodiment are the same as those of the second embodiment, and thus description thereof is omitted.

(データ書込/検索要求ノードからマスターデータ処理ノードへの送信メッセージ)
図20は、データ書込/検索要求ノードからマスターデータ処理ノードへの送信メッセージ2010の構成を示す図である。
(Send message from data write / search request node to master data processing node)
FIG. 20 is a diagram showing a configuration of a transmission message 2010 from the data write / search request node to the master data processing node.

図20の送信メッセージ2011では、図15の送信メッセージ1511に比較して、フィンガーテーブル2012が追加されている。このフィンガーテーブル2012は、データ書込/検索要求ノードが分散データを分散してほしいノードを指定している。   In the transmission message 2011 of FIG. 20, a finger table 2012 is added compared to the transmission message 1511 of FIG. The finger table 2012 designates a node to which the data write / search request node wants the distributed data to be distributed.

[第4実施形態]
第2実施形態においては、マスターデータ処理ノードの障害時には、図示したシステムでマスターデータ処理ノードの右回り(時計回り)で次のレプリカデータ処理ノードと、暗黙の了解があった。しかしながら、各ノードの負荷のバランスを考えると、データ書込/検索要求ノードが障害支援ノードを選択可能であるのが望ましい。本実施形態においては、データ書込/検索要求ノードが任意のレプリカ処理ノードを障害支援ノードとして選択できる。本実施形態によれば、各ノードの負荷のバランスをさらに平均化することができる。
[Fourth Embodiment]
In the second embodiment, when the master data processing node fails, there is an implicit understanding with the next replica data processing node clockwise (clockwise) of the master data processing node in the illustrated system. However, considering the load balance of each node, it is desirable that the data write / search request node can select the failure support node. In this embodiment, the data write / search request node can select an arbitrary replica processing node as a failure support node. According to the present embodiment, it is possible to further average the load balance of each node.

なお、第4実施形態の第2実施形態との違いは、データ書込/検索要求ノードが任意のレプリカ処理ノードを障害支援ノードとして選択できる仕組みであり、特に構成及び動作の変更は必要無い。従って、構成及び動作の説明は第2実施形態の説明を援用する。   The difference of the fourth embodiment from the second embodiment is a mechanism in which the data write / search request node can select an arbitrary replica processing node as a failure support node, and there is no need to change the configuration and operation in particular. Therefore, description of 2nd Embodiment is used for description of a structure and operation | movement.

(保存データ障害時の分散データ検索)
図21は、保存データ障害時の分散データ検索2100を示す図である。
(Distributed data search in case of stored data failure)
FIG. 21 is a diagram showing the distributed data search 2100 when a storage data failure occurs.

図21の分散データ検索2100では、第2実施形態の図6の例や図8の例と、障害が発生したマスターデータ処理ノードの代行をする障害支援ノードが異なる。すなわち、図21においては(2)のように、データ書込/検索要求ノード210は、レプリカデータ処理ノード230−2を、データ検索を代行する障害支援ノードとして分散データの検索を要求する。その結果、レプリカデータ処理ノード230−2がフィンガーテーブルを使って分散ノード検索を指示し、返信された分散データをマージしてデータ書込/検索要求ノード210に送信する。   In the distributed data search 2100 in FIG. 21, the failure support node acting on behalf of the master data processing node in which the failure has occurred is different from the example in FIG. 6 or the example in FIG. 8 of the second embodiment. That is, as shown in (2) in FIG. 21, the data write / search request node 210 requests the distributed data search using the replica data processing node 230-2 as a failure support node acting as a data search. As a result, the replica data processing node 230-2 instructs the distributed node search using the finger table, merges the returned distributed data, and transmits the merged data to the data write / search request node 210.

なお、データ書込/検索要求ノード210による障害支援ノードの選択を、例えば、データ内容やデータ形式などにより選択する場合には、データ書込/検索要求ノード210が図11に類似したテーブルを設けて、障害支援ノードとすべきノードIDを記憶すればよい。   When selecting the failure support node by the data write / search request node 210 based on, for example, data contents or data format, the data write / search request node 210 provides a table similar to FIG. Thus, the node ID to be the failure support node may be stored.

[第5実施形態]
第2乃至第4実施形態では、分散データのマージをするのは、障害支援ノードまたはデータ書込/検索要求ノードであった。しかしながら、システム内のノードの負荷の均一化を考慮すると、データ書込/検索要求ノードと、分散データの検索を指示する障害支援ノードと、分散データを受信してマージする分散データマージノードとが、独立に選択できるのが望ましい。本実施形態においては、データ書込/検索要求ノードと、分散データの検索を指示する障害支援ノードと、分散データを受信してマージする分散データマージノードとが、独立に選択できる構成を有する。本実施形態によれば、さらに、システム内のノードの負荷を自在に制御可能になる。
[Fifth Embodiment]
In the second to fourth embodiments, it is a failure support node or a data write / search request node that merges distributed data. However, considering the equalization of the load on the nodes in the system, there are a data write / search request node, a failure support node that instructs to search for distributed data, and a distributed data merge node that receives and merges distributed data. It is desirable that they can be selected independently. The present embodiment has a configuration in which a data write / search request node, a failure support node that instructs to search for distributed data, and a distributed data merge node that receives and merges distributed data can be selected independently. According to this embodiment, the load on the nodes in the system can be freely controlled.

なお、第5実施形態の第2実施形態との違いは、データ書込/検索要求ノードと、分散データの検索を指示する障害支援ノードと、分散データを受信してマージする分散データマージノードとが、独立に選択できる仕組みであり、特に構成及び動作の変更は必要無い。第2実施形態の図13に示す検索データ送信先情報を、検索データ送信先及び復元データ送信先の情報に変更するのみで実現可能である。従って、他の構成及び動作の説明は第2実施形態の説明を援用する。   The difference of the fifth embodiment from the second embodiment is that a data write / search request node, a failure support node that instructs to search for distributed data, and a distributed data merge node that receives and merges distributed data However, it is a mechanism that can be selected independently, and there is no need to change the configuration and operation. This can be realized simply by changing the search data transmission destination information shown in FIG. 13 of the second embodiment to information on the search data transmission destination and the restored data transmission destination. Therefore, description of 2nd Embodiment is used for description of another structure and operation | movement.

(保存データ障害時の分散データ検索)
図22は、保存データ障害時の分散データ検索2200を示す図である。
(Distributed data search in case of stored data failure)
FIG. 22 is a diagram showing a distributed data search 2200 when a storage data failure occurs.

図22の分散データ検索2200では、第2実施形態の図6の例や図8の例と異なり、障害が発生したマスターデータ処理ノードの代行をする障害支援ノードと、分散データをマージする分散データマージノードとが異なるノードである。すなわち、図21においては(4)のように、データ書込/検索要求ノード210は、レプリカデータ処理ノード230−1を、データ検索を代行する障害支援ノードとして選択し、一方、返信された分散データをマージするノードとしてはレプリカデータ処理ノード230−2を選択する。   In the distributed data search 2200 of FIG. 22, unlike the example of FIG. 6 or the example of FIG. 8 of the second embodiment, the failure support node acting on behalf of the master data processing node in which the failure has occurred and the distributed data that merges the distributed data The merge node is a different node. That is, as shown in (4) in FIG. 21, the data write / search request node 210 selects the replica data processing node 230-1 as a failure support node acting as a data search, while the distributed distribution returned. The replica data processing node 230-2 is selected as a node to merge data.

なお、かかる選択は、データ書込/検索要求ノード210で行なっても、マスターデータ処理ノードで行なってもよい。   Such selection may be performed by the data write / search request node 210 or the master data processing node.

(検索データ送信先及び復元データ送信先の情報)
図23は、検索データ送信先及び復元データ送信先情報2345の構成を示す図である。この情報は、図13の検索データ送信先情報1045に復元データの送信先ノードID2303を追加したものである。
(Information on search data transmission destination and restoration data transmission destination)
FIG. 23 is a diagram illustrating a configuration of the search data transmission destination and restoration data transmission destination information 2345. This information is obtained by adding a restoration data transmission destination node ID 2303 to the search data transmission destination information 1045 of FIG.

図23においては、その一行目に、図22のように動作するために、障害支援ノードがレプリカデータ処理ノード230−1とした場合に、分散データの送信先がレプリカデータ処理ノード230−2であり、ここでマージされた復元データの送信先がデータ書込/検索要求ノード210と指定されている。   In FIG. 23, in order to operate as shown in FIG. 22 in the first line, when the failure support node is the replica data processing node 230-1, the destination of the distributed data is the replica data processing node 230-2. Yes, the destination of the restored data merged here is designated as the data write / search request node 210.

なお、図23を図11のマスターデータ処理ノードテーブルと組み合わせれば、さらに、多様なノードの負荷の平均化も可能である。また、図23のデータを、システム内のノードが共有すれば、どの段階でどのノードが送信先を指定するかについても融通性が生まれる。   If FIG. 23 is combined with the master data processing node table of FIG. 11, it is possible to average the loads of various nodes. Further, if the nodes in the system share the data shown in FIG. 23, flexibility can be achieved as to which node designates a transmission destination at which stage.

[第6実施形態]
第2乃至第5実施形態は、1つのDHT型P2P方式のネットワークに注目して、その動作を説明した。しかし、複数のDHT型P2P方式のネットワークが上位のネットワークで接続され、その上位のネットワークを介して上位の情報処理システムが複数のDHT型P2P方式のネットワークを管理するようなシステムも可能である。本実施形態によれば、負荷を均一にしようとする各DHT型P2P方式のネットワークと、各DHT型P2P方式のネットワークをデータプール媒体と見なして、全体のデータ管理を一元的に行なうシステムが実現できる。
[Sixth Embodiment]
In the second to fifth embodiments, the operation has been described focusing on one DHT type P2P network. However, a system in which a plurality of DHT-type P2P systems networks are connected by a higher-level network, and a higher-level information processing system manages a plurality of DHT-type P2P-type networks via the higher-level network is also possible. According to the present embodiment, a system for centrally managing the entire data is realized by regarding each DHT type P2P network that attempts to make the load uniform and each DHT type P2P network as a data pool medium. it can.

《本実施形態に係る複数の情報処理システムが接続したシステムの構成》
図24は、本実施形態に係る複数の情報処理システムが接続したシステム2400の構成を示すブロック図である。
<< System configuration in which a plurality of information processing systems according to this embodiment are connected >>
FIG. 24 is a block diagram illustrating a configuration of a system 2400 in which a plurality of information processing systems according to the present embodiment are connected.

図24において、200−1〜200−3は、それぞれが上記第2乃至第5実施形態で示した1つのDHT型P2P方式のネットワークである。この3つのDHT型P2P方式のネットワーク200−1〜200−3がネットワーク2420を介して、少なくとも1つのノード間で接続されている。ネットワーク2420には、さらに、上位の情報処理システム2410が接続されている。この上位の情報処理システム2410は、各DHT型P2P方式のネットワーク200−1〜200−3を1つのデータプール媒体(データ記憶媒体あるいはサーバ)と見なして制御する。   In FIG. 24, reference numerals 200-1 to 200-3 denote one DHT type P2P network shown in the second to fifth embodiments. The three DHT type P2P system networks 200-1 to 200-3 are connected between at least one node via the network 2420. A higher-level information processing system 2410 is further connected to the network 2420. The host information processing system 2410 controls each DHT type P2P network 200-1 to 200-3 as one data pool medium (data storage medium or server).

[他の実施形態]
以上、本発明の実施形態について詳述したが、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステム又は装置も、本発明の範疇に含まれる。
[Other Embodiments]
As mentioned above, although embodiment of this invention was explained in full detail, the system or apparatus which combined the separate characteristic contained in each embodiment how was included in the category of this invention.

また、本発明は、複数の機器から構成されるシステムに適用されても良いし、単体の装置に適用されても良い。さらに、本発明は、実施形態の機能を実現する制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされる制御プログラム、あるいはその制御プログラムを格納した媒体、その制御プログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。   Further, the present invention may be applied to a system constituted by a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where a control program that realizes the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a control program installed in the computer, a medium storing the control program, and a WWW (World Wide Web) server that downloads the control program are also included in the scope of the present invention. include.

[実施形態の他の表現]
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
[Other expressions of embodiment]
A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムであって、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、
を有することを特徴とする情報処理システム。
(付記2)
前記第1ノードは、
前記第2ノードに障害が発生した場合に、前記複数の第3ノードの少なくとも1つに対して、前記複数の第3ノードに分散保持させた前記データの読出しを指示する指示手段を有することを特徴とする付記1に記載の情報処理システム。
(付記3)
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼手段と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元手段と、
前記復元されたデータを前記第1ノードに送信する送信手段とを有することを特徴とする付記1又は2に記載の情報処理システム。
(付記4)
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼手段と、
前記分散識別情報を前記第1ノードに通知する通知手段と、
自ノードに分散保持されたデータを前記第1ノードに送信する送信手段とを有し、
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元手段を有することを特徴とする付記1又は2に記載の情報処理システム。
(付記5)
前記第1ノードは、前記P2P方式のネットワークに接続された複数のノードから前記保存するデータに対応して前記第2ノードを選択する選択手段をさらに有することを特徴とする付記1乃至4のいずれか1項に記載の情報処理システム。
(付記6)
前記第2ノードは、前記分散識別情報にしたがって、前記P2P方式のネットワークに接続された複数のノードから前記データを分散保持させる前記複数の第3ノードを選択する選択手段をさらに有することを特徴とする付記1乃至5のいずれか1項に記載の情報処理システム。
(付記7)
前記分散識別情報はフィンガーテーブルであることを特徴とする付記1乃至6のいずれか1項に記載の情報処理システム。
(付記8)
前記分散保持されたデータの検索は、分散ハッシュテーブル(DHT)を用いて行なわれることを特徴とする付記1乃至7のいずれか1項に記載の情報処理システム。
(付記9)
複数のノードがP2P方式のネットワークに接続され、データを複製して2重に保持する情報処理システムのバックアップ方法であって、
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含むことを特徴とする情報処理システムのバックアップ方法。
(付記10)
付記1乃至8の何れかに記載の情報処理システムにおける、前記第1ノード、前記第2ノード、及び前記第3ノードの少なくとも何れか一つのノードとして機能することを特徴とする情報処理装置。
(付記11)
他のノードに対してデータの書込及び検索を要求する場合に、前記第1ノードとして機能することを特徴とする付記10に記載の情報処理装置。
(付記12)
他のノードからの指示にしたがってデータの書込及び検索を行なう場合に、前記第2ノードとして機能することを特徴とする付記10又は11に記載の情報処理装置。
(付記13)
前記第2ノードに障害がある場合に、前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして機能することを特徴とする付記10乃至12の何れかに記載の情報処理装置。
(付記14)
前記第3ノードとして機能する場合に、前記第2ノードから通知された前記分散識別情報に基づいて、自ノードのデータと他の第3ノードから返信されたデータとをマージして、前記第2ノードに保存した前記データを復元することを特徴とする付記13に記載の情報処理装置。
(付記15)
前記第2ノードからデータの分散保持の指示があった場合に、データの分散保持を行なう前記第3ノードとして機能することを特徴とする付記10乃至14の何れかに記載の情報処理装置。
(付記16)
付記10乃至15の何れかに記載の情報処理装置の制御方法であって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
を有することを特徴とする情報処理装置の制御方法。
(付記17)
付記10乃至15の何れかに記載の情報処理装置の制御プログラムであって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
(Appendix 1)
An information processing system including a plurality of nodes connected to a P2P network, duplicating data and holding it in duplicate,
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
Storage means for storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner Transmitting means for transmitting to at least one of the plurality of third nodes;
An information processing system comprising:
(Appendix 2)
The first node is
An instruction means for instructing at least one of the plurality of third nodes to read the data distributed and held in the plurality of third nodes when a failure occurs in the second node; The information processing system according to supplementary note 1, which is characterized.
(Appendix 3)
At least one of the plurality of third nodes is:
Request means for requesting to search and return data distributed and held in the remaining plurality of third nodes based on the distributed identification information;
Restoring means for restoring the data stored in the second node by merging the data of the own node and the returned data based on the distributed identification information;
The information processing system according to appendix 1 or 2, further comprising transmission means for transmitting the restored data to the first node.
(Appendix 4)
At least one of the plurality of third nodes is:
Requesting means for requesting to search for and return to the first node data distributed and held by the plurality of remaining third nodes based on the distributed identification information;
Notification means for notifying the first node of the distributed identification information;
Transmission means for transmitting the data distributed and held in the own node to the first node,
The first node has restoration means for merging data returned from the plurality of third nodes based on the distributed identification information and restoring the data stored in the second node. The information processing system according to appendix 1 or 2.
(Appendix 5)
Any one of Supplementary notes 1 to 4, wherein the first node further includes selection means for selecting the second node corresponding to the stored data from a plurality of nodes connected to the P2P network. The information processing system according to claim 1.
(Appendix 6)
The second node further includes selection means for selecting the plurality of third nodes that distribute and hold the data from a plurality of nodes connected to the P2P network according to the distribution identification information. The information processing system according to any one of appendices 1 to 5.
(Appendix 7)
The information processing system according to any one of appendices 1 to 6, wherein the distributed identification information is a finger table.
(Appendix 8)
The information processing system according to any one of appendices 1 to 7, wherein the search for the distributed and held data is performed using a distributed hash table (DHT).
(Appendix 9)
A backup method for an information processing system in which a plurality of nodes are connected to a P2P network and duplicated and retained in duplicate.
The information processing system is
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
A storing step of storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner And a transmission step for transmitting to at least one of the plurality of third nodes.
(Appendix 10)
The information processing apparatus according to any one of appendices 1 to 8, wherein the information processing apparatus functions as at least one of the first node, the second node, and the third node.
(Appendix 11)
The information processing apparatus according to appendix 10, wherein the information processing apparatus functions as the first node when data writing and retrieval are requested to another node.
(Appendix 12)
12. The information processing apparatus according to appendix 10 or 11, which functions as the second node when data is written and searched according to an instruction from another node.
(Appendix 13)
The information processing apparatus according to any one of appendices 10 to 12, wherein when there is a failure in the second node, the information processing apparatus functions as the third node that reads the data instead of the second node.
(Appendix 14)
When functioning as the third node, based on the distributed identification information notified from the second node, the data of the own node and the data returned from the other third node are merged, and the second node 14. The information processing apparatus according to appendix 13, wherein the data stored in the node is restored.
(Appendix 15)
15. The information processing apparatus according to any one of appendices 10 to 14, wherein the information processing apparatus functions as the third node that performs distributed holding of data when an instruction to distribute and hold data is received from the second node.
(Appendix 16)
An information processing apparatus control method according to any one of appendices 10 to 15,
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
A method for controlling an information processing apparatus, comprising:
(Appendix 17)
An information processing apparatus control program according to any one of appendices 10 to 15,
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
A computer-readable storage medium storing a control program for an information processing apparatus, characterized by causing a computer to execute.

Claims (10)

P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムであって、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、
を有することを特徴とする情報処理システム。
An information processing system including a plurality of nodes connected to a P2P network, duplicating data and holding it in duplicate,
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
Storage means for storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner Transmitting means for transmitting to at least one of the plurality of third nodes;
An information processing system comprising:
前記第1ノードは、
前記第2ノードに障害が発生した場合に、前記複数の第3ノードの少なくとも1つに対して、前記複数の第3ノードに分散保持させた前記データの読出しを指示する指示手段を有することを特徴とする請求項1に記載の情報処理システム。
The first node is
An instruction means for instructing at least one of the plurality of third nodes to read the data distributed and held in the plurality of third nodes when a failure occurs in the second node; The information processing system according to claim 1.
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼手段と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元手段と、
前記復元されたデータを前記第1ノードに送信する送信手段とを有することを特徴とする請求項1又は2に記載の情報処理システム。
At least one of the plurality of third nodes is:
Request means for requesting to search and return data distributed and held in the remaining plurality of third nodes based on the distributed identification information;
Restoring means for restoring the data stored in the second node by merging the data of the own node and the returned data based on the distributed identification information;
The information processing system according to claim 1, further comprising: a transmission unit that transmits the restored data to the first node.
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼手段と、
前記分散識別情報を前記第1ノードに通知する通知手段と、
自ノードに分散保持されたデータを前記第1ノードに送信する送信手段とを有し、
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元手段を有することを特徴とする請求項1又は2に記載の情報処理システム。
At least one of the plurality of third nodes is:
Requesting means for requesting to search for and return to the first node data distributed and held by the plurality of remaining third nodes based on the distributed identification information;
Notification means for notifying the first node of the distributed identification information;
Transmission means for transmitting the data distributed and held in the own node to the first node,
The first node has restoration means for merging data returned from the plurality of third nodes based on the distributed identification information and restoring the data stored in the second node. The information processing system according to claim 1 or 2.
前記第1ノードは、前記P2P方式のネットワークに接続された複数のノードから前記保存するデータに対応して前記第2ノードを選択する選択手段をさらに有することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理システム。   5. The first node according to claim 1, further comprising selection means for selecting the second node corresponding to the stored data from a plurality of nodes connected to the P2P network. The information processing system according to any one of claims. 前記第2ノードは、前記分散識別情報にしたがって、前記P2P方式のネットワークに接続された複数のノードから前記データを分散保持させる前記複数の第3ノードを選択する選択手段をさらに有することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。   The second node further includes selection means for selecting the plurality of third nodes that distribute and hold the data from a plurality of nodes connected to the P2P network according to the distribution identification information. The information processing system according to any one of claims 1 to 5. 複数のノードがP2P方式のネットワークに接続され、データを複製して2重に保持する情報処理システムのバックアップ方法であって、
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含むことを特徴とする情報処理システムのバックアップ方法。
A backup method for an information processing system in which a plurality of nodes are connected to a P2P network and duplicated and retained in duplicate.
The information processing system is
A first node for instructing data writing and retrieval;
A second node that stores data instructed to be written to the first node and reads the data in accordance with an instruction to search for the first node;
A third node that replicates and holds the data stored in the second node,
The second node is
A storing step of storing data instructed to be written by the first node to the own node;
The stored data is divided and transmitted to a plurality of the third nodes to be distributed and held, and distributed identification information that can identify the plurality of third nodes that holds the stored data in a distributed manner And a transmission step for transmitting to at least one of the plurality of third nodes.
請求項1乃至6の何れか1項に記載の情報処理システムにおける、前記第1ノード、前記第2ノード、及び前記第3ノードの少なくとも何れか一つのノードとして機能することを特徴とする情報処理装置。   The information processing system according to any one of claims 1 to 6, wherein the information processing system functions as at least one of the first node, the second node, and the third node. apparatus. 請求項8に記載の情報処理装置の制御方法であって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
を有することを特徴とする情報処理装置の制御方法。
A method for controlling an information processing apparatus according to claim 8, comprising:
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
A method for controlling an information processing apparatus, comprising:
請求項8に記載の情報処理装置の制御プログラムであって、
前記情報処理装置が前記第1ノードとして機能する場合に、データの書込及び検索を他のノードに指示し、データの検索中に前記データが保存された前記他のノードに障害がある場合に、さらに他のノードに検索を指示する指示ステップと、
前記情報処理装置が前記第1ノードとして機能する場合に、前記指示ステップにおける指示に応答して前記他のノード又は前記さらに他のノードで検索されたデータを、受信する受信ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、書込を指示されたデータを保存する共に、前記データを分散するノードを識別する分散識別情報にしたがって複数のノードに前記保存されたデータの複製を分割して分散保持させ、前記分散識別情報を他のノードに保持させるデータ保存ステップと、
前記情報処理装置が前記第2ノードとして機能する場合に、検索の指示にしたがって前記保存されたデータを読出す読出ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードの指示にしたがって、前記分散識別情報を保持する分散識別情報保持ステップと、
障害がある前記第2ノードの代わりに前記データの読出しを行なう前記第3ノードとして前記情報処理装置が機能する場合に、書込/検索要求ノードからの検索指示に応答して、前記分散識別情報に対応する複数のノードから保存されたデータの複製の一部を集めてマージし、保存したデータを復元するデータ復元ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、他のノードに保存されたデータの複製の一部を保持するデータ保持ステップと、
前記第2ノードからのデータの分散保持の指示に応じてデータの分散保持を行なう前記第3ノードとして前記情報処理装置が機能する場合に、前記データを保存する他のノードからの指示に応答して、前記データの複製の一部を検索して返信する検索ステップと、
をコンピュータに実行させることを特徴とする情報処理装置の制御プログラム。
A control program for an information processing apparatus according to claim 8,
When the information processing apparatus functions as the first node, the other node is instructed to write and search data, and the other node where the data is stored during the data search is faulty. An instruction step for instructing another node to perform a search;
When the information processing apparatus functions as the first node, a receiving step of receiving data retrieved in the other node or the further other node in response to an instruction in the instruction step;
When the information processing apparatus functions as the second node, the data that is instructed to be written is stored, and the data that is stored in a plurality of nodes according to distributed identification information that identifies nodes that distribute the data A data storage step of dividing and holding the copy of the distributed and holding the distributed identification information in other nodes;
A reading step of reading the stored data in accordance with a search instruction when the information processing apparatus functions as the second node;
When the information processing apparatus functions as the third node that reads the data instead of the second node having a fault, the distributed identification information is retained according to an instruction from another node. Steps,
In response to a search instruction from a write / search request node, when the information processing device functions as the third node that reads the data instead of the second node having a fault, the distributed identification information A data restoration step for collecting and merging a part of the duplicates of the saved data from a plurality of nodes corresponding to, and restoring the saved data;
When the information processing apparatus functions as the third node that performs distributed data retention in response to the data distributed data instruction from the second node, a part of a copy of data stored in another node is stored. A data holding step to hold;
When the information processing apparatus functions as the third node that performs distributed data holding in response to an instruction to distribute and hold data from the second node, it responds to an instruction from another node that stores the data. A search step for searching and returning a part of the copy of the data;
A computer-readable storage medium storing a control program for an information processing apparatus, characterized by causing a computer to execute.
JP2011040115A 2011-02-25 2011-02-25 Information processing system, data backup method, information processing apparatus, control method thereof, and control program Expired - Fee Related JP5655628B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011040115A JP5655628B2 (en) 2011-02-25 2011-02-25 Information processing system, data backup method, information processing apparatus, control method thereof, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011040115A JP5655628B2 (en) 2011-02-25 2011-02-25 Information processing system, data backup method, information processing apparatus, control method thereof, and control program

Publications (2)

Publication Number Publication Date
JP2012178015A true JP2012178015A (en) 2012-09-13
JP5655628B2 JP5655628B2 (en) 2015-01-21

Family

ID=46979827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011040115A Expired - Fee Related JP5655628B2 (en) 2011-02-25 2011-02-25 Information processing system, data backup method, information processing apparatus, control method thereof, and control program

Country Status (1)

Country Link
JP (1) JP5655628B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014157397A (en) * 2013-02-14 2014-08-28 Nec Corp Information processing system, information processing apparatus, data backup method, and control program for distributed data transmission
JP2015153067A (en) * 2014-02-13 2015-08-24 日本電気株式会社 storage system
US9842029B2 (en) 2015-03-25 2017-12-12 Kabushiki Kaisha Toshiba Electronic device, method and storage medium
JP2017220141A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management
JP2017220148A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019A (en) * 1853-09-13 Improvement in the manufacture of plain and figured fabrics
JP2007011500A (en) * 2005-06-28 2007-01-18 Mitsubishi Electric Corp Home gateway
JP2010271798A (en) * 2009-05-19 2010-12-02 Nippon Telegr & Teleph Corp <Ntt> Distributed data management device, method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019A (en) * 1853-09-13 Improvement in the manufacture of plain and figured fabrics
JP2007011500A (en) * 2005-06-28 2007-01-18 Mitsubishi Electric Corp Home gateway
JP2010271798A (en) * 2009-05-19 2010-12-02 Nippon Telegr & Teleph Corp <Ntt> Distributed data management device, method, and program

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSNG200900574063; 鹿島隆行: 'PC共有による安全で低コストなP2P分散ファイルシステムの提案' マルチメディア、分散、協調とモバイル(DICOMO)シンポジウム論文集1997年〜2006年版 Ver. 1.1, 20060831, (DICOMO 2004) p. 261-264, 社団法人情報処理学会 *
CSNJ200610049356; 西村淳: 'ネットワークノード上の余剰ディスク領域を利用した分散バックアップシステム' 第67回(平成17年)全国大会 講演論文集 (3), 20050302, p. 3-711 -- 3-712, 社団法人情報処理学会 *
JPN6014030491; 鹿島隆行: 'PC共有による安全で低コストなP2P分散ファイルシステムの提案' マルチメディア、分散、協調とモバイル(DICOMO)シンポジウム論文集1997年〜2006年版 Ver. 1.1, 20060831, (DICOMO 2004) p. 261-264, 社団法人情報処理学会 *
JPN6014030493; 西村淳: 'ネットワークノード上の余剰ディスク領域を利用した分散バックアップシステム' 第67回(平成17年)全国大会 講演論文集 (3), 20050302, p. 3-711 -- 3-712, 社団法人情報処理学会 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014157397A (en) * 2013-02-14 2014-08-28 Nec Corp Information processing system, information processing apparatus, data backup method, and control program for distributed data transmission
JP2015153067A (en) * 2014-02-13 2015-08-24 日本電気株式会社 storage system
US9842029B2 (en) 2015-03-25 2017-12-12 Kabushiki Kaisha Toshiba Electronic device, method and storage medium
JP2017220141A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management
JP2017220148A (en) * 2016-06-10 2017-12-14 富士通株式会社 Program, method, and device for information management

Also Published As

Publication number Publication date
JP5655628B2 (en) 2015-01-21

Similar Documents

Publication Publication Date Title
JP4696089B2 (en) Distributed storage system
KR101635238B1 (en) Distributed data storage
KR101905198B1 (en) Distributed data storage
US7231461B2 (en) Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
JP5714571B2 (en) Cache data processing using cache clusters in configurable mode
JP5655628B2 (en) Information processing system, data backup method, information processing apparatus, control method thereof, and control program
WO2018121456A1 (en) Data storage method, server and storage system
JP5548829B2 (en) Computer system, data management method, and data management program
JP2009205201A (en) Data backup method using de-duplication technique, storage control communication device and program
JP2009501456A (en) Peer data transfer integration
CN105493474A (en) System and method for supporting partition level journaling for synchronizing data in a distributed data grid
JPWO2011071104A1 (en) Distributed file system, data selection method thereof, and program
JP5945543B2 (en) System including middleware machine environment
JP2010271797A (en) Method, device and program for managing data position in distributed storage
JP2014157397A (en) Information processing system, information processing apparatus, data backup method, and control program for distributed data transmission
JP6035992B2 (en) Information processing system, data backup method, data backup program
WO2012046585A1 (en) Distributed storage system, method of controlling same, and program
JP5487420B2 (en) File duplication necessity determination method, communication apparatus, computer program, and peer-to-peer communication system
JP5690296B2 (en) Load balancing program and load balancing apparatus
JP6291977B2 (en) Distributed file system, backup file acquisition method, control device, and management device
KR20130130383A (en) Data replication apparatus and method using hierarchical organization of data servers
JPWO2011136261A1 (en) Storage system, storage system control method, and computer program
JP2011048427A (en) Data management system, distributed storage device thereof, user calculation terminal, computer program thereof, and data processing method
Feng et al. Oht: Hierarchical distributed hash tables
Cheng et al. A service-oriented approach to storage backup

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141110

R150 Certificate of patent or registration of utility model

Ref document number: 5655628

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees