JP2010271798A - Distributed data management device, method, and program - Google Patents

Distributed data management device, method, and program Download PDF

Info

Publication number
JP2010271798A
JP2010271798A JP2009121370A JP2009121370A JP2010271798A JP 2010271798 A JP2010271798 A JP 2010271798A JP 2009121370 A JP2009121370 A JP 2009121370A JP 2009121370 A JP2009121370 A JP 2009121370A JP 2010271798 A JP2010271798 A JP 2010271798A
Authority
JP
Japan
Prior art keywords
data
key
node
request
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009121370A
Other languages
Japanese (ja)
Other versions
JP5317827B2 (en
Inventor
Nobuyuki Kobayashi
伸幸 小林
Noburo Taniguchi
展郎 谷口
Masashi Yamamuro
雅司 山室
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009121370A priority Critical patent/JP5317827B2/en
Publication of JP2010271798A publication Critical patent/JP2010271798A/en
Application granted granted Critical
Publication of JP5317827B2 publication Critical patent/JP5317827B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently read the same type of data such as a specific data source or a data type in a distributed data management system using a DHT (Distributed Hash Table). <P>SOLUTION: In each node of a distributed data management system using the DHT, during the writing of data, the writing is performed by using a value to be obtained from the value of data as a key, and furthermore, the writing of data is also performed by using a value to be obtained from metadata (the identification information of a data source and the identification information of a data type or the like) as a key, and during the reading of data, the reading is performed by designating the data source or the data type as necessary, so that access is performed only to the node or node group in which the necessary data are stored. Also, by storing data by using the value to be obtained from the metadata as key, it is possible to simultaneously create a replica. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、分散データ管理装置及び方法及びプログラムに係り、特に、データをネットワークを介して通信する複数のノードに分散して蓄積及び管理するための分散データ管理装置及び方法及びプログラムに関する。   The present invention relates to a distributed data management apparatus, method, and program, and more particularly, to a distributed data management apparatus, method, and program for distributing and storing and managing data in a plurality of nodes that communicate via a network.

近年、ディジタルデータ量の増大を背景として、データ管理システムのスケーラビリティが重視されるようになり、特に成長能力の面から、スケール・アウト性に優れたpeer-to-peer(P2P)型の分散データ管理システムが注目を集めている。   In recent years, with the increase in the amount of digital data, the scalability of data management systems has become important, especially in terms of growth capability, peer-to-peer (P2P) type distributed data with excellent scale-out characteristics. Management systems are attracting attention.

P2Pデータ管理システムは既によく知られた技術であり、大きく構造化P2P(structured P2P)方式と非構造化(unstructured P2P)方式の2つに分けられるが、検索コストの観点から近年は分散ハッシュテーブル(DHT:Distributed Hash Table)技術を用いた構造化P2P方式の研究開発が盛んになっている。   The P2P data management system is a well-known technology and can be roughly divided into two types: structured P2P (structured P2P) and unstructured P2P. Research and development of the structured P2P method using the (DHT: Distributed Hash Table) technology has become active.

これらDHTを利用した構造化P2Pデータ管理システムでは、一般に、データそれ自体をビット列と見做し、そこからハッシュ関数等を用いて固定長のキー値を生成し、そのキー値に基づいてデータが格納されるノードを決定する方式が採られている。キー値とデータ格納ノードの対応関係はルーティングテーブルで管理されており、個々のノードのシステムへの参加及び脱退などに応じて適宜更新される。ハッシュ関数を用いることで、特定のノードに書き込み負荷が集中することなく、データがシステムを構成する各ノードにまんべんなく分布することが期待できる。さらに、DHTを用いた構造化P2Pデータ管理システムでは、一般に、個々のノードは、キー値とノードの対応関係を全て知っている必要がない。キーを含む読み出し、または、書き込み要求を受信したノードは、ルーティングテーブルを参照し、そのキー値が自ノードの管理対象範囲内であれば、それを自ノードで処理し、そうでなければそのキー値に対応するノード、あるいは、そのキー値に対応するノードを知っている可能性が高いノードに、その要求を転送する仕組みを持つ。これにより、ノードの参加や脱退が頻繁に行われるような環境においても、ルーティングテーブルの更新頻度を抑制しつつ、適切なノードに要求を届けることを可能にしている(例えば、非特許文献1,2参照)。   In these structured P2P data management systems using DHT, generally, the data itself is regarded as a bit string, and a fixed-length key value is generated from the data using a hash function or the like, and the data is based on the key value. A method for determining a node to be stored is adopted. The correspondence between the key value and the data storage node is managed in the routing table, and is updated as appropriate according to the participation and withdrawal of each node from the system. By using the hash function, it can be expected that the data is distributed evenly to each node constituting the system without the write load being concentrated on a specific node. Furthermore, in a structured P2P data management system using DHT, generally, each node does not need to know all the correspondences between key values and nodes. The node that has received the read or write request including the key refers to the routing table, and if the key value is within the management target range of the own node, process it in the own node, otherwise, the key. It has a mechanism to forward the request to a node corresponding to the value or a node that is highly likely to know the node corresponding to the key value. Thereby, even in an environment where participation and withdrawal of a node are frequently performed, it is possible to deliver a request to an appropriate node while suppressing the update frequency of the routing table (for example, Non-Patent Document 1, 2).

"A Survey and Comparison of Peer-to-Peer Overlay Network Schemes", Eng Keong Lua, Jon Crowcroft, Marcelo Pias, Ravi Sharma and Steven Lim, IEEE COMMUNICATIONS SURVEY AND TUTORIAL, MARCH 2004."A Survey and Comparison of Peer-to-Peer Overlay Network Schemes", Eng Keong Lua, Jon Crowcroft, Marcelo Pias, Ravi Sharma and Steven Lim, IEEE COMMUNICATIONS SURVEY AND TUTORIAL, MARCH 2004. "WIDE 2002年度 研究報告書 第17部 オーバーレイネットワークによる統合分散環境""WIDE 2002 Research Report Part 17 Integrated Distributed Environment with Overlay Network"

しかしながら、単にデータそれ自体をビット列と見做し、そのハッシュ値をキーとしてデータを格納するだけでは、データを読み出す際には、そのキー値を特定してデータを読み出す以外の方法では、検索効率が高くならない。例えば、大量のセンサの出力データを管理するシステムにおいて、特定のセンサのみの出力データを読み出したい場合、該特定センサのデータは、その値のハッシュ値に応じて、システム内の別々のノードに存在しており、該特定センサのデータを所持しているかどうかは個々のノードにアクセスしてみないとわからない。   However, if the data itself is simply regarded as a bit string and the data is stored using the hash value as a key, when reading the data, a method other than specifying the key value and reading the data Does not increase. For example, in a system that manages the output data of a large number of sensors, when it is desired to read the output data of only a specific sensor, the data of the specific sensor exists in different nodes in the system according to the hash value of the value. Whether or not the data of the specific sensor is possessed is not known unless the individual nodes are accessed.

すなわち、特定センサのデータだけを読み出すために、システム内の全てのノードにアクセスする必要があり、検索効率の劣化が課題となる。   That is, in order to read only the data of a specific sensor, it is necessary to access all the nodes in the system, and degradation of search efficiency becomes a problem.

また、データの処理を行う際、処理プログラムはしばしば特定の型のデータのみを扱う。しかし、データをビット列と見做したハッシュ値をキーとしてデータを格納するだけでは、前段に述べたのと同様、該当する型のデータを持つノードを予め特定することはできず、全てのノードにアクセスする必要があり、検索効率の劣化が課題となる。   Also, when processing data, processing programs often only handle specific types of data. However, just by storing data using a hash value that is regarded as a bit string as a key, as described in the previous section, it is not possible to specify a node having the corresponding type of data in advance. Access is necessary, and degradation of search efficiency becomes a problem.

また、ハッシュ値をキーとしてデータを格納するだけでは、その格納ノードに障害が発生した場合、該データへのアクセスが不可能となるが、これを解決するため、従来は該ハッシュ値に予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカ(複製)を格納するという方法を採っていた。   In addition, if data is stored only by using a hash value as a key, if a failure occurs in the storage node, access to the data becomes impossible. Conventionally, in order to solve this, the hash value is determined in advance. A method has been adopted in which a value obtained by performing the calculated operation is used as a key and a replica (replica) is stored in a node corresponding to the key.

本発明は、上記の点に鑑みなされたもので、DHTを用いた分散データ管理システムにおいて、特定のデータ源やデータ型など、同じ種類のデータを効率的に読み出すことが可能な分散データ管理装置及び方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above points, and in a distributed data management system using DHT, a distributed data management apparatus capable of efficiently reading the same type of data such as a specific data source and data type. And a method and a program.

図1は、本発明の原理構成図である。   FIG. 1 is a principle configuration diagram of the present invention.

本発明(請求項1)は、複数のノードから構成される分散データ管理システムの分散データ管理装置(ノード)であって、
管理対象データを、メタデータを含むものとし、
ノード外とのデータのやり取りを行う通信・インターフェース手段11と、
任意のビット列から予め決められた方法でキーを生成するキー生成手段14と、
キーとデータの組を格納するデータベース16と、
キーとデータの対をデータベース16に格納し、指定されたキーに対応するデータを該データベースから取り出すデータベース管理手段13と、
分散ハッシュテーブル技術(DHT)に基づくルーティングテーブル17を用いて、指定されたキーに対応する他のノードへのルーティングを行うルーティング手段15と、
通信・インターフェース手段11を介して取得した書き込み要求及び読み出し要求を解析し、通信・インターフェース手段11、キー生成手段14、データベース管理手段13、ルーティング手段15を制御する要求処理手段12と、を有し、
要求処理手段12は、
外部のノードから通信・インターフェース手段11を介して書き込み要求を取得すると、キー生成手段14に対して、該要求に含まれるデータからキーを生成させ、ルーティング手段15に対して、該キーに基づいて書き込み対象のノードへのルーティングを指示し、通信・インターフェース手段11を介してキーとデータからなる書き込み要求を該書き込み対象ノードに送信させる手段と、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ(複製)書き込み要求でないと判断した場合は、データベース管理手段に対して、該キーと該要求に含まれるデータをデータベースに書き込むよう指示し、キー生成手段14に対し、該データのメタデータの全部あるいは一部をバイト列としてキーを生成するように指示し、ルーティング手段15に対して、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを指示し、通信・インターフェース手段11に対して、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに送信させ、該ルーティング手段15に該データのキーとレプリカのキーを対応付けてルーティングテーブル17を更新させる手段と、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求であると判断した場合は、データベース管理手段13に対して、該要求に含まれるデータをデータベース16に書き込むよう指示する手段と、
データ読み出し要求を取得し、該要求のキーが自ノードの管理対象範囲外であると判断した場合は、該キーに基づきルーティング手段15に読み出し対象のノードへのルーティングを指示し、通信・インターフェース手段11を介して該読み出し要求を該読み出し対象ノードに転送させ、該読み出し対象ノードから返却された応答を要求元に転送させる手段と、
データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づきデータベース管理手段13に対し、データベース16から対応するデータの読み出しを指示し、通信・インターフェース手段11に該データを含む応答を転送元ノードに送信させる手段と、
を有することを特徴とする分散データ管理装置。
The present invention (Claim 1) is a distributed data management device (node) of a distributed data management system composed of a plurality of nodes,
The managed data includes metadata,
Communication / interface means 11 for exchanging data with the outside of the node;
Key generation means 14 for generating a key from an arbitrary bit string by a predetermined method;
A database 16 for storing key and data pairs;
Database management means 13 for storing a key-data pair in the database 16 and retrieving data corresponding to the designated key from the database;
Routing means 15 for routing to other nodes corresponding to the specified key using a routing table 17 based on the distributed hash table technology (DHT);
A request processing unit 12 that analyzes a write request and a read request acquired via the communication / interface unit 11 and controls the communication / interface unit 11, the key generation unit 14, the database management unit 13, and the routing unit 15; ,
The request processing means 12
When a write request is acquired from an external node via the communication / interface unit 11, the key generation unit 14 generates a key from the data included in the request, and the routing unit 15 generates a key based on the key. Means for instructing routing to a node to be written, and sending a write request comprising a key and data to the node to be written via the communication / interface means 11;
If it is determined that the key is included in the write request, the key is within the management target range of the own node, and the request is not a replica (replication) write request, the database management means The key and the data included in the request are instructed to be written in the database, the key generation unit 14 is instructed to generate a key using all or part of the metadata of the data as a byte string, and the routing unit 15 For the replica writing target node based on the key, and the communication / interface means 11 uses the key and the data as a write request as a replica write request. And the routing means 15 associates the key of the data and the key of the replica with the route. And means for updating the I ring table 17,
When it is determined that the write request includes a key, the key is within the management target range of the own node, and the request is a replica write request, the database management unit 13 is Means for instructing the database 16 to write the data included in the request;
When a data read request is acquired and it is determined that the key of the request is outside the management target range of the own node, the routing unit 15 is instructed to route to the read target node based on the key, and the communication / interface unit Means for transferring the read request to the read target node via 11 and transferring a response returned from the read target node to the request source;
If the key of the data read request is within the management target range of the own node, the database management unit 13 is instructed to read the corresponding data from the database 16 based on the key, and the communication / interface unit 11 includes the data. Means for sending a response to the forwarding node;
A distributed data management device comprising:

また、本発明(請求項2)は、データベース管理手段において、データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う。   In the present invention (Claim 2), when data is written into the database in the database management means, the value obtained from the metadata including the identification information of the data source or the identification information of the data type is obtained. Write as a key.

また、本発明(請求項3)は、データベース管理手段において、データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う。   According to the present invention (Claim 3), when the database management means reads from the database, the data source or data type is designated and the reading is performed.

図2は、本発明の原理を説明するための図である。   FIG. 2 is a diagram for explaining the principle of the present invention.

本発明(請求項4)は、複数のノードから構成される分散データ管理システムの各ノードにおける分散データ管理方法であって、
管理対象のデータはメタデータを含み、
外部のノードから書き込み要求を受信すると(ステップ1)、該要求に含まれるデータからキーを生成し(ステップ2)、該キーに基づいて書き込み対象のノードへのルーティングを行い(ステップ3)、該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し(ステップ4)、該書き込み対象ノードからの応答を要求元に送信し(ステップ5)
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり(ステップ6、Yes)、かつ、該要求がレプリカ書き込み要求でない場合は(ステップ7、No)、該キーと該要求に含まれるデータをデータベースに書き込み(ステップ8)、該データのメタデータの全部あるいは一部をバイト列としてキーを生成し(ステップ9)、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを行い(ステップ10)、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに転送し(ステップ11)、該書き込み対象ノードからの応答を送信元ノードに送信し(ステップ12)当該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該データのキーとレプリカのキーを対応付けてルーティングテーブルを更新し(ステップ13)、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり(ステップ6、Yes)、かつ、該要求がレプリカ書き込み要求である場合は(ステップ7、Yes)、該要求に含まれるデータをデータベースに書き込み(ステップ14)、応答を送信元ノードに送信し(ステップ22)、
書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内でない場合は(ステップ6、No)、書き込み対象ノードへのルーティングを行い(ステップ19)、該書き込み対象ノードへ要求を転送し(ステップ20)、該書き込み対象ノードからの応答を送信元ノードに送信し(ステップ21)、
データ読み出し要求を取得すると、該要求のキーが自ノードの管理対象範囲外である場合は、該キーに基づき読み出し対象のノードへのルーティングを行い(ステップ15)、該読み出し要求を該読み出し対象ノードに転送し(ステップ16)、該読み出し対象ノードから返却された応答を要求元に転送し、
データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づきデータベースから対応するデータを読み出し(ステップ17)、該データを含む応答を要求元ノードに送信する(ステップ18)。
The present invention (Claim 4) is a distributed data management method in each node of a distributed data management system composed of a plurality of nodes,
Managed data includes metadata,
When a write request is received from an external node (step 1), a key is generated from the data included in the request (step 2), and routing to the write target node is performed based on the key (step 3). A write request including the key and the data is transmitted to the write target node (step 4), and a response from the write target node is transmitted to the request source (step 5).
When the key is included in the write request, the key is within the management target range of the own node (step 6, Yes), and the request is not a replica write request (step 7, No), the Write the key and the data included in the request to the database (step 8), generate a key using all or part of the metadata of the data as a byte string (step 9), and write the replica to the node based on the key (Step 10), the write request comprising the key and the data is transferred to the replica write target node as a replica write request (step 11), and the response from the write target node is transmitted to the source node. (Step 12), a write request including the key and the data is transmitted to the write target node, It associates the data key and the replica of the key to update the routing table (step 13),
When a key is included in the write request, the key is within the management target range of the own node (step 6, Yes), and the request is a replica write request (step 7, Yes), Write data included in the request to the database (step 14), send a response to the source node (step 22),
When the key is included in the write request and the key is not within the management target range of the own node (No in step 6), routing to the write target node is performed (step 19), and the write target node is reached. The request is transferred (step 20), and the response from the write target node is transmitted to the transmission source node (step 21).
When the data read request is acquired, if the key of the request is out of the management target range of the own node, routing to the read target node is performed based on the key (step 15), and the read request is transmitted to the read target node. (Step 16), the response returned from the read target node is transferred to the request source,
If the key of the data read request is within the management target range of the own node, the corresponding data is read from the database based on the key (step 17), and a response including the data is transmitted to the request source node (step 18).

また、本発明(請求項5)は、データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う。   Further, according to the present invention (Claim 5), when data is written to the database, the data source identification information or the value obtained from the metadata including the data type identification information is used as a key. .

また、本発明(請求項6)は、データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う。   According to the present invention (Claim 6), when reading from the database, the data source or data type is designated and the reading is performed.

本発明(請求項7)は、請求項1乃至3のいずれか1項に記載の分散データ管理装置を構成する各手段としてコンピュータを機能させるための分散データ管理プログラムである。   The present invention (Claim 7) is a distributed data management program for causing a computer to function as each means constituting the distributed data management apparatus according to any one of Claims 1 to 3.

上記のように、本発明では、DHTを用いた分散データ管理システムの各ノードにおいて、データ書き込み時には、データの値から得られる値をキーとして書き込みを行うと共に、さらに、メタデータ(データ源の識別情報、データ型の識別情報等)から得られる値をキーとしてデータの書き込みを行い、データの読み出し時には、必要に応じてデータ源やデータ型を指定して読み出しを行うことで、必要なデータが格納されているノードあるいはノード群のみにアクセスすることにより、より検索効率を高めることを実現する。   As described above, according to the present invention, in each node of the distributed data management system using DHT, at the time of data writing, writing is performed using the value obtained from the data value as a key, and further, metadata (data source identification) is performed. Information, data type identification information, etc.) is used as a key to write data. When reading data, the data source and data type can be specified as necessary to read data. By accessing only the stored node or group of nodes, the search efficiency is further improved.

