Handling long-tail content in a content delivery network (CDN)
First Claim
1. A method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
- (A) at a first server in the first tier of servers, obtaining a request from a client for a resource, wherein the resource is available as part of a content provider'"'"'s library;
(B) determining whether the resource is available at the first server or at a peer of the first server;
(C) based on and as a result of said determining in (B), if it is determined that the resource is not available at the first server or at a peer of the first server, determining if the resource is popular, wherein the resource is part of an object, and wherein determining whether said resource is popular is based, at least in part, on whether the resource is an initial part of the object;
(D) based on and as a result of said determining in (C), if the resource is determined to be popular in (C), then the first server obtaining the resource and the first server serving the resource to the client, otherwise,(E) based on and as a result of said determining in (C), if the resource is determined in (C) not to be popular, directing the client to a second server in a second tier of servers distinct from the first tier of servers,wherein distinct portions of the content provider'"'"'s library are logically partitioned across servers in the second tier of servers,wherein the second server comprises a first portion of the content provider'"'"'s library, the first portion comprising at least the resource, and wherein at least one other server in the second tier of servers comprises a second portion of the content provider'"'"'s library, said second portion of the content provider'"'"'s library being distinct from said first portion of the content provider'"'"'s library, andwherein the second tier of servers is any intermediate tier of servers between the first tier of servers and an origin server that stores resources associated with the content provider'"'"'s library, and(F) the second server serving the resource to the client.
1 Assignment
0 Petitions
Accused Products
Abstract
A content delivery network has at least a first tier of servers. A content delivery method includes, at a first server in the first tier of servers, obtaining a request from a client for a resource. If the resource is available at the first server or at a peer of the first server, then the resource is served to the client from the first server. Otherwise, it is determined whether the resource is popular, and if the resource is determined to be popular, then the first server obtains the resource and the first server serves the resource to the client. If the resource is determined not to be popular, the client is directed to a second server, not in the first tier of servers, and the second server serves the resource to the client. The second server may be in a second tier of servers or it may be an origin server.
461 Citations
20 Claims
-
1. A method of content delivery in a content delivery network comprising at least a first tier of servers, the method comprising:
-
(A) at a first server in the first tier of servers, obtaining a request from a client for a resource, wherein the resource is available as part of a content provider'"'"'s library; (B) determining whether the resource is available at the first server or at a peer of the first server; (C) based on and as a result of said determining in (B), if it is determined that the resource is not available at the first server or at a peer of the first server, determining if the resource is popular, wherein the resource is part of an object, and wherein determining whether said resource is popular is based, at least in part, on whether the resource is an initial part of the object; (D) based on and as a result of said determining in (C), if the resource is determined to be popular in (C), then the first server obtaining the resource and the first server serving the resource to the client, otherwise, (E) based on and as a result of said determining in (C), if the resource is determined in (C) not to be popular, directing the client to a second server in a second tier of servers distinct from the first tier of servers, wherein distinct portions of the content provider'"'"'s library are logically partitioned across servers in the second tier of servers, wherein the second server comprises a first portion of the content provider'"'"'s library, the first portion comprising at least the resource, and wherein at least one other server in the second tier of servers comprises a second portion of the content provider'"'"'s library, said second portion of the content provider'"'"'s library being distinct from said first portion of the content provider'"'"'s library, and wherein the second tier of servers is any intermediate tier of servers between the first tier of servers and an origin server that stores resources associated with the content provider'"'"'s library, and (F) the second server serving the resource to the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A machine-readable non-transitory medium storing one or more programs for execution by one or more processing units of a data processing system, the one or more programs including instructions for:
-
(A) obtaining, at a first server in a first tier of servers in a content delivery network (CDN), a request from a client for a resource, wherein the resource is available as part of a content provider'"'"'s library; (B) determining whether the resource is available at the first server or at a peer of the first server; (C) based on and as a result of said determining in (B), if it is determined that the resource is not available at the first server or at a peer of the first server, then determining if the resource is popular, wherein the resource is part of an object, and wherein determining whether said resource is popular is based, at least in part, on whether the resource is an initial part of the object; (D) based on and as a result of said determining in (C), if the resource is determined to be popular in (C), then the first server (i) obtaining the resource, and (ii) serving the resource to the client, otherwise, (E) based on and as a result of said determining in (C), if the resource is determined in (C) not to be popular, directing the client to a second server in a second tier of servers distinct from the first tier of servers, wherein the second tier of servers is any intermediate tier between the first tier of servers and an origin server that stores resources associated with the content provider'"'"'s library, and wherein portions of the content provider'"'"'s library are logically partitioned across servers in the second tier of servers, and wherein the second server comprises a first portion of the content provider'"'"'s library, the first portion comprising at least the resource, and wherein at least one other server in the second tier of servers comprises a second portion of the content provider'"'"'s library, said second portion of the content provider'"'"'s library being distinct from said first portion of the content provider'"'"'s library; and (F) the second server serving the resource to the client. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A computer program product comprising non-transitory computer-readable media and having computer readable instructions stored on said non-transitory computer-readable media, the computer readable instructions including instructions for implementing a computer-implemented method, said method operable in a content delivery network (CDN), said CDN comprising a plurality of computers, each computer comprising hardware including memory and at least one processor, said method comprising:
-
(A) at a first server in the first tier of servers in the CDN, obtaining a request from a client for a resource, wherein the resource is available as part of a content provider'"'"'s library; (B) determining whether the resource is available at the first server or at a peer of the first server; (C) based on and as a result of said determining in (B), if it is determined that the resource is not available at the first server or at a peer of the first server, determining if the resource is popular, wherein the resource is part of an object, and wherein determining whether said resource is popular is based, at least in part, on whether the resource is an initial part of the object; (D) based on and as a result of said determining in (C), if the resource is determined to be popular in (C), then the first server obtaining the resource and the first server serving the resource to the client, otherwise, (E) based on and as a result of said determining in (C), if the resource is determined in (C) not to be popular, directing the client to a second server in a second tier of servers distinct from the first tier of servers, wherein the second tier of servers is any intermediate tier of servers between the first tier of servers and an origin server that stores resources associated with the content provider'"'"'s library, and wherein the second server comprises a first portion of the content provider'"'"'s library, the first portion comprising at least the resource, and wherein at least one other server in the second tier of servers comprises a second portion of the content provider'"'"'s library, said second portion of the content provider'"'"'s library being distinct from said first portion of the content provider'"'"'s library; and (F) the second server serving the resource to the client. - View Dependent Claims (19, 20)
-
Specification