Accelerating dynamic content delivery in a content delivery network
AssigneeImperva, Inc.
InventorDavid Levy Nahum
Life of this patent
Estimating the term…
Abstract
A technique for accelerating dynamic content delivery in a content delivery network. In some embodiments of the invention, responsive to a request that is sent by a client and that is for dynamic content, a client-proxy hosted in a datacenter of a CDN sends the request to a “forwarder-proxy” hosted in another datacenter of the same CDN. The forwarder-proxy, responsive to the request for dynamic content, forwards the request to an origin server and does not cache the dynamic content. The datacenter selected for the forwarder-proxy is one that is “close” to the origin server in terms of round-trip time (RTT) to improve network performance for requests for dynamic content.
Claims28
A content delivery network (CDN) that, responsive to HTTP requests sent from a plurality of user electronic devices and having as destinations respective ones of a plurality of origin servers, accelerates delivery of content originating from the plurality of origin servers operated on behalf of customers of the CDN, the CDN comprising:
- a first plurality of electronic devices that are located in a first plurality of datacenters and that operate as a first plurality of CDN proxies of the CDN, wherein the first plurality of CDN proxies operate as client-proxies that receive the HTTP requests, separate the HTTP requests into requests for dynamic content and requests for non-dynamic content, operate as reverse proxies that cache with regard to the requests for non-dynamic content, and send different ones of a plurality of the requests for dynamic content to different ones of a second plurality of CDN proxies based on the destinations of the requests and according to a mapping between a second plurality of datacenters and a third plurality of datacenters for different ones of the customers based on a measure of the round-trip time (RTT) between different ones of the second plurality of datacenters and different ones of a third plurality of datacenters;
- and
- a second plurality of electronic devices that are located in the second plurality of datacenters and that operate as the second plurality of CDN proxies of the CDN, wherein the plurality of origin servers are executing on a third plurality of electronic devices in the third plurality of datacenters, wherein the second plurality of CDN proxies operate, responsive to the plurality of requests for dynamic content, as forwarder-proxies that do not cache dynamic content and that forward the plurality of requests for dynamic content to different ones of the plurality of origin servers based on configuration information, wherein at least one of the first plurality of CDN proxies establishes a transmission control protocol (TCP) connection with one of the second plurality of CDN proxies and keeps the TCP connection open to use the TCP connection to send requests for dynamic content from more than one of the plurality of user electronic devices to the one of the second plurality of CDN proxies over the CDN.
An article of manufacture for use in a content delivery network (CDN) that, responsive to HTTP requests sent from a plurality of user electronic devices and having as destinations respective ones of a plurality of origin servers, accelerates delivery of content originating from the plurality of origin servers operated on behalf of customers of the CDN, the article of manufacture comprising:
- a non-transitory machine-readable storage medium that provides instructions that, if executed by a first electronic device in a first datacenter, will cause the first electronic device to operate as a CDN proxy of the CDN to perform client-proxy type operations comprising,
- separating the HTTP requests into requests for dynamic content and requests for non-dynamic content;
- operating as a reverse proxy that caches with regard to the requests for non-dynamic content;
- for each of a first plurality of the requests for dynamic content, performing the following,
- selecting one from a second plurality of datacenters as a currently selected datacenter based on configuration information and the destination of the request of dynamic content, wherein the second plurality of datacenters include different ones of a second plurality of CDN proxies of the CDN, wherein the plurality of origin servers are on a plurality of electronic devices in a third plurality of datacenters, and wherein the configuration information includes a mapping of the first datacenter to different ones of the second plurality of datacenters based on the destinations of the requests and based on a measure of the round-trip time (RTT) between different ones of the second plurality of datacenters and different ones the third plurality of datacenters;
- selecting as a currently selected forwarder-proxy one from a set of one or more forwarder-proxies provided by a set or one or more of the second plurality of CDN proxies that are in the currently selected datacenter based on configuration information;
- sending the request for dynamic content to the currently selected forwarder-proxy to forward to one of the plurality of origin servers, wherein the CDN proxy performing client-proxy type operations establishes a transmission control protocol (TCP) connection with the currently selected forwarder-proxy and keeps the TCP connection open to use the TCP connection to send requests for dynamic content from more than one of the plurality of user electronic devices to the currently selected forwarder-proxy over the CDN;
- and
- for each of the requests for dynamic content that was not sent to one of the forwarder-proxies, sending the request for dynamic content to one of the plurality of origin servers rather than to one of the forwarder-proxies.
An article of manufacture for use in a content delivery network (CDN) that, responsive to HTTP requests sent from a plurality of user electronic devices and having as destinations respective ones of a plurality of origin servers operated on behalf of customers of the CDN, accelerates delivery of content originating from the plurality of origin servers, the article of manufacture comprising:
- a non-transitory machine-readable storage medium that provides instructions that, if executed by a second electronic device in a second datacenter, will cause the second electronic device to operate as a CDN proxy of the CDN to perform forwarder-proxy type operations comprising,
- for each of a plurality of the requests for dynamic content sent from different client-proxies in different ones of a first plurality of CDN proxies of the CDN responsive to different ones of the HTTP requests sent from different ones of the plurality of user electronic devices to the different client-proxies, performing the following,
- selecting one of a third plurality of datacenters as a currently selected datacenter based on the destination of the request for dynamic content, wherein different ones of the plurality of origin servers are executing on electronic devices in different ones of the third plurality of datacenters;
- selecting as a currently selected origin server one from a set of one or more the plurality of origin servers in the currently selected datacenter based on configuration information;
- and
- sending the request for dynamic content to the currently selected origin server, wherein at least one of the client-proxies in the plurality of CDN proxies establishes a transmission control protocol (TCP) connection with the CDN proxy performing forwarder-proxy type operations and keeps the TCP connection open to use the TCP connection to send requests for dynamic content from more than one of the plurality of user electronic devices to the CDN proxy performing forwarder-proxy type operations over the CDN.
Dependencies are inferred from the claim text.