JP4271620B2 - 分散型データ処理/管理装置及びその方法 - Google Patents
分散型データ処理/管理装置及びその方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
このようなシステムにおいて、ネットワークに継続的あるいは一時的に接続した計算機群は、ハッシュ関数を適用することにより得られる識別子を基準にして、お互いにアプリケーションレイヤネットワークを用いて接続している。
このようなシステムの応答を高速化するためには、アプリケーションレイヤネットワーク上の転送にかかる時間を短縮することが望ましい。
上記Chordシステムにおいては、ハッシュ関数としてSHA-1を採用しており、160ビットのハッシュ空間を構成する。
処理あるいは管理対象のデータは、ハッシュ関数SHA-1により160ビットの識別子が割り当てられる。
ここで、上記160ビットのハッシュ空間は、図9に示すように、循環しているものとされる。
すなわち、2160−1識別子から見て、正の方向(矢印A)に1つ進んだ識別子は0であり、一方、識別子0から見て負の方向(矢印B)に1つ進んだ識別子は2160−1である。
また、上記データを処理あるいは管理するとき、ちょうど該当する識別子を持つ計算機がない場合は、データの識別子から見て正の方向において、次に現れる識別子を持つ計算機が担当することになる。
そして、システムを構成する計算機は、アプリケーションネットワークを構成することによってお互いに通信を行う。
システムを構成する計算機は、自身の識別子から見て正の方向について次に現れる識別子を持つ計算機を、自らのSUCCESSORとして認識している。
この場合認識しているとは、SUCCESSORのIPアドレスとポート番号とを知っており(保持しており)、SUCCESSORに対してメッセージを送信可能であることをあらわしている。
システムを構成する計算機は、同様に、自身の識別子から見て負の方向について次に現れる識別子を持つ計算機を、自らのPREDECESSORとして認識している。
この場合認識しているとは、PREDECESSORのIPアドレスとポート番号とを知っており(保持しており)、PREDECESSORへのメッセージの送信可能が明確であることをあらわしている。
ただし、システムを構成する計算機の数がNであるとき、メッセージの転送回数は平均してN/2となり、Nが大きな数の場合に時間がかかりすぎるという問題が生じる。
このため、Chordシステムは上記問題に対して、FINGERと呼ばれる経路表(経路テーブル)を採用している。
ここで、識別子Xを持つ計算機について、エントリi(0≦i≦159)としてのノードは、X+2imod2160の識別子のデータを担当する計算機(すなわち、ちょうどX+2imod2160の識別子を持つ計算機か、そのような計算機がない場合は、X+2imod2160の識別子から見て正の方向において次に現れる識別子を持つ計算機)となる。
このように構成された経路表を各計算機が有する場合、それらの計算機から構成されるアプリケーションネットワーク上において、識別子Xを有する計算機が、Yを識別子とするデータを担当する計算機にメッセージを送信するプロセスは以下の通りである。
まず、エントリiは、自身の経路表を検索して、Yを正の方向で越えない識別子のうち最もYに近づく識別子を含むエントリを抽出し、その識別子を持つ計算機にメッセージを転送する。
以降の計算機においても、同様の処理を繰り返すことにより、識別子Yを持つ計算機にメッセージが到達することは自明である。
そして、経路表の構成から、転送を行う毎にハッシュ空間上での距離が半分になるため、FINGERを採用したシステムにおいては、システムを構成する計算機の数がNの時、メッセージは最大log(N)回の転送を行うことで目的地に到達する。
エントリiは、i=0からi=159までの順番で帰納的に構成される。
そして、i=0のとき、X+20mod2160=X+1mod2160であり、エントリ0はSUCCESSOR(Xから見て正の方向において次に現れる識別子を持つ計算機)となる。
ここで、エントリi−1までが既に求められているとして、エントリiを求めるには、識別子X+2imod2160のデータを担当する計算機(X+2imod2160ちょうどか、そのような識別子を持つ計算機が存在しない場合は、X+2imod2160計算機から見て正の方向において次に現れる識別子の計算機)宛にメッセージを送信することになる。
上述した転送により、ハッシュ空間上での距離は半分になる。
そして、転送先の計算機で経路表が適切に構成されていれば、転送先からも転送ごとに距離が半分になる。
このようにしてエントリ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
しかしながら、Chordシステムをインターネットに適用したとして、システムを構成する計算機の数が100万台程度であるとした場合、log(106)≒20であることから、平均して10回の転送がアプリケーションネットワーク上で必要となる。
したがって、Chordシステムは、理論上効率的なシステムであるとはいえ、実動作環境への適用を考える場合、応答時間の制約から、この転送回数は可能な限り少なくすべきものである。
また、ChordシステムのFINGERによる経路表構成法には、以下に示すように、大きな無駄が存在する。
このとき、隣接する二つの識別子は、平均して2140離れた位置に存在していることになる。
すなわち、識別子Xを有するある計算機にとって、そのSUCCESSORは、およそX+2140mod2160という識別子を待つことになる。
このため、経路表には160エントリが保持されているが、その大半が無駄に使われていることになる。
FINGERは一回の転送ごとに目的地へのハッシュ空間上の距離を半分にすることができたが、無駄に使われているエントリを工夫することにより、一回の転送ごとにFINGERよりも効率よく目的地へのハッシュ空間上の距離をつめることが可能である。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160)
一方、本発明においては、経路表のエントリ数について、ChordシステムのFINGERによるものと同様に、160エントリとするが、エントリiについて、以下の(1)式から求められる値の識別子を有するデータを担当する計算機の識別子とする。
エントリiの識別子=X+unit×baseimod2160 …(1)
ただし、
unit=(XのSUCCESSORの識別子)−X
base=2×unit(−1/160)
とする。
上述のようにbaseを選ぶことにより、i=0の場合、上記(1)式は、SUCCESSORの識別子となり、エントリ0はSUCCESSORとなる。
また、i=1の場合、baseは1以上であるため、エントリ1はSUCCESSORの識別子より正の方向で越えた識別子となることがわかる。すなわちエントリ0とエントリ1は異なることがわかる。
ここで、各エントリの対象が異なるだけで、他の構成はChordシステムにおけるFINGERによる経路表(もしくは経路テーブル)構成法と同様のプロセスとなり、また、メッセージの転送についても同様である。
この図において、本実施形態の分散型データ処理/管理装置は1、通信ネットワークTと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行うため、または自身が担当するデータを含むか否かを検出するための通信処理部2と、通信処理部2において受信したメッセージが自身が担当するデータを含む場合にその処理を行うためのデータ処理部3と、データ処理部3において処理するデータを読み出しあるいは書き込みするためのデータ管理部4と、通信処理部2において受信したメッセージが自身が担当するデータでない場合にメッセージを転送すべき他の分散型データ処理/管理装置を決定するため、また、経路表を適切に保つために定期的に経路表管理部5の再構成を行うための経路表処理部6と、経路表処理部6によって定期的に再構成される経路表を格納するための経路表管理部5と、を有している。
上述したように、分散型データ処理/管理装置は、通信処理部2を介して、通信ネットワークTと接続され、通信ネットワークTの提供するメッセージ配信機能を利用して、他の分散型データ処理/管理装置相互間のメッセージの送受信を行う。
経路表は、エントリ0からエントリ159までの160エントリで構成される。
ここで、各エントリは、エントリ番号と、分散型データ処理/管理装置の識別子と、分散型データ処理/管理装置のIPアドレスと、分散型データ処理/管理装置のポート番号とからなる。
そして、経路表は、更にSUCCESSORとPREDECESSORとを管理する二つの特別なエントリを有しており、これらのエントリの構成も同様である。
メッセージは、図3に示すように、メッセージの送信先を示す送信先識別子と、メッセージによって運ばれるデータの処理方法を示すコマンドと、送信するデータと、送信元装置のIPアドレスと、送信元装置のポート番号との各項目を有している。
通信処理部2は、通信ネットワークTに接続後、他の分散型データ処理/管理装置からのメッセージを受信する(ステップS1)。
そして、通信処理部2は、受信したメッセージの送信先識別子を見て、自身が担当するデータを含むか否かを検出、すなわち自身が担当すべきデータであるか否かを判断する。
そして、通信処理部2は、自身が担当すべきデータであると判断した場合、このメッセージをデータ処理部3へ出力する。
その際、データ処理部3は、必要に応じてデータ管理部4へのデータの書き込み、あるいは、データの読み出しを行う。
また、データ処理部3は、必要に応じて、データ処理の結果を、メッセージの送信元IPアドレス及び送信元ポート番号を用い、送信元の分散型データ処理/管理装置に応答する(ステップS3)。
このとき、通信処理部2は、経路表処理部3を介して、経路表管理部6に格納されている経路表から、メッセージの送信先識別子を正の方向において越えないものの中から、最もメッセージに含まれる送信先識別子に近づく識別子を持つエントリを検索する(ステップS4)。
これにより、通信処理部2は、得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの転送を行う(ステップS6)。
通信処理部2は、データ処理あるいは管理のため、他の分散型データ処理/管理装置に対して、メッセージを送信する必要が生じた場合、ハッシュ関数SHA-1を適用して所定の数値として得られる送信先識別子と、データの処理方法を現すコマンドと、データと、送信元である自身のIPアドレスと、自身のポート番号とを有する、図3に示すメッセージを生成する(ステップS11)。
そして、経路表処理部5は、抽出したエントリから、転送すべき分散型データ処理/管理装置のIPアドレス及びポート番号を読み取り、送信先の分散型データ処理/管理装置を決定する(ステップS14)。
これにより、通信処理部2は、上述のように得られたIPアドレス及びポート番号の示す分散型データ処理/管理装置に対して、メッセージの送信を行う(ステップS14)。
経路表処理部5は、エントリiに設定すべき他の分散型データ処理/管理装置の識別子を求めるためのターゲット識別子Iを0に設定して、初期化を行う(ステップS21)。
次に、経路表処理部5は、上記ターゲット識別子Iを計算する。
ターゲット識別子 = X+unit×baseimod2160
ただし、X=自身の識別子
Unit=SUCCESSORの識別子−X
Base=2×unit(−1/160)
である。
たとえば、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=0であるとき、常に既知であると判定し、一方、I≧1であるとき、エントリi−1の識別子を正の方向において越えない場合に既知であると判定し、超える場合に既知ではないことを判定する(ステップS23)。
そして、経路表管理部5は、ターゲット識別子に関わる分散型データ処理/管理装置の情報が既知でない場合、判定結果を通信処理部2に対して通知する。
これにより、通信処理部2は、送信先識別子として得られたターゲット識別子と、担当する分散型データ処理/管理装置からの応答を促すコマンドと、データとしてヌルデータと、自身のIPアドレスと、自身のポート番号とを有するメッセージの生成を行う(ステップS24)。
これにより、送信先の分散型データ処理/管理装置においては、すでに説明したメッセージ受信処理と同様に、自身が担当するものであると判断する分散型データ処理/管理装置まで、メッセージの転送を繰り返し行う。
そして、メッセージが最終的に到連した分散型データ処理/管理装置においては、自身についての情報、すなわち、識別子、IPアドレス、及びポート番号の応答を、メッセージの送信元に対して行う(ステップS25)。
そして、通信処理部2は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定した場合、また、応答を受信した場合、経路表処理部2に対して経路表の再構成を指示する。
これにより、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知でないと判定され、かつ、応答を受信した場合、経路表管理部6に格納される経路表のエントリiの更新を行う(再構成を行う)。
一方、経路表処理部5は、ターゲット識別子に関わる分散型データ処理/管理装置が既知であると判定されている場合、エントリi−1と同じ識別子、IPアドレス、及びポート番号によりエントリiを更新する(ステップS27)。
そして、経路表処理部5は、iが160以上になったか否かを検出し、iが160以上となったことを検出した場合、経路表の再構成の処理を終了し、iが160未満であることを検出した場合、処理をステップS9へ進める(ステップS28)。
上述した処理が、経路表再構成の一連の手続きである。
また、分散型データ処理/管理装置1は、一定の周期において、定期的に(例:1分ごと)、上述した経路表再構成処理を繰り返すし、常に、経路表を適切に保たせる。
図7に示す表における列は、それぞれシミュレーションに用いた装置数、装置数に対応したChordを用いた場合の平均転送回数、装置数に対応した本発明での平均転送回数、装置数に対応した本発明の平均転送回数をChordでの平均転送回数で割ったものである。
図7及び図8から明らかなように、シミュレーション結果は、本発明がChordシステムに比べて約半分の転送回数を実現しており、転送回数を削減することが可能であることを示している。
2…通信処理部
3…データ処理部
4…データ管理部
5…経路表処理部
6…経路表管理部
T…通信ネットワーク
Claims (4)
- 分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送機能を有する分散型データ処理/管理装置であって、
通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理部と、
該通信処理部において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため、経路表を再構成する経路表処理部と
を有し、
Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2iだけ離れた識別子を基準とするのに対し、
前記経路表処理部が、自身の識別子から、unit×baseiだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理装置。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160) - メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
前記経路表処理部が一定周期毎に該経路表管理部における経路表の再構成を行うことを特徴とする請求項1記載の分散型データ処理/管理装置。 - 分散ハッシュ表技術を用いた160ビットのハッシュ空間を有するChordシステムと同様のメッセージ転送過程を有する分散型データ処理/管理方法であって、
通信ネットワークと接続され、他の分散型データ処理/管理装置とメッセージの送受信を行う通信処理過程と、
該通信処理過程において受信したメッセージが自身の担当するデータでないことを検出した場合、該メッセージを転送すべき他の分散型データ処理/管理装置を決定するため経路表を再構成する経路表処理過程と
を有し、
Chordシステムの経路表構成法が、i番目のエントリについて、自身の識別子から2iだけ離れた識別子を基準とするのに対し、
前記経路表処理過程において、自身の識別子から、unit×baseiだけ離れた識別子を基準として、i番目のエントリに対する経路表の再構成を行うことを特徴とする分散型データ処理/管理方法。
unit=(自身の識別子から正方向において次に出現する装置の識別子)−(自身の識別子)
base=2×unit(−1/160) - メッセージの送信経路を示す前記経路表が格納された経路表管理部を有し、
前記経路表処理過程が一定周期毎に行われ、該経路表管理部における経路表の再構成を行うことを特徴とする請求項3記載の分散型データ処理/管理方法。
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)
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 |
-
2004
- 2004-06-10 JP JP2004172488A patent/JP4271620B2/ja not_active Expired - Fee Related
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 |