Content delivery network cache grouping
DCFirst Claim
1. A method to retrieve content objects in a content delivery network (CDN) having a plurality of points of presence (POPs) distributed geographically by checking one or more neighboring servers before checking a parent server, the method comprising:
- receiving a first universal resource identifier (URI) at a first edge server having a first cache wherein;
the first edge server is in a first POP of the plurality of POPs, andthe first URI specifies a first content object;
determining that the first cache does not hold the first content object;
querying the one or more neighboring servers for the first content object, wherein the one or more neighboring servers each have a cache;
determining that one or more caches of the one or more neighboring servers stores the first content object;
serving the first content object from the one or more caches of the one or more neighboring servers;
receiving a second URI at the first edge server, wherein the second URI specifies a second content object;
determining that the first cache does not hold the second content object;
querying the one or more neighboring servers for the second content object;
determining that the one or more caches of the one or more neighboring servers do not hold the second content object;
analyzing the second URI to determine the parent server, andrequesting the second content object from the parent server after determining that the one or more caches of the one or more neighboring servers do not hold the second content object.
3 Assignments
Litigations
2 Petitions
Accused Products
Abstract
One or more content delivery networks (CDNs) that deliver content objects for others is disclosed. Content is propagated to edge servers through hosting and/or caching. End user computers are directed to an edge server for delivery of a requested content object by a universal resource indicator (URI). When a particular edge server does not have a copy of the content object from the URI, information is passed to another server, the ancestor or parent server to find the content object. There can be different parents servers designated for different URIs. The parent server looks for the content object and if not found, will go to another server, the grandparent server, and so on up a hierarchy within the group. Eventually, the topmost server in the hierarchy goes to the origin server to find the content object. The origin server may be hosted in the CDN or at a content provider across the Internet. Once the content object is located in the hierarchical chain, the content object is passed back down the chain to the edge server for delivery. Optionally, the various servers in the chain may cache or host the content object as it is relayed.
15 Citations
20 Claims
-
1. A method to retrieve content objects in a content delivery network (CDN) having a plurality of points of presence (POPs) distributed geographically by checking one or more neighboring servers before checking a parent server, the method comprising:
-
receiving a first universal resource identifier (URI) at a first edge server having a first cache wherein; the first edge server is in a first POP of the plurality of POPs, and the first URI specifies a first content object; determining that the first cache does not hold the first content object; querying the one or more neighboring servers for the first content object, wherein the one or more neighboring servers each have a cache; determining that one or more caches of the one or more neighboring servers stores the first content object; serving the first content object from the one or more caches of the one or more neighboring servers; receiving a second URI at the first edge server, wherein the second URI specifies a second content object; determining that the first cache does not hold the second content object; querying the one or more neighboring servers for the second content object; determining that the one or more caches of the one or more neighboring servers do not hold the second content object; analyzing the second URI to determine the parent server, and requesting the second content object from the parent server after determining that the one or more caches of the one or more neighboring servers do not hold the second content object. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A content delivery network (CDN) for retrieving content objects from one or more neighboring servers before requesting content objects from a parent server, the CDN comprising:
-
a plurality of POPs distributed geographically; a first edge server having a first cache, wherein; the first edge server is located within a first POP of the plurality of POPs, the first edge server receives a first universal resource identifier (URI), the first URI specifies a first content object, the first edge server determines that the first cache does not hold the first content object, the first edge server queries one or more neighboring servers for the first content object, wherein the one or more neighboring servers each have a cache, the first edge server receives an indication that the first content object is stored in one or more caches of the one or more neighboring servers, the first edge server receives a second URI, the second URI specifies a second content object, the first edge server determines that the first cache does not hold the second content object, the first edge server determines that the one or more caches of the one or more neighboring servers do not store the second content object, and the first edge server requests the second content object from the parent server after determining that the one or more caches of the one or more neighboring servers do not hold the second content object; and a second POP, wherein; the second POP is different from the first POP, and the second POP comprises the parent server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A content delivery network (CDN) having a plurality of points of presence (POPs) for retrieving content objects, the CDN comprising one or more servers programmed for:
-
receiving a first universal resource identifier (URI) at a first server having a first cache, wherein; the first server is in a first POP of the plurality of POPs, and the first URI specifies a first content object; determining that the first cache does not hold the first content object; querying one or more neighboring servers for the first content object, wherein the one or more neighboring servers each have a cache; determining that one or more caches of the one or more neighboring servers stores the first content object; serving the first content object from the one or more caches of the one or more neighboring servers; receiving a second URI at the first server, wherein the second URI specifies a second content object; determining that the first cache does not hold the second content object; determining that the one or more caches of the one or more neighboring servers do not hold the second content object; analyzing the second URI to determine a cache hierarchy for the second URI, and requesting the second content object from the cache hierarchy after determining that the one or more caches of the one or more neighboring servers do not hold the second content object. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification