IP Library Granted Patent US 8,683,002
Granted Patent B2
US 8,683,002 · App. 13/732,570 · Granted Mar 25, 2014

Content delivery network cache grouping

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 8,683,002
App. No.
13/732,570
Granted
Mar 25, 2014
Kind
B2
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.

Claims (76)

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.

2. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 1 , wherein the one or more caches of the one or more neighboring servers are located within the first POP.

3. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 2 , wherein the one or more caches of the one or more neighboring servers comprise each cache, for storing content objects, within the first POP.

4. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 1 , wherein:

the parent server is in a second POP of the plurality of POPs, and

the second POP is different from the first POP.

5. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 1 , wherein the serving the first content object from the one or more caches of the one or more neighboring servers comprises serving the first content object to an end-user system from the first edge server acting as a proxy for the one or more neighboring servers.

6. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 1 , wherein serving of the first content object is reassigned from the first edge server to the one or more neighboring servers.

7. The method to retrieve content objects in the CDN having the plurality of POPs distributed geographically as recited in claim 1 , wherein querying one or more neighboring servers for the second content object comprises:

querying a second edge server; and

querying a third edge server, wherein the querying the second edge server and the querying the third edge server are performed overlapping in time.

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.

9. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , wherein the one or more neighboring servers are located within the first POP.

10. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , wherein an end user is served the first content object from the one or more caches of the one or more neighboring servers by the first edge server acting as a proxy for the one or more neighboring servers.

11. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , the CDN further comprising the one or more neighboring servers, wherein serving the first content object to an end-user system is reassigned from the first edge server to the one or more neighboring servers.

12. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , the CDN further comprising:

a first neighboring server, wherein:

the first neighboring server is part of the one or more neighboring servers, and

the first edge server makes a first query of the first neighboring server for the first content object; and

a second neighboring server, wherein:

the second neighboring server is part of the one or more neighboring servers,

the first edge server makes a second query of the second neighboring server for the first content object, and

the first query and the second query overlap in time.

13. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , wherein the first URI and the second URI correspond to different content objects.

14. The CDN for retrieving content objects from the one or more neighboring servers before requesting content objects from the parent server, as recited in claim 8 , wherein the first URI is a portion of a third URI.

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.

16. The CDN having the plurality of POPs for retrieving content objects as recited in claim 15 , wherein the one or more neighboring servers are in the first POP.

17. The CDN having the plurality of POPs for retrieving content objects as recited in claim 15 , wherein:

the cache hierarchy comprises a cache in a second POP; and

the second POP is different from the first POP.

18. The CDN having the plurality of POPs for retrieving content objects as recited in claim 15 , wherein an end user is served the first content object from the one or more caches of the one or more neighboring servers by the first server acting as a proxy for the one or more neighboring servers.

19. The CDN having the plurality of POPs for retrieving content objects as recited in claim 15 , wherein querying one or more neighboring servers for the first content object comprises:

querying a second server; and

querying a third server, wherein the querying the second server and the querying the third server is performed overlapping in time.

20. The CDN having the plurality of POPs for retrieving content objects as recited in claim 15 , wherein the first content object is not the same as the second content object.

Assignments (9)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2025
From: EDGIO, INC.
To: DRNC HOLDINGS, INC.
Reel/Frame 070071/0327 →
CHANGE OF NAME Recorded Sep 9, 2024
From: LIMELIGHT NETWORKS, INC.
To: EDGIO, INC.
Reel/Frame 068898/0281 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2013
From: MCCARTHY, NILS H.; HARVELL, BRADLEY B.
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 030468/0468 →