JP2008140388A - 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法 - Google Patents

階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法 Download PDF

Info

Publication number
JP2008140388A
JP2008140388A JP2007303962A JP2007303962A JP2008140388A JP 2008140388 A JP2008140388 A JP 2008140388A JP 2007303962 A JP2007303962 A JP 2007303962A JP 2007303962 A JP2007303962 A JP 2007303962A JP 2008140388 A JP2008140388 A JP 2008140388A
Authority
JP
Japan
Prior art keywords
peer
superpeer
traffic load
super
superpeers
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
JP2007303962A
Other languages
English (en)
Other versions
JP4533923B2 (ja
Inventor
Wolfgang Kellerer
ヴォルフガンク・ケレラー
Zoran Despotovic
ゾラン・デスポトヴィッチ
Stefan Zoels
シュテファン・ツェルス
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2008140388A publication Critical patent/JP2008140388A/ja
Application granted granted Critical
Publication of JP4533923B2 publication Critical patent/JP4533923B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 階層型ピアツーピアシステムにおける効率的な負荷バランシングのための装置及び方法を提供する。
【解決手段】 1つ又は複数の他のスーパーピア(S0、S1、S3、S4、S5、S6、S7)を含む階層型オーバーレイピアツーピアネットワーク(N1)に参加するためのものであって、リーフノード(LN)がリーフノードオーバーレイリンク(N2)を通して前記スーパーピア(S0−S7)のうちのいずれかへアタッチできるようにするスーパーピア(100、S2)を開示する。前記スーパーピア(100、S2)は、アタッチ要求メッセージ(112)を受信する受信機(110)と、アタッチ確認メッセージ(124)を送信する送信機(120)と、所定の場合に前記アタッチ確認メッセージ(124)を送信させるべく前記送信機を制御(131)する処理ユニット(130)とを備える。
【選択図】図1

Description

本発明はピアツーピアオーバーレイシステムの分野に関し、具体的には階層型オーバーレイピアツーピアシステムにおける負荷バランシングに関する。
オーバーレイネットワークとは、別のネットワーク上、すなわち、下層にある(underlying)物理ネットワーク上に構築されるネットワークである。オーバーレイ内のノードは、それぞれがパスに対応していて、下層にあるネットワークの1つ又は多数の物理リンクを有する仮想リンクすなわち論理リンクによって接続されていると考えられる。例えば多数のピアツーピアネットワークはインターネット上で動作するので、該多数のピアツーピアネットワークはオーバーレイネットワークである。ダイアルアップインターネットは、電話ネットワーク上のオーバーレイの一例である。オーバーレイネットワークは、通常のルーティングプロトコル、例えばIP(インターネットプロトコル)ルーティングによってサポートされていない、ファイル又は任意のタイプのデータなどのアプリケーションレベルの概念のルックアップを可能にするために構築することができる。
ピアツーピア(P2P)ネットワークは、比較的少数のサーバーに集中するというよりむしろ、ネットワーク内のピア又はピアノードと呼ばれるパーティシパントの計算パワー及び帯域幅に主として依存するネットワークである。したがって、ピアツーピアネットワークにはクライアント又はサーバーという概念がなく、ネットワーク上の他のノード又はピアに対して、「クライアント」及び「サーバー」の両方として同時に機能する対等なピアノードだけを有する。ピアツーピアネットワークは、一般的に、例えばオーディオ、ビデオ、データ若しくはデジタルフォーマットであればどのようなものでも収容するコンテンツファイルを共有するため、又は、電話トラフィックのようなリアルタイムデータを伝送するために使用される。ピアツーピアネットワークの重要な目的は、全てのクライアントが帯域幅、記憶スペース及び計算パワーを含めてリソースを提供することである。したがって、ノードの到着及びシステムへの要求が増加すると、システムの総容量も増加する。
上述したようにピアツーピアオーバーレイネットワークは、オーバーレイネットワークノードとして参加している全てのピアからなる。互いを認識しているいずれの2つのノードの間にもオーバーレイリンクが存在し、すなわち、参加しているピアがピアツーピアネットワーク内の別のピアのロケーションを認識しているならば、オーバーレイネットワーク内の前者のノードから後者のノードへの有向エッジが存在する。オーバーレイネットワーク内のノードが互いにどのようにリンクされているかに基づいて、ピアツーピアネットワークが構造化されていないか又は構造化されているかが区別される。
非構造化ピアツーピアネットワークは、オーバーレイリンクが任意に確立されるときに形成される。このようなネットワークは、ネットワークへの参加を希望する新たなピアが別のノードの既存リンクをコピーすることができ、独自のリンクを形成するのにつれて、容易に構築される。非構造化ピアツーピアネットワークでは、ピアがネットワーク内で所望のコンテンツを見つけることを望む場合に、コンテンツを共有するできるだけ多数のピアが見つけられるようにキャリアがネットワークの至る所にフラッドさせられていなければならない。このようなネットワークの主な欠点は、クエリが常に解決できるとは限らないことである。人気のあるコンテンツは、おそらく複数のピアで利用でき、人気のあるコンテンツを探索しているピアは同一のものをおそらく見つけるが、少数の他のピアだけによって共有されている希少な、又はそれほど人気のないコンテンツをピアが探しているならば、探索が成功する見込みは非常に少ない。ピアとピアによって管理されているコンテンツとの間には相関が無いので、フラッディングが所望のデータを有するピアを見つけるという保証はない。さらにフラッディングは、ネットワーク内に大量のシグナリングトラフィックを生じさせる原因にもなるので、このようなネットワークの探索効率は非常に悪い。
構造化ピアツーピアネットワークは、分散ハッシュテーブル(DHT: distributed hash table)を保持し、各ピアがネットワーク内のコンテンツの特定の部分を担うことを許可することにより、非構造化ネットワークの制限を解決する。これらのネットワークは、値すなわちハッシュ値をネットワーク内のあらゆるコンテンツ及びあらゆるピアへ割り当てるためにハッシュ関数を使用し、その後に、どのピアがどのコンテンツを担当するかを決定する際にグローバルプロトコルに従う。このようにして、ピアがあるデータの探索を希望するときにはいつでも、ピアはデータを担当するピアを決定し、その後に担当するピアに向けて探索を命令するためにグローバルプロトコルを使用できる。ハッシュ値という用語は、特に分散コンテンツを管理するコンテキストでは、キー又はインデックスと呼ばれることもある。これに対応してキー空間という用語は、考えられるキーの全体集合を定めるため使用される。既知の構造化ピアネットワークには、Chord、Pastry、Tapestry、CAN及びTulipがある。
ハッシュ関数又はハッシュアルゴリズムは、一般的に、データ、典型的にはドキュメント又はファイルを、コンピュータ若しくはその他の装置によって取り扱われるのに適した値に変化させる再現可能な方法である。これらの関数は、あらゆる種類のデータから小さいデジタル「フィンガープリント」を生成する方法を提供する。ハッシュ値は、結果として得られる「フィンガープリント」である。上記のハッシュテーブルは、ハッシュ関数の主な用途であり、ハッシュ値で与えられたデータレコードの高速なルックアップ又は検索を可能にする。
例えば、160ビット文字列の集合のような抽象的なキー空間の周りに構築された分散ハッシュテーブルについて説明すると、キー空間の所有権はキー空間パーティショニングスキームに応じて、参加しているノードの間で分割され、オーバーレイネットワークはノードを接続し、ノードがキー空間内で所与のキーの所有元を見つけることを可能にさせる。これらのコンポーネントが適切であるならば、記憶及び検索のための典型的な分散ハッシュテーブルの利用は以下の通りである。所与のファイル名f1を有するファイルを分散ハッシュテーブルに記憶するため、f1のハッシュ値が決定され、160ビットキーk1が生成される。次に、d1が物理アドレス、例えばファイル所有元のIPアドレスであるとき、メッセージput(k1,d1)が分散ハッシュテーブルにある参加している任意のノードへ送信される。メッセージは、ペア(k1,d1)が格納されているキー空間パーティショニングによって特定されるようなキーk1を担当する単一のノードに到着するまで、オーバーレイネットワークの中をノード間で転送される。他のクライアントは、その後にキーk1を生成するためにファイル名f1を再びハッシュ化し、k1、例えばメッセージget(k1)と関連付けられたデータを見つけることを任意の分散ハッシュテーブルノードに要求することにより、ファイルの内容を取得できる。メッセージは、キーk1を担当し記憶されたデータd1で応答するノードに向けて、オーバーレイネットワークの中を再びルーティングされる。データd1自体は、getメッセージと同じルートを使用してルーティングされるが、典型的に、下層にある物理ネットワークが提供する異なる物理ルートに基づく異なるルートを使用して伝送される。
上記の動作を可能にするために、分散ハッシュテーブルは、キーk1からキーk2までの距離の抽象的な概念を定める距離関数d(k1、k2)を用いる。各ノードには、ルーティングのコンテキストではオーバーレイネットワーク識別子とも呼ばれる単一のキーが割り当てられる。識別子iを有するノードは、距離関数dに応じて測定された、最も近接する識別子がiであるキーの全てを所有する。換言すると、識別子iを有するノードは、d(i、k)に応じて測定された、最も近接する識別子がiであるキーkを有する全レコード又はドキュメントを担当する。
Chord型DHTは、キーを円上の点として扱う特定の一貫性のある分散ハッシュテーブルであり、d(k1、k2)はk1からk2まで円の周りに時計回り方向へ進んだ距離である。したがって、円形のキー空間は、端点がノード識別子である連続セグメントに分割されている。i1とi2が隣接する2つのノード識別子であるならば、識別子i2を有するノードはi1とi2との間に入る全てのキーを所有する。
各ピアは他のピアへのリンクの集合を保持し、リンクは一体となってオーバーレイネットワークを形成し、ネットワークのトポロジーと呼ばれる構造化された方法で選ばれる。リンクは、距離関数を参照して、遠くにあるピアの小さい集合に向けて、及び、最も近接する複数のピアに向けて確立されている。すべての分散ハッシュテーブルトポロジーは、最も本質的な特性のある変化を共有しており、あらゆるキーkに対してノードはkを所有するか、又は、上述したキー空間距離に関してkにより近いピアへのリンクを有する。次に、以下のグリーディ(greedy)アルゴリズムを使用してメッセージをキーkの所有者へ容易にルーティングでき、グリーディアルゴリズムでは各ステップにおいてkに最も近接している識別子を有する近傍へメッセージを転送する。このような近傍が存在しないとき、現在のノードが、上述したkの所有元である最近接ノードに違いない。このタイプのルーティングは、キーベースルーティングとも呼ばれる。
図7は、下層物理ネットワーク710と、下層物理ネットワーク710の上にあるピアツーピアネットワークの仮想的又は論理的なオーバーレイネットワーク720と、オーバーレイネットワーク720のノード又はピアによって管理されているキー空間730とを含むピアツーピアオーバーレイネットワークの階層構造を表している。例えば、上述したようなChord型リングDHTシステムでは、キー空間730のキーパーティションは時計回りにピアへ割り当てられる。これは、ルーティングのため、オーバーレイネットワーク自体が、ノード毎に2個のオーバーレイリンク、すなわち後述するようにChord型リング構造に基づいて直前の近傍ノード及び直後の近傍ノードへの2つのリンクだけを備えるということを意味していないことに留意されたい。
通常、キーは、ピアのIPアドレス及びランダムに選択された文字列をハッシュ値にハッシュ化することによりピアへ割り当てられる。ソースキーをピアへマップするためにハッシュ関数を使用する付随的な目的は、負荷分散をバランシングすることであり、各ピアはほぼ同数のキーを担当することになる。
要約すると、特定のDHTの設計は、キー空間と、距離関数と、キーパーティショニングと、リンクストラテジーとの選択に依存している。しかし、ルーティングの効率に関連した優れた特性が、何もせずにもたらされるというわけではない。DHTを構築し保持するため、ピアは特にノードの参加と障害の問題を取り扱わなければならない。構造化P2Pネットワークにおいて近傍選択の自由は制限されているので、保持アルゴリズムはネットワークダイナミクスの存在下で、ルーティングテーブルの一貫性を再確立することが要求される。ネットワークによって与えられる保証のタイプに依存して、決定的で確率的な様々な保持ストラテジーが開発されている。保持は、定期的なノード参加及びノード離脱、又は一貫性のないルーティングテーブルに起因するルーティング障害などの種々のイベントによりトリガされる。様々な保持ストラテジーは、保持コストと、一貫性の程度、したがって、ネットワークの障害回復力とをトレードオフする。
しかし、現行のDHT解決策は、ターゲット環境として固定的なインターネットだけに重点を置き、モバイルコンピューティング環境に適していない。現行のDHT解決策は、モバイル機器の低コンピューティング能力及び低通信能力、又は高通信コストのような主な限界を考慮していないだけでなく、セルラアドホックネットワーク又はモバイルアドホックネットワークのその他の詳細を考慮していない。この問題は、参加しているピアが2つのグループに分割されて、図8から分かるように強力な機器がスーパーピアU1〜U5として区別され、携帯電話機のような弱い機器がリーフノードL1〜L3と呼ばれる、DHTアーキテクチャを提供することにより解決される。図8による分散ハッシュテーブルでは、スーパーピアは非特許文献1に記載されているようにChord型リングに編成され、スーパーピアへアタッチされていてリングに参加していないリーフノードへのプロキシとしての役割を果たす。
以下、階層型ピアツーピアオーバーレイネットワークについて図8に基づいてより詳細に説明する。上述したように、図8による階層型システムアーキテクチャは、ピアの2つの異なるクラス又は階層レベルであるスーパーピア及びリーフノードを定める。図8に示したようにスーパーピアは、Chord型リングの形をした構造化DHTベースのオーバーレイを確立し、各スーパーピアはさらに自己のリーフノードのプロキシとしての役割を果たし、すなわちリーフノードは、ピアツーピアネットワーク内で例えばピアツーピアオーバーレイネットワーク内のドキュメントをクエリするため、自己のスーパーピアを介することによってのみ通信する。したがって、リーフノードは自己のスーパーピアへのオーバーレイ接続だけを保持する。自己のスーパーピアの障害を認識して対処できるように、リーフノードは、簡単なピンポンアルゴリズムを定期的に実行する。さらにリーフノードは、スーパーピアの障害の後にオーバーレイネットワークへ再参加できるようにするため、システム内で利用可能な他のスーパーピアを格納するリストを記憶している。
これに対して、スーパーピアはその他の複数のタスクを実行する。1つの典型的な実施例では、ネットワークに参加しているリーフノードは、自己が共有しているオブジェクトへのポインタのリストを対応するスーパーピアへ転送する。その後スーパーピアは、これらのリファレンスをオーバーレイネットワークへ挿入し、リーフノードの所有元としての機能を果たす。リーフノードがルックアップを実行するとき、例えばオブジェクトをクエリするとき、Chord型オーバーレイの検索機能を使用してルックアップを解決するために、リーフノードが接続されているスーパーピアは、オブジェクトのキーに基づいて担当のスーパーピアを決定し、結果をリーフノードへ送る。異なる実施例では、検索されたオブジェクト又はドキュメントを担当しているスーパーピアは、リーフノードのために動作しているスーパーピアへ応答することなく、ドキュメントを要求したリーフノードへ要求されたドキュメントを直接送信することにより応答する。
さらにスーパーピアは従来のChord型リングを確立するので、スーパーピアは、Chordの保持アルゴリズムを定期的に実行し、リファレンスを最新の状態に保つために保持している全リファレンスを定期的に更新する。
非特許文献2では、従来のフラット型DHT編成を上回るこのような階層型システムの以下の2つの明らかな利点が実証されている。
第一に、保持トラフィックが実質的に削減される。このトラフィックは、上述したようにルーティングテーブルを一貫性のある状態に保つために、ノードがシステムに参加又は離脱するときに必要である。非特許文献2に記載のアーキテクチャでは、リーフノードがシステムを離脱するとき、保持トラフィックは殆ど必要がない。同時に、スーパーピアはより多いオンライン回数を伴うノードから選択されるので、Chord型リング自体を保持するために必要とされるトラフィックも削減される。
第二に、非特許文献2に記載されているように、通信コストがより高いノード又はピアは少ないトラフィックしか実行しないので、ネットワークの総運用コストは削減される。
近年、DHTにおいて生じる負荷を、参加しているピアの間で一様にバランシングすることを目的とする多数のアルゴリズムが提案されている。通常と同じように「負荷」という用語は、ここでは、ピアに記憶されているデータ項目の量を意味している。このような負荷バランシングアルゴリズムの目標は常に、DHTに記憶されている識別子(ID)空間又はドキュメントの個数のいずれかについて均等なサイズのパーティションを、参加しているあらゆるピアへ割り当てることである。非特許文献3に記載の仮想サーバーの概念は、参加しているあらゆるピアにおけるID空間の複数のパーティションの管理に基づいている。その結果、1つのピアは複数の「仮想サーバー」を表し、各仮想サーバーはDHT内で独立したピアとして機能する。その後、これらの仮想サーバーは、DHT内の1回のLEAVEイベント及び1回のJOINイベントに対応して、負荷の重いピアから負荷の軽いピアへと移される。著者は、自己のアルゴリズムが最適値に対して95%の範囲内で負荷をバランシングさせることを明らかにしている。
非特許文献4に記載のアルゴリズムは、非特許文献5で提案されている「power of two choices」パラダイムに基づいている。ドキュメントがDHTへ挿入されるときは常に、共有ドキュメントの異なるd個のIDを計算するためにd個のハッシュ関数が使用される。ここでd≧2である。その後、計算されたd個のIDを担当するピアと同時に通信し、現在最も負荷が軽いピアにドキュメントが記憶される。その上、著者は、最も負荷が低いピアへのいわゆるリダイレクションポインタをその他のあらゆる担当ピアに記憶させることを提案している。この手続により、d個のハッシュ関数のうちのいずれかが、要求されたドキュメントを記憶しているピアへクエリの宛先を書き換える担当ピアを見つけ、通信するために使用できるので、ドキュメントのルックアップ中のシグナリングオーバーヘッドを削減する。
非特許文献6において、Riecheらは、DHT内の負荷をバランシングする、熱分散(heat dispersion)のプロセスに似たアルゴリズムを提案している。ここで、最小でf個、最大で2f個のピアによるID空間のすべての間隔の管理が必要となる。各ピアは、その間隔に割り当てられている全ドキュメントを記憶する。ここでの負荷バランシングは3つの異なる方法で実行される。第一に、ある間隔が2f個のピアによって管理されていて、それらのピアの負荷が重い場合、間隔は半分となる。その後、半分となった間隔は、ピア(1,...,f)とピア(f+1,...,2f)とへそれぞれ割り当てられる。その結果、関連しているピアは自己のデータ負荷の半分を失う。第二に、f個より多く、2f個より少ない数のピアが間隔を管理しているならば、その間隔のピアは負荷の重い他の間隔へ移されて、次に、負荷の重い間隔は上記の手順に従って分割できる。第三に、f個以下のピアが間隔を管理しているならば、近傍の間隔にあるピアの間で負荷をバランシングできるように、間隔の境界をシフトできる。著者は、このアルゴリズムが、上述したアルゴリズム、すなわち「仮想サーバー」(非特許文献3)及び「power of two choices」(非特許文献4)よりも良好に機能することを明らかにしている。
非特許文献7は、Chord型オーバーレイにおいて、ID空間の分散をバランシングするアルゴリズムと、共有ドキュメントの分散をバランシングするアルゴリズムという2つのアルゴリズムを提案している。ID空間バランシングでは、ID空間の複数の位置、いわゆる「仮想ノード」があらゆるピアへ割り当てられるが、一度にこれらの仮想ノードのうちの1つだけがアクティブ状態になるように選択される。時々、各ピアは、ID空間の最小のパーティションを管理する自己の仮想ノードを決定し、その仮想ノードをアクティブ化する。ドキュメントバランシングの場合、ピアpiの負荷が、ランダムに選択されたピアpjである別のピアの負荷と時折比較される。piとpjとの間の負荷バランシングが必要な場合、pjは、piとpiの前のピアとの間に位置し、piの項目のうちの半分を捉えることができるようにID空間内での自己の位置を変化させる。
Kenthapadi及びMankuは非特許文献8において、ID空間を均等なサイズのパーティションに分割することにより、DHT内の負荷をバランシングしようとしている。彼らの目標は、パーティションの最大サイズと最小サイズとの間の比σを最小限に抑えることである。したがって、参加中のピアに重点が置かれ、あらゆる参加に関して、DHT内のr個のランダム点が選択され、各ランダム点に隣接したv個のパーティションのサイズが調べられる。その後、参加中のピアは見つかった最大のパーティションを半分に分割する。著者は、cが小さい定数であり、第k番目のピアが参加する前のDHT内のピアの個数がk−1である場合に、r・v≧c log2 kを満たす任意のr及びvに対して比σは高い確率で高々8であることを示している。
上記のアルゴリズムの全ては、いわゆるフラットなDHT設計、すなわち全ノードが機能的に同一であるDHT設計に重点を置いている。その結果として、これらのアルゴリズムは全て、ピアが担当しているドキュメントの個数を選択することにより、負荷をバランシングすることを選ぶ。この決定は、ドキュメント挿入フェーズ、又はシステムの通常動作中(クエリフェーズ)のいずれかにおいて行われる。しかしながら、異質のネットワークのために提案されたシステムアーキテクチャはフラットではない。それどころか、このシステムアーキテクチャは、トップレベルのスーパーピアと、それらへアタッチされているリーフノードとを含んでいて階層的である。
I. Stoica, R. Morris, D. Karger, M. Kaashoek, and H. Balakrishnan., "Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications", ACM SIG-COMM Conference, 2001 Zoels S., Despotovic Z., Kellerer W., Cost-Based Analysis of Hierarchical DHT Design, Sixth IEEE International Conference on P2P Computing, Cambridge, UK, 2006 Rao A., Lakshminarayanan K., Surana S., Karp R. and Stoica I., "Load Balancinig Structured P2P Systems", International Workshop on Peer-to-Peer Systems (IPTPS '03, Berkely, USA, 2003 Byers J., Considine J., and Mitzenmacher M., "Simple Load Balancing for DHTs", International Workshop on Peer-to-Peer Systems (IPTPS '03), Berkeley, USA, 2003 Mitzenmacher et. al in "The Power of Two Random Choices": A Survey of Techniques and Results, Kluwer Academic Publish-ers, Norwell, 2001, pages 255-312 "A Thermal-Dissipation-based Approach for Balancing Data Load in Distributed Hash Tables", IEEE Conference on Local Computer Networks (LCN 2004), Tampa, USA, 2004 Karger and Ruhl "Simple Efficient Load Balancing Algorithms for Peer-to-Peer Systems", International Workshop on Peer-to-Peer Systems (IPTPS '04), San Diego, USA, 2004 Kenthapadi and Manku try in "Decentralized Algorithms using both Local and Random Probes for P2P Load Balancing", ACM Symposium on Parallelism in Algorithms and Architectures (SPAA05), Las Vegas, USA, 2005
本発明の目的は、階層型ピアツーピアシステムにおける効率的な負荷バランシングのための装置及び方法を提供することである。
上記目的は、請求項1に記載の階層型ピアツーピアシステムにおいて負荷バランシングをサポートすることができるスーパーピアと、請求項10に記載の階層型ピアツーピアシステムにおいて負荷バランシングをサポートすることができるスーパーピアを動作させる方法と、請求項11に記載のコンピュータプログラムとによって達成される。
本発明は、階層型ピアツーピアシステムにおいて負荷バランシングをサポートすることができ、リーフノードオーバーレイリンクを通してリーフノードがアタッチすることができる1つ又は複数の他のスーパーピアを含む階層型ピアツーピアシステムのスーパーピアオーバーレイネットワーク(N1)をセットアップするスーパーピアであって、前記リーフノードが前記階層型ピアツーピアシステムへのアタッチを要求していることを表すアタッチ要求メッセージを受信する受信機と、アタッチ確認メッセージを送信する送信機と、アタッチ要求メッセージを受信したという通知を前記受信機から受けて、前記スーパーピアのトラフィック負荷値を、前記他のスーパーピアに関連付けられているトラフィック負荷値、又は負荷トラフィック値が関連付けられている複数のスーパーピアのトラフィック負荷値と比較し、前記スーパーピアのトラフィック負荷値が前記他のスーパーピアのトラフィック負荷値以下であるか、又は複数の前記スーパーピアに関連付けられているトラフィック負荷値のうちの最小トラフィック負荷値以下である場合は、前記スーパーピアとのリーフノードオーバーレイリンクを通して前記リーフノードが前記階層型ピアツーピアシステムへアタッチされることを通知するために、前記アタッチ確認メッセージを送信させるべく前記送信機を制御する処理ユニットとを備えるスーパーピアを提供する。
本発明は、リーフノードオーバーレイリンクを通してリーフノードがアタッチすることができる1つ又は複数の他のスーパーピアを含む階層型ピアツーピアシステムのスーパーピアオーバーレイネットワークをセットアップするスーパーピアを動作させる方法であって、前記リーフノードが前記階層型ピアツーピアシステムへのアタッチを要求していることを表すアタッチ要求メッセージを受信するステップと、前記スーパーピアのトラフィック負荷値を、前記他のスーパーピアに関連付けられているトラフィック負荷値、又は負荷トラフィック値が関連付けられている複数のスーパーピアのトラフィック負荷値と比較するステップと、前記スーパーピアのトラフィック負荷値が前記他のスーパーピアのトラフィック負荷値以下であるか、又は前記複数のスーパーピアに関連付けられているトラフィック負荷値のうちの最小トラフィック負荷値以下である場合は、前記スーパーピアとのリーフノードオーバーレイリンクを通して前記リーフノードが前記階層型ピアツーピアシステムへアタッチされることを通知するためにアタッチ確認メッセージを送信するステップとを含む方法をさらに提供する。
最後に、本発明は、本発明に係る方法をコンピュータに実行させるプログラムコードを有するコンピュータプログラムを提供する。
本発明は、リーフノードがネットワークへ参加するときに、スーパーピアの間で生じた負荷をバランスシングできるようにリーフノードが異なるスーパーピアへ割り当てられるという、階層型ピアツーピアネットワークが負荷バランシングのもう1つの可能性を提供するという見地に基づいている。これが、本発明による解決策と、フラット型ピアツーピアシステムに対してこれまでに記載した負荷バランシングスキームとの間の重大な相違点である。本発明による解決策の実施形態は後述するように、既存の実施形態と競合することなく、既存の実施形態のうちのいずれとも一緒に機能するため、既存の実施形態と直交性がある(orthogonal)ことをさらに強調する。
本発明は、フラット型ピアツーピアシステムに対してこれまでに説明した負荷バランシングスキームによって定められている負荷の定義が、全てのスキームにおいてある程度の誤解があるという見地にさらに基づいている。これまでの定義では、ピアが担当するドキュメントの数は、ピアの負荷を定義するために用いられている。しかしこの定義は、例えばある特定のドキュメントが要求される回数を考慮していないので、この種の負荷分散を考慮できないだけでなく、この定義は、階層型ピアツーピアシステムにおいてリーフノードからの全クエリ及びリーフノードへの全クエリが、これらのリーフノードを担当しているスーパーピアを通してルーティングされるということを考慮していない。これはそれぞれのスーパーピアの負荷をさらに増加させ、ドキュメント又はキーの数のみに基づいて負荷を決定することにより考慮されていない。したがって、本発明によれば負荷は、ネットワーク動作中にピアが転送したメッセージの数、すなわちトラフィック負荷として定義される。パケットのサイズが異なる可能性があるということを考慮するために、パケットの個数と等価的にビット毎秒のような他のトラフィック指標もトラフィック負荷のメトリックとして使用できる。
負荷バランシングのためのこの新しいトラフィック指向型のメトリックは、フラット型ピアツーピアシステムに関して説明した負荷バランシングの解決策に対しても使用できる。ピアが記憶できるドキュメントの数を保持するのではなく、あらゆるピアは自己のトラフィックに関する情報を保持していればよい。その後この情報は、上記のアルゴリズムに基づいて決定を行うために使用される。
スーパーピアは、ピアツーピアシステムの第1の階層レベルに属しているので、第1レベルのピアと呼ばれることもある。リーフノードは、階層型ピアツーピアシステムの第2の階層レベルに属しているので、第2レベルのピアと呼ばれることもある。したがって、「ノード」という用語にかかわらず、リーフノードは、階層型オーバーレイピアツーピアシステムのピアでもあるが、リーフノード自体はスーパーピアのようにキー空間パーティション又はルーティングを担当しない。
上述したように、負荷バランシングはピアツーピアシステムにおける重要な課題である。ピアの間で均等にバランスの取れた負荷は、ピアの故障確率を低下させ、ネットワーク安定性を増大させることにより、ネットワークのより良好な動作を可能にする。この問題に対する現在の解決策の殆どは、上述したようにドキュメントをシステムに挿入するときの負荷バランシング、及び/又は、負荷が歪んでいるときの負荷シフトを重点的に取り扱っている。階層型システムアーキテクチャは、本発明の実施形態が利用する別の可能性を提供する。階層型アーキテクチャは、スーパーピアとリーフノードという2つのピアのクラスを有する。本発明の実施形態によって使用される負荷バランシングの解決策は、スーパーピア間でトラフィック負荷をバランシングするため、リーフノードを様々なスーパーピアへ動的に割り当てる。動的な割り当ては次の通り行われる。例えば、あるリーフノードからジョインリクエストを受信したスーパーピアは、自己のルーティングテーブルに基づいて現在最も負荷の軽いスーパーピアへこのジョインリクエストを転送する。好ましい実施形態では、ジョインリクエストは、近傍のスーパーピアであるフィンガーの全部より負荷の軽いスーパーピアが見つかるか、又は転送の最大回数に達するまで転送される。
同じ原理は、リーフノードが参加を希望するときの負荷バランシングのため使用されるだけでなく、保持アクティビティとして負荷バランシングを実行するために、あるスーパーピアへ既にアタッチされているリーフノードを別のスーパーピアへ移すためにも使用できる。
シミュレーションの結果は、ピア全体の負荷の標準偏差が、広範囲のパラメータ設定値に対して数パーセントの範囲内にとどまることを明らかにしている。同時に、このアプローチが負担する付加的なコストは非常に小さい。安定かつ低コストのネットワーク動作、並びに高い障害回復率は、提案された負荷バランシングの解決策の実施形態の主要な利点として既に記載したとおりである。具体的には、スーパーピアの安定性を改善し、スーパーピアの障害確率を低下させるために、スーパーピア間で負荷のバランスを取ることが重要である。なぜならば、負荷のバランスが取れていないとき、過負荷状態のスーパーピアが通信容量の限界に達する場合があり、このことがネットワークの一貫性のない動作を招き、すなわち、メッセージが頻繁に送られることがあるためである。より厳しい結果は、オーバーレイノードの障害、特に、階層型ピアツーピアシステム内のスーパーピアの障害である。この場合、ネットワークを再編成するために保持アルゴリズムを実行しなければならないので、ネットワーク全体の性能は劣化する。極端な場合、ネットワーク全体が崩壊する。このような問題を回避するため、本発明のスーパーピアの実施形態は、できるだけ均等に負荷を分担する。上述したように、解決策の主な考え方は、リーフノードがスーパーピアの負荷レベルに応じて様々なスーパーピアへアタッチされるということである。
本発明の好ましい実施形態について、図面を参照しながら詳細に説明する。
図1は、階層型ピアツーピアシステムにおいて負荷バランシングをサポートすることができるスーパーピアであって、1つ又は複数の他のスーパーピアを含む階層型ピアツーピアシステムのスーパーピアオーバーレイネットワークをセットアップして、リーフノードがいずれかのスーパーピアとのリーフノードオーバーレイを通してアタッチすることのできるスーパーピアの実施形態を示している。スーパーピアオーバーレイネットワークはスーパーピアによって形成され、少なくとも2つのスーパーピアを備えている。そうでなければ、スーパーピア間の負荷バランシングは実行できない。リーフノードは、スーパーピアのうちの1つだけを通してピアツーピアシステムへ接続されている。したがって、「プロキシ」という用語もスーパーピアに対して使用できる。スーパーピア100は、受信機110と送信機120と処理ユニット130と記憶ユニット140とを備えている。受信機110は、リーフノードがスーパーピアのうちの1つを通して階層型ピアツーピアシステムへアタッチされることを要求していることを表すアタッチ要求メッセージ112を受信する。「アタッチ」という用語は「接続」という意味で使用している。
アタッチ要求メッセージは、例えばスーパーピアが、リーフノードが直接通信するスーパーピアである場合にはリーフノード自体によって送信されていることがあり、あるいは別のスーパーピアによって送信されていることもある。
一実施形態では、処理ユニット130は、アタッチ要求メッセージ112を受信したという通知114を受信機110から受信すると、スーパーピア100のトラフィック負荷値を他のスーパーピアのトラフィック負荷値と比較する。具体的には、階層型ピアツーピアシステムの実施形態は2つ以上のスーパーピアを備えており、それに応じてスーパーピア100の処理ユニット130は、スーパーピアが2つの場合は自己のトラフィック負荷値をもう一方のスーパーピアに関連付けられているトラフィック負荷値と比較し、ピアツーピアシステムがスーパーピア100以外に複数のスーパーピアを含む場合はいくつかのスーパーピアのトラフィック負荷値と比較する。
送信機120は、アタッチ確認メッセージ124を送信する。
処理ユニット130は、アタッチ要求メッセージ112を受信したという通知114を受信機110から受信すると、リーフノードをアタッチすべきか、又は要求を別のスーパーピアへ転送すべきかを決定する。決定のプロセスは図2A及び2Bに基づいてより詳細に説明する。一実施形態では処理ユニット130は、スーパーピア100のトラフィック負荷値を、他のスーパーピアに関連付けられているトラフィック負荷値、又はいくつかのスーパーピアのトラフィック負荷値と比較する。ここで、いくつかのスーパーピアのそれぞれは、ある負荷トラフィック値に関連付けられており、それぞれスーパーピアが指定されている。処理ユニット130はさらに、スーパーピア100のトラフィック負荷が、他のスーパーピアのトラフィック負荷以下であるか、又はいくつかのスーパーピアに関連付けられているトラフィック負荷のうち最小のトラフィック負荷以下である場合に、あるリーフノードがスーパーピア100とのリーフノードオーバーレイリンクを通して階層型ピアツーピアシステムへアタッチされることを通知するために、転送アタッチ確認メッセージ122を送信させるべく送信機120を制御する。
トラフィック負荷は、トラフィック負荷値、例えば時間当たりのパケット数または1秒当たりのビット数によって表すことができる。この場合、処理ユニットの実施形態は、スーパーピア100のトラフィック負荷値が他のスーパーピアのトラフィック負荷値以下であるか、又は複数のスーパーピアに関連付けられているトラフィック負荷値のうち最小のトラフィック負荷値以下であるならば、転送アタッチ確認メッセージ122を送信させるべく送信機120を制御する。
代替的な実施形態では、処理ユニットは、例えば上記のトラフィック負荷値の逆数をトラフィック負荷値として使用する。これに応じて、この場合、処理ユニットの実施形態として、スーパーピア100のトラフィック負荷値が他のスーパーピアのトラフィック負荷値以上であるか、又はいくつかのスーパーピアに関連付けられているトラフィック負荷値のうち最大のトラフィック負荷値以上である場合に、転送アタッチ確認メッセージ122を送信させるべく送信機120を制御する。
以下に、典型的なトラフィック負荷値として時間当たりのパケット数を用いる実施形態について説明する。これは、本発明の範囲を限定するものではない。
したがって、さらなる実施形態では、スーパーピア100は、スーパーピア100の負荷トラフィック値が他のスーパーピアの負荷トラフィック値より大きいか、又はいくつかの他のスーパーピアのうち最小の負荷トラフィック値より大きい場合に、他のスーパーピア、又はいくつかのスーパーピアのうちの最小の負荷トラフィック値が関連付けられているスーパーピアへ転送アタッチ要求メッセージ122を送信すなわち転送させるべく送信機120を制御131する。
図2Aに基づいてより詳細に説明すれば、好ましい実施形態では、スーパーピア100は、アタッチ要求メッセージに関連付けられているコネクション転送カウンタをさらにチェックして、コネクション転送カウンタがある転送カウンタスレショルドに達している場合にはアタッチ要求メッセージをそれ以上転送しない。転送カウンタは、ループ、すなわちアタッチ要求メッセージの「エンドレスな」転送を回避するために使用される。
別の好ましい実施形態では、スーパーピアは、もう一つのスーパーピア、又はいくつかのスーパーピアのそれぞれのためのオーバーレイネットワーク識別子を含むルーティングテーブルを記憶する記憶ユニット140をさらに備えている。ここで、各スーパーピアにはユニークなオーバーレイネットワーク識別子が割り当てられ、もう一つのスーパーピアに関連付けられるトラフィック負荷値、又はそれぞれのトラフィック負荷値は、1つのスーパーピア又はいくつかのスーパーピアへそれぞれ関連付けられる。上記処理ユニットは、トラフィック負荷値の比較及びアタッチ要求メッセージの転送のためにルーティングテーブルを使用する。
他のスーパーピアのトラフィック負荷値は、例えば明示的な保持メッセージを通して受信できるか、又は他のメッセージ116にピギーバックすることができる。代替的な実施形態では、スーパーピアは、アタッチ要求メッセージを受信するたびに、特定のスーパーピアのトラフィック負荷値を要求する。
ルーティングテーブルは、全てのスーパーピアのそれぞれに関連付けられている各トラフィック負荷値を含めてピアツーピアシステムの全てのスーパーピアを含むことができるが、典型的には、保持のコスト及び関連したトラフィックを許容可能な大きさに維持するために、全てのスーパーピアの部分集合、例えばフィンガーとも呼ばれる近傍ノード及びそれらに関連付けられているトラフィック負荷値だけを含んでいる。
さらなる実施形態では、スーパーピア100の好ましい実施形態の処理ユニット130は、自己のトラフィック負荷を監視して測定し、トラフィック負荷値を所与のトラフィック負荷スレショルドと比較して、アタッチされているリーフノードが複数のスーパーピアのうちの異なるスーパーピアへアタッチされるように、既にスーパーピア100へアタッチされているリーフノードの移動を開始すべく移動アタッチ要求メッセージ132を別のスーパーピアへ送信させるために送信機120を制御131する。したがって、これらのリーフノードを他のスーパーピアへ移動させるか、又は、これらのリーフノードを他のスーパーピアへ再アタッチすることにより、スーパーピアが、既にピアツーピアネットワークへアタッチされているリーフノードにより生じる負荷についてスーパーピア間で能動的にバランスを取ることも可能である。
この監視は継続して実行することができ、さらにアタッチ休止メッセージを受信したときは常に付加的に実行することができ、定期的に実行することもでき、あるいは所定の内部イベント若しくは外部イベントにより実行することもできる。
したがって、図1をもう一度参照すると、以下のケース、すなわちアタッチ要求メッセージのタイプを区別することができる。a)として、リーフノードがジョインアタッチ要求メッセージをスーパーピアへ直接送信する、すなわちジョイン要求を開始する。b)として、スーパーピアが移動アタッチ要求メッセージ132を別のスーパーピアへ送信する、すなわち移動要求を開始する。c)として、スーパーピアが転送アタッチ要求メッセージ122を送信する、すなわち上述の要求のうちの1つを転送する。
メッセージの原因、すなわちジョイン要求又は移動要求、及びメッセージのタイプに関わらず、個別のメッセージの生成、及び受信メッセージの取り扱い又は処理は、例えば転送カウンタのインクリメントとチェックの有無、又は負荷トラフィック値の比較とリーフノードをアタッチすべきかどうかの決定の有無に関係なく、同じ方法又は少なくとも類似した方法で実行できる。すなわち、アタッチ確認メッセージ124を生成し、あるいは要求、すなわちアタッチ要求メッセージ122を生成し、次のスーパーピアへ転送する。スーパーピアが、転送アタッチ要求メッセージを送信する次のスーパーピアをどのようにして決定するかに関しても同じである。
したがって、例えばスーパーピアの実施形態では、処理ユニット130は、移動要求の場合も、他のスーパーピアのトラフィック値を比較し、アタッチ要求メッセージ124を複数のスーパーピアの中でも最小のトラフィック負荷値を有するスーパーピアへ送信させるべく送信機120を制御131する。
他の実施形態では、これらのメッセージタイプは区別することができ、様々な方法で処理される。
転送アタッチ要求メッセージ122を用いない実施に基づくと、ピアツーピアネットワークへの参加を要求しているリーフノード、又は自己へアタッチしているリーフノードのうちの1つの移動を要求している別のスーパーピアは、スーパーピアのうちの1つがアタッチ確認メッセージ124により要求を確認するまで、それ自体がさらなるアタッチ要求メッセージ、すなわちジョインアタッチ要求メッセージ又は移動アタッチ要求メッセージを送信しなければならない。
転送アタッチ要求メッセージを用いる実施の場合、転送アタッチ要求メッセージは「転送」されるので、参加を要求しているリーフノードも移動を要求しているスーパーピアも、スーパーピアの転送機能を用いない上記の実施形態では必要となるそれぞれのアタッチ要求メッセージの送信を繰り返す必要がない。
送信される転送アタッチ要求メッセージ122は、受信したアタッチ要求メッセージ112と同じフォーマットを有することができる。例えば、転送カウンタが適用されない場合にはルーティング情報だけが変更され、又は転送カウンタが適用される場合には転送カウンタがさらにインクリメントされることもある。しかし、受信したアタッチ要求メッセージ112と異なることもある。別のスーパーピアからの要求の受信に起因する送信も、要求の「転送」と呼ばれる。
以下、階層型ピアツーピアネットワークにおける負荷バランシングの方法の実施形態についてより詳細に説明する。第一に、スーパーピアの負荷レベルは、バランスを取るべき量又はメトリックとして定められている。スーパーピアの負荷レベルλは、いかなる時点においてもそのスーパーピアが現在担っている負荷の大きさを以下のように定めるものである。
λi(t)=(時間tにおけるスーパーピアiの送信メッセージの数)/t
スーパーピアは、自己の現在の負荷レベルλを常に計算する。さらにスーパーピアは、Chord型オーバーレイにおいて、あらゆるルーティングテーブル更新メッセージ、例えばフィックスフィンガーメッセージ内のピギーバック情報としてこの情報を交換する。その結果、スーパーピアは、さらなるネットワークトラフィックを発生させることなく、自己のルーティングテーブル内のlog2sp個(NSPはDHT内のスーパーピアの数である)の全エントリーの負荷レベルを常に認識している。負荷バランシングアルゴリズムの問題は、最小限の努力でシステム内の全スーパーピアに対して等しい負荷レベルを供給することである。
以下により詳細に説明する負荷バランシングアルゴリズムは、オーバーレイネットワークに参加しているリーフノードを重点的に取り扱う。しかし、既にあるスーパーノードへアタッチされているリーフノードが、このリーフノードが現在アタッチされている特定のスーパーノードの負荷を低減させるために別のスーパーピアへ移動する場合にも同じノードバランシングアルゴリズムが適用できることは、当業者には明らかである。相違点は基本的にはアタッチ要求メッセージ送信の原因又は理由のみにある。受信したスーパーピアによるアタッチ要求メッセージの取り扱いは、同じように実施できる。
リーフノードがオーバーレイネットワークに参加しているときは常に、最初に通信したスーパーピアは、自己のルーティングテーブル内で負荷レベルλが最も小さいスーパーピアへジョイン要求を転送する。このジョイン要求の転送は、スーパーピアiのルーティングテーブル内の全ての負荷レベルエントリーよりも小さい負荷レベルλiを有するスーパーピアiが見つかるか、又は最大転送カウントに達するまで続く。したがって、参加中のリーフノードはスーパーピアiへ接続される。
アルゴリズムの実施形態は、擬似コードの形式で図2Aに示されている。ここで、nは参加中のリーフノードであり、Siはリーフノードnが第i番目に通信したスーパーピアである。
第1行では、コネクション転送カウンタCFC(connection forward counter)が0にセットされる。第2行で、アルゴリズムが開始する。第3行で、リーフノードnがSCFCと通信する。すなわち、CFC=0の場合、リーフノードは最初のスーパーピアと通信し、CFC>0の場合、一巡して第3行へ戻ることを定めている第10行から分かるように、第3行はアタッチ要求メッセージが次のスーパーピアへ転送されていることを示している。第4行で、コネクション転送カウンタ値CFCを、コネクション転送カウンタスレショルドとも呼ばれる最大コネクション転送カウンタ値CFCmaxと比較し、アタッチ要求メッセージを受信したスーパーピアのトラフィック負荷値λ(SFC)が、ルーティングテーブルに記憶されている他のスーパーピアのトラフィック負荷値と比較される。コネクション転送カウンタCFCがコネクション転送カウンタスレショルドCFCmaxに等しいか、又はスーパーピアのトラフィック負荷値λ(SCFC)がルーティングテーブルに格納されているトラフィック負荷値のうちの最小のトラフィック負荷値λmin以下である場合に、リーフノードnが第5行に記載されているように現在のスーパーピアSCFCに接続すなわちアタッチされて、第6行に記載されているようにこのアルゴリズムが終了する。2つの条件がいずれもが満たされない場合、アルゴリズムは第7行及び第8行へジャンプし、現在のスーパーピアSCFCのルーティングテーブル内で最小のトラフィック負荷値λを有するスーパーピアが次のスーパーピアSCFC+1として選ばれて、アタッチ要求メッセージが選ばれた次のスーパーピアへルーティングされる。第9行でコネクション転送カウンタCFCがインクリメントされ、その後第10行でアルゴリズムは第3行へ戻る。
要約すると、このアルゴリズムは、自己の全フィンガーすなわち近傍よりも小さな負荷を有するスーパーピアが見つけられるか、又は最大転送カウントに達するまで、リーフノードのジョイン要求を転送すると説明することができる。
図2Bは、スーパーピアを動作させる方法の好ましい実施形態をフローチャートとして示している。ステップ210において、スーパーピア100はアタッチ要求メッセージを受信する。ステップ220においてスーパーノード100は、コネクション転送カウンタCFCをコネクション転送カウンタスレショルドCFCmaxと比較して、コネクション転送カウンタCFCがコネクション転送カウンタCFCmaxに等しい場合、リーフノードがスーパーノード100へアタッチされることを確認するために、スーパーノード100はアタッチ確認メッセージ124を送信する。コネクション転送カウンタCFCがコネクション転送カウンタCFCmaxに等しくない場合、すなわちコネクション転送カウンタCFCmax未満である場合、この方法はステップ240へ進み、トラフィック負荷値λ(SCFC)はスーパーピア100のルーティングテーブル内のトラフィック負荷値と比較される。スーパーピア100のトラフィック負荷値λ(SCFC)が、ルーティングテーブルに格納されている全トラフィック負荷値のうちの最小トラフィック負荷値λmin以下であるならば、この方法はステップ230へ進み、アタッチ確認メッセージを送信する。負荷トラフィック値λ(SCFC)が最小負荷トラフィック値λminより大きいならば、この方法はステップ250へ進み、コネクション転送カウンタCFCをインクリメントし、アタッチ要求メッセージ122を、最小スレショルド値λminが関連付けられている次のスーパーピアへ送信すなわち転送する。
図3Aは、8つのスーパーピアS0〜S7がDHT Chord型リングを形成している階層型ピアツーピアシステムの典型的な実施形態を示している。図3Aは、スーパーピアS0に対して1つのリーフノードL0−1がアタッチされており、スーパーピアS1に対して2つのリーフノードL1−1及びL1−2がアタッチされており、スーパーピアS2にはリーフノードがアタッチされておらず、スーパーピアS3にリーフノードL3−1がアタッチされており、スーパーピアS4にリーフノードL4−1がアタッチされており、スーパーピアS5にリーフノードL5−1がアタッチされており、スーパーピアS6にリーフノードL6−1がアタッチされており、スーパーピアS7に対してリーフノードL7−1及びL7−2がアタッチされているシナリオを示している。N1は、スーパーピアによって形成されたスーパーピアオーバーレイネットワーク又は第1階層レベルのオーバーレイネットワークを表している。N2は、リーフノードを各スーパーピアへアタッチするためのリーフノードオーバーレイリンク又は第2階層レベルのオーバーレイリンクのサンプルを表している。図3Aに示した実施形態に関して、キー空間は0から799まで定義され、キー空間はスーパーピアの間で等距離になるようにパーティショニングされ、8つのスーパーピアのオーバーレイネットワーク識別子はキー値に対応することをさらに仮定する。換言すると、Chord型リング構造によれば、スーパーピアS0は、上述したように、同時にキー値0に対応しているオーバーレイネットワーク識別子0を有し、スーパーピアS1はオーバーレイネットワーク識別子100を有し、スーパーリクエスト2はオーバーレイネットワーク識別子200を有し、スーパーピアS3はオーバーレイネットワーク識別子300を有し、スーパーピアS4はオーバーレイネットワーク識別子400を有し、スーパーピアS5はオーバーレイネットワーク識別子500を有し、スーパーピアS6はオーバーレイネットワーク識別子600を有し、スーパーピアS7はオーバーレイネットワーク識別子700を有する。Chord型リング構造によれば、スーパーピアS1はキー区分1〜99を担当し、スーパーピアS2はキー区分100〜199を担当し、以下同様である。したがって、図3Aに示したChord型リングは、Chord型リングシステムのブロック的な区分を表しており、かつ、同様に、一般的には、時計回りのルーティング概念を表している。しかし、図7をもう一度参照すると、ルーティング自体は様々な方法で実行され、必ずしも図3Aに示されているようなリング構造に限定されないことに留意されたい。一実施形態では、ルーティングは、各スーパーピアが自己の時計回り又は反時計回りの直ぐ隣のスーパーピアへのルートだけを選定するように限定することができ、例えば、スーパーピアS2はスーパーピアS1又はスーパーピアS3へのルートだけを選定することになる。しかし、好ましい実施形態では、スーパーピアS2のルーティングテーブルはその他のスーパーピアも有している。1つの典型的な例では、スーパーピアS2のルーティングテーブルは、回復力の理由から、例えば直ぐ隣のスーパーピアS1又はスーパーピアS3の一方が障害又は離脱した場合に、自己の直ぐ隣のスーパーピアの直ぐ隣のスーパーピアとして、スーパーピアS0及びスーパーピアS4のオーバーレイネットワーク識別子をさらに含む。他の実施形態では、スーパーピアS2のルーティングテーブルは、スーパーピアS7のネットワーク識別子をさらに含むことができる。ルーティングテーブルをセットアップするための様々な可能性は当業者にとって既知なので、これ以上詳細には説明しない。
図3Aは、特に、新しいリーフノードLNがピアツーピアネットワークへ参加することを望む状況を示している。
新しいリーフノードLNがピアツーピアネットワークへの参加を望むとき、新しいリーフノードLNは、図2A及び図2Bに基づいて説明したように、ジョイン要求メッセージという形でアタッチ要求メッセージを例えばスーパーピアS2へ送信する。
その後、スーパーピアS2は、自己のトラフィック負荷値を、例えば近傍のスーパーピアS0、S1、S3及びS4のトラフィック負荷値を含む自己のルーティングテーブルの中のトラフィック負荷値と比較する。その後、この比較に基づいてスーパーピアS2は、新しいリーフノードLNを自己へアタッチすべきか、又は最小トラフィック負荷値が関連付けられているスーパーピアへアタッチ要求メッセージを送信すべきかを決定する。
スーパーピアS2の自己のトラフィック負荷値が、スーパーピアS0、S1、S3及びS4のそれぞれの負荷トラフィック値以下である場合、新しいリーフノードLNはスーパーピアS2へアタッチされることになる。
例えば、スーパーピアS3がスーパーピアS0、S1、S3、S4のうちの最小トラフィック負荷値を有していて、スーパーピアS2のトラフィック負荷値がスーパーピアS3に関連付けられている最小トラフィック負荷値より大きい場合、スーパーピアS2は新しいリーフノードLNのアタッチ要求メッセージをスーパーピアS3へ転送する。
スーパーピアはスーパーピアS2と同じステップを実行する。例えば、スーパーピアS3の自己のトラフィック負荷値がスーパーピアS1、S2、S4、S5のトラフィック負荷値以下であるならば、図3Bに示したように新しいリーフノードを自己へアタッチし、これに応じて、アタッチ確認メッセージをリーフノードLNへ送信することを決定する。
典型的に、モバイルピアツーピアネットワークは、様々な性能すなわち様々な処理パワー又は帯域幅を有するピアを備えている。したがって、好ましい実施形態では、各スーパーピアは、自己の実際の絶対負荷トラフィック値を測定するだけでなく、図2A及び図2Bに基づいて説明した負荷トラフィック値の比較のため、相対負荷トラフィック値も決定する。このため、各ピアの個別の能力に依存して、最大負荷トラフィック値が各ピアに関連付けられる。よって、相対負荷トラフィック値は、例えば、実際の絶対トラフィック負荷値と最大トラフィック負荷値との間の比として決定される。よって、ピアの様々な個別の能力が負荷を分散させるときに考慮される。
例えば、スーパーピアS2がスーパーピアS3と同数のクエリを受信するが、スーパーピアS3と同じ性能ではない場合、すなわち、スーパーピアS2の方が小さい最大トラフィック負荷値を有する場合、スーパーピアS2の相対負荷トラフィック値はスーパーピアS3の相対トラフィック負荷値より大きいので、スーパーピアS2は新しいリーフノードLNのアタッチ要求メッセージをスーパーピアS3へルーティングする(スーパーピアS3がスーパーピアS0〜S4の中で最小の相対トラフィック負荷値を有する場合)。負荷バランシングスキームの実施は、絶対負荷トラフィック値と相対負荷トラフィック値とのいずれが使用されるかとは無関係である。
図3Bは、新しいリーフノードLNがリーフノードL3−2としてスーパーピアS3へアタッチされた後の、図3Aの階層型ピアツーピアオーバーレイネットワークを示している。
スーパーピアの間でリーフノードの数を均等に分散させることを目的とする負荷バランシングスキームとは異なり、本発明による負荷バランシングの実施形態は、トラフィック負荷値に基づいて決定する。よって、本発明の実施形態は、例えば全リーフノード及び全スーパーピアが同数のクエリ及びルーティングを開始するか、又は取り扱わなければならないかなり理論的な事例において、リーフノードのスーパーピアへの均等な分散をもたらすことができる。しかし、現実のネットワーク環境では、これは通常は事実とは異なるので、本発明の実施形態は、通常、リーフノードの数が各スーパーピアへ均等に分散されているようなピアツーピアシステムをもたらさない。
以下に、本アプローチの質を測定するために行った一連のシミュレーションの結果を示す。シミュレータは、ソフトウェアパッケージMathematicaにおいて実施した。これはイベント駆動型シミュレータである。ネットワーク動作中に発生したイベントはグローバルに保持されているイベントキューに記録され、イベントハンドラがイベントの発生時刻に処理する。あらゆるイベントは、例えば単純なルーティングメッセージ、クエリ、リーフ参加などのようなタイプと、ターゲットすなわちイベントを取り扱うノードとを有する。イベント発生時刻は、ノード間のレイテンシーによって駆動される。例えばあるノードが、対象のノードのイベント処理の結果としてメッセージを近傍ノードへルーティングするとき、近傍ノードのための新しいイベントが発生する。このイベントの時刻は現在時刻と2つのノード間のレイテンシーとの合計に等しい。
典型的なシミュレーションの実行は、初期化フェーズとクエリフェーズとの2つのフェーズからなる。初期化フェーズではChord型ネットワークが(リーフ無しで)セットアップされ、クエリフェーズにおいてクエリされる複数のキーが挿入される。キー長(key length)は、シミュレーションを通して20ビットに一定に保つ。ネットワークは完全には密集することがなく、すなわちピアの数は常に220よりずっと小さい。ピアのオーバーレイネットワーク識別子(ID)は2つの方法で発生させる。1つ目は、DHTにおいて通常と同じようにランダムに発生するという方法である。2つ目は、均等に拡散させ、すなわちネットワーク内にN個のピアがあると仮定すると、第k番目のピアのIDはk/N*220に最も近い整数であるという方法である。Chord型ネットワーク内のルーティングテーブルは2つの方法で構築できる。第一に、kというIDを有するノードのルーティングテーブル内の第i番目のエントリーは、k+2iに最も近いIDを有するノードを指し示す。第二に、第i番目のエントリーは、区間(k+2i,k+2i+1)内でランダムに選択されたノードを指し示す。
ネットワークを構築するために第二のストラテジーを選ぶ。その理由は、ルーティングテーブルに格納されるノードがより明確に区別でき、このことが提案された負荷バランシングアルゴリズムの質に影響を与えるからである。
クエリフェーズは、リーフノードの参加と、種々のノードからのクエリという、交互に行われる2つのサブフェーズからなる。リーフの到着はある特定のレートのポアソン過程として生じる。いかなる到着時においても、ネットワークへ参加するピアは、その時点での一連の全てのオフラインのリーフからランダムに選択される。リーフオンライン時間(ピアがネットワークに参加してから離脱するまでの時間)は、[5,10]分間という区間からランダムに導かれる。クエリ回数は、この場合も選択されたレートを有するポアソン過程としてノード毎に別々に生じる。よって、あらゆるリーフは、自己のクエリ回数及び自己のオンライン時間によって特徴付けられている。クエリされるキーは、ネットワークに記憶されている一連の全てのキーからランダムかつ一様に引き出される。これは、歪んだクエリ分散がシミュレーションでは考慮されなかったことを意味する。リーフに対し、クエリレートは、あるシミュレーションセットでは区間[1/60,1/20](毎分1回から3回のクエリ)の間で一様に分散し、別のシミュレーションセットでは[1/120,1/80]の間で一様に分散している。
ノードの負荷を保持するために、送信メッセージのリストがノード毎に保持される。ノードがメッセージを送信したときは常に、メッセージが送信された時刻がノードのトラフィックリストに付け加えられる。如何なる時点の如何なるノードの負荷も、時間によって分割されたこのノードのトラフィックリストの長さとして取得される。このように、負荷の測定を正確に維持することができる。品質の尺度として、ピア全体にわたる負荷の標準偏差を測定する。具体的には、絶対尺度で扱うために、負荷は最大負荷で正規化する。よって、区間[0,1]において正規化された一連の負荷が得られる。
図4は、スーパーピアキーがランダムに選択され、リーフノードの異なる2つのクエリレートを用いる上述のアルゴリズムと、(リーフノードをスーパーピアへランダムにアタッチさせる)というアルゴリズムの適用なしの3通りの場合の、リーフノード参加の総数(x軸)に対する負荷の標準偏差のグラフである。スーパーピアの数は1000個で一定である。このようにして、スーパーピアに対するリーフノードの比についての負荷バランシングの質の依存も測定した。より正確には、図4は、リーフノードの十分に大きなプールから5000個の参加(x軸)が順次発生し、これらの参加の25%、50%、75%及び100%が実行された後の負荷の標準偏差(y軸)を測定するというシナリオの結果を示している。グラフ410は区間[1/120,1/80]内のクエリレートに対する標準偏差の変化を示し、グラフ420は区間[1/60,1/20]内のクエリレートに対するスーパーピアトラフィック負荷値の標準偏差の変化を示し、プロット430は、提案されたアルゴリズムの性能のベンチマークとして、アルゴリズムを用いない場合のスーパーピアの低トラフィック値に対する標準偏差の変化を示している。偏差は、スーパーピアの総数が与えられた場合に、リーフノードの集団の大きさの減少関数であり、リーフノードの数が多くなるほど、負荷をより良好にバランシングできることは明らかである。
図5は、スーパーピアキーの一様な分散が仮定されているという点のみが異なり他は同じセッティングにおける結果を示している。
図4及び図5の結果は、ノードが自己のフィンガーすなわち自己の近傍の負荷を瞬時に監視できる場合に成り立つ。しかし、これは現実的ではない。その理由は、ノードが自己のフィンガーの負荷について知ることができる唯一の方法は、この情報を自己のフィンガーと定期的に交換することであるからである。
図6は、この周期の長さすなわちフィックスフィンガー周期長(秒単位)に標準偏差がどのように依存するかを示している。フィックスフィンガー周期は0から200秒まで変化している(x軸)。スーパーピアの数は1000個である。5000個の参加がシステム内で観察された後に結果を得た。グラフは、標準偏差がフィックスフィンガー周期の増加と共に僅かに増加することを明らかに示している。
以上の説明をまとめると、ピアツーピア(P2P)ネットワークは、一連のリソースを高速に見つけることができる自己組織性の分散型オーバーレイネットワークである。ピアツーピアネットワークは、どのようなものであっても参加しているノード間の物理的な接続性に依存するアプリケーション層オーバーレイネットワークとして実現される。P2Pネットワークによって対処できる基本的な問題は、自己の後続の高速ルックアップを可能にするピアの集合の間での一連のリソースの自己組織型分散である。
この問題を解決する有望なアプローチは、分散型ハッシュテーブル(DHT)としても知られている構造型P2Pネットワークの概念である。DHTでは、ピアは、キー空間からのキーにより特定される特定のリソースの部分集合を協働して管理する。これは以下の方法で行われる。各ピアはキー空間から取得されたキーと関連付けられる。ピアの集合が与えられると、ピアが関連付けられたパーティションのキーによって特定される全リソースを管理するように、各ピアのキーがキー空間のパーティションと関連付けられる。典型的には、キーパーティションは、適切なメトリックにおいてピアキーに最も近い全てのキーからなる。キーの近さは距離関数によって測定される。リソース要求を転送するため、ピアは、ピアとキーパーティションとの関連性についての情報を考慮して、ルーティングネットワークを形成する。ピアは、典型的には、近傍キーを有する全ピアへの短距離リンクと、さらに、一部の選択された遠いピアまでの少数の長距離リンクとを維持している。このようにして確立されたルーティングネットワークを使用して、ピアは、ルックアップするキーまでの距離を徹底的に削減しようとして、指示された通りに自己のルーティングテーブルにある他のピアへリソース要求を転送する。DHTの大半は、この構成及びルーティングアルゴリズムによって、ネットワークのサイズの対数(logarithmic)であるルーティングテーブルを使用することにより、ネットワークのサイズの対数である複数のメッセージのルックアップを達成する。
対象のピアツーピアアーキテクチャは、参加しているピアを2つのグループに分ける。1つは、分散型ハッシュテーブル(DHT)に編成されて第2のグループへのプロキシとしての役割を果たすスーパーピアである。もう1つは、スーパーピアへアタッチされてDHTに参加しないリーフノードである。
システムアーキテクチャを説明した後に、本発明の実施形態によって解決された問題を説明した。あらゆるスーパーピアが、ネットワーク動作によって発生したトラフィックのうちのおおよそ均一な部分を占めるようにするために、スーパーピアの間の負荷はどのように分散されるか?このことがとにかく重要である理由について最初に詳しく説明した。このことが重要である理由は、不均衡な負荷により過負荷状態のピアが故障する可能性があるからである。当然ながら、これにより保守及び障害回復のアルゴリズムを実行する必要があるので、システムに新たなオーバーヘッドを取り込む。最も極端なシナリオでは、ピア障害は累積的な影響を及ぼすことがあるので、システム全体が崩壊する。負荷が非常に歪む可能性があるので、負荷を平坦化させるために独立したアルゴリズムが必要であるという意味で、関連する問題があるか?通常、ピアキーは、ピア起動フェーズでキー空間からランダムに選択される。システム内に存在するドキュメントにインデックスを付けるために同じキー空間が使用され、ドキュメントの数はピアの数よりはるかに多いので、システムサイズは常にキー空間サイズより小さい。したがって、キー空間はピアの間でパーティショニングされなければならない。これらの区分のサイズは実質的に異なることがわかる。より大きなパーティションを対象とするピアは、他のピアのフィンガーである可能性がより高い。よって、より大きなパーティションを対象とするピアは、メッセージをルーティングするより高い確率を有する。したがって、負荷分散の歪みと、システム動作フェーズにおいてこの歪みを取り除くために別のアルゴリズムを利用する必要がある。
一般に、本発明は、どのようなピアツーピア通信システムにおいても役に立つ。このことは、特にモバイルピアツーピアアプリケーションにおいて通常期待されているように、性能が非常に異なるデバイスからできているハイブリッドシステムについて成り立つ。
上述したように階層型ピアツーピアシステムは、モバイルピアツーピア環境に特に適している。したがって、本発明の実施形態は、特にモバイルピアツーピア環境における負荷バランシングを改善することができる。
上述した実施形態はDHTシステムのようなChord型システムを使用しているが、その他のいかなる構造のピアツーピアプロトコルも同じ利点を達成するために使用することができる。
本発明の実施形態は、より安定していてかつより低コストのネットワーク動作をもたらすだけでなく、より高い障害回復力が得られる。よって、本発明の実施形態は、全体としてネットワークに強力な経済的効果がある。
さらに、本発明に係る方法のある実施要件に依存して、本発明に係る方法は、ハードウェアでもソフトウェアでも実施できる。デジタル記憶媒体、特に電子的に読み取り可能な制御信号が記憶されていて、本発明に係る方法が実行できるようにプログラマブルコンピュータシステムと協働できるディスク又はCDを使用して実施できる。したがって、一般には、本発明は、本発明に係る方法のうちの少なくとも1つをコンピュータに実行させるために構成されたプログラムコードが機械読み取り可能な担体に記憶されている、コンピュータプログラムプロダクトである。したがって、換言すると、本発明に係る方法は、本発明に係る方法をコンピュータに実行させるプログラムコードを有するコンピュータプログラムである。
階層型ピアツーピアシステムにおいてノードバランシングをサポートすることができる、本発明に係るスーパーピアの実施形態のブロック図である。 階層型ピアツーピアシステムにおける負荷バランシング方法の好ましい実施形態を擬似コードの形式で示す説明図である。 階層型ピアツーピアシステムにおいて負荷バランシングをサポートすることができるスーパーピアを動作させる方法の好ましい実施形態のフローチャートである。 スーパーピアがChord型リングを形成する、典型的な階層型分散ハッシュテーブルシステムを示す説明図である。 スーパーピアがChord型リングを形成する、典型的な階層型分散ハッシュテーブルシステムを示す説明図である。 スーパーピアキーがランダムに選択されたものであるときに、リーフノード参加の総数に対するトラフィック負荷の標準偏差の依存関係を示すグラフである。 スーパーピアキーが均等に拡散しているときに、リーフノード参加の総数に対するトラフィック負荷の標準偏差の依存関係を示すグラフである。 フィックスフィンガー周期長に対するトラフィック負荷の標準偏差の依存関係を示すグラフである。 ピアツーピアオーバーレイネットワークの典型的な階層構造と下層物理ネットワークを示す説明図である。 割当毎のスーパーピアと同数のリーフノードとを有し、各ノードが各スーパーピアへアタッチされている、階層型ピアツーピアシステムを示す説明図である。
符号の説明
100 スーパーピア
110 受信機
112 アタッチ要求メッセージ
116 他のメッセージ
120 送信機
122 転送アタッチ確認メッセージ
124 アタッチ確認メッセージ
130 処理ユニット
131 制御
132 移動アタッチ要求メッセージ
140 記憶ユニット

Claims (11)

  1. 1つ又は複数の他のスーパーピア(S0、S1、S3、S4、S5、S6、S7)を含む階層型オーバーレイピアツーピアネットワーク(N1)に参加するためのものであって、リーフノードオーバーレイリンク(N2)を通して前記スーパーピア(S0−S7)のうちのいずれかへリーフノード(LN)をアタッチさせることができるスーパーピア(100、S2)であって、
    前記リーフノード(LN)が前記階層型ピアツーピアネットワーク(N1)へのアタッチを要求していることを表すアタッチ要求メッセージ(112)を受信する受信機(110)と、
    前記リーフノード(LN)が前記スーパーピア(100)へアタッチされることを表すアタッチ確認メッセージ(124)を送信する送信機(120)と、
    前記アタッチ要求メッセージ(112)を受信したという通知(114)を前記受信機から受けて、前記スーパーピア(100、S2)のトラフィック負荷を表すトラフィック負荷値を、1つ又は複数の前記他のスーパーピア(S0、S1、S3、S4)のうちの少なくとも1つに関連付けられていてそのトラフィック負荷を表すトラフィック負荷値と比較し、前記スーパーピアのトラフィック負荷が前記他のスーパーピアのトラフィック負荷より小さいか、又は複数の前記他のスーパーピアのトラフィック負荷より小さいことが前記比較により判明した場合は、前記リーフノードが前記スーパーピア(100)とのリーフノードオーバーレイリンクを通して前記階層型ピアツーピアネットワークへアタッチされることを通知するために、前記送信機を制御(131)して前記アタッチ確認メッセージ(124)を送信させる処理ユニット(130)と
    を備えるスーパーピア(100、S2)。
  2. 前記スーパーピア(100、S2)のトラフィック負荷が前記他のスーパーピアのトラフィック負荷より大きいか、又は複数の前記他のスーパーピアのトラフィック負荷の最小値より大きいことが前記比較により判明した場合は、前記処理ユニット(130)が、前記他のスーパーピア又は複数の前記他のスーパーピア(S0、S1、S3、S4)のうちの1つへ転送アタッチ要求メッセージ(122)を送信させるために前記送信機(120)を制御(131)するものである、請求項1に記載のスーパーピア。
  3. 前記スーパーピア(100、S2)のトラフィック負荷が前記他のスーパーピアのトラフィック負荷より大きいか、又は複数の前記他のスーパーピアのトラフィック負荷の最小値より大きいことが前記比較により判明した場合は、前記処理ユニット(130)が、前記他のスーパーピア又は複数の前記他のスーパーピアのうち最小負荷トラフィック値(λmin)が関連付けられているスーパーピア(S3)へ前記転送アタッチ要求メッセージ(122)を送信させるために前記送信機(120)を制御(131)するものである、請求項1又は2に記載のスーパーピア。
  4. 前記処理ユニット(130)が、
    前記通知(114)を受けて、前記アタッチ要求メッセージ(112)に関連付けられている転送カウント(CFC)をチェックして、
    前記転送カウント(CFC)がある最大転送カウント(CFCmax)に等しいことが前記チェックにより判明した場合、又は前記スーパーピアのトラフィック負荷が前記他のスーパーピアのトラフィック負荷より小さいか、若しくは複数の前記他のスーパーピア(S0、S1、S3、S4)のトラフィック負荷より小さいことが前記比較により判明した場合は、前記送信機(120)を制御(131)して前記アタッチ確認メッセージ(124)を送信させ、
    さもなければ、前記送信機(120)が送信する前記転送アタッチ要求メッセージ(122)を得るために、前記アタッチ要求メッセージに関連付けられている前記転送カウント(CFC)をインクリメントするものである、
    請求項2に記載のスーパーピア。
  5. 1つ又は複数の前記他のスーパーピア(S0、S1、S3、S4)のうちの少なくとも1つのためのユニークなオーバーレイネットワーク識別子と、IPアドレスと、トラフィック負荷値とを有するルーティングテーブルを記憶する記憶ユニット(140)をさらに備え、
    ここで前記処理ユニット(130)が、トラフィック負荷値の前記比較と前記転送アタッチ要求メッセージ(122)の送信の制御とのために前記ルーティングテーブルを使用するものである、請求項2〜4のいずれか一項に記載のスーパーピア。
  6. 前記処理ユニット(130)が、前記スーパーピア(100)のトラフィック負荷を測定し、前記スーパーピア(100)の前記トラフィック負荷値をあるトラフィック負荷スレショルドと比較し、前記スーパーピア(100)へ現在アタッチされているリーフノードが複数の前記他のスーパーピアのうちのあるスーパーピアへとアタッチされるように前記リーフノードのアタッチの移動を開始するために、前記他のスーパーピア又は複数の前記他のスーパーピア(S0、S1、S3、S4)のうち最小トラフィック負荷値(λmin)が関連付けられているスーパーピアへ移動アタッチ要求メッセージ(132)を送信させるべく前記送信機(120)を制御するものである、請求項1〜5のいずれか一項に記載のスーパーピア。
  7. 前記トラフィック負荷値が、測定された絶対トラフィック負荷値をあるスーパーピア特有の最大トラフィック負荷値で除算することにより得られる相対トラフィック負荷値である、請求項1〜6のいずれか一項に記載のスーパーピア。
  8. 前記スーパーピアオーバーレイネットワーク(N1)が動的ハッシュテーブル(DHT)オーバーレイネットワークである、請求項1〜7のいずれか一項に記載のスーパーピア。
  9. 前記スーパーピアオーバーレイネットワーク(N1)が動的ハッシュテーブルChord型オーバーレイネットワークである、請求項1〜8のいずれか一項に記載のスーパーピア。
  10. 1つ又は複数の他のスーパーピア(S0、S1、S3、S4、S5、S6、S7)を含む階層型オーバーレイピアツーピアネットワーク(N1)に参加するためのものであって、リーフノードオーバーレイリンク(N2)を通して前記スーパーピア(S0−S7)のうちのいずれかへリーフノード(LN)をアタッチさせることができるスーパーピア(100、S2)を動作させる方法であって、
    前記リーフノード(LN)が前記階層型ピアツーピアネットワーク(N1)へのアタッチを要求していることを表すアタッチ要求メッセージ(112)を受信するステップと、
    前記スーパーピア(100、S2)のトラフィック負荷値を、1つ又は複数の前記他のスーパーピア(S0、S1、S3、S4)のうちの少なくとも1つに関連付けられていてそのトラフィック負荷を表すトラフィック負荷値と比較するステップと、
    前記スーパーピアのトラフィック負荷が前記他のスーパーピアのトラフィック負荷より小さいか、又は複数の前記他のスーパーピア(S0、S1、S3、S4)のトラフィック負荷より小さいことが前記比較により判明した場合は、前記リーフノードが前記スーパーピア(100)とのリーフノードオーバーレイリンク(N2)を通して前記階層型ピアツーピアネットワークへアタッチされることを通知するために、アタッチ確認メッセージ(124)を送信するステップと
    を含む方法。
  11. 請求項10に記載の方法をコンピュータに実行させるプログラムコードを有するコンピュータプログラム。
JP2007303962A 2006-11-23 2007-11-26 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法 Expired - Fee Related JP4533923B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP06024317A EP1926276B1 (en) 2006-11-23 2006-11-23 Load balancing in a peer-to-peer system

Publications (2)

Publication Number Publication Date
JP2008140388A true JP2008140388A (ja) 2008-06-19
JP4533923B2 JP4533923B2 (ja) 2010-09-01

Family

ID=37796892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007303962A Expired - Fee Related JP4533923B2 (ja) 2006-11-23 2007-11-26 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法

Country Status (3)

Country Link
EP (1) EP1926276B1 (ja)
JP (1) JP4533923B2 (ja)
DE (1) DE602006004073D1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996726B2 (en) 2008-06-19 2015-03-31 Qualcomm Incorporated Methods and apparatus for event distribution and routing in peer-to-peer overlay networks
JP6032199B2 (ja) * 2011-03-24 2016-11-24 日本電気株式会社 分散処理システム、分散処理装置、ルーティングテーブル作成方法及びプログラム記録媒体
US8443086B2 (en) 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
KR101534555B1 (ko) * 2013-06-25 2015-07-08 숭실대학교산학협력단 원형 메시 오버레이 생성 및 유지 방법
US10057337B2 (en) 2016-08-19 2018-08-21 AvaSure, LLC Video load balancing system for a peer-to-peer server network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197576A (ja) * 1992-01-17 1993-08-06 Nec Corp 計算機ネットワークシステム
JP2005502289A (ja) * 2001-09-06 2005-01-20 シーメンス アクチエンゲゼルシヤフト ディレクトリサービスを有するスケーラブルピアツーピアネットワーク
JP2006101277A (ja) * 2004-09-30 2006-04-13 Brother Ind Ltd 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等
JP2007535848A (ja) * 2004-04-30 2007-12-06 株式会社エヌ・ティ・ティ・ドコモ ゾーンベースのピアツーピア通信

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7627678B2 (en) * 2003-10-20 2009-12-01 Sony Computer Entertainment America Inc. Connecting a peer in a peer-to-peer relay network
US7460495B2 (en) * 2005-02-23 2008-12-02 Microsoft Corporation Serverless peer-to-peer multi-party real-time audio communication system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197576A (ja) * 1992-01-17 1993-08-06 Nec Corp 計算機ネットワークシステム
JP2005502289A (ja) * 2001-09-06 2005-01-20 シーメンス アクチエンゲゼルシヤフト ディレクトリサービスを有するスケーラブルピアツーピアネットワーク
JP2007535848A (ja) * 2004-04-30 2007-12-06 株式会社エヌ・ティ・ティ・ドコモ ゾーンベースのピアツーピア通信
JP2006101277A (ja) * 2004-09-30 2006-04-13 Brother Ind Ltd 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等

Also Published As

Publication number Publication date
EP1926276B1 (en) 2008-12-03
DE602006004073D1 (ja) 2009-01-15
JP4533923B2 (ja) 2010-09-01
EP1926276A1 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
JP4652435B2 (ja) 階層的ピアツーピア・ネットワークの最適運用
Pourebrahimi et al. A survey of peer-to-peer networks
US7788400B2 (en) Utilizing proximity information in an overlay network
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
KR101422213B1 (ko) 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법
Ren et al. SAT-Match: a self-adaptive topology matching method to achieve low lookup latency in structured P2P overlay networks
Zhong et al. The convergence-guaranteed random walk and its applications in peer-to-peer networks
JP4533923B2 (ja) 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法
Eberspächer et al. Structured p2p networks in mobile and fixed environments
Bertier et al. D2ht: The best of both worlds, integrating rps and dht
Vishnumurthy et al. A Comparison of Structured and Unstructured P2P Approaches to Heterogeneous Random Peer Selection.
Graffi et al. Skyeye. kom: An information management over-overlay for getting the oracle view on structured p2p systems
Zöls et al. The hybrid chord protocol: A peer-to-peer lookup service for context-aware mobile applications
Jin et al. Novel approaches to efficient flooding search in peer-to-peer networks
Al-Oqily et al. SORD: A fault-resilient service overlay for mediaport resource discovery
Tsoumakos et al. An adaptive probabilistic replication method for unstructured p2p networks
Setia Distributed Hash Tables (DHTs) Tapestry & Pastry
Takeda et al. New structured p2p network with dynamic load balancing scheme
Chen et al. P2P overlay networks of constant degree
Shena et al. Cycloid: A constant-degree and lookup-efficient P2P overlay network
Högqvist et al. Passive/active load balancing with informed node placement in dhts
Despotovic et al. An operator approach to popularity-based caching in dhts
Zhou et al. An effective pointer replication algorithm in P2P networks
Ktari et al. Exploiting power-law node degree distribution in chord overlays
Ktari et al. Empowering chord DHT overlays

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees