JP2008234536A - Node device, transfer node determination method and program - Google Patents

Node device, transfer node determination method and program Download PDF

Info

Publication number
JP2008234536A
JP2008234536A JP2007076266A JP2007076266A JP2008234536A JP 2008234536 A JP2008234536 A JP 2008234536A JP 2007076266 A JP2007076266 A JP 2007076266A JP 2007076266 A JP2007076266 A JP 2007076266A JP 2008234536 A JP2008234536 A JP 2008234536A
Authority
JP
Japan
Prior art keywords
node
node device
hash value
hash
dht
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
JP2007076266A
Other languages
Japanese (ja)
Other versions
JP4521419B2 (en
Inventor
Yusuke Doi
裕介 土井
Masahiro Ishiyama
政浩 石山
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007076266A priority Critical patent/JP4521419B2/en
Publication of JP2008234536A publication Critical patent/JP2008234536A/en
Application granted granted Critical
Publication of JP4521419B2 publication Critical patent/JP4521419B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a DHT node for more flexibly constructing a distributed hash table (DHT). <P>SOLUTION: The DHT node 3 has a finger table 35 in which a transfer candidate DHT node is registered when a message to be received by a DHT node shared by a specific hash value is transmitted without specifying a receiving destination node. A management part 36 selects the number of DHT nodes which should be registered in the finger table 35 from among the DHT nodes except the own-node to be fixed according to a specified parameter. In that case, the management part 36 selects a node device to be registered in the finger table based on a hash value obtained by adding r-th power (r is a real number selected from a range of 0≤r<m, m is the number of bits of a hash space managed by the DHT) of 2 to a hash value regarding the own-node and a hash value regarding the DHT nodes except the own-node. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、分散ハッシュテーブルに用いられるノード装置、転送ノード決定方法及びプログラムに関する。   The present invention relates to a node device, a forwarding node determination method, and a program used for a distributed hash table.

分散ハッシュテーブル(DHT(Distributed Hash Table))方式の一つとして、Chord方式(非特許文献1)が知られている。   The Chord method (Non-patent Document 1) is known as one of the distributed hash table (DHT) methods.

Chordにおいては、DHT構築のための方式が固定されている。具体的には、短絡経路の設計方法が変形2分木探索に等しくなっており、探索のためのコストは、DHTノードの数をNとしたときにO(log N)である。このため、様々なアプリケーションの要求に柔軟に応えることが困難であった。特に、機能維持のための通信コストと、問い合わせ応答にかかる時間あるいは再帰段数との間にはトレードオフの関係があり、これを制御することができなかった。
I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications. In Proceedings of ACM SIGCOMM, August 2001.
In Chord, a method for DHT construction is fixed. Specifically, the short-circuit path design method is equal to the modified binary tree search, and the cost for the search is O (log 2 N) when the number of DHT nodes is N. For this reason, it has been difficult to flexibly meet the demands of various applications. In particular, there is a trade-off relationship between the communication cost for maintaining the function and the time required for the inquiry response or the number of recursive stages, and this cannot be controlled.
I. Stoica, R. Morris, D. Karger, MF Kaashoek, and H. Balakrishnan. Chord: A scalable peer-to-peer lookup service for internet applications.In Proceedings of ACM SIGCOMM, August 2001.

DHTの一つとして知られているChordでは、例えばDHTを利用するアプリケーションのニーズに応じて柔軟にDHTを構築することができなかった。   In Chord known as one of DHT, for example, it is not possible to flexibly construct a DHT according to the needs of applications using the DHT.

本発明は、上記事情を考慮してなされたもので、より柔軟にDHTを構築することのできるDHTのノード装置、転送ノード決定方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a DHT node apparatus, a forwarding node determination method, and a program that can construct a DHT more flexibly.

本発明は、相異なるハッシュ値の範囲を分担する複数のノード装置からなる分散ハッシュテーブルシステムを構成する一つのノード装置において、特定のハッシュ値を分担するノード装置が受信すべきメッセージを、そのノード装置を特定できずに送信すべき場合に、該メッセージを転送すべき候補になる複数のノード装置の情報を登録したフィンガーテーブルと、前記分散ハッシュテーブルシステムを構成する自ノード以外の全てのノード装置のうちから、前記フィンガーテーブルに登録すべきノード装置を、指定されたパラメータに応じて定まる個数だけ選択する選択手段とを備え、前記分散ハッシュテーブルシステムを構成するノード装置それぞれには相異なるハッシュ値が対応付けられており、前記選択手段は、自ノードに対応付けられたハッシュ値に2のr乗(rは0≦r<mの範囲から選択された実数であり、mは前記分散ハッシュテーブルシステムが管理するハッシュ空間のビット数である。)を追加して得たハッシュ値と、自ノード以外の前記ノード装置に対応付けられたハッシュ値とに基づいて、前記フィンガーテーブルに登録すべきノード装置を選択することを特徴とする。   The present invention relates to a message that should be received by a node device that shares a specific hash value in one node device that constitutes a distributed hash table system that includes a plurality of node devices that share different hash value ranges. A finger table in which information of a plurality of node devices that are candidates for transferring the message is to be transmitted when the device cannot be specified, and all node devices other than the own node constituting the distributed hash table system A selection unit that selects a number of node devices to be registered in the finger table according to a designated parameter, and each node device constituting the distributed hash table system has a different hash value. Are associated with each other, and the selecting means associates with the own node. 2 is added to the hash value (r is a real number selected from the range of 0 ≦ r <m, and m is the number of bits in the hash space managed by the distributed hash table system). A node device to be registered in the finger table is selected based on the obtained hash value and a hash value associated with the node device other than the own node.

本発明によれば、より柔軟にDHTを構築することができるようになる。   According to the present invention, a DHT can be constructed more flexibly.

以下、図面を参照しながら本発明の実施形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1に、本発明の一実施形態に係る分散ハッシュテーブル(DHT(Distributed Hash Table))システムの構成例を示す。   FIG. 1 shows a configuration example of a distributed hash table (DHT (Distributed Hash Table)) system according to an embodiment of the present invention.

図1において、1はクライアント、3はDHTノード、8はネットワークである。   In FIG. 1, 1 is a client, 3 is a DHT node, and 8 is a network.

複数台のDHTノード3が連携して、1つの分散ハッシュテーブルを構成する。図1では、分散ハッシュテーブルを構成するDHTノードとして8台のDHTノードが示されているが、これは一例であり、分散ハッシュテーブルシステムを構成するDHTノードの台数は任意である。また、DHTサーバの台数は、参加・離脱によって、変動し得るものである。   A plurality of DHT nodes 3 cooperate to form one distributed hash table. In FIG. 1, eight DHT nodes are shown as the DHT nodes constituting the distributed hash table, but this is an example, and the number of DHT nodes constituting the distributed hash table system is arbitrary. Further, the number of DHT servers can vary depending on participation and withdrawal.

1つの分散ハッシュテーブルを構成する複数のDHTノード3は、ネットワーク8を介して、相互に通信可能である。なお、ネットワーク8は、どのようなネットワークでもよい。   A plurality of DHT nodes 3 constituting one distributed hash table can communicate with each other via the network 8. The network 8 may be any network.

クライアント1は、ネットワーク8を介して任意のDHTノード3にアクセス可能とする。図1では、1台のクライアント計算機のみが示されているが、もちろん、クライアント計算機は複数台存在し得る。なお、クライアント1が、いずれかのDHTノード3にローカルに接続される構成も可能である。   The client 1 can access any DHT node 3 via the network 8. In FIG. 1, only one client computer is shown. Of course, there may be a plurality of client computers. A configuration in which the client 1 is locally connected to any DHT node 3 is also possible.

さて、本実施形態の分散ハッシュテーブルにおいては、ハッシュ値の集合で構成されるハッシュ空間において、両端が連結された閉じた数直線としてハッシュ空間を形成した場合を考える。複数のDHTノード3は、ハッシュ空間の相異なるハッシュ値に対応付けられる。この場合、各DHTノード3は、いずれも、二つの他のDHTノード3と隣接することになる。   Now, in the distributed hash table of the present embodiment, a case is considered in which a hash space is formed as a closed number line in which both ends are connected in a hash space composed of a set of hash values. The plurality of DHT nodes 3 are associated with different hash values in the hash space. In this case, each DHT node 3 is adjacent to two other DHT nodes 3.

ここで、或るDHTノードに対応するハッシュ値をαとして、ハッシュ空間においてハッシュ値が増加する方向でαに最も近いハッシュ値に対応付けられているDHTノードを、該或るDHTノードに対して「増加方向側隣接ノード」と呼び、ハッシュ値が減少する方向でαに最も近いハッシュ値に対応付けられているDHTノードを、該或るDHTノードに対して「減少方向側隣接ノード」と呼ぶものとする。   Here, a hash value corresponding to a certain DHT node is defined as α, and a DHT node associated with a hash value closest to α in the direction in which the hash value increases in the hash space is determined with respect to the certain DHT node. A DHT node associated with a hash value closest to α in a direction in which the hash value decreases is referred to as an “increasing direction side adjacent node” and is referred to as a “decreasing direction side adjacent node” for the certain DHT node Shall.

本実施形態では、或るDHTノードに対応するハッシュ値をx1、該或るDHTノードの減少方向側隣接ノードに対応するハッシュ値をx0であるとして、該或るDHTノードが、x0<h≦x1の範囲のハッシュ値hを分担するような分担方法を採用する場合を例にとって説明する。もしろん、これ以外の分担方法も可能である。   In the present embodiment, assuming that a hash value corresponding to a certain DHT node is x1, and a hash value corresponding to a decreasing direction adjacent node of the certain DHT node is x0, the certain DHT node is x0 <h ≦ A case where a sharing method for sharing the hash value h in the range of x1 is adopted will be described as an example. Of course, other sharing methods are possible.

例えば、h0<h≦h1の範囲のハッシュ値hを分担するDHTノードA1は、キーとなる情報(以下、識別子と呼ぶ)のハッシュ値hがh0<h≦h1の範囲にあるような識別子について、当該識別子と、当該識別子をキーとして検索されるデータとを記録したデータベースを記憶・管理することになる。   For example, the DHT node A1 that shares the hash value h in the range of h0 <h ≦ h1 has an identifier such that the hash value h of key information (hereinafter referred to as an identifier) is in the range of h0 <h ≦ h1. Then, a database in which the identifier and data searched using the identifier as a key are stored and managed.

また、上記DHTノードA1の増加方向側隣接ノードであるDHTノードA2は、これに対応するハッシュ値をx2とすると、識別子のハッシュ値hがh1<h≦h2となるような識別子について、当該識別子と、当該識別子をキーとして検索されるデータとを記録したデータベースを記憶・管理することになる。   Further, the DHT node A2, which is an adjacent node on the increasing direction side of the DHT node A1, has an identifier for which the hash value h of the identifier becomes h1 <h ≦ h2, where the hash value corresponding to this is x2. And a database in which data searched using the identifier as a key is stored and managed.

なお、上記DHTノードA1は、自ノードのハッシュ値(又はそのもととなる情報)の他に、その減少方向側隣接ノードA0に対応するハッシュ値(又はそのもととなる情報)と、その増加方向側隣接ノードA2に対応するハッシュ値(又はそのもととなる情報)とを記憶しておけば、自ノードA1の分担範囲と、増加方向側隣接ノードA2の分担範囲とを特定することができる(この場合、減少方向側隣接ノードA0の分担範囲は分からない)。   The DHT node A1 has a hash value corresponding to the decreasing direction side adjacent node A0 (or information that is the source), in addition to the hash value (or information that is the source) of the own node, If the hash value (or information that is the basis) corresponding to the increasing direction side adjacent node A2 is stored, the allocation range of the own node A1 and the allocation range of the increasing direction side adjacent node A2 are specified. (In this case, the sharing range of the decreasing direction side adjacent node A0 is not known).

上記のハッシュ関数としては、ビット数が充分長くて一様な割り当てが行なわれる関数を用いると好ましい。そのようなハッシュ関数として、例えば、SHA−1やMD5を採用することができる。ハッシュ空間は、0〜2−1のmビットの整数で表わされる(SHA−1の場合は、m=160となり、MD5の場合は、m=128となる)。 As the hash function, it is preferable to use a function that has a sufficiently long number of bits and is uniformly assigned. For example, SHA-1 or MD5 can be adopted as such a hash function. The hash space is represented by an m-bit integer of 0 to 2 m −1 (m = 160 for SHA-1 and m = 128 for MD5).

なお、各DHTノード3に対応付けるハッシュ値の決め方としては、例えば、当該DHTノード3の持つアドレス(例えばIPアドレス)に対してハッシュ関数を適用して得られるハッシュ値とする方法を採用してもよいし、他の方法を採用してもよい。   As a method for determining a hash value to be associated with each DHT node 3, for example, a method of using a hash value obtained by applying a hash function to an address (for example, an IP address) of the DHT node 3 may be adopted. Alternatively, other methods may be adopted.

図2に、本実施形態に係るDHTノードの構成例を示す。   FIG. 2 shows a configuration example of the DHT node according to the present embodiment.

図2に示されるように、DHTノード3は、メッセージ処理部31、自ノード情報記憶部32、隣接ノード情報記憶部33、データベース34、フィンガーテーブル35、フィンガーテーブル管理部36、通信部37を備えている。また、フィンガーテーブル管理部36には、パラメータ設定部361、計算部362、ノード探索部363が含まれる。   As shown in FIG. 2, the DHT node 3 includes a message processing unit 31, a local node information storage unit 32, an adjacent node information storage unit 33, a database 34, a finger table 35, a finger table management unit 36, and a communication unit 37. ing. Further, the finger table management unit 36 includes a parameter setting unit 361, a calculation unit 362, and a node search unit 363.

通信部37は、ネットワーク8を介してクライアント1や他のDHTノード3とメッセージ通信等を行うためのものである。なお、DHTノード3にローカルにクライアント1が接続する場合には、クライアント1と接続するためのインタフェースを備えればよい。   The communication unit 37 is for performing message communication with the client 1 and other DHT nodes 3 via the network 8. When the client 1 is connected locally to the DHT node 3, an interface for connecting to the client 1 may be provided.

メッセージ処理部31は、クライアント1や他のDHTノード3から通信部37を介して問い合せメッセージを受信した場合に、受信した問い合せメッセージを処理し、必要に応じて、通信部37を介して、クライアント1へ応答メッセージを送信したり、あるいは、他のDHTノード3へ問い合せメッセージを転送したりするためのものである。   When the message processing unit 31 receives an inquiry message from the client 1 or another DHT node 3 via the communication unit 37, the message processing unit 31 processes the received inquiry message and, if necessary, the client via the communication unit 37 1 for transmitting a response message to 1 or transferring an inquiry message to another DHT node 3.

自ノード情報記憶部32は、自ノードのアドレスや自ノードに対応するハッシュ値など、自ノードに関する情報を記憶する。   The own node information storage unit 32 stores information about the own node such as an address of the own node and a hash value corresponding to the own node.

隣接ノード情報記憶部33は、自ノードに対する減少方向側隣接ノードについて、これに対応するハッシュ値を記憶する(そのアドレスをも記憶しても構わない)。また、増加方向側隣接ノードについて、そのアドレスと、これに対応するハッシュ値を記憶する。   The adjacent node information storage unit 33 stores a hash value corresponding to the adjacent node in the decreasing direction with respect to the own node (it may also store the address thereof). Further, the address and the hash value corresponding to the address are stored for the increasing direction side adjacent node.

データベース34は、自ノードの分担するハッシュ空間に属するハッシュ値を与える識別子を持つデータについて、当該識別子と、当該識別子をキーとして検索されるデータとを対にして記憶する。図3に、データベース34の一例を示す。なお、データベース34に格納されるデータは、クライアント1が最終的に取得したいデータとすることもできるし、クライアント1が最終的に取得したいデータを取得するためのURLのような情報とすることもできる。   The database 34 stores, for data having an identifier that gives a hash value belonging to the hash space shared by the own node, the identifier and data searched using the identifier as a key. FIG. 3 shows an example of the database 34. The data stored in the database 34 may be data that the client 1 wants to finally acquire, or may be information such as a URL for acquiring data that the client 1 wants to finally acquire. it can.

フィンガーテーブル(経路表)35は、問い合せメッセージを転送する候補となる幾つかのDHTノード(後述するM=famp×m個のDHTノード)について、そのDHTノードのアドレスと、そのDHTノードに対応するハッシュ値を記憶する。図4に、フィンガーテーブル35の一例を示す。図4中のiはエントリのインデックスである(図5のnextに相当するものである)。 The finger table (route table) 35 corresponds to the address of the DHT node and the DHT node for several DHT nodes (M = f amp × m DHT nodes described later) that are candidates for transferring the inquiry message. The hash value to be stored is stored. FIG. 4 shows an example of the finger table 35. 4 is an entry index (corresponding to “next” in FIG. 5).

フィンガーテーブル管理部36は、詳しくは後述するが、フィンガーテーブル35を管理するためのものである。   The finger table management unit 36 is for managing the finger table 35, as will be described in detail later.

なお、あるDHTノードのアドレスのハッシュ値を、そのDHTノードに対応するハッシュ値とする場合には、自ノード情報記憶部32、隣接ノード情報記憶部33、フィンガーテーブル35において、アドレスのみ記憶しておき、ハッシュ値は、記憶せずに、その都度計算する方法も可能である。   When the hash value of the address of a certain DHT node is used as the hash value corresponding to the DHT node, only the address is stored in the own node information storage unit 32, the adjacent node information storage unit 33, and the finger table 35. Alternatively, the hash value may be calculated each time without being stored.

なお、本実施形態のDHTノード3において、自ノードに関する情報の管理、参加・離脱制御、隣接ノードに関する情報の管理、データベースの管理、自ノードの属するハッシュ空間上の任意のハッシュ値を担当するDHTノードの検索などは、基本的には、従来からある方法を用いて構わない。   In the DHT node 3 of the present embodiment, management of information related to the own node, participation / leaving control, management of information related to adjacent nodes, management of the database, and DHT responsible for an arbitrary hash value in the hash space to which the own node belongs. Basically, a conventional method may be used for the node search or the like.

次に、フィンガーテーブル35に登録するDHTノードの探索について説明する。   Next, a search for a DHT node registered in the finger table 35 will be described.

図5に、本実施形態のDHTノード3のフィンガーテーブル管理部36が、フィンガーテーブル35に登録するDHTノードを探索するアルゴリズム(Finger経路の決定のためのアルゴリズム)の一例を示す。   FIG. 5 shows an example of an algorithm (an algorithm for determining a Finger route) in which the finger table management unit 36 of the DHT node 3 according to this embodiment searches for a DHT node registered in the finger table 35.

なお、パラメータ設定部361に、予め、パラメータm、パラメータfamp(Finger Amplification Ratio)(0より大きい実数値)が設定されているものとする。また、mは、ハッシュ空間(0〜2−1)のビット幅であり、採用しているハッシュ関数に応じて定まる値である(SHA−1の場合は、m=160となり、MD5の場合は、m=128となる)。また、fampは、任意に設定可能であり、例えばユーザが適宜設定できるようにしてもよいし、他のアプリケーションが指定できるようにしてもよい。 It is assumed that parameter m and parameter f amp (Finger Amplification Ratio) (a real value greater than 0) are set in advance in parameter setting unit 361. M is the bit width of the hash space (0 to 2 m −1), and is a value determined according to the hash function employed (in the case of SHA-1, m = 160, in the case of MD5) M = 128). Further, f amp can be arbitrarily set. For example, the user may be able to set it appropriately, or another application may be specified.

フィンガーテーブル35に登録するDHTノードの数(Fingerの経路表エントリ数)は、上記のMになる(すなわち、fampを調整することによってコントロールすることができる)。 The number of DHT nodes registered in the finger table 35 (Finger's routing table entry number) is M as described above (that is, it can be controlled by adjusting f amp ).

アルゴリズムで使用されるnextは、1〜Mまで変化する整数であり、フィンガーテーブル35に登録するDHTノードの順番を表すパラメータ(Fingerの経路表エントリのインデックス)である。   Next used in the algorithm is an integer that varies from 1 to M, and is a parameter (Finger's routing table entry index) that represents the order of DHT nodes registered in the finger table 35.

上記アルゴリズムにおいては、まず、計算部362が、nextに0を設定し(ステップS1)、Mにfamp×mを設定する(ステップS2)。 In the above algorithm, first, the calculation unit 362 sets 0 to next (step S1) and sets f amp × m to M (step S2).

ただし、Mは、m・fampに近い整数値になるように用意する。その際、小数点以下四捨五入、切り上げ、切り捨て、2以上の数を単位にしたその他の丸め方など、種々の近似方法を採用可能である。 However, M is prepared so as to be an integer value close to m · f amp . At that time, various approximation methods such as rounding off after the decimal point, rounding up, rounding down, and other rounding methods in units of two or more can be adopted.

なお、ステップS1とステップS2は、上記と逆の順に実行してもよいし、同時に実行してもよい。   Note that step S1 and step S2 may be executed in the reverse order of the above, or may be executed simultaneously.

以降は、nextを1ずつ増加させながら行う繰り返し処理になる。すなわち、まず、next=1として(ステップS3)、ステップS6〜ステップS8の処理を行い、指定の秒数待った(ステップS9)後に、nextを1増加して(ステップS3)、同様の処理を繰り返し、nextがMを超えるときに(ステップ4)、再度、nextを1に戻して(ステップS5)、同様の処理を繰り返す。   Thereafter, the process is repeated while incrementing next by one. That is, first, next = 1 is set (step S3), the processing of steps S6 to S8 is performed, and after waiting for a specified number of seconds (step S9), next is incremented by 1 (step S3), and the same processing is repeated. When next exceeds M (step 4), next is returned to 1 again (step S5), and the same processing is repeated.

さて、繰り返し処理において、計算部362は、rにm×(next−1)/Mを設定し(ステップS6)、DHTのハッシュ空間上の目標値targetに、n+2を設定し(ステップS7)、次いで、ノード探索部363が、finger[next]=find_succ(target)を実行する(ステップS8)。 In the iterative process, the calculation unit 362 sets m × (next−1) / M to r (step S6), and sets n + 2 r to the target value target on the DHT hash space (step S7). Then, the node search unit 363 executes finger [next] = find_succ (target) (step S8).

なお、nは、自ノードに対応するハッシュ値である。   Note that n is a hash value corresponding to the own node.

例えば、famp=2.0、m=160の場合に、next=1のときは、r=0、target=n+1から、finger[1]=find_succ(n+1)を実行する。 For example, in the case of f amp = 2.0 and m = 160, when next = 1, finger [1] = find_succ (n + 1) is executed from r = 0 and target = n + 1.

next=2のときは、r=1/2、target=n+21/2から、finger[1]=find_succ(n+21/2)を実行する。 When next = 2, finger [1] = find_succ (n + 2 1/2 ) is executed from r = 1/2 and target = n + 2 1/2 .

next=319のときは、r=318/2、target=n+2318/2から、finger[1]=find_succ(n+2318/2)を実行する。 When next = 319, finger [1] = find_succ (n + 2 318/2 ) is executed from r = 318/2 and target = n + 2 318/2 .

next=320のときは、r=319/2、target=n+2319/2から、finger[1]=find_succ(n+2319/2)を実行する。 When next = 320, finger [1] = find_succ (n + 2 319/2 ) is executed from r = 319/2 and target = n + 2 319/2 .

このfinger[next]=find_succ(target)は、targetで表されるハッシュ値に最も近いDHTノード(ここでは、ハッシュ値のサクセッサーとする。)を探索し、該DHTノードに関する情報を、フィンガーテーブル35の第next番目のエントリに記入するものである。   This finger [next] = find_succ (target) searches for the DHT node closest to the hash value represented by the target (in this case, a hash value successor), and uses information about the DHT node as the finger table 35. To fill in the next entry.

なお、targetで表されるハッシュ値と各DHTノードのハッシュ空間上の位置との近さの評価は、メッセージ転送(Key Based Routing)のアルゴリズムと矛盾してなければ、ノードのハッシュ空間上の位置の差の絶対値でもよいし、ハッシュ空間の順序性による制約を与えてもよい。   If the evaluation of the proximity between the hash value represented by the target and the position of each DHT node in the hash space does not contradict the algorithm of message transfer (Key Based Routing), the position of the node in the hash space The absolute value of the difference between them may be used, or a restriction may be given based on the order of the hash space.

上記では、Chordと同様、ハッシュ値のサクセッサー(ハッシュ空間上でハッシュ値の増加方向で最も近いDHTノード)が対応するデータを持つ場合を一例として示しているが、アルゴリズムの詳細には様々なバリエーションがあり得る。例えば、プレデセッサー(ハッシュ空間上でハッシュ値の現象方向で最も近いDHTノード)が対応するデータを持つ場合も同様に実現可能である。   In the above, as in the case of Chord, a case where the hash value successor (the closest DHT node in the hash space increasing direction in the hash space) has corresponding data is shown as an example, but the algorithm details include various variations. There can be. For example, the same can be realized when the predecessor (the DHT node closest in the hash value phenomenon direction on the hash space) has corresponding data.

Chordの問題は、そのアルゴリズムが柔軟性に欠ける点であるが、本実施形態では、DHTノードにおけるFingerを設定するモジュール等において、アプリケーションからの要求に従ってFingerを設定する方式を変動させる機構を導入することができる。より具体的には、例えばアプリケーションが求めるDHTの特性に基づき任意に決定するパラメータfampを調整することによって、fingerの宛先の選択の粒度をコントロールすることができる。 The problem of Chord is that the algorithm lacks flexibility. In this embodiment, a mechanism for changing the method for setting the Finger according to the request from the application is introduced in the module for setting the Finger in the DHT node. be able to. More specifically, the granularity of selection of a finger destination can be controlled by adjusting a parameter f amp that is arbitrarily determined based on, for example, DHT characteristics required by an application.

図6〜図8に、それぞれ、famp=1.0,2.0,3.0の場合に得られるtargetの様子を示す。図6〜図8では、円が、ハッシュ空間の両端が連結されているものとみなしてハッシュ空間をループ状に形成した場合のハッシュ空間を示し、円の頂上側(0時の方向)が自ノードに対応するハッシュ値の位置を示し、自ノードから出ている各矢印の先端が円と交わる位置が、自ノードに対するtargetのハッシュ値がどのように配置されるかを計算で求めた結果を示している(なお、円周の1/16未満に相当するtargetの配置は省略している)。なお、図6が従来のChordと同じになる。 FIGS. 6 to 8 show the state of the target obtained when f amp = 1.0, 2.0, and 3.0, respectively. 6 to 8, the circle represents the hash space when the hash space is formed in a loop shape assuming that both ends of the hash space are connected, and the top of the circle (the direction at 0 o'clock) is the self-space. Indicates the position of the hash value corresponding to the node, and the calculation result of how the hash value of the target for the node is arranged at the position where the tip of each arrow coming out of the node intersects the circle (The arrangement of the target corresponding to less than 1/16 of the circumference is omitted). FIG. 6 is the same as the conventional Chord.

図6〜図8を一見して明らかなように、targetの分布はfampを増大させるごとに密度が濃くなり、円周上のより多くのエリアに短かいホップ数で到達できるようになることがわかる。 As is apparent from FIGS. 6 to 8, the distribution of the target becomes denser as famp is increased, and more areas on the circumference can be reached with a shorter number of hops. I understand.

すなわち、famp=1.0にすると、Chordと同じアルゴリズムになり、famp<1.0にすると、Chordよりも、問い合わせにかかる時間および再帰段数の平均が増えるが、維持コストを低くでき、famp>1.0にすると、Chordよりも、維持コストが高くなるが、問い合わせにかかる時間(再帰段数の平均)を減らせることが期待できる。 In other words, when f amp = 1.0, the same algorithm as Chord is obtained, and when f amp <1.0, the time required for the query and the average number of recursive stages increase compared to Chord, but the maintenance cost can be reduced. When f amp > 1.0, the maintenance cost is higher than that of Chord, but it can be expected that the time required for the inquiry (the average number of recursive stages) can be reduced.

なお、図5のアルゴリズムは一例であり、他のアルゴリズムも実施可能である。   Note that the algorithm of FIG. 5 is an example, and other algorithms can be implemented.

次に、DHTにおけるメッセージ転送について説明する。   Next, message transfer in DHT will be described.

前述のように、ハッシュ値のサクセッサーが対応するデータを持つ場合を一例として示しているが、プレデセッサーが対応するデータを持つ場合など、種々のバリエーションがあり得る。   As described above, the case where the hash value successor has the corresponding data is shown as an example. However, there may be various variations such as the case where the predecessor has the corresponding data.

図9に、本実施形態に係るDHTノードの問い合せメッセージ受信時における処理手順の一例を示す。   FIG. 9 shows an example of a processing procedure when an inquiry message is received by the DHT node according to the present embodiment.

クライアント1は、分散ハッシュテーブルシステムから、所望の識別子に対応するデータを取得したい場合には、いずれかのDHTノード3に、所望の識別子を含む問い合せメッセージを送信する。なお、クライアント1は、複数のDHTノード3のアドレスを知っている場合には、それらのうちの任意のDHTノード3に問い合せメッセージを送信して構わない。   When the client 1 wants to acquire data corresponding to a desired identifier from the distributed hash table system, the client 1 transmits an inquiry message including the desired identifier to any DHT node 3. When the client 1 knows the addresses of a plurality of DHT nodes 3, the client 1 may send an inquiry message to any of the DHT nodes 3.

DHTノード3は、クライアント1から問い合せメッセージを受信すると(または、クライアント1が送信し、他の1以上のDHTノードにより転送されてきた問い合せメッセージを受信すると)(ステップS11)、まず、問い合せメッセージに含まれる識別子のハッシュ値(宛先ハッシュ値)hmを計算する(ステップS12)。   When the DHT node 3 receives an inquiry message from the client 1 (or receives an inquiry message transmitted by the client 1 and forwarded by one or more other DHT nodes) (step S11), first, the DHT node 3 receives the inquiry message. The hash value (destination hash value) hm of the included identifier is calculated (step S12).

そして、これが、自ノードの分担範囲に含まれるものかどうか調べる(ステップS13)。もし、自ノードの分担範囲に含まれる場合、自ノード内で、データベースを検索して(ステップS14)、該識別子に対応するデータを取得し、該データを含む応答メッセージを、クライアント1へ返送する(ステップS15)。   Then, it is checked whether or not this is included in the allocation range of the own node (step S13). If it is included in the allocation range of the own node, the database is searched in the own node (step S14), data corresponding to the identifier is acquired, and a response message including the data is returned to the client 1. (Step S15).

次に、自ノードの分担範囲に含まれない場合、増加方向側隣接ノードの分担範囲に含まれるものかどうか調べる(ステップS16)。もし、増加方向側隣接ノードの分担範囲に含まれるならば、上記問い合せメッセージを、増加方向側隣接ノードへ転送する(ステップS17)。ここでは、上記ハッシュ値hmが自ノードに対応するハッシュ値nと、nのサクセッサーとの間に存在するのであれば、nのサクセッサーに問い合せメッセージを転送する。
それ以外の場合には、フィンガーテーブル35を参照して、転送先ノードを選択し(ステップS18)、選択した転送先ノードへ、問い合せメッセージを転送する(ステップS19)。
Next, when it is not included in the shared range of the own node, it is checked whether it is included in the shared range of the adjacent node on the increasing direction side (step S16). If it is included in the sharing range of the increasing direction side adjacent node, the inquiry message is transferred to the increasing direction side adjacent node (step S17). Here, if the hash value hm exists between the hash value n corresponding to the own node and the n successors, the inquiry message is transferred to the n successors.
In other cases, the transfer destination node is selected with reference to the finger table 35 (step S18), and the inquiry message is transferred to the selected transfer destination node (step S19).

ここでは、上記ハッシュ値hmと、フィンガーテーブル35の各エントリi(=next)に対するtarget[i]とを比較して、target[i]がhmよりもハッシュ空間の順方向(ハッシュ値が増加する方向)に対して自ノード側(ハッシュ値が減少する側)である最大のi(すなわち、nからハッシュ空間を順方向に辿ってhmに至る範囲内で最大のi)を探し、見付かった最大のiに対応するフィンガーテーブル35のエントリiに記入されたDHTノードへ、メッセージを転送する。   Here, the hash value hm is compared with the target [i] for each entry i (= next) in the finger table 35, and the target [i] is forward in the hash space (the hash value increases compared to hm). Direction) to find the maximum i (that is, the maximum i in the range from n to hm by following the hash space in the forward direction) on the own node side (the side on which the hash value decreases) The message is transferred to the DHT node entered in the entry i of the finger table 35 corresponding to i.

なお、上記のアルゴリズムを用いる場合、target[i]と各DHTノードのハッシュ空間上の位置との距離は、ハッシュ空間を順方向に考えたときに、nからtarget[i]に至る空間に存在するDHTノードのうちから、target[i]との間の距離を計算する(ハッシュ空間の順方向に制約)とするのがよい。   When the above algorithm is used, the distance between the target [i] and the position of each DHT node in the hash space exists in the space from n to target [i] when the hash space is considered in the forward direction. It is preferable to calculate the distance to target [i] from the DHT nodes to be performed (constrained in the forward direction of the hash space).

なお、図9のアルゴリズムは一例であり、他のアルゴリズムも実施可能である。例えば、図9のアルゴリズムでは、問い合せメッセージに含まれる識別子に係るデータを保持するDHTノードが、クライアントへ応答メッセージを返送するものとしたが、最初にクライアントから問い合わせメッセージを受信したDHTノードを経由して、クライアントへ応答メッセージを返送するようにしてもよい。また、クライアントとDHTノードとの間の問い合せメッセージのフォーマットと、DHTノード間の問い合せメッセージのフォーマットが異なるものであってもよい。   Note that the algorithm of FIG. 9 is an example, and other algorithms can be implemented. For example, in the algorithm of FIG. 9, the DHT node that holds the data related to the identifier included in the inquiry message returns a response message to the client, but first passes through the DHT node that received the inquiry message from the client. The response message may be returned to the client. Further, the format of the inquiry message between the client and the DHT node may be different from the format of the inquiry message between the DHT nodes.

次に、本分散ハッシュテーブルシステムを、電子タグを利用した個品流通管理・トレーサビリティシステムの構築に利用する場合について説明する。   Next, a case will be described in which the present distributed hash table system is used to construct an individual product distribution management / traceability system using an electronic tag.

一般に、個品ごとに付与されるIDは、会社ID・商品種別ID・個品IDの3階層からなる。   In general, an ID assigned to each individual product is composed of three layers of company ID, product type ID, and individual product ID.

図10に、個品毎に付与されるIDの一例として、EPCglobalにおけるGID−96(EPCglobal. EPC tag data standards version 1.3. EPCglobal Ratified Specification, March 2006.)を示す。   FIG. 10 shows GID-96 (EPCglobal. EPC tag data standards version 1.3. EPCglobal Ratified Specification, March 2006) in EPCglobal as an example of IDs assigned to individual products.

このようなIDにタグ付けられた大量の個品の情報を、安価かつスケーラブルに管理するためにDHTを用いることが考えられる。しかし、商品毎にトレーサビリティシステムに要求されるサービス品質とかけられるコストは異なるため、単一のDHTではこれら全てをカバーすることは難しい。そのため、例えば会社毎、商品種別毎にDHTを割り当て、あるいは、famp毎にDHTを割り当て、それらで個品IDまで含めたIDと、それに対応する情報を管理する。 It is conceivable to use DHT in order to manage a large amount of information of individual items tagged with such IDs inexpensively and scalable. However, since the service quality required for the traceability system and the cost to be applied are different for each product, it is difficult to cover all of them with a single DHT. Therefore, for example, a DHT is assigned for each company and each product type, or a DHT is assigned for each f amp , and an ID including an individual product ID and information corresponding thereto are managed.

この場合、個々のDHTはそれぞれの企業が顧客に提供するサービスであり、品質とコストのトレードオフは企業が決定したい。しかし、DHTでもっとも実証されているアルゴリズムの一つである従来のChordを用いた場合、主にFingerのアルゴリズムが固定されていることが理由で、このトレードオフは制御できない。   In this case, each DHT is a service provided to each customer by each company, and the company wants to determine the trade-off between quality and cost. However, when using the conventional Chord, one of the most proven algorithms in DHT, this trade-off cannot be controlled mainly because the Finger algorithm is fixed.

そこで、トレーサビリティシステムにおける個々のDHTにおいて、これまで説明してきたDHTシステムを実施することで、このトレードオフが制御可能になる。具体的には、アプリケーションは要求から求められるfampを設定し、本実施形態のアルゴリズムに従いフィンガーテーブルを構築する。これにより、トレードオフが制御できるようになる。例えば、トレーサビリティシステムを使う場合は基本的に事故が発生したとき、という意味で、一般的な食品の情報は通常は低コストで維持可能となるように設定(famp=1.0程度)したDHTで管理することが考えられる。一方で、ブランド食品など、トレーサビリティによる与信が商品価値の向上に役立つ場合は、システムの反応速度を向上させるために、通信コストとしては高コストである一方、問い合わせには短時間で応答できる(famp=4.0程度)DHTを設定し、その上での情報管理を行ってもよい。 Therefore, by implementing the DHT system described so far in each DHT in the traceability system, this trade-off can be controlled. Specifically, the application sets f amp obtained from the request, and constructs a finger table according to the algorithm of this embodiment. Thereby, trade-off can be controlled. For example, in the case of using a traceability system, in general, it means that when an accident occurs, general food information is usually set so that it can be maintained at a low cost (f amp = 1.0). It is conceivable to manage with DHT. On the other hand, when credit through traceability is useful for improving product value, such as branded foods, the communication cost is high to improve the reaction speed of the system, but the inquiry can be answered in a short time (f amp = about 4.0) DHT may be set, and information management may be performed on the DHT.

ところで、図5のフローチャートにおいて、target=n+2とあるが、この2に相当する部分の計算方法にはいくつかのバリエーションが考えられる。 By the way, in the flowchart of FIG. 5, target = n + 2 r , but there are several variations in the calculation method of the portion corresponding to 2 r .

例えば、何らかの操作により、target=n+bとし、bとrの両方を制御してもよい。あるいは、rのかわりに0以上の適当な範囲の整数値iを利用し、target=n+bとしても良い。この場合、適当な範囲とは、bあるいはbが2(mはChordで用いるハッシュ関数のビット幅)を超えない範囲、すなわちハッシュ空間を一周しない範囲となる。例えば、target=n+bの式を利用し、かつm=160の場合、b=1.5とするならば、iは437までである。 For example, for some operations, the target = n + b r, may control both the b and r. Alternatively, by using the integer number i of 0 or more suitable range instead of r, it may be target = n + b i. In this case, the appropriate range is a range where b i or b r does not exceed 2 m (where m is the bit width of the hash function used in Chord), that is, a range that does not go around the hash space. For example, if the formula of target = n + b i is used and m = 160, if b = 1.5, i is up to 437.

また、一般に、計算機における浮動小数点数の計算はコストが高い。このコストを避けたい場合は、targetの算出において利用するパラメータを、固定小数点あるいは2進数における分数で計算可能な組み合わせに限定するようにしてもよい。2、あるいは、b、あるいは、bの組み合わせを用意し、利用者はその組み合わせの中から目的に適うものを選択するようにしてもよい。 In general, calculation of floating point numbers in a computer is expensive. If it is desired to avoid this cost, the parameters used in the calculation of the target may be limited to combinations that can be calculated using a fixed-point or binary fraction. A combination of 2 r , b i , or b r may be prepared, and the user may select a combination that suits the purpose from the combination.

さらに、事前にtargetの計算に必要な2あるいはbあるいはbに相当するテーブルを用意し、必要に応じてルックアップするようにしても構わない。この場合、そのためのメモリを実装する必要があるが、計算はローコストで行える。 Furthermore, a table corresponding to 2 r, b i, or b r necessary for target calculation may be prepared in advance and looked up as necessary. In this case, it is necessary to mount a memory for this purpose, but the calculation can be performed at low cost.

以下では、パラメータを動的に適応させる場合について説明する。   Below, the case where a parameter is dynamically adapted is demonstrated.

実際には、ある商品に対する需要は変動し、需要が高い時期にはたとえChordネットワークの維持にかかるトラフィック量が増大したとしても、問い合わせにかかる再帰段数を減少させたほうがトラフィックの総量を減少させることができるなどといった場合が考えられる。こういった場合に備えて、DHTの各ノードは、トレードオフを決定するパラメータ(例えば、famp)を動的に変更する機構を導入することもできる。 Actually, the demand for a certain product fluctuates, and even if the amount of traffic required to maintain the Chord network increases during periods when demand is high, reducing the number of recursive stages for inquiries will reduce the total amount of traffic. The case where it is possible is considered. In preparation for such a case, each node of the DHT may introduce a mechanism for dynamically changing a parameter (for example, f amp ) that determines a trade-off.

ただし、DHTにおいては、通信は常に局所的であり、全体のトラフィックがどのように発生しているかを知ることは困難である。従って、個々のノードは自身に到着した問い合わせの頻度と、推測した現在のネットワークの密度から、fampを増加させるか減少させるかを判断することになる。 However, in DHT, communication is always local and it is difficult to know how the entire traffic is generated. Therefore, each node determines whether to increase or decrease f amp from the frequency of inquiries arriving at itself and the estimated current network density.

ネットワークの密度から、fampを変更させたときに実際に利用されることになるフィンガーテーブルの数が推測できる。DHT維持のためのトラフィックは利用するフィンガーテーブルの数に比例するため、これでDHT維持のトラフィックの変動が推測できたことになる。 From the density of the network, the number of finger tables that will be actually used when f amp is changed can be estimated. Since the traffic for maintaining the DHT is proportional to the number of finger tables to be used, the fluctuation of the traffic for maintaining the DHT can be estimated.

また、fampを変更した際に、問い合わせが何度転送されるか(再帰段数)も、同じアルゴリズムであれば同じ傾向となるため、事前に測定や解析などによって求めたモデルにfampを代入することで求めることができる。問い合わせ1つあたりに消費するトラフィック量は、再帰の方式にも依るが、問い合わせと応答がほぼ同等サイズのメッセージであれば、再帰段数にほぼ比例する。従って、これと問い合わせ頻度から、DHTサービスのトラフィックの変動が推測できたことになる。 In addition, when f amp is changed, how many times the query is transferred (number of recursive stages) has the same tendency if the same algorithm is used. Therefore , f amp is assigned to a model obtained by measurement or analysis in advance. You can ask for it. The amount of traffic consumed per inquiry depends on the recursion method, but is almost proportional to the number of recursion stages if the inquiry and response are messages of approximately the same size. Therefore, from this and the inquiry frequency, the fluctuation of the traffic of the DHT service can be estimated.

この推測値から、もっともコストの低いfampを算出し選択することができる。また、サービスの品質保証を行う場合は、fampの最低値を定めて、最低値を下まわらない範囲でのfampを利用することができる。さらに、上限値を定めて、これを超えた場合は管理者に警報を出すことでシステムの過負荷を避けることもできる。これは、DHTの場合は適切にノードを追加すれば負荷分散可能な点による。 From this estimated value, the lowest cost f amp can be calculated and selected. Further, when the quality of service is to be guaranteed, a minimum value of f amp can be determined, and f amp can be used within a range not below the minimum value. Furthermore, it is possible to avoid an overload of the system by setting an upper limit value and issuing an alarm to the administrator when the upper limit value is exceeded. This is because in the case of DHT, the load can be distributed by appropriately adding nodes.

ampの大幅な変更はフィンガーテーブルの大幅な書き換えを招くので、実際にはfix fingersを走らせる度に微少な変更を逐次的に加えていくのが望ましい。 Since a large change in f amp leads to a large rewrite of the finger table, it is actually desirable to make a slight change sequentially each time fix fingers are run.

find_succの処理は古いFingerを利用するため、その近傍(特にサクセッサー側)の検索は低コストで実現できる。従って、特にfampを小さくする方向(Fingerの間隔を大きくする方向)のコストが大幅に削減できる。 Since the find_succ process uses an old finger, the search for the vicinity (particularly the successor side) can be realized at low cost. Therefore, in particular, the cost in the direction of decreasing f amp (in the direction of increasing the finger interval) can be significantly reduced.

なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手順を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
Each of the above functions can be realized even if it is described as software and processed by a computer having an appropriate mechanism.
The present embodiment can also be implemented as a program for causing a computer to execute a predetermined procedure, causing a computer to function as a predetermined means, or causing a computer to realize a predetermined function. In addition, the present invention can be implemented as a computer-readable recording medium on which the program is recorded.

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

本発明の一実施形態に係る分散ハッシュテーブルシステムの構成例を示す図The figure which shows the structural example of the distributed hash table system which concerns on one Embodiment of this invention. 同実施形態に係るDHTノードの構成例を示す図The figure which shows the structural example of the DHT node which concerns on the same embodiment データベース34の一例を示す図The figure which shows an example of the database 34 フィンガーテーブルの一例を示す図The figure which shows an example of a finger table フィンガーテーブルに登録するDHTノードを探索する手順の一例を示すフローチャートThe flowchart which shows an example of the procedure which searches the DHT node registered into a finger table amp=1.0の場合に得られるtargetについて説明するための図The figure for demonstrating the target obtained when famp = 1.0 amp=2.0の場合に得られるtargetについて説明するための図The figure for demonstrating the target obtained when famp = 2.0 amp=3.0の場合に得られるtargetについて説明するための図The figure for demonstrating the target obtained when famp = 3.0 問い合せメッセージ受信時における処理手順の一例を示すフローチャートFlow chart showing an example of a processing procedure when an inquiry message is received 個品流通管理・トレーサビリティシステムにおいて個品毎に付与されるIDのフォーマットの一例を示す図The figure which shows an example of the format of ID provided for every individual item in the individual item distribution management / traceability system

符号の説明Explanation of symbols

1…クライアント、3…DHTノード、8…ネットワーク、31…メッセージ処理部、32…自ノード情報記憶部、33…隣接ノード情報記憶部、34…データベース、35…フィンガーテーブル、36…フィンガーテーブル管理部、37…通信部、361…パラメータ設定部、362…計算部、363…ノード探索部   DESCRIPTION OF SYMBOLS 1 ... Client, 3 ... DHT node, 8 ... Network, 31 ... Message processing part, 32 ... Own node information storage part, 33 ... Adjacent node information storage part, 34 ... Database, 35 ... Finger table, 36 ... Finger table management part 37: Communication unit, 361 ... Parameter setting unit, 362 ... Calculation unit, 363 ... Node search unit

Claims (11)

相異なるハッシュ値の範囲を分担する複数のノード装置からなる分散ハッシュテーブルシステムを構成する一つのノード装置において、
特定のハッシュ値を分担するノード装置が受信すべきメッセージを、そのノード装置を特定できずに送信すべき場合に、該メッセージを転送すべき候補になる複数のノード装置の情報を登録したフィンガーテーブルと、
前記分散ハッシュテーブルシステムを構成する自ノード以外の全てのノード装置のうちから、前記フィンガーテーブルに登録すべきノード装置を、指定されたパラメータに応じて定まる個数だけ選択する選択手段とを備え、
前記分散ハッシュテーブルシステムを構成するノード装置それぞれには相異なるハッシュ値が対応付けられており、
前記選択手段は、自ノードに対応付けられたハッシュ値に2のr乗(rは0≦r<mの範囲から選択された実数であり、mは前記分散ハッシュテーブルシステムが管理するハッシュ空間のビット数である。)を追加して得たハッシュ値と、自ノード以外の前記ノード装置に対応付けられたハッシュ値とに基づいて、前記フィンガーテーブルに登録すべきノード装置を選択することを特徴とするノード装置。
In one node device constituting a distributed hash table system composed of a plurality of node devices that share different hash value ranges,
When a message to be received by a node device that shares a specific hash value is to be transmitted without being able to identify the node device, a finger table that registers information of a plurality of node devices that are candidates for transferring the message When,
Selecting means for selecting a number of node devices to be registered in the finger table from among all the node devices other than the own node constituting the distributed hash table system, according to a designated parameter;
A different hash value is associated with each node device constituting the distributed hash table system,
The selection means is a hash value associated with the own node raised to the power of 2 (r is a real number selected from a range of 0 ≦ r <m, and m is a hash space managed by the distributed hash table system) The node device to be registered in the finger table is selected based on the hash value obtained by adding the number of bits) and the hash value associated with the node device other than its own node. A node device.
前記選択手段は、前記パラメータに応じて、前記rの値を変化させることによって、前記個数のノード装置を選択することを特徴とする請求項1に記載のノード装置。   The node device according to claim 1, wherein the selection unit selects the number of node devices by changing the value of r according to the parameter. 前記選択手段は、自ノードに対応付けられたハッシュ値に2の(i・m/M)乗(Mは任意の値であり、iは0≦i≦M−1の範囲の任意の整数値であり、mは前記分散ハッシュテーブルシステムが管理するハッシュ空間のビット数である。)を追加して得たハッシュ値と、自ノード以外の前記ノード装置に対応付けられたハッシュ値とに基づいて、前記フィンガーテーブルに登録すべきノード装置を選択することを特徴とする請求項1に記載のノード装置。   The selection means calculates the hash value associated with its own node to the power of 2 (i · m / M) (M is an arbitrary value, and i is an arbitrary integer value in a range of 0 ≦ i ≦ M−1). And m is the number of bits in the hash space managed by the distributed hash table system.) And the hash value associated with the node device other than its own node The node device according to claim 1, wherein a node device to be registered in the finger table is selected. 前記Mは、前記パラメータに基づいて定まる値であり、
前記選択手段は、0≦i<M−1を満たす全てのiについてそれぞれ前記ノード装置の選択を行うことを特徴とする請求項3に記載のノード装置。
M is a value determined based on the parameter,
4. The node device according to claim 3, wherein the selection unit selects the node device for all i satisfying 0 ≦ i <M−1.
前記Mは、前記パラメータをfとして、M=f・mで与えられるものであることを特徴とする請求項3または4に記載のノード装置。   5. The node apparatus according to claim 3, wherein the M is given by M = f · m, where f is the parameter. 前記パラメータfは、アプリケーションからの要求により決定されるものであることを特徴とする請求項5に記載のノード装置。   The node device according to claim 5, wherein the parameter f is determined by a request from an application. 前記パラメータを設定する設定手段を更に備えたことを特徴とする請求項1ないし6のいずれか1項に記載のノード装置。   7. The node device according to claim 1, further comprising setting means for setting the parameter. 前記特定のハッシュ値と、前記フィンガーテーブルに登録されている前記複数のノード装置それぞれに対応付けられているハッシュ値とに基づいて、前記メッセージを転送すべき一つのノード装置を特定する手段を更に備えたことを特徴とする請求項1ないし7のいずれか1項に記載のノード装置。   Means for specifying one node device to which the message is to be transferred based on the specific hash value and a hash value associated with each of the plurality of node devices registered in the finger table; The node device according to claim 1, further comprising: a node device according to claim 1. 前記分散ハッシュテーブルシステムを構成するノード装置それぞれが分担するハッシュ値の範囲は、当該ノード装置が記憶・管理するデータに対するキー情報のハッシュ値であるとともに、該キー情報は、個品流通管理・トレーサビリティシステムにおいて個品毎に付与される識別子であり、該データは、該識別子を付与された個品に関する情報であり、
前記メッセージは、前記キー情報を指定した問い合わせメッセージであることを特徴とする請求項1ないし8のいずれか1項に記載のノード装置。
The range of hash values shared by each node device constituting the distributed hash table system is a hash value of key information for data stored and managed by the node device, and the key information includes individual item distribution management and traceability It is an identifier assigned to each individual item in the system, and the data is information on the individual item to which the identifier is assigned,
9. The node device according to claim 1, wherein the message is an inquiry message designating the key information.
相異なるハッシュ値の範囲を分担する複数のノード装置からなる分散ハッシュテーブルシステムを構成し、特定のハッシュ値を分担するノード装置が受信すべきメッセージを、そのノード装置を特定できずに送信すべき場合に、該メッセージを転送すべき候補になる複数のノード装置の情報を登録したフィンガーテーブルを備えた一つのノード装置の転送先ノード決定方法において、
前記ノード装置の備える設定手段が、指定されたパラメータを設定するステップと、
前記ノード装置の備える選択手段が、前記分散ハッシュテーブルシステムを構成する自ノード以外の全てのノード装置のうちから、前記パラメータに応じて定まる個数だけ、前記フィンガーテーブルに登録すべきノード装置を選択するステップとを備え、
前記分散ハッシュテーブルシステムを構成するノード装置それぞれには相異なるハッシュ値が対応付けられており、
前記選択手段は、自ノードに対応付けられたハッシュ値に2のr乗(rは0≦r<mの範囲から選択された実数であり、mは前記分散ハッシュテーブルシステムが管理するハッシュ空間のビット数である。)を追加して得たハッシュ値と、自ノード以外の前記ノード装置に対応付けられたハッシュ値とに基づいて、前記フィンガーテーブルに登録すべきノード装置を選択することを特徴とする転送ノード決定方法。
Configure a distributed hash table system consisting of multiple node devices that share different hash value ranges, and send a message that should be received by a node device that shares a specific hash value without specifying that node device. In this case, in the transfer destination node determination method of one node device provided with a finger table in which information of a plurality of node devices that are candidates for transferring the message is registered,
A setting means provided in the node device sets a designated parameter;
The selection means included in the node device selects a node device to be registered in the finger table by the number determined according to the parameter from all the node devices other than the own node constituting the distributed hash table system. With steps,
A different hash value is associated with each node device constituting the distributed hash table system,
The selection means is a hash value associated with the own node raised to the power of 2 (r is a real number selected from a range of 0 ≦ r <m, and m is a hash space managed by the distributed hash table system) The node device to be registered in the finger table is selected based on the hash value obtained by adding the number of bits) and the hash value associated with the node device other than its own node. A forwarding node determination method.
相異なるハッシュ値の範囲を分担する複数のノード装置からなる分散ハッシュテーブルシステムを構成する一つのノード装置としてコンピュータを機能させるためのプログラムにおいて、
特定のハッシュ値を分担するノード装置が受信すべきメッセージを、そのノード装置を特定できずに送信すべき場合に、該メッセージを転送すべき候補になる複数のノード装置の情報を登録したフィンガーテーブルと、
前記分散ハッシュテーブルシステムを構成する自ノード以外の全てのノード装置のうちから、前記フィンガーテーブルに登録すべきノード装置を、指定されたパラメータに応じて定まる個数だけ選択する選択手段とをコンピュータに実現させるためのものであるとともに、
前記分散ハッシュテーブルシステムを構成するノード装置それぞれには相異なるハッシュ値が対応付けられており、
前記選択手段は、自ノードに対応付けられたハッシュ値に2のr乗(rは0≦r<mの範囲から選択された実数であり、mは前記分散ハッシュテーブルシステムが管理するハッシュ空間のビット数である。)を追加して得たハッシュ値と、自ノード以外の前記ノード装置に対応付けられたハッシュ値とに基づいて、前記フィンガーテーブルに登録すべきノード装置を選択することを特徴とするプログラム。
In a program for causing a computer to function as one node device constituting a distributed hash table system composed of a plurality of node devices that share different hash value ranges,
When a message to be received by a node device that shares a specific hash value is to be transmitted without being able to identify the node device, a finger table that registers information of a plurality of node devices that are candidates for transferring the message When,
The computer realizes selection means for selecting a node device to be registered in the finger table from among all the node devices other than its own node constituting the distributed hash table system according to a designated parameter. As well as for
A different hash value is associated with each node device constituting the distributed hash table system,
The selection means is a hash value associated with the own node raised to the power of 2 (r is a real number selected from a range of 0 ≦ r <m, and m is a hash space managed by the distributed hash table system) The node device to be registered in the finger table is selected based on the hash value obtained by adding the number of bits) and the hash value associated with the node device other than its own node. Program.
JP2007076266A 2007-03-23 2007-03-23 Node device, forwarding node determination method and program Expired - Fee Related JP4521419B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007076266A JP4521419B2 (en) 2007-03-23 2007-03-23 Node device, forwarding node determination method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007076266A JP4521419B2 (en) 2007-03-23 2007-03-23 Node device, forwarding node determination method and program

Publications (2)

Publication Number Publication Date
JP2008234536A true JP2008234536A (en) 2008-10-02
JP4521419B2 JP4521419B2 (en) 2010-08-11

Family

ID=39907203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007076266A Expired - Fee Related JP4521419B2 (en) 2007-03-23 2007-03-23 Node device, forwarding node determination method and program

Country Status (1)

Country Link
JP (1) JP4521419B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488178A (en) * 2019-01-29 2020-08-04 戴尔产品有限公司 Method and system for solution integration tagging

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CSNG200501303016, 中川, 吉川, 太田,倉掛, "大規模な分散環境におけるユビキタス情報発見サービス", 情報処理学会論文誌, 20050415, 第46巻 第4号, p.1061〜1069, JP, 社団法人情報処理学会 *
CSNH200600053003, 尾崎, 土井, 若山, "小規模から円滑に拡張できる商品トレーサビリティシステム", 東芝レビュー, 20050801, 第60巻 第8号, p.27〜31, 株式会社東芝 *
CSNJ200710045147, 臼井, 西村, "経路情報維持コストを考慮した可変長分散ハッシュ法のChordへの適用", 第69回(平成19年)全国大会講演論文集(3), 20070306, p.3−305〜3−306, 社団法人情報処理学会 *
JPN6009026625, 臼井, 西村, "経路情報維持コストを考慮した可変長分散ハッシュ法のChordへの適用", 第69回(平成19年)全国大会講演論文集(3), 20070306, p.3−305〜3−306, 社団法人情報処理学会 *
JPN6009026626, 中川, 吉川, 太田,倉掛, "大規模な分散環境におけるユビキタス情報発見サービス", 情報処理学会論文誌, 20050415, 第46巻 第4号, p.1061〜1069, JP, 社団法人情報処理学会 *
JPN6009026627, 尾崎, 土井, 若山, "小規模から円滑に拡張できる商品トレーサビリティシステム", 東芝レビュー, 20050801, 第60巻 第8号, p.27〜31, 株式会社東芝 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488178A (en) * 2019-01-29 2020-08-04 戴尔产品有限公司 Method and system for solution integration tagging
CN111488178B (en) * 2019-01-29 2023-09-05 戴尔产品有限公司 Method and system for solution integration tagging

Also Published As

Publication number Publication date
JP4521419B2 (en) 2010-08-11

Similar Documents

Publication Publication Date Title
US8037076B2 (en) Federated indexing from hashed primary key slices
US9641598B1 (en) Contextually unique identifier generation service
US20140161129A1 (en) Message Transport System Using Publication and Subscription Mechanisms
JP5600573B2 (en) Load balancing apparatus and program
JP2008262507A (en) Data retrieval device, data retrieval system, data retrieval method, and program for data retrieval
US20090210489A1 (en) Methods for peer-caching for faster lookups in peer-to-peer systems
JP5541812B2 (en) Method and system for publishing content, method and system for searching content
JP2016059039A (en) Interest keep alive in intermediate router in ccn
US20120136962A1 (en) Systems and methods for distributing data
US9742669B2 (en) Aliasing of named data objects and named graphs for named data networks
CN105376292A (en) Explicit strategy feedback in name-based forwarding
Felber et al. P ulp: An adaptive gossip-based dissemination protocol for multi-source message streams
US10474644B2 (en) Systems and methods for optimizing selection of a replication data node in a distributed file system
US20120317275A1 (en) Methods and devices for node distribution
Shi et al. Tinymq: A content-based publish/subscribe middleware for wireless sensor networks
US10261949B2 (en) Packed row representation for efficient network serialization with direct column indexing in a network switch
US9137331B2 (en) Adaptive replication
US20140365541A1 (en) Storing an object in a distributed storage system
US8978048B2 (en) Information processing system, control method, and non-transitory computer readable medium storing program
EP2433412A1 (en) Limiting storage messages in peer to peer network
JP4521419B2 (en) Node device, forwarding node determination method and program
JP2008269141A (en) Overlay retrieving device, overlay retrieving system, overlay retrieving method, and program for overlay retrieval
Polatoglou et al. On low‐complexity adaptive wireless push‐based data broadcasting
Kang et al. A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments
JP2007156700A (en) Information retrieval method, information registration method and network service information retrieval system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090803

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100524

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees