JP4271620B2 - 分散型データ処理/管理装置及びその方法 - Google Patents

分散型データ処理/管理装置及びその方法 Download PDF

Info

Publication number
JP4271620B2
JP4271620B2 JP2004172488A JP2004172488A JP4271620B2 JP 4271620 B2 JP4271620 B2 JP 4271620B2 JP 2004172488 A JP2004172488 A JP 2004172488A JP 2004172488 A JP2004172488 A JP 2004172488A JP 4271620 B2 JP4271620 B2 JP 4271620B2
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.)
Expired - Fee Related
Application number
JP2004172488A
Other languages
English (en)
Other versions
JP2005354364A (ja
Inventor
晋也 石原
光生 寺元
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/ja
Publication of JP2005354364A publication Critical patent/JP2005354364A/ja
Application granted granted Critical
Publication of JP4271620B2 publication Critical patent/JP4271620B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、分散ハッシュ表技術を応用した分散型データ処理システムに係わり、特にシステムの応答の高速化を図った経路表の構成を特徴とする分散型データ処理/管理装置及びその方法に関する。
特定のサーバによらずに、ネットワークに継続的あるいは一時的に接続した計算機群によって構成される、分散型データ処理および管理システムとして、分散ハッシュ表技術を応用したシステムが知られている。
このようなシステムにおいて、ネットワークに継続的あるいは一時的に接続した計算機群は、ハッシュ関数を適用することにより得られる識別子を基準にして、お互いにアプリケーションレイヤネットワークを用いて接続している。
処理あるいは管理対象のデータは、ハッシュ関数を適用することにより得られる識別子によりアプリケーションレイヤネットワーク上を転送され、転送先計算機上で処理あるいは管理される。
このようなシステムの応答を高速化するためには、アプリケーションレイヤネットワーク上の転送にかかる時間を短縮することが望ましい。
ここで、分散型データ処理および管理システムに適用する分散ハッシュ表技術として、米国MIT大学のThe Chord Projectが良く知られている(非特許文献1及び2参照)。
上記Chordシステムにおいては、ハッシュ関数としてSHA-1を採用しており、160ビットのハッシュ空間を構成する。
処理あるいは管理対象のデータは、ハッシュ関数SHA-1により160ビットの識別子が割り当てられる。
また、システムを構成する計算機についても、ネットワーク識別子、具体的には、IPアドレスとポート番号の組に対して、ハッシュ関数SHA-1を適用した160ビットの識別子により認識される。
ここで、上記160ビットのハッシュ空間は、図9に示すように、循環しているものとされる。
すなわち、2160−1識別子から見て、正の方向(矢印A)に1つ進んだ識別子は0であり、一方、識別子0から見て負の方向(矢印B)に1つ進んだ識別子は2160−1である。
処理あるいは管理対象のデータは、割り当てられた識別子に基づき、システムを構成する計算機のいずれかが担当する。
また、上記データを処理あるいは管理するとき、ちょうど該当する識別子を持つ計算機がない場合は、データの識別子から見て正の方向において、次に現れる識別子を持つ計算機が担当することになる。
そして、システムを構成する計算機は、アプリケーションネットワークを構成することによってお互いに通信を行う。
このときのアプリケーションネットワークは、以下のように構成される。
システムを構成する計算機は、自身の識別子から見て正の方向について次に現れる識別子を持つ計算機を、自らのSUCCESSORとして認識している。
この場合認識しているとは、SUCCESSORのIPアドレスとポート番号とを知っており(保持しており)、SUCCESSORに対してメッセージを送信可能であることをあらわしている。
システムを構成する計算機は、同様に、自身の識別子から見て負の方向について次に現れる識別子を持つ計算機を、自らのPREDECESSORとして認識している。
この場合認識しているとは、PREDECESSORのIPアドレスとポート番号とを知っており(保持しており)、PREDECESSORへのメッセージの送信可能が明確であることをあらわしている。
以上のようにして構成されたアプリケーションネットワーク上において、識別子Xを持つ計算機がYを識別子とするデータを担当する計算機にメッセージを送信する際、SUCCESSORに対して転送を繰り返すことでメッセージの送信が完了することは自明である。
ただし、システムを構成する計算機の数がNであるとき、メッセージの転送回数は平均してN/2となり、Nが大きな数の場合に時間がかかりすぎるという問題が生じる。
このため、Chordシステムは上記問題に対して、FINGERと呼ばれる経路表(経路テーブル)を採用している。
システムを構成する計算機(ノード)は、エントリ0からエントリ159までの160エントリからなる経路表を有している。
ここで、識別子Xを持つ計算機について、エントリi(0≦i≦159)としてのノードは、X+2mod2160の識別子のデータを担当する計算機(すなわち、ちょうどX+2mod2160の識別子を持つ計算機か、そのような計算機がない場合は、X+2mod2160の識別子から見て正の方向において次に現れる識別子を持つ計算機)となる。
このとき、エントリiの経路表には、該当する計算機の識別子と、ネットワーク識別子、すなわち、IPアドレス及びポート番号が格納される。
このように構成された経路表を各計算機が有する場合、それらの計算機から構成されるアプリケーションネットワーク上において、識別子Xを有する計算機が、Yを識別子とするデータを担当する計算機にメッセージを送信するプロセスは以下の通りである。
まず、エントリiは、自身の経路表を検索して、Yを正の方向で越えない識別子のうち最もYに近づく識別子を含むエントリを抽出し、その識別子を持つ計算機にメッセージを転送する。
転送先の計算機においても、同様に、自身の経路表を検索して、Yを正の方向で越えない識別子のうち最もYに近づく識別子を含むエントリを抽出し、その識別子を持つ計算機にメッセージを転送する。
以降の計算機においても、同様の処理を繰り返すことにより、識別子Yを持つ計算機にメッセージが到達することは自明である。
そして、経路表の構成から、転送を行う毎にハッシュ空間上での距離が半分になるため、FINGERを採用したシステムにおいては、システムを構成する計算機の数がNの時、メッセージは最大log(N)回の転送を行うことで目的地に到達する。
経路表自体も、上記の特性を利用することにより効率的に構成することができる。
エントリiは、i=0からi=159までの順番で帰納的に構成される。
そして、i=0のとき、X+2mod2160=X+1mod2160であり、エントリ0はSUCCESSOR(Xから見て正の方向において次に現れる識別子を持つ計算機)となる。
ここで、エントリi−1までが既に求められているとして、エントリiを求めるには、識別子X+2mod2160のデータを担当する計算機(X+2mod2160ちょうどか、そのような識別子を持つ計算機が存在しない場合は、X+2mod2160計算機から見て正の方向において次に現れる識別子の計算機)宛にメッセージを送信することになる。
しかしながら、このとき、既に求められているエントリ0からエントリi−1までのうちで識別子X+2mod2160を、正の方向において越えない識別子のなかから、最も識別子X+2mod2160の計算機に近づくエントリ、すなわち、エントリi−1の計算機に対してメッセージを転送すればよい。
上述した転送により、ハッシュ空間上での距離は半分になる。
そして、転送先の計算機で経路表が適切に構成されていれば、転送先からも転送ごとに距離が半分になる。
このため、最大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
上述したように、特許文献1及び2に示すChordシステムは、FINGERによる経路表構成法の採用により、システムを構成する計算機の数がNのとき、アプリケーションネットワーク上で最大1og(N)回、平均してlog(N)/2回の転送を繰り返すことにより、任意の2計算機の間でメッセージを送信することができる。
しかしながら、Chordシステムをインターネットに適用したとして、システムを構成する計算機の数が100万台程度であるとした場合、log(10)≒20であることから、平均して10回の転送がアプリケーションネットワーク上で必要となる。
これはアプリケーションネットワーク上での転送回数であり、経由するルータの数で考えた場合、更に大きな転送回数となる。
したがって、Chordシステムは、理論上効率的なシステムであるとはいえ、実動作環境への適用を考える場合、応答時間の制約から、この転送回数は可能な限り少なくすべきものである。
また、ChordシステムのFINGERによる経路表構成法には、以下に示すように、大きな無駄が存在する。
システムを構成する計算機が100万(≒220)台程度であるとき、ハッシュ関数SHA-1によって、それぞれの識別子は、160ビットのハッシュ空間上に均一に散らばることが期待される。
このとき、隣接する二つの識別子は、平均して2140離れた位置に存在していることになる。
すなわち、識別子Xを有するある計算機にとって、そのSUCCESSORは、およそX+2140mod2160という識別子を待つことになる。
この場合、FINGERによる経路表構成法においては、エントリ0からエントリ140近傍までが、すべて同じエントリを待つことを意味する。
このため、経路表には160エントリが保持されているが、その大半が無駄に使われていることになる。
FINGERは一回の転送ごとに目的地へのハッシュ空間上の距離を半分にすることができたが、無駄に使われているエントリを工夫することにより、一回の転送ごとにFINGERよりも効率よく目的地へのハッシュ空間上の距離をつめることが可能である。
本発明は、このような事情に鑑みてなされたもので、FINGERとは異なる経路表構成法を採用することにより、経路表の無駄を省き、100万台程度の計算機から構成されるインターネットワイドなシステムの場合、Chordシステムよりも少ない転送回数を実現し、システムの応答時間を改善する分散型データ処理/管理装置及びその方法を提供するものである。
本発明の分散型データ処理/管理装置は、分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送機能を有する分散型データ処理/管理装置であって、通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理部と、該通信処理部において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため、経路表を再構成する経路表処理部とを有し、Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、前記経路表処理部が、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
本発明の分散型データ処理/管理装置は、メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、前記経路表処理部が一定周期毎に該経路表管理部における経路表の再構成を行うことを特徴とする。
本発明の分散型データ処理/管理方法は、分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送過程を有する分散型データ処理方法であって、通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理過程と、該通信処理過程において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため経路表を再構成する経路表処理過程とを有し、Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、前記経路表処理過程において、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
本発明の分散型データ処理/管理方法は、メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、前記経路表処理過程が一定周期毎に行われ、該経路表管理部における経路表の再構成を行うことを特徴とする。
Chordシステムにおいては、識別子Xを持つある計算機の経路表の構成を、エントリiについて、識別子「X+2mod2160」を持つデータを担当する計算機の識別子としていた。
一方、本発明においては、経路表のエントリ数について、ChordシステムのFINGERによるものと同様に、160エントリとするが、エントリiについて、以下の(1)式から求められる値の識別子を有するデータを担当する計算機の識別子とする。
エントリiの識別子=X+unit×basemod2160 …(1)
ただし、
unit=(XのSUCCESSORの識別子)−X
base=2×unit(−1/160)
とする。
本実施例においては、160ビットのハッシュ空間を160回同じbaseなる数で割り算した場合、最終的に「(XのSUCCESSORの識別子)−X」が得られるように、baseの値を選択している。
上述のようにbaseを選ぶことにより、i=0の場合、上記(1)式は、SUCCESSORの識別子となり、エントリ0はSUCCESSORとなる。
また、i=1の場合、baseは1以上であるため、エントリ1はSUCCESSORの識別子より正の方向で越えた識別子となることがわかる。すなわちエントリ0とエントリ1は異なることがわかる。
ChordシステムのFINGERの場合は、unitを1とし、baseを2とした構成となっているため、大半のエントリにおいて同じ識別子を持つ装置となったが、本発明においては同じ識別子を有する装置となることをを避けることが可能となる。
ここで、各エントリの対象が異なるだけで、他の構成はChordシステムにおけるFINGERによる経路表(もしくは経路テーブル)構成法と同様のプロセスとなり、また、メッセージの転送についても同様である。
以上説明したように、本願発明の分散型データ処理/管理装置によれば、経路表の構成法を工夫することにより、シミュレーションの結果から、100万台程度の計算機から構成されるインターネットワイドなシステムに対して、従来のChordシステムと同程度の手間で、Chordシステムと比べて約半分の転送回数を実現し、システムの応答時間を改善し、かつ、Chordシステムと比べて経路表の無駄なエントリを省くことができ、経路表を有効に活用することを可能とした。
以下、本発明の一実施形態による装置を図面を参照して説明する。図1は同実施形態による分散型データ処理/管理装置の構成例を示すブロック図である。また、この図1は複数の分散型データ処理/管理装置が通信ネットワークTにより、相互に接続している形態を示している。
この図において、本実施形態の分散型データ処理/管理装置は1、通信ネットワークTと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行うため、または自身が担当するデータを含むか否かを検出するための通信処理部2と、通信処理部2において受信したメッセージが自身が担当するデータを含む場合にその処理を行うためのデータ処理部3と、データ処理部3において処理するデータを読み出しあるいは書き込みするためのデータ管理部4と、通信処理部2において受信したメッセージが自身が担当するデータでない場合にメッセージを転送すべき他の分散型データ処理/管理装置を決定するため、また、経路表を適切に保つために定期的に経路表管理部5の再構成を行うための経路表処理部6と、経路表処理部6によって定期的に再構成される経路表を格納するための経路表管理部5と、を有している。
上述したように、分散型データ処理/管理装置は、通信処理部2を介して、通信ネットワークTと接続され、通信ネットワークTの提供するメッセージ配信機能を利用して、他の分散型データ処理/管理装置相互間のメッセージの送受信を行う。
次に、図2を参照して、経路表管理部6に格納される経路表の説明を行う。図2は、経路表管理部6に格納される経路表のデータ構造の一例を示したものである。
経路表は、エントリ0からエントリ159までの160エントリで構成される。
ここで、各エントリは、エントリ番号と、分散型データ処理/管理装置の識別子と、分散型データ処理/管理装置のIPアドレスと、分散型データ処理/管理装置のポート番号とからなる。
そして、経路表は、更にSUCCESSORとPREDECESSORとを管理する二つの特別なエントリを有しており、これらのエントリの構成も同様である。
次に、図3を参照して、分散型データ処理/管理装置間で送受信されるメッセージの説明を行う。図3は、上記メッセージのフォーマットの一例を示したものである。
メッセージは、図3に示すように、メッセージの送信先を示す送信先識別子と、メッセージによって運ばれるデータの処理方法を示すコマンドと、送信するデータと、送信元装置のIPアドレスと、送信元装置のポート番号との各項目を有している。
次に、図1及び図4を参照して、本実施例の分散型データ処理/管理装置1のデータ受信処理の動作を説明する。図4は、本実施例の分散型データ処理/管理装置1のデータ受信処理の流れを示すフローチャートである。
通信処理部2は、通信ネットワークTに接続後、他の分散型データ処理/管理装置からのメッセージを受信する(ステップS1)。
そして、通信処理部2は、受信したメッセージの送信先識別子を見て、自身が担当するデータを含むか否かを検出、すなわち自身が担当すべきデータであるか否かを判断する。
すなわち、通信処理部2は、メッセージの送信先識別子がPREDECESSORの識別子から見て正の方向にあり、かつ、自身の識別子から見て負の方向にあるときは自身が担当すべきデータであることを検出し、上述したいずれかの条件が満たされない場合、自身が担当すべきデータではないことを検出する(ステップS2)。
そして、通信処理部2は、自身が担当すべきデータであると判断した場合、このメッセージをデータ処理部3へ出力する。
これにより、データ処理部3は、メッセージに示されているコマンドに従い、含まれるデータに対してデータ処理を行う。
その際、データ処理部3は、必要に応じてデータ管理部4へのデータの書き込み、あるいは、データの読み出しを行う。
また、データ処理部3は、必要に応じて、データ処理の結果を、メッセージの送信元IPアドレス及び送信元ポート番号を用い、送信元の分散型データ処理/管理装置に応答する(ステップS3)。
一方、通信処理部2は、受信したメッセージの送信先識別子から、このメッセージが自身が担当すべきデータを含んでいないことを検出した場合、このメッセージを他の分散型データ処理/管理装置への転送を試みる。
このとき、通信処理部2は、経路表処理部3を介して、経路表管理部6に格納されている経路表から、メッセージの送信先識別子を正の方向において越えないものの中から、最もメッセージに含まれる送信先識別子に近づく識別子を持つエントリを検索する(ステップS4)。
そして、経路表処理部4は、上記経路表から抽出したエントリから、転送すべき分散型データ処理/管理装置のIPアドレス及びポート番号を読み取り、メッセージの転送先の分散型データ処理/管理装置を決定する(ステップS5)。
これにより、通信処理部2は、得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの転送を行う(ステップS6)。
次に、図1及び図5を参照して、本実施例の分散型データ処理/管理装置1のデータ送信処理の動作を説明する。図5は、本実施例の分散型データ処理/管理装置1のデータ送信処理の流れを示すフローチャートである。
通信処理部2は、データ処理あるいは管理のため、他の分散型データ処理/管理装置に対して、メッセージを送信する必要が生じた場合、ハッシュ関数SHA-1を適用して所定の数値として得られる送信先識別子と、データの処理方法を現すコマンドと、データと、送信元である自身のIPアドレスと、自身のポート番号とを有する、図3に示すメッセージを生成する(ステップS11)。
次に、経路表処理部5は、経路表管理部6に格納されている経路表を検索して、メッセージの送信先識別子を正の方向において越えないものの中から、最も送信先識別子に近づく識別子を持つエントリを抽出する(ステップS12)。
そして、経路表処理部5は、抽出したエントリから、転送すべき分散型データ処理/管理装置のIPアドレス及びポート番号を読み取り、送信先の分散型データ処理/管理装置を決定する(ステップS14)。
これにより、通信処理部2は、上述のように得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの送信を行う(ステップS14)。
次に、図1及び図6を参照して、本実施例の分散型データ処理/管理装置1の経路表の再構成処理の動作を説明する。図6は、本実施例の分散型データ処理/管理装置1の経路表の再構成処理の流れを示すフローチャートである。
経路表処理部5は、エントリiに設定すべき他の分散型データ処理/管理装置の識別子を求めるためのターゲット識別子Iを0に設定して、初期化を行う(ステップS21)。
次に、経路表処理部5は、上記ターゲット識別子Iを計算する。
すなわち、具体的には、以下の式を用いターゲット識別子を計算する。
ターゲット識別子 = X+unit×basemod2160
ただし、X=自身の識別子
Unit=SUCCESSORの識別子−X
Base=2×unit(−1/160)
である。
また、プログラム処理系によっては、2100をこえるような巨大な数に対するべき乗の計算が困難である場合がある。
たとえば、Java(登録商標)言語が上記場合にあたり、このような場合、上記baseの計算には下記の変形式を用いる。
Base=2×unit(−1/160) = 2×2(−log(unit)/160)
ここで、log(unit)はおおよそunitのビット長であるとしてよい。
そこで、
Base=2×2(−(unitのビット長)/160)
となる。
そして、Java(登録商標)言語であれば、unitがBigIntegerであるとして、
Base=2×Math.pow(2,−(unit.bitLength())/160)
により計算可能となる。
経路表処理部5は、上述したのような演算処理により、ターゲット識別子Iを求める(ステップS22)。
次に、経路表処理部5は、得られたターゲット識別子から、エントリiに格納すべき分散型データ処理/管理装置の情報が既知であるか否かの判定を行う。
このとき、経路表処理部5は、I=0であるとき、常に既知であると判定し、一方、I≧1であるとき、エントリi−1の識別子を正の方向において越えない場合に既知であると判定し、超える場合に既知ではないことを判定する(ステップS23)。
そして、経路表管理部5は、ターゲット識別子に関わる分散型データ処理/管理装置の情報が既知でない場合、判定結果を通信処理部2に対して通知する。
これにより、通信処理部2は、送信先識別子として得られたターゲット識別子と、担当する分散型データ処理/管理装置からの応答を促すコマンドと、データとしてヌルデータと、自身のIPアドレスと、自身のポート番号とを有するメッセージの生成を行う(ステップS24)。
次に、通信処理部2は、エントリi−1の分散型データ処理/管理装置のIPアドレスとポート番号あてに、作成したメッセージの送信を行う。
これにより、送信先の分散型データ処理/管理装置においては、すでに説明したメッセージ受信処理と同様に、自身が担当するものであると判断する分散型データ処理/管理装置まで、メッセージの転送を繰り返し行う。
そして、メッセージが最終的に到連した分散型データ処理/管理装置においては、自身についての情報、すなわち、識別子、IPアドレス、及びポート番号の応答を、メッセージの送信元に対して行う(ステップS25)。
次に、通信処理部2(送信元の分散型データ処理/管理装置)は、メッセージが最終的に到連した分散型データ処理/管理装置端末からの応答を受信する(ステップS26)。
そして、通信処理部2は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定した場合、また、応答を受信した場合、経路表処理部2に対して経路表の再構成を指示する。
これにより、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知でないと判定され、かつ、応答を受信した場合、経路表管理部6に格納される経路表のエントリiの更新を行う(再構成を行う)。
このとき、経路表処理部5は、応答を受信した場合、応答のメッセージから取り出した識別子、IPアドレス、及びポート番号によりエントリiの更新を行う。
一方、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定されている場合、エントリi−1と同じ識別子、IPアドレス、及びポート番号によりエントリiを更新する(ステップS27)。
そして、経路表処理部5は、iが160以上になったか否かを検出し、iが160以上となったことを検出した場合、経路表の再構成の処理を終了し、iが160未満であることを検出した場合、処理をステップS9へ進める(ステップS28)。
次に、経路表処理部5は、iを1だけ増加させて、処理をステップS22へ戻す(ステップS29)。
上述した処理が、経路表再構成の一連の手続きである。
また、分散型データ処理/管理装置1は、一定の周期において、定期的に(例:1分ごと)、上述した経路表再構成処理を繰り返すし、常に、経路表を適切に保たせる。
次に、図7及び図8を参照して、本実施例のシミュレーション結果の説明を行う。図7及び図8は、100万台の装置からなるシステムについてのシミュレーション結果を示した表及びグラフである。
図7に示す表における列は、それぞれシミュレーションに用いた装置数、装置数に対応したChordを用いた場合の平均転送回数、装置数に対応した本発明での平均転送回数、装置数に対応した本発明の平均転送回数をChordでの平均転送回数で割ったものである。
また、図8は、Chordでの平均転送回数と本発明での平均転送回数とをグラフにプロットしたものであり、横軸がシミュレーションに用いた装置数であり、縦軸が平均点総回数を示している。
図7及び図8から明らかなように、シミュレーション結果は、本発明がChordシステムに比べて約半分の転送回数を実現しており、転送回数を削減することが可能であることを示している。
なお、図1における分散型データ処理/管理装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりメッセージの送受信における分散型データ処理/管理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
分散型データ処理/管理装置の内部構成と、通信ネットワークTに複数の分散型データ処理/管理装置1が接続している様を図示したものである。 図1の経路表管理部に格納される経路表の構成例を示す概念図である。 分散型データ処理/管理装置間で送受信されるメッセージのフォーマット例を図示したものである。 分散型データ処理/管理装置のメッセージ受信に関する手順を示したフローチャートである。 分散型データ処理/管理装置のメッセージ送信に関する手順を示したフローチャートである。 分散型データ処理/管理装置の経路表再構成の手順を示したフローチャートである。 Chordシステムと本発明のそれぞれについて、平均転送回数を求めるシミュレーション結果において、使用した装置数と上記平均回数との対応を示す表である。 Chordシステムと本発明のそれぞれについて、平均転送回数を求めるシミュレーション結果において、使用する装置数と上記平均回数との対応を示すグラフである。 ハッシュ空間における識別子の循環性を説明する概念図である(時計回りに順次エントリが移動する)。
符号の説明
1…分散型データ処理/管理装置
2…通信処理部
3…データ処理部
4…データ管理部
5…経路表処理部
6…経路表管理部
T…通信ネットワーク

Claims (4)

  1. 分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送機能を有する分散型データ処理/管理装置であって、
    通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理部と、
    該通信処理部において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため、経路表を再構成する経路表処理部と
    を有し、
    Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、
    前記経路表処理部が、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理装置。
    unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
    base=2×unit(−1/160)
  2. メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
    前記経路表処理部が一定周期毎に該経路表管理部における経路表の再構成を行うことを特徴とする請求項1記載の分散型データ処理/管理装置。
  3. 分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送過程を有する分散型データ処理/管理方法であって、
    通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理過程と、
    該通信処理過程において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため経路表を再構成する経路表処理過程と
    を有し、
    Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2だけ離れた識別子を基準とするのに対し、
    前記経路表処理過程において、自身の識別子から、unit×baseだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理方法。
    unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
    base=2×unit(−1/160)
  4. メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
    前記経路表処理過程が一定周期毎に行われ、該経路表管理部における経路表の再構成を行うことを特徴とする請求項3記載の分散型データ処理/管理方法。
JP2004172488A 2004-06-10 2004-06-10 分散型データ処理/管理装置及びその方法 Expired - Fee Related JP4271620B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004172488A JP4271620B2 (ja) 2004-06-10 2004-06-10 分散型データ処理/管理装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004172488A JP4271620B2 (ja) 2004-06-10 2004-06-10 分散型データ処理/管理装置及びその方法

Publications (2)

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

Family

ID=35588440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004172488A Expired - Fee Related JP4271620B2 (ja) 2004-06-10 2004-06-10 分散型データ処理/管理装置及びその方法

Country Status (1)

Country Link
JP (1) JP4271620B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316696A (ja) * 2006-05-23 2007-12-06 Kddi Corp データ管理装置
JP4624314B2 (ja) * 2006-06-30 2011-02-02 Kddi株式会社 データ管理装置
JP4633680B2 (ja) * 2006-06-30 2011-02-16 Kddi株式会社 データ管理装置
JP2008176376A (ja) * 2007-01-16 2008-07-31 Kddi Corp データ管理システムおよびデータ管理装置
JP4952276B2 (ja) * 2007-02-05 2012-06-13 日本電気株式会社 分散データ管理システムおよび方法
JP4947106B2 (ja) * 2009-07-27 2012-06-06 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JPWO2012124448A1 (ja) * 2011-03-17 2014-07-17 日本電気株式会社 ルーティングテーブル生成装置、分散処理装置、分散処理システム、ルーティングテーブル生成方法、および、記憶媒体
JP6324331B2 (ja) * 2015-02-17 2018-05-16 三菱電機株式会社 サーバ装置及びクライアント装置及びグルーピング方法及びグルーピングプログラム
GB201709848D0 (en) 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method

Also Published As

Publication number Publication date
JP2005354364A (ja) 2005-12-22

Similar Documents

Publication Publication Date Title
JP4913128B2 (ja) 分散型で非集中型のデータ格納および検索を行うシステムおよび方法
EP1583326B1 (en) Routing in peer-to-peer networks
Serjantov Anonymizing censorship resistant systems
US7490140B2 (en) Peer data transfer orchestration
JP5526137B2 (ja) 選択的データ転送ストレージ
Woungang et al. MR-Chord: Improved chord lookup performance in structured mobile P2P networks
EP2856355B1 (en) Service-aware distributed hash table routing
JP4271620B2 (ja) 分散型データ処理/管理装置及びその方法
CN103957269A (zh) 点对点p2p网络节点选择方法及点对点p2p重定向服务器
EP2918051A1 (en) Local partitioning in a distributed communication system
JP2007073003A (ja) データ保全装置及びその方法及びそのプログラム記録媒体
Yu et al. Granary: A sharing oriented distributed storage system
Dimakopoulos et al. A peer-to-peer approach to resource discovery in multi-agent systems
Tracey et al. Using a DHT in a peer to peer architecture for the internet of things
CN106302641A (zh) 一种上传文件的方法、装置和系统
JP4554564B2 (ja) 分散データの管理方法および管理システム
Shukla et al. Towards software defined low maintenance structured peer-to-peer overlays
US9860171B2 (en) Large scale message routing in a distributed network
JP5487420B2 (ja) ファイル複製要否判定方法、通信装置、コンピュータプログラム及びピアツーピア型通信システム
US20080288447A1 (en) Methods and apparatus for improving peer efficiency
JP5690296B2 (ja) 負荷分散プログラムおよび負荷分散装置
Loganathan et al. Distributed resource management scheme using enhanced artificial bee-colony in P2P
Lee et al. P2P trust model: The resource chain model
JP5060927B2 (ja) 情報検索方法、情報検索装置、情報検索応答装置及びコンピュータプログラム
Lin et al. Robust super-peer-based P2P file-sharing systems

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