P
US8296458B2ActiveUtilityPatentIndex 72

Adaptive routing of content requests using multiple anycast addresses

Assignee: KWAPNIEWSKI RICHARD TPriority: Aug 24, 2009Filed: Aug 24, 2009Granted: Oct 23, 2012
Est. expiryAug 24, 2029(~3.1 yrs left)· nominal 20-yr term from priority
Inventors:KWAPNIEWSKI RICHARD TNGUYEN HAN C
H04L 61/4511H04L 67/1023H04L 67/1029H04L 67/1004H04L 67/568
72
PatentIndex Score
8
Cited by
15
References
16
Claims

Abstract

A system includes a plurality of cache servers and a domain name server. Each of the cache servers is configured to respond to a content request. The plurality of cache servers is divided into a plurality of subsets and configured to respond to an anycast address for each subset to which the cache server belongs. The domain name server is configured to receive a request from a requester for a cache server address, identify an anycast address for a largest available subset, and provide the anycast address of the largest available subset to the requester.

Claims

exact text as granted — not AI-modified
1. A system comprising:
 a plurality of cache servers each configured to respond to a request, the plurality of cache servers divided into a plurality of subsets, wherein:
 each subset including more than one server is assigned a different anycast address; 
 one of the cache servers belongs to multiple subsets, and is configured to respond to the anycast address of each of the multiple subsets to which the one cache server belongs; and 
 each subset including only one server is assigned a different unicast address and is not assigned an anycast address; and 
 
 a domain name server configured to:
 receive the request from a requestor for a cache server address; 
 identify an anycast address for a largest available subset, the largest available subset including no unavailable cache servers; and 
 provide the anycast address of the largest available subset to the requestor. 
 
 
     
     
       2. The system of  claim 1  wherein the domain name server is further configured to receive status information from each cache server. 
     
     
       3. The system of  claim 2  wherein the status information includes one of network bandwidth, central processing unit utilization, memory utilization, number of requests being served, and any combination thereof for the respective cache server. 
     
     
       4. The system of  claim 2  wherein a cache server is unavailable when the cache server is non-operational, the central processing unit utilization exceeds a threshold, the memory utilization exceeds a threshold, the number of requests being served exceeds one of a threshold, the network bandwidth utilization exceeds a threshold, and any combination thereof. 
     
     
       5. A domain name server comprising:
 a port coupleable to a network; and 
 a processor configured to:
 receive a request from a requestor for an edge cache address; 
 identify a plurality of cache servers; 
 arrange the cache servers into a plurality of subsets, each subset including at least one cache server, wherein one of the cache servers belongs to more than one subset and is configured to respond to the anycast address of the multiple subsets to which the one cache server belongs; and each subset including only one server is
 assigned a different unicast address and is not assigned an anycast address; 
 
 provide a different anycast address to each subset that includes at least two cache servers; 
 determine a largest subset of available cache servers based on status information for each of the cache servers; 
 identify an anycast address for a largest available subset, the largest available subset including no unavailable cache servers; and 
 provide the anycast address for the largest subset of available cache servers in response to the request. 
 
 
     
     
       6. The domain name server of  claim 5  wherein the processor is further configured to receive the status information from the cache servers. 
     
     
       7. The domain name server of  claim 5  wherein status information includes one of network bandwidth, central processing unit utilization, memory utilization, number of requests being served, and any combination thereof. 
     
     
       8. The domain name server of  claim 7  wherein a cache server is unavailable when the cache server is non-operational, the central processing unit utilization exceeds a threshold, the memory utilization exceeds a threshold, the number of requests being served exceeds one of a threshold, the network bandwidth utilization exceeds a threshold, and any combination thereof. 
     
     
       9. An apparatus comprising:
 a processor; and 
 a non-transitory computer readable medium comprising a plurality of instructions to manipulate the processor, the plurality of instructions comprising:
 instructions to receive a request for an address; 
 instructions to identify a plurality of cache servers; 
 instructions to arrange the cache servers into a plurality of subsets, each subset including at least one cache server, wherein one of the cache servers belongs to more than one subset and is configured to respond to the anycast address of each of the multiple subsets to which the one cache server belongs; and each subset including only one server is assigned a different unicast address and is not assigned an anycast address; 
 instructions to provide a different anycast address to each subset that includes at least two cache servers; 
 instructions to determine a largest available subset based on status information received from the cache servers; 
 instructions to identify an anycast address for a largest available subset, the largest available subset including no unavailable cache servers; and 
 instructions to provide the anycast address for the largest available subset in response to the request. 
 
 
     
     
       10. The apparatus of  claim 9  further comprising instructions to obtain the status information from each of the cache servers. 
     
     
       11. The apparatus of  claim 10  wherein the status information includes one of network bandwidth, central processing unit utilization, memory utilization, number of requests being served, and any combination thereof. 
     
     
       12. The apparatus of  claim 11  wherein a cache server is unavailable when the central processing unit utilization exceeds a threshold, the memory utilization exceeds a threshold, the number of requests being served exceeds one of a threshold, the network bandwidth utilization exceeds a threshold, and any combination thereof. 
     
     
       13. A method of directing requests from a client system to one of a plurality of cache servers, comprising:
 arranging a plurality of cache servers into a plurality of subsets, each subset including at least on cache server, wherein one of the cache servers belongs to more than one subset and is configured to respond to the anycast address of each of the multiple subsets to which the one cache server belongs; and each subset including only one server is assigned a different unicast address and is not assigned an anycast address; 
 assigning anycast addresses to the subsets of the cache servers that include at least two cache servers; 
 determining which of the plurality of cache servers are available; 
 identifying a largest available subset based on status information for each of the cache servers; 
 identifying an anycast address for a largest available subset, the largest available subset including no unavailable cache servers; 
 receiving a request for an address of a cache server; and 
 providing the anycast address assigned to the largest available subset in response to the request. 
 
     
     
       14. The method of  claim 13  further comprising receiving the status information from each of the cache servers. 
     
     
       15. The method of  claim 13  wherein the status information includes one of network bandwidth, central processing unit utilization, memory utilization, number of requests being served, and any combination thereof. 
     
     
       16. The method of  claim 15  wherein a cache server is not available when the cache server is non-operational, the central processing unit utilization exceeds a threshold, the memory utilization exceeds a threshold, the number of requests being served exceeds one of a threshold, the network bandwidth utilization exceeds a threshold, and any combination thereof.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.