IP Library Granted Patent US 10,904,205
Granted Patent B2
US 10,904,205 · App. 16/779,562 · Granted Jan 26, 2021

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/1511H04L67/32H04L43/0864H04L67/2885
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,904,205
App. No.
16/779,562
Granted
Jan 26, 2021
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 (33)

1. A method, comprising:

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

in response to receiving the notification, searching a map for the domain name and content name combination, the map includes a plurality of edge server network addresses in a content delivery system and associated domain and content names;

selecting a network address of an edge server for the domain name and content name combination from one or more edge server network addresses associated with the domain name and content name combination in the map; and

sending the selected network address to the agent component at the client device, wherein the agent component routes all network traffic for a particular application program running on the client device to the server, and wherein the server monitors traffic between client devices and edge servers to calculate a caching ratio of the edge servers.

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 the network address of the edge server further comprises:

selecting the edge server from the one or more edge servers associated with the domain name and content name combination 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 includes latency measurements between the server and edge servers in the map, and wherein the selecting the network address of the edge server further comprises:

selecting the edge server by performing load balancing between two or more edge servers associated with the domain name and content name combination.

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

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

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

7. The method as recited in claim 1 , wherein the content name is a hash value of at least a portion of a URL for a content file; and wherein the hash value and the domain name are used for selecting the edge server from the one or more edge servers associated with the domain name and content name combination.

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 notification for a domain name and content name from an agent component at a client device, the notification indicating that one or more subsequent requests for the content name from the client device will be routed to the domain name;

in response to receiving the notification, searching a map for the domain name and content name combination, the map includes a plurality of edge server network addresses in a content delivery system and associated domain and content names;

selecting a network address of an edge server for the domain name and content name combination from one or more edge server network addresses associated with the domain name and content name combination in the map; and

sending the selected network address to the agent component at the client device, wherein the agent component routes all network traffic for a particular application program running on the client device to the server, and wherein the server monitors traffic between client devices and edge servers to calculate a caching ratio of the edge servers.

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.

10. 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 the network address of the edge server further comprises:

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

11. 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 the network address of the edge server further comprises:

selecting the edge server by performing load balancing between two or more edge servers associated with the domain name and content name combination.

12. A system comprising:

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

an edge server selector, implemented at least partially in hardware at the server, configured to, in response to receiving the notification, searching a map for the domain name and content name combination, the map includes a plurality of edge server network addresses in a content delivery system and associated domain and content names;

wherein the edge server selector selects a network address of an edge server for the domain name and content name combination from one or more edge server network addresses associated with the domain name and content name combination in the map; and

an agent interface, implemented at least partially in hardware at the server, configured to send the selected network address to the agent component at the client device;

wherein the agent component routes all network traffic for a particular application program running on the client device to the server; wherein the server monitors traffic between client devices and edge servers to calculate a caching ratio of the edge servers.

13. The system as recited in claim 12 , wherein the map includes latency measurements between the server and edge servers in the map.

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

15. The system as recited in claim 12 , wherein the map includes latency measurements between the server and edge servers in the map, and wherein the edge server selector is further configured to select the edge server by performing load balancing between two or more edge servers associated with the domain name and content name combination.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0480 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: GAL, SHAULI; RAGHUNATH, SATISH; CHANDRAYANA, KARTIKEYA
To: SALESFORCE.COM, INC.
Reel/Frame 051700/0721 →
Continuity (2)
Continuation 15469419 · Mar 24, 2017
Related Publication 20200177541A1 · Jun 4, 2020