さらに、一般的に分散データ管理システムにおいては、通常データのレプリカを複数の異なるノードに格納することで信頼性等の向上を図るが、DHTを用いた従来の分散データ管理システムにおいては、レプリカ配置は、データから導出されたハッシュ値(オリジナルのキー)に、予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカを格納するという方法を採っていた。しかし、本発明の分散データ管理システムでは、前述のメタデータ(データ源の識別情報、データ型の識別情報等)から得られる値をキーとしてデータを格納することで、同時にレプリカを作成可能にするものである。   Furthermore, in general, distributed data management systems aim to improve reliability and the like by storing replicas of normal data in a plurality of different nodes, but in conventional distributed data management systems using DHT, replica placement Employs a method of storing a replica in a node corresponding to the key using a value obtained by performing a predetermined calculation on the hash value (original key) derived from the data. However, in the distributed data management system of the present invention, it is possible to simultaneously create a replica by storing data using a value obtained from the above-described metadata (data source identification information, data type identification information, etc.) as a key. Is.

上記のように本発明によれば、分散データ管理システムにおいて、データの書き込みの分散性を保ちつつ、データ読み出し時の絞り込みの効率の向上を実現すると共に、信頼性能の向上を実現する。また、従来は該ハッシュ値に予め定められた演算を施すことによって得られる値をキーとして、そのキーに対応するノードにレプリカ(複製)を格納するという方法を採っていた。しかし、本発明では、この方式でレプリカを用意する代わりに、前述のメタデータ(データ源の識別情報、データ型の識別情報等)から得られる値をキーとしてデータを格納する際、これをレプリカとしても利用可能なようにルーティングテーブルを構成することで、該データの可用性を高めることが可能となる。   As described above, according to the present invention, in the distributed data management system, it is possible to improve the efficiency of narrowing down during data reading and improve the reliability performance while maintaining the dispersibility of data writing. Conventionally, a method has been adopted in which a value obtained by performing a predetermined operation on the hash value is used as a key, and a replica is stored in a node corresponding to the key. However, in the present invention, instead of preparing a replica by this method, when storing data using a value obtained from the above-mentioned metadata (data source identification information, data type identification information, etc.) as a key, the replica is used. By configuring the routing table so that it can be used as well, the availability of the data can be increased.

本発明の原理構成図である。It is a principle block diagram of this invention. 本発明の原理を説明するための図である。It is a figure for demonstrating the principle of this invention. 本発明を適用する分散データ管理システムの構成図である。1 is a configuration diagram of a distributed data management system to which the present invention is applied. FIG. 本発明の一実施の形態におけるノードの構成図である。It is a block diagram of the node in one embodiment of this invention. 本発明の一実施の形態における温度センサのデータ(その1)である。It is the data (the 1) of the temperature sensor in one embodiment of this invention. 本発明の一実施の形態における温度センサのデータ(その2)である。It is the data (the 2) of the temperature sensor in one embodiment of this invention. 本発明の一実施の形態における書き込み方法のシーケンスチャートである。It is a sequence chart of the writing method in one embodiment of the present invention. データから生成されたキーを指定した場合の読み出し方法のシーケンスチャートである。It is a sequence chart of a reading method when a key generated from data is specified. 本発明の一実施の形態における読み出し方法のシーケンスチャート(メタデータから生成されたキーを指定)である。6 is a sequence chart (specifying a key generated from metadata) of a reading method according to an embodiment of the present invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図3は、本発明を適用する分散データ管理システムの構成を示し、図4は、本発明の一実施の形態におけるノードの構成を示す。   FIG. 3 shows the configuration of a distributed data management system to which the present invention is applied, and FIG. 4 shows the configuration of a node in an embodiment of the present invention.

本発明では、図4で示されるノードを1台のPC(パーソナルコンピュータ)上で動作させ、これらのPCをIP(インターネットプロトコル)ネットワークを介して接続することで、図3に示すデータ管理システムを構成する。ここでPCは、単独のハードウェアであってもよいのは勿論のこと、仮想化技術を用いた仮想マシンであってもよい。仮想マシンについては、既によく知られた技術であり、詳細については、「http://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E6%A9%9F%E6%A2%B0」等を参照することとし、ここでは詳細な説明は省略する。   In the present invention, the node shown in FIG. 4 is operated on one PC (personal computer), and these PCs are connected via an IP (Internet Protocol) network, so that the data management system shown in FIG. Constitute. Here, the PC may be a single hardware, or may be a virtual machine using a virtualization technique. Virtual machines are already well-known technologies. For details, see `` http://en.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E6%A9%9F% The detailed description is omitted here.

ノード10は、通信・インターフェース部11、要求処理部12、データベース管理部13、キー生成部14、ルーティング部15、データベース16、ルーティングテーブル17から構成される。このうち、データベース16及びルーティングテーブル17は、ハードディスク装置等の記憶媒体である。   The node 10 includes a communication / interface unit 11, a request processing unit 12, a database management unit 13, a key generation unit 14, a routing unit 15, a database 16, and a routing table 17. Among these, the database 16 and the routing table 17 are storage media such as a hard disk device.

通信・インターフェース部11は、ノード外との要求・応答のやり取りを行う。   The communication / interface unit 11 exchanges requests and responses with the outside of the node.

要求処理部12は、通信・インターフェース11で受信した外部からの要求が、書き込み要求か、読み出し要求か、また、要求にキーが含まれているか否か、キーが含まれている場合は、当該キーが自ノードの管理対象範囲内か否か、書き込み要求の場合に、当該要求がレプリカ書き込み要求か否か等を判断し、通信・インターフェース11、データベース管理部13、キー生成部14、ルーティング部15を制御する。   The request processing unit 12 determines whether the external request received by the communication / interface 11 is a write request, a read request, whether the request includes a key, and if the key is included, Whether or not the key is within the management target range of the own node or a write request, it is determined whether or not the request is a replica write request, and the communication / interface 11, database management unit 13, key generation unit 14, routing unit 15 is controlled.

データベース管理部13は、書き込み要求によりキーとデータの対をデータベース16に書き込む処理と、読み出し要求により指定されたキーに対応するデータをデータベース16から読み出す処理を行う。   The database management unit 13 performs a process of writing a key / data pair in the database 16 by a write request and a process of reading data corresponding to the key specified by the read request from the database 16.

キー生成部14は、任意のビット列から予め決められた方法でキーを生成する。   The key generation unit 14 generates a key from an arbitrary bit string by a predetermined method.

ルーティング部15は、分散ハッシュテーブル技術(DHT)に基づくルーティングテーブル17を用いて、指定されたキーに対応する他のノードへのルーティングを行う。   The routing unit 15 performs routing to another node corresponding to the designated key using the routing table 17 based on the distributed hash table technique (DHT).

上記のシステムにシステム外からデータを投入したり取得したりするには、
(a)一時的にノードとしてシステムに参加し、データ投入後システムから離脱する方法;(b)ノード10の通信・インターフェース部11が機能の一部としてユーザインターフェース機能やプログラムインターフェース機能を持つものとし、これを介してデータの投入や取得を行う方法;
を用いるものとする。
To input and get data to the above system from outside the system,
(A) A method of temporarily joining the system as a node and leaving the system after inputting data; (b) The communication / interface unit 11 of the node 10 has a user interface function or a program interface function as a part of the function. , How to input and get data through this;
Shall be used.

本発明では、管理対象データとしてメタデータを用いるが。メタデータとして、データの識別情報やデータ型の識別情報等があるが、本実施の形態では、データ源のID(識別子)を用いるものとする。データ源IDとしては、URN(参考文献:IETF RFC 2141 - URN Syntax:http://www.ietf.org/rfc/rfc2141.txt)などを用い、システムの外部で予め定めておくものとする。   In the present invention, metadata is used as management target data. The metadata includes data identification information, data type identification information, and the like. In this embodiment, the ID (identifier) of the data source is used. As the data source ID, URN (reference document: IETF RFC 2141-URN Syntax: http://www.ietf.org/rfc/rfc2141.txt) or the like is used and is determined in advance outside the system.

キー生成部14で用いるキーを生成するためのハッシュアルゴリズムとしては、既存のハッシュ関数であるMD5やSHAファミリー(SHA-1, SHA-224, SHA-256, SHA-384, SHA-512)等のうちのいずれか1つを用いるものとする。   As a hash algorithm for generating a key used in the key generation unit 14, MD5 which is an existing hash function, SHA family (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512), etc. Any one of them shall be used.

以下に具体的に説明する。   This will be specifically described below.

今このシステムに2つの異なる温度センサから温度データが投入されるものとする。1番目のデータはデータ源IDが'urn:thermosensor:9999'の温度センサからの図5に示すデータであり、2番目のデータはデータ源IDが'urn:thermosensor:8888'の温度センサからの図6に示すデータであるとする。   It is now assumed that temperature data is input to the system from two different temperature sensors. The first data is the data shown in FIG. 5 from the temperature sensor whose data source ID is 'urn: thermosensor: 9999', and the second data is from the temperature sensor whose data source ID is 'urn: thermosensor: 8888'. Assume that the data is shown in FIG.

図7は、本発明の一実施の形態における書き込み方法のシーケンスチャートである。   FIG. 7 is a sequence chart of the writing method according to the embodiment of the present invention.

以下、図7に沿って1番目のデータが分散データ管理システムに格納される流れを説明する。以下において、各ノード10には、ノードIDを付与して説明する。   Hereinafter, the flow of storing the first data in the distributed data management system will be described with reference to FIG. In the following, each node 10 will be described with a node ID.

ステップ101) まず、任意ノード321の通信・インターフェース部11を介して要求処理部12が図5のデータを含む書き込み要求を受け取る。   Step 101) First, the request processing unit 12 receives a write request including the data of FIG. 5 via the communication / interface unit 11 of the arbitrary node 321.

ステップ102) 当該ノード321のキー生成部14は、図5のデータを、XMLデータとデータ源IDを結合したビット列と見做し、SHA−1を用いてハッシュを計算し、「12345」という値を得たとする。この値がこのデータのキーとなる。   Step 102) The key generation unit 14 of the node 321 considers the data in FIG. 5 as a bit string obtained by combining the XML data and the data source ID, calculates a hash using SHA-1, and obtains the value “12345”. Suppose that This value is the key for this data.

ステップ103) 次に、当該ノード321のルーティング部15が、このキー「12345」に対応するノードを得るため、ルーティングテーブル17を用いてルーティングを行い、ノード997が対応ノードであることを導出したとする。   Step 103) Next, the routing unit 15 of the node 321 performs routing using the routing table 17 in order to obtain a node corresponding to the key “12345”, and derives that the node 997 is a corresponding node. To do.

ステップ104) そこで、ノード321は、ノード987にキー「12345」と図5に示すデータを含む書き込み要求を送信する。   Step 104) Therefore, the node 321 transmits a write request including the key “12345” and the data shown in FIG. 5 to the node 987.

ステップ105) 当該書き込み要求を受信したノード987の要求処理部12は、それがキー「12345」を含む書き込み要求であり、かつ、該キーが自ノードの管理対象であることをルーティング部15を介してルーティングテーブル17により確認した上で、データベース管理部13を介して自ノードのデータベース16に当該データをキー「12345」に対応付けて格納する。   Step 105) Upon receiving the write request, the request processing unit 12 of the node 987 indicates that it is a write request including the key “12345” and that the key is a management target of the own node via the routing unit 15. After confirming with the routing table 17, the data is stored in the database 16 of the own node in association with the key “12345” via the database management unit 13.

ステップ106) 次に、ノード987のキー生成部14は、メタデータであるデータ源ID(urn:thermosensor:9999)をビット列と見做し、SHA−1を用いてハッシュを計算し、「98765」という値を得たとする。この値がこのデータのキーとなる。   Step 106) Next, the key generation unit 14 of the node 987 considers the data source ID (urn: thermosensor: 9999), which is metadata, as a bit string, calculates a hash using SHA-1, and calculates “98765”. Is obtained. This value is the key for this data.

ステップ107) 次にノード987のルーティング部15は、このキー「98765」を得るため、ルーティングテーブル17を用いてルーティングを行い、ノード111が対応ノードであることを導出したとする。   Step 107) Next, it is assumed that the routing unit 15 of the node 987 performs routing using the routing table 17 in order to obtain this key “98765” and derives that the node 111 is a corresponding node.

ステップ108) そこでノード987は、ノード111に、キー「98765」と図5に示すデータを含むレプリカ書き込み要求を送信する。   Step 108) Accordingly, the node 987 transmits a replica write request including the key “98765” and the data shown in FIG.

ステップ109) 書き込み要求を受信したノード111の要求処理部12は、それがキー「98765」を含む書き込み要求であり、かつ、当該キーが自ノードの管理対象であることを、ルーティング部15を介してルーティングテーブル17により確認した上で、自ノードのデータベース16に当該データをキー「98765」に対応付けて格納する。   Step 109) Upon receiving the write request, the request processing unit 12 of the node 111 confirms that the request is a write request including the key “98765” and that the key is a management target of the own node via the routing unit 15. After confirming with the routing table 17, the data is stored in the database 16 of the own node in association with the key “98765”.

上記と同様に、図7のシーケンスチャートに沿って、図6に示す2番目のデータ(データ源ID:urn:thermosensor:8888)が分散データ管理システムに格納される流れを説明する。   Similarly to the above, the flow in which the second data (data source ID: urn: thermosensor: 8888) shown in FIG. 6 is stored in the distributed data management system will be described along the sequence chart of FIG.

ステップ101) まず、任意のノード(例えば、ノード456)の要求処理部12が通信・インターフェース部11を介して、図6のデータを含む書き込み要求を受け取る。   Step 101) First, the request processing unit 12 of an arbitrary node (for example, the node 456) receives a write request including the data of FIG. 6 via the communication / interface unit 11.

ステップ102) ノード456のキー生成部14は、図6のデータを、XMLデータとデータ源IDを結合したデータのビット列と見做し、SHA−1を用いてハッシュを計算し、「13579」という値を得たとする。この値がこのデータのキーとなる。   Step 102) The key generation unit 14 of the node 456 considers the data in FIG. 6 as a bit string of data obtained by combining the XML data and the data source ID, calculates a hash using SHA-1, and obtains “13579”. Suppose you get a value. This value is the key for this data.

ステップ103) 次に、ノード456のルーティング部15は、このキー「13579」に対応するノードを得るため、ルーティングテーブル17を用いてルーティングを行い、ノード654が対応ノードであることを導出したとする。   Step 103) Next, the routing unit 15 of the node 456 performs routing using the routing table 17 in order to obtain a node corresponding to the key “13579”, and derives that the node 654 is a corresponding node. .

ステップ104) そこで、ノード456は、ノード654にキー「13579」と図6のデータを含む書き込み要求を送信する。   Step 104) Therefore, the node 456 transmits a write request including the key “13579” and the data of FIG. 6 to the node 654.

ステップ105) 当該書き込み要求を受信したノード654は、それがキー「13579」を含む書き込み要求であり、かつ、該キーが自ノードの管理対象であることをルーティングテーブル17により確認した上で、自ノードのデータベース16に該データを該キー「13579」に対応付けて格納する。   Step 105) The node 654 that has received the write request confirms by the routing table 17 that it is a write request including the key “13579” and that the key is a management target of its own node. The data is stored in the node database 16 in association with the key “13579”.

ステップ106) ノード654のキー生成部14は、メタデータであるデータ源ID(urn:thermosensor:8888)をビット列と見做し、SH1−1を用いてハッシュ計算し、「54321」という値を得たとする。この値がこのデータのキーとなる。   Step 106) The key generation unit 14 of the node 654 considers the data source ID (urn: thermosensor: 8888), which is metadata, as a bit string, performs hash calculation using SH1-1, and obtains a value “54321”. Suppose. This value is the key for this data.

ステップ107) 次に、ノード654のルーティング部15は、取得したキー「54321」に対応するノードを得るため、ルーティングテーブル17を用いてルーティングを行い、ノード222に対応ノードであることを導出したとする。   Step 107) Next, the routing unit 15 of the node 654 performs routing using the routing table 17 in order to obtain a node corresponding to the acquired key “54321”, and derives that the node 222 is a corresponding node. To do.

ステップ108) そこで、ノード654は、ノード222に、キー「54321」と図5のデータを含むレプリカ書き込み要求を送信する。   Step 108) Therefore, the node 654 transmits a replica write request including the key “54321” and the data of FIG. 5 to the node 222.

ステップ109) 当該レプリカ書き込み要求を受信したノード222は、それがキー「54321」を含む書き込み要求であり、かつ、当該「54321」が自ノードの管理対象であることをルーティングテーブル17により確認した上で、自ノードのデータベース16にと該データをキー「54321」に対応付けて格納する。   Step 109) The node 222 that has received the replica write request confirms by the routing table 17 that it is a write request including the key “54321” and that “54321” is the management target of the own node. Then, the data is stored in the database 16 of the own node in association with the key “54321”.

以下、センサ'urn:thermosensor:9999'から別なデータが投入された場合、データの値が異なるため、データの格納ノード(XMLデータとデータ源IDから算出したキーにより特定されるノード)は必ずしも同一のノードとなるとは限らないが、レプリカの格納ノード(データ源IDから算出したキーにより特定されるノード)は、必ずノード111になる。同様に、センサ'urn:thermosensor:9999'から別なデータが投入された場合も、レプリカの格納ノードは必ずノード222となる。   Hereinafter, when different data is input from the sensor 'urn: thermosensor: 9999', the data value is different, so the data storage node (the node specified by the key calculated from the XML data and the data source ID) is not necessarily required. Although not necessarily the same node, the storage node of the replica (the node specified by the key calculated from the data source ID) is always the node 111. Similarly, when another data is input from the sensor 'urn: thermosensor: 9999', the storage node of the replica is always the node 222.

この性質を利用すると、特定のセンサから投入されたデータを本発明の分散データ管理システムから読み出す場合、(図8に示すように、データキーに基づく格納しか行わない場合は全てのノードに読み出し要求を行う必要があるのに対し)本発明のシステムでは、図9に示すように、メタデータキー、すなわち、データ源ID(例えば、urn:thermosensor:9999)から導出されたキー(例えば「98765」)を用いて読み出しを行うことで、該当するデータの存在するノード(例えばノードID:111)のみからデータの読み出しを行うことが可能になる。   Using this property, when data input from a specific sensor is read out from the distributed data management system of the present invention (as shown in FIG. 8, when only storing based on the data key is performed, a read request is sent to all nodes). In the system of the present invention, as shown in FIG. 9, a metadata key, ie a key derived from a data source ID (eg urn: thermosensor: 9999) (eg “98765”) ) Can be used to read data only from the node where the corresponding data exists (for example, node ID: 111).

また、本発明では、メタデータキーによるレプリカ投入の際、ルーティングテーブル17にレプリカの位置を記録する。ルーティングテーブル17はDHTのメカニズムに基づき、ノード間で適宜同期されるので、データキーによる読み出し要求に対し、対応する格納先ノードが何らかの理由で応答しない場合、メタデータキーに対応する格納先ノードからデータを読み出すこと、また、その逆に、メタデータキーによる読み出し要求に対し、対応する格納先ノードが何らかの理由で応答しない場合、データキーに対応する格納先ノードからデータを読み出すことが可能である。例えば、図5のデータから導出されるキー「12345」を用いてデータの読み出しを行おうとしたが、対応するノード987が故障により応答しない場合、読み出し要求を受け取ったノードは、ルーティングテーブル17からレプリカのキーが「98765」であり、その対応ノードがID=111であるという情報を得て、ノード111に読み出し要求を転送し、データの読み出しが可能になる。   In the present invention, the replica position is recorded in the routing table 17 when the replica is inserted by the metadata key. Since the routing table 17 is appropriately synchronized between nodes based on the DHT mechanism, when the corresponding storage destination node does not respond to the read request by the data key for some reason, the routing table 17 starts from the storage destination node corresponding to the metadata key. When data is read, and conversely, when a corresponding storage destination node does not respond to a read request by a metadata key for some reason, it is possible to read data from the storage destination node corresponding to the data key. . For example, when data reading is attempted using the key “12345” derived from the data in FIG. 5, but the corresponding node 987 does not respond due to a failure, the node that has received the read request sends a replica from the routing table 17. The key of “98765” is obtained, and information that the corresponding node is ID = 111 is obtained, a read request is transferred to the node 111, and data can be read.

なお、上記の図4に示すノード10の構成要素の動作をプログラムとして構築し、ノード(分散データ管理装置)として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   The operation of the components of the node 10 shown in FIG. 4 is constructed as a program and can be installed and executed on a computer used as a node (distributed data management apparatus), or distributed via a network. Is possible.

また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。   Further, the constructed program can be stored in a portable storage medium such as a hard disk, a flexible disk, or a CD-ROM, and can be installed or distributed in a computer.

なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。   The present invention is not limited to the above-described embodiment, and various modifications and applications can be made within the scope of the claims.

10 ノード(分散データ管理装置)
11 通信・インターフェース手段、通信・インターフェース部
12 要求処理手段、要求処理部
13 データベース管理手段、データベース管理部
14 キー生成手段、キー生成部
15 ルーティング手段、ルーティング部
16 データベース
17 ルーティングテーブル
10 nodes (distributed data management device)
11 Communication / Interface Unit, Communication / Interface Unit 12 Request Processing Unit, Request Processing Unit 13 Database Management Unit, Database Management Unit 14 Key Generation Unit, Key Generation Unit 15 Routing Unit, Routing Unit 16 Database 17 Routing Table

Claims (7)

複数のノードから構成される分散データ管理システムの分散データ管理装置(ノード)であって、
管理対象データをメタデータを含むものとし、
ノード外とのデータのやり取りを行う通信・インターフェース手段と、
任意のビット列から予め決められた方法でキーを生成するキー生成手段と、
キーとデータの組を格納するデータベースと、
キーとデータの対を前記データベースに格納し、指定されたキーに対応するデータを該データベースから取り出すデータベース管理手段と、
分散ハッシュテーブル技術に基づくルーティングテーブルを用いて、指定されたキーに対応する他のノードへのルーティングを行うルーティング手段と、
前記通信・インターフェース手段を介して取得した書き込み要求及び読み出し要求を解析し、前記通信・インターフェース手段、前記キー生成手段、前記データベース管理手段、前記ルーティング手段を制御する要求処理手段と、を有し、
前記要求処理手段は、
外部のノードから通信・インターフェース手段を介して書き込み要求を取得すると、前記キー生成手段に対して、該要求に含まれるデータからキーを生成させ、前記ルーティング手段に対して、該キーに基づいて書き込み対象のノードへのルーティングを指示し、前記通信・インターフェース手段を介して前記キーと前記データからなる書き込み要求を該書き込み対象ノードに送信させる手段と、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求でないと判断した場合は、前記データベース管理手段に対して、該キーと該要求に含まれるデータを前記データベースに書き込むよう指示し、前記キー生成手段に対し、該データのメタデータの全部あるいは一部をバイト列としてキーを生成するように指示し、前記ルーティング手段に対して、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを指示し、前記通信・インターフェース手段に対して、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに送信させ、該ルーティング手段に該データのキーとレプリカのキーを対応付けて前記ルーティングテーブルを更新させる手段と、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求であると判断した場合は、前記データベース管理手段に対して、該要求に含まれるデータを前記データベースに書き込むよう指示する手段と、
データ読み出し要求を取得し、該要求のキーが自ノードの管理対象範囲外であると判断した場合は、該キーに基づき前記ルーティング手段に読み出し対象のノードへのルーティングを指示し、前記通信・インターフェース手段を介して該読み出し要求を該読み出し対象ノードに転送させ、該読み出し対象ノードから返却された応答を送信元に転送させる手段と、
前記データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づき前記データベース管理手段に対し、前記データベースから対応するデータの読み出しを指示し、前記通信・インターフェース手段に該データを含む応答を要求元ノードに送信させる手段と、
を有することを特徴とする分散データ管理装置。
A distributed data management device (node) of a distributed data management system composed of a plurality of nodes,
The managed data includes metadata,
A communication / interface means for exchanging data with the outside of the node;
Key generating means for generating a key from an arbitrary bit string by a predetermined method;
A database that stores key and data pairs;
Database management means for storing a key and data pair in the database and retrieving data corresponding to the specified key from the database;
A routing means for routing to another node corresponding to the specified key using a routing table based on the distributed hash table technology;
A request processing unit that analyzes the write request and the read request acquired through the communication / interface unit, and controls the communication / interface unit, the key generation unit, the database management unit, and the routing unit;
The request processing means includes:
When a write request is acquired from an external node through communication / interface means, the key generation means is caused to generate a key from data included in the request, and the routing means is written based on the key. Means for instructing routing to a target node, and causing the write target node to transmit a write request comprising the key and the data via the communication / interface means;
When it is determined that the key is included in the write request, the key is within the management target range of the own node, and the request is not a replica write request, the database management means Instructing the key and the data included in the request to be written into the database, instructing the key generation unit to generate a key using all or part of the metadata of the data as a byte string, and the routing unit To the replica write target node based on the key, and to the communication / interface means, the write request comprising the key and the data as a replica write request, the replica write target And the routing means associates the key of the data with the key of the replica, and And means for updating the computing table,
When it is determined that the write request includes a key, the key is within the management target range of the own node, and the request is a replica write request, the database management unit Means for instructing to write the data included in the request to the database;
When a data read request is acquired and it is determined that the key of the request is outside the management target range of the node, the routing unit is instructed to route to the read target node based on the key, and the communication / interface Means for transferring the read request to the read target node via a means, and transferring a response returned from the read target node to the transmission source;
If the key of the data read request is within the management target range of the own node, the database management means is instructed to read the corresponding data from the database based on the key, and the data is sent to the communication / interface means. Means for sending a response to the requesting node;
A distributed data management device comprising:
前記データベース管理手段は、
前記データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う
請求項1記載の分散データ管理装置。
The database management means includes:
The distributed data management apparatus according to claim 1, wherein when data is written to the database, writing is performed using a value obtained from the metadata including data source identification information or data type identification information as a key.
前記データベース管理手段は、
前記データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う
請求項1記載の分散データ管理装置。
The database management means includes:
2. The distributed data management apparatus according to claim 1, wherein when reading from the database, reading is performed by designating a data source or a data type.
複数のノードから構成される分散データ管理システムの各ノードにおける分散データ管理方法であって、
管理対象のデータはメタデータを含み、
外部のノードから書き込み要求を受信すると、該要求に含まれるデータからキーを生成し、該キーに基づいて書き込み対象のノードへのルーティングを行い、該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該書き込みノードからの応答を要求元に送信し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求でない場合は、該キーと該要求に含まれるデータを前記データベースに書き込み、該データのメタデータの全部あるいは一部をバイト列としてキーを生成し、該キーに基づいてレプリカ書き込み対象のノードへのルーティングを行い、該キーと該データからなる書き込み要求をレプリカの書き込み要求として、該レプリカ書き込み対象ノードに転送し、該書き込み対象ノードからの応答を送信元ノードに送信し、当該キーと該データからなる書き込み要求を該書き込み対象ノードに送信し、該データのキーとレプリカのキーを対応付けて前記ルーティングテーブルを更新し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内であり、かつ、該要求がレプリカ書き込み要求である場合は、該要求に含まれるデータを前記データベースに書き込み、応答を送信元ノードに送信し、
前記書き込み要求にキーが含まれていて、かつ、該キーが自ノードの管理対象範囲内でない場合は、書き込み対象ノードへのルーティングを行い、該書き込み対象ノードへ要求を転送し、該書き込み対象ノードからの応答を送信元ノードに送信し、
データ読み出し要求を取得すると、該要求のキーが自ノードの管理対象範囲外である場合は、該キーに基づき読み出し対象のノードへのルーティングを行い、該読み出し要求を該読み出し対象ノードに転送し、該読み出し対象ノードから返却された応答を要求元に転送し、
前記データ読み出し要求のキーが自ノードの管理対象範囲内であれば、該キーに基づき前記データベースから対応するデータを読み出し、該データを含む応答を要求元ノードに送信する、
ことを特徴とする分散データ管理方法。
A distributed data management method in each node of a distributed data management system composed of a plurality of nodes,
Managed data includes metadata,
When a write request is received from an external node, a key is generated from the data included in the request, routing to the write target node is performed based on the key, and the write request consisting of the key and the data is sent to the write target. Send the response from the write node to the requestor,
If the key is included in the write request, the key is within the management target range of the own node, and the request is not a replica write request, the key and the data included in the request are stored in the database. , Generate a key using all or part of the metadata of the data as a byte sequence, perform routing to the replica write target node based on the key, and send a write request comprising the key and the data to the replica As a write request, transfer to the replica write target node, send a response from the write target node to the source node, send a write request consisting of the key and the data to the write target node, and And update the routing table in association with the replica key,
When the key is included in the write request, the key is within the management target range of the own node, and the request is a replica write request, the data included in the request is written to the database. Send a response to the source node,
If the write request includes a key and the key is not within the management target range of the own node, routing to the write target node is performed, the request is transferred to the write target node, and the write target node Send the response from to the source node,
When the data read request is acquired, if the key of the request is out of the management target range of the own node, routing to the read target node is performed based on the key, and the read request is transferred to the read target node. The response returned from the read target node is transferred to the request source,
If the key of the data read request is within the management target range of the own node, the corresponding data is read from the database based on the key, and a response including the data is transmitted to the request source node.
And a distributed data management method.
前記データベースへのデータの書き込みを行う際に、データ源の識別情報、または、データ型の識別情報を含む前記メタデータから得られる値をキーとして書き込みを行う
請求項4記載の分散データ管理方法。
5. The distributed data management method according to claim 4, wherein when data is written to the database, writing is performed using a value obtained from the metadata including identification information of a data source or identification information of a data type as a key.
前記データベースから読み出しを行う際に、データ源またはデータ型を指定して読み出しを行う
請求項4記載の分散データ管理方法。
The distributed data management method according to claim 4, wherein when reading from the database, reading is performed by designating a data source or a data type.
請求項1乃至3のいずれか1項に記載の分散データ管理装置を構成する各手段としてコンピュータを機能させるための分散データ管理プログラム。   The distributed data management program for functioning a computer as each means which comprises the distributed data management apparatus of any one of Claims 1 thru | or 3.
JP2009121370A 2009-05-19 2009-05-19 Distributed data management apparatus, method and program Expired - Fee Related JP5317827B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009121370A JP5317827B2 (en) 2009-05-19 2009-05-19 Distributed data management apparatus, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009121370A JP5317827B2 (en) 2009-05-19 2009-05-19 Distributed data management apparatus, method and program

Publications (2)

Publication Number Publication Date
JP2010271798A true JP2010271798A (en) 2010-12-02
JP5317827B2 JP5317827B2 (en) 2013-10-16

Family

ID=43419789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009121370A Expired - Fee Related JP5317827B2 (en) 2009-05-19 2009-05-19 Distributed data management apparatus, method and program

Country Status (1)

Country Link
JP (1) JP5317827B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012102102A1 (en) * 2011-01-25 2012-08-02 日本電気株式会社 Information processing device, information processing system, information processing method and information processing program
JP2012178015A (en) * 2011-02-25 2012-09-13 Nec Corp Information processing system, data backup method, information processor, and control method and control program of the same
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
KR101451280B1 (en) * 2012-10-16 2014-10-16 케이티하이텔 주식회사 Distributed database management system and method
JP2014238678A (en) * 2013-06-06 2014-12-18 富士通株式会社 Data management method, data management program, data management system, and data management apparatus
JP2015156111A (en) * 2014-02-20 2015-08-27 日本電気株式会社 Placement destination determination device, placement destination determination method, and placement destination determination program
CN109074227A (en) * 2016-11-25 2018-12-21 华为技术有限公司 A kind of method and storage system of data check

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310126A (en) * 2004-03-26 2005-11-04 Ntt Neomate Corp Distributed data storage device, data constitution management server therefor, client terminal, and job consignment system comprising distributed data storage device
JP2008023445A (en) * 2006-07-20 2008-02-07 Daikin Ind Ltd Dust collector
JP2009020757A (en) * 2007-07-12 2009-01-29 Toshiba Corp Data registration apparatus, data registration method and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310126A (en) * 2004-03-26 2005-11-04 Ntt Neomate Corp Distributed data storage device, data constitution management server therefor, client terminal, and job consignment system comprising distributed data storage device
JP2008023445A (en) * 2006-07-20 2008-02-07 Daikin Ind Ltd Dust collector
JP2009020757A (en) * 2007-07-12 2009-01-29 Toshiba Corp Data registration apparatus, data registration method and program

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
CSNG200701318021; 首藤 一幸: '下位アルゴリズム中立なDHT実装への耐churn手法の実装' コンピュータシステム・シンポジウム論文集 第2007巻 第14号, 20071127, p.191-198, 社団法人情報処理学会 *
CSNG200800485060; 高木 邦孝: 'DHTにおける負荷分散を目的とした複製配置手法の特性改善' 電子情報通信学会技術研究報告 Vol.107 No.525, 20080228, p.385-390, 社団法人電子情報通信学会 *
CSNJ200710048135; 高木 邦孝: 'DHTにおける負荷分散を目的とした複製配置方法' 電子情報通信学会2007年総合大会講演論文集 通信2 , 20070402, p.135, 社団法人電子情報通信学会 *
JPN6013003755; 高木 邦孝: 'DHTにおける負荷分散を目的とした複製配置方法' 電子情報通信学会2007年総合大会講演論文集 通信2 , 20070402, p.135, 社団法人電子情報通信学会 *
JPN6013003756; 首藤 一幸: '下位アルゴリズム中立なDHT実装への耐churn手法の実装' コンピュータシステム・シンポジウム論文集 第2007巻 第14号, 20071127, p.191-198, 社団法人情報処理学会 *
JPN6013003757; 高木 邦孝: 'DHTにおける負荷分散を目的とした複製配置手法の特性改善' 電子情報通信学会技術研究報告 Vol.107 No.525, 20080228, p.385-390, 社団法人電子情報通信学会 *
JPN7013000292; 'OpenDHT:A Public DHT Service and Its Uses' SIGCOMM'05 , 20050822, p.73-84, ACM *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012102102A1 (en) * 2011-01-25 2012-08-02 日本電気株式会社 Information processing device, information processing system, information processing method and information processing program
JP6036302B2 (en) * 2011-01-25 2016-11-30 日本電気株式会社 Information processing apparatus, information processing system, information processing method, and information processing program
JP2012178015A (en) * 2011-02-25 2012-09-13 Nec Corp Information processing system, data backup method, information processor, and control method and control program of the same
KR101451280B1 (en) * 2012-10-16 2014-10-16 케이티하이텔 주식회사 Distributed database management system and method
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
JP2014238678A (en) * 2013-06-06 2014-12-18 富士通株式会社 Data management method, data management program, data management system, and data management apparatus
JP2015156111A (en) * 2014-02-20 2015-08-27 日本電気株式会社 Placement destination determination device, placement destination determination method, and placement destination determination program
CN109074227A (en) * 2016-11-25 2018-12-21 华为技术有限公司 A kind of method and storage system of data check
CN109074227B (en) * 2016-11-25 2020-06-16 华为技术有限公司 Data verification method and storage system

Also Published As

Publication number Publication date
JP5317827B2 (en) 2013-10-16

Similar Documents

Publication Publication Date Title
JP5317827B2 (en) Distributed data management apparatus, method and program
US10185497B2 (en) Cluster federation and trust in a cloud environment
US9405781B2 (en) Virtual multi-cluster clouds
Zhang et al. Distributed hash table: Theory, platforms and applications
JP2016053951A (en) System and method for maintaining distributed and fault-tolerant state over information centric network
KR20110068899A (en) A distributed mesh network
JP6438719B2 (en) Communication system and communication program
WO2018047698A1 (en) Encoded message retrieval method, message transmission/reception system, server, terminal, and program
JP2017034666A (en) Transfer of state in stack in content-oriented network
JP6029936B2 (en) COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM
JP5370269B2 (en) Distributed storage system, connection information notification method and program for distributed storage system
WO2020010270A1 (en) Dynamic routing using a distributed hash table
JP5470148B2 (en) Node device and computer program
JP2010231576A (en) Node device, node processing program and content storage method
WO2012046585A1 (en) Distributed storage system, method of controlling same, and program
Sun et al. A lightweight data location service for nondeterministic exascale storage systems
US8881242B2 (en) Information communication system, information communication method, node apparatus and recording medium
JP5345577B2 (en) Name resolution device, name resolution method, and name resolution program
JP2009230686A (en) Content management server and content management program
JP2011023996A (en) Information communication system, node device, method of confirming node device, and program
JP2008005449A (en) Method and system for managing distributed data
KR20160025994A (en) Cluster management method and data storage system for selecting gateway in distributed storage environment
JP2008242990A (en) Information communication system, terminal apparatus included therein, information processing method, and program therefor
JP6036302B2 (en) Information processing apparatus, information processing system, information processing method, and information processing program
JP6162873B2 (en) COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130403

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130709

R150 Certificate of patent or registration of utility model

Ref document number: 5317827

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees