IP Library › Granted Patent US 10,153,969
Granted Patent B2
US 10,153,969 · App. 15/888,860 · Granted Dec 11, 2018

Request routing based on class

Inventors: David R. Richardson (Seattle, WA); Swaminathan Sivasubramanian (Seattle, WA); Bradley Eugene Marshall (Bainbridge Island, WA); Christopher L. Scofield (Seattle, WA); Elmore Eugene Pope (Sammamish, WA)
Assignee: Amazon Technologies, Inc.
H04L45/70H04L29/08099H04L29/12066H04L41/04H04L45/72H04L61/1511H04L67/02H04L67/327
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 10,153,969
App. No.
15/888,860
Granted
Dec 11, 2018
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 (31)

1. A computer-implemented method comprising:

as implemented by one or more computing devices of a content delivery network (CDN) service, the one or more computing devices configured with specific executable instructions,

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

determining a class of the client computing device associated with the DNS query; and

modifying routing information for the class based on performance associated with delivery of the requested resource.

2. The method as recited in claim 1 , wherein modifying the routing information includes modifying a probability of selection of an individual cache component for delivery of the requested resource.

3. The method as recited in claim 1 , wherein modifying the routing information includes modifying a probability of selection of individual DNS servers used for processing a resource request for the determined class.

4. The method as recited in claim 1 , wherein modifying the routing information comprises comparing a probability of selection of the first DNS server and other DNS servers.

5. The method as recited in claim 1 , wherein modifying the routing information for the class comprises increasing the probability of selection of a DNS server having a lower probability of selection so that the DNS server having a lower probability of selection will be selected more frequently for processing a resource request for the determined class.

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 determined class.

7. The method as recited in claim 6 further comprising monitoring performance associated with delivery of the requested resource using the second DNS server.

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

9. The method as recited in claim 1 further comprising routing the DNS query based on the routing information for the class by selecting a cache component for providing the requested resource based on the routing information for the class.

10. The method as recited in claim 9 , wherein selecting the cache component comprises periodically selecting a non-preferred cache component for providing the requested resource for the class.

11. 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 is associated with a requested resource, and wherein the DNS server in the first network point of presence is associated with a memory and operative to:

determine a class of the client computing device associated with the DNS query; and

modify the routing information for the class based on performance associated with delivery of the requested resource.

12. The system as recited in claim 11 , wherein modifying the routing information includes modifying a probability of selection of an individual cache component for delivery of the requested resource.

13. The system as recited in claim 11 , wherein modifying the routing information includes modifying a probability of selection of individual DNS servers used for processing a resource request for the determined class.

14. The system as recited in claim 11 , wherein modifying the routing information comprises comparing a probability of selection of the DNS server and other DNS servers.

15. The system as recited in claim 11 , wherein modifying the routing information for the class comprises increasing the probability of selection of a DNS server having a lower probability of selection so that the DNS server having a lower probability of selection will be selected more frequently for processing a resource request for the determined class.

16. The system of claim 11 , wherein the DNS server in the first network point of presence is further operative 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 determined class.

17. The system as recited in claim 16 , wherein the DNS server in the first network point of presence is further operative to monitor performance associated with delivery of the requested resource using the second DNS server.

18. The system as recited in claim 11 , wherein modifying the routing information for the class comprises modifying a list of DNS servers for processing a resource request for the determined class.

19. The system as recited in claim 11 , wherein the DNS server in the first network point of presence is further operative to route the DNS query based on the routing information for the class by selecting a cache component for providing the requested resource based on the routing information for the class.

20. The system as recited in claim 19 , wherein selecting the cache component comprises periodically selecting a non-preferred cache component for providing the requested resource for the class.

Continuity (7)
Continuation 15408362 · Jan 17, 2017
Continuation 14263824 · Apr 28, 2014
Continuation 13766574 · Feb 13, 2013
Continuation 13418239 · Mar 12, 2012
Continuation 13098366 · Apr 29, 2011
Continuation 12060173 · Mar 31, 2008
Related Publication 20180159769A1 · Jun 7, 2018