IP Library Granted Patent US 10,567,332
Granted Patent B2
US 10,567,332 · App. 15/469,419 · Granted Feb 18, 2020

Content delivery network optimization system

Inventors: Shauli Gal (Mountain View, CA); Satish Raghunath (Sunnyvale, CA); Kartikeya Chandrayana (San Francisco, CA)
Assignee: salesforce.com, inc.
H04L61/1511H04L43/0864
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,567,332
App. No.
15/469,419
Granted
Feb 18, 2020
Kind
B2
Abstract

A CDN traffic is optimized by a client-side system that maps the servers in the CDN system. Content requests from client devices for domain names are forwarded to servers in the CDN system that may be selected from the map to prevent a cache miss in the a server for a particular request for content.

Claims (54)

1. A method, comprising:

receiving, by a server, an out-of-band route request for a domain name from an agent component at a client device, the route request indicating that one or more subsequent content requests from the client device will be routed to the domain name;

in response to receiving the route request, determining, by the server, whether the domain name is present in a map of edge servers in a content delivery system, the map including a plurality of edge server network addresses and associated domain names, the map includes latency measurements between client devices and edge servers in the map;

in response to determining that the domain name is not present in the map:

sending, by the server, a network address request to a DNS server in the content delivery system;

receiving, by the server, a network address of an edge server from the DNS server; and

updating, by the server, the map with the network address and the domain name;

selecting, by the server, for a content request for the domain name received from the client device, a network address of an edge server for the domain name from the map, the edge server selected from a one or more edge servers associated with the domain name based on the latency measurements; and

routing, by the server, the content request to the selected network address.

2. The method as recited in claim 1 , wherein the map includes latency measurements between the server and edge servers in the map.

3. The method as recited in claim 1 , wherein the map includes latency measurements between the server and edge servers in the map, and wherein the selecting of the network address of the edge server further comprises:

selecting the edge server from one or more edge servers associated with the domain name based on the latency measurements between the server and edge servers in the map.

4. The method as recited in claim 1 , wherein the map is preloaded with network addresses of edge servers and associated domain name information.

5. The method as recited in claim 1 , wherein the agent component routes all network traffic for a particular application program running on the client device to the server.

6. The method as recited in claim 1 , wherein the selecting of the network address of the edge server further comprises:

selecting the edge server from one or more edge servers associated with the domain name based on a count of a number of times that the edge server network address was returned by the DNS server.

7. The method as recited in claim 1 , further comprising:

calculating a hash value of a URL for a content file requested by an application program resident on the client device; and

including the hash value in the map where the hash value is mapped to a specific edge server;

wherein the hash value is used for selecting an edge server from the map to service requests for the content file.

8. One or more non-transitory computer-readable storage media, storing one or more sequences of instructions, which when executed by one or more processors cause performance of a method, the method comprising:

receiving, by a server, an out-of-band route request for a domain name from an agent component at a client device, the route request indicating that one or more subsequent content requests from the client device will be routed to the domain name;

in response to receiving the route request, determining, by the server, whether the domain name is present in a map of edge servers in a content delivery system, the map including a plurality of edge server network addresses and associated domain names, the map includes latency measurements between client devices and edge servers in the map;

in response to determining that the domain name is not present in the map:

sending, by the server, a network address request to a DNS server in the content delivery system;

receiving, by the server, a network address of an edge server from the DNS server; and

updating, by the server, the map with the network address and the domain name;

selecting, by the server, for a content request for the domain name received from the client device, a network address of an edge server for the domain name from the map, the edge server selected from a one or more edge servers associated with the domain name based on the latency measurements; and

routing, by the server, the content request to the selected network address.

9. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein the map includes latency measurements between the server and edge servers in the map, and wherein the selecting of the network address of the edge server further comprises:

selecting the edge server from one or more edge servers associated with the domain name based on the latency measurements between the server and edge servers in the map.

10. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein the map is preloaded with network addresses of edge servers and associated domain name information.

11. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein the agent component routes all network traffic for a particular application program running on the client device to the server.

12. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein the selecting of the network address of the edge server further comprises:

selecting the edge server from a plurality edge servers associated with the domain name based on a count of a number of times that the edge server network address was returned by the DNS server.

13. The one or more non-transitory computer-readable storage media as recited in claim 8 , wherein the program of instructions that is executable by the device to perform the method, the method further comprises:

calculating a hash value of a URL for a content file requested by an application program resident on the client device; and

including the hash value in the map where the hash value is mapped to a specific edge server;

wherein the hash value is used for selecting an edge server from the map to service requests for the content file.

14. A system, comprising:

a route request receiver, implemented at least partially in hardware at a server, configured to receive an out-of-band route request for a domain name from an agent component at a client device, the route request indicating that one or more subsequent content requests from the client device will be routed to the domain name;

an edge server mapper, implemented at least partially in hardware at the server, configured to determine whether the domain name is present in a map of edge servers in a content delivery system, the map including a plurality of edge server network addresses and associated domain names, the map includes latency measurements between client devices and edge servers in the map;

in response to a determination that the domain name is not present in the map:

the edge server mapper sends the network address request to a DNS server in a content delivery system;

the edge server mapper receives a network address of an edge server from the DNS server; and

the edge server mapper updates a map of edge servers in the CDN system with the network address and the domain name;

an edge server selector, implemented at least partially in hardware at the server, configured to select, for a content request for the domain name received from the client device, a network address of an edge server for the domain name from the map, the edge server selected from a one or more edge servers associated with the domain name based on the latency measurements; and

a content request router, implemented at least partially in hardware at the server, configured to route the content request to the selected network address.

15. The system as recited in claim 14 , wherein the map includes latency measurements between client devices and edge servers in the map, and wherein the edge server selector is further configured to select the edge server from one or more edge servers associated with the domain name based on the latency measurements.

16. The system as recited in claim 14 , wherein the edge server selector is further configured to select the edge server from one or more edge servers associated with the domain name based on a count of a number of times that the edge server network address was returned by the DNS server.

17. The system as recited in claim 14 ,

wherein the edge server mapper calculates a hash value of a URL for a content file requested by an application program resident on the client device; and

wherein the edge server mapper includes the hash value in the map where the hash value is mapped to a specific edge server;

wherein the hash value is used for selecting an edge server from the map to service requests for the content file.

Assignments (3)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0179 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2017
From: GAL, SHAULI; RAGHUNATH, SATISH; CHANDRAYANA, KARTIKEYA
To: SALESFORCE.COM, INC.
Reel/Frame 042901/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2017
From: GAL, SHAULI; RAGHUNATH, SATISH; CHANDRAYANA, KARTIK
To: SALESFORCE.COM, INC.
Reel/Frame 041769/0194 →
Continuity (1)
Related Publication 20180278688A1 · Sep 27, 2018
Cited By (1)
US 12,563,010