JP5655628B2 - Information processing system, data backup method, information processing apparatus, control method thereof, and control program - Google Patents
Information processing system, data backup method, information processing apparatus, control method thereof, and control program Download PDFInfo
- Publication number
- JP5655628B2 JP5655628B2 JP2011040115A JP2011040115A JP5655628B2 JP 5655628 B2 JP5655628 B2 JP 5655628B2 JP 2011040115 A JP2011040115 A JP 2011040115A JP 2011040115 A JP2011040115 A JP 2011040115A JP 5655628 B2 JP5655628 B2 JP 5655628B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- distributed
- nodes
- search
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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.
しかしながら、特許文献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つに送信する送信手段と、
を有し、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼手段と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元手段と、
前記復元されたデータを前記第1ノードに送信する送信手段と、
を有することを特徴とする。
また、上記目的を達成するため、本発明に係るシステムは、
P2P方式のネットワークに接続された複数のノードを含み、データを複製して2重に保持する情報処理システムであって、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、
を有し、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼手段と、
前記分散識別情報を前記第1ノードに通知する通知手段と、
自ノードに分散保持されたデータを前記第1ノードに送信する送信手段と、を有し、
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元手段を有することを特徴とする。
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;
I have a,
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;
Transmitting means for transmitting the restored data to the first node;
Characterized in that it have a.
In order to achieve the above object, the system according to the present invention includes:
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;
Have
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. .
上記目的を達成するため、本発明に係る方法は、
複数のノードがP2P方式のネットワークに接続され、データを複製して2重に保持する情報処理システムのバックアップ方法であって、
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含み、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼ステップと、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元ステップと、
前記復元されたデータを前記第1ノードに送信する送信ステップと、
を含むことを特徴とする。
また、上記目的を達成するため、本発明に係る方法は、
複数のノードがP2P方式のネットワークに接続され、データを複製して2重に保持する情報処理システムのバックアップ方法であって、
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含み、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼ステップと、
前記分散識別情報を前記第1ノードに通知する通知ステップと、
自ノードに分散保持されたデータを前記第1ノードに送信する送信ステップと、
を含み、
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元ステップを含むことを特徴とする。
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 look including a transmission step of transmitting to at least one of the plurality of third nodes,
At least one of the plurality of third nodes is:
A requesting step of requesting to search and return data distributed and held in the remaining plurality of third nodes based on the distributed identification information;
A restoration step of merging the data of the own node and the returned data based on the distributed identification information to restore the data stored in the second node;
Transmitting the restored data to the first node;
The characterized by containing Mukoto.
In order to achieve the above object, the method according to the present invention includes:
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 Transmitting to at least one of the plurality of third nodes;
At least one of the plurality of third nodes is:
A requesting step for requesting to search for and return the data distributed and held in the remaining third nodes based on the distributed identification information to the first node;
A notification step of notifying the first node of the distributed identification information;
A transmission step of transmitting the data distributed and held in the own node to the first node;
Including
The first node includes a restoration step of merging data returned from the plurality of third nodes based on the distributed identification information and restoring the data stored in the second node. .
上記目的を達成するため、本発明に係る情報処理装置は、
上記情報処理システムにおける、前記第1ノード、前記第2ノード、及び前記第3ノードの少なくとも何れか一つのノードとして機能することを特徴とする。
In order to achieve the above object, an information processing 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. .
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。 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
図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
本実施形態によれば、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
図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
以下、本実施形態の基本的な動作を説明する。 Hereinafter, the basic operation of this embodiment will be described.
図2のデータ書込/検索要求ノード210には、書込/検索をするデータ210aがある。データ書込/検索要求ノード210の書込要求により、データ210aはその内容などによって選択されたマスターデータ処理ノード220の保存部222に保存データ210bとして複製される。そして、データ書込/検索要求ノード210のデータ210aは削除される。
The data write /
マスターデータ処理ノード220は、保存データ210bをハッシュテーブル225内のハッシュ値に対応付ける。ハッシュテーブル225の詳細な例は特許文献2に説明があるので、特許文献2を参照されたい。そして、分散識別情報保持部のフィンガーテーブル224に従って、保存データ210bの分散保持先を設定し、保存データ210bを分散データ生成部223で分割する。分割数は分散保存先の数に対応していても、さらに分散保存数の半分にしたり重なり部分を設けたりして、復元能力を高めることもできる。なお、フィンガーテーブル224の詳細な例は非特許文献1に説明があるので、非特許文献1を参照されたい。送信部221からは、フィンガーテーブル224により特定される分散データ保持先のレプリカデータ処理ノード230−1〜−3に分散データ及び分散データのハッシュ値の保持が要請される。図2には、フィンガーテーブル224及び231が1つのように図示されているが、保存データの種別やデータ書込を指示したデータ書込/検索要求ノードなどによって異なる複数のフィンガーテーブルから選択されて使用されてよい。
The master
マスターデータ処理ノード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
また、本実施形態では、マスターデータ処理ノード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
《本実施形態に係る情報処理システムの動作》
以下、図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 /
(保存データの書込)
図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
(保存データ書込のシーケンス)
図4は、図3のような保存データの書込の手順400を示すシーケンス図である。
(Saved data writing sequence)
FIG. 4 is a sequence diagram showing a stored
データ書込要求ノード210のデータ書込要求処理(S411)によるデータ書込要求を、マスターデータ処理ノード220は、データ受信処理(S421)により受信する。マスターデータ処理ノード220は、マスターデータの書込要求に対応して、マスターデータ書込処理(S422)によりDBに保存データとして書き込む。マスターデータ処理ノード220は、正常に書き込まれた場合、書込結果送信処理(S423)によりデータ書込要求ノード210に正常に書き込まれたことを通知する。なお、マスターデータ書込処理(S422)で正常に書き込めなかった場合、書込結果送信処理(S423)により正常に書き込めなかった旨のメッセージをデータ書込要求ノード210に通知する。
The master
データ書込要求ノード210は、書込結果受信処理(S413)において書込結果を受信すると、マスターデータ書込結果判定処理(S415)においてマスターデータ書込結果を判定する。マスターデータ書込完了処理(S417)においては、判定結果からマスターデータを正常に書込めた場合、データ書込要求ノード210が格納していたマスターデータ処理ノード220に書き込む内容を消去し、マスターデータ書込み処理を完了させる。また、正常に書き込めなかった場合には、マスターデータ書込完了処理(S417)において、正常に書込めなかった旨のメッセージを通知する。
When receiving the write result in the write result receiving process (S413), the data write
なお、どこに正常に書込めなかった旨のメッセージを通知するかはシステム設計による。例えば、データ書込要求ノード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
次に、マスターデータ処理ノード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
レプリカデータ処理ノード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
マスターデータ処理ノード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
一方、分散データが少なくとも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
(保存データの正常検索)
次に、検索処理について説明する。
(Normal search of stored data)
Next, the search process will be described.
図5は、一般的に行われている検索方法において、保存データの正常検索500を示す図である。
FIG. 5 is a diagram showing a
マスターデータ処理ノード220に障害がなく正常検索を行なわれた場合は、図5の(1)−(2)の順序で、保存データの検索が完了する。なお、本実施形態において、保存データの検索はハッシュテーブルのハッシュ値との比較に基づいて行われる。
When the master
(保存データ障害時の分散データ検索の一例)
図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
(保存データ障害時の分散データ検索のシーケンス)
図7は、保存データ障害時の分散データ検索の一例の手順700を示すシーケンス図である。
(Distributed data search sequence when stored data fails)
FIG. 7 is a sequence diagram illustrating a
データ検索要求ノード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
検索要求を受けたレプリカデータ処理ノード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
データ検索要求ノード210は、レプリカデータ処理ノード230−1が検索データ送信処理(S729)により送信した検索結果を、検索データ受信処理(S713)において受信する。そして、検索データ判定処理(S715)において、検索結果の検索データは自分が検索要求したデータであることを判定する。
The data
(保存データ障害時の分散データ検索の他例)
図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
(保存データ障害時の分散データ検索の他のシーケンス)
図9は、保存データ障害時の分散データ検索の他例の手順900を示す図である。
(Other sequence of distributed data search in case of stored data failure)
FIG. 9 is a diagram illustrating a
図9の図7との相違は、フィンガーテーブルのレプリカデータ処理ノード230−1からデータ検索要求ノード210への送信と、検索した分散データのマージをデータ検索要求ノード210が行うことである。従って、以下、図7との相違点について説明し、図7と同様処理の手順には図7と同じ参照番号を付与している。
9 differs from FIG. 7 in that the data
最初の図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
次の図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
最後の図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
《各ノードとして動作する情報処理装置のハードウェア構成》
図10は、本実施形態に係る各ノードとして動作する情報処理装置1000のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing device operating as each node >>
FIG. 10 is a block diagram illustrating a hardware configuration of the
図10で、CPU1010は演算制御用のプロセッサであり、プログラムを実行することで図2の各機能構成部を実現する。ROM1020は、初期データ及びプログラムなどの固定データ及びプログラムを記憶する。通信制御部1030は、ネットワークを介して他のノードと通信する。あるいは、通信制御部1030は、本P2P方式のネットワークの外部にある他のネットワークや装置との通信をしてもよい。また、上記2つの機能をそれぞれ別個に有する複数の通信制御部で構成してもよい。通信は無線でも有線でもよい。
In FIG. 10, a
RAM1040は、CPU1010が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。領域は、大きく分けて、受信メッセージ1041用と、送信メッセージ1046用と、本例では対象としない情報処理データとを含む。
The
受信メッセージ1041の内、1042は、書込/検索する受信データである。受信データには分散データも含まれる。1043は、受信データから算出されるハッシュ値である。1044は、例えば、データ書込/検索要求ノード210が障害支援ノードとなったレプリカデータ処理ノードから受信するフィンガーテーブルや、レプリカデータ処理ノードがマスターデータ処理ノード220から受信するフィンガーテーブルである。1045は、図8及び図9の場合における、分散データを送信する検索データ送信先である。
Of the received
送信メッセージ1046の内、1047は、書込/検索する送信データである。送信データには分散データも含まれる。1048は、送信データから算出されるハッシュ値である。1049は、例えば、障害支援ノードとなったレプリカデータ処理ノードからデータ書込/検索要求ノード210に送信するフィンガーテーブルや、マスターデータ処理ノード220からレプリカデータ処理ノードに送信するフィンガーテーブルである。
Of the
なお、受信メッセージ1041及び送信メッセージ1046については、本実施形態に重要な一部のデータ要素を示したのみであり、他のデータ要素も随時に使用される(図15参照)。
Note that the
ストレージ1050は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータ又はプログラムが記憶されている。1051は、データ書込/検索要求ノードがデータの書込/検索を行なう先を、そのデータの内容や形式に対応して設定するためのマスターデータ処理ノードテーブルである。1052は、予め保持する、あるいは他ノードから送信されたフィンガーテーブルを保持するフィンガーテーブル保持部である。1053は、保存あるいは保持したデータを検索するための検索キーとして、データに対応付けられて記憶するハッシュテーブルである。1054は、保存あるいは保持したデータを検索可能に蓄積する保存データDBであり、分散データも含まれる。ストレージ1050には、以下のプログラムが格納される。1055は、全体の処理を実行させる本例の書込/検索以外の処理も含む情報処理を行なう情報処理プログラムである(図16参照)。1056は、情報処理プログラム1055において、情報処理装置1000がデータ書込/検索要求ノードとして動作する場合に実行されるデータ書込/検索要求ノード実行モジュールである。1057は、情報処理プログラム1055において、情報処理装置1000がマスターデータ処理ノードとして動作する場合に実行されるマスターデータ処理ノード実行モジュールである。1058は、情報処理プログラム1055において、情報処理装置1000がレプリカデータ処理ノードとして動作する場合に実行されるレプリカデータ処理ノード実行モジュールである。
The
なお、図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
図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
(フィンガーテーブル及びフィンガーテーブル格納部)
図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
図12のフィンガーテーブル1044は、分散データ書込元ノードID1211に対応して分散データ書込先ノードID1212のセットが記憶されている。図12においては、各ノードIDは図3〜図9の参照番号を援用している。なお、フィンガーテーブルについては、図12の構成に限定することはなく、分散データの書込元と書込先との関連が記述されていればよい。フィンガーテーブルの例については、非特許文献1を参照されたい。
The finger table 1044 in FIG. 12 stores a set of distributed data write
図12のフィンガーテーブル格納部1052は、上記構成のフィンガーテーブルのどれを分散データの分散書込に使用したかを、ファイル名に対応付けて記録する。各データのファイル名1221に対応付けて使用したフィンガーテーブル1222が記憶される。もし、ノードによって使用するフィンガーテーブルが固定であるなら、書込元ノードIDに対応付けてフィンガーテーブルを記憶することになる。
The finger
(検索データの送信先)
図13は、検索データ送信先情報1045の構成を示す図である。
(Search data destination)
FIG. 13 is a diagram showing a configuration of the search data
検索データ送信先情報1045は、マスターデータ処理ノードに障害が発生した場合に代替して分散データを検索するレプリカデータ処理ノードからの検索要請に対して、各レプリカデータ処理ノードが分散データを何処に送信するかの送信先を記憶する。図13においては、書込/検索するデータのファイル名1301に対応付けて検索した分散データの送信先ノードID1302が記憶されている。なお、送信先ノードID1302は、図3〜図10の参照番号を援用した。図13においては、図6の場合(送信先ノードID1302はレプリカデータ処理ノード230−1)と、図7の場合(送信先ノードID1302はデータ書込/検索要求ノード210)との、送信先を示している。
The search data
なお、図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
図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
(各ノード間の送信メッセージ)
図15は、各ノード間の送信メッセージ1046の構成を示す図である。
(Sent messages between each node)
FIG. 15 is a diagram showing a configuration of a
図15の送信メッセージ1510は、データ書込/検索要求ノードから送信される送信メッセージである。1511は、マスターデータ処理ノードへの書込要求の送信メッセージの構成を示している。ここで、括弧で示した「分散データ送信先」は、データ書込/検索要求ノードが主導して分散データ報告先を指定する場合に使用されるが、マスターデータ処理ノードが予め保持している場合や、データ内容やデータ形式から決定される場合は、使用されない。1512は、マスターデータ処理ノードや障害時にレプリカデータ処理ノードの1つである障害支援ノードに送信される検索要求の送信メッセージである。検索要求がいずれによるかに対応して、マスターデータ処理ノードへの正常な検索要求であるか/障害支援ノードへの障害支援の検索要求であるかを示すデータ以外は共通である。なお、括弧で示した「分散データ送信先」は、書込要求と同様である。
A
図15の送信メッセージ1520は、マスターデータ処理ノードから送信される送信メッセージである。1521は、データ保存後にレプリカデータ処理ノードに送信される分散データ書込要求の送信メッセージである。なお、ここでは、フィンガーテーブルも分散データと共に送信される。
A
図15の送信メッセージ1530は、レプリカデータ処理ノードの1つである障害支援ノーから送信される送信メッセージである。1531は、フィンガーテーブルにより確定した他のレプリカデータ処理ノードへの分散データ検索要求の送信メッセージである。なお、括弧で示した「分散データ送信先」は、図8のように分散データの送信先が要求元と異なる場合に使用される。分散データの送信先が要求元と同じ場合は、使用しなくてもよい。1532は、図8のように分散データの送信先が要求元と異なり、データ書込/検索要求ノードである場合のフィンガーテーブルの送信メッセージである。
A
《各ノードとして動作する情報処理装置の処理手順》
図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
まず、ステップ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
(データ検索要求ノード実行モジュール)
図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
次に、ステップ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
図20の送信メッセージ2011では、図15の送信メッセージ1511に比較して、フィンガーテーブル2012が追加されている。このフィンガーテーブル2012は、データ書込/検索要求ノードが分散データを分散してほしいノードを指定している。
In the
[第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
図21の分散データ検索2100では、第2実施形態の図6の例や図8の例と、障害が発生したマスターデータ処理ノードの代行をする障害支援ノードが異なる。すなわち、図21においては(2)のように、データ書込/検索要求ノード210は、レプリカデータ処理ノード230−2を、データ検索を代行する障害支援ノードとして分散データの検索を要求する。その結果、レプリカデータ処理ノード230−2がフィンガーテーブルを使って分散ノード検索を指示し、返信された分散データをマージしてデータ書込/検索要求ノード210に送信する。
In the distributed
なお、データ書込/検索要求ノード210による障害支援ノードの選択を、例えば、データ内容やデータ形式などにより選択する場合には、データ書込/検索要求ノード210が図11に類似したテーブルを設けて、障害支援ノードとすべきノードIDを記憶すればよい。
When selecting the failure support node by the data write /
[第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
図22の分散データ検索2200では、第2実施形態の図6の例や図8の例と異なり、障害が発生したマスターデータ処理ノードの代行をする障害支援ノードと、分散データをマージする分散データマージノードとが異なるノードである。すなわち、図21においては(4)のように、データ書込/検索要求ノード210は、レプリカデータ処理ノード230−1を、データ検索を代行する障害支援ノードとして選択し、一方、返信された分散データをマージするノードとしてはレプリカデータ処理ノード230−2を選択する。
In the distributed
なお、かかる選択は、データ書込/検索要求ノード210で行なっても、マスターデータ処理ノードで行なってもよい。
Such selection may be performed by the data write /
(検索データ送信先及び復元データ送信先の情報)
図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
図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 /
なお、図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
図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
[他の実施形態]
以上、本発明の実施形態について詳述したが、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステム又は装置も、本発明の範疇に含まれる。
[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)
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、
を有し、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼手段と、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元手段と、
前記復元されたデータを前記第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;
I have a,
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;
Transmitting means for transmitting the restored data to the first node;
The information processing system characterized by have a.
データの書込及び検索を指示する第1ノードと、 A first node for instructing data writing and retrieval;
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、 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;
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、 A third node that replicates and holds the data stored in the second node,
前記第2ノードは、 The second node is
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存手段と、 Storage means for storing data instructed to be written by the first node to the own node;
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信手段と、 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;
を有し、 Have
前記複数の第3ノードの少なくとも1つは、 At least one of the plurality of third nodes is:
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼手段と、 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;
前記分散識別情報を前記第1ノードに通知する通知手段と、 Notification means for notifying the first node of the distributed identification information;
自ノードに分散保持されたデータを前記第1ノードに送信する送信手段と、を有し、 Transmission means for transmitting the data distributed and held in the own node to the first node,
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元手段を有することを特徴とする情報処理システム。 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. Information processing system.
前記第2ノードに障害が発生した場合に、前記複数の第3ノードの少なくとも1つに対して、前記複数の第3ノードに分散保持させた前記データの読出しを指示する指示手段を有することを特徴とする請求項1または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 claim 1 or 2 , characterized in that
前記情報処理システムが、
データの書込及び検索を指示する第1ノードと、
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、
前記第2ノードは、
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含み、
前記複数の第3ノードの少なくとも1つは、
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して返信するように依頼する依頼ステップと、
前記分散識別情報に基づいて自ノードのデータと返信されたデータとをマージして前記第2ノードに保存した前記データを復元する復元ステップと、
前記復元されたデータを前記第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 look including a transmission step of transmitting to at least one of the plurality of third nodes,
At least one of the plurality of third nodes is:
A requesting step of requesting to search and return data distributed and held in the remaining plurality of third nodes based on the distributed identification information;
A restoration step of merging the data of the own node and the returned data based on the distributed identification information to restore the data stored in the second node;
Transmitting the restored data to the first node;
Backup method for an information processing system according to claim containing Mukoto a.
前記情報処理システムが、 The information processing system is
データの書込及び検索を指示する第1ノードと、 A first node for instructing data writing and retrieval;
前記第1ノードに書込を指示されたデータを保存し、前記第1ノードの検索の指示にしたがって該データを読出す第2ノードと、 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;
前記第2ノードに保存されたデータを複製して保持する第3ノードと、を含み、 A third node that replicates and holds the data stored in the second node,
前記第2ノードは、 The second node is
自ノードへ前記第1ノードにより書込を指示されたデータを保存する保存ステップと、 A storing step of storing data instructed to be written by the first node to the own node;
前記保存したデータを分割して、複数の前記第3ノードに対して送信して分散保持させると共に、前記保存したデータを分散保持させた前記複数の第3ノードを識別可能な分散識別情報を前記複数の第3ノードの少なくとも1つに送信する送信ステップとを含み、 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 to at least one of the plurality of third nodes;
前記複数の第3ノードの少なくとも1つは、 At least one of the plurality of third nodes is:
前記分散識別情報に基づいて、残りの前記複数の第3ノードに分散保持させたデータを検索して前記第1ノードに返信するように依頼する依頼ステップと、 A requesting step for requesting to search for and return the data distributed and held in the remaining third nodes based on the distributed identification information to the first node;
前記分散識別情報を前記第1ノードに通知する通知ステップと、 A notification step of notifying the first node of the distributed identification information;
自ノードに分散保持されたデータを前記第1ノードに送信する送信ステップと、 A transmission step of transmitting the data distributed and held in the own node to the first node;
を含み、Including
前記第1ノードは、前記分散識別情報に基づいて前記複数の第3ノードから返信されたデータをマージして、前記第2ノードに保存した前記データを復元する復元ステップを含むことを特徴とする情報処理システムのバックアップ方法。 The first node includes a restoration step of merging data returned from the plurality of third nodes based on the distributed identification information and restoring the data stored in the second node. Information system backup method.
前記情報処理装置が前記第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:
前記情報処理装置が前記第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.
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 JP2012178015A (en) | 2012-09-13 |
JP5655628B2 true 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) |
Families Citing this family (5)
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 |
JP6343952B2 (en) * | 2014-02-13 | 2018-06-20 | 日本電気株式会社 | Storage system |
US9842029B2 (en) | 2015-03-25 | 2017-12-12 | Kabushiki Kaisha Toshiba | Electronic device, method and storage medium |
JP6697158B2 (en) * | 2016-06-10 | 2020-05-20 | 富士通株式会社 | Information management program, information management method, and information management device |
JP6674099B2 (en) * | 2016-06-10 | 2020-04-01 | 富士通株式会社 | Information management program, information management method, and information management device |
Family Cites Families (3)
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 |
JP5317827B2 (en) * | 2009-05-19 | 2013-10-16 | 日本電信電話株式会社 | Distributed data management apparatus, method and program |
-
2011
- 2011-02-25 JP JP2011040115A patent/JP5655628B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012178015A (en) | 2012-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5556816B2 (en) | Distributed storage system, distributed storage method, distributed storage program and storage node | |
JP4696089B2 (en) | Distributed storage system | |
KR101635238B1 (en) | Distributed data storage | |
JP5479490B2 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
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 | |
JP5655628B2 (en) | Information processing system, data backup method, information processing apparatus, control method thereof, and control program | |
JP6225262B2 (en) | System and method for supporting partition level journaling to synchronize data in a distributed data grid | |
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 | |
US20110029748A1 (en) | Remote copy system and remote copy control method | |
WO2018121456A1 (en) | Data storage method, server and storage system | |
JP2004240803A (en) | Method and system for virtual network storage | |
JP5375972B2 (en) | Distributed file system, data selection method thereof, and program | |
JP2009501456A (en) | Peer data transfer integration | |
JP2011095976A (en) | Device, method and program for distributed data management | |
WO2024148824A1 (en) | Data processing method, system and apparatus, storage medium, and electronic device | |
JP4550648B2 (en) | Computer system | |
JP2013543169A (en) | System including middleware machine environment | |
JP2009289161A (en) | Clustered storage system, node device thereof, and method and program for controlling data read/write | |
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 | |
WO2012046585A1 (en) | Distributed storage system, method of controlling same, and program | |
JP5690296B2 (en) | Load balancing program and load balancing apparatus | |
JP2009217602A (en) | Method for determining necessity of file duplication, communication device, computer program, and peer-to-peer communication system |
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 |