IP Library Granted Patent US 8,886,830
Granted Patent B2
US 8,886,830 · App. 13/954,514 · Granted Nov 11, 2014

Adaptive routing of content requests using multiple anycast addresses

Inventors: Richard T. Kwapniewski (Middletown, NJ); Han Q. Nguyen (Marlboro, NJ)
Assignee: AT&T Intellectual Property I, L.P.
H04L67/2842H04L67/1004H04L61/1511H04L67/1023H04L29/12066H04L67/1029
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,886,830
App. No.
13/954,514
Granted
Nov 11, 2014
Kind
B2
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 requestor 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 requestor.

Claims (33)

1. A system for routing content requests using anycast addresses, the system comprising:

a memory that stores instructions;

a processor that executes the instructions to perform operations, the operations comprising:

arranging a plurality of cache servers into a plurality of subsets, wherein one of the plurality of cache servers belongs to multiple subsets of the plurality of subsets and responds to a shared anycast address of each of the multiple subsets to which the one cache server belongs;

identifying a largest available subset shared anycast address for a largest available subset of the plurality of cache servers, wherein the largest available subset includes no unavailable cache servers;

assigning a unicast address to subsets of the plurality of cache servers that include only a single cache server; and

providing the largest available subset shared anycast address assigned to the largest available subset in response to a request for a cache server address.

2. The system of claim 1 , wherein the operations further comprise assigning shared anycast addresses to the subsets of the cache servers that include at least two cache servers.

3. The system of claim 1 , wherein the operations further comprise determining which cache servers of the plurality of cache servers are available.

4. The system of claim 1 , wherein the operations further comprise identifying the largest available subset based on status information received for each of the plurality of cache servers.

5. The system of claim 1 , wherein the operations further comprise receiving the request for the cache server address.

6. The system of claim 1 , wherein the largest available subset includes no overloaded cache servers.

7. The system of claim 1 , wherein the operations further comprise determining that a selected cache server of the plurality of cache servers is non-operational if status information is not received for the selected cache server.

8. The system of claim 1 , wherein the operations further comprise determining that a selected cache server of the plurality of cache servers is not available when the selected cache server is non-operational, central processing unit utilization exceeds a processing threshold, memory utilization exceeds a memory threshold, a number of requests being served exceeds a request threshold, or network bandwidth utilization exceeds a bandwidth utilization threshold.

9. A method for routing content requests using anycast addresses, the method comprising:

arranging a plurality of cache servers into a plurality of subsets, wherein one of the plurality of cache servers belongs to multiple subsets of the plurality of subsets and responds to a shared anycast address of each of the multiple subsets to which the one cache server belongs;

identifying, by utilizing instructions from memory that are executed by a processor, a largest available subset shared anycast address for a largest available subset of the plurality of cache servers, wherein the largest available subset includes no unavailable cache servers;

assigning a unicast address to subsets of the plurality of cache servers that include only a single cache server; and

providing the largest available subset shared anycast address assigned to the largest available subset in response to a request for a cache server address.

10. The method of claim 9 , further comprising assigning shared anycast addresses to the subsets of the cache servers that include at least two cache servers.

11. The method of claim 9 , further comprising determining which cache servers of the plurality of cache servers are available.

12. The method of claim 9 , further comprising identifying the largest available subset based on status information received for each of the plurality of cache servers.

13. The method of claim 9 , further comprising receiving the request for the cache server address.

14. The method of claim 9 , further comprising determining that a selected cache server of the plurality of cache servers is non-operational if status information is not received for the selected cache server.

15. The method of claim 9 , further comprising determining that a selected cache server of the plurality of cache servers is not available when the selected cache server is non-operational, central processing unit utilization exceeds a processing threshold, memory utilization exceeds a memory threshold, a number of requests being served exceeds a request threshold, or network bandwidth utilization exceeds a bandwidth utilization threshold.

16. The method of claim 9 , further comprising not assigning an anycast address to the subsets of the cache servers that include only a single cache server.

17. A computer-readable device comprising instructions, which when loaded and executed by a processor, cause the processor to perform operations comprising:

arranging a plurality of cache servers into a plurality of subsets, wherein one of the plurality of cache servers belongs to multiple subsets of the plurality of subsets and responds to a shared anycast address of each of the multiple subsets to which the one cache server belongs;

identifying, by utilizing instructions from memory that are executed by a processor, a largest available subset shared anycast address for a largest available subset of the plurality of cache servers, wherein the largest available subset includes no unavailable cache servers;

assigning a unicast address to subsets of the plurality of cache servers that include only a single cache server; and

providing the largest available subset shared anycast address assigned to the largest available subset in response to a request for a cache server address.

18. The computer-readable device of claim 17 , wherein the operations further comprise identifying the largest available subset based on status information received for each of the plurality of cache servers.

19. The computer-readable device of claim 17 , wherein the operations further comprise determining that a selected cache server of the plurality of cache servers is non-operational if status information is not received for the selected cache server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2013
From: KWAPNIEWSKI, RICHARD T.; NGUYEN, HAN Q.
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 030907/0673 →
Continuity (3)
Continuation 13618259 · Sep 14, 2012
Continuation 12546421 · Aug 24, 2009
Related Publication 20130318195A1 · Nov 28, 2013