JP2010182301A - 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク - Google Patents

自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク Download PDF

Info

Publication number
JP2010182301A
JP2010182301A JP2010011045A JP2010011045A JP2010182301A JP 2010182301 A JP2010182301 A JP 2010182301A JP 2010011045 A JP2010011045 A JP 2010011045A JP 2010011045 A JP2010011045 A JP 2010011045A JP 2010182301 A JP2010182301 A JP 2010182301A
Authority
JP
Japan
Prior art keywords
node
query
network
queries
peer
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
JP2010011045A
Other languages
English (en)
Other versions
JP4923115B2 (ja
Inventor
Wolfgang Kellerer
ヴォルフガンク・ケレラー
Zoran Despotovic
ゾラン・デスポトヴィッチ
Maximilian Michel
マクシミリアン・ミヒェル
Quirin Hofstaetter
クイリン・ホフシュテッター
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 JP2010182301A publication Critical patent/JP2010182301A/ja
Application granted granted Critical
Publication of JP4923115B2 publication Critical patent/JP4923115B2/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/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

【課題】ネットワーク内の探索パス長及びトラフィックの低減を可能にする、自己組織型分散オーバーレイ・ネットワーク内でクエリ(問い合わせ)の結果をキャッシュに入れる確実な手法を提供する。
【解決手段】自己組織型分散オーバーレイ・ネットワークで、ネットワーク内のノードと関連付けられたオブジェクトへの参照を分散させる方法において、この参照を記憶している現在のノードは、このオブジェクトについてのクエリを受け取る。このオブジェクトについての受信されたクエリの数が判定され、このオブジェクトについての受信されたクエリの数が所定の閾値に達した場合に、この参照はネットワークにおいて分散される。
【選択図】図2

Description

本出願は、ピア・ツー・ピア・ネットワークのような自己組織型分散オーバーレイ・ネットワークの分野に関し、より詳細には、そのようなネットワーク内で、ネットワークのノードと関連付けられたオブジェクトへの参照を分散させる方法に関する。さらに、本発明は、そのようなネットワーク内のノードであり、ネットワーク内の特定のノードと関連付けられたオブジェクトへの参照を分散させるように構成されているノードに関する。また、本発明は、複数のそのようなノードを備える自己組織型分散オーバーレイ・ネットワークにも関する。
ピア・ツー・ピア(P2P)ネットワークは、リソース集合の高速な位置決めを可能にする自己組織型分散オーバーレイ・ネットワーク(self-organizing, distributed overlay network)である。P2Pネットワークは、どんなものでも、そのネットワークに参加しているノードの間の物理的接続を利用するアプリケーション層オーバーレイ・ネットワークとして実現される。P2Pネットワークによって対処される基本的な問題は、ピアの集合の間におけるリソース集合の自己組織型分散を行って、その後に各ピアを高速で探索(lookup)することを可能にすることである。
この問題を解決するための有望なアプローチが、分散ハッシュテーブル(DHT, Distributed Hash Table)である。DHTにおいて、各ピアは、あるキー空間からのいくつかのキーによって識別されるリソースの特定の部分集合を協調して管理する。各ピアは、キー空間から取られるキーと関連付けられている。ピア集合が与えられたとすると、各ピアのキーは、キー空間の、あるパーティションと関連付けられて、そのピアは、関連付けられたパーティションからのキーによって識別される全てのリソースを管理する責任を負うようになる。キーパーティションは、適切なメトリック(測定指標:metric)においてピアのキーに最も近い全てのキーからなり、キーの近接度は、距離関数によって測られる。リソース要求を転送するために、各ピアは、ピアとキーパーティションとの関連付けに関する知識を考慮に入れて、ルーティングネットワークを形成する。各ピアは、典型的には、隣接するキーを有する全てのピアに対して短距離リンクを維持すると共に、いくつかの選択された遠隔のピアに対して少数の長距離リンクも維持している。このようにして確立されたルーティングネットワークを使用して、各ピアは、リソース要求を、各ピアのルーティング・テーブルから得た他のピアに対して、宛先指定して転送し、探索されるキーまでの距離を貪欲に短縮しようと試みる。このように、大部分のDHTは、ネットワークのサイズに対して対数的ないくつかのホップ数を伴う探索を、やはりネットワークのサイズに対して対数的であるルーティング・テーブルを使用して達成する。
ルーティングを効率的にするための有効な特性は、無償で得られるものではない。DHTを構築し、維持するために、各ピアは、特に、ノードの参加及びノードの障害の問題を処理する必要がある。構造化されたP2Pネットワークにおいては、自由に近隣のピアを選択することが制限されているため、ネットワーク・ダイナミックスの存在下においてルーティング・テーブルの一貫性(consistency)を再確立するためのメンテナンス・アルゴリズムが必要である。その異なるメンテナンスの戦略は、一貫性の度合い、すなわちネットワークの障害に対する復元力に対して、保守コストを交換(トレードオフ)するようなものである。
ネットワーク内のあるアイテムの可用性を、そのアイテムへの参照を記憶しているピアに障害が発生した場合でさえも最大化し、また、探索トラフィック及び応答時間を低減するためには、システムへのキャッシング及び/又は複製(replication)のやり方を導入する必要がある。これらのアプローチは、結果として、事前対応的にせよ、事後対応的にせよ、ネットワーク全体にわたって参照のコピーを分散させることになる。
コンテンツを求めるクエリ(及びコンテンツ自体)は、均一な分布とならず、普通は、Zipf分布すると考えられる(非特許文献1参照)ため、複製をネットワーク内の各ピアに分散させるにはマチュア戦略(mature strategy)が必要である。これまで、この問題には、クエリのシンク(受信側)からソースまで遡るパス全体に沿ってクエリ対象の参照をキャッシュに入れることによって対処されている。その場合、次のクエリの際には、最初のクエリをルーティング(経路指定)する際に関与したノードであって、新しいクエリが通るパス上で遭遇した最初のノードが回答することができる。このやり方を使用するシステムの例としては、PAST(非特許文献2など参照)や、CFS(Cooperative File System、協調型ファイルシステム)(非特許文献3参照)などがある。しかし、探索パスに沿った全てのノードに参照をコピーすることになるため、この戦略は、ネットワーク全体にデータを分散させるための高いオーバーヘッドを伴う。コンテンツの需要が低い場合でさえも、全ての参加ノードに知らせるために多くのメッセージが生成されることになる。これは、モバイルネットワークにおいては特に望ましくない、必要以上に高いコストをもたらすことになる。
P2Pネットワークにおけるキャッシング及び複製に関する大規模な研究が行われている。この研究の目的は、トラフィックを低減し、主に遅延の低減によって、ユーザ体験の品質を高めることである。
非特許文献4及び非特許文献5は、非構造化P2Pネットワークにおけるキャッシング戦略の、理論的な部分と実証的な部分の両方を含む入念な分析を提供している。これらの研究で行われている重要な仮定は、サーチをランダムとする(すなわち、サーチ技術として、フラッディングではなくランダムウォークが使用される)ことである。この仮定に基づいて、キャッシングの強力な理論モデル及び様々なキャッシング技術の特徴が提供されている。主な結果としては、いわゆる「平方根複製(square root replication)」が最適なキャッシング戦略であるというものである。最適化すべき目標関数は、期待されるサーチサイズ、すなわち、オブジェクトを探し出すためにコンタクトを取るべき平均ホップ数である。
非特許文献6、非特許文献7、及び非特許文献8は、P2Pネットワークにおけるキャッシングを目的とする別グループの研究を示している。しかし、これらの研究は、サーチよりもコンテンツの分散に注目している。これらの研究では、コミュニティ内のピア間でコンテンツを分散させる方が、外からコミュニティにコンテンツを転送するより大幅に安くつくようなP2Pコミュニティ(低速な、又は輻輳したリンクを介して外界に接続されている高速LANを備える大規模な大学キャンパスなど)が検討されている。そのような設定においては、コミュニティ内におけるキャッシュヒット率が、最も関連性を有する最適化すべきメトリックであることが判明している(非特許文献9及び非特許文献10参照)。これらの研究では、コンテンツ複製の問題を、各ピアにまたがってファイルのコピーを割り当てることを目的とした整数計画法の一例として構想して、ピアメンバ構成のダイナミックス(到来及び離脱)が与えられることによりヒット率が最適になるようにしている。重要な貢献として、これらの研究は、最適な複製プロファイルを導出し、このプロファイルに漸近的に接近するようなアルゴリズムを提案している。
また、P2Pネットワークにおけるキャッシングの問題は、分散ハッシュテーブル上に構築された分散ファイルシステムのコンテクストにおいても対処されている。例としては、それぞれ、Chord(非特許文献11参照)及びPastry(非特許文献12参照)の上で実施された、CFS(非特許文献13参照)及びPAST(非特許文献14参照)、ならびにFreenet(非特許文献15参照)が挙げられる。非特許文献13及び非特許文献14においては、ファイル(又はファイルの断片、非特許文献13参照)を、LRU(least recently used、最も長い間使用されていない)置換ポリシを使用して、サーチパス全体に沿ってキャッシュに入れるようにしている。生成されるトラフィックの観点から見ると、このキャッシング戦略は準最適、すなわち、(後で示すように)他のキャッシング戦略より高いトラフィックを生成するものである。しかし、この戦略は、負荷平衡化といった他の要件が考慮に入れられるときには、より有効となり得る。
Akamai(「Akamai Technologies Inc.(www.akamai.com)」参照)などのコンテンツ分散ネットワーク(CDN、content distribution network)は、基本的に、ワールド・ワイド・ウェブのコンテクストにおけるキャッシング及び複製の解決策を提供するものである。CDNは、特定のウェブサイトへのアクセスパターンを調査し、次いで、平均アクセス遅延といった特定の目標が満たされるように、世界中の大規模なサーバ集合上にそれらのコンテンツを複製する。前述の問題と比較すると、主要な違いは、CDNを用いる場合、一部(サブセット)のノードだけがそのコンテンツをキャッシュに入れることができること、及び、CDNがそのサーバをどこに配置すべきか選択するときに大きな自由度を有することである。
前述のように、キャッシングは、P2Pネットワークにおける負荷を平衡化するのに有益な技術ともみなすことができる。これは重要な問題である。というのは、各参加ノードは、典型的には、能力が低く、重い負荷による影響を受けやすいからである。非特許文献16は、この問題に対処するためのキャッシング適用の一例を示している。
前述のように、キャッシング及び複製は、ワールド・ワイド・ウェブの性能を改善するのに有益な技術と認められている。そのような状況において、これらの技術は、(1)ウェブページなどの所望のリソースにアクセスするための遅延を低減することによってユーザ体験の品質を改善し、(2)遠方のリソースではなく近隣のリソースのコピーにアクセスすることによってネットワークトラフィックを低減し、(3)ウェブサーバの負荷を軽減し、その帯域幅要求を低減しようと試みる(非特許文献17参照)。これらのキャッシングの利益は全て、P2Pネットワークにおけるサーチの問題に対して直接移すことができる。P2Pのサーチメッセージは、探索対象の文書又はオブジェクトが見つかるまでに複数のホップを通過するため、遅延を低減することは依然として問題となる。また、進むべきホップ数を低減することは、基礎をなす物理ネットワークにおけるトラフィックを低減することにもなるが、この第3の利益は、キャッシングが、事実上、データ項目のコピーを保持する各ノードにまたがって負荷を分散させることになるので、負荷を平衡化していると言い換えることができる。
1つの重要な態様は、キャッシングによるP2Pサーチの性能の改善である。より具体的に、オブジェクトの集合体を記憶する所与のサイズのP2Pネットワークを検討する。これらのオブジェクトは、ネットワーク内のノードからのクエリの対象である。クエリは、特定の分布、典型的にはZipf分布に従う(あるオブジェクトの度数は、その度数分布表におけるランクに逆比例する)。クエリは、サーチ対象のオブジェクトを指し示すポインタを有するノードが見つかるまで各ノード間で転送される。このノードは、クエリ元のノードにオブジェクトのポインタを送り返して、サーチプロセスを終了させる。クエリ元のノードによって様々なノードから受け取られたポインタの集合をサーチ結果という。ネットワーク内の各ノードは、クエリ、すなわち、クエリの結果をキャッシュするための若干の予備空間を有するものと仮定する。そのため、ノードP1がデータオブジェクトAを記憶していることを知ると、ノードP2は、そのキャッシュに、(A,P1)としてポインタを記憶することができる。オブジェクトAについての新しいクエリがノードP2に届くと、ノードP2は、通常のクエリの転送手順に従うのではなく、ノードP2がキャッシュに入れたショートカットをクエリ元のノードに送り返して、クエリのパスを短縮することができる。このアプローチを考えると次のようないくつかの疑問が生じる。すなわち、(1)最終目標がサーチサイズ、すなわち、あるクエリが通過すべき平均ホップ数を最小化することである場合、ネットワーク内の各ノードのキャッシュにまたがるような前述のやり方での参照の最適分布とはどんなものか、及び(2)その最適分布を達成するための分散アルゴリズムは何か、である。同じ2つの疑問は、サーチサイズを最小化するのではなく、ネットワークトラフィックを最小化したり、負荷を可能な限り均一に分散させたりといったように、達成すべき目標が変わってもやはり繰り返し生じることになる。
P2Pキャッシングに関する文献の大部分は、平均サーチサイズを可能な限り低減するキャッシング技術に注目したものである。しかし、これらの技術は、通常、総ネットワークトラフィック、すなわち、オーバーレイ・ネットワークにおいて生成される全メッセージの総和に関しては、準最適である。以下の極端な例を考える。クエリが解決された後、そのオブジェクトを保持するノードは、ネットワーク内の全てのノードに更新を送ることができる。各ノードが、MFR(most-frequency-requested、最も高い頻度で要求されるもの)といった、適切なキャッシュ置換ポリシを用いれば、サーチサイズは、全てのキャッシュにデータが取り込まれた後で、最小化されるはずである。しかし、これは、ネットワークトラフィックに関して極めて効率が悪い。この非効率性の原因は、以下のように2つある。(1)キャッシングは、キャッシュ参照がネットワーク内のノードのサブセット(クエリのパスに沿った全てのノードなど)に向けて転送(push)されなければならないという意味で事前対応的でなければならない。(2)したがって、キャッシュにデータを取り込むことはコストがかかり、これらのコストは、ネットワークトラフィックを測るときに考慮に入れられなければならない。ネットワークトラフィックは、その運用コストを低減し、なおかつ、そのユーザ体験の品質を高めようとするオーバーレイ運用者にとって、より重要な問題となり得る。
J.Kangasharju,K.W.Ross及びD.A.Turner,「Adaptive Content Management in Structured P2P Communities」,in Proceedings of the First International Conference on Scalable Information Systems(Infoscale),Barkeley,CA,USA,2003 I.Stoica,R.Morris,D.Karger,F.Kaashoek及びH.Balakrishnan,「Chord:A Scalable Peer−To−Peer Lookup Service for Internet Applications」,in proceeding of the 2001 ACM SIGCOMM Conference,2001,pp.149−160 F.Dabek,M.F.Kaashoek,D.Karger,R.Morris及びI.Stoica,「Widearea cooperative storage with CFS」,in Proceedings of the 18th ACM Symposium on Operating Systems Principles(SOSP’01),Chateau Lake Louise,Banff,Canada,October 2001 E.Cohen及びS.Shenker,「Replication strategies in un−structured peer−to−peer networks」,in SIGCOMM2002,Pittsburgh,USA,2002 Q.Lv,P.Cao,E.Cohen,K.Li及びS.Shenker,「Search and replication in unstructured peer−to−peer networks」,International Conference on Supercomputing,New York,USA,2002,pp.84−95 S.Iyer,A.Rowstron、及びP.Druschel,「SQUIRREL:A decentralized,peer−to−peer web cache」,in Proceedings of 12th ACM Symposium on Principles of Distributed Computing(PODC 2002),Monterey,CA,USA,2002 J.Kangasharju,K.W.Ross及びD.A.Turner,「Adaptive Content Management in Structured P2P Communities」,in Proceedings of the First International Conference on Scalable Information Systems(Infoscale),Barkeley,CA,USA,2003 J.Kangasharju,K.W.Ross及びD.A.Turner,「Optimizing File Availability in P2P Content Distribution」,Proceedings of the IEEE Infocom Conference,Anchorage,AK,USA,2007 J.Kangasharju,K.W.Ross及びD.A.Turner,「Adaptive Content Management in Structured P2P Communities」,in Proceedings of the First International Conference on Scalable Information Systems(Infoscale),Barkeley,CA,USA,2003 J.Kangasharju,K.W.Ross及びD.A.Turner,「Optimizing File Availability in P2P Content Distribution」,Proceedings of the IEEE Infocom Conference,Anchorage,AK,USA,2007 I.Stoica,R.Morris,D.Karger,F.Kaashoek及びH.Balakrishnan,「Chord:A Scalable Peer−To−Peer Lookup Service for Internet Applications」,in proceeding of the 2001 ACM SIGCOMM Conference,2001,pp.149−160 A.Rowstron及びP.Druschel,「Pastry:Scalable,distributed object location and routing for large−scale peer−to−peer systems」,in IFIP/ACM International Conference on Distributed Systems Platforms(Middleware),nov 2001,pp.329−350 F.Dabek,M.F.Kaashoek,D.Karger,R.Morris及びI.Stoica,「Widearea cooperative storage with CFS」,in Proceedings of the 18th ACM Symposium on Operating Systems Principles(SOSP’01),Chateau Lake Louise,Banff,Canada,October 2001 A.Rowstron及びP.Druschel、「Storage management and caching in PAST,a large−scale,persistent peer−to−peer storage utility」,ACM Symposium on Operating Systems Principles(SOSP’01),2001 I.Clarke,S.G.Miller,T.W.Hong,O.Sandberg及びB.Wiley,「Protecting free expression online with freenet」、IEEE Internet Computing,vol.6,no.1,pp.40−49,2002 V.Gopalakrishnan,B.Silaghi,B.Bhattacharjee及びP.Keleher,「Adaptive replication in peer−to−peer systems」in Proc.of the 24th International Conference on Distributed Computing Systems(ICDCS),Tokyo,Japan,2004 A.Feldmann,R.Caceres,F.Douglis,G.Glass及びM.Rabinovich,「Performance of Web Proxy Caching in Heterogeneous Bandwidth Environments」,Proceedings of the IEEE Infocom Conference,New York,USA,1999 E.Cohen及びS.Shenker,「Replication strategies in unstructured peer−to−peer networks」,in SIGCOMM2002,Pittsburgh,USA,2002 Q.Lv,P.Cao,E.Cohen,K.Li及びS.Shenker,「Search and replication in unstructured peer−to−peer networks」,International Conference on Supercomputing,New York,USA,2002,pp.84−95 F.Dabek,M.F.Kaashoek,D.Karger,R.Morris及びI.Stoica,「Widearea cooperative storage with CFS」,in Proceedings of the 18th ACM Symposium on Operating Systems Principles(SOSP’01),Chateau Lake Louise,Banff,Canada,October 2001 A.Rowstron及びP.Druschel、「Storage management and caching in PAST,a large−scale,persistent peer−to−peer storage utility」,ACM Symposium on Operating Systems Principles(SOSP’01),2001
本発明の目的は、ネットワーク内の探索パス長及びトラフィックの低減を可能にする、自己組織型分散オーバーレイ・ネットワーク内でクエリ(問い合わせ)の結果をキャッシュに入れる確実な手法を提供することである。
この目的は、請求項1に記載の方法、請求項13に記載のコンピュータプログラム、請求項14に記載のノード、及び請求項15に記載の自己組織型分散オーバーレイ・ネットワークによって解決される。
本発明の各実施形態は、自己組織型分散オーバーレイ・ネットワークにおいて、前記ネットワーク内のノードと関連付けられたオブジェクトへの参照(reference)を分散させる方法を提供する。当該方法において、前記参照は、前記ネットワークの現在のノードに記憶されており、当該方法は、
現在のノードにおいて、前記オブジェクトについてのクエリ(問い合わせ)を受信するステップと、
前記オブジェクトについての受信されたクエリの数を判定するステップと、
前記オブジェクトについての前記受信されたクエリの数が所定の閾値に達した場合に、前記参照をネットワークにおいて分散させるステップと
を含む。
本発明はさらに、プロセッサが実行する際に、本発明による方法を実行する命令を備えるコンピュータプログラムを提供する。
本発明はさらに、自己組織型分散オーバーレイ・ネットワークにおけるノードを提供する。当該ノードは、ネットワーク内のノードと関連付けられたオブジェクトへの参照と、本発明の方法に従ってネットワーク内のオブジェクトへの参照を分散させるように構成されている処理装置とを備えるものである。
さらに、本発明は、本発明の方法を実施する複数のノードを備える自己組織型分散オーバーレイ・ネットワークを提供する。
本発明の方法の好ましい実施形態は、従属請求項において定義されている。
前述の研究は、キャッシングがどのように働くかについての重要な洞察を提供する。これらの研究で論じられている手法がDHTに適用されてもよいが、これらの手法はサーチの時間又は長さを最小化しようとするものであり、他方、本発明は、DHTにおけるキャッシングを最小化するものである。第1に、非特許文献18及び非特許文献19のモデルと、DHTにおけるキャッシングとの基本的な違いは、DHTにおいてはランダムサーチの仮定が当てはまらないことである。第2に、最適性の尺度としてDHTの総運用コストに主眼が置かれる。これは、非特許文献18及び非特許文献19にはない複製自体のコストも含むという意味において、期待されるサーチサイズとは異なる。正確には、オブジェクトが、オブジェクトの提供するもの及び消費するもの以外のノードによってキャッシュに入れられる必要があるとき(非特許文献19の「パス複製」など)には、オブジェクトの複製を分散させるコストが生じる。これらのコストは、非特許文献18及び非特許文献19のモデルではカバーされていない。本発明の実施形態によって考慮されるメトリックは、そうしたコストを含む。
より具体的には、最新技術のDHTのためのキャッシング解決法では、サーチパス全体、すなわち、クエリ結果を通過させる全てのノードに沿ってクエリの結果をキャッシュに入れるが、本発明の実施形態に係る手法は異なる。分散型のプッシュベースのキャッシング法(アルゴリズム)が導入され、ネットワーク内の各ノードは、記憶されたオブジェクトへの参照を、それらの参照が高頻度で要求される場合に限り、探索パス内の各ノードの先行するノードに向けてプッシュ(転送)する。各ノードは、クエリの度数を測るための簡単なデータ構造を保持する。クエリの度数がある一定の閾値を上回るときに限り、クエリ結果が、偶然そのクエリを現在のノードまでルーティング(経路指定)することになった各ノードにプッシュバックされる。このアルゴリズムは、探索パス長(ホップ数)及び探索トラフィックの総量の大幅な低減をもたらす。また、アルゴリズムの最適構成、すなわち、最適な度数閾値も存在し、この閾値は、シミュレーションによって見つけることができる。
本発明の実施形態は、クエリの成功の確率を大幅に増大させる分散型のプッシュベースのキャッシング法(アルゴリズム)を提示する。この手法によれば、ネットワーク内の各ノードは、記憶されたオブジェクトへの参照を、それらの参照が高頻度で要求される場合に限り、探索パス内の各ノードの先行するノードに向けてプッシュする。この手法は、探索パス長(ホップ数)及び探索トラフィックの総量の大幅な低減をもたらす。
本発明の実施形態は、オンデマンド式プッシュ法(アルゴリズム)を使用し、段階的に後方に向けて各ノードのキャッシュにデータを取り込む。各参照は、一度にパス全体に沿って分散されるのではなく、コピーの数は、需要の増大に従ってのみ増大する。この分散アルゴリズムは、P2Pネットワークにおけるクエリ要求の不均一な分布に適合することのできる適応型のコンテンツ複製をもたらすことになる。獲得される可用性が増大すると、要求された参照を記憶する責任を負うピアに障害が発生している場合でさえも、クエリ結果を獲得する確率が高まる。
本発明の実施形態によれば、各ピアは、各ピアがルーティング(経路指定)するクエリに基づいて、クエリ度数を追跡する。所与のオブジェクトを求める十分に高い要求が検出されるときに限り、ピアは、それに対応するキャッシュ参照を、それ以前に偶然その関与するオブジェクトについてのクエリを転送することになった前の各ホップ(そのクエリを転送した各ノード)に送る。十分に高い要求であるかは、前の各ホップに向けてクエリをプッシュするために超える必要のあるクエリの度数閾値として定義され得る。この閾値の最適値が存在し、この最適値は、他のパラメータ(ネットワークサイズ、ネットワーク動作時間など)が変化するときにごくわずかだけ変化する。
本発明の手法は、任意のピア・ツー・ピア通信システムにおいて有益となり得る。この手法が主に貢献するのはキャッシングによるオーバーレイ・トラフィックの低減に対してであり、したがって、基礎をなすネットワークの観点から見て有益なものである。本発明の手法は、特に、クエリの応答時間の短縮によりDHTオーバーレイ運用者のユーザにとって有益となり、トラフィック全体の低減により基礎をなす物理ネットワーク運用者にとっても有益となり得る。
一般に、キャッシングの利点は、ネットワークリソースにアクセスする際の待ち時間が小さいこと、及びアクセスと関連付けられるトラフィックを減らせることである。これら2つの利点のうち、前者はユーザにとってより重要であり、物理ネットワーク運用者にとっては、後者がより重要な関心対象となり得る。本発明の実施形態によって定義される手法は、これら2つの利点をもたらす。探索パス長の短縮により、この手法は、総クエリ実行時間を短縮する。探索パス長の短縮の別の効果は、サーチトラフィックの低減である。しかし、探索パスに沿ってクエリ対象のコンテンツへの参照をプッシュすることによるトラフィックの増大も生じることに留意する必要がある。この増大は、探索パスの短縮というプラスの効果によって相殺され、最終的な効果は、実際のところ、プラスになることが以下で明らかになる。
いくつかの別の利点もある。典型的なP2Pシステムにおける各ノードの揮発性を考えると、探索パスの短縮は、クエリの成功の確率の増大と関連付けられる。また、本発明の実施形態によって定義されるキャッシングアルゴリズムは、前述の低減を高速で達成すること、すなわち、各ノードにまたがってキャッシュ参照を効率的に分散させることが、各ノードが平均で数十件のクエリを送った後だけで達成されることも以下で明らかになる。よって、クエリ分布が動的に変化するときに、それらの変化をより効率的に追跡することができる。
本発明に係るネットワーク内のノード間でオブジェクトへの参照を分散させる方法を示すためのピア・ツー・ピア・ネットワークの一部の概略図である。 本発明の方法を実施する要素を示すノードの概略図である。 本発明の一実施形態に係る方法を実施するアルゴリズムを擬似コードとして示す図である。 ピア・ツー・ピア・ネットワーク内の総トラフィックを、ネットワーク運用における様々な時間についてのクエリ度数の閾値の関数として示すグラフである。 総トラフィックを、様々なクエリ分布パラメータについてのクエリ度数の閾値の関数として示すグラフである。 総トラフィックを、様々なネットワークサイズについてのクエリ度数の閾値の関数として示すグラフである。 総トラフィックを、クエリ分布の追跡ありとなしとの場合(w=あり、w/o=なし)について、1ノード当たりで送られたクエリの数の関数として示すグラフである。 総トラフィックを、クエリの分布の追跡ありとなしとの場合について、Zipf分布パラメータの関数として示すグラフである。 総トラフィックを、ネットワークサイズの関数として示すグラフである。
以下では、本発明の好ましい実施形態を、添付の図を参照して、さらに詳細に説明する。
以下で、本発明の好ましい実施形態をさらに詳細に説明する。参照(reference)及びポインタという用語は、同じものを意味するものとして使用する。オブジェクトという用語は、多くの場合、データオブジェクトを指し示すポインタを表わすのに使用する。その意味は文脈から明らかとなる。
図1は、複数のノードNを含むピア・ツー・ピア・ネットワークの一部の概略図である。図1には、複数のノードのうちの3つのクエリ元のノード(問い合わせ元のノード)Q、Q及びQが示されており、これらのノードは、ネットワーク全体の内部において、文字「A」で示されるノードのところに記憶されたオブジェクトAを求めるクエリ(問い合わせ)を発行する。個々のノードQからQからのクエリは、オブジェクトAと関連付けられたノードが見つかるまで、いくつかの中間ノード(ホップ)を通過する必要がある。ノードが見つかると、オブジェクトAと関連付けられたノードへの参照が、個々のクエリ元のノードQ、Q及び/又はQに返される。次いで、この情報を使用して、個々のクエリ元のノードは、所望のオブジェクトA、例えば、オーディオコンテンツやビデオコンテンツ、ファイル、文書、サービス、特定のプロバイダなどのような特定のコンテンツにアクセスする。
従来のアプローチは、クエリのパスに沿った各ノードごとに、すなわち、図1に示す、クエリ元のノードQ、Q又はQとノードAとの間にある各ノードごとに、オブジェクトAへの参照をキャッシュに入れることを教示している。このアプローチは、不利であり、したがって、本発明は、オブジェクトAへの参照を分散させる改善された手法を提供する。
ノード100は、すでにオブジェクトAへの参照を保持しているものと仮定する。ノード100を「現在のノード」と呼び、ノード100は、以下のいずれかによりオブジェクトAへの参照を受信する。1つは、ネットワーク内の別のノード(不図示)からオブジェクトAへの参照を受け取ること、もう1つは、現在のノード100がノードAについてのクエリを生成し、これに応答してオブジェクトAへの参照を得て、これによりオブジェクトAへの参照を受け取ることである。
クエリ元のノードQからQからの各クエリは、クエリパスに沿ってネットワークにおいて経路指定(ルーティング)される。ここで、クエリパスとは、クエリがクエリ元のノードからオブジェクトを保持するノードに至るまで通過するいくつかのホップ(ノード)を含むものである。
本発明によれば、すでにノード100に記憶されているオブジェクトAへの参照は、特定のクエリパスに沿った全てのノードに自動的に転送されるのではない。そうではなく、ノード100内に記憶された他のノードへの参照のいかなる分散も、オブジェクトAについてのクエリがノード100においてどれ程の頻度で受信されたかに応じて行われる。ノード100において受信されたオブジェクトAを求める要求の度数が、所定の閾値に達した場合に、そのクエリをノード100に転送したノードのうちの1つ以上に、オブジェクトAへの参照のコピーが提供される。図1に示す例では、そのような状況において、ノード102及び104に、オブジェクトAへの参照のコピーが提供されるはずである。より具体的には、ノード100においてオブジェクトAについてのクエリを受信すると、オブジェクトAについての受信されたクエリの数、すなわち、ノード100において受信されたオブジェクトAについてのクエリの数が判定され、この数が所定の閾値に達した場合には、オブジェクトAへの参照がピア・ツー・ピア・ネットワーク内で分散される。好ましい実施形態によれば、現在のノード100からの参照は、オブジェクトAについての1つ以上のクエリを現在のノード100に転送した、ノード102及び104のような1つ以上のノードに転送される。
以下で、様々なシミュレーション結果に基づいてさらに詳細に説明されるように、本発明のアプローチは、ピア・ツー・ピア・ネットワーク全体の中でのネットワークトラフィックの大幅な低減を可能にする。
好ましい実施形態によれば、本発明は、ノード100において、転送ノード(例えばノード102など)からオブジェクトAのような特定のオブジェクトについてのクエリを受信するための方法を提供する。ここで、ノード100において受信するクエリは、クエリ元のノードQによって生成されたクエリである。クエリ元のノードQ又はQによって生成されたクエリを受信するときにも類似のアプローチが取られることがわかる。ノード100において、クエリと、例えばノード102やノード104などの、そのクエリを転送した関連ノード、いわゆる「転送ノード」とが、テーブル(表)などに記憶される。より具体的には、オブジェクトAについてのクエリは、特定のクエリ識別、いわゆる「queryID(クエリID)」と関連付けられ、転送ノードは、ノード識別、いわゆるnodeID(ノードID)と関連付けられている。現在のノード100において受信される各クエリのqueryID及びnodeIDは、現在のノード100内のテーブルにエントリとして記憶され、ノード100において受信される各クエリごとに、テーブル内の個々のエントリが生成される。このようにして記憶された情報に基づいて、オブジェクトAについてのクエリの数が判定される。クエリの数は、テーブル内の全エントリ数に対する、オブジェクトAについてのqueryIDを含むエントリ数の比によって判定される。この比が所定の閾値pに達したと判定される場合に、ノード100のキャッシュ内に記憶された参照が、個々のテーブルのエントリに記憶されたnodeIDで識別されるノード、例えば、ノード102やノード104などに転送される。
あるいは、テーブルを使用する代わりに、現在のノード100は、複数のカウンタを備えることができる。オブジェクトAなどの特定のオブジェクトについての各クエリが発生するごとに、関連付けられたカウンタが増分される。また、個々のクエリを受信した相手先のノードも記憶される。カウンタが特定のカウントに達すると、オブジェクトAへの参照は、現在のノード100から、記憶されている各ノード(クエリを転送した各ノード、例えば、ノード102やノード104)に分散され得る。カウンタを使用するとき、カウンタは、所定の開始値に設定され、増分又は減分されて所定のカウント、すなわち所定の閾値に達すると、各ノードへのキャッシュ参照の転送が開始される。
受信側のノード102及び104では、現在のノード100から転送されたオブジェクトAへの参照が記憶される。これらの、本発明の方法を実施するノード102及び104においても、類似のプロセスが開始される。よって、ノード104及び106において、例えば、クエリ元のノードQ及びQから、所定の数のオブジェクトAについてのクエリの数が受信された後に、ノード104に記憶された参照は、ノード106及び108に転送され、そこで記憶される。
図1に関して、本発明は、オブジェクトAのような単一のオブジェクトについてのクエリだけに限定されないことがわかる。そうではなく、むしろ、多くのオブジェクトがピア・ツー・ピア・ネットワーク内の1つ以上のノードと関連付けられ、そのため、多くの異なるオブジェクトについてのクエリがネットワークを通過する。よって、現在のノード100では、特定のクエリを受信すると、まず第1に、現在のノードがその特定のオブジェクトへの参照を含むかどうかが判定される。現在のノード100に、オブジェクトAへの参照など、そのような参照がある場合、サーチパスは現在のノード100で終了し、情報が、ノードQからQのうちの1つなど、クエリを生成したクエリ元のノードに直接返される。同時に、現在のノード100においては、その特定のオブジェクトについてのクエリの数も、例えば、前述のようなテーブルを更新することなどによって更新される。現在のノード100は、現在のノード100にその参照があるオブジェクトについてのエントリ、すなわち、オブジェクトAについてのクエリに関するエントリを導入するのみならず、現在のノード100のキャッシュにその参照がない他のオブジェクトについて受信されたクエリも、そのテーブルに導入することがわかる。これは、そのような状況においては、現在のノードにそれについての参照がない、現在のノード100を介してルーティング(経路指定)される特定のオブジェクトについてのクエリが記憶されるため有利である。現在のノード100が、特定のオブジェクトを求める要求を転送した相手先のノードから参照を受信する場合、現在のノード100は、この特定のオブジェクトについては、すでに所定の閾値に達しているため、この参照は、ノード102及び104のような、先に現在のノード100にクエリを転送した他のノードに転送されてもよいと判定し得る。このアプローチは、現在のノード100にそのオブジェクトへの参照があるか否かにかかわらず、現在のノード100が、特定のオブジェクトについて最も高頻度で受信されたクエリを追跡することを確実にする。加えて、このアプローチは、現在のノード100が特定のオブジェクトへの参照を保持せず、その特定のオブジェクトについてのクエリの数がまだ閾値に達していない状況においても有利である。この場合、現在のノード100が別のノードから特定のオブジェクトへの参照のコピーを受信すると、現在のノード100においては、その特定のオブジェクトについてのより少数のクエリが受信されるだけで、その前のノード102及び104への参照のさらなる分散が開始される。
図1に関して、現在のノードは、オブジェクトAについてのクエリを生成し、クエリに応答して参照を受信したノードとすることができ、すなわち、現在のノード100は、クエリ元のノードとすることもできることがわかる。
図2に、ネットワークへの接続、すなわち、ネットワーク内の他のノードへの接続のための入力/出力110を備える現在のノード100の概略図を示す。
ノード100は、処理装置112と記憶装置114を備えている。記憶装置114は、キャッシュメモリ114aとテーブル114bとを備える。キャッシュメモリ114aは、前述のオブジェクトAのような、ネットワーク内の様々なオブジェクトへの参照をキャッシュに入れるために設けられている。テーブル114bは、様々なクエリ及びそれに関連付けられたノードのエントリを保持して、これにより、テーブルのコンテンツを使用して、マイクロコントローラ又は処理装置112が、キャッシュに記憶されている任意の参照がネットワーク内の特定のノードに転送されるべきかどうか判定することができるようにする。ノード100は、例えば、必要なネットワーク接続を有するコンピュータとすることもでき、このコンピュータは、プロセッサ112が実行する際に本発明の方法を実行する命令を受け取ることができる。これらの命令は、コンピュータプログラムとしてプロセッサに提供されてもよく、コンピュータプログラムとは、プロセッサの諸機能に関与するコード、アルゴリズム、ルーチン又は命令を含む任意のものを指す。コンピュータ読取可能な媒体の一般的なものとしては、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、CD−ROM、DVD、ブルー・レイ・ディスク、他の任意の光媒体、RAM、PROM、EPROM、フラッシュEPROM、他の任意のメモリチップ又はキャリッジ、データ又は命令を搬送する搬送波、そのような搬送波を搬送するケーブル又はリンク、あるいはコンピュータがそこからプログラミングコード及び/又はデータを読み取り得る他の任意の媒体が含まれる。
図3に関して、図1及び図2に示す各ノード上で実装される実施形態を説明する。この実施形態は、P2Pネットワーク内のオブジェクトへの参照を分散させるものである。
この方法(アルゴリズム)は、その参照を求める高い需要が検出されている場合に限り、参照のコピーを分散させるという点で、プッシュベースのものである。図1及び図2との関連で前述したように、あらゆるピア(ノード100、102、104、106、108など)は、
(1)キャッシュ参照を保持するキャッシュ114aと、
(2)どの参照が他のノードにプッシュ(転送)されるべきか判定するのに使用されるクエリ対象のIDのテーブル114b
という2つのデータ構造を保持している。
クエリ対象のIDのテーブル114bは、(queriedID,previousHop)という形のエントリを含む。テーブル114b内の各エントリは、クエリ対象のオブジェクトのID(queriedID)、及び対応するクエリを転送したその前のホップを記録する。ノードは、クエリをルーティング(経路指定)するたびに、テーブル114bに新しいエントリを追加する。
第2のステップとして、ノードは、クエリ対象のIDの相対度数(テーブル114bのサイズに対するそのクエリIDを有するエントリの割合など)を計算する。その相対度数がある一定の閾値を超える場合であり、ノードのキャッシュがクエリ対象のオブジェクトの参照を保持している場合、その参照は、偶然、同じIDについての最近のクエリにおいて前のホップとなった全てのノード(そのコンタクト情報がノードのテーブル114bに存在する全てのノード)に向けてプッシュ(転送)される。テーブルのサイズの限界を超えた場合には、古いエントリが置換される。置換ポリシはLRUである。
この方法(アルゴリズム)は、図3に示す擬似コードにおいて2つの関数として示されている。
図3の行1に示すように、関数「sendCacheUpdate」は、例えば、図1に示すノード100など、そのノードがqueriedIDに責任を負う場合を含めて、ノードがクエリをルーティング(経路指定)するたびに呼び出される。この関数の呼出しと共に、クエリ元、すなわち、図1に示すノードQ、Q又はQのようなクエリを生成したノードと、クエリの識別であるqueryIDと、いわゆる「previousHop」と、閾値pに関する情報とが獲得される。この関数の呼出しは、現在のノード100のルーティングハンドラからのものであり、このルーティングハンドラでは、前述の呼出しのパラメータ、すなわち、クエリ元と、queryIDと、previousHopと、閾値pとが解決される。現在のノード100のキャッシュ114aがqueriedIDを含むかどうかが判定される(図3の行3参照)。ノード100のキャッシュ114aにqueriedIDがある場合、ノード100は、図3の行4に示すように、図1のオブジェクトAのようなクエリ対象のオブジェクトへの参照を、クエリ元のノード、すなわち、ノードQからQのうちの1つのようなクエリ発行ノード(queryIssuer)に返す関数queryIssuer.sendを呼び出すことによって、その応答をクエリ元のノードに送り返す。その後、図3の行6に示すように、ペア(previousHop,queryID)をクエリテーブル114bに追加することによって、クエリの度数に関する統計が更新される。
受信されたクエリに関して閾値pに達しているかどうか判定するために、図3の行7に示すように、受信されたqueryIDを有するテーブル内の全てのエントリが獲得される。queryIDが十分に高頻度である、すなわち、その度数がある一定の閾値pを超える場合であり、キャッシュ114aがqueriedIDへの参照を含む場合(図3の行8参照)には、図3の行9に示すように、偶然そのqueryIDを現在のノード100までルーティング(経路指定)するときに前のノードになった全てのノードが検索される。図3に示すように、行8で、本実施形態に従い、テーブルのサイズに対するqueryIDを有するエントリの比が求められ、閾値pと比較され、閾値を上回り、キャッシュが要求された参照を含む場合には、図3の行9でpreviousHopが獲得される。queryIDと関連付けられた参照、例えば、そのIDに責任を負うノードのアドレスを含むqueriedIDに関する完全な情報が、図3の行11に示すように、見つかった全てのprevousHopに送られる。
行15から行18までは、現在のノードから、queryIDと関連付けられた情報を受信するノードにおいて呼び出される関数を示している。関数「sendCacheUpdate」に応答して、queryID及びnodeID(オブジェクトAへの参照)をパラメータとして含む、関数「receiveCacheUpdate」が呼び出される。この関数を実行するノードは、そのキャッシュ114aを、受信したデータ項目で更新する。キャッシュの更新ポリシは、MFR(最も高頻度で要求されるもの)とすることができる。しかし、例えば、ランダム置換やLRU置換といった、他のキャッシュ置換ポリシも使用され得る。後述するシミュレーションにおいては、ピア・ツー・ピア・ネットワークの各ノードのキャッシュメモリにおける異なる置換ポリシの使用に関して、大きな違いは観測されなかった。
以下に、前述のキャッシングアルゴリズムの評価を示す。最初に、シミュレーション設定を、次いで、関連する結果を説明する。
シミュレーション設定
本発明の実施形態に係る方法(アルゴリズム)は、非構造化P2PネットワークにもDHTにも適用可能である。以下の結果は、DHTルーティングに主眼が置かれたため、DHTに当てはまるものである。全ての試験は、典型的なDHT表現としてのChordについて行われた。500ノード、1000ノード、1500ノード、及び2000ノードを有するネットワークがシミュレートされた。シナリオによっては、結果が、これらの値の一部についてだけ示されている。
各シミュレーションの主要目標は以下のとおりである。
(1)本発明のアルゴリズムが、最新技術のDHTキャッシング解決法と比べて、重要な利益をもたらすことを実証すること
(2)入力パラメータが変化する際の最適アルゴリズム構成を見つけること。より具体的には、第2の目標は、ネットワークサイズやクエリの分布といった外生パラメータが変化する際の最適な度数閾値を見つけることである。
キャッシングの利益を測るために、システム内で生成されるトラフィックの総量から導出されるメトリックが以下のように使用される。
クエリは、選択されたクエリ分布に従って無作為に生成され、システム稼働中に生成される全てのクエリ及びキャッシングメッセージがカウントされる。これが、本発明のキャッシングアルゴリズム(又は最新技術のキャッシングアルゴリズム)が配備されたシステムについてと、キャッシングを全く備えないシステムについて行われる。
次いで、キャッシングありとキャッシングなしで生成されたトラフィックの比が計算される。例えば、特定のキャッシングアルゴリズムでの値0.6は、同じクエリの負荷がキャッシングなしのシステムにおいて繰り返される場合と比べて、40%のトラフィック低減が達成されたことを意味する。カウントされるメッセージは、通常のルーティングメッセージ、クエリ応答、ならびにキャッシングメッセージを含む。最新技術のアルゴリズムはキャッシングメッセージをカウントしないことを明記しておく。
シミュレーション結果
図4に、総トラフィックの低減を、異なるシミュレーション時間、すなわち、1ノード当たりで発行された異なる平均クエリ数についてのクエリの度数閾値の関数として示す。全てのグラフにおけるクエリ分布は、パラメータ0.2を有するZipfである。この分布は、典型的なP2Pファイル共用ネットワークにおいて期待されるものである。最上部の曲線は、各ノードが平均で10件のクエリを発行したときの、すなわち、1ノード当たりの平均クエリ発行率を毎秒0.1とした場合の100秒のシミュレーション時間の後の総トラフィックを示している。1ノード当たりで発行される平均クエリ数は、図の下に行くに従って10件ずつ増加している。
図4の結果に基づいて2つの重要な知見が得られる。第1に、総トラフィックは常に100%をはるかに下回っている。これは、ルーティング(経路指定)されたクエリの度数を追跡し、観測されるクエリ分布に従ってデータを複製することが、トラフィック低減の点で利益をもたらすことを意味する。しかし、見出すべき重要な知見は、曲線の中間のあたりに、0.2から0.4までの度数閾値の値に対応する、トラフィック低減が最も高い、すなわち、総生成トラフィックが可能限り最小となるような領域があることである。より具体的には、各曲線には、トラフィックを最小化する、すなわち、トラフィック低減を最大化する度数閾値pの特定の最適値がある。この値は常に0.2から0.4の間にあり、トラフィックはこの領域においてはあまり変化しないため、中央値の0.3が最適な度数閾値として使用され得る。
図5及び図6に、他のパラメータ、特に、クエリ分布パラメータ(図5参照)とネットワークサイズ(図6参照)が変化するときに、この選択が最適なまま維持されていることを示す。クエリ分布パラメータの異なる値についてのトラフィック低減を示す図5においては、(明瞭さは劣るが)類似の挙動、すなわち、最適な度数閾値の存在が見られる。この傾向は、Zipfパラメータの各値ごとに、特に、典型的なP2P配備において観測される0.3を下回る値の場合に存在する。同じことが、異なるネットワークサイズについてトラフィックが度数閾値と共にどのように変化するかを示す図6の各曲線についても当てはまる。図5と図6におけるシミュレーション時間は、それぞれ、600秒と500秒である。
図7では、本発明のキャッシングアルゴリズムの利益(下の2曲線)と、データがクエリパス全体に沿って複製される最新技術のキャッシング解決法(非特許文献20や非特許文献21など)によって生じる利益(上の2曲線)を比較している。本発明のアルゴリズムは、クエリの度数閾値の最適値、すなわち、p=0.3を使用するように調整されている。2つの異なるZipfパラメータ、0.1及び0.2についての結果が示されている。したがって、(上から見て)第1の曲線は第3の曲線と比較され、第2の曲線は第4の曲線と比較される必要がある。クエリ分布がほぼ均一である(Zipf分布パラメータが0.1である、すなわち、第1と第3の曲線)とき、本発明のキャッシングアルゴリズムは、25%から30%までの間のさらなるトラフィック低減をもたらす。典型的なクエリ分布(Zipfパラメータ0.2)の場合、利益は20%前後である。対応する曲線間の差は、発行されるクエリの平均数がグラフに示される限界を超えて増大するに従って減少するが、これらの差は、システム内の各ノードが平均で3000件のクエリを発行したときでさえも、10%を上回ったままであることに留意されたい。
この知見は、より高速で変化するクエリ分布を有する、より動的なシステムが、本発明のキャッシング法を使用すれば、より大きな利益が得られる可能性があることを意味する。これらのダイナミックスは、前述の従来技術の文献においては無視されている。したがって、本発明の解決法は、実際の配備に際してはさらに一層有利になる。
図8は、トラフィックがどれほどクエリ分布パラメータに依存するかを示している。上の曲線は、完全パス複製に属し、下の曲線は本発明のキャッシングアルゴリズムに属する。この場合もやはり、クエリの度数閾値は0.3に設定されている。トラフィックの低減度は、より小さい分布パラメータでより大きく、パラメータが増大するに従って減少する。0.4以上の値は、ファイル共用といった典型的なP2P配備においてはほとんど起こり得ないことに留意されたい。
ネットワークサイズは、前述の全ての実験において一定(1500ノード)であった。最後の実験は、ネットワークサイズが変化するときにこれら全ての数がどのように変化するか評価するものである。図9は、これを、100秒(1ノード当たり10件のクエリ)と600秒(1ノード当たり60件のクエリ)という、2つの異なるシミュレーション時間の値について示している。図9から導くべき主要な結論は、前述の各図からの全ての知見がより大規模なネットワークについても有効のままであるというものである。

Claims (15)

  1. 自己組織型分散オーバーレイ・ネットワークにおいて前記ネットワーク内のあるノードと関連付けられたあるオブジェクト(A)への参照を分散させる方法であって、前記参照は、前記ネットワークの現在のノード(100)に記憶されており、
    前記現在のノード(100)において、前記オブジェクトについてのクエリを受信するステップと、
    前記オブジェクトについての受信されたクエリの数を判定するステップと、
    前記オブジェクト(A)についての前記受信されたクエリの数が所定の閾値(p)に達した場合に、前記参照を前記ネットワークにおいて分散させるステップと
    を含む方法。
  2. 前記分散させるステップは、前記現在のノード(100)へと前記オブジェクト(A)についての1つ以上のクエリを転送した1つ以上のノード(102、104)へ、前記参照を、前記現在のノード(100)から分散させるステップを含む、請求項1に記載の方法。
  3. 前記受信するステップは、
    前記ネットワーク内のある転送ノード(102、104)から特定のオブジェクトと関連付けられたクエリを受信するステップであって、前記クエリが、クエリ元のノード(Q、Q、Q)によって生成されたものである、ステップと、
    前記クエリ及び関連付けられた転送ノードを記憶するステップと
    を含み、
    前記判定するステップは、
    前記記憶されたクエリに基づいて、前記特定のオブジェクトについての前記クエリの数を判定するステップを含み、
    前記分散させるステップは、
    前記参照を前記記憶された転送ノードに転送するステップと、
    前記転送ノードにおいて前記参照を記憶するステップと
    を含む、請求項1又は2に記載の方法。
  4. 前記現在のノードが前記特定のオブジェクトへの参照を含むかどうかを判定するステップと、
    前記現在のノードが前記特定のオブジェクトへの参照を含む場合に、前記参照を前記クエリ元のノード(Q、Q、Q)に送るステップと
    を更に含み、
    前記分散させるステップは、前記現在のノード(100)が前記特定のオブジェクトについての前記参照を含む場合に、前記参照を転送するステップを含む、請求項3に記載の方法。
  5. 前記クエリ元のノードが、転送ノードである、請求項3又は4に記載の方法。
  6. 前記ネットワークが、複数の異なるオブジェクトを含むものである、請求項3ないし5のいずれか一項に記載の方法。
  7. 前記記憶するステップは、前記特定のオブジェクトについての前記クエリのためのクエリ識別及び前記転送ノードのためのノード識別を記憶するステップを含む、請求項3ないし6のいずれか一項に記載の方法。
  8. 前記クエリ識別及び前記ノード識別はテーブルのエントリとして記憶され、
    前記現在のノードにおいて受信された各クエリごとに前記テーブルにおいてエントリが生成され、
    前記特定のオブジェクトについての前記クエリの数を判定するステップは、
    前記テーブル内の全エントリ数に対する、前記特定のオブジェクトへのクエリのための前記クエリ識別を保持する前記テーブル内のエントリ数の比を決定するステップと、
    前記比を前記所定の閾値と比較するステップと
    を含む、請求項7に記載の方法。
  9. 前記記憶するステップは、
    前記特定のオブジェクトについての受信されたクエリごとにカウンタを増分又は減分するステップを含み、
    前記クエリの数を判定するステップは、
    前記カウンタの現在のカウントを判定するステップを含む、請求項3ないし6のいずれか一項に記載の方法。
  10. 前記現在のノードは、前記オブジェクトについてのクエリを生成し、出力したことに応答して、又はクエリ元のノードによって生成された前記クエリを転送したことに応答して、前記オブジェクトへの前記参照を獲得するものである、請求項1ないし9のいずれか一項に記載の方法。
  11. 前記オブジェクトは、所定のコンテンツ、ファイル、文書、サービス、又はプロバイダを含むグループの中から選択されるものである、請求項1ないし10のいずれか一項に記載の方法。
  12. 前記自己組織型分散オーバーレイ・ネットワークは、分散ハッシュテーブルを使用するピア・ツー・ピア・ネットワークである、請求項1ないし11のいずれか一項に記載の方法。
  13. プロセッサ(112)が実行する際に、請求項1ないし12のいずれか一項に記載の方法を実行する命令を備えるコンピュータプログラム。
  14. 自己組織型分散オーバーレイ・ネットワークにおけるノード(100)であって、
    前記ネットワーク内のノードと関連付けられたオブジェクトへの参照(A)と、
    請求項1ないし12のいずれか一項に記載の方法に従って、前記ネットワークにおいて前記オブジェクトへの前記参照を分散させるように構成された処理装置(112)と
    を備えるノード。
  15. 請求項14に記載のノード(100から108)を複数備えている自己組織型分散オーバーレイ・ネットワーク。
JP2010011045A 2009-01-22 2010-01-21 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク Expired - Fee Related JP4923115B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09000882A EP2211525B1 (en) 2009-01-22 2009-01-22 Method for distributing in a self-organizing, distributed overlay network a reference to an object
EP09000882.2 2009-01-22

Publications (2)

Publication Number Publication Date
JP2010182301A true JP2010182301A (ja) 2010-08-19
JP4923115B2 JP4923115B2 (ja) 2012-04-25

Family

ID=40568684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010011045A Expired - Fee Related JP4923115B2 (ja) 2009-01-22 2010-01-21 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク

Country Status (2)

Country Link
EP (1) EP2211525B1 (ja)
JP (1) JP4923115B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917292A (zh) * 2010-08-13 2010-12-15 浙江大学 一种具有自适应管理机制的服务覆盖网络系统
US8443086B2 (en) 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
CN106657334B (zh) * 2016-12-23 2020-02-11 西安电子科技大学 一种基于Chord网络模型的改进数据复制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260430A (ja) * 2005-03-18 2006-09-28 Brother Ind Ltd ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162539B2 (en) 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
WO2006100723A1 (ja) * 2005-03-18 2006-09-28 Fujitsu Limited ファイル管理システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260430A (ja) * 2005-03-18 2006-09-28 Brother Ind Ltd ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法

Also Published As

Publication number Publication date
EP2211525A1 (en) 2010-07-28
EP2211525B1 (en) 2011-08-03
JP4923115B2 (ja) 2012-04-25

Similar Documents

Publication Publication Date Title
Shen An efficient and adaptive decentralized file replication algorithm in P2P file sharing systems
US7644182B2 (en) Reconfiguring a multicast tree
Li et al. A chunk caching location and searching scheme in content centric networking
JP2005323346A (ja) ピアツーピアネットワークにおけるルーティング
JP6564852B2 (ja) 情報中心ネットワーキング(icn)ノードのネットワークにおいてパケットを管理する方法
El Dick et al. Building a peer-to-peer content distribution network with high performance, scalability and robustness
Gao et al. Proactive replication for rare objects in unstructured peer-to-peer networks
JP5177919B2 (ja) インデックスサーバとその方法
KR20140099834A (ko) 분산형 공유 캐싱 시스템을 위한 적응적 콘텐츠 탐색 방법 및 시스템
Moeini et al. Efficient caching for peer-to-peer service discovery in Internet of Things
JP4923115B2 (ja) 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク
Aguilar et al. A hamming distance and fuzzy logic-based algorithm for P2P content distribution in enterprise networks
Gao et al. Distributed caching in unstructured peer-to-peer file sharing networks
JP4533923B2 (ja) 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法
Duan et al. Two-layer hybrid peer-to-peer networks
Liu et al. Efficient and scalable search on scale-free P2P networks
Rahmani et al. A comparative study of replication schemes for structured P2P networks
Xia et al. Algorithms and performance of load-balancing with multiple hash functions in massive content distribution
CN109644160B (zh) 通过分类在icn中进行名称解析和制作者选择的混合方法
Shi et al. Popularity adaptive search in hybrid P2P systems
Sun et al. THash: A practical network optimization scheme for DHT-based P2P applications
Bandara et al. Exploiting communities for enhancing lookup performance in structured p2p systems
Rathore et al. Adaptive searching and replication of images in mobile hierarchical peer-to-peer networks
Dannewitz et al. Complex queries in P2P networks with resource-constrained devices
Despotovic et al. An operator approach to popularity-based caching in dhts

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111220

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees