JP4681615B2 - ノードのワークロードの分割 - Google Patents
ノードのワークロードの分割 Download PDFInfo
- Publication number
- JP4681615B2 JP4681615B2 JP2007545560A JP2007545560A JP4681615B2 JP 4681615 B2 JP4681615 B2 JP 4681615B2 JP 2007545560 A JP2007545560 A JP 2007545560A JP 2007545560 A JP2007545560 A JP 2007545560A JP 4681615 B2 JP4681615 B2 JP 4681615B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- information service
- attribute
- service node
- workload
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/1085—Resource delivery mechanisms involving dynamic management of active down- or uploading connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1093—Some peer nodes performing special functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
より詳細には、本発明は、ネットワークのノードのワークロードを分割することに関する。
インターネット等の大きなネットワークは、多くのピアツーピアシステムのインフラストラクチャを提供することができ、今や、さまざまなサービスをユーザに提供するのに使用されている。
たとえば、ストリーミングおよびトランスコード等のメディアサービス、航空券の予約およびホテルの予約等の電子商取引のウェブサービス、または、計算およびデータのグリッドコンピューティングサービスが、大きなネットワークを介して利用可能であり得る。
サービスを発見する課題は、いくつかの要因によって複雑化されている。
たとえば、ピアツーピアファイル共有システムに使用される集中化(centralized)情報サービス等、このような発見を容易にするための集中化情報サービスが利用された場合、利用可能なサービス数およびユーザ数が増加しても、集中化情報サービスは容易に拡大しない。
加えて、各サービスは、変化し続け、情報サービスにおいて更新を受ける必要がある、たとえば負荷および待ち時間といったいくつかの動的な属性を有する。
所望の更新レートは、集中化情報サービスによって維持することができない。
また、情報サービスを最小のダウンタイムで提供するには、数人のシステムアドミニストレータがメンテナンスを行うことが必要となる場合があり、これは多大な費用を要する。
最後に、情報サービスは、より高速な応答時間のために局所性を考慮すべきである。
たとえば、所望のサービスの要求を含む問い合わせは、その問い合わせを最初に送信するノードの、ネットワークにおける近接したノードへ向けられるべきであり、問い合わせに対する応答として返されるサービスも、問い合わせを行ったノードにネットワークにおいて近接して存在すべきである。
一実施の形態によれば、ピアツーピアネットワークにおいて最高ワークロードを有するノードが、そのピアツーピアネットワークの一組のノードから特定される。
そのノードのワークロードは、分割アルゴリズムを使用して別のノードと分割される。
簡単にするために且つ例示の目的で、実施形態の原理を説明する。
しかしながら、当業者は、同じ原理が、すべてのタイプのネットワークシステムに等しく適用可能であり、且つ、すべてのタイプのネットワークシステムで実施できること、および、あらゆるこのような変形が、実施形態の真の趣旨および範囲から逸脱しないことを容易に認識するであろう。
その上、以下の詳細な説明では、添付図面が参照される。
添付図面は、特定の実施形態を示している。
実施形態の趣旨および範囲から逸脱することなく、電気的な変更、機械的な変更、論理的な変更、および構造的な変更を実施形態に対して行うことができる。
この情報サービスは、ネットワークを介して利用可能なサービスについての情報をユーザに提供する。
ユーザは、ネットワークを介して利用可能な所望のサービスについての情報を情報サービスに問い合わせる。
情報サービスは、所望のサービスを提供するように動作可能なネットワークのサービスノードのリストで応答することができる。
ノードが一時的なものである傾向を有する従来のピアツーピアネットワークと異なり、情報サービスノードは、短期間ピアツーピアネットワークに参加するのではなく、長期間ピアツーピアネットワークに留まる可能性が高いピアツーピアアーキテクチャの安定したノードである。
ピアツーピアネットワークは、分散アーキテクチャで情報サービスノードを組織化する一例であり、任意のタイプの分散アーキテクチャを使用できることが当業者には明らかであろう。
ピアツーピアネットワークのオーバーレイネットワークが、ネットワークにおいて利用可能なサービスの発見を容易にするために、分散情報サービスにおけるサービスについての問い合わせおよび情報を効率的にルーティングするのに使用される。
サービスの例には、トランスコード、言語翻訳、暗号化、画像修復および画像解析、エラー訂正、異なる言語へのコンテンツの変換等が含まれる。
また、1つのサービスは、複数のサービスで構成される場合がある。
たとえば、或るサービスの出力は別のサービスの入力となる場合があり、サービスを構成するのに使用される同じ数の中間サービスについて同様である。
構成されたサービスの一例には、ユーザが特定のエンドユーザデバイスで視聴できるフォーマットでストリーミングビデオを受信できるようなトランスコードサービスに入力されるビデオストリーミングサービスを含むメディアサービスが含まれ得る。
グリッドコンピューティングサービスは、コンピュータ資源の共有を包含することができる。
グリッドコンピューティングサービスによって、たとえば、ユーザは、アプリケーション要件等の仕様に基づいてコンピューティングサービスにアクセスすることが可能になる。
図1は、ユーザノード110とサービスノード120と情報サービスノード130とを含むネットワーク100を示している。
ネットワーク100の一例には、サービスがユーザに利用可能とされるインターネット等の大規模ネットワークが含まれる。
しかしながら、実施形態は、サービスを提供するより小さなネットワークで実施してもよい。
ユーザノードには、サービスを受信するように動作可能なあらゆるノードが含まれる。
通常、ユーザノードは、ユーザが所望するサービスがネットワーク100において利用可能であるか否か、および、そのサービスが利用可能である場合に、そのサービスを受信するためにどのサービスノードと連絡するかを判断するための問い合わせを情報サービスにサブミットする。
サービスノード120には、サービスを提供するように動作可能なノードが含まれる。
ユーザノードは、情報サービスに問い合わせることによって所望のサービスを提供するように動作可能なサービスノードを特定した後、所望のサービスを提供するサービスノードからサービスを受信する。
ノードとは、ネットワークを介してメッセージを送信および/または受信でき、且つ、通常は或るタイプのデータ処理を実行するように動作可能であるあらゆるデバイスである。
ノードの例には、ルータ、サーバ、およびエンドユーザデバイスが含まれる。
エンドユーザデバイスは、PDA、パーソナルコンピュータ、ラップトップ、および携帯電話等である。
情報サービスノード130は、ネットワーク100においてサービスの発見を可能にする。
情報サービスノード130は、サービスの発見に加えて、Sujoy Basu他による「Splitting Workload Of A Node」という発明の名称の同時係属中の米国特許出願(代理人整理番号第200500031−1号)およびSujoy Basu他による「Determining Highest Workloads For Nodes In A Network」という発明の名称の同時係属中の米国特許出願(代理人整理番号第200500030−1号)に記載されたいくつかの技法を使用して、それらの情報サービスノード間でワークロードをバランスさせる。
これらの米国特許出願の双方は、その全内容が参照により援用される。
2つの重要な機能は、利用可能なサービスについての情報を記憶すること、および利用可能なサービスについての問い合わせに対して応答することを含む。
情報サービスノード130は、ネットワーク100における、図2に示すピアツーピアネットワーク200に設けられる。
ピアツーピアネットワーク200、および、ピアツーピアネットワーク200のオーバーレイネットワーク210は、とりわけ、情報サービスノード130にサービスについての情報を記憶すること、情報サービスノード130間でルーティングを行うこと、および問い合わせに対して応答するために使用される。
オーバーレイネットワーク210は、ピアツーピアネットワーク200の論理表現であり、以下で詳述するように、サービスを定義するために使用される属性および属性範囲に基づいて、問い合わせおよびサービス情報を効率的にルーティングするように動作可能である。
図2は、ピアツーピアネットワーク200が情報サービスノード130を含むこと、並びに、ユーザノード110およびサービスノード120が必要に応じてピアツーピアネットワーク200の情報サービスノード130と通信することを示す目的で、ネットワーク100の中央に位置する情報サービスノード130、並びに、オーバーレイネットワーク210の周囲に設けられたユーザノード110およびサービスノード120を示している。
待ち時間(たとえば、ユーザノードが問い合わせ応答に対する応答を得るのに要する時間の長さ)を最小にするために、情報サービスノード130は、ネットワーク100のいくつかの異なるエリアに設けてもよい。
サービスは、さまざまなサービス属性の値を指定することによって特徴付けられる。
たとえば、コンピューティングサービスは、オペレーティングシステムおよびアプリケーション、物理メモリの量、ディスク容量、およびネットワーク帯域幅等の属性の値によって特徴付けられてもよい。
各情報サービスノードは、属性の1つまたは複数の一定の一組の値の追跡を担当する。
追跡されるすべての属性の数組の属性値を組み合わせることによって、その情報サービスノードによって追跡される属性部分空間が形成される。
属性空間300は、ピアツーピアネットワーク100の利用可能なサービスについてのすべての情報を含む。
属性空間300は、情報サービスに記憶された情報の論理表現である。
図3には、例示の目的で、3つの情報サービスノード130a〜130cのみ示す。
情報サービスノード130のそれぞれには、属性空間300の属性部分空間の担当が割り当てられる。
各属性部分空間は、特定の属性および属性値に関連付けられる。
情報サービスにおいて、サービスは、サービスによって変化する所定の属性および属性値により定義される。
属性および属性値は、情報サービスノード130のそれぞれに割り当てられる。
サービスは、1つの情報サービスノードの1つの属性部分空間内に分類されるように定められ、したがって、そのサービスの属性および属性値が、情報サービスノードの属性部分空間に割り当てられた属性および属性値と一致する場合、そのサービスについての情報は、最終的に、その情報サービスノードに記憶される。
たとえば、属性部分空間は、特定の属性の属性値を含むことができる。
或るサービスが、或る属性部分空間の属性値と交わる1つまたは複数の属性値を使用して定義される場合、そのサービスは、その属性部分空間内に分類することができる。
属性部分空間をさらに説明する一例は以下の通りである。
ネットワーク100におけるすべてのサービスを定義するための所定の属性のリストは、メモリ、ディスク容量、平均負荷、オペレーティングシステム、アプリケーション、サービスアップタイム、および応答時間を含んでもよい。
グリッドコンピューティングサービスは、コンピュータ資源の共有を含んでもよい。
グリッドコンピューティングサービス(たとえばグリッドコンピューティングサービス1)は、共有できるコンピュータ資源に基づいて定義することができる。
グリッドコンピューティングサービス1は、以下の属性値を使用して定義される。
メモリ:1GB,
ディスク容量:2.5〜5GB,
オペレーティングシステム:Linux2.4,
平均負荷:0,
アプリケーション:Maya、Renderman,
サービスアップタイム:99.5%,
応答時間:≦20ms,
グリッドコンピューティングサービス1の広告310は、表1の属性値を含み、情報サービスノード130aに記憶される。
その理由は、情報サービスノード130aが、メモリ属性値≦1GBを有するすべての広告を記憶するからである。
ネットワーク100のすべてのサービスを定義するために所定の一組の属性を使用してもよい。
サービスノード120のそれぞれは、その所定の一組の属性における属性のそれぞれについて属性値を測定するかまたは他の方法で決定する。
また、サービスノード120のそれぞれは、それらのノードの広告を情報サービスへ定期的に送信する。
オーバーレイネットワーク210は、広告が分類される属性部分空間を所有する適切な情報サービスノードへ広告を自動的にルーティングする。
グリッドコンピューティングサービス1についての上記に示した属性および属性値は、グリッドコンピューティングサービス1の広告130の情報の一例である。
たとえば、グリッドコンピューティングサービス1を提供するサービスノードは、表1に示すグリッドコンピューティングサービス1の属性値を定期的に測定するかまたは他の方法で決定し、属性値を含む広告310をオーバーレイネットワーク210へ送信して、その広告が分類される属性部分空間を所有する情報サービスノードに記憶する。
図3に示す例では、情報サービスノード130は、グリッドコンピューティングサービス1の広告310を情報サービスノード130aへルーティングした。
その理由は、情報サービスノード130aが、オーバーレイネットワーク210へ送信される、メモリ≦1GB内の属性値を有するサービスについてのすべての情報を記憶するからである。
すなわち、グリッドコンピューティングサービス1は、メモリ=属性の1GBの属性値を使用して定義され、1GBの属性値が交わる。
すなわち、1GBの属性値は、情報サービスノード130aの属性部分空間のメモリ≦1GBの属性範囲に含まれる。
このように、グリッドコンピューティングサービス1は、情報サービスノード130aの属性部分空間内に分類される。
利用可能なサービスを定義するのに他の属性を使用してもよいことが当業者に明らかであろう。
また、それらのサービスを定義するのに或る所定の一組の属性を使用することもできる。
しかしながら、各サービスは、異なる属性値を有してもよい。
これらの異なる属性値は、定期的に測定されて、対応する属性部分空間を有する情報サービスノードに記憶される。
たとえば、図2に示すオーバーレイネットワーク210は、メモリ>1GBおよびディスク容量=2GBの属性を有するサービスの要求を含む、図3に示す問い合わせ320を受信する場合がある。
問い合わせ320は、情報サービスノード130bによって所有される属性部分空間に分類される。
したがって、問い合わせ320は、オーバーレイネットワーク210を通じて情報サービスノード130bへルーティングされる。
問い合わせ320は、情報サービスノード130bへ自動的にルーティングされ且つ情報サービスノード130bに記憶され、情報サービスノード130bは、情報サービスノード130bに記憶された広告を探索して、あらゆる一致するものを、サービスを要求したノードへ送信することにより、この問い合わせに応答する。
範囲問い合わせは、所望のサービスを特定する1つまたは複数の属性範囲を含む。
情報サービスノード130は、オーバーレイネットワーク210を使用して、範囲問い合わせを、属性値の範囲を含む属性部分空間へ、または問い合わせの属性値の範囲と交わる属性部分空間へルーティングするように動作可能である。
加えて、問い合わせは、複数の属性範囲を含むことができ、問い合わせは、属性範囲を含む属性部分空間または属性範囲と交わる属性部分空間を有する2つ以上の情報サービスノードへルーティングすることができる。
図4は、情報サービスノード130b等の情報サービスノードに記憶された情報の一部の一例を示している。
情報サービスノード130bは、ストレージキャッシュ410、オーバーレイルーティング表420、およびレプリカロケーションキャッシュ440を含む。
ストレージキャッシュ410は、ローカルな問い合わせ401およびグローバルな問い合わせ402を記憶する。
また、ストレージキャッシュ410は、ローカルな広告405およびグローバルな広告406も記憶する。
グローバルな問い合わせ402には、オーバーレイネットワーク210を通じて情報サービスノード130bへルーティングされる問い合わせが含まれる。
その理由は、問い合わせは、情報ストレージノード130bによって所有される属性部分空間に分類されるからである。
図3に示す問い合わせ320は、グローバルな問い合わせの一例である。
たとえば、情報サービスノード130aは、問い合わせを受信して、その問い合わせを、オーバーレイネットワーク210にあるその宛先に向けて転送することができる。
オーバーレイネットワーク210は、問い合わせが分類される属性部分空間を所有する情報サービスノードを含むことができる。
問い合わせをその宛先に向けて転送する前に、問い合わせは、ストレージキャッシュ410にローカルにキャッシュされる。
また、情報サービスノード130bは、問い合わせをその宛先に向けて転送する前に、ストレージキャッシュ410に記憶されたローカルな広告405を探索して、問い合わせと一致するものが見つかるか否かを判断する。
一致するものが見つかった場合、情報サービスノード130bは、たとえば、サービスを要求したノードおよび関連するサービスノードへ一致する広告を送信することによって、その問い合わせに応答する。
宛先は、サービスを要求したノードにより近いサービスノードによって提供される、問い合わせと一致するサービスの広告を含む場合があることから、情報サービスノード130bは、問い合わせをその宛先に向けて引き続きルーティングする場合がある。
或いは、情報サービスノード130bは、一致するものがローカルにキャッシュされている場合に、問い合わせを転送しない場合がある。
その理由は、それらの広告が、情報ストレージノード130bによって所有される属性部分空間に分類されるからである。
図3に示す広告310は、情報サービスノード130aのグローバルな広告の一例である。
たとえば、情報サービスノード130aは、広告を受信して、その広告をその宛先に向けて転送することができる。
これらの広告は、ストレージキャッシュ410にローカルにキャッシュされ、一致するものがローカルキャッシュに見つかった場合に、問い合わせに対するより高速な応答時間を提供するために探索することができる。
オーバーレイルーティング表420は、以下のフィールド、すなわち、レベル421、IPアドレス422、確率423、および属性範囲424を含む。
レベル421は、一般に、情報サービスノード130bが自身のワークロードを別の情報サービスと分割した回数に関連付けられている。
情報サービス130bが自身のワークロードを別の情報サービスノードと分割する時、情報サービスノード130bのルーティング表の新たなエントリーが、ルーティング表における既存の最高レベルよりも大きなレベルに作成される。
たとえば、エントリー431および432は、情報サービスノード130bが自身のワークロードを情報サービスノード130cと分割した時にレベル1に作成されたものである。
エントリー433は、情報サービスノード130bがその後自身のワークロードを情報サービスノード130dと分割した時にレベル2に作成されたものである。
ワークロードの分割は、情報サービスノードが、オーバーレイネットワーク210の他の情報サービスノードと比較して高いワークロードを有すると判断された時に行うことができる。
確率423は、情報サービスノードが所望のデータを有する確率を示す。
たとえば、エントリー430は、情報サービスノード130aが、メモリ≦1GBを有する広告を常に記憶していることを示し、エントリー431は、情報サービスノード130cが、ディスク容量≦2GBを有する広告を常に記憶していることを示す。
一方、情報サービスノード130cが、ディスク容量≦5GBを有する広告を記憶している確率は50%である。
ルーティング表にエントリーを生成することおよび確率は、上記で参照により援用された米国特許出願にさらに詳細に記載されている。
たとえば、情報サービスノード130bは、広告を受信して、その広告がメモリ属性<1GBを有するものと判断した場合、エントリー430を使用して、その広告をその次の宛先、たとえば情報サービスノード130aへルーティングする。
情報サービスノード130aのIPアドレスは、エントリー430のIPアドレスフィールドに設けることができ、情報サービスノード130bは、IPルーティングを使用して、メッセージをネットワーク200の情報サービスノード130aへ送信する。
レプリカとは、情報サービスノードのコピーである。
たとえば、オリジナルの情報サービスノードが、ネットワーク100の或るエリアのユーザノードによって頻繁に連絡されていたと判断された場合、および/または、オリジナルの情報サービスノードからの、問い合わせに対する応答等のメッセージを受信するユーザノードが、情報サービスノードへの長い待ち時間を経験し続けていたと判断された場合、情報サービスノードをネットワーク100の新たなロケーションに複製することができる。
情報サービスノード130bは、レプリカロケーションキャッシュ440の情報を使用して、待ち時間を削減するためにネットワーク100の別のエリアにレプリカを追加するか否かを判断することができる。
図5は、オーバーレイネットワーク210で問い合わせ501をルーティングする一例を示している。
ユーザノード110aは、問い合わせ501を、オーバーレイネットワーク210の情報サービスノード、たとえば情報サービスノード130aへ送信する。
一例では、ユーザノード110aがオーバーレイネットワーク210において最初に連絡を取る情報サービスノードは、ネットワーク近接性に基づいて選択することができる。
たとえば、ユーザノード110aがピアツーピアネットワーク100に参加する時の初期化ステップの期間中、ユーザノード110aは、ユーザノード110aにネットワークにおいて極めて近接した情報サービスノードのIPアドレスを示すメッセージをその情報サービスノードから受信する。
待ち時間、ホップ数等のネットワークメトリックに基づき測定された距離を使用してノードのロケーション情報を決定する一例は、2004年1月30日に出願されたZhichen Xu他による「Selecting Nodes Close To Another Node In A Network Using Location Information For The Nodes」という発明の名称の米国特許出願第10/767,285号に記載されている。
この米国特許出願は、本出願の譲受人に譲渡されている。
ロケーション情報は、ネットワークの他のノードへのネットワーク近接性を判断するのに使用され、最も近い情報サービスノードを選択するのに使用することができる。
ネットワークのノードの距離およびロケーション情報を決定するための他の技法も使用することができる。
問い合わせ501は、ユーザノード110aが所望するサービスを定義する属性値を含む。
属性値は、範囲の場合も単一の値の場合もある。
この例では、問い合わせ501は以下の属性値を含む。
メモリ:2GB,
ディスク容量:10GB,
オペレーティングシステム:Linux2.4,
応答時間:50〜100ms,
情報サービスノード130aの属性部分空間は、メモリ≦1GBを含む。
問い合わせ501は、メモリについて2GBの属性値を含む。
この2GBの属性値は、情報サービスノード130aの属性部分空間のメモリ≦1GBの属性範囲に含まれず、したがって、問い合わせ501は、情報サービスノード130aの属性部分空間に分類されない。
たとえば、情報サービスノード130aは、最低レベルのエントリー、たとえばエントリー0から開始して、問い合わせ501の属性値と交わる属性値を含むエントリーを求めて自身のルーティング表を探索する。
レベル0、情報サービスノード130bのIPアドレス、1の確率、およびメモリ>1GBを含むエントリー510が示されている。
エントリー510に基づいて、情報サービスノード130aは、問い合わせ501を情報サービスノード130bへ送信する。
情報サービスノード130bの属性部分空間は、問い合わせ501で指定された50〜100msの応答時間範囲に含まれない応答時間<20msを含む。
したがって、情報サービスノード130dは、自身のルーティング表を探索して、たとえばエントリー511を見つける。
エントリー511は、情報サービスノード130dを特定し、問い合わせ501は、情報サービスノード130dへ送信される。
情報サービスノード130dは、問い合わせ501の属性値を含む属性部分空間を有し、したがって、問い合わせ501は、その属性部分空間に分類される。
情報サービスノード130aは、自身のグローバルキャッシュに記憶されたいずれかの広告が問い合わせを満たすか否かを判断する。
たとえば、サービスは、当該サービスが一致するものであるとみなされるためには、問い合わせ501で指定されたすべての属性値を有することを必要とし得る。
一致するものが見つかった場合、情報サービスノード130aは、たとえばサービスを提供するサービスノードのIPアドレスを含む広告をユーザノード110aへ送信することによって問い合わせ501に応答する。
また、情報サービスノード130aは、広告のために、ユーザノード110aが広告に記載されたサービスを要求していることを示すメッセージを、ユーザノード110aのIPアドレスと共にサービスノードへ送信することもできる。
問い合わせ501も、情報サービスノード130cのグローバルキャッシュに記憶される。
また、情報サービスノード130aおよび130bは、問い合わせを転送する前に、自身のローカルキャッシュに記憶されたいずれかの広告が問い合わせ501を満たすか否かを判断することもできる。
一致するものが見つかった場合、情報サービスノード130aは、たとえばサービスを提供するサービスノードのIPアドレスを含む広告をユーザノード110aへ送信することによって問い合わせ501に応答することができる。
また、情報サービスノード130aは、ユーザノード110aが広告のサービスを要求していることを示すメッセージを、ユーザノード110aのIPアドレスと共に、広告に記載されたサービスを提供するサービスノードへ送信することもできる。
問い合わせ501は、問い合わせ501に一致する広告を含み得る他の情報サービスノードへ引き続きルーティングされる場合がある。
たとえば、別の情報サービスノードは、以下の属性部分空間、すなわち、メモリ>1GB、ディスク容量>5GB、応答時間≧20ms、およびLinux1.0〜2.5を含むオペレーティングシステム、を含む場合がある。
問い合わせ501は、上述した属性部分空間にも分類されることから、情報サービスノード130dは、その属性部分空間を含む情報サービスノードへ問い合わせ501をルーティングすることができる。
したがって、ユーザノード110aは、自身のローカルキャッシュで一致するものを見つけた情報サービスノードを含む複数の情報サービスノードから探索結果を受信する場合があり、ユーザノード110aは、所望のサービスを受信するためのサービスノードを選択することができる。
問い合わせ501は、属性の応答時間について、属性値の範囲50〜100msを含む。
問い合わせ501は、1つまたは複数の範囲を含むことができ、その範囲と交わる情報サービスノードへルーティングされる。
たとえば、属性値50〜100msのいずれかを含む属性部分空間へ問い合わせ501をルーティングすることができる。
広告は、オーバーレイネットワーク210において問い合わせと同様にルーティングされる。
サービスノード120は、自身の属性を定期的に測定して、測定された属性を含む自身の広告をオーバーレイネットワーク210へ送信する。
各広告は、所定の一組の属性における属性ごとに属性値または属性値の範囲を含んでもよい。
所定の一組の属性の一例は、メモリ、ディスク容量、オペレーティングシステム、サービスを提供するサービスノードの平均負荷、アプリケーション、サービスアップタイム、およびサービスを提供する情報サービスノードの応答時間を含む。
広告601は以下のものを含む。
メモリ:1GB,
ディスク容量:2.5〜5GB,
オペレーティングシステム:Linux2.4,
平均負荷:0,
アプリケーション:Maya、Renderman,
サービスアップタイム:99.5%,
応答時間:≦20ms,
広告601はメモリ>1GBを有し、且つ、情報サービスノード130aの属性部分空間はメモリ≦1GBを含むので、広告601は、情報サービスノード130aによって所有される属性部分空間に分類されない。
したがって、情報サービスノード130aは、自身のルーティング表のエントリー610から情報サービスノード130bを特定する。
たとえば、情報サービスノード130bは、最低レベルのエントリーから開始して、広告601の属性値と交わる属性値を含むエントリーを求めて自身のルーティング表を探索する。
エントリー610は、情報サービスノード130bを特定し、広告601は、情報サービスノード130bへ送信される。
広告601のディスク容量は5GB以下であるので、広告601は、情報サービスノード130bによって所有される属性部分空間に分類されない。
情報サービスノード130bは、ディスク容量≦5GBの属性値を含む自身のルーティング表のエントリー611から情報サービスノード130cを特定する。
広告601は、情報サービスノード130cの属性部分空間に分類され、情報サービスノード130cに記憶される。
広告601を転送する前に、情報サービスノード130aおよび130bは、広告601を自身のローカルキャッシュに記憶する。
加えて、情報サービスノード130cは、自身のグローバルキャッシュに記憶するために広告601をコピーすることができ、広告601が分類される属性部分空間を含む他の情報サービスノードへ広告601を転送することができる。
ワークロードは、図2に示すオーバーレイネットワーク210の情報サービスノード130のそれぞれによって定期的に測定される。
ワークロードは、1つまたは複数のメトリックから計算することができる。
これらのメトリックには、記憶された広告の個数、処理された問い合わせの個数、問い合わせを処理する平均待ち時間、たとえば毎秒処理される問い合わせ等のスループット等が含まれるが、これらに限定されるものではない。
各エポックは、交換フェーズおよび/または普及(dissemination)フェーズが実行される期間を含んでもよい。
エポックカウンタまたは次のエポックの開始時刻を上位Kリストに含めてもよい。
エポックカウンタまたは次のエポックの開始時刻は、情報サービスノードが、その情報サービスノードによって受信されたリストが現在のエポックについてのものであるか否かを判断するのに使用することができる。
交換フェーズの期間中、上位K個のノードのリストが、情報サービスノード130で構成されたサービスツリーの上方にルーティングされる。
サービスツリーの最上位にはリーダノードがある。
リーダノードは、事前に選択された情報サービスノードとしてもよい。
上位Kリストが、情報サービスノード130のそれぞれを通じてルーティングされる時、各情報サービスノードは、自身の測定されたワークロードを上位Kリストの他のワークロードと比較する。
上位Kリストを受信した情報サービスノードのワークロードが、上位Kリストの別のワークロードよりも大きい場合、その情報サービスノードは、自身のワークロードを上位Kリストに含め、場合により、それによりも小さなワークロードは置き換えられる。
上位Kリストは、所定の個数であるK個のワークロードを含むことができる。
したがって、上位Kリストが含むワークロードがK個よりも少ない場合、情報サービスノードは、自身のワークロードを上位Kリストに含める。
また、上位Kリストは、最初に、いくつかの上位Kリストで構成することもできる。
たとえば、情報サービスノード130を含むサービスツリーの各リーフが、上位Kリストを創設する(originate)ことができる。
これらの上位Kリストは、いくつかの上位Kリストを受信する情報サービスノードで結合することができる。
最終的に、リーダノード710が単一の上位Kリストを編集する。
最低レベルベクトルは、オーバーレイネットワーク210のL個の最低ルーティング表レベルを含む。
最低レベルベクトルが情報サービスノード130のそれぞれを通じてルーティングされる時、各情報サービスノードは、自身のルーティング表の最高レベルを、最低レベルベクトルの他の値と比較する。
最低レベルベクトルを受信した情報サービスノードのルーティング表の最高レベルが、最低レベルベクトルの別の値よりも小さい場合、その情報サービスノードは、自身の最高レベルを最低レベルベクトルに含め、場合により、それよりも大きな値が置き換えられる。
最低レベルベクトルは、所定の個数であるL個の値を含むことができる。
したがって、最低レベルベクトルが含む値がL個よりも少ない場合、情報サービスノードは、自身の最高レベルを最低レベルベクトルに含める。
また、最低レベルベクトルは、最初に、いくつかの最低レベルベクトルで構成することもできる。
たとえば、情報サービスノード130を含むサービスツリーの各リーフが、最低レベルベクトルを創設することができる。
最低レベルベクトルは、いくつかの最低レベルベクトルを受信する情報サービスノードにおいて結合することができる。
最終的に、リーダノード701がL個の値を含む単一の最低レベルベクトルを編集する。
最高レベルが、情報サービスノード130のそれぞれを通じてルーティングされる時、各情報サービスノードは、自身のルーティング表の最高レベルを受信した値と比較する。
情報サービスノードのルーティング表の最高レベルが、受信した値よりも大きい場合、その情報サービスノードは、受信した値を自身の値に置き替える。
情報サービスノード130を含むサービスツリーの各リーフが、その最高レベルを創設することになる。
これらの値は、いくつかの最高レベル値を受信した情報サービスノードにおいて結合することができる。
最終的に、リーダノード701が単一の最高レベルを編集する。
最高ルーティング表レベルは、便宜のための、L最低レベルベクトルに含めることができ、オーバーレイネットワークを通じてL最低レベルベクトルと共に送信することができる。
上位Kリストを受信した情報サービスノードが上位Kリストに自身のワークロードを含めない場合であっても、識別子は含められる。
普及フェーズでは、上位Kリストは、これらの識別子を使用して情報サービスノード130のそれぞれを通じてサービスツリーの下方に送信される。
たとえば、上位Kリストは、各情報サービスノードが上位Kリストを受信した順序とは逆の順序で、情報サービスノード130のそれぞれへ送信される。
また、新たな情報サービスノードが情報サービスに参加する時、その新たな情報サービスノードは、ルーティング表を生成してその新たな情報サービスノードのグローバルキャッシュに広告および問い合わせを記憶することに加えて、最後のエポックにおいて測定されたワークロードを含む上位Kリストを受信する。
図7は、オーバーレイネットワーク210の情報サービスノード130a〜130dを含むサービスツリーの一部を示している。
リーダノード701は、情報サービスノード130aである。
交換フェーズの期間中、情報サービスノード130a〜130dは、自身のワークロードを測定する。
ワークロードの上位Kリストは、リーフ、たとえば情報サービスノード130dおよび130eからリーダノード701へサービスツリーの上方に送信される。
最低レベルベクトルは、サービスツリーのバランスを維持することを試みながら、ワークロード分割のための情報サービスノードを選択するのに使用することができる。
たとえば、オーバーレイネットワーク210の最高(最大)ルーティング表レベルと最低レベルベクトルの最小値との差がしきい値と比較される。
この差がしきい値よりも大きい場合、サービスツリーのバランスの維持を試みて、ワークロード分割用の、最小値を有する情報サービスノードを選択することができる。
したがって、オーバーレイネットワーク210の最高(最大)ルーティング表レベルと最低レベルベクトルの最小値との差をしきい値と比較することは、サービスツリーがどれだけ非対称になっているか、または、サービスツリーがどれだけバランスがとれているかを推定する一例である。
この推定に基づいて、情報サービスノードは、ワークロード分割用の情報サービスノードを選択して、サービスツリーのバランスをとることができる。
K個の最高ワークロードを含むオーバーレイネットワーク210のワークロードベクトルが結合されて、上位Kリストが形成される。
各ワークロードベクトルは、少なくとも、情報サービスノードの識別情報および測定されたワークロードを含む。
また、情報サービスノード130dおよび130eは、最低レベルベクトル720および721もそれぞれ生成する。
最低レベルベクトルは、その情報サービスノードのルーティング表における最高レベルを含む。
情報サービスノード130a〜130dの最高レベルの例は、図8A〜図8Dに示され、0、2、1、および2をそれぞれ含む。
最低レベルベクトルは、オーバーレイネットワーク210のK個の最低レベルを含むK最低レベルリストを形成するのに使用される。
K最低レベルリストは、オーバーレイネットワーク210の最高レベルを有する情報サービスノードの情報サービスノードIDおよびルーティング表レベルも含む。
たとえば、ワークロードベクトル710および711は、情報サービスノード130bへ送信された上位Kリストである。
Kが3であると仮定すると、情報サービスノード130bは、ワークロードベクトル710および711と自身のワークロードベクトルとを結合して、上位Kリスト712にする。
上位Kリスト712は、リーダノード701に向けて送信され、情報サービスノード130cおよび/または130aのワークロードが、各情報サービスノードによって受信された上位Kリスト712のワークロードよりも高い場合には、それらの情報サービスノード130cおよび/または130aのワークロードを含めることができる。
情報サービスノード130bは、最低レベルベクトル720および721と自身の最低レベルベクトルとを結合して、K最低レベルリスト722にする。
K最低レベルリストは、リーダノード701に向けて送信され、情報サービスノード130cおよび/または130aのレベルが、K最低レベルリストのレベルよりも低い場合には、それらの情報サービスノードの最高ルーティング表レベルを含めることができる。
加えて、K最低レベルリストは、オーバーレイネットワーク210の最高レベルを有するサービスノードを含む。
最大レベルと、ワークロード分割のために最初に選択された情報サービスノードのレベルとの差をしきい値と比較して、最初に選択された情報サービスノードが、ワークロード分割のために選択されたもののままであるか否かを判断することができる。
この比較は、サービスツリーのバランスを維持するための一技法である。
たとえば、情報サービスノード130bが普及フェーズの期間中に上位Kリスト712を情報サービスノード130eおよび130dへ送信するように、順序情報730は、IPアドレス等の、情報サービスノード130eおよび130dの識別情報を含む。
順序情報の他の例には、情報サービスノード130bのIPアドレス等、情報サービスノード130cにおける順序情報731、および、情報サービスノード130cのIPアドレス等、情報サービス130aにおける順序情報732が含まれる。
したがって、普及フェーズの期間中、上位Kリスト712は、すべての情報サービスノード130へサービスツリーの下方に送信される。
K最低レベルリストも、普及フェーズの期間中にサービスツリーの下方に送信される。
たとえば、図8A〜図8Dは、情報サービスノード130a〜130dのルーティング表を示している。
上位Kリストをリーダノードへルーティングするために、上位Kリストを受信する情報サービスノードは、対応する分割値未満の範囲を担当する、自身のルーティング表における最大レベルへ上位Kリストを送信する。
上位Kリストの情報は、上位Kリストがリーダノードへルーティングされる所までに判明した上位K個のノードおよびそれらのノードのワークロードを特定する。
たとえば、図8Dの情報サービスノード130dのルーティング表を参照すると、最高レベルまたは最大レベルは、2のレベルを有するエントリー840にある。
エントリー840は、応答時間属性について20msの属性分割値を含む。
応答時間の範囲は応答時間≦20msを含む。
この範囲は、対応する分割値未満、すなわち、20msの分割値よりも小さいので、ノード130bは上位Kリストを受信する次のノードとして特定される。
ノード130dは、上位Kリストをノード130bへ送信する。
情報サービスノード130bは、上位Kリストに自身のワークロードを含め、上位Kリストを情報サービスノード130cへ送信する。
また、情報サービスノード130cは、図7に示すように、情報サービスノード130b、130d、および130eのワークロードも受信する。
情報サービスノード130cのワークロードが、情報サービスノード130b、130d、および130eのワークロードよりも小さい場合、情報サービスノード130cは、自身のワークロードを上位Kリストに含めない。
情報サービスノード130cのルーティング表のエントリー830は、上位Kルーティングアルゴリズムに基づいて、上位Kリストを受信する次のノードとして情報サービスノード130aを特定する。
情報サービスノード130aは、自身のワークロードが上位Kリストの3つのワークロードよりも大きいか否かを判断する。
大きい場合には、情報サービスノード130aは、自身のワークロードを上位Kリストに含める。
また、情報サービスノード130aはリーダノードでもある。
リーダノードは、自身のルーティング表の対応する分割値よりも大きな属性範囲のみを有する情報サービスノードである。
図8Aに示す情報サービスノード130aのルーティング表は、1つのエントリー810を含む。
エントリー810は、1GBの対応する分割値よりも大きな属性範囲を含む。
したがって、情報サービスノード130aのルーティング表は、対応する分割値よりも大きな属性範囲しか含まず、情報サービスノード130aはリーダノードである。
これとは対照的に、情報サービスノード130b〜130dのルーティング表は、エントリー820、830および840等、対応する分割値よりも小さな少なくとも1つの属性範囲を含む。
図7に示すように、リーダノード、たとえば情報サービスノード130aは、上位Kリストを情報サービスノード130cへ送信する。
上位Kリストは、最終的には、たとえば、前に、上位Kリストがリーダノードに向けてサービスツリーの上方にルーティングされた時に情報サービスノードが上位Kリストを受信した順序と逆の順序で、すべての情報サービスノードへ普及される。
本明細書で使用されるようなリストは、ノード間で送信できる1つまたは複数の値のデータ表現を含む。
たとえば、上位Kリストは、オーバーレイネットワーク210の最大のワークロードの値を含む。
これらの値は、情報サービスノード130間で送信される。
上位Kリストは、ワークロードを含むことに加えて、上位Kリストにワークロードを有する情報サービスノードの識別子も含む。
識別子の一例はIPアドレスであるが、他の識別子も使用することができる。
図8B〜図8Dに示すルーティング表は、情報サービスノードのワークロードをバランスさせるのに使用される分割アルゴリズムに基づいて生成することができる。
分割アルゴリズムの一タイプは、高いワークロードを有する上位Kリストにおける情報サービスノード等の情報サービスノードのワークロードを分割するのに使用されるローカル分割アルゴリズムである。
情報サービスノードのワークロードは、オーバーレイネットワーク210に参加する新たな情報サービスノードまたは既存の情報サービスノード等、別の情報サービスノードと分割することができる。
各広告は、所定の一組の属性、および、場合により、その一組の属性における各属性の属性値を含むことができる。
一組の属性および対応する属性値を含む広告の一例は、上記表3に示されている。
ローカル分割アルゴリズムは、一組の属性から1つの属性を選択し、且つ、選択した属性の少なくとも1つの属性分割値を選択して、情報サービスノードのワークロードを分割するのに使用される。
オーバーレイネットワーク210への加入許可を制御するのに、アドミッションポリシーを使用することができる。
たとえば、ノードがしきい値よりも大きなアップタイムを有する場合、ノードが一時的なものでない場合、および、ノードが所定のしきい値よりも大きな処理速度、ディスク容量、メモリ等の所定のハードウェア属性を含む場合に、そのノードがオーバーレイネットワーク210に参加することを許可することができる。
その後、情報サービスノード130bが情報サービスに参加する。
ローカル分割アルゴリズムを適用することによって、情報サービスノード130aが、メモリ≦1GBを有する広告を記憶し、メモリ≦1GBを有する問い合わせに応答する、すなわち、メモリ≦1GBの属性部分空間を有し、且つ、情報サービスノード130bが、メモリ>1GBを有する広告を記憶し、メモリ>1GBを有する問い合わせに応答する、すなわち、メモリ>1GBの属性部分空間を有する場合に、情報サービスノード130aは、自身のワークロードの均等な分散を達成できると判断する。
ワークロードのこの分割は、分割後の属性部分空間並びに情報サービスノード130aおよび130bのルーティング表を示す図9Aに示されている。
1つの選択肢は、情報サービスを現在提供しているすべての情報サービスノード、たとえば情報サービスノード130aおよび130bのワークロードをグローバルに評価することである。
これは、グローバル分割アルゴリズムを適用することによって達成される。
グローバル分割アルゴリズムは、すべての情報サービスノードに影響を与え、潜在的にすべての情報サービスノードのワークロードを再分散する。
もう1つの選択肢は、ローカル分割アルゴリズムを適用することである。
ローカル分割アルゴリズムは、新たなノードが情報サービスに参加するごとに、また、その後、グローバルな再分散を定期的に行うごとに、単一の情報サービスノードのワークロードを分割する。
情報サービスノード130bの属性部分空間を情報サービスノード130cとどのように分割するかを決定するのに、異なるタイプのローカル分割アルゴリズムを使用することができる。
一例では、K平均クラスタリング等の反復クラスタリングアルゴリズムが使用されて、このクラスタリングアルゴリズムによって見つけられた2つのクラスタに基づき、属性および属性分割値が選択される。
別の例では、同じK平均クラスタリングアルゴリズム等のクラスタリングアルゴリズムが使用されて、3つのクラスタが決定され、これらの3つのクラスタが使用されて、情報サービスノード130bのワークロードを分割するための属性および属性分割値が選択される。
以下の表4は、情報サービスノード130cとの分割前の情報サービスノード130bの属性部分空間に分類される広告および問い合わせの分散を示している。
この分散は、クラスタリングアルゴリズムを使用して決定することができる。
ディスク容量≦2GB: 40%,
2<ディスク容量≦5GB: 20%,
ディスク容量>5GB: 40%,
これらの2つのクラスタは、合わせて、分割前の情報サービスノード130bに記憶された広告および問い合わせの80%をカバーする。
2つの属性分割値は、これらのクラスタに基づいて選択される。
1つの分割値は2GBである。
これは、情報サービスノード130bのルーティング表のエントリー910および情報サービスノード130cの属性部分空間に反映される。
もう1つの分割値は5GBである。
分割後に情報サービスノード130bがディスク容量の属性値>5GBを有する広告を記憶する確率は100%である。
これは、情報サービスノード130cのエントリー920および情報サービスノード130bの属性部分空間に反映される。
クラスタリングアルゴリズムは、情報サービスノード130bのワークロードの20%が第3のクラスタに関連付けられることを決定する。
情報サービスノード130bまたは130cのいずれかに、或る確率で、第3のクラスタに分類される広告および問い合わせを記憶することを割り当てることができる。
広告が情報サービスノード130bおよび130cに受信されるとともに記憶される割合をほぼ等しくするように確率を割り当てることができる。
情報サービスノード130bおよび130cのルーティング表のエントリー912および922は、広告が、エントリーにリストアップされた情報サービスノードで見つかる確率をそれぞれ示している。
たとえば、2GBよりも大きなディスク容量属性値を有する問い合わせは、情報サービスノード130cの属性部分空間に基づいて情報サービスノード130cへルーティングすることができる。
一致するものが見つからない場合、2GBよりも大きなディスク容量属性値を有する広告が情報サービスノード130bに記憶される確率は50%であるので、問い合わせは、エントリー922に基づいて情報サービスノード130bへルーティングされる。
このように、情報サービスノード130cは、自身の属性部分空間内に分類される問い合わせに応答する準備ができている。
この例では、K平均クラスタリング等の反復クラスタリングアルゴリズムが使用されて、クラスタリングアルゴリズムにより見つけられた2つのクラスタに基づき属性および属性分割値が選択される。
選択された属性は応答時間であり、2つのクラスタから決定された分割値は20msである。
たとえば、クラスタリングアルゴリズムは、応答時間属性について、情報サービスノード130bにより記憶された広告および問い合わせを2つのクラスタに分割できると判断する。
一方のクラスタは属性値<20msを含み、他方のクラスタは属性値≧20msを含む。
したがって、20msの属性分割値が選択され、情報サービスノード130bのワークロードは、20msの分割値に基づいて情報サービスノード130dと分割される。
分割アルゴリズムの一例は、属性および分割値を決定するための2つのクラスタを特定するK平均クラスタリングアルゴリズムである。
K平均クラスタリングアルゴリズムは、所定の個数のクラスタにデータの母集団をグループ化するのに使用される既知のアルゴリズムである。
たとえば、2つのクラスタが選択された場合、その母集団の各データ点は、ほぼ同じ個数のデータ点が各クラスタに存在するように、2つのクラスタの1つにランダムに割り当てられる。
次に、各クラスタの各データ点が評価されて、そのデータ点が、クラスタへの最小距離に基づきいずれのクラスタに属するかが判断される。
たとえば、クラスタリングは、情報サービスノード130bのメモリ属性について実行される。
情報サービスノード130bは、自身に記憶されたすべての広告のメモリ属性値を決定する。
それぞれ1GBおよび5GBに中心を有する2つのクラスタが選択される。
たとえば、0.25GBの属性値は、5GBよりも1GBに近く、したがって、0.25GBの属性値は、1GBのクラスタに割り当てられる。
4GBの属性値は、5GBに近く、5GBのクラスタに割り当てられる。
この評価は、異なるクラスタに再割り当てする必要があるデータ点がないとの判断がなされるまで実行される。
たとえば、表3は、この一組における属性のそれぞれについての属性値を含む広告の一例を示している。
アプリケーション属性値は数値ではないので、クラスタリングは、アプリケーション属性以外は、属性のそれぞれについて実行される。
次に、クラスタに基づいて、選択された属性の分割値が決定される。
最適化基準の一例には、クラスタリングが2つのクラスタ間のサイズの最小差につながる属性が含まれ得る。
別の例には、各クラスタにおける各一組の属性値を0から1の範囲の値に正規化し、次に、K平均クラスタリングが収束する最小二乗誤差を有する属性を選択することが含まれ得る。
情報サービスノードのワークロードを最適に分割することを可能にするクラスタを有する属性が選択されるように、他の最適化メトリックを使用して、各属性のクラスタを評価することもできる。
たとえば、M1およびM2は、それぞれ、M1<M2となるようなクラスタC1およびC2のそれぞれの属性値の平均である。
Max(C1)をC1の最大属性値にする一方、Min(C2)はC2の最小属性値である。
分割値は、(Max(C1)+Min(C2))/2に等しい。
K平均クラスタリングアルゴリズムが使用されて、或る数値を有する所定の一組の属性における各属性の3つのクラスタが決定される。
K平均クラスタリングアルゴリズムを適用して、各属性の3つのクラスタを決定した後、少なくとも1つの最適化基準が使用されて、分割のための属性の1つが選択される。
次に、選択された属性の分割値がクラスタに基づいて決定される。
上述した最適化基準を使用することができる。
たとえば、M1、M2、およびM3は、それぞれ、M1<M2<M3となるようなクラスタC1、C2、およびC3のそれぞれの属性値の平均である。
クラスタC1の広告は、情報サービスノード130c等、情報サービスノードの一方に割り当てられ、クラスタC3の広告は、情報サービスノード130b等、他方の情報サービスノードに割り当てられる。
第3のクラスタC2の広告は、確率に基づいて、情報サービスノード130cまたは130bの一方に割り当てられる。
2つの情報サービスノード間のワークロードの一様な分散を確実にするために、クラスタC2からの広告が情報サービスノード130bまたは130cの一方に割り当てられる確率Pおよび(1−P)が求められる。
Pの値は、Size(C1)+P*Size(C2)=(1−P)*Size(C2)+Size(C3)によって与えられる。
図9Bに示す2GBおよび5GB等の2つの分割値は、Max(C1)およびMin(C3)である。
エンティティ平均クラスタリング(entity means clustering)等の他のタイプのクラスタリングアルゴリズム、または、他のタイプの統計解析を使用して、各広告の属性の属性値等のデータ間の類似度を求め、類似したデータをグループ化してワークロードを分割することもできる。
別の選択肢は、オーバーレイネットワークのすべての情報サービスノードのワークロードをグローバルに評価し、場合により、すべての情報サービスノードのワークロードを再割り当てして、情報サービスノード130のワークロードをバランスさせることである。
これは、グローバル分割アルゴリズムを適用することによって達成される。
グローバル分割アルゴリズムは、すべての情報サービスノードに影響を与え、潜在的に、すべての情報サービスノードのワークロードを再分散する。
たとえば、ローカル分割アルゴリズムが、オーバーレイネットワーク210の1つのエリアの多くの情報サービスノードに適用される場合、そのエリアの情報サービスノードのワークロードをより良くバランスさせることができる。
しかしながら、広告が分類される属性部分空間を所有する情報サービスノード等、オーバーレイネットワーク210の最終宛先に達するのに要するホップが多くなる場合があるので、オーバーレイネットワーク210における待ち時間は増加する場合がある。
グローバル分割アルゴリズムは、オーバーレイネットワーク210のすべての情報サービスノード130のワークロードをバランスさせて、待ち時間を最小にするのに使用することができる。
グローバル分割アルゴリズムは、定期的に適用することができ、情報サービスの処理が履歴上低い時に適用して、情報サービスに対する混乱を最小にすることができる。
要約の一例には、ヒストグラムが含まれ得る。
このヒストグラムは、最近の24時間の間に受信した広告の20%が4GBと5GBとの間のメモリを有し、20%が0.5GBと1GBとの間のメモリを有する等といったものである。
ヒストグラムは属性ごとに設けることができる。
要約は、ヒストグラム以外の形式で提供することもできる。
図10は、情報サービスノード130が中央ノード1010へ要約1020を送信することを示している。
中央ノード1010は、情報サービスノード130の1つとすることができる。
別の例では、中央ノード1010は、複数の情報サービスノードを含むことができ、各情報サービスノードは、たとえば、極めて近接した情報サービスノードから要約を受信するように割り当てられる。
この例では、複数の中央ノードが互いに通信して、グローバル分割アルゴリズムを適用する。
分割アルゴリズムは、上述したローカル分割アルゴリズムの1つを含むことができる。
たとえば、K平均クラスタリングアルゴリズム等のクラスタリングアルゴリズムを使用して、情報サービスノードからの要約から各属性について2つのクラスタを特定することができる。
属性および分割値は、決定されたクラスタに基づいて選択される。
たとえば、図11Aに示すように、メモリ属性を選択することができ、分割値は2GBとすることができる。
次に、2つの情報サービスノード130dおよび130aが、要約を提供する一組の情報サービスノード1100から選択される。
情報サービスノード130dおよび130aには、分割値に基づいて属性部分空間が割り当てられる。
たとえば、情報サービスノード130dには、メモリ≦2GBの属性部分空間が割り当てられ、情報サービスノード130aには、メモリ>2GBの属性部分空間が割り当てられ、これらの2つの情報サービスノードのそれぞれについてルーティング表が作成される。
次に、最大のクラスタを有する情報サービスノードが分割される。
たとえば、メモリ≦2GBを有する広告よりもメモリ>2GBを有する広告の方が多いことが、図10に示す要約1020から判断された場合、情報サービスノード130aのメモリ>2GBを有する広告のクラスタは、別の情報サービスノードと分割される。
図11Bは、情報サービスノード130aのワークロードを分割するのに選択された情報サービスノード130fを示している。
このプロセスは、すべての情報サービスノードにオーバーレイネットワーク210の属性部分空間が割り当てられるまで繰り返される。
一例では、情報サービスノードは、クラスタが分割されるごとに一組1100から任意で選択することができる。
たとえば、各情報サービスノードは、自身のグローバルキャッシュに記憶された広告を、対応する属性部分空間を再割り当てされた情報サービスノードへ送信する。
或いは、情報サービスノード130のそれぞれは、自身のグローバルキャッシュを空にして、サービスノード120からオーバーレイネットワーク210への広告の次の報告を待つこともできる。
たとえば、図1および図2に示すサービスノード120は、オーバーレイネットワーク210へ広告を定期的に送信することができ、したがって、情報サービスノード130は、各属性部分空間に関連する広告を記憶する次の報告を待つことができる。
この場合、第3のクラスタについて確率が求められる。
3クラスタローカル分割アルゴリズムは、要約を提供する一組の情報サービスノードが使い果たされるまで適用される。
次に、グローバルキャッシュが、新たに割り当てられた属性部分空間に基づいて再ポピュレートされる。
ステップ1201において、情報サービスノード130b等の、オーバーレイネットワーク210の情報サービスノードが要求を受信する。
この要求は、参加要求、または、情報サービスノード130bのワークロードの分割を起動するあらゆるメッセージとすることができる。
たとえば、情報サービスノード130bは、上位Kリストにおける最高ワークロードを有する情報サービスノードまたは上位Kリストにおける複数の最高ワークロードのうちの1つを有する情報サービスノードとすることができる。
図7に関して上述したK最低レベルリストに設けることができる、オーバーレイネットワーク210の最大ルーティング表レベル、および同様にK最低レベルリストに設けることができる選択された情報サービスノードの最高ルーティング表レベルは、分割のための情報サービスノードを選択する時に考慮することができる。
たとえば、情報サービスノード130cは、参加要求をオーバーレイネットワーク210へ送信する。
この参加要求は、情報サービスノード130cにネットワークおいて極めて近接していると判断された情報サービスノード130e等の情報サービスノードへ送信することができる。
情報サービスノード130eは、最高ワークロードを有する上位Kリストにおいて情報サービスノード130bを選択する。
また、情報サービスノード130eは、情報サービスノード130bの最高ルーティング表レベルを、オーバーレイネットワーク210の最大ルーティング表レベルと比較する。
それらのルーティング表レベル間の差がしきい値よりも大きい場合、分割のための別の情報サービスノードを選択することができる。
この別の情報サービスノードは、上位Kリストからの別の情報サービスノードとすることができる。
このルーティング表レベルの比較を利用することによって、サービスツリーの1つのエリアの過度の分割によって引き起こされるサービスツリーのアンバランスが最小にされる。
たとえば、情報サービスノード130bは、上述したローカル分割アルゴリズムの1つを適用して、情報サービスノード130bのワークロードを情報サービスノード130cと分割するための属性および少なくとも1つの属性分割値を選択する。
方法1300は、限定ではなく一例として、図10および図11A〜図11Bについて説明される。
ステップ1301において、中央ノード1010が、情報サービスノード130から要約1030を受信する。
統計解析は、上述したローカル分割アルゴリズムの1つを要約1030に適用することを含むことができる。
割り当てられるワークロードは、少なくとも1つの分割値に基づいている。
すべてに割り当てられているとは限らない場合、ステップ1302および1303が繰り返される。
一実施形態によれば、新たなノードがオーバーレイネットワーク210に参加するのに利用可能である時、参加要求が、たとえば、最高ワークロードを有する上位Kリストの情報サービスノードへ転送される。
次に、その情報サービスノードは、ローカル分割アルゴリズムの適用に基づいて、自身のワークロードを新たなノードと分割する。
一定の状況では、情報サービスノードのワークロードを分割するのではなく、図1および図2に示すネットワーク100の別のエリアの既存の情報サービスノードを複製して、特定のサービスの情報を要求したユーザノードと、それらの要求に関連のある広告を記憶している情報サービスノードとの間の待ち時間を削減することがより有益な場合がある。
たとえば、情報サービスノードは、ユーザノードが、問い合わせを処理して結果をユーザノードへ送信する情報サービスノードからの高い待ち時間を受けていると判断された場合に、ネットワーク100の新たなロケーションにその情報サービスノードを複製することができる。
さらに、情報サービスノードのワークロードを削減するのではなく情報サービスノードを複製して待ち時間を削減することがより有益であると仮定される場合がある。
待ち時間は、各情報サービスノードのレプリカ情報キャッシュに記憶することができる。
情報サービスノード130bの、図4に示すレプリカロケーションキャッシュ440は、一定の情報サービスノードの待ち時間に関連する情報を記憶する。
情報サービスノード130bは、レプリカロケーションキャッシュ440の情報を使用し、ネットワーク100の別のエリアにレプリカを追加して待ち時間を削減するか否かを判断することができる。
たとえば、図14は、情報サービスノード130bが、情報サービスノード130bに極めて近接したユーザノード110a〜110cから待ち時間報告1410a〜1410cを受信することを示している。
情報サービスノード130bは、オーバーレイネットワーク210に問い合わせを送信した時にユーザノード110a〜110cが最初に連絡を取る情報サービスノードとすることができる。
報告1410a〜1410cは、問い合わせを処理して問い合わせ結果をユーザノード110a〜110cへ送信する情報サービスノードからの待ち時間を含む。
また、報告1410a〜1410cは、各待ち時間を有する対応した情報サービスノードの識別情報も含む。
待ち時間および情報サービスノードの識別情報は、レプリカロケーションキャッシュ440に記憶される。
情報サービスノード130bは、ノード1420から参加要求を受信する。
情報サービスノード130bは、上位Kリストのワークロードがしきい値未満であるか否かを判断する。
ワークロードがしきい値未満である場合、情報サービスノード130bは、高い待ち時間を有するレプリカロケーションキャッシュから情報サービスノードを選択する。
一例では、情報サービスノード130f等、レプリカロケーションキャッシュ440から特定された、しきい値よりも大きな待ち時間を有する情報サービスノードが複製のために選択される。
情報サービスノード130fが複製され、これは、グローバルキャッシュをコピーすること、およびレプリカである新たな情報サービスノード1420に広告を記憶することを含むことができる。
ノード間の距離等のネットワーク近接性情報は、ラウンドトリップ時間、ホップ数等のネットワークメトリックに基づくことができる。
方法1400は、限定ではなく一例として図14に示す例について説明される。
ステップ1501において、情報サービスノード130bが、ワークロード分割または複製を促すノード1420から参加要求等の要求を受信する。
一例では、上位Kリストのワークロードがしきい値未満である場合、情報サービスノードのワークロードを分割する代わりに、情報サービスノードを複製することができる。
複製のための情報サービスノードを選択する時に考慮される因子は、情報サービスノードの待ち時間およびノード1420とユーザノードとの間の距離を含む。
たとえば、距離について、情報サービスノード130bがユーザノードから報告を受信するノードである場合、高い待ち時間を有するユーザノードおよび情報サービスノード130bに対して同じネットワーク近接性を有する新たなノードが、レプリカとなるように選択される。
たとえば、情報サービスノード130fのグローバルキャッシュおよびルーティング表がノード1420にコピーされる。
コンピュータシステム1600は、ソフトウェアを実行するための実行プラットフォームを提供するプロセッサ1602等の1つまたは複数のプロセッサを含む。
また、コンピュータシステム1600は、ランタイム期間中、ソフトウェアが常駐することができるランダムアクセスメモリ(RAM)等のメインメモリ1606および2次メモリ1608も含む。
2次メモリ1608は、たとえば、ソフトウェアのコピーを記憶できるフロッピー(登録商標)ディスケットドライブ、磁気テープドライブ、コンパクトディスクドライブ等を表す、ハードディスクドライブ1610および/または着脱可能ストレージドライブ1612、すなわち不揮発性メモリを含む。
また、2次メモリ1608は、ROM(読み出し専用メモリ)、EPROM(消去可能プログラマブルROM)、EEPROM(電気的消去可能プログラマブルROM)を含むことができる。
ソフトウェアに加えて、ルーティング表、グローバル情報表、並びに、測定されたQoS特性、測定された利用可能帯域幅、およびサービスに必要とされる帯域幅も、メインメモリ1606および/または2次メモリ1608に記憶することができる。
着脱可能ストレージドライブ1612は、既知の方法で着脱可能ストレージユニット1614から読み出しを行い、且つ/または、着脱可能ストレージユニット1614に書き込みを行う。
ディスプレイアダプタ1622は、通信バス1604およびディスプレイ1620とインターフェースし、プロセッサ1602から表示データを受信し、その表示データをディスプレイ1620の表示コマンドに変換する。
ネットワークインターフェース1630は、他のノードとの通信用に設けられている。
これらのステップは、コンピュータプログラムによって具現化することができる。
コンピュータプログラムは、アクティブおよび非アクティブの双方のさまざまな形で存在し得る。
たとえば、コンピュータプログラムは、ソースコード、オブジェクトコード、実行可能コード、またはステップの一部を実行するための他のフォーマットのプログラム命令で構成されたソフトウェアプログラム(複数可)として存在し得る。
上記のいずれも、コンピュータ可読媒体に具現化することができる。
コンピュータ可読媒体には、圧縮形式または非圧縮形式のストレージデバイスおよび信号が含まれる。
適したコンピュータ可読ストレージデバイスの例には、従来のコンピュータシステムのRAM(ランダムアクセスメモリ)、ROM(読み出し専用メモリ)、EPROM(消去可能プログラマブルROM)、EEPROM(電気的消去可能プログラマブルROM)、および磁気ディスク若しくは磁気テープまたは光ディスク若しくは光テープが含まれる。
コンピュータ可読信号の例は、搬送波を使用して変調されていようといまいと、インターネットまたは他のネットワークを通じてダウンロードされた信号を含めて、コンピュータプログラムをホスティングまたは実行するコンピュータシステムを、アクセスするように構成可能な信号である。
上記の具体例には、CD ROMでのプログラムの配布またはインターネットのダウンロードを介したプログラムの配信が含まれる。
或る意味で、インターネット自体が、抽象的なエンティティとして、コンピュータ可読媒体である。
同じことはコンピュータネットワーク一般にも当てはまる。
したがって、以下に列挙する機能は、上述した機能を実行できるどの電子デバイスによっても実行できることが理解されよう。
本明細書で使用された用語および説明は、例示としてのみ述べられており、限定として意図されたものではない。
詳細には、方法は、例によって説明されているが、方法のステップは、示したものとは異なる順序でまたは同時に実行することができる。
当業者は、これらの変形および他の変形が、添付の特許請求の範囲およびその均等物で規定される精神および範囲内において可能であることを認識するであろう。
1606・・・メインメモリ,
1610・・・ハードディスクドライブ,
1612・・・着脱可能ストレージドライブ,
1614・・・着脱可能ストレージユニット,
1618・・・入力デバイス,
1620・・・ディスプレイ,
1622・・・ディスプレイアダプタ,
1630・・・ネットワークインターフェース,
Claims (9)
- ピアツーピアネットワーク(210)において、互いに通信する複数のノードのうち、ワークロードが高い順に予め定められた数のノードを示す上位ノードリスト(712)に含まれると判断されたノード(130b)で要求を受信することと、
前記上位ノードリストに含まれるノードのワークロードが、予め定められたワークロードよりも高い場合、分割アルゴリズムを使用して、前記ノード(130b)の前記ワークロードを、前記ピアツーピアネットワーク(210)の第2のノード(130c)と分割し、それ以外の場合、前記複数のノードのうち、サービスの応答待ち時間が予め定められた時間よりも長いノードを、前記第2のノードに複製することと
を含み、
前記ピアツーピアネットワーク(210)の前記ノード(130)は、サービスの属性および属性値に関連する情報を記憶するように動作可能であり、
前記ノード(130b)の前記ワークロードを分割することは、
前記分割アルゴリズムを使用して属性および少なくとも1つの属性分割値を決定することと、
前記属性および前記少なくとも1つの属性分割値に基づいて前記ノード(130b)の前記ワークロードを分割することと
をさらに含む
方法。 - 前記ノード(130b)の前記ワークロードを分割することは、
前記属性の属性値の2つの範囲を決定することであって、第1の範囲は、前記少なくとも1つの属性分割値よりも小さな属性値を含み、第2の範囲は、前記少なくとも1つの属性分割値よりも大きな属性値を含むことと、
前記2つの範囲の一方の属性値を有するサービスについての情報を記憶することを前記ノード(130b)に割り当てることと、
前記2つの範囲の他方の属性値を有するサービスについての情報を記憶することを前記第2のノード(130c)に割り当てることと
をさらに含む
請求項1に記載の方法。 - 前記ノードの前記ワークロードを分割することは、
前記ノード(130b)から前記第2のノード(130c)へサービスの情報を送信することであって、前記送信された情報は、前記第2のノード(130b)に割り当てられた前記範囲の属性値を有するサービスの情報を含むこと
をさらに含む
請求項2に記載の方法。 - 前記ノード(130b)の前記ワークロードを分割することは、
前記ノード(130b)のルーティング表を使用して前記第2のノード(130c)のルーティング表を生成することであって、前記第2のノード(130c)の前記ルーティング表は、前記ノード(130b)の最高レベルのエントリーに関連する最高レベルのエントリーを含むこと
をさらに含む
請求項2に記載の方法。 - 前記分割アルゴリズムは、
クラスタリングアルゴリズム
を含み、
前記分割アルゴリズムを使用して前記属性および前記少なくとも1つの属性分割値を選択することは、
前記クラスタリングアルゴリズムを使用して、前記ノードに記憶されたデータから少なくとも2つのクラスタを決定することと、
前記少なくとも2つのクラスタに基づいて前記属性および前記属性分割値を選択することと
をさらに含む
請求項2に記載の方法。 - 前記分割アルゴリズムは、
クラスタリングアルゴリズム
を含み、
前記分割アルゴリズムを使用して前記属性および前記少なくとも1つの属性分割値を選択することは、
前記クラスタリングアルゴリズムを使用して、前記ノード(130b)に記憶されたデータから3つのクラスタを決定することと、
前記3つのクラスタに基づいて前記属性および2つの属性分割値を選択することと
をさらに含む
請求項2に記載の方法。 - 前記ノード(130b)の前記ワークロードを分割することは、
前記2つの属性分割値に基づいて、前記選択された属性の属性値の3つの範囲を決定することと、
前記3つの範囲のうちの1つの範囲の属性値を有するサービスについての情報を記憶することを前記ノード(130b)に割り当てることと、
前記3つの範囲のうちの第2の範囲の属性値を有するサービスについての情報を記憶することを前記第2のノード(130c)に割り当てることと、
前記3つの範囲のうちの第3の範囲の属性値を有するサービスについての情報を記憶することを前記ノード(130b)および前記第2のノード(130c)の双方に割り当てることと
をさらに含む請求項6に記載の方法。 - 前記3つの範囲のうちの第3の範囲の属性値を有するサービスについての情報を記憶することを前記ノード(130b)および前記第2のノード(130c)の双方に割り当てることは、
前記ノード(130b)および前記第2のノード(130c)が、前記3つの範囲のうちの第3の範囲の属性値を有するサービスについての情報を記憶する確率を割り当てること
をさらに含む
請求項7に記載の方法。 - ネットワーク(210)のノード(130b)であって、ネットワーク(210)おいて互いに通信する複数のノードのうち、ワークロードが高い順に予め定められた数のノードを示す上位ノードリスト(712)に含まれると判断されたノードの1つであり、
前記ノード(130b)は、
参加要求を受信するように動作可能なネットワークインターフェース(1630)と、
前記上位ノードリストに含まれるノードのワークロードが、予め定められたワークロードよりも高い場合、クラスタリングアルゴリズムを適用して、前記ノード(130b)の前記ワークロードを、前記ネットワーク(210)に参加する別のノード(130c)と分割し、それ以外の場合、前記複数のノードのうち、サービスの応答待ち時間が予め定められた時間よりも長いノードを、前記別のノードに複製するように動作可能な処理回路(1602)と
を備え、
サービスの属性および属性値に関連する情報を記憶するように動作可能であり、
前記ノード(130b)の前記ワークロードを分割することは、
前記クラスタリングアルゴリズムを使用して属性および少なくとも1つの属性分割値を決定することと、
前記属性および前記少なくとも1つの属性分割値に基づいて前記ノード(130b)の前記ワークロードを分割することと
を含むノード。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/006,061 US7596618B2 (en) | 2004-12-07 | 2004-12-07 | Splitting a workload of a node |
PCT/US2005/044095 WO2006062964A1 (en) | 2004-12-07 | 2005-12-06 | Splitting a workload of a node |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008524674A JP2008524674A (ja) | 2008-07-10 |
JP4681615B2 true JP4681615B2 (ja) | 2011-05-11 |
Family
ID=36574152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007545560A Expired - Fee Related JP4681615B2 (ja) | 2004-12-07 | 2005-12-06 | ノードのワークロードの分割 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7596618B2 (ja) |
JP (1) | JP4681615B2 (ja) |
CN (1) | CN101133622B (ja) |
DE (1) | DE112005003035B4 (ja) |
WO (1) | WO2006062964A1 (ja) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005091136A1 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
CA2586763C (en) | 2004-11-08 | 2013-12-17 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
JP4371056B2 (ja) * | 2005-01-07 | 2009-11-25 | ブラザー工業株式会社 | ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等 |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
US7631021B2 (en) * | 2005-03-25 | 2009-12-08 | Netapp, Inc. | Apparatus and method for data replication at an intermediate node |
WO2006108187A2 (en) | 2005-04-07 | 2006-10-12 | Cluster Resources, Inc. | On-demand access to compute resources |
US8392418B2 (en) | 2009-06-25 | 2013-03-05 | University Of Tennessee Research Foundation | Method and apparatus for predicting object properties and events using similarity-based information retrieval and model |
TWI327036B (en) * | 2006-10-05 | 2010-07-01 | Ind Tech Res Inst | Load balancing apparatus and method in wireless network hotspots |
US11392595B2 (en) | 2006-10-26 | 2022-07-19 | EMB Partners, LLC | Techniques for determining relevant electronic content in response to queries |
US20080109285A1 (en) * | 2006-10-26 | 2008-05-08 | Mobile Content Networks, Inc. | Techniques for determining relevant advertisements in response to queries |
US8982709B2 (en) * | 2007-01-31 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Selecting service nodes for an end-to-end service path from a reduced search space |
US7965655B2 (en) * | 2007-01-31 | 2011-06-21 | Hewlett-Packard Development Company, L.P. | Distributed network distance determination using a distributed hash table overlay network |
JP5526780B2 (ja) * | 2007-09-13 | 2014-06-18 | 日本電気株式会社 | 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US20090132716A1 (en) * | 2007-11-15 | 2009-05-21 | Junqueira Flavio P | Fault-tolerant distributed services methods and systems |
WO2010101187A1 (ja) * | 2009-03-04 | 2010-09-10 | 公立大学法人大阪府立大学 | 画像データベースの作成方法、作成プログラム及び画像検索方法 |
US8650571B2 (en) * | 2009-03-30 | 2014-02-11 | Hewlett-Packard Development Company, L.P. | Scheduling data analysis operations in a computer system |
US8948067B2 (en) * | 2009-04-23 | 2015-02-03 | Honeywell International Inc. | Wireless controller grids for process control and other systems and related apparatus and method |
US8396870B2 (en) * | 2009-06-25 | 2013-03-12 | University Of Tennessee Research Foundation | Method and apparatus for predicting object properties and events using similarity-based information retrieval and modeling |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8832281B2 (en) * | 2010-01-08 | 2014-09-09 | Tangome, Inc. | Utilizing resources of a peer-to-peer computer environment |
US8560633B2 (en) * | 2010-01-11 | 2013-10-15 | Tangome, Inc. | Communicating in a peer-to-peer computer environment |
US9094527B2 (en) * | 2010-01-11 | 2015-07-28 | Tangome, Inc. | Seamlessly transferring a communication |
JP5177919B2 (ja) * | 2010-03-26 | 2013-04-10 | エヌイーシー(チャイナ)カンパニー, リミテッド | インデックスサーバとその方法 |
US8429153B2 (en) * | 2010-06-25 | 2013-04-23 | The United States Of America As Represented By The Secretary Of The Army | Method and apparatus for classifying known specimens and media using spectral properties and identifying unknown specimens and media |
US9213503B2 (en) * | 2011-10-30 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Service provider management of virtual instances corresponding to hardware resources managed by other service providers |
US20140047342A1 (en) * | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics |
CN103841027B (zh) * | 2012-11-26 | 2018-08-14 | 中兴通讯股份有限公司 | 哈希映射平面的映射信息注册和查找方法、设备及*** |
US10311014B2 (en) * | 2012-12-28 | 2019-06-04 | Iii Holdings 2, Llc | System, method and computer readable medium for offloaded computation of distributed application protocols within a cluster of data processing nodes |
US9450876B1 (en) * | 2013-03-13 | 2016-09-20 | Amazon Technologies, Inc. | Wear leveling and management in an electronic environment |
CN105190537B (zh) * | 2013-04-03 | 2019-11-05 | 慧与发展有限责任合伙企业 | 修改将在多个执行环境中执行的操作流的方法和产品 |
US20150039555A1 (en) * | 2013-08-02 | 2015-02-05 | International Business Machines Corporation | Heuristically modifying dbms environments using performance analytics |
WO2015047302A1 (en) * | 2013-09-27 | 2015-04-02 | Hewlett-Packard Development Company, L.P. | Processing a hybrid flow associated with a service class |
US9413849B2 (en) * | 2013-12-05 | 2016-08-09 | International Business Machines Corporation | Distributing an executable job load file to compute nodes in a parallel computer |
US10459594B2 (en) | 2013-12-31 | 2019-10-29 | Vmware, Inc. | Management of a pre-configured hyper-converged computing device |
WO2015147860A1 (en) * | 2014-03-28 | 2015-10-01 | Hewlett-Packard Development Company, L.P. | Rescheduling a service on a node |
CN104978232A (zh) * | 2014-04-09 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 用于实时流式计算的计算资源扩容、释放方法及其装置 |
CN104796494A (zh) * | 2015-05-08 | 2015-07-22 | 成都博元科技有限公司 | 一种云平台数据传输方法 |
US10078464B2 (en) | 2016-07-17 | 2018-09-18 | International Business Machines Corporation | Choosing a leader in a replicated memory system |
US10671377B2 (en) * | 2017-07-13 | 2020-06-02 | Vmware, Inc. | Method to deploy new version of executable in node based environments |
US10687389B2 (en) | 2018-01-29 | 2020-06-16 | Honeywell International Inc. | Wireless industrial remote controller for industrial process control and automation systems or other systems |
JP6750646B2 (ja) * | 2018-06-07 | 2020-09-02 | トヨタ自動車株式会社 | 車載装置、情報処理方法、および、情報処理プログラム |
US11281640B2 (en) * | 2019-07-02 | 2022-03-22 | Walmart Apollo, Llc | Systems and methods for interleaving search results |
US11151150B2 (en) * | 2019-09-13 | 2021-10-19 | Salesforce.Com, Inc. | Adjustable connection pool mechanism |
US11636067B2 (en) | 2019-10-04 | 2023-04-25 | Salesforce.Com, Inc. | Performance measurement mechanism |
US11165857B2 (en) | 2019-10-23 | 2021-11-02 | Salesforce.Com, Inc. | Connection pool anomaly detection mechanism |
US11924020B2 (en) * | 2022-04-26 | 2024-03-05 | Microsoft Technology Licensing, Llc | Ranking changes to infrastructure components based on past service outages |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2004A (en) * | 1841-03-12 | Improvement in the manner of constructing and propelling steam-vessels | ||
US2002A (en) * | 1841-03-12 | Tor and planter for plowing | ||
US6351775B1 (en) * | 1997-05-30 | 2002-02-26 | International Business Machines Corporation | Loading balancing across servers in a computer network |
US6691165B1 (en) * | 1998-11-10 | 2004-02-10 | Rainfinity, Inc. | Distributed server cluster for controlling network traffic |
US6820262B1 (en) | 1999-07-22 | 2004-11-16 | Oracle International Corporation | Method for computing the degree of parallelism in a multi-user environment |
US6415323B1 (en) * | 1999-09-03 | 2002-07-02 | Fastforward Networks | Proximity-based redirection system for robust and scalable service-node location in an internetwork |
US6389448B1 (en) * | 1999-12-06 | 2002-05-14 | Warp Solutions, Inc. | System and method for load balancing |
JP2004526218A (ja) | 2000-08-24 | 2004-08-26 | ボルテール アドバンスト データ セキュリティ リミテッド | 相互接続されたファブリックにおける高度にスケーラブルで高速のコンテンツ・ベース・フィルタリング及び負荷均衡化システム及び方法 |
US6965930B1 (en) * | 2000-10-20 | 2005-11-15 | International Business Machines Corporation | Methods, systems and computer program products for workload distribution based on end-to-end quality of service |
US20020107962A1 (en) | 2000-11-07 | 2002-08-08 | Richter Roger K. | Single chassis network endpoint system with network processor for load balancing |
US7296268B2 (en) * | 2000-12-18 | 2007-11-13 | Microsoft Corporation | Dynamic monitor and controller of availability of a load-balancing cluster |
US7272645B2 (en) | 2001-05-25 | 2007-09-18 | Sbc Technology Resources, Inc. | Method of improving the reliability of peer-to-peer network downloads |
US20030110291A1 (en) | 2001-12-12 | 2003-06-12 | Nokia Corporation | Method and device for route searching in a bluetooth ad-hoc network |
US7353538B2 (en) * | 2002-11-08 | 2008-04-01 | Federal Network Systems Llc | Server resource management, analysis, and intrusion negation |
US7197573B1 (en) | 2002-11-18 | 2007-03-27 | Packet Design, Inc. | System and method for identifying addresses to modify and the effects thereof |
US20040133631A1 (en) * | 2003-01-06 | 2004-07-08 | Hagen David A. | Communication system |
WO2004064303A2 (en) | 2003-01-13 | 2004-07-29 | Meshnetworks, Inc. | Method for continuous connectivity to an access point in a wireless network |
CN1311665C (zh) | 2003-07-01 | 2007-04-18 | 株式会社日立制作所 | 具有多个分布式回归代理的移动IPv6网络及其负载平衡方法 |
US7389510B2 (en) * | 2003-11-06 | 2008-06-17 | International Business Machines Corporation | Load balancing of servers in a cluster |
CA2564959A1 (en) | 2004-05-07 | 2005-11-24 | Home Box Office, Inc. | Method and system for secure distribution of content over a communications network |
US7620687B2 (en) * | 2004-06-25 | 2009-11-17 | Telcordia Technologies, Inc. | Distributed request routing |
-
2004
- 2004-12-07 US US11/006,061 patent/US7596618B2/en active Active
-
2005
- 2005-12-06 DE DE112005003035T patent/DE112005003035B4/de active Active
- 2005-12-06 JP JP2007545560A patent/JP4681615B2/ja not_active Expired - Fee Related
- 2005-12-06 CN CN2005800478309A patent/CN101133622B/zh active Active
- 2005-12-06 WO PCT/US2005/044095 patent/WO2006062964A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN101133622A (zh) | 2008-02-27 |
WO2006062964A1 (en) | 2006-06-15 |
DE112005003035T5 (de) | 2007-12-27 |
US7596618B2 (en) | 2009-09-29 |
JP2008524674A (ja) | 2008-07-10 |
CN101133622B (zh) | 2011-04-06 |
US20060120411A1 (en) | 2006-06-08 |
DE112005003035B4 (de) | 2011-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4681615B2 (ja) | ノードのワークロードの分割 | |
JP4679584B2 (ja) | オーバーレイネットワークにおけるサービス問い合わせのルーティング | |
JP4588768B2 (ja) | オーバーレイネットワークのノードの最高ワークロードの決定 | |
US8087025B1 (en) | Workload placement among resource-on-demand systems | |
US20190319881A1 (en) | Traffic management based on past traffic arrival patterns | |
US8982709B2 (en) | Selecting service nodes for an end-to-end service path from a reduced search space | |
WO2018000993A1 (zh) | 一种分布式存储的方法和*** | |
JP4652435B2 (ja) | 階層的ピアツーピア・ネットワークの最適運用 | |
EP4293510A1 (en) | Data migration method and apparatus, and device, medium and computer product | |
US20220318071A1 (en) | Load balancing method and related device | |
Duan et al. | A novel load balancing scheme for mobile edge computing | |
US20060209717A1 (en) | Distributed storing of network position information for nodes | |
Garg et al. | Edge-based content delivery for providing qoe in wireless networks using quotient filter | |
US12026063B2 (en) | Method for configuration of semi-managed DHT based on NDN and system therefor | |
Epifâneo et al. | Cathode: A consistency-aware data placement algorithm for the edge | |
Liu et al. | A centralized service discovery approach for agent-based cloud computing system | |
Epifˆanio | Cathode: A consistency-aware data placement algorithm for the edge | |
Gupta et al. | Efficient data replication algorithm for mobile Ad-hoc networks | |
WO2023275250A1 (fr) | Systeme et procede de planification de traitement de programme | |
CN117440003A (zh) | 一种无中心的分布式存储方法及*** | |
Amini | First approach for a decentralized resource allocation in ad hoc grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100422 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100721 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101013 |
|
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: 20110112 |
|
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: 20110204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4681615 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |