JP2016046785A - Cache server selection device, distributed cache system, and cache server selection method - Google Patents

Cache server selection device, distributed cache system, and cache server selection method Download PDF

Info

Publication number
JP2016046785A
JP2016046785A JP2014172160A JP2014172160A JP2016046785A JP 2016046785 A JP2016046785 A JP 2016046785A JP 2014172160 A JP2014172160 A JP 2014172160A JP 2014172160 A JP2014172160 A JP 2014172160A JP 2016046785 A JP2016046785 A JP 2016046785A
Authority
JP
Japan
Prior art keywords
cache server
cache
path
specified
guardian
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.)
Pending
Application number
JP2014172160A
Other languages
Japanese (ja)
Inventor
イェンス デーンホフ
Doenhoff Jens
イェンス デーンホフ
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2014172160A priority Critical patent/JP2016046785A/en
Publication of JP2016046785A publication Critical patent/JP2016046785A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a device and method for selecting a cache server for transmitting a requested content from a plurality of cache servers, by considering capacity and a congestion situation of the whole network, and a distributed cache system.SOLUTION: A cache server selection device receives a request from a client; specifies, from among a plurality of cache servers, at least one cache server storing data corresponding to the received request; specifies, on the basis of topology information, for each of the specified cache servers, at least one bundle of paths satisfying a predetermined condition from among at least one path capable of reaching from the device to the cache server; calculates network traffic capacity of each of the specified at least one bundle of paths for each of the specified cache servers; and selects, on the basis of the calculated capacity of the bundle of the respective paths, a cache server for transmitting data to the client, from among the specified cache servers.SELECTED DRAWING: Figure 6

Description

本発明は、データを保持する複数のキャッシュサーバの中からデータをクライアントに送信するキャッシュサーバを選択するキャッシュサーバ選択装置に関する。   The present invention relates to a cache server selection device that selects a cache server that transmits data to a client from a plurality of cache servers that hold data.

一般世帯及びモバイルにおける広帯域のインターネットの世界的な急増に伴って、広い帯域を要求するインターネットサービスの数も増加している。これによって、トラフィックが上昇する。   With the global proliferation of broadband Internet in households and mobiles, the number of Internet services that require wide bandwidth is also increasing. This increases traffic.

技術革新は、利用可能な帯域を増大させ、ネットワークインフラ機器によって引き起こされる遅延を減少させてきたが、トラフィックの要求は急激に増大している。特に、多くのユーザを持つネットワークキャリアでは、トラフィックの要求がネットワークの容量を超える可能性がある。ウェブ及びビデオなどのインターネットトラフィックはジップの法則に従うとの一般的に受け入れられている観測に基づけば、キャッシュシステムはトラフィックを効果的に低減させるメカニズムである。   While innovation has increased the available bandwidth and reduced the delay caused by network infrastructure equipment, the demand for traffic is increasing rapidly. In particular, in a network carrier with many users, the traffic demand may exceed the capacity of the network. Based on the generally accepted observation that Internet traffic such as web and video follows Zip's law, the cache system is a mechanism that effectively reduces traffic.

キャッシュシステムは、データを提供するオリジンサーバの負荷及びキャッシュサーバとオリジンサーバとの間のネットワークの使用量を低減させると同時に、クライアントまでの送信時間を短縮する。容量の大きいデータの送信が要求されるサービス、例えば、高解像度のビデオストリーミングサービスを提供するために必要なストレージの容量と帯域はすでに高いので大規模なキャリアグレードのネットワークでは、リクエストの数及び要求されるストレージの容量と帯域がともに非常に高くなってしまうことが予想される。このようなシステムの堅牢性とスケーラビリティを高めるために、複数のキャッシュサーバを用いてストレージの容量と帯域を分散させることが望ましい。このようなキャッシュシステムとして、分散キャッシュシステムが知られている。   The cache system reduces the load on the origin server that provides data and the amount of use of the network between the cache server and the origin server, and at the same time, shortens the transmission time to the client. Services that require large amounts of data to be transmitted, such as high-resolution video streaming services, already have high storage capacity and bandwidth, so in large carrier-grade networks, the number and demand of requests Both storage capacity and bandwidth are expected to be very high. In order to increase the robustness and scalability of such a system, it is desirable to distribute the storage capacity and bandwidth using a plurality of cache servers. A distributed cache system is known as such a cache system.

分散キャッシュシステムでは、要求されるコンテンツが複数のキャッシュサーバによって保持されることによって、コンテンツを要求したクライアントまでの平均距離を短くし、コンテンツの送信に利用可能なスループットを増大させる。このようなシステムでは、複数の分散キャッシュサーバからコンテンツを送信する一つのキャッシュサーバを選択することは、コンテンツの送信のための直接的に必要なリソース、及びコンテンツの送信に使用されるネットワークの利用可能なリソースに対する様々な影響に密接な関連性を有する。各キャッシュサーバのネットワークリソースやコンピューティングリソースの利用可能性の比較、又は、クライアントと各キャッシュサーバとの間のネットワークリソースのエンドツーエンドの距離(例えば、レイテンシ又はホップ数)の比較に基づいて、コンテンツを送信するキャッシュサーバが決定される。これらの評価尺度に基づく選択は、コンテンツのクライアントへの送信にかかる時間を短縮でき、キャッシュサーバのリソースの簡単な負荷分散を達成できる。   In a distributed cache system, the requested content is held by a plurality of cache servers, thereby shortening the average distance to the client that requested the content and increasing the throughput available for content transmission. In such a system, selecting one cache server that transmits content from a plurality of distributed cache servers directly uses the resources used for content transmission and the network used for content transmission. Closely related to various impacts on possible resources. Based on a comparison of the availability of network resources and computing resources for each cache server, or a comparison of the end-to-end distance (e.g. latency or hop count) of network resources between the client and each cache server, A cache server that transmits content is determined. Selection based on these evaluation measures can reduce the time taken to transmit the content to the client, and can achieve simple load balancing of the resources of the cache server.

分散キャッシュシステムに関する技術として、米国特許第7890656号明細書(特許文献1)がある。特許文献1の公報には、「コンテンツを配信する複数の配信サーバと通信する複数の配信サーバ側ルータと、コンテンツを受信するクライアントと通信するクライアント側ルータとをそなえた伝送システムにおいて、複数の配信サーバのサーバ負荷状態と、複数の配信サーバ側ルータおよびクライアント側ルータ間における複数の配信経路についての各個別リンク負荷状態とを保持するデータベースと、データベースに保持されたサーバ負荷状態と各個別リンク負荷状態との総和に基づいて、複数の配信経路のうちの負荷状態が最小となる最小負荷状態配信経路を決定する経路制御部とをそなえて構成する。」と記載されている。   As a technique related to the distributed cache system, there is US Pat. No. 7,890,656 (Patent Document 1). The gazette of Patent Document 1 states that “a plurality of distribution servers in a transmission system including a plurality of distribution server side routers that communicate with a plurality of distribution servers that distribute content and a client side router that communicates with a client that receives content”. A database that holds the server load state of the server and individual link load states for a plurality of distribution paths between a plurality of distribution server side routers and client side routers, and the server load state and each individual link load held in the database And a path control unit that determines a minimum load state distribution path that minimizes the load state among a plurality of distribution paths based on the sum of the state and the state ”.

また、マルチパスルーティングに関する技術として米国特許第7583677号公報(特許文献2)がある。特許文献2の公報には、「概して、本発明はコンピュータネットワークを通る複数のパスの間のネットワークトラフィック負荷を動的に調整する技術を対象にする。この技術は、動的に計測されるパス帯域及び各フローの負荷に基づいて、異なるパスの間のネットワークパケットのフローを分散及び再分散する。フローの分散時に、フローに要求されるQoS(Quality Of Service)の帯域が維持される。」と記載されている。   Further, there is US Pat. No. 7,583,677 (Patent Document 2) as a technique related to multipath routing. According to the publication of Patent Document 2, “Generally, the present invention is directed to a technique for dynamically adjusting a network traffic load between a plurality of paths through a computer network. This technique is based on a dynamically measured path. Distributes and redistributes the flow of network packets between different paths based on the bandwidth and load of each flow, maintaining the QoS (Quality Of Service) bandwidth required for the flows when the flows are distributed. It is described.

スループット容量に関してネットワーク全体の状況を把握し、ある地点間に流せる最大のフローを求めるためのマックスフロー処理と呼ばれる技術がある。マックスフロー処理では、通信ネットワークをフローネットワークとしてモデリングすることによって、ルーティングレイヤに利用可能なネットワーク全体のリソースがリンクの帯域を示す容量及び現在の使用量を示すフローとともに計算される。利用可能な種々のネットワークが完全に使用されていれば、ソースとサーバであるシンクとの間のマックスフローは利用可能な最大の帯域を示す。   There is a technique called max flow processing for grasping the situation of the entire network regarding the throughput capacity and obtaining the maximum flow that can flow between certain points. In the MaxFlow process, by modeling the communication network as a flow network, the resources of the entire network available for the routing layer are calculated together with the capacity indicating the link bandwidth and the flow indicating the current usage. If the various available networks are fully used, the max flow between the source and the server sink shows the maximum available bandwidth.

マックスフロー処理に関する技術としてA New Approach to the Maximum-Flow Problem”(非特許文献1)がある。非特許文献1には、フローネットワークのマックスフローを分散環境において効率的に計算する方法が記載される。各キャッシュサーバのマックスフローが計算された場合、この評価尺度を用いて、利用可能な容量が最大であるパスのキャッシュサーバを選択することができ、これによって、非特許文献1に記載された技術はネットワークの混雑を最小限に抑えることができる。   A technology related to max flow processing is “A New Approach to the Maximum-Flow Problem” (Non-Patent Document 1). Non-Patent Document 1 describes a method for efficiently calculating the maximum flow of a flow network in a distributed environment. When the maximum flow of each cache server is calculated, this evaluation measure can be used to select the cache server with the path having the maximum available capacity, and as described in Non-Patent Document 1. This technology can minimize network congestion.

米国特許第7890656号明細書US Pat. No. 7,890,656 米国特許第7583677号明細書US Pat. No. 7,583,677

Andrew Goldberg and Robert Tarjan, “A New Approach to the Maximum-Flow Problem”, Journal of the ACM, Vol. 35, 1988Andrew Goldberg and Robert Tarjan, “A New Approach to the Maximum-Flow Problem”, Journal of the ACM, Vol. 35, 1988 Rowstron, A. & Druschel, P. “Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems”, IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), 2001, 329-350Rowstron, A. & Druschel, P. “Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems”, IFIP / ACM International Conference on Distributed Systems Platforms (Middleware), 2001, 329-350 Dabek, F.; Cox, R.; Kaashoek, F. & Morris, R. “Vivaldi: a decentralized network coordinate system”, SIGCOMM Comput. Commun. Rev., ACM, 2004, 34, 15-26Dabek, F .; Cox, R .; Kaashoek, F. & Morris, R. “Vivaldi: a decentralized network coordinate system”, SIGCOMM Comput. Commun. Rev., ACM, 2004, 34, 15-26

特許文献1に記載された技術は、クライアント側ルータから複数のコンテンツサーバ側ルータまで(エンドツーエンド)の最短パスを計算し、計算結果に基づいてコンテンツの送信に用いる経路を決定する。エンドポイントとなるコンテンツサーバ側ルータはクライアント側ルータが過去に通信したルータに限定される。このため、特許文献1に記載された技術は、ネットワーク全体を考慮して、コンテンツの送信に用いる経路を選択できない。また、特許文献1に記載された技術は、予め収集した情報に基づいてコンテンツの送信に用いる経路を決定するので、急速にパスの構成が変化するネットワークに対応できない。   The technique described in Patent Document 1 calculates the shortest path (end-to-end) from a client-side router to a plurality of content server-side routers, and determines a route used for content transmission based on the calculation result. The content server side router as an end point is limited to the router with which the client side router communicated in the past. For this reason, the technique described in Patent Document 1 cannot select a route used for content transmission in consideration of the entire network. Further, since the technique described in Patent Document 1 determines a route used for content transmission based on information collected in advance, it cannot cope with a network in which the path configuration rapidly changes.

また、特許文献2に記載されたマルチパスルーティングは、第3レイヤ(ネットワーキングレイヤ)で実行される処理である。しかし、エンドポイントへの送信の最適ではない選択は、ルーティングレイヤでのトラフィックの選択肢が多様化されないため、トラフィックパスの混雑を引き起し得る。これは、分散システムでの選択処理中の全体のネットワークの使用の把握がないために起こる。   The multipath routing described in Patent Document 2 is a process executed in the third layer (networking layer). However, sub-optimal selection of transmissions to the endpoint can cause traffic path congestion because the choice of traffic at the routing layer is not diversified. This occurs because there is no grasp of the overall network usage during the selection process in the distributed system.

また、非特許文献1に記載された技術は、ネットワーク全体の状況を把握できる。しかし、計算中のメッセージングのオーバーヘッドが複雑になる。ノードの数が多くなると、分散キャッシュシステムではトラフィックが増加する。このため、マックスフローを計算するために必要な時間及びメッセージングのオーバーヘッドは高くなる。非特許文献1に記載された技術はノードの数が多い分散キャッシュシステムに対応できない。   In addition, the technique described in Non-Patent Document 1 can grasp the situation of the entire network. However, the messaging overhead during computation is complicated. As the number of nodes increases, traffic increases in a distributed cache system. This increases the time and messaging overhead required to compute the maxflow. The technique described in Non-Patent Document 1 cannot cope with a distributed cache system having a large number of nodes.

本発明の目的は、ノードの数が多い分散キャッシュシステムであっても、ネットワーク全体の状況を考慮してコンテンツを送信するキャッシュサーバを選択するキャッシュサーバ選択装置を提供することである。   An object of the present invention is to provide a cache server selection device that selects a cache server that transmits content in consideration of the situation of the entire network even in a distributed cache system having a large number of nodes.

本発明の代表的な一例を示せば、クライアント及び複数のキャッシュサーバに接続されるキャッシュサーバ選択装置であって、前記複数のキャッシュサーバはネットワークを構築し、前記ネットワークのトポロジ情報を記憶しており、前記クライアントからリクエストを受信し、前記複数のキャッシュサーバの中から、前記受信したリクエストに対応するデータを記憶する少なくとも一つのキャッシュサーバを特定し、前記特定された少なくとも一つのキャッシュサーバ毎に、前記キャッシュサーバ選択装置から前記特定した少なくとも一つの各キャッシュサーバまで到達可能な全てのパスの中から所定の条件を満たす少なくとも一つのパスを、前記トポロジ情報に基づいて特定し、前記特定した少なくとも一つのキャッシュサーバ毎の前記特定した少なくとも一つの各パスの容量を計算し、前記計算した各パスの容量に基づいて、前記特定した少なくとも一つのキャッシュサーバの中から、前記データをクライアントに送信するキャッシュサーバを選択することを特徴とする。   A representative example of the present invention is a cache server selection device connected to a client and a plurality of cache servers, the plurality of cache servers constructing a network and storing topology information of the network , Receiving a request from the client, identifying at least one cache server storing data corresponding to the received request from the plurality of cache servers, and for each of the identified at least one cache server, Based on the topology information, specify at least one path satisfying a predetermined condition from all paths reachable from the cache server selection device to the specified at least one cache server. For each cache server Calculating a capacity of each specified at least one path, and selecting a cache server that transmits the data to the client from the specified at least one cache server based on the calculated capacity of each path. Features.

本願において開示される発明のうち代表的なものによって得られる効果を簡潔に説明すれば、下記の通りである。すなわち、ノードの数が多い分散キャッシュシステムであっても、ネットワーク全体の状況を考慮してコンテンツを送信するキャッシュサーバを選択するキャッシュサーバ選択装置を提供できる。   The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows. That is, even a distributed cache system with a large number of nodes can provide a cache server selection device that selects a cache server that transmits content in consideration of the situation of the entire network.

上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。   Problems, configurations, and effects other than those described above will be clarified by the following description of embodiments.

実施例1の通信システムの構成の図である。It is a figure of the structure of the communication system of Example 1. FIG. 実施例1の通信システムの概略の説明図である。1 is a schematic explanatory diagram of a communication system according to a first embodiment. 実施例1のキャッシュサーバのハードウェア構成図である。FIG. 2 is a hardware configuration diagram of the cache server according to the first embodiment. 実施例1のガーディアンとなるキャッシュサーバによって実行される処理のフローチャートである。3 is a flowchart of processing executed by a cache server serving as a guardian according to the first exemplary embodiment. 実施例1のガーディアンによって実行される分散マックスフロー処理のフローチャートである。It is a flowchart of the distributed maxflow process performed by the guardian of Example 1. FIG. 実施例1のサブグラフ初期化処理のフローチャートである。4 is a flowchart of subgraph initialization processing according to the first embodiment. 実施例1のサブグラフのデータ構造の説明図である。6 is an explanatory diagram of a data structure of a subgraph according to Embodiment 1. FIG. 実施例1のプッシュメッセージを受信した場合にガーディアンでないキャッシュサーバによって実行される処理のフローチャートである。It is a flowchart of the process performed by the cache server which is not a guardian when the push message of Example 1 is received.

以下、本発明の実施形態を図面に従い説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

実施例1について図1〜図8を用いて説明する。   Example 1 will be described with reference to FIGS.

複数の協働するキャッシュサーバを有する分散キャッシュシステムにおいて、リクエストを受信したキャッシュサーバとリクエストされたコンテンツを保持する複数のキャッシュサーバとの間のネットワークの容量が算出され、ネットワークの容量が最大であるキャッシュサーバがコンテンツを転送するキャッシュサーバとして選択される。   In a distributed cache system having a plurality of cooperating cache servers, the network capacity between the cache server receiving the request and the plurality of cache servers holding the requested content is calculated, and the network capacity is maximum. The cache server is selected as the cache server that transfers the content.

これによって、必要となる計算量を軽減しつつ、システムのスケーラビリティを制限せずに、アンダーレイネットワークのルーティングインフラの使用ネットワーク容量を最適化できる。   This reduces the amount of computation required and optimizes the network capacity used by the routing infrastructure of the underlay network without limiting system scalability.

図1は、実施例1の通信システム100の構成の説明図である。   FIG. 1 is an explanatory diagram of a configuration of the communication system 100 according to the first embodiment.

通信システム100は、キャリアネットワーク101及びコンテンツネットワーク102を有する。コンテンツネットワーク102は、キャリアネットワーク101と異なるネットワークである。キャリアネットワーク101は、コンテンツネットワーク102にネットワークリンク201を介して接続される。   The communication system 100 includes a carrier network 101 and a content network 102. The content network 102 is a network different from the carrier network 101. The carrier network 101 is connected to the content network 102 via a network link 201.

キャリアネットワーク101のネットワークインフラは例えばルータ340A及び340Mを含む。キャリアネットワーク101内には、クライアント301、及びキャッシュサーバ360A〜360Nがある。コンテンツネットワーク102内にはコンテンツサーバ321がある。   The network infrastructure of the carrier network 101 includes routers 340A and 340M, for example. In the carrier network 101, there are a client 301 and cache servers 360A to 360N. Within the content network 102 is a content server 321.

クライアント301は、コンテンツサーバ321にコンテンツリクエストを送信する。コンテンツリクエストは、クライアント301に最も近いキャッシュサーバ360Aを通る。キャッシュサーバ360Aはキャッシュサーバ360A〜360Nの協働ネットワークの一部であり、これらのキャッシュサーバ360A〜360Nはデータを転送する場合にルータ340A及び340Mを用いる。   The client 301 transmits a content request to the content server 321. The content request passes through the cache server 360A closest to the client 301. The cache server 360A is a part of the cooperative network of the cache servers 360A to 360N, and these cache servers 360A to 360N use the routers 340A and 340M when transferring data.

キャッシュサーバ360Aは、クライアント301によって送信されたコンテンツリクエストを受信した場合、受信したコンテンツリクエストに対応するコンテンツを保持する少なくとも一つのキャッシュサーバを特定する。キャッシュサーバ360Aは、特定した少なくとも一つの各キャッシュサーバに到達可能なパスの中から所定の条件を満たす少なくとも一つパスを特定する。そして、キャッシュサーバ360Aは、特定した各パスの容量を計算し、計算した各パスの容量に基づいて、要求されたコンテンツをクライアント301に転送するキャッシュサーバを選択する。例えば、キャッシュサーバ360Aは、受信したコンテンツリクエストに対応するコンテンツを保持する複数のキャッシュサーバを特定し、その複数の特定したキャッシュサーバ毎に到達可能なパスを特定し、特定した複数のパス毎にパスの容量を計算し、その計算したパスの容量が最大であるパスを選択し、選択したパスが到達するキャッシュサーバを、コンテンツを転送するキャッシュサーバに選択する。そして、キャッシュサーバ360Aは、選択したキャッシュサーバに選択したパスを介してコンテンツリクエストを送信する。キャッシュサーバ360Aによって送信されたリクエストを受信したキャッシュサーバは、受信したリクエストに対応するコンテンツをクライアント301に送信する。この送信はキャッシュサーバ360Aを通過してもよく、その際にキャッシュサーバ360Aはこのコンテンツを保持してもよい。   When the cache server 360 </ b> A receives the content request transmitted by the client 301, the cache server 360 </ b> A specifies at least one cache server that holds content corresponding to the received content request. The cache server 360A specifies at least one path that satisfies a predetermined condition from among the paths that can reach each specified at least one cache server. Then, the cache server 360A calculates the capacity of each identified path, and selects a cache server that transfers the requested content to the client 301 based on the calculated capacity of each path. For example, the cache server 360A specifies a plurality of cache servers that hold the content corresponding to the received content request, specifies a reachable path for each of the specified cache servers, and specifies each of the specified plurality of paths. The path capacity is calculated, the path having the maximum calculated path capacity is selected, and the cache server to which the selected path reaches is selected as the cache server that transfers the content. Then, the cache server 360A transmits a content request to the selected cache server via the selected path. The cache server that has received the request transmitted by the cache server 360 </ b> A transmits the content corresponding to the received request to the client 301. This transmission may pass through the cache server 360A, and the cache server 360A may hold this content at that time.

キャッシュサーバ360Aは、受信したコンテンツリクエストに対応するコンテンツを保持する少なくとも一つのキャッシュサーバを特定できない場合、すなわち、受信したコンテンツリクエストに対応するコンテンツを保持するキャッシュサーバが存在しない場合、受信したコンテンツリクエストをコンテンツサーバ321に送信する。コンテンツサーバ321は、このコンテンツリクエストを受信した場合、受信したコンテンツリクエストに対応するコンテンツをキャリアネットワーク101を介してクライアント301に送信する。この送信はキャッシュサーバ360Aを通過してもよく、その際にキャッシュサーバ360Aはこのコンテンツを保持してもよい。   When the cache server 360A cannot identify at least one cache server that holds content corresponding to the received content request, that is, when there is no cache server that holds content corresponding to the received content request, the received content request Is transmitted to the content server 321. When the content server 321 receives this content request, the content server 321 transmits content corresponding to the received content request to the client 301 via the carrier network 101. This transmission may pass through the cache server 360A, and the cache server 360A may hold this content at that time.

図2は、実施例1の通信システム100の概略の説明図である。   FIG. 2 is a schematic explanatory diagram of the communication system 100 according to the first embodiment.

図1に示す通信システム100は分散キャッシュシステム500を有し、分散キャッシュシステム500は、例えば、複数のキャッシュサーバ360A〜360D、クライアント301、及びコンテンツサーバ321を有する。クライアント301は、あるコンテンツの送信をコンテンツサーバ321に要求するコンテンツリクエスト401を送信する。クライアント301に最も近いキャッシュサーバ360Aは、コンテンツリクエスト401を受信する。このキャッシュサーバ360Aをガーディアンという。   A communication system 100 illustrated in FIG. 1 includes a distributed cache system 500. The distributed cache system 500 includes, for example, a plurality of cache servers 360A to 360D, a client 301, and a content server 321. The client 301 transmits a content request 401 that requests the content server 321 to transmit a certain content. The cache server 360A closest to the client 301 receives the content request 401. This cache server 360A is called a guardian.

クライアント301はガーディアンをコンテンツリクエスト401を転送するプロキシのように用いてもよいし、クライアント301側に設定なしでコンテンツリクエスト401を転送する透過プロキシのようにガーディアンが用いられるようにネットワークが設定されてもよい。   The client 301 may use the guardian as a proxy that transfers the content request 401, or the network is set so that the guardian is used like a transparent proxy that transfers the content request 401 without setting on the client 301 side. Also good.

分散キャッシュシステム500のキャッシュサーバ360A〜360Dのうちの少なくとも一つは、コンテンツリクエスト401で要求されたコンテンツを保持可能である。ガーディアンは、キャッシュサーバ360A〜360Dが参加するオーバーレイネットワークのクエリ機能を用いて、コンテンツリクエスト401に対応するコンテンツを保持する全てのキャッシュサーバを特定する。コンテンツリクエスト401に対応するコンテンツを保持する全てのキャッシュサーバをデリゲイトという。   At least one of the cache servers 360 </ b> A to 360 </ b> D of the distributed cache system 500 can hold the content requested by the content request 401. The guardian specifies all the cache servers that hold the content corresponding to the content request 401 using the query function of the overlay network in which the cache servers 360A to 360D participate. All cache servers that hold content corresponding to the content request 401 are called delegates.

キャッシュサーバ360A〜360Dのうちの少なくとも一つは、コンテンツの識別子のリストとコンテンツの識別子によって識別されるコンテンツを保持するデリゲイトの識別子のリストとが登録されたデリゲイトリストを保持する。あるコンテンツの識別子によって識別されるコンテンツリクエストのためのデリゲイトリストを保持するキャッシュサーバをホームという。   At least one of the cache servers 360 </ b> A to 360 </ b> D holds a delegate list in which a list of content identifiers and a list of delegate identifiers that hold content identified by the content identifiers are registered. A cache server that holds a delegate list for a content request identified by an identifier of a certain content is called a home.

ガーディアンは、コンテンツリクエスト401を受信した場合、ホームキャッシュサーバを探すために、受信したコンテンツリクエスト401に含まれるコンテンツの識別子を含むデリゲイトクエリメッセージ411を隣接するキャッシュサーバに送信する。隣接するキャッシュサーバは、デリゲイトクエリメッセージ411を受信した場合、受信したデリゲイトクエリメッセージ411に含まれるコンテンツの識別子のためのデリゲイトリストを保持しているか否かを判定する。   When the guardian receives the content request 401, the guardian transmits a delegate query message 411 including an identifier of the content included in the received content request 401 to the adjacent cache server in order to search for a home cache server. When the adjacent cache server receives the delegate query message 411, it determines whether or not it holds a delegate list for the identifier of the content included in the received delegate query message 411.

隣接するキャッシュサーバは、このデリゲイトリストを保持していると判定された場合、デリゲイトリストを含むデリゲイトクエリレスポンス412を、受信したデリゲイトクエリメッセージ411の応答としてガーディアンに送信する。一方、隣接するキャッシュサーバは、デリゲイトリストを保持していないと判定された場合、受信したデリゲイトクエリメッセージ411を他の隣接するキャッシュサーバに送信する。デリゲイトリストを保持するキャッシュサーバの探索方法の詳細は、”Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems”(非特許文献2)に記載される。本出願には、非特許文献2に記載された内容が取り込まれる。   When it is determined that the adjacent cache server holds the delegate list, the adjacent cache server transmits a delegate query response 412 including the delegate list to the guardian as a response to the received delegate query message 411. On the other hand, when it is determined that the adjacent cache server does not hold the delegate list, the received delegate query message 411 is transmitted to another adjacent cache server. Details of the search method of the cache server holding the delegate list are described in “Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems” (Non-patent Document 2). The contents described in Non-Patent Document 2 are incorporated in this application.

図2では、ホームはキャッシュサーバ360Cである。キャッシュサーバ360Cは、デリゲイトクエリメッセージ411を受信した場合、デリゲイトリストを含むデリゲイトクエリレスポンス412をガーディアンであるキャッシュサーバ360Aに送信する。デリゲイトクエリレスポンス412に含まれるデリゲイトリストに、デリゲイトクエリメッセージ411に含まれるコンテンツの識別子に対応する複数のデリゲイトの識別子が登録されている場合、ガーディアンは、図4に示す仮想コーディネイトシステム803を用いて、ネットワーク距離が所定値以上である全てのデリゲイトを除外する。仮想コーディネイトシステム803は、キャッシュサーバ間のネットワーク距離の近似値を保持する。あるキャッシュサーバが他のキャッシュサーバと通信した場合にその仮想コーディネイトシステム803は更新される。例えばネットワーク距離はキャッシュサーバ間のレイテンシ又はホップ数に基づくものである。仮想コーディネイトシステムの詳細は、“Vivaldi: a decentralized network coordinate system”(非特許文献3)に記載される。本出願には、非特許文献3に記載された内容が取り込まれる。   In FIG. 2, the home is the cache server 360C. When the cache server 360C receives the delegate query message 411, the cache server 360C transmits a delegate query response 412 including a delegate list to the cache server 360A that is the guardian. When a plurality of delegate identifiers corresponding to the content identifiers included in the delegate query message 411 are registered in the delegate list included in the delegate query response 412, the guardian displays the virtual coordinate system 803 shown in FIG. 4. Is used to exclude all delegates whose network distance is greater than or equal to a predetermined value. The virtual coordinate system 803 maintains an approximate value of the network distance between cache servers. When a certain cache server communicates with another cache server, the virtual coordinate system 803 is updated. For example, the network distance is based on latency between cache servers or the number of hops. Details of the virtual coordinate system are described in “Vivaldi: a decentralized network coordinate system” (Non-patent Document 3). The contents described in Non-Patent Document 3 are incorporated in this application.

ガーディアンは、図4に示すトポロジ情報805を使って、図5に示す各デリゲイトのサブグラフ806を計算する。各キャッシュサーバのトポロジ情報805は、ネットワーク管理者によって演繹的に設定されるか、トポロジディスカバリ機能及びネットワーク管理機能を用いて取得される。トポロジ情報805は、キャッシュサーバとルータとの間、又は異なるルータ間のリンク容量、リンク使用量を含む。異なる実施例では、他の情報(例えば、レイテンシ、又はパケットロス割合)がトポロジ情報805に含まれてもよい。   The guardian uses the topology information 805 shown in FIG. 4 to calculate a subgraph 806 for each delegate shown in FIG. The topology information 805 of each cache server is set a priori by a network administrator or acquired using a topology discovery function and a network management function. The topology information 805 includes link capacity and link usage between the cache server and the router or between different routers. In different embodiments, other information (eg, latency or packet loss rate) may be included in the topology information 805.

各サブグラフ806は、所定の条件を満たし、ある形態のコリドーを構築するガーディアンと各デリゲイトとの間のパス上のノードのみを含む。コリドーは、ガーディアンと各デリゲイトとの間のネットワーク距離に基づいて特定される。   Each subgraph 806 includes only nodes on the path between the guardians that satisfy a predetermined condition and construct a certain form of corridor and each delegate. The corridor is identified based on the network distance between the guardian and each delegate.

そして、ガーディアンは、分散マックスフロー処理の計算量を低減させるためにサブグラフ806を用いて、各デリゲイトに対して分散マックスフロー処理を実行する。非特許文献1に分散マックスフローについて記載されているため、説明を省略する。本実施例では、ガーディアンと各デリゲイトとの間の全てのパスのうち所定の条件を満たすパスに対して分散マックスフロー処理が実行されることになる。これによって、分散マックスフロー処理の計算量及び分散マックスフロー処理の計算中に通信されるメッセージの数を減少させることができ、分散マックスフロー処理にかかる時間を短縮できる。したがって、ノードの数が多い分散キャッシュシステムに分散マックスフロー処理を適用することができ、ガーディアンは、ネットワーク全体の状況を考慮して、コンテンツを送信するキャッシュサーバを選択できる。   Then, the guardian executes the distributed maxflow process for each delegate using the subgraph 806 in order to reduce the calculation amount of the distributed maxflow process. Since the non-patent document 1 describes the distributed max flow, the description is omitted. In the present embodiment, the distributed maxflow process is executed for a path satisfying a predetermined condition among all paths between the guardian and each delegate. As a result, the amount of computation of the distributed maxflow process and the number of messages communicated during the computation of the distributed maxflow process can be reduced, and the time taken for the distributed maxflow process can be shortened. Therefore, the distributed maxflow process can be applied to a distributed cache system having a large number of nodes, and the guardian can select a cache server that transmits content in consideration of the situation of the entire network.

例えば、図2ではデリゲイトはキャッシュサーバ360B及び360Dである。ガーディアンとキャッシュサーバ360B及び360Dとの間では、分散マックスフロー処理の実行のために、分散マックスフローメッセージ421及び422が通信される。ガーディアンは、分散マックスフロー処理の結果に基づいて、容量が最大であるコリドーが到達するデリゲイトを、コンテンツをクライアント301に送信するキャッシュサーバとして選択する。図2では、コンテンツをクライアント301に送信するキャッシュサーバとしてキャッシュサーバ360Dが選択される。   For example, in FIG. 2, the delegates are the cache servers 360B and 360D. Distributed maxflow messages 421 and 422 are communicated between the guardian and the cache servers 360B and 360D in order to execute the distributed maxflow processing. Based on the result of the distributed maxflow process, the guardian selects the delegate that the corridor having the maximum capacity reaches as the cache server that transmits the content to the client 301. In FIG. 2, the cache server 360 </ b> D is selected as the cache server that transmits the content to the client 301.

そして、ガーディアンは、クライアント301によって送信されたコンテンツリクエスト401をメッセージ431としてキャッシュサーバ360Dに送信する。キャッシュサーバ360Dは、メッセージ431を受信した場合、メッセージ431に含まれるコンテンツの識別子に対応するコンテンツを含むレスポンス432をガーディアンに送信する。ガーディアンは、レスポンス432を受信した場合、受信したレスポンス432をレスポンス402としてクライアント301に送信する。この場合、ガーディアンは、受信したレスポンス432に含まれるコンテンツを記憶してもよい。   Then, the guardian transmits the content request 401 transmitted by the client 301 to the cache server 360D as a message 431. When the cache server 360D receives the message 431, the cache server 360D transmits a response 432 including content corresponding to the content identifier included in the message 431 to the guardian. When receiving the response 432, the guardian transmits the received response 432 to the client 301 as the response 402. In this case, the guardian may store the content included in the received response 432.

コンテンツリクエスト401に対応するコンテンツの識別子に対応するコンテンツを保持するキャッシュサーバが存在しない場合、ガーディアンは、コンテンツリクエスト401をコンテンツリクエスト441としてコンテンツサーバ321に直接送信する。ガーディアンは、コンテンツサーバ321によって送信されたコンテンツサーバレスポンス442を受信した場合、受信したコンテンツサーバレスポンス442をレスポンス402でクライアント301に送信する。この場合、ガーディアンは、受信したコンテンツサーバレスポンス442に含まれるコンテンツを記憶してもよい。   If there is no cache server that holds content corresponding to the content identifier corresponding to the content request 401, the guardian directly transmits the content request 401 as the content request 441 to the content server 321. When the guardian receives the content server response 442 transmitted by the content server 321, the guardian transmits the received content server response 442 to the client 301 using the response 402. In this case, the guardian may store the content included in the received content server response 442.

本実施例では、非特許文献2に記載されるように、キャッシュサーバは、アドレス機能、ディスカバリー機能、及びルーティング機能を提供する仮想的なピアツーピアオーバーレイネットワークの一部である。キャッシュサーバは、ピアツーピアのオーバーレイネットワークを用いて互いに通信でき、また、直接(例えばピアツーピアのオーバーレイネットワークを用いず)互いに通信できる。各キャッシュサーバは、アンダーレイネットワークのトポロジを把握する。アンダーレイネットワークのトポロジは、ネットワーク管理者による各キャッシュサーバの初期設定中に導入されてもよい。また、アンダーレイネットワークのトポロジは、ノード間のネットワークリンクの最大容量を含む。全てのキャッシュサーバは、非特許文献3に記載された仮想コーディネイトシステムを用いる。各キャッシュサーバは、隣接する他のノード及びネットワークの構成要素のリソース情報を取得できる。特に、リソース情報はノードに接続するリンクの使用量を含む。   In this embodiment, as described in Non-Patent Document 2, the cache server is a part of a virtual peer-to-peer overlay network that provides an address function, a discovery function, and a routing function. The cache servers can communicate with each other using a peer-to-peer overlay network and can communicate directly with each other (eg, without a peer-to-peer overlay network). Each cache server grasps the topology of the underlay network. The topology of the underlay network may be introduced during the initial setup of each cache server by the network administrator. Also, the topology of the underlay network includes the maximum capacity of the network link between the nodes. All cache servers use the virtual coordinate system described in Non-Patent Document 3. Each cache server can acquire resource information of other adjacent nodes and network components. In particular, the resource information includes a usage amount of a link connected to the node.

ピアツーピアシステムでは、分散キャッシュシステムの各ノードがワークフロー、責任、及び通信の点で対等であり、このため、各ノードは「ピア」と呼ばれる。広く展開されるピアツーピアシステムにおいて、ハッシュ値を識別子として使用し、ピアツーピアネットワーク内のルーティングメカニズムを使用することによって、分散ハッシュテーブル(Distributed Hash Table、DHT)の使用は他のノードの発見を可能にする。非特許文献2には、ピアが構築するルーティングインフラの上のオーバーレイネットワークが記載されている。このオーバーレイネットワークは、ピア及びピアに格納されたコンテンツの識別子として数学的なハッシュ値を用いて、効率的なコンテンツの発見、及び機能的なルーティングを提供できる。   In a peer-to-peer system, each node of a distributed cache system is equal in terms of workflow, responsibility, and communication, and thus each node is referred to as a “peer”. In widely deployed peer-to-peer systems, the use of a distributed hash table (DHT) allows the discovery of other nodes by using hash values as identifiers and using routing mechanisms within peer-to-peer networks. . Non-Patent Document 2 describes an overlay network on a routing infrastructure constructed by a peer. This overlay network can provide efficient content discovery and functional routing using mathematical hash values as identifiers for peers and content stored at peers.

非特許文献3に記載される仮想コーディネイトシステムでは、各ノードは、自身及び他のノードを仮想的なユークリッド空間座標系に配置し、直接通信した場合に計測されたネットワークレイテンシ及び受信した他のノードの座標に関する情報に基づいて、自分自身及び他のノードの座標を調整する。   In the virtual coordinate system described in Non-Patent Document 3, each node places itself and other nodes in a virtual Euclidean space coordinate system, and the network latency measured when directly communicating and other nodes received. The coordinates of itself and other nodes are adjusted based on the information regarding the coordinates of the node.

図3は、実施例1のキャッシュサーバのハードウェア構成図である。   FIG. 3 is a hardware configuration diagram of the cache server according to the first embodiment.

本実施例のキャッシュサーバは、中央演算ユニット(CPU)1501、プライマリメモリ1502、ネットワークインタフェースコントローラ(NIC)1504、及びセカンダリメモリ1505を有する。これらは通信バス1503を介して互いに接続される。キャッシュサーバに要求される最小の構成要素が図3に図示される。例えば他のネットワークインタフェースコントローラ等の他の構成は通信バス1503に接続されてもよい。   The cache server according to this embodiment includes a central processing unit (CPU) 1501, a primary memory 1502, a network interface controller (NIC) 1504, and a secondary memory 1505. These are connected to each other via a communication bus 1503. The minimum components required for a cache server are illustrated in FIG. For example, other configurations such as other network interface controllers may be connected to the communication bus 1503.

キャッシュサーバの動作中、キャッシュサーバの動作指示、及び実行時に必要な構成パラメータは、プライマリメモリ1502に記憶される。CPU1501がプライマリメモリ1502に記憶されたプログラムを実行することによって、キャッシュサーバの動作が実現され、CPU1501が通信バス1503に接続された全ての構成要素にアクセス可能となる。   During the operation of the cache server, the operation instruction of the cache server and the configuration parameters required at the time of execution are stored in the primary memory 1502. When the CPU 1501 executes the program stored in the primary memory 1502, the operation of the cache server is realized, and the CPU 1501 can access all the components connected to the communication bus 1503.

セカンダリメモリ1505はデータのための記憶スペースを提供する。セカンダリメモリ1505は不揮発性のメモリであり、プライマリメモリ1502は揮発性のメモリである。ネットワークインタフェースコントローラ1504はキャッシュサーバ自身の外部のコンポーネントとの通信を実現する。   Secondary memory 1505 provides storage space for data. The secondary memory 1505 is a non-volatile memory, and the primary memory 1502 is a volatile memory. The network interface controller 1504 implements communication with external components of the cache server itself.

図1に示すキャッシュサーバ360A〜360Nのハードウェア構成は、図3に示すキャッシュサーバのハードウェア構成と同じである。   The hardware configuration of the cache servers 360A to 360N shown in FIG. 1 is the same as the hardware configuration of the cache server shown in FIG.

図4は、実施例1のガーディアンとなるキャッシュサーバによって実行される処理のフローチャートである。   FIG. 4 is a flowchart of processing executed by the cache server serving as the guardian of the first embodiment.

クライアントに最も近いキャッシュサーバは、ガーディアンとしてタスクを実行する。ガーディアンは、クライアントからコンテンツリクエストを受信する。   The cache server closest to the client executes the task as a guardian. The guardian receives a content request from the client.

ガーディアンとなるキャッシュサーバは、コンテンツリクエストを受信した場合(1001)、要求されるコンテンツの位置801を受信したコンテンツリクエストから抽出する。そして、ガーディアンは、要求されたコンテンツに対応するコンテンツの識別子のためのデリゲイトリストを仮想的なピアツーピアオーバーレイネットワークに要求する(1002)。ガーディアンは、仮想的なピアツーピアオーバーレイネットワークからデリゲイトリスト802を受信する。デリゲイトリスト802は要求されたコンテンツを保持するキャッシュサーバの識別子を含む。要求されたコンテンツを保持するキャッシュサーバが存在しない場合、デリゲイトリスト802は他のキャッシュサーバのいかなる識別子も含まない。言い換えれば、デリゲイトリスト802は空のものであってもよい。ガーディアンは、コンテンツサーバ321の識別子をデリゲイトリスト802に追加してもよい。   When receiving the content request (1001), the cache server serving as the guardian extracts the requested content position 801 from the received content request. The guardian then requests a delegate list for the content identifier corresponding to the requested content from the virtual peer-to-peer overlay network (1002). The guardian receives a delegate list 802 from a virtual peer-to-peer overlay network. The delegate list 802 includes an identifier of a cache server that holds the requested content. If there is no cache server holding the requested content, the delegate list 802 does not include any identifiers of other cache servers. In other words, the delegate list 802 may be empty. The guardian may add the identifier of the content server 321 to the delegate list 802.

もし、ガーディアンへの距離が遠いデリゲイトが要求されたコンテンツをクライアントに送信するように選択されたなら、送信されるコンテンツが多くのネットワークリンクを通り、多くのノード及びネットワークリンクが影響を受け、おそらく混雑を引き起こす。このため、ガーディアンからのネットワーク距離が所定値以上である全てのキャッシュサーバはデリゲイトリスト802から削除される。それらのキャッシュサーバに対して分散マックスフロー処理が実行されないようにするために、ガーディアンは、仮想コーディネイトシステム803の現在の状態及びデリゲイトリスト802を用いて、所定の距離関数を満たす(元の)デリゲイトリスト802に含まれているそれらキャッシュサーバ全てのデリゲイトの識別子を削除し(1003)、減少デリゲイトリスト804を生成する。   If a delegate with a long distance to the guardian is chosen to send the requested content to the client, the content being sent will go through many network links and many nodes and network links will be affected, possibly Cause congestion. For this reason, all cache servers whose network distance from the guardian is equal to or greater than a predetermined value are deleted from the delegate list 802. In order to prevent distributed maxflow processing from being performed for those cache servers, the guardian satisfies the predetermined distance function using the current state of the virtual coordinate system 803 and the delegate list 802 (original). The delegate identifiers of all the cache servers included in the delegate list 802 are deleted (1003), and a reduced delegate list 804 is generated.

ステップ1003の処理では、キャッシュサーバは、仮想コーディネイトシステム803の各デリゲイトのネットワーク距離順にデリゲイトリスト802に含まれるデリゲイトの識別子をソートし、選択されたデリゲイトよりネットワーク距離が遠い全てのデリゲイトの識別子をデリゲイトリスト802から削除してもよい。   In the processing of step 1003, the cache server sorts the delegate identifiers included in the delegate list 802 in the order of the network distance of each delegate of the virtual coordinate system 803, and identifies the identifiers of all delegates whose network distance is greater than the selected delegate. It may be deleted from the delegate list 802.

ある例では、ネットワーク距離が10であるデリゲイトが選択されてもよい。他の例では、デリゲイトリスト802での位置がデリゲイトリスト802に含まれる全てのデリゲイトの数を3で除算した値に対応するデリゲイトが選択されてもよい。   In one example, a delegate with a network distance of 10 may be selected. In another example, a delegate corresponding to a value obtained by dividing the number of all delegates included in the delegate list 802 by 3 in the position of the delegate list 802 may be selected.

キャッシュサーバは、減少デリゲイトリスト804から一つのデリゲイトを選択する(1004)、選択されたデリゲイトに対して、トポロジ情報805を用いて分散マックスフロー処理を実行する(1005)。もし、減少デリゲイトリスト804に分散マックスフロー処理1005が実行されていないデリゲイトがあれば、このデリゲイトに分散マックスフロー処理が実行される(1005)。もし、減少デリゲイトリスト804に含まれる全てのデリゲイトに分散マックスフロー処理が実行されたなら、キャッシュサーバは、ステップ1006の処理を実行する。分散マックスフロー処理では、キャッシュサーバは、ガーディアンからステップ1004の処理で選択されたデリゲイトまでのパスの容量を計算する。分散マックスフロー処理の詳細は、図5で説明する。   The cache server selects one delegate from the reduced delegate list 804 (1004), and executes distributed maxflow processing using the topology information 805 for the selected delegate (1005). If there is a delegate in the reduced delegate list 804 for which the distributed maxflow processing 1005 has not been executed, the distributed maxflow processing is executed for this delegate (1005). If the distributed maxflow process is executed for all the delegates included in the reduced delegate list 804, the cache server executes the process of step 1006. In the distributed maxflow process, the cache server calculates the capacity of the path from the guardian to the delegate selected in step 1004. Details of the distributed maxflow processing will be described with reference to FIG.

各デリゲイトに対する分散マックスフロー処理はマックスフロー値を返す。マックスフロー値は、ガーディアンからステップ1004の処理で選択されたデリゲイトまでをつなぐ全てのパスの容量を示す値である。キャッシュサーバは、マックスフロー値をマックスフローリスト807に登録する。キャッシュサーバは、減少デリゲイトリスト804に含まれる全てのデリゲイトに分散マックスフロー処理を実行した後、マックスフローリスト807からデリゲイトを選択する(1006)。ある例では、キャッシュサーバは、マックスフロー値が最大であるデリゲイトを最適なデリゲイトとして選択する。そして、キャッシュサーバは、ステップ1002の処理で受信したコンテンツリクエストをステップ1006の処理で選択されたデリゲイトに転送し(1007)、処理を終了する。ステップ1007の処理で転送されるコンテンツリクエストは、図2に示すメッセージ431に相当する。   The distributed maxflow process for each delegate returns a maxflow value. The maximum flow value is a value indicating the capacity of all paths connecting from the guardian to the delegate selected in the processing of step 1004. The cache server registers the max flow value in the max flow list 807. The cache server performs distributed maxflow processing on all delegates included in the reduced delegate list 804, and then selects a delegate from the maxflow list 807 (1006). In one example, the cache server selects the delegate with the maximum max flow value as the optimal delegate. Then, the cache server transfers the content request received in the process of step 1002 to the delegate selected in the process of step 1006 (1007), and ends the process. The content request transferred in step 1007 corresponds to the message 431 shown in FIG.

デリゲイトは、ステップ1007の処理で転送されたコンテンツリクエストを受信した場合、要求されたコンテンツを含むレスポンスをガーディアンに送信する。ガーディアンは、受信したレスポンスをクライアントに転送する。ガーディアンは、受信したレスポンスに含まれるコンテンツをセカンダリメモリ1505に記憶してもよい。この場合、ガーディアンは、仮想ピアツーピアオーバーレイネットワークのデリゲイトリストに、ガーディアンが記憶したコンテンツの識別子とガーディアンとなるキャッシュサーバの識別子との関係を追加するように更新する。   When the delegate receives the content request transferred in step 1007, the delegate transmits a response including the requested content to the guardian. The guardian forwards the received response to the client. The guardian may store the content included in the received response in the secondary memory 1505. In this case, the guardian updates the delegate list of the virtual peer-to-peer overlay network to add the relationship between the identifier of the content stored by the guardian and the identifier of the cache server serving as the guardian.

ある例では、もし、デリゲイトのセカンダリメモリ1505から要求されたコンテンツが削除されていた場合、デリゲイトによって送信されたレスポンスはエラーコードを含んでもよい。この場合、ガーディアンは、エラーコードを含むレスポンスを送信したデリゲイトを減少デリゲイトリスト804から削除した後、ステップ1006の処理で他のデリゲイトを選択してもよい。   In one example, if the requested content has been deleted from the delegate secondary memory 1505, the response sent by the delegate may include an error code. In this case, the guardian may select another delegate in the process of step 1006 after deleting the delegate that transmitted the response including the error code from the reduced delegate list 804.

減少デリゲイトリスト804の全てのデリゲイトがエラーコードを含むレスポンスを送信した場合、ガーディアンは、コンテンツリクエストをコンテンツサーバ321に転送する。コンテンツサーバ321は、要求されたコンテンツを含むレスポンスをガーディアンを介してクライアント301に送信する。ガーディアンは、コンテンツサーバ321によって送信されたレスポンスを受信した場合、受信したレスポンスに含まれるコンテンツをセカンダリメモリ1505に記憶してもよい。また、ガーディアンは仮想ピアツーピアオーバーレイネットワークのデリゲイトリストを更新する必要がある。   If all the delegates in the reduced delegate list 804 send a response including an error code, the guardian transfers the content request to the content server 321. The content server 321 transmits a response including the requested content to the client 301 via the guardian. When the guardian receives the response transmitted by the content server 321, the guardian may store the content included in the received response in the secondary memory 1505. The guardian also needs to update the virtual peer-to-peer overlay network delegate list.

次に、分散マックスフロー処理について図5及び図6を用いて説明する。図5は、実施例1のガーディアンによって実行される分散マックスフロー処理のフローチャートである。   Next, the distributed maxflow process will be described with reference to FIGS. FIG. 5 is a flowchart of the distributed maxflow process executed by the guardian according to the first embodiment.

まず、ガーディアンとなるキャッシュサーバは、サブグラフ806の送信のためのUUID(Universal Unique Identifier)を生成する(1101)。例えば、キャッシュサーバは、UUID同士の重複を防止するために、ハッシュ関数を用いてUUIDを生成してもよい。ある例では、ハッシュ関数の入力は、ガーディアンのIPアドレス、及びガーディアンのCPU1501の識別子である。   First, the cache server serving as the guardian generates a UUID (Universal Unique Identifier) for transmission of the subgraph 806 (1101). For example, the cache server may generate a UUID using a hash function in order to prevent duplication between UUIDs. In one example, the input of the hash function is a guardian IP address and an identifier of the guardian CPU 1501.

そして、キャッシュサーバは、サブグラフ806を生成するサブグラフ初期化処理を実行する(1102)。サブグラフ初期化処理の詳細は図6で説明する。サブグラフ806のデータ構造の例の詳細は図7で説明する。   Then, the cache server executes a subgraph initialization process for generating the subgraph 806 (1102). Details of the subgraph initialization processing will be described with reference to FIG. Details of an example of the data structure of the subgraph 806 will be described with reference to FIG.

そして、キャッシュサーバは、分散マックスフロー処理の通常の初期化処理(1103)を実行し、分散マックスフロー処理を終了する。ステップ1103の処理では、キャッシュサーバは、ガーディアンからステップ1004の処理で選択されたデリゲイトまでの限定サブグラフ806に含まれるパスの容量を計算する。容量が計算されるパスは限定サブグラフ806に含まれる。また、ステップ1103の処理では、キャッシュサーバは、限定サブグラフ806に含まれるキャッシュサーバに、プッシュメッセージに限定サブグラフ806を含めて送信する。パスの容量の計算処理の詳細は非特許文献1に記載される。   Then, the cache server executes a normal initialization process (1103) of the distributed maxflow process, and ends the distributed maxflow process. In the process of step 1103, the cache server calculates the capacity of the path included in the limited subgraph 806 from the guardian to the delegate selected in the process of step 1004. The path for which the capacity is calculated is included in the limited subgraph 806. In the processing of step 1103, the cache server transmits the push message including the limited subgraph 806 to the cache server included in the limited subgraph 806. Details of the path capacity calculation process are described in Non-Patent Document 1.

図6は、実施例1のサブグラフ初期化処理のフローチャートである。   FIG. 6 is a flowchart of the subgraph initialization process according to the first embodiment.

まず、ガーディアンは、トポロジ情報805を無閉路のグラフ808に変換する。そして、ガーディアンは、グラフ808に基づいて、ガーディアンと選択されたデリゲイトとの間の最短のネットワーク距離809を計算する(1201)。ある例では、キャッシュサーバは、ダイクストラ法の最短経路優先アルゴリズムを用いて、最短パスを計算する。   First, the guardian converts the topology information 805 into an acyclic graph 808. The guardian then calculates the shortest network distance 809 between the guardian and the selected delegate based on the graph 808 (1201). In one example, the cache server calculates the shortest path using the Dijkstra's shortest path priority algorithm.

そして、キャッシュサーバは、ステップ1201の処理で計算された最短パスのネットワーク距離809及び限定要素810を用いて、限定長を計算する(1202)。例えば、限定要素810は、キャッシュサーバのプライマリメモリ1502に記憶されている。ある例では、キャッシュサーバは、ネットワーク距離809に限定要素810を積算することによって限定長を計算する。他の例では、キャッシュサーバは、ネットワーク距離809に限定要素810を加算することによって限定長を計算してもよい。   Then, the cache server calculates the limited length using the shortest path network distance 809 and the limiting element 810 calculated in the processing of Step 1201 (1202). For example, the limiting element 810 is stored in the primary memory 1502 of the cache server. In one example, the cache server calculates the limit length by adding the limit element 810 to the network distance 809. In another example, the cache server may calculate the limit length by adding a limit element 810 to the network distance 809.

そして、キャッシュサーバは、グラフ808のガーディアンからデリゲイトまでの全てのパスのうち、パスの長さが最短パスのネットワーク距離809以上であって、かつ、ステップ1202の処理で計算された限定長以下であるパスを特定する(1203)。キャッシュサーバは、ステップ1203の処理で特定されたパスをパスリスト811に登録する。パスリスト811はサブグラフを生成するために用いられる。   Then, the cache server has a path length that is not less than the shortest path network distance 809 among all the paths from the guardian to the delegate in the graph 808 and not more than the limited length calculated in the processing of step 1202. A certain path is specified (1203). The cache server registers the path specified in the process of step 1203 in the path list 811. The path list 811 is used to generate a subgraph.

そして、キャッシュサーバは、パスリスト811を用いて、サブグラフ806を生成し(1204)、サブグラフ初期化処理を終了する。サブグラフ806は、グラフ808及びパスリスト811のノード及びエッジを含む。   Then, the cache server generates a subgraph 806 using the path list 811 (1204), and ends the subgraph initialization processing. The subgraph 806 includes nodes and edges of the graph 808 and the path list 811.

図7は、実施例1のサブグラフ806のデータ構造の説明図である。サブグラフ806は、キャッシュサーバのプライマリメモリ1502に記憶され、他のキャッシュサーバにプッシュメッセージで送信される。   FIG. 7 is an explanatory diagram of a data structure of the sub-graph 806 according to the first embodiment. The subgraph 806 is stored in the primary memory 1502 of the cache server, and is transmitted to other cache servers by a push message.

サブグラフ806のデータ構造は、UUIDフィールド1401、エッジ数フィールド1402、及びエッジ1403A〜1403Nのフィールドを含む。各エッジフィールド1403A〜1403Nは、始点ノードフィールド1404及び終点ノードフィールド1405を含む。   The data structure of the subgraph 806 includes a UUID field 1401, an edge number field 1402, and edges 1403A to 1403N. Each edge field 1403 </ b> A to 1403 </ b> N includes a start point node field 1404 and an end point node field 1405.

UUIDフィールド1401には、ステップ1101の処理で生成されたUUIDが登録される。ハッシュ値がUUIDに用いられる例では、UUIDの容量が固定されている。これによって、UUIDフィールド1401の値は簡単にデコードされる。エッジ数フィールド1402には、サブグラフ806のエッジ集合E”に含まれるエッジの数を示す値が登録される。ある例では、エッジ数フィールド1402の容量が固定されていてもよい。これによって、エッジ数フィールド1402に書き込まれるエッジ数は簡単にデコードされる。サブグラフ806に含まれるエッジ1403A〜1403Nの数はエッジ数フィールド1402に登録された値が示す数と同じである。始点ノードフィールド1404には、エッジの始点となるキャッシュサーバやルータや他のネットワーク装置の識別子が登録される。終点ノードフィールド1405には、エッジの終点となるキャッシュサーバやルータや他のネットワーク装置の識別子が登録される。ある例では、始点ノード1404及び終点ノード1405に登録される識別子は、キャッシュサーバやルータや他のネットワーク装置のIPアドレスである。   In the UUID field 1401, the UUID generated in the process of step 1101 is registered. In the example where the hash value is used for the UUID, the capacity of the UUID is fixed. As a result, the value of the UUID field 1401 is easily decoded. In the edge number field 1402, a value indicating the number of edges included in the edge set E ″ of the subgraph 806 is registered. In an example, the capacity of the edge number field 1402 may be fixed. The number of edges written in the number field 1402 is easily decoded, and the number of edges 1403A to 1403N included in the subgraph 806 is the same as the number indicated by the value registered in the edge number field 1402. The start node field 1404 contains The identifier of the cache server, router, or other network device that is the start point of the edge is registered, and the identifier of the cache server, router, or other network device that is the end point of the edge is registered in the end node field 1405. In one example, a start node 1404 and an end node Identifier registered in 405 is the IP address of the cache servers and routers and other network devices.

次に、サブグラフ806を含むプッシュメッセージを受信した場合のガーディアンでないキャッシュサーバによって実行される処理について図8を用いて説明する。図8は、実施例1のプッシュメッセージを受信した場合にガーディアンでないキャッシュサーバによって実行される処理のフローチャートである。   Next, processing executed by a non-guardian cache server when a push message including the subgraph 806 is received will be described with reference to FIG. FIG. 8 is a flowchart of processing executed by a non-guardian cache server when the push message of the first embodiment is received.

まず、キャッシュサーバは、ガーディアンによって送信された新たなUUIDを含むプッシュメッセージを受信する(1301)。新たなUUIDは、キャッシュサーバが今まで受信したプッシュメッセージに含まれるUUIDと異なる。受信したプッシュメッセージに含まれるUUIDが新たなUUIDでない場合、そのプッシュメッセージを無視する。ある例では、キャッシュサーバは、受信したプッシュメッセージに含まれるUUIDが登録されたリストをセカンダリメモリ1505に記憶する。キャッシュサーバは、受信したプッシュメッセージに含まれるUUIDがリストにない場合、受信したプッシュメッセージに含まれるUUIDをそのリストに加える。   First, the cache server receives a push message including a new UUID transmitted by the guardian (1301). The new UUID is different from the UUID included in the push message received so far by the cache server. If the UUID included in the received push message is not a new UUID, the push message is ignored. In an example, the cache server stores a list in which the UUID included in the received push message is registered in the secondary memory 1505. When the UUID included in the received push message is not in the list, the cache server adds the UUID included in the received push message to the list.

そして、キャッシュサーバは、受信したプッシュメッセージに含まれるサブグラフ806のデータ構造を構文解析する(1302)。そして、キャッシュサーバは、サブグラフ806を用いて、グラフ808を更新又は生成する(1303)。   Then, the cache server parses the data structure of the subgraph 806 included in the received push message (1302). Then, the cache server updates or generates the graph 808 using the subgraph 806 (1303).

ある例では、キャッシュサーバは、サブグラフ806を用いて、プライマリメモリ1502に記憶される一時的なグラフ808を生成する。また、キャッシュサーバは、各キャッシュサーバでわずかに異なる可能性があるトポロジ情報805と受信したプッシュメッセージに含まれるサブグラフ806との組み合わせを用いて、新たなグラフ808を生成し、トポロジ情報805を更新する。これによって、キャッシュサーバは、トポロジ情報805に含まれていなかったノードを追加でき、又は、更新されたグラフ808に含まれないノードを削除できる。   In one example, the cache server uses the subgraph 806 to generate a temporary graph 808 that is stored in the primary memory 1502. Further, the cache server generates a new graph 808 by using the combination of the topology information 805 that may be slightly different in each cache server and the subgraph 806 included in the received push message, and updates the topology information 805. To do. As a result, the cache server can add a node that is not included in the topology information 805 or can delete a node that is not included in the updated graph 808.

そして、キャッシュサーバは、分散マックスフロー処理の通常の初期化処理を実行し(1304)、プッシュメッセージ受信時の処理を終了する。ステップ1304の処理の詳細は非特許文献1に記載される。   Then, the cache server executes a normal initialization process of the distributed maxflow process (1304), and ends the process when the push message is received. Details of the processing in step 1304 are described in Non-Patent Document 1.

本実施例では、ガーディアンが、ガーディアンとデリゲイトとの間の少なくとも一つのパスから所定の条件を満たす全てのパスを特定する。そして、ガーディアンは、それらのパスに対して分散マックスフロー処理を実行し、各デリゲイトまでのマックスフロー容量を計算する。これによって、分散マックスフロー処理が使用するノードの数が減少するので、マックスフローの計算中に通信されるメッセージの数を減少させることができる。したがって、本実施例は、ノードの数が多い分散キャッシュシステムであっても、ネットワーク全体の状況を考慮してコンテンツを送信するキャッシュサーバを選択するキャッシュサーバ選択装置を提供できる。   In this embodiment, the guardian specifies all paths that satisfy a predetermined condition from at least one path between the guardian and the delegate. The guardian then performs distributed maxflow processing on these paths and calculates the maxflow capacity up to each delegate. This reduces the number of nodes used by the distributed maxflow process, thereby reducing the number of messages communicated during the maxflow computation. Therefore, this embodiment can provide a cache server selection device that selects a cache server that transmits content in consideration of the situation of the entire network even in a distributed cache system having a large number of nodes.

ガーディアンからのネットワーク距離が長いデリゲイトによってコンテンツが送信された場合、ネットワークの混雑が引き起こされる。このため、本実施例では、ガーディアンは、ガーディアンへの所定のネットワーク距離以下のデリゲイトのみに着目し、さらに、分散マックスフロー計算に基づいて所定の条件を満たすパスのみに着目する。これによって、不要なネットワークを混雑を引き起こすような不要な長いパスが計算中に考慮されないため、マックスフローの容量を計算するために通信されるメッセージの数を効率的に減少させることができる。   When content is transmitted by a delegate with a long network distance from the guardian, network congestion is caused. For this reason, in this embodiment, the guardian focuses only on a delegate that is equal to or smaller than a predetermined network distance to the guardian, and further focuses only on a path that satisfies a predetermined condition based on the distributed maxflow calculation. This effectively eliminates the number of messages communicated to calculate MaxFlow capacity, since unnecessary long paths that cause congestion in unnecessary networks are not considered during the calculation.

ある例では、ガーディアンと何らかの一つのデリゲイトとの間のパスを選択するための条件は、ガーディアンとデリゲイトとの間の最短パスの距離に関連してもよい。他の例では、考えられる他のパラメータを含んでもよい。これは、例えば、最短パスの長さに関連する条件に関連して、考慮されるパスの数を減少させるので、ガーディアンとデリゲイトとの間のマックスフローの容量の計算中に通信されるメッセージの数を効率的に減少させることができる。   In one example, the condition for selecting a path between the guardian and any one delegate may be related to the shortest path distance between the guardian and the delegate. In other examples, other possible parameters may be included. This reduces, for example, the number of paths considered in relation to conditions related to the length of the shortest path, so that messages communicated during the computation of the capacity of the max flow between the guardian and the delegate The number can be reduced efficiently.

また、本実施例では、ガーディアンとなるキャッシュサーバは、所定の条件を満たす各キャッシュサーバへの全てのパスのサブグラフ情報を複数のキャッシュサーバに送信する。複数のキャッシュサーバは、最新であるかもしれないし、各キャッシュサーバが把握していない情報を含んでいるかもしれない受信したサブグラフ情報に基づいてそれらのトポロジ情報を更新する。これによって、各キャッシュサーバが分散して自身のトポロジ情報を管理する場合であっても、このトポロジ情報は全体として正確なトポロジにまとまる。   In this embodiment, the guard server serving as the guardian transmits the subgraph information of all paths to each cache server satisfying a predetermined condition to a plurality of cache servers. The plurality of cache servers update their topology information based on the received subgraph information that may be up-to-date and may include information that each cache server does not know. As a result, even when each cache server is distributed and manages its own topology information, the topology information as a whole is collected into an accurate topology.

実施例1では、ガーディアンとなるキャッシュサーバは、図6に示すステップ1204の処理でサブグラフ806を含むプッシュメッセージを送信する。実施例2では、ガーディアンとなるキャッシュサーバは、TTL(Time−to−Live)を含むプッシュメッセージを送信する。ガーディアンでないキャッシュサーバは、プッシュメッセージを受信した場合、図8に示すステップ1302及び1303の処理を実行せず、ステップ1304の処理を実行する。   In the first embodiment, the cache server serving as the guardian transmits a push message including the subgraph 806 in the process of step 1204 illustrated in FIG. In the second embodiment, a cache server serving as a guardian transmits a push message including TTL (Time-to-Live). When receiving the push message, the cache server that is not the guardian does not execute the processes of steps 1302 and 1303 shown in FIG. 8, but executes the process of step 1304.

本実施例によれば、ガーディアンは、図6に示すステップ1202の処理で計算された限定長をTTLの値として用いる。キャッシュサーバは、プッシュメッセージを送信する場合、TTLの値を図7に示すエッジ数フィールド1402に書き込む。ガーディアンとなるキャッシュサーバによって送信されたプッシュメッセージはエッジフィールド1403A〜1403Nを含まない。   According to the present embodiment, the guardian uses the limited length calculated in the process of step 1202 shown in FIG. 6 as the TTL value. When transmitting the push message, the cache server writes the TTL value in the edge number field 1402 shown in FIG. The push message transmitted by the cache server serving as the guardian does not include the edge fields 1403A to 1403N.

ガーディアンでないキャッシュサーバは、プッシュメッセージを受信した場合、受信したプッシュメッセージに含まれるTTLから所定値を減算する。例えば、この値は1である。ガーディアンでないキャッシュサーバは、再計算されたTTLが0であれば、受信したプッシュメッセージを無視する。ガーディアンでないキャッシュサーバは、減算されたTTLが0でなければ、非特許文献1に記載された分散マックスフロー処理を実行する。   When the cache server that is not the guardian receives the push message, the cache server subtracts a predetermined value from the TTL included in the received push message. For example, this value is 1. A non-guardian cache server ignores a received push message if the recalculated TTL is zero. If the subtracted TTL is not 0, the non-guardian cache server executes the distributed maxflow process described in Non-Patent Document 1.

本実施例では、ガーディアンから遠く、TTLが0となるノードは計算に考慮されないため、デリゲイトが選択された後の送信中に使用されないので、送信されたプッシュメッセージに限定サブグラフ806を含まずとも、ネットワークの混雑を防止できる。   In this example, nodes far from the guardian and having a TTL of 0 are not considered in the calculation and are not used during transmission after the delegate is selected. Therefore, even if the transmitted push message does not include the limited subgraph 806, Network congestion can be prevented.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。   In addition, this invention is not limited to an above-described Example, Various modifications are included. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of a certain embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of a certain embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。   Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files that realize each function can be stored in a recording device such as a memory, a hard disk, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない、実際には殆ど全ての構成が相互に接続されていると考えてもよい。   In addition, control lines and information lines are those that are considered necessary for explanation, and not all control lines and information lines on the product are shown. In fact, almost all configurations are connected to each other. You may think that it is.

100 通信システム
101 キャリアネットワーク
102 コンテンツネットワーク
201 ネットワークリンク
301 クライアント
321 コンテンツサーバ
340A、340M ルータ
360A〜360N キャッシュサーバ
DESCRIPTION OF SYMBOLS 100 Communication system 101 Carrier network 102 Content network 201 Network link 301 Client 321 Content server 340A, 340M Router 360A-360N Cache server

Claims (15)

クライアント及び複数のキャッシュサーバに接続されるキャッシュサーバ選択装置であって、
前記複数のキャッシュサーバはネットワークを構築し、
前記ネットワークのトポロジ情報を記憶しており、
前記クライアントからリクエストを受信し、
前記複数のキャッシュサーバの中から、前記受信したリクエストに対応するデータを記憶する少なくとも一つのキャッシュサーバを特定し、
前記特定された少なくとも一つのキャッシュサーバ毎に、前記キャッシュサーバ選択装置から前記特定した少なくとも一つの各キャッシュサーバまで到達可能な全てのパスの中から所定の条件を満たす少なくとも一つのパスを、前記トポロジ情報に基づいて特定し、
前記特定した少なくとも一つのキャッシュサーバ毎の前記特定した少なくとも一つの各パスの容量を計算し、
前記計算したパスの容量に基づいて、前記特定した少なくとも一つのキャッシュサーバの中から、前記データをクライアントに送信するキャッシュサーバを選択することを特徴とするキャッシュサーバ選択装置。
A cache server selection device connected to a client and a plurality of cache servers,
The plurality of cache servers construct a network,
Storing topology information of the network;
Receiving a request from the client;
Identifying at least one cache server that stores data corresponding to the received request from the plurality of cache servers;
For each of the specified at least one cache server, at least one path satisfying a predetermined condition from all paths reachable from the cache server selection device to the specified at least one cache server is determined as the topology. Identify based on information,
Calculating the capacity of each identified at least one path for each identified at least one cache server;
A cache server selection apparatus, wherein a cache server that transmits the data to a client is selected from the specified at least one cache server based on the calculated path capacity.
請求項1に記載のキャッシュサーバ選択装置であって、
前記所定の条件を満たす少なくとも一つのパスは、前記キャッシュサーバ選択装置と所定の関係にあるパスであることを特徴とするキャッシュサーバ選択装置。
The cache server selection device according to claim 1,
At least one path satisfying the predetermined condition is a path having a predetermined relationship with the cache server selection apparatus.
請求項2に記載のキャッシュサーバ選択装置であって、
前記キャッシュサーバ選択装置と所定の関係にあるパスは、前記キャッシュサーバ選択装置から前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスであることを特徴とするキャッシュサーバ選択装置。
The cache server selection device according to claim 2,
The path having a predetermined relationship with the cache server selection apparatus is a path that reaches a predetermined distance from the cache server selection apparatus to the specified at least one cache server.
請求項3に記載のキャッシュサーバ選択装置であって、
前記キャッシュサーバ選択装置から前記特定した少なくとも一つの各キャッシュサーバまで到達可能な全てのパスの中から、前記キャッシュサーバ選択装置から前記特定した少なくとも一つの各キャッシュサーバまで最短の距離で到達する最短パスを特定し、
前記キャッシュサーバ選択装置から前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスは、前記キャッシュサーバ選択装置から前記特定された少なくとも一つのキャッシュサーバまで前記特定した最短パスの距離から所定範囲で到達するパスであることを特徴とするキャッシュサーバ選択装置。
The cache server selection device according to claim 3,
The shortest path that reaches from the cache server selection device to the specified at least one cache server with the shortest distance among all the paths that can be reached from the cache server selection device to the specified at least one cache server. Identify
A path that reaches the specified at least one cache server from the cache server selecting device at a predetermined distance is determined from a distance of the specified shortest path from the cache server selecting device to the specified at least one cache server. A cache server selection device characterized in that the path reaches a range.
請求項1に記載のキャッシュサーバ選択装置であって、
前記複数のキャッシュサーバは、前記ネットワークのトポロジ情報を記憶しており、
前記トポロジ情報に基づいて、前記特定した所定の条件を満たすパス上の複数のノード、及び前記パスを構成するリンクを特定し、
前記複数のキャッシュサーバに前記トポロジ情報を更新させるために、前記特定した複数のノード及び前記特定したリンクに関する情報を含むサブグラフ情報を前記複数のキャッシュサーバに送信することを特徴とするキャッシュサーバ選択装置。
The cache server selection device according to claim 1,
The plurality of cache servers store topology information of the network,
Based on the topology information, identify a plurality of nodes on a path satisfying the specified predetermined condition, and links constituting the path,
A cache server selection device that transmits subgraph information including information regarding the specified nodes and the specified link to the plurality of cache servers in order to cause the plurality of cache servers to update the topology information. .
クライアント及び複数のキャッシュサーバを備える分散キャッシュシステムであって、
前記複数のキャッシュサーバはネットワークを構築し、
前記複数のキャッシュサーバは、前記ネットワークのトポロジ情報を記憶しており、
前記クライアントからリクエストを受信したキャッシュサーバであるガーディアンは、
前記複数のキャッシュサーバの中から、前記受信したリクエストに対応するデータを記憶する少なくとも一つのキャッシュサーバを特定し、
前記特定された少なくとも一つのキャッシュサーバ毎に、前記ガーディアンから前記特定した少なくとも一つの各キャッシュサーバまで到達可能な全てのパスの中から所定の条件を満たす少なくとも一つのパスを、前記トポロジ情報に基づいて特定し、
前記特定した少なくとも一つのキャッシュサーバ毎の前記特定した少なくとも一つの各パスの容量を計算し、
前記計算した各パスの容量に基づいて、前記特定した少なくとも一つのキャッシュサーバの中から、前記データをクライアントに送信するキャッシュサーバを選択することを特徴とする分散キャッシュシステム。
A distributed cache system comprising a client and a plurality of cache servers,
The plurality of cache servers construct a network,
The plurality of cache servers store topology information of the network,
The guardian that is the cache server that received the request from the client,
Identifying at least one cache server that stores data corresponding to the received request from the plurality of cache servers;
For each of the specified at least one cache server, at least one path satisfying a predetermined condition among all paths reachable from the guardian to the specified at least one cache server is based on the topology information. Identify
Calculating the capacity of each identified at least one path for each identified at least one cache server;
A distributed cache system, wherein a cache server that transmits the data to a client is selected from the specified at least one cache server based on the calculated capacity of each path.
請求項6に記載の分散キャッシュシステムであって、
前記所定の条件を満たす少なくとも一つのパスは、前記ガーディアンと所定の関係にあるパスであることを特徴とする分散キャッシュシステム。
The distributed cache system according to claim 6,
The distributed cache system, wherein at least one path satisfying the predetermined condition is a path having a predetermined relationship with the guardian.
請求項7に記載の分散キャッシュシステムであって、
前記ガーディアンと所定の関係にあるパスは、前記ガーディアンから前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスであることを特徴とする分散キャッシュシステム。
The distributed cache system according to claim 7,
The distributed cache system according to claim 1, wherein the path having a predetermined relationship with the guardian is a path that reaches a predetermined distance from the guardian to the specified at least one cache server.
請求項8に記載の分散キャッシュシステムであって、
前記ガーディアンは、前記ガーディアンから前記特定した少なくとも一つの各キャッシュサーバまで到達可能な少なくとも全てのパスの中から、前記ガーディアンから前記特定した少なくとも一つの各キャッシュサーバまで最短の距離で到達する最短パスを特定し、
前記ガーディアンから前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスは、前記ガーディアンから前記特定された少なくとも一つのキャッシュサーバまで前記特定した最短パスの距離から所定範囲で到達するパスであることを特徴とする分散キャッシュシステム。
The distributed cache system according to claim 8,
The guardian selects a shortest path that reaches the shortest distance from the guardian to the at least one specified cache server among at least all paths that can be reached from the guardian to the at least one specified cache server. Identify,
A path that reaches from the guardian to the specified at least one cache server at a predetermined distance is a path that reaches from the guardian to the specified at least one cache server within a predetermined range from the distance of the specified shortest path. A distributed cache system characterized by being.
請求項6に記載の分散キャッシュシステムであって、
前記ガーディアンは、
前記トポロジ情報に基づいて、前記特定した所定の条件を満たすパス上の複数のノード、及び前記パスを構成するリンクを特定し、
前記特定した複数のノード及び前記特定したリンクに関する情報を含むサブグラフ情報を前記複数のキャッシュサーバに送信し、
前記サブグラフ情報を受信したキャッシュサーバは、前記受信したサブグラフ情報に基づいて、前記トポロジ情報を更新することを特徴とする分散キャッシュシステム。
The distributed cache system according to claim 6,
The guardian is
Based on the topology information, identify a plurality of nodes on a path satisfying the specified predetermined condition, and links constituting the path,
Sending subgraph information including information about the identified nodes and the identified links to the cache servers;
The cache server that has received the subgraph information updates the topology information based on the received subgraph information.
クライアント及び複数のキャッシュサーバに接続される装置における、データを前記クライアントに送信するキャッシュサーバを選択するキャッシュサーバ選択方法であって、
前記複数のキャッシュサーバはネットワークを構築し、
前記ネットワークのトポロジ情報を記憶しており、
前記方法は、
前記装置が、前記クライアントからリクエストを受信し、
前記装置が、前記複数のキャッシュサーバの中から、前記受信したリクエストに対応するデータを記憶する少なくとも一つのキャッシュサーバを特定し、
前記装置が、前記特定された少なくとも一つのキャッシュサーバ毎に、前記装置から前記特定した少なくとも一つの各キャッシュサーバまで到達可能な少なくとも全てのパスの中から所定の条件を満たす少なくとも一つのパスを、前記トポロジ情報に基づいて特定し、
前記装置が、前記特定した少なくとも一つのキャッシュサーバ毎の前記特定した少なくとも一つの各パスの容量を計算し、
前記装置が、前記計算した各パスの容量に基づいて、前記特定した少なくとも一つのキャッシュサーバの中から、前記データをクライアントに送信するキャッシュサーバを選択することを特徴とするキャッシュサーバ選択方法。
A cache server selection method for selecting a cache server that transmits data to the client in an apparatus connected to the client and a plurality of cache servers,
The plurality of cache servers construct a network,
Storing topology information of the network;
The method
The device receives a request from the client;
The apparatus specifies at least one cache server that stores data corresponding to the received request from the plurality of cache servers,
For each of the specified at least one cache server, the device has at least one path satisfying a predetermined condition from at least all paths reachable from the device to the specified at least one cache server. Identify based on the topology information,
The apparatus calculates a capacity of each of the specified at least one path for each of the specified at least one cache server;
The apparatus selects a cache server that transmits the data to a client from the identified at least one cache server based on the calculated capacity of each path.
請求項11に記載のキャッシュサーバ選択方法であって、
前記所定の条件を満たす少なくとも一つのパスは、前記装置と所定の関係にあるパスであることを特徴とするキャッシュサーバ選択方法。
The cache server selection method according to claim 11,
The cache server selection method, wherein at least one path satisfying the predetermined condition is a path having a predetermined relationship with the device.
請求項12に記載のキャッシュサーバ選択方法であって、
前記装置と所定の関係にあるパスは、前記装置から前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスであることを特徴とするキャッシュサーバ選択方法。
The cache server selection method according to claim 12,
A cache server selection method characterized in that a path having a predetermined relationship with the device is a path that reaches a predetermined distance from the device to the specified at least one cache server.
請求項13に記載のキャッシュサーバ選択方法であって、
前記装置が、前記装置から前記特定した少なくとも一つの各キャッシュサーバまで到達可能な全てのパスの中から、前記装置から前記特定した少なくとも一つの各キャッシュサーバまで最短の距離で到達する最短パスを特定し、
前記装置から前記特定された少なくとも一つのキャッシュサーバまで所定の距離で到達するパスは、前記装置から前記特定された少なくとも一つのキャッシュサーバまで前記特定した最短パスの距離から所定範囲で到達するパスであることを特徴とするキャッシュサーバ選択方法。
The cache server selection method according to claim 13,
The device specifies the shortest path that can be reached from the device to the specified at least one cache server with the shortest distance from all the paths that can be reached from the device to the specified at least one cache server. And
A path that reaches from the apparatus to the specified at least one cache server at a predetermined distance is a path that reaches the specified at least one cache server from the apparatus within a predetermined range from the distance of the specified shortest path. A method for selecting a cache server, comprising:
請求項11に記載のキャッシュサーバ選択方法であって、
前記複数のキャッシュサーバは、前記ネットワークのトポロジ情報を記憶しており、
前記装置が、前記トポロジ情報に基づいて、前記特定した所定の条件を満たすパス上のノード、及び前記パスを構成するリンクを特定し、
前記複数のキャッシュサーバに前記トポロジ情報を更新させるために、前記特定した複数のノード及び前記特定したリンクに関する情報を含むサブグラフ情報を前記複数のキャッシュサーバに送信することを特徴とするキャッシュサーバ選択方法。
The cache server selection method according to claim 11,
The plurality of cache servers store topology information of the network,
Based on the topology information, the device specifies a node on a path that satisfies the specified predetermined condition, and a link configuring the path,
A cache server selection method comprising: transmitting subgraph information including information relating to the specified plurality of nodes and the specified link to the plurality of cache servers in order to cause the plurality of cache servers to update the topology information. .
JP2014172160A 2014-08-27 2014-08-27 Cache server selection device, distributed cache system, and cache server selection method Pending JP2016046785A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014172160A JP2016046785A (en) 2014-08-27 2014-08-27 Cache server selection device, distributed cache system, and cache server selection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014172160A JP2016046785A (en) 2014-08-27 2014-08-27 Cache server selection device, distributed cache system, and cache server selection method

Publications (1)

Publication Number Publication Date
JP2016046785A true JP2016046785A (en) 2016-04-04

Family

ID=55636922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014172160A Pending JP2016046785A (en) 2014-08-27 2014-08-27 Cache server selection device, distributed cache system, and cache server selection method

Country Status (1)

Country Link
JP (1) JP2016046785A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101850696B1 (en) * 2017-04-10 2018-04-23 주식회사 넥서스커뮤니티 Multimedia- contents division multiplexing transmission method and device of thereof
US10681137B2 (en) 2017-12-22 2020-06-09 Samsung Electronics Co., Ltd. System and method for network-attached storage devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101850696B1 (en) * 2017-04-10 2018-04-23 주식회사 넥서스커뮤니티 Multimedia- contents division multiplexing transmission method and device of thereof
US10681137B2 (en) 2017-12-22 2020-06-09 Samsung Electronics Co., Ltd. System and method for network-attached storage devices
US10728332B2 (en) 2017-12-22 2020-07-28 Samsung Electronics Co., Ltd. System and method for distributed caching
US11283870B2 (en) 2017-12-22 2022-03-22 Samsung Electronics Co., Ltd. System and method for network-attached storage devices
US11290535B2 (en) 2017-12-22 2022-03-29 Samsung Electronics Co., Ltd. System and method for distributed caching

Similar Documents

Publication Publication Date Title
US9912593B2 (en) Selective distribution of routing information
Madhyastha et al. iPlane Nano: Path Prediction for Peer-to-Peer Applications.
EP2137844B1 (en) Distributed routing table architecture and design
JP4951717B2 (en) How to select backup resources, system
Sahhaf et al. Adaptive and reliable multipath provisioning for media transfer in SDN-based overlay networks
US20100085892A1 (en) Overlay network coordination redundancy
CN109639502B (en) Return source control method and content distribution network
JP5871908B2 (en) Method and system for controlling data communication within a network
JP2016046785A (en) Cache server selection device, distributed cache system, and cache server selection method
EP1440529B1 (en) System and method for information object routing in computer networks
Wichtlhuber et al. SoDA: Enabling CDN-ISP collaboration with software defined anycast
WO2012029248A1 (en) Data transfer system
JP5894981B2 (en) Accessing a network of nodes distributed across a communication architecture using a topology server with multiple criteria selection
Saifullah et al. Open flow-based server load balancing using improved server health reports
JP5726302B2 (en) Secret or protected access to a network of nodes distributed across a communication architecture using a topology server
Poryev et al. CARMA based MST approximation for multicast provision in P2P networks
JP5506640B2 (en) Content delivery method and system
Fischer et al. Resilient and underlay-aware P2P live-streaming
Maiti et al. Node allocation in Peer-to-peer overlay networks based remote instrumentation with smart devices
JP2012169789A (en) Load distribution server, server selection method, and server selection program
JP4784617B2 (en) Distributed management system, client terminal, distributed management method, and distributed management program
Aggarwal et al. Locality-aware P2P query search with ISP collaboration
Zhang et al. A topology and application‐aware relay path allocation scheme in multipath transport system based on application‐level relay
Mercan et al. Virtual direction multicast: An efficient overlay tree construction algorithm
Serbu et al. Network-friendly gossiping