Handling long-tail content in a content delivery network (CDN)
US-8930538-B2 · Jan 6, 2015 · US
US10218806B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10218806-B2 |
| Application number | US-201715645584-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 10, 2017 |
| Priority date | Apr 4, 2008 |
| Publication date | Feb 26, 2019 |
| Grant date | Feb 26, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 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. 2. The method of claim 1 , wherein the resource is available as part of the content provider's library, and wherein distinct portions of the content provider's library are logically partitioned across servers in the second tier of servers. 3. The method of claim 1 , wherein determining whether said resource is popular in (C) is based, at least in part, on whether the resource is for a part of the object other than the initial part of the object. 4. The method of claim 3 , wherein the initial part of the object has already been served to the client. 5. The method of claim 1 , wherein the determining in (C) whether said resource is popular is determined, at least in part, using information obtained from a popularity service running on one or more popularity servers. 6. The method of claim 5 , wherein the one or more popularity servers maintain information on relative popularity of content being served. 7. The method of claim 6 , wherein the one or more popularity servers maintain information on relative popularity of content being served in a region comprising the first server. 8. The method of claim 6 , wherein only certain content uses the popularity service, and wherein content is designated to be served based on popularity in order to use the popularity service. 9. The method of claim 1 , wherein whether or not said resource is to be served based on popularity of the resource is based at least in part on whether or not said resource is designated to be served based on popularity of the resource. 10. The method of claim 1 wherein determining whether said resource is popular is based, at least in part, on a dynamic measure of popularity of the resource. 11. The method of claim 1 , wherein determining whether said resource is popular in (C) comprises: determining a relative popularity said resource in a region comprising the first server. 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. 13. The machine-readable non-transitory medium of claim, 12 , wherein the first server determines whether said resource is popular based on information obtained from a popularity service running on one or more popularity servers. 14. The machine-readable non-transitory medium of claim 13 , wherein the one or more popularity servers maintain information on relative popularity of content being served in a region comprising the first server. 15. The machine-readable non-transitory medium of claim 13 , wherein only certain content uses the popularity service, and wherein content is designated to be served based on popularity in order to use the popularity service. 16. The machine-readable non-transitory medium of claim 12 , wherein whether or not said resource is to be served based on popularity of the resource is based at least in part on whether or not said resource is designated to be served based on popularity of the resource. 17. The machine-readable non-transitory medium of claim 12 , wherein determining whether said resource is popular comprises: determining a relative popularity said resource in a region comprising the first server. 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 c
based on the content of a request · CPC title
being end-user preferences (retrieval of video data in a video database based on user preferences G06F16/739; arrangements for recognizing users' preferences H04H60/46; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18) · CPC title
Secondary servers, e.g. proxy server, cable television Head-end {(provisioning of proxy services in data packet switching networks H04L67/56)} · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.