JP2005354364A - Distributed data processing and managing device, and its method - Google Patents

Distributed data processing and managing device, and its method Download PDF

Info

Publication number
JP2005354364A
JP2005354364A JP2004172488A JP2004172488A JP2005354364A JP 2005354364 A JP2005354364 A JP 2005354364A JP 2004172488 A JP2004172488 A JP 2004172488A JP 2004172488 A JP2004172488 A JP 2004172488A JP 2005354364 A JP2005354364 A JP 2005354364A
Authority
JP
Japan
Prior art keywords
identifier
routing table
data processing
distributed data
unit
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
JP2004172488A
Other languages
Japanese (ja)
Other versions
JP4271620B2 (en
Inventor
Shinya Ishihara
晋也 石原
Mitsuo Teramoto
光生 寺元
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 JP2004172488A priority Critical patent/JP4271620B2/en
Publication of JP2005354364A publication Critical patent/JP2005354364A/en
Application granted granted Critical
Publication of JP4271620B2 publication Critical patent/JP4271620B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a distributed data processing and managing device which improves a system response time by eliminating the waste of a routing table, by adopting a routing table construction method different from a FINGER and reducing the number of times of transfers smaller than a Chord system in the case of an internet wide system having many computers, and to provide its method. <P>SOLUTION: The distributed data processing and managing device includes other distributed data processing and managing devices, and a communication processing unit which transmits and receives a message; and a route table processing unit for determining the distributed data processing and managing device to a transfer destination if it detects that the message is not data in charge of and reconfigurates the routing table. The i-th entry is based on an identifier which 2<SP>i</SP>is separated from an own identifier by a routing table construction of a Chord System. On the other hand, the routing table processing unit reconfigurates the routing able to the i-th entry from the own identifier based on the identifier separated by unit×base<SP>i</SP>as a reference. Unit=(identifier of a device which in turn appears in the right direction from the own identifier)-(own identifier). Base=2×unit<SP>(-1/160)</SP>. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、分散ハッシュ表技術を応用した分散型データ処理システムに係わり、特にシステムの応答の高速化を図った経路表の構成を特徴とする分散型データ処理/管理装置及びその方法に関する。   The present invention relates to a distributed data processing system to which a distributed hash table technique is applied, and more particularly, to a distributed data processing / management apparatus and a method therefor characterized by a configuration of a routing table designed to speed up the response of the system.

特定のサーバによらずに、ネットワークに継続的あるいは一時的に接続した計算機群によって構成される、分散型データ処理および管理システムとして、分散ハッシュ表技術を応用したシステムが知られている。
このようなシステムにおいて、ネットワークに継続的あるいは一時的に接続した計算機群は、ハッシュ関数を適用することにより得られる識別子を基準にして、お互いにアプリケーションレイヤネットワークを用いて接続している。
A system using a distributed hash table technique is known as a distributed data processing and management system configured by a group of computers connected continuously or temporarily to a network without depending on a specific server.
In such a system, a group of computers connected continuously or temporarily to a network are connected to each other using an application layer network on the basis of an identifier obtained by applying a hash function.

処理あるいは管理対象のデータは、ハッシュ関数を適用することにより得られる識別子によりアプリケーションレイヤネットワーク上を転送され、転送先計算機上で処理あるいは管理される。
このようなシステムの応答を高速化するためには、アプリケーションレイヤネットワーク上の転送にかかる時間を短縮することが望ましい。
Data to be processed or managed is transferred on the application layer network by an identifier obtained by applying a hash function, and is processed or managed on the transfer destination computer.
In order to speed up the response of such a system, it is desirable to reduce the time required for transfer on the application layer network.

ここで、分散型データ処理および管理システムに適用する分散ハッシュ表技術として、米国MIT大学のThe Chord Projectが良く知られている(非特許文献1及び2参照)。
上記Chordシステムにおいては、ハッシュ関数としてSHA-1を採用しており、160ビットのハッシュ空間を構成する。
処理あるいは管理対象のデータは、ハッシュ関数SHA-1により160ビットの識別子が割り当てられる。
Here, The Chord Project of MIT University in the United States is well known as a distributed hash table technique applied to a distributed data processing and management system (see Non-Patent Documents 1 and 2).
The Chord system employs SHA-1 as a hash function and constitutes a 160-bit hash space.
The data to be processed or managed is assigned a 160-bit identifier by the hash function SHA-1.

また、システムを構成する計算機についても、ネットワーク識別子、具体的には、IPアドレスとポート番号の組に対して、ハッシュ関数SHA-1を適用した160ビットの識別子により認識される。
ここで、上記160ビットのハッシュ空間は、図9に示すように、循環しているものとされる。
すなわち、2160−1識別子から見て、正の方向(矢印A)に1つ進んだ識別子は0であり、一方、識別子0から見て負の方向(矢印B)に1つ進んだ識別子は2160−1である。
Computers constituting the system are also recognized by a network identifier, specifically, a 160-bit identifier to which a hash function SHA-1 is applied to a set of an IP address and a port number.
Here, the 160-bit hash space is assumed to circulate as shown in FIG.
That is, when viewed from the 2 160 -1 identifier, the identifier advanced by 1 in the positive direction (arrow A) is 0, while the identifier advanced by 1 in the negative direction (arrow B) when viewed from the identifier 0 is 2 160 -1.

処理あるいは管理対象のデータは、割り当てられた識別子に基づき、システムを構成する計算機のいずれかが担当する。
また、上記データを処理あるいは管理するとき、ちょうど該当する識別子を持つ計算機がない場合は、データの識別子から見て正の方向において、次に現れる識別子を持つ計算機が担当することになる。
そして、システムを構成する計算機は、アプリケーションネットワークを構成することによってお互いに通信を行う。
Data to be processed or managed is handled by one of the computers constituting the system based on the assigned identifier.
Further, when processing or managing the data, if there is no computer having the corresponding identifier, the computer having the next appearing identifier in charge in the positive direction as viewed from the data identifier is in charge.
And the computer which comprises a system communicates with each other by comprising an application network.

このときのアプリケーションネットワークは、以下のように構成される。
システムを構成する計算機は、自身の識別子から見て正の方向について次に現れる識別子を持つ計算機を、自らのSUCCESSORとして認識している。
この場合認識しているとは、SUCCESSORのIPアドレスとポート番号とを知っており(保持しており)、SUCCESSORに対してメッセージを送信可能であることをあらわしている。
システムを構成する計算機は、同様に、自身の識別子から見て負の方向について次に現れる識別子を持つ計算機を、自らのPREDECESSORとして認識している。
この場合認識しているとは、PREDECESSORのIPアドレスとポート番号とを知っており(保持しており)、PREDECESSORへのメッセージの送信可能が明確であることをあらわしている。
The application network at this time is configured as follows.
A computer constituting the system recognizes a computer having an identifier that appears next in the positive direction as viewed from its own identifier as its own SUCCESSOR.
Recognizing in this case indicates that the IP address and port number of SUCCESSOR are known (held) and that a message can be transmitted to SUCCESSOR.
Similarly, a computer constituting the system recognizes a computer having an identifier that appears next in a negative direction as viewed from its own identifier as its own PREDECESSOR.
Recognizing in this case means that the IP address and port number of the PREDECESSOR are known (held), and it is clear that the message can be sent to the PREDECESSOR.

以上のようにして構成されたアプリケーションネットワーク上において、識別子Xを持つ計算機がYを識別子とするデータを担当する計算機にメッセージを送信する際、SUCCESSORに対して転送を繰り返すことでメッセージの送信が完了することは自明である。
ただし、システムを構成する計算機の数がNであるとき、メッセージの転送回数は平均してN/2となり、Nが大きな数の場合に時間がかかりすぎるという問題が生じる。
このため、Chordシステムは上記問題に対して、FINGERと呼ばれる経路表(経路テーブル)を採用している。
On the application network configured as described above, when a computer with identifier X sends a message to a computer in charge of data with identifier Y, the message transmission is completed by repeating the transfer to SUCCESSOR. It is obvious to do.
However, when the number of computers constituting the system is N, the number of message transfers is N / 2 on average, and there is a problem that it takes too much time when N is a large number.
For this reason, the Chord system employs a routing table (route table) called FINGER for the above problem.

システムを構成する計算機(ノード)は、エントリ0からエントリ159までの160エントリからなる経路表を有している。
ここで、識別子Xを持つ計算機について、エントリi(0≦i≦159)としてのノードは、X+2mod2160の識別子のデータを担当する計算機(すなわち、ちょうどX+2mod2160の識別子を持つ計算機か、そのような計算機がない場合は、X+2mod2160の識別子から見て正の方向において次に現れる識別子を持つ計算機)となる。
A computer (node) constituting the system has a route table composed of 160 entries from entry 0 to entry 159.
Here, the computer having an identifier X, node as the entry i (0 ≦ i ≦ 159) , X + 2 i mod2 160 identifier computer responsible for data (i.e., whether the computer just having an identifier of X + 2 i mod2 160 If there is no such computer, the computer has an identifier that appears next in the positive direction as viewed from the identifier of X + 2 i mod2 160 ).

このとき、エントリiの経路表には、該当する計算機の識別子と、ネットワーク識別子、すなわち、IPアドレス及びポート番号が格納される。
このように構成された経路表を各計算機が有する場合、それらの計算機から構成されるアプリケーションネットワーク上において、識別子Xを有する計算機が、Yを識別子とするデータを担当する計算機にメッセージを送信するプロセスは以下の通りである。
まず、エントリiは、自身の経路表を検索して、Yを正の方向で越えない識別子のうち最もYに近づく識別子を含むエントリを抽出し、その識別子を持つ計算機にメッセージを転送する。
At this time, the identifier of the corresponding computer and the network identifier, that is, the IP address and the port number are stored in the route table of entry i.
When each computer has a routing table configured in this way, a process in which a computer having an identifier X transmits a message to a computer in charge of data having an identifier Y on an application network composed of these computers Is as follows.
First, the entry i searches its routing table, extracts an entry including an identifier that is closest to Y among identifiers that do not exceed Y in the positive direction, and transfers the message to a computer having that identifier.

転送先の計算機においても、同様に、自身の経路表を検索して、Yを正の方向で越えない識別子のうち最もYに近づく識別子を含むエントリを抽出し、その識別子を持つ計算機にメッセージを転送する。
以降の計算機においても、同様の処理を繰り返すことにより、識別子Yを持つ計算機にメッセージが到達することは自明である。
そして、経路表の構成から、転送を行う毎にハッシュ空間上での距離が半分になるため、FINGERを採用したシステムにおいては、システムを構成する計算機の数がNの時、メッセージは最大log(N)回の転送を行うことで目的地に到達する。
Similarly, the transfer destination computer also searches its routing table, extracts an entry including an identifier that approaches Y most among identifiers that do not exceed Y in the positive direction, and sends a message to the computer having that identifier. Forward.
In subsequent computers, it is obvious that the message reaches the computer having the identifier Y by repeating the same processing.
Since the distance in the hash space is halved every time transfer is performed due to the configuration of the routing table, in a system employing FINGER, when the number of computers constituting the system is N, the message is the maximum log ( N) The destination is reached by performing the transfer.

経路表自体も、上記の特性を利用することにより効率的に構成することができる。
エントリiは、i=0からi=159までの順番で帰納的に構成される。
そして、i=0のとき、X+2mod2160=X+1mod2160であり、エントリ0はSUCCESSOR(Xから見て正の方向において次に現れる識別子を持つ計算機)となる。
ここで、エントリi−1までが既に求められているとして、エントリiを求めるには、識別子X+2mod2160のデータを担当する計算機(X+2mod2160ちょうどか、そのような識別子を持つ計算機が存在しない場合は、X+2mod2160計算機から見て正の方向において次に現れる識別子の計算機)宛にメッセージを送信することになる。
The routing table itself can also be efficiently constructed by using the above characteristics.
The entry i is constructed recursively in the order from i = 0 to i = 159.
When i = 0, X + 2 0 mod2 160 = X + 1 mod2 160 , and entry 0 is SUCCESSOR (a computer having an identifier that appears next in the positive direction as viewed from X).
Here, assuming that entry i-1 has already been obtained, to obtain entry i, a computer in charge of the data of identifier X + 2 i mod2 160 (X + 2 i mod2 160 just or a computer having such an identifier is used. If it does not exist, the message is transmitted to the computer of the identifier that appears next in the positive direction as seen from the X + 2 i mod2 160 computer.

しかしながら、このとき、既に求められているエントリ0からエントリi−1までのうちで識別子X+2mod2160を、正の方向において越えない識別子のなかから、最も識別子X+2mod2160の計算機に近づくエントリ、すなわち、エントリi−1の計算機に対してメッセージを転送すればよい。
上述した転送により、ハッシュ空間上での距離は半分になる。
そして、転送先の計算機で経路表が適切に構成されていれば、転送先からも転送ごとに距離が半分になる。
However, at this time, the entry closest to the computer of the identifier X + 2 i mod2 160 from the identifiers that do not exceed the identifier X + 2 i mod2 160 in the positive direction among the entries 0 to i-1 that have already been obtained. That is, the message may be transferred to the computer of entry i-1.
By the transfer described above, the distance on the hash space is halved.
If the routing table is appropriately configured in the transfer destination computer, the distance is also halved for each transfer from the transfer destination.

このため、最大i回の転送で目的地である識別子X+2mod2160のデータを担当する計算機(X+2mod2160ちょうどか、そのような識別子を持つ計算機が存在しない場合は、X+2mod2160から見て正の方向において次に現れる識別子の計算機)にメッセージは到達する。
このようにしてエントリiは求められる。以上の処理により、エントリ0からエントリ159は効率的に構成されうる。
以上で述べた方法をシステムを構成する各計算機で定期的に繰り返し行うことで、各計算機のFINGERによる経路表は適切に保たれる。
http://www.pdos.lcs.mit.edu/chord/ Ion Stoica,Robert Morris,David Karger,M.Frans Kaashoek,and Hari Balakrishnan,Chord:A Scalable Peer-to-peer Lookup Service for Internet Applications,ACM SIGCOMM 2001,SanDeigo,CA,August 2001,pp.149−160
For this reason, the computer in charge of the data of the identifier X + 2 i mod2 160 , which is the destination at the maximum of i transfers (X + 2 i mod2 160, or if there is no computer having such an identifier, from X + 2 i mod2 160 The message arrives at the next identifier computer in the positive direction.
In this way, entry i is obtained. Through the above processing, entry 0 to entry 159 can be efficiently configured.
By periodically repeating the method described above on each computer that constitutes the system, the routing table of each computer using FINGER is maintained appropriately.
http: // www. pdos. lcs. mit. edu / chord / Ion Stoica, Robert Morris, David Karger, M.M. Frans Kaashoek, and Hari Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications, ACM SIGCOMM 2001, SanDeigo, CA, August 2001, pp. 149-160

上述したように、特許文献1及び2に示すChordシステムは、FINGERによる経路表構成法の採用により、システムを構成する計算機の数がNのとき、アプリケーションネットワーク上で最大1og(N)回、平均してlog(N)/2回の転送を繰り返すことにより、任意の2計算機の間でメッセージを送信することができる。
しかしながら、Chordシステムをインターネットに適用したとして、システムを構成する計算機の数が100万台程度であるとした場合、log(10)≒20であることから、平均して10回の転送がアプリケーションネットワーク上で必要となる。
As described above, the Chord system shown in Patent Documents 1 and 2 adopts the routing table construction method by FINGER, and when the number of computers constituting the system is N, the maximum is 1 og (N) times on the application network. By repeating log (N) / 2 transfer, a message can be transmitted between any two computers.
However, assuming that the Chord system is applied to the Internet and the number of computers constituting the system is about 1 million, log (10 6 ) ≈20. Required on the network.

これはアプリケーションネットワーク上での転送回数であり、経由するルータの数で考えた場合、更に大きな転送回数となる。
したがって、Chordシステムは、理論上効率的なシステムであるとはいえ、実動作環境への適用を考える場合、応答時間の制約から、この転送回数は可能な限り少なくすべきものである。
また、ChordシステムのFINGERによる経路表構成法には、以下に示すように、大きな無駄が存在する。
This is the number of transfers on the application network, and when considering the number of routers that pass through, this is a larger number of transfers.
Therefore, although the Chord system is a theoretically efficient system, when considering application to an actual operating environment, the number of times of transfer should be as small as possible due to response time constraints.
In addition, as shown below, the Chord system's FINGER routing table construction method has a large waste.

システムを構成する計算機が100万(≒220)台程度であるとき、ハッシュ関数SHA-1によって、それぞれの識別子は、160ビットのハッシュ空間上に均一に散らばることが期待される。
このとき、隣接する二つの識別子は、平均して2140離れた位置に存在していることになる。
すなわち、識別子Xを有するある計算機にとって、そのSUCCESSORは、およそX+2140mod2160という識別子を待つことになる。
When the number of computers constituting the system is about 1 million (≈2 20 ), it is expected that the respective identifiers are uniformly scattered on the 160-bit hash space by the hash function SHA-1.
In this case, two adjacent identifier will be present in an average of 2 140 away.
That is, for a computer having the identifier X, the SUCCESSOR waits for an identifier of approximately X + 2 140 mod2 160 .

この場合、FINGERによる経路表構成法においては、エントリ0からエントリ140近傍までが、すべて同じエントリを待つことを意味する。
このため、経路表には160エントリが保持されているが、その大半が無駄に使われていることになる。
FINGERは一回の転送ごとに目的地へのハッシュ空間上の距離を半分にすることができたが、無駄に使われているエントリを工夫することにより、一回の転送ごとにFINGERよりも効率よく目的地へのハッシュ空間上の距離をつめることが可能である。
In this case, in the routing table construction method by FINGER, this means that all entries from entry 0 to entry 140 wait for the same entry.
For this reason, 160 entries are stored in the routing table, but most of them are wasted.
FINGER was able to halve the hash space distance to the destination for each transfer, but it was more efficient than FINGER for each transfer by devising a wasteful entry. It is possible to narrow the distance in the hash space to the destination well.

本発明は、このような事情に鑑みてなされたもので、FINGERとは異なる経路表構成法を採用することにより、経路表の無駄を省き、100万台程度の計算機から構成されるインターネットワイドなシステムの場合、Chordシステムよりも少ない転送回数を実現し、システムの応答時間を改善する分散型データ処理/管理装置及びその方法を提供するものである。   The present invention has been made in view of such circumstances. By adopting a routing table configuration method different from FINGER, the routing table is not wasted, and the Internet-wide configuration including about 1 million computers. In the case of a system, the present invention provides a distributed data processing / management apparatus and method that realizes a smaller number of transfers than the Chord system and improves the response time of the system.

本発明の分散型データ処理/管理装置は、分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送機能を有する分散型データ処理/管理装置であって、通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理部と、該通信処理部において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため、経路表を再構成する経路表処理部とを有し、Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、前記経路表処理部が、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
A distributed data processing / management apparatus according to the present invention is a distributed data processing / management apparatus having a message transfer function similar to that of a Chord system having a 160-bit hash space using a distributed hash table technology, A communication processing unit that is connected and transmits / receives a message to / from another distributed data processing / management device, and if it detects that the message received by the communication processing unit is not data that it is responsible for, should transfer the message to determine the other distributed data processing / management unit, and a routing table processor for reconstructing the routing table, the routing table configuration method Chord system, for the i-th entry, 2 i from its own identifier The routing table processing unit uses the identifier separated by unit × base i from the identifier as a reference. The routing table is reconfigured with respect to the entries.
unit = (identifier of the next device that appears in the forward direction from its own identifier)-(own identifier)
base = 2 × unit (-1/160)

本発明の分散型データ処理/管理装置は、メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、前記経路表処理部が一定周期毎に該経路表管理部における経路表の再構成を行うことを特徴とする。   The distributed data processing / management apparatus of the present invention includes a routing table management unit in which the routing table indicating a message transmission route is stored, and the routing table processing unit performs routing in the routing table management unit at regular intervals. The table is reconfigured.

本発明の分散型データ処理/管理方法は、分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送過程を有する分散型データ処理方法であって、通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理過程と、該通信処理過程において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため経路表を再構成する経路表処理過程とを有し、Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、前記経路表処理過程において、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
A distributed data processing / management method of the present invention is a distributed data processing method having a message transfer process similar to that of a Chord system having a 160-bit hash space using a distributed hash table technique, and is connected to a communication network. A communication process for transmitting / receiving a message to / from another distributed data processing / management apparatus, and when it is detected that the message received in the communication process is not the data handled by itself, A routing table processing process for reconfiguring a routing table to determine a distributed data processing / management device, and the Chord system routing table configuration method is 2 i away from its own identifier for the i-th entry In contrast to an identifier as a reference, in the routing table processing process, an identifier separated by unit × base i from its own identifier as a reference, The routing table is reconfigured for the i-th entry.
unit = (identifier of the next device that appears in the forward direction from its own identifier)-(own identifier)
base = 2 × unit (-1/160)

本発明の分散型データ処理/管理方法は、メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、前記経路表処理過程が一定周期毎に行われ、該経路表管理部における経路表の再構成を行うことを特徴とする。   The distributed data processing / management method of the present invention includes a routing table management unit in which the routing table indicating a message transmission route is stored, and the routing table processing process is performed at regular intervals, and the routing table management is performed. The route table is reconstructed in the section.

Chordシステムにおいては、識別子Xを持つある計算機の経路表の構成を、エントリiについて、識別子「X+2mod2160」を持つデータを担当する計算機の識別子としていた。
一方、本発明においては、経路表のエントリ数について、ChordシステムのFINGERによるものと同様に、160エントリとするが、エントリiについて、以下の(1)式から求められる値の識別子を有するデータを担当する計算機の識別子とする。
エントリiの識別子=X+unit×basemod2160 …(1)
ただし、
unit=(XのSUCCESSORの識別子)−X
base=2×unit(−1/160)
とする。
In the Chord system, the configuration of the routing table of a computer having the identifier X is the identifier of the computer in charge of data having the identifier “X + 2 i mod2 160 ” for the entry i.
On the other hand, in the present invention, the number of entries in the routing table is 160 entries as in the Chord system FINGER, but for the entry i, data having an identifier with a value obtained from the following equation (1) is used. Use the identifier of the computer in charge.
Identifier of entry i = X + unit × base i mod2 160 (1)
However,
unit = (identifier of X SUCCESSOR) −X
base = 2 × unit (-1/160)
And

本実施例においては、160ビットのハッシュ空間を160回同じbaseなる数で割り算した場合、最終的に「(XのSUCCESSORの識別子)−X」が得られるように、baseの値を選択している。
上述のようにbaseを選ぶことにより、i=0の場合、上記(1)式は、SUCCESSORの識別子となり、エントリ0はSUCCESSORとなる。
また、i=1の場合、baseは1以上であるため、エントリ1はSUCCESSORの識別子より正の方向で越えた識別子となることがわかる。すなわちエントリ0とエントリ1は異なることがわかる。
In this embodiment, when the 160-bit hash space is divided 160 times by the same base number, the base value is selected so that “(X SUCCESSOR identifier) −X” is finally obtained. Yes.
By selecting base as described above, when i = 0, the above equation (1) becomes the identifier of SUCCESSOR, and entry 0 becomes SUCCESSOR.
Further, when i = 1, since base is 1 or more, it can be seen that entry 1 is an identifier that exceeds the identifier of SUCCESSOR in the positive direction. That is, entry 0 and entry 1 are different.

ChordシステムのFINGERの場合は、unitを1とし、baseを2とした構成となっているため、大半のエントリにおいて同じ識別子を持つ装置となったが、本発明においては同じ識別子を有する装置となることをを避けることが可能となる。
ここで、各エントリの対象が異なるだけで、他の構成はChordシステムにおけるFINGERによる経路表(もしくは経路テーブル)構成法と同様のプロセスとなり、また、メッセージの転送についても同様である。
In the case of FINGER of the Chord system, the unit is set to 1 and the base is set to 2. Therefore, the apparatus has the same identifier in most entries, but in the present invention, the apparatus has the same identifier. It becomes possible to avoid that.
Here, only the target of each entry is different, and the other configuration is the same process as the route table (or route table) configuration method by FINGER in the Chord system, and the message transfer is also the same.

以上説明したように、本願発明の分散型データ処理/管理装置によれば、経路表の構成法を工夫することにより、シミュレーションの結果から、100万台程度の計算機から構成されるインターネットワイドなシステムに対して、従来のChordシステムと同程度の手間で、Chordシステムと比べて約半分の転送回数を実現し、システムの応答時間を改善し、かつ、Chordシステムと比べて経路表の無駄なエントリを省くことができ、経路表を有効に活用することを可能とした。   As described above, according to the distributed data processing / management apparatus of the present invention, by devising the configuration method of the routing table, the Internet-wide system composed of about 1 million computers from the simulation results On the other hand, with the same amount of work as the conventional Chord system, the number of transfers is approximately half that of the Chord system, improving the response time of the system, and wasteful entry in the routing table compared to the Chord system. This makes it possible to effectively use the route table.

以下、本発明の一実施形態による装置を図面を参照して説明する。図1は同実施形態による分散型データ処理/管理装置の構成例を示すブロック図である。また、この図1は複数の分散型データ処理/管理装置が通信ネットワークTにより、相互に接続している形態を示している。
この図において、本実施形態の分散型データ処理/管理装置は1、通信ネットワークTと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行うため、または自身が担当するデータを含むか否かを検出するための通信処理部2と、通信処理部2において受信したメッセージが自身が担当するデータを含む場合にその処理を行うためのデータ処理部3と、データ処理部3において処理するデータを読み出しあるいは書き込みするためのデータ管理部4と、通信処理部2において受信したメッセージが自身が担当するデータでない場合にメッセージを転送すべき他の分散型データ処理/管理装置を決定するため、また、経路表を適切に保つために定期的に経路表管理部5の再構成を行うための経路表処理部6と、経路表処理部6によって定期的に再構成される経路表を格納するための経路表管理部5と、を有している。
上述したように、分散型データ処理/管理装置は、通信処理部2を介して、通信ネットワークTと接続され、通信ネットワークTの提供するメッセージ配信機能を利用して、他の分散型データ処理/管理装置相互間のメッセージの送受信を行う。
Hereinafter, an apparatus according to an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration example of a distributed data processing / management apparatus according to the embodiment. FIG. 1 shows a form in which a plurality of distributed data processing / management apparatuses are connected to each other via a communication network T.
In this figure, a distributed data processing / management apparatus according to the present embodiment is connected to a communication network T, and includes data to be transmitted / received to / from other distributed data processing / management apparatuses. A communication processing unit 2 for detecting whether or not a message received by the communication processing unit 2 includes data handled by the communication processing unit 2, and a data processing unit 3 for performing processing when the message is handled by the communication processing unit 2. A data management unit 4 for reading or writing data to be read, and another distributed data processing / management device to which the message is to be transferred when the message received by the communication processing unit 2 is not the data handled by itself. In addition, a route table processing unit 6 for periodically reconfiguring the route table management unit 5 in order to keep the route table appropriate, and a route table processing unit 6 Thus it has a routing table managing unit 5 for storing the periodically reconfigured routing table, the.
As described above, the distributed data processing / management apparatus is connected to the communication network T via the communication processing unit 2 and uses the message distribution function provided by the communication network T to perform other distributed data processing / Send and receive messages between management devices.

次に、図2を参照して、経路表管理部6に格納される経路表の説明を行う。図2は、経路表管理部6に格納される経路表のデータ構造の一例を示したものである。
経路表は、エントリ0からエントリ159までの160エントリで構成される。
ここで、各エントリは、エントリ番号と、分散型データ処理/管理装置の識別子と、分散型データ処理/管理装置のIPアドレスと、分散型データ処理/管理装置のポート番号とからなる。
そして、経路表は、更にSUCCESSORとPREDECESSORとを管理する二つの特別なエントリを有しており、これらのエントリの構成も同様である。
Next, the routing table stored in the routing table management unit 6 will be described with reference to FIG. FIG. 2 shows an example of the data structure of the routing table stored in the routing table management unit 6.
The routing table is composed of 160 entries from entry 0 to entry 159.
Each entry includes an entry number, an identifier of the distributed data processing / management apparatus, an IP address of the distributed data processing / management apparatus, and a port number of the distributed data processing / management apparatus.
The routing table further has two special entries for managing SUCCESSOR and PREDECESSOR, and the configuration of these entries is the same.

次に、図3を参照して、分散型データ処理/管理装置間で送受信されるメッセージの説明を行う。図3は、上記メッセージのフォーマットの一例を示したものである。
メッセージは、図3に示すように、メッセージの送信先を示す送信先識別子と、メッセージによって運ばれるデータの処理方法を示すコマンドと、送信するデータと、送信元装置のIPアドレスと、送信元装置のポート番号との各項目を有している。
Next, with reference to FIG. 3, a message transmitted / received between the distributed data processing / management apparatuses will be described. FIG. 3 shows an example of the format of the message.
As shown in FIG. 3, the message includes a transmission destination identifier indicating a transmission destination of the message, a command indicating a processing method of data carried by the message, data to be transmitted, an IP address of the transmission source device, and a transmission source device. Each item has a port number.

次に、図1及び図4を参照して、本実施例の分散型データ処理/管理装置1のデータ受信処理の動作を説明する。図4は、本実施例の分散型データ処理/管理装置1のデータ受信処理の流れを示すフローチャートである。
通信処理部2は、通信ネットワークTに接続後、他の分散型データ処理/管理装置からのメッセージを受信する(ステップS1)。
そして、通信処理部2は、受信したメッセージの送信先識別子を見て、自身が担当するデータを含むか否かを検出、すなわち自身が担当すべきデータであるか否かを判断する。
Next, with reference to FIG. 1 and FIG. 4, the operation of the data reception process of the distributed data processing / management apparatus 1 of the present embodiment will be described. FIG. 4 is a flowchart showing the flow of data reception processing of the distributed data processing / management apparatus 1 of this embodiment.
After connecting to the communication network T, the communication processing unit 2 receives a message from another distributed data processing / management apparatus (step S1).
Then, the communication processing unit 2 looks at the transmission destination identifier of the received message and detects whether or not it includes data handled by itself, that is, determines whether or not the data is to be handled by itself.

すなわち、通信処理部2は、メッセージの送信先識別子がPREDECESSORの識別子から見て正の方向にあり、かつ、自身の識別子から見て負の方向にあるときは自身が担当すべきデータであることを検出し、上述したいずれかの条件が満たされない場合、自身が担当すべきデータではないことを検出する(ステップS2)。
そして、通信処理部2は、自身が担当すべきデータであると判断した場合、このメッセージをデータ処理部3へ出力する。
That is, the communication processing unit 2 is data to be handled by itself when the message destination identifier is in the positive direction as viewed from the PREDECESSOR identifier and in the negative direction as viewed from its own identifier. If any of the above-mentioned conditions is not satisfied, it is detected that the data is not to be handled by itself (step S2).
The communication processing unit 2 outputs this message to the data processing unit 3 when determining that the data is data to be handled by the communication processing unit 2 itself.

これにより、データ処理部3は、メッセージに示されているコマンドに従い、含まれるデータに対してデータ処理を行う。
その際、データ処理部3は、必要に応じてデータ管理部4へのデータの書き込み、あるいは、データの読み出しを行う。
また、データ処理部3は、必要に応じて、データ処理の結果を、メッセージの送信元IPアドレス及び送信元ポート番号を用い、送信元の分散型データ処理/管理装置に応答する(ステップS3)。
As a result, the data processing unit 3 performs data processing on the included data in accordance with the command indicated in the message.
At that time, the data processing unit 3 writes data to the data management unit 4 or reads data as necessary.
Further, the data processing unit 3 responds to the distributed data processing / management apparatus of the transmission source using the message transmission source IP address and the transmission source port number as necessary (step S3). .

一方、通信処理部2は、受信したメッセージの送信先識別子から、このメッセージが自身が担当すべきデータを含んでいないことを検出した場合、このメッセージを他の分散型データ処理/管理装置への転送を試みる。
このとき、通信処理部2は、経路表処理部3を介して、経路表管理部6に格納されている経路表から、メッセージの送信先識別子を正の方向において越えないものの中から、最もメッセージに含まれる送信先識別子に近づく識別子を持つエントリを検索する(ステップS4)。
On the other hand, when the communication processing unit 2 detects from the transmission destination identifier of the received message that this message does not include data to be handled by itself, the communication processing unit 2 sends this message to another distributed data processing / management apparatus. Attempt to transfer.
At this time, the communication processing unit 2 sends the message from the routing table stored in the routing table management unit 6 via the routing table processing unit 3 to the message that does not exceed the message destination identifier in the positive direction. An entry having an identifier approaching the transmission destination identifier included in is searched (step S4).

そして、経路表処理部4は、上記経路表から抽出したエントリから、転送すべき分散型データ処理/管理装置のIPアドレス及びポート番号を読み取り、メッセージの転送先の分散型データ処理/管理装置を決定する(ステップS5)。
これにより、通信処理部2は、得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの転送を行う(ステップS6)。
Then, the routing table processing unit 4 reads the IP address and port number of the distributed data processing / management apparatus to be transferred from the entry extracted from the routing table, and determines the distributed data processing / management apparatus as the message transfer destination. Determine (step S5).
As a result, the communication processing unit 2 transfers the message to the distributed data processing / management apparatus indicated by the obtained IP address and port number (step S6).

次に、図1及び図5を参照して、本実施例の分散型データ処理/管理装置1のデータ送信処理の動作を説明する。図5は、本実施例の分散型データ処理/管理装置1のデータ送信処理の流れを示すフローチャートである。
通信処理部2は、データ処理あるいは管理のため、他の分散型データ処理/管理装置に対して、メッセージを送信する必要が生じた場合、ハッシュ関数SHA-1を適用して所定の数値として得られる送信先識別子と、データの処理方法を現すコマンドと、データと、送信元である自身のIPアドレスと、自身のポート番号とを有する、図3に示すメッセージを生成する(ステップS11)。
Next, the operation of the data transmission process of the distributed data processing / management apparatus 1 according to this embodiment will be described with reference to FIGS. FIG. 5 is a flowchart showing the flow of data transmission processing of the distributed data processing / management apparatus 1 of this embodiment.
The communication processing unit 2 applies a hash function SHA-1 to obtain a predetermined numerical value when it becomes necessary to transmit a message to another distributed data processing / management apparatus for data processing or management. The message shown in FIG. 3 is generated, which includes the transmission destination identifier, the command indicating the data processing method, the data, the own IP address that is the transmission source, and the own port number (step S11).

次に、経路表処理部5は、経路表管理部6に格納されている経路表を検索して、メッセージの送信先識別子を正の方向において越えないものの中から、最も送信先識別子に近づく識別子を持つエントリを抽出する(ステップS12)。
そして、経路表処理部5は、抽出したエントリから、転送すべき分散型データ処理/管理装置のIPアドレス及びポート番号を読み取り、送信先の分散型データ処理/管理装置を決定する(ステップS14)。
これにより、通信処理部2は、上述のように得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの送信を行う(ステップS14)。
Next, the routing table processing unit 5 searches the routing table stored in the routing table management unit 6 and selects the identifier closest to the destination identifier from those that do not exceed the message destination identifier in the positive direction. An entry having “” is extracted (step S12).
Then, the routing table processing unit 5 reads the IP address and port number of the distributed data processing / management device to be transferred from the extracted entry, and determines the transmission destination distributed data processing / management device (step S14). .
Thereby, the communication processing unit 2 transmits a message to the distributed data processing / management apparatus indicated by the IP address and port number obtained as described above (step S14).

次に、図1及び図6を参照して、本実施例の分散型データ処理/管理装置1の経路表の再構成処理の動作を説明する。図6は、本実施例の分散型データ処理/管理装置1の経路表の再構成処理の流れを示すフローチャートである。
経路表処理部5は、エントリiに設定すべき他の分散型データ処理/管理装置の識別子を求めるためのターゲット識別子Iを0に設定して、初期化を行う(ステップS21)。
次に、経路表処理部5は、上記ターゲット識別子Iを計算する。
Next, with reference to FIG. 1 and FIG. 6, the operation of the routing table reconfiguration process of the distributed data processing / management apparatus 1 of the present embodiment will be described. FIG. 6 is a flowchart showing the flow of the routing table reconfiguration process of the distributed data processing / management apparatus 1 of this embodiment.
The routing table processing unit 5 sets the target identifier I for obtaining the identifier of another distributed data processing / management apparatus to be set in the entry i to 0 and performs initialization (step S21).
Next, the routing table processing unit 5 calculates the target identifier I.

すなわち、具体的には、以下の式を用いターゲット識別子を計算する。
ターゲット識別子 = X+unit×basemod2160
ただし、X=自身の識別子
Unit=SUCCESSORの識別子−X
Base=2×unit(−1/160)
である。
Specifically, the target identifier is calculated using the following equation.
Target identifier = X + unit x base i mod 2 160
Where X = own identifier
Unit = SUCCESSOR identifier-X
Base = 2 × unit (−1/160)
It is.

また、プログラム処理系によっては、2100をこえるような巨大な数に対するべき乗の計算が困難である場合がある。
たとえば、Java(登録商標)言語が上記場合にあたり、このような場合、上記baseの計算には下記の変形式を用いる。
Base=2×unit(−1/160) = 2×2(−log(unit)/160)
ここで、log(unit)はおおよそunitのビット長であるとしてよい。
Also, depending on the program processing system, the power of calculation for huge number such more than 2 100 can be difficult.
For example, when the Java (registered trademark) language is the above, in such a case, the following modified expression is used for the calculation of the base.
Base = 2 × unit (−1/160) = 2 × 2 ( −log (unit) / 160)
Here, log (unit) may be approximately the bit length of unit.

そこで、
Base=2×2(−(unitのビット長)/160)
となる。
そして、Java(登録商標)言語であれば、unitがBigIntegerであるとして、
Base=2×Math.pow(2,−(unit.bitLength())/160)
により計算可能となる。
経路表処理部5は、上述したのような演算処理により、ターゲット識別子Iを求める(ステップS22)。
there,
Base = 2 × 2 (-(unit bit length) / 160)
It becomes.
And if it is Java (registered trademark) language, unit is BigInteger,
Base = 2 × Math.pow (2, − (unit.bitLength ()) / 160)
It becomes possible to calculate.
The route table processing unit 5 obtains the target identifier I by the arithmetic processing as described above (step S22).

次に、経路表処理部5は、得られたターゲット識別子から、エントリiに格納すべき分散型データ処理/管理装置の情報が既知であるか否かの判定を行う。
このとき、経路表処理部5は、I=0であるとき、常に既知であると判定し、一方、I≧1であるとき、エントリi−1の識別子を正の方向において越えない場合に既知であると判定し、超える場合に既知ではないことを判定する(ステップS23)。
そして、経路表管理部5は、ターゲット識別子に関わる分散型データ処理/管理装置の情報が既知でない場合、判定結果を通信処理部2に対して通知する。
これにより、通信処理部2は、送信先識別子として得られたターゲット識別子と、担当する分散型データ処理/管理装置からの応答を促すコマンドと、データとしてヌルデータと、自身のIPアドレスと、自身のポート番号とを有するメッセージの生成を行う(ステップS24)。
Next, the routing table processing unit 5 determines whether or not the information on the distributed data processing / management apparatus to be stored in the entry i is known from the obtained target identifier.
At this time, the routing table processing unit 5 determines that it is always known when I = 0, while it is known when I ≧ 1 does not exceed the identifier of the entry i−1 in the positive direction. If it exceeds, it is determined that it is not known (step S23).
Then, the routing table management unit 5 notifies the communication processing unit 2 of the determination result when the information on the distributed data processing / management apparatus related to the target identifier is not known.
As a result, the communication processing unit 2 receives the target identifier obtained as the transmission destination identifier, a command for prompting a response from the distributed data processing / management apparatus in charge, null data as its data, its own IP address, and its own A message having a port number is generated (step S24).

次に、通信処理部2は、エントリi−1の分散型データ処理/管理装置のIPアドレスとポート番号あてに、作成したメッセージの送信を行う。
これにより、送信先の分散型データ処理/管理装置においては、すでに説明したメッセージ受信処理と同様に、自身が担当するものであると判断する分散型データ処理/管理装置まで、メッセージの転送を繰り返し行う。
そして、メッセージが最終的に到連した分散型データ処理/管理装置においては、自身についての情報、すなわち、識別子、IPアドレス、及びポート番号の応答を、メッセージの送信元に対して行う(ステップS25)。
Next, the communication processing unit 2 transmits the created message to the IP address and port number of the distributed data processing / management apparatus of the entry i-1.
As a result, in the distributed data processing / management apparatus of the transmission destination, the message transfer is repeated to the distributed data processing / management apparatus that determines that it is in charge as in the message reception process described above. Do.
Then, in the distributed data processing / management apparatus to which the message finally arrives, information about itself, that is, the response of the identifier, the IP address, and the port number is sent to the message transmission source (step S25). ).

次に、通信処理部2(送信元の分散型データ処理/管理装置)は、メッセージが最終的に到連した分散型データ処理/管理装置端末からの応答を受信する(ステップS26)。
そして、通信処理部2は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定した場合、また、応答を受信した場合、経路表処理部2に対して経路表の再構成を指示する。
これにより、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知でないと判定され、かつ、応答を受信した場合、経路表管理部6に格納される経路表のエントリiの更新を行う(再構成を行う)。
Next, the communication processing unit 2 (distributed data processing / management apparatus of the transmission source) receives a response from the distributed data processing / management apparatus terminal to which the message finally arrives (step S26).
When the communication processing unit 2 determines that the distributed data processing / management device related to the target identifier is known or receives a response, the communication processing unit 2 reconfigures the routing table with respect to the routing table processing unit 2. Instruct.
As a result, the routing table processing unit 5 determines that the distributed data processing / management apparatus related to the target identifier is not known, and receives a response, the route table entry i stored in the routing table management unit 6 Is updated (reconfigured).

このとき、経路表処理部5は、応答を受信した場合、応答のメッセージから取り出した識別子、IPアドレス、及びポート番号によりエントリiの更新を行う。
一方、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定されている場合、エントリi−1と同じ識別子、IPアドレス、及びポート番号によりエントリiを更新する(ステップS27)。
そして、経路表処理部5は、iが160以上になったか否かを検出し、iが160以上となったことを検出した場合、経路表の再構成の処理を終了し、iが160未満であることを検出した場合、処理をステップS9へ進める(ステップS28)。
At this time, when receiving a response, the routing table processing unit 5 updates the entry i with the identifier, IP address, and port number extracted from the response message.
On the other hand, when it is determined that the distributed data processing / management apparatus related to the target identifier is known, the routing table processing unit 5 updates the entry i with the same identifier, IP address, and port number as the entry i-1. (Step S27).
Then, the routing table processing unit 5 detects whether or not i is 160 or more. When i is 160 or more, the routing table processing unit 5 ends the routing table reconstruction process, and i is less than 160. If it is detected, the process proceeds to step S9 (step S28).

次に、経路表処理部5は、iを1だけ増加させて、処理をステップS22へ戻す(ステップS29)。
上述した処理が、経路表再構成の一連の手続きである。
また、分散型データ処理/管理装置1は、一定の周期において、定期的に(例:1分ごと)、上述した経路表再構成処理を繰り返すし、常に、経路表を適切に保たせる。
Next, the route table processing unit 5 increments i by 1 and returns the process to step S22 (step S29).
The above-described processing is a series of procedures for reconfiguring the routing table.
Further, the distributed data processing / management apparatus 1 repeats the above-described routing table reconstruction processing periodically (eg, every minute) in a certain cycle, and always keeps the routing table appropriately.

次に、図7及び図8を参照して、本実施例のシミュレーション結果の説明を行う。図7及び図8は、100万台の装置からなるシステムについてのシミュレーション結果を示した表及びグラフである。
図7に示す表における列は、それぞれシミュレーションに用いた装置数、装置数に対応したChordを用いた場合の平均転送回数、装置数に対応した本発明での平均転送回数、装置数に対応した本発明の平均転送回数をChordでの平均転送回数で割ったものである。
Next, simulation results of the present embodiment will be described with reference to FIGS. 7 and 8 are tables and graphs showing simulation results for a system composed of 1 million devices.
The columns in the table shown in FIG. 7 correspond to the number of devices used in the simulation, the average number of transfers using Chord corresponding to the number of devices, the average number of transfers in the present invention corresponding to the number of devices, and the number of devices, respectively. The average number of transfers in the present invention is divided by the average number of transfers in Chord.

また、図8は、Chordでの平均転送回数と本発明での平均転送回数とをグラフにプロットしたものであり、横軸がシミュレーションに用いた装置数であり、縦軸が平均点総回数を示している。
図7及び図8から明らかなように、シミュレーション結果は、本発明がChordシステムに比べて約半分の転送回数を実現しており、転送回数を削減することが可能であることを示している。
FIG. 8 is a graph plotting the average number of transfers in Chord and the average number of transfers in the present invention, the horizontal axis is the number of devices used in the simulation, and the vertical axis is the total number of average points. Show.
As is clear from FIGS. 7 and 8, the simulation results show that the present invention realizes about half the number of transfers compared to the Chord system, and the number of transfers can be reduced.

なお、図1における分散型データ処理/管理装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりメッセージの送受信における分散型データ処理/管理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。   The program for realizing the functions of the distributed data processing / management apparatus in FIG. 1 is recorded on a computer-readable recording medium, and the program recorded on the recording medium is read into a computer system and executed. Thus, distributed data processing / management in message transmission / reception may be performed. The “computer system” here includes an OS and hardware such as peripheral devices. The “computer system” includes a WWW system provided with a homepage providing environment (or display environment). The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Further, the “computer-readable recording medium” refers to a volatile memory (RAM) in a computer system that becomes a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, those holding programs for a certain period of time are also included.

また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

分散型データ処理/管理装置の内部構成と、通信ネットワークTに複数の分散型データ処理/管理装置1が接続している様を図示したものである。2 shows an internal configuration of a distributed data processing / management apparatus and a state in which a plurality of distributed data processing / management apparatuses 1 are connected to a communication network T. 図1の経路表管理部に格納される経路表の構成例を示す概念図である。It is a conceptual diagram which shows the structural example of the routing table stored in the routing table management part of FIG. 分散型データ処理/管理装置間で送受信されるメッセージのフォーマット例を図示したものである。2 shows an example of a format of a message transmitted / received between distributed data processing / management apparatuses. 分散型データ処理/管理装置のメッセージ受信に関する手順を示したフローチャートである。It is the flowchart which showed the procedure regarding the message reception of a distributed data processing / management apparatus. 分散型データ処理/管理装置のメッセージ送信に関する手順を示したフローチャートである。It is the flowchart which showed the procedure regarding the message transmission of a distributed data processing / management apparatus. 分散型データ処理/管理装置の経路表再構成の手順を示したフローチャートである。It is the flowchart which showed the procedure of the routing table reconstruction of a distributed data processing / management apparatus. Chordシステムと本発明のそれぞれについて、平均転送回数を求めるシミュレーション結果において、使用した装置数と上記平均回数との対応を示す表である。It is a table | surface which shows a response | compatibility with the number of apparatuses used and the said average frequency | count in the simulation result which calculates | requires the average transmission frequency | count about each of Chord system and this invention. Chordシステムと本発明のそれぞれについて、平均転送回数を求めるシミュレーション結果において、使用する装置数と上記平均回数との対応を示すグラフである。It is a graph which shows a response | compatibility with the number of apparatuses to be used, and the said average frequency in the simulation result which calculates | requires the average frequency | count of transfer about each of the Chord system and this invention. ハッシュ空間における識別子の循環性を説明する概念図である(時計回りに順次エントリが移動する)。It is a conceptual diagram explaining the circularity of the identifier in a hash space (an entry moves sequentially clockwise).

符号の説明Explanation of symbols

1…分散型データ処理/管理装置
2…通信処理部
3…データ処理部
4…データ管理部
5…経路表処理部
6…経路表管理部
T…通信ネットワーク
DESCRIPTION OF SYMBOLS 1 ... Distributed data processing / management apparatus 2 ... Communication processing part 3 ... Data processing part 4 ... Data management part 5 ... Routing table processing part 6 ... Routing table management part T ... Communication network

Claims (4)

分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送機能を有する分散型データ処理/管理装置であって、
通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理部と、
該通信処理部において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため、経路表を再構成する経路表処理部と
を有し、
Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、
前記経路表処理部が、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理装置。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
A distributed data processing / management apparatus having a message transfer function similar to that of a Chord system having a 160-bit hash space using a distributed hash table technique,
A communication processing unit connected to a communication network and transmitting / receiving messages to / from other distributed data processing / management devices;
When the communication processing unit detects that the received message is not its own data, a routing table process for reconfiguring the routing table to determine another distributed data processing / management device to which the message is to be transferred And
Whereas the Chord system routing table construction method is based on an identifier that is 2 i away from its own identifier for the i-th entry,
The distributed data processing / management apparatus, wherein the routing table processing unit reconfigures a routing table for the i-th entry with reference to an identifier separated by unit × base i from its own identifier.
unit = (identifier of the next device that appears in the forward direction from its own identifier)-(own identifier)
base = 2 × unit (-1/160)
メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
前記経路表処理部が一定周期毎に該経路表管理部における経路表の再構成を行うことを特徴とする請求項1記載の分散型データ処理/管理装置。
A routing table management unit in which the routing table indicating the transmission route of the message is stored;
2. The distributed data processing / management apparatus according to claim 1, wherein the routing table processing unit reconfigures the routing table in the routing table management unit at regular intervals.
分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送過程を有する分散型データ処理/管理方法であって、
通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理過程と、
該通信処理過程において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため経路表を再構成する経路表処理過程と
を有し、
Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、
前記経路表処理過程において、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理方法。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
A distributed data processing / management method having a message transfer process similar to that of a Chord system having a 160-bit hash space using a distributed hash table technique,
A communication process connected to a communication network and transmitting / receiving messages to / from other distributed data processing / management devices;
A route table processing step for reconfiguring a route table to determine another distributed data processing / management device to which the message is to be transferred when it is detected that the received message is not the data handled by the communication processing step. And
Whereas the Chord system routing table construction method is based on an identifier that is 2 i away from its own identifier for the i-th entry,
A distributed data processing / management method characterized in that in the routing table processing step, a routing table is reconfigured for an i-th entry with reference to an identifier separated by unit × base i from its own identifier.
unit = (identifier of the next device that appears in the forward direction from its own identifier)-(own identifier)
base = 2 × unit (-1/160)
メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
前記経路表処理過程が一定周期毎に行われ、該経路表管理部における経路表の再構成を行うことを特徴とする請求項3記載の分散型データ処理/管理方法。
A routing table management unit in which the routing table indicating the transmission route of the message is stored;
4. The distributed data processing / management method according to claim 3, wherein the routing table processing step is performed at regular intervals, and the routing table is reconfigured in the routing table management unit.
JP2004172488A 2004-06-10 2004-06-10 Distributed data processing / management apparatus and method Expired - Fee Related JP4271620B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004172488A JP4271620B2 (en) 2004-06-10 2004-06-10 Distributed data processing / management apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004172488A JP4271620B2 (en) 2004-06-10 2004-06-10 Distributed data processing / management apparatus and method

Publications (2)

Publication Number Publication Date
JP2005354364A true JP2005354364A (en) 2005-12-22
JP4271620B2 JP4271620B2 (en) 2009-06-03

Family

ID=35588440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004172488A Expired - Fee Related JP4271620B2 (en) 2004-06-10 2004-06-10 Distributed data processing / management apparatus and method

Country Status (1)

Country Link
JP (1) JP4271620B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316696A (en) * 2006-05-23 2007-12-06 Kddi Corp Data management device
JP2008011330A (en) * 2006-06-30 2008-01-17 Kddi Corp Data management apparatus
JP2008011331A (en) * 2006-06-30 2008-01-17 Kddi Corp Data management apparatus
JP2008176376A (en) * 2007-01-16 2008-07-31 Kddi Corp Data management system and data management device
JP2008191904A (en) * 2007-02-05 2008-08-21 Nec Corp Distributed data management system and method
JP2009247015A (en) * 2009-07-27 2009-10-22 Brother Ind Ltd Information communication system, information communication method, node device included in the information communication system, information processing program and program for the node device
WO2012124448A1 (en) * 2011-03-17 2012-09-20 日本電気株式会社 Routing table generation device, distributed processing device, distributed processing system, routing table generation method, and storage medium
JP2016151846A (en) * 2015-02-17 2016-08-22 三菱電機株式会社 Server device, client device, grouping method, and grouping program
JP7413477B2 (en) 2017-06-20 2024-01-15 エヌチェーン ライセンシング アーゲー Methods and special network nodes for fast propagation in blockchain networks

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316696A (en) * 2006-05-23 2007-12-06 Kddi Corp Data management device
JP2008011330A (en) * 2006-06-30 2008-01-17 Kddi Corp Data management apparatus
JP2008011331A (en) * 2006-06-30 2008-01-17 Kddi Corp Data management apparatus
JP4624314B2 (en) * 2006-06-30 2011-02-02 Kddi株式会社 Data management device
JP4633680B2 (en) * 2006-06-30 2011-02-16 Kddi株式会社 Data management device
JP2008176376A (en) * 2007-01-16 2008-07-31 Kddi Corp Data management system and data management device
JP2008191904A (en) * 2007-02-05 2008-08-21 Nec Corp Distributed data management system and method
JP2009247015A (en) * 2009-07-27 2009-10-22 Brother Ind Ltd Information communication system, information communication method, node device included in the information communication system, information processing program and program for the node device
WO2012124448A1 (en) * 2011-03-17 2012-09-20 日本電気株式会社 Routing table generation device, distributed processing device, distributed processing system, routing table generation method, and storage medium
JP2016151846A (en) * 2015-02-17 2016-08-22 三菱電機株式会社 Server device, client device, grouping method, and grouping program
JP7413477B2 (en) 2017-06-20 2024-01-15 エヌチェーン ライセンシング アーゲー Methods and special network nodes for fast propagation in blockchain networks

Also Published As

Publication number Publication date
JP4271620B2 (en) 2009-06-03

Similar Documents

Publication Publication Date Title
JP4913128B2 (en) System and method for distributed and decentralized data storage and retrieval
US7490140B2 (en) Peer data transfer orchestration
Serjantov Anonymizing censorship resistant systems
JP2005323346A (en) Routing in peer-to-peer network
Woungang et al. MR-Chord: Improved chord lookup performance in structured mobile P2P networks
KR20110034669A (en) Multi-homed data forwarding storage
EP2856355B1 (en) Service-aware distributed hash table routing
JP4271620B2 (en) Distributed data processing / management apparatus and method
CN103957269A (en) P2P network node selection method and P2P redirect server
EP2918051A1 (en) Local partitioning in a distributed communication system
Dimakopoulos et al. A peer-to-peer approach to resource discovery in multi-agent systems
CN106302641A (en) A kind of methods, devices and systems of upper transmitting file
Tracey et al. Using a DHT in a peer to peer architecture for the internet of things
JP4554564B2 (en) Distributed data management method and management system
Shukla et al. Towards software defined low maintenance structured peer-to-peer overlays
US9860171B2 (en) Large scale message routing in a distributed network
Haque et al. An architecture for client virtualization: A case study
JP5487420B2 (en) File duplication necessity determination method, communication apparatus, computer program, and peer-to-peer communication system
JP5690296B2 (en) Load balancing program and load balancing apparatus
Sugumar et al. Performance Analysis of Fragmentation and Replicating Data Over Multi-clouds with Security
Loganathan et al. Distributed resource management scheme using enhanced artificial bee-colony in P2P
JP5060927B2 (en) Information search method, information search device, information search response device, and computer program
Lin et al. Robust super-peer-based P2P file-sharing systems
JP2008011330A (en) Data management apparatus
Lebre et al. AS-cast: Lock Down the Traffic of Decentralized Content Indexing at the Edge

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080801

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

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

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees