IP Library Granted Patent US 8,965,997
Granted Patent B2
US 8,965,997 · App. 14/195,645 · Granted Feb 24, 2015

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,965,997
App. No.
14/195,645
Granted
Feb 24, 2015
Kind
B2
Abstract

Content delivery networks (CDNs) deliver content objects for others is disclosed. End user computers are directed to an edge server for delivery of a requested content object by a universal resource indicator (URI). When an edge server does not have a copy of the content object from the URI, information is successively passed to ancestor servers within a hierarchy until the content object is found. There can be different hierarchies designated for different URIs or times at which requests are received. 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.

Claims (74)

1. A method for retrieving content objects in a content delivery network (CDN) having a plurality of points of presence (POPs) distributed geographically by checking different parent caches for different content objects, the method comprising:

receiving a first request comprising 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;

determining a first hierarchical tree of caches based on a characteristic of the first content object, wherein:

the first hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels;

the first hierarchical tree of caches comprises a first parent cache; and

the first parent cache is in a second POP of the plurality of POPs; and

retrieving the first content object from the first parent cache based on determining the first hierarchical tree of caches;

receiving a second request comprising 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;

determining a second hierarchical tree of caches based on a characteristic of the second content object, wherein:

the second hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels;

the second hierarchical tree of caches comprises a second parent cache; and

the second parent cache is in a third POP of the plurality of POPS; and

retrieving the second content object from the second parent cache based on determining the second hierarchical tree of caches.

2. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the characteristic of the first content object comprises a bitrate.

3. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the characteristic of the first content object comprises a publisher of the first content object.

4. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the characteristic of the first content object comprises a format of the first content object.

5. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the characteristic of the first content object comprises an indicator of a copyright.

6. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the characteristic of the first content object is determined by analyzing the first URI.

7. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein the first edge server, acting as a proxy for a server in the second POP, serves the first content object to an end-user system in response to the first request.

8. The method for retrieving content objects in the CDN having the plurality of POPS as recited in claim 1 , wherein serving the first content object to an end-user system is reassigned from the first edge server to a second edge server, the second edge server being part of the second POP.

9. A content delivery network (CDN) for retrieving content objects by determining different parent caches for different content objects, the CDN comprising:

a plurality of points of presence (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 request comprising a first universal resource identifier (URI);

the first URI specifies a first content object;

the first edge server determines a first hierarchical tree of caches based on a characteristic of the first content object;

the first hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels;

the first hierarchical tree of caches comprises a first parent cache;

the first edge server requests the first content object from the first parent cache based on determining the first hierarchical tree of caches;

the first edge server requests the first content object from the first parent cache based on determining the first hierarchical tree of caches;

the first edge server receives a second request comprising a second URI at the first edge server;

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 a second hierarchical tree of caches based on a characteristic of the second content object;

the second hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels;

the second hierarchical tree of caches comprises a second parent cache; and

the first edge server requests the second content object from the second parent cache based on determining the second hierarchical tree of caches; and

a second POP, wherein:

the second POP is different from the first POP; and

the second POP comprises the first parent cache.

10. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , further comprising the third POP, wherein:

the third POP is different from the first POP and the second POP; and

the third POP comprises the second parent cache.

11. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , wherein the characteristic of the first content object comprises a bitrate.

12. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , wherein the characteristic of the first content object comprises a publisher of the first content object.

13. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , wherein the characteristic of the first content object comprises a format of the first content object.

14. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , wherein the characteristic of the first content object is determined by analyzing the first URI.

15. The CDN for retrieving content objects by determining different parent caches for different content objects as recited in claim 9 , wherein the first hierarchical tree comprises three levels, each level referring to a cache in a separate POP of the plurality of POPs.

16. A memory device having instructions that when executed cause one or more processors to perform the following steps for retrieving content objects in a content delivery network (CDN) having a plurality of points of presence (POPs) distributed geographically:

receive a first request comprising 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;

determine that the first cache does not hold the first content object;

determine a first hierarchical tree of caches based on a characteristic of the first content object, wherein:

the first hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels;

the first hierarchical tree of caches comprises a first parent cache; and

the first parent cache is in a second POP of the plurality of POPs;

retrieve the first content object from the first parent cache based on determining the first hierarchical tree of caches;

receive a second request comprising a second URI at the first edge server, wherein the second URI specifies a second content object;

determine that the first cache does not hold the second content object;

determine a second hierarchical tree of caches based on a characteristic of the second content object, wherein:

the second hierarchical tree of caches has a plurality of levels of caches to successively check upon cache misses at previous levels; and

the second hierarchical tree of caches comprises a second parent cache;

the second parent cache is in a third POP of the plurality of POPs;

retrieve the second content object from the second parent cache based on determining the second hierarchical tree of caches.

17. The memory device having instructions as recited in claim 16 , wherein the characteristic of the second content object comprises a bitrate.

18. The memory device having instructions as recited in claim 16 , wherein the characteristic of the second content object comprises a publisher of the second content object.

19. The memory device having instructions as recited in claim 16 , wherein the characteristic of the second content object comprises an indicator of a copyright.

20. The memory device having instructions as recited in claim 16 , wherein the characteristic of the second content object is determined by analyzing the second URI.

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 Jun 10, 2014
From: HARVELL, BRADLEY B.; MCCARTHY, NILS H.
To: LIMELIGHT NETWORKS, INC.
Reel/Frame 033064/0119 →