IP Library › Granted Patent US 8,386,596
Granted Patent B2
US 8,386,596 · App. 13/418,239 · Granted Feb 26, 2013

Request routing based on class

Inventors: David R. Richardson (Seattle, WA); Swaminathan Sivasubramanian (Seattle, WA); Bradley E. Marshall (Bainbridge Island, WA); Christopher L. Scofield (Seattle, WA); Elmore Eugene Pope (Sammamish, WA)
Assignee: Amazon Technologies, Inc.
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,386,596
App. No.
13/418,239
Granted
Feb 26, 2013
Kind
B2
Abstract

A system and method for management and processing of resource requests is provided. A content delivery network service provider receives a DNS query from a client computing device. The DNS query corresponds to a requested resource from the client computing device. The content delivery network service provider associates the client computing device with a cluster of other client computing devices. Based on routing information for the cluster, the content delivery network service provider routes the DNS query. The process can further include monitoring performance data associated with the delivery of the requested resource and updating the routing information for the cluster based on the performance data for use in processing subsequent requests from client computing devices in the cluster.

Claims (62)

1. A method comprising:

under control of one or more configured computing systems of a content delivery network (CDN) service,

obtaining a Domain Name System (DNS) query from a client computing device at a first DNS server, wherein the DNS query corresponds to a requested resource and wherein the first DNS server corresponds to the CDN service;

associating the client computing device with a cluster of other client computing devices;

determining routing information for the associated cluster of the client computing device; and

selecting a cache component of the CDN service for providing the requested resource based on the determined routing information, wherein the determined routing information includes a frequency defined by probabilities of selection for each cache component identified in the determined routing information for the associated cluster.

2. The method as recited in claim 1 , wherein selecting the cache component comprises selecting the cache component having a lower probability of selection.

3. The method as recited in claim 2 further comprising:

monitoring performance associated with delivery of the requested resource using the cache component having the lower probability of selection; and

modifying the probability of selection of the cache component having the lower probability of selection for the cluster based on the delivery performance.

4. The method as recited in claim 1 , wherein selecting the cache component comprises selecting a non-preferred cache component for providing the requested resource.

5. The method as recited in claim 4 further comprising:

monitoring performance associated with delivery of the requested resource to the non-preferred cache component; and

modifying the routing information for the cluster based on the delivery performance of the requested resource using the non-preferred cache component.

6. The method of claim 1 further comprising:

determining whether the first DNS server is authoritative to resolve the DNS query; and

if not, selecting a second DNS server for processing the resource request based on the routing information for the cluster of the client computing device.

7. The method as recited in claim 6 further comprising:

monitoring performance associated with delivery of the requested resource using the second DNS server; and

modifying the routing information for the cluster based on the delivery performance of the requested resource using the second DNS server.

8. The method as recited in claim 7 , wherein modifying the routing information for the cluster comprises modifying a list of DNS servers for processing the resource request for the cluster.

9. The method as recited in claim 8 , wherein modifying the routing information for the cluster comprises modifying probabilities of selection of particular DNS servers used for processing the resource request for the cluster.

10. A system comprising:

a first network point of presence associated with a content delivery network (CDN) service, wherein the first network point of presence includes a Domain Name System (DNS) server that receives a DNS query from a client computing device, wherein the DNS query corresponds to a requested resource, and wherein the DNS server in the first network point of presence is operable to:

associate the client computing device with a cluster of other client computing devices;

determine routing information for the associated cluster of the client computing device; and

select a cache component of the CDN service for providing the requested resource based on the determined routing information, wherein the determined routing information includes a frequency defined by probabilities of selection for each cache component identified in the determined routing information for the associated cluster.

11. The system as recited in claim 10 , wherein selecting the cache component comprises selecting the cache component having a lower probability of selection.

12. The system as recited in claim 11 , wherein the DNS server in the first network point of presence is further operable to:

monitor performance associated with delivery of the requested resource using the cache component having the lower probability of selection; and

modify the probability of selection of the cache component having the lower probability of selection for the cluster based on the delivery performance.

13. The system as recited in claim 10 , wherein selecting the cache component comprises selecting a non-preferred cache component for providing the requested resource.

14. The system as recited in claim 13 , wherein the DNS server in the first network point of presence is further operable to:

monitor performance associated with delivery of the requested resource to the non-preferred cache component; and

modify the routing information for the cluster based on the delivery performance of the requested resource using the non-preferred cache component.

15. The system of claim 10 , wherein the DNS server in the first network point of presence is further operable to:

determine whether the first DNS server is authoritative to resolve the DNS query; and

if not, select a second DNS server for processing the resource request based on the routing information for the cluster of the client computing device.

16. The system as recited in claim 15 , wherein the DNS server in the first network point of presence is further operable to:

monitor performance associated with delivery of the requested resource using the second DNS server; and

modify the routing information for the cluster based on the delivery performance of the requested resource using the second DNS server.

17. The system as recited in claim 16 , wherein modifying the routing information for the cluster comprises modifying a list of DNS servers for processing the resource request for the cluster.

18. The system as recited in claim 17 , wherein modifying the routing information for the cluster comprises modifying probabilities of selection of particular DNS servers used for processing the resource request for the cluster.

19. A method comprising:

under control of one or more configured computing systems of a content delivery network (CDN) service,

obtaining a Domain Name System (DNS) query from a client computing device at a first DNS server, wherein the DNS query corresponds to a requested resource and wherein the first DNS server corresponds to the CDN service;

associating the client computing device with a cluster of other client computing devices;

determining whether the first DNS server is authoritative based on routing information for the associated cluster of the client computing device; and

if not, selecting a second DNS server for processing the resource request based on the routing information for the associated cluster of the client computing device, wherein the routing information includes a frequency defined by probabilities of selection for each DNS server identified in the routing information for the associated cluster.

20. The method as recited in claim 19 , wherein selecting the second DNS server comprises selecting the DNS server identified in the routing information having a lower probability of selection.

21. The method as recited in claim 20 further comprising:

monitoring performance associated with delivery of the requested resource using the second DNS server having the lower probability of selection; and

modifying the probability of selection of the second DNS server having the lower probability of selection for the cluster based on the delivery perfollnance.

22. A system comprising:

a first network point of presence associated with a content delivery network (CDN) service, wherein the CDN service includes one or more cache servers to provide the requested resource and wherein the first network point of presence includes a first Domain Name System (DNS) server that receives a DNS query from a client computing device, wherein the DNS query corresponds to a requested resource associated with a first resource identifier, and wherein the DNS server in the first network point of presence is operable to:

associate the client computing device with a cluster of other client computing devices;

determine whether the first DNS server is authoritative based on routing information for the associated cluster of the client computing device; and

if not, select a second DNS server for processing the resource request based on the routing information for the associated cluster of the client computing device, wherein the routing information includes a frequency defined by probabilities of selection for each DNS server identified in the routing information for the associated cluster.

23. The system as recited in claim 22 , wherein selecting the second DNS server comprises selecting a non-preferred DNS server identified in the routing information.

24. The system as recited in claim 23 , wherein the first DNS server in the first network point of presence is further operable to:

monitor performance associated with delivery of the requested resource using the non-preferred DNS server; and

modify the routing information for the cluster based on the delivery performance of the requested resource using the non-preferred DNS server.

Continuity (3)
Continuation 13098366 · Apr 29, 2011
Continuation 12060173 · Mar 31, 2008
Related Publication 20120215914A1 · Aug 23, 2012