Patent ID: 8607014

Claim:
A content delivery network comprising: a first set of cache servers hosted by a first autonomous system and a second set of cache servers hosted by a second autonomous system, wherein the first autonomous system balances a first load among the first set of cache servers by controlling routing within the first autonomous system and the second autonomous system balances a second load among the second set of cache servers by controlling routing within the second autonomous system, wherein each of the cache servers performs operations comprising: responding to an anycast address for the content delivery network; and receiving a request for content from a client system and providing the content to the client system; a domain name server that performs operations comprising: receiving a request for a cache server address; and providing the anycast address in response to the request for the cache server address; and an anycast island controller separate from the first autonomous system, which performs operations comprising: receiving load information from the first set and the second set of cache servers; generating an island topology for an anycast island serviced by the anycast island controller, wherein the island topology includes weights for each node in the first autonomous system, wherein the weights are based on a difference between a present demand for the first autonomous system and a first aggregate capacity of the first set of cache servers; identifying, based on the island topology, when a first aggregate load for the first autonomous system exceeds the first aggregate capacity of the first set of cache servers and a second aggregate load for the second autonomous system is below a second aggregate capacity of the second set of cache servers; determining an amount of requests for content to transfer from the first autonomous system to the second autonomous system in response to the identifying; preventing a transient loop from forming in the first autonomous system and the second autonomous system prior to sending an instruction to the first autonomous system to control the routing of the anycast address to transfer the amount of requests for content to the second autonomous system, wherein the transient loop is prevented, at least in part, by waiting for devices shifting traffic associated with the amount of requests to stop shifting the traffic; and sending the instruction to the first autonomous system to control the routing of the anycast address to transfer the amount of requests for content to the second autonomous system after the transient loop is prevented.