Scalable, high performance and highly available distributed storage system for Internet content
First Claim
1. A method of content storage and delivery, operative in a content delivery network (CDN) deployed, operated and managed by a service provider on behalf of participating content providers, where the participating content providers are distinct from the service provider, comprising:
- (a) deploying a content delivery network that comprises (i) a plurality of CDN content servers that are organized into sets, (ii) one or more CDN storage sites that are distinct from the plurality of content servers; and
(iii) one or more CDN-managed domain name servers each of which is authoritative to resolve predetermined CDN-specific hostnames, where each such hostname has a first portion uniquely associated with a given participating content provider and a second portion associated with the service provider;
(b) for a first participating content provider;
(i) establishing a first content storage directory at a storage site;
(ii) providing the first participating content provider with a first CDN-specific hostname for use in association with the first content storage directory, the first CDN-specific hostname having a first portion uniquely associated with the first participating content provider, and the second portion;
(iii) receiving, via upload, and storing, in the first content storage directory at the storage site, first content, where the first content is one of;
a web object, a media file, or a software download that the first participating content provider desires to be stored and delivered over the CDN;
(c) for a second participating content provider distinct from the first content provider;
(i) establishing a second content storage directory at a storage site;
(ii) providing the second participating content provider with a second CDN-specific hostname for use in association with the second content storage directory, the second CDN-specific hostname having a first portion uniquely associated with the second participating content provider, and the second portion;
(iii) receiving, via upload, and storing, in the second content storage directory at the storage site, second content, where the second content is one of;
web object, a media file, or a software download that the second participating content provider desires to be stored and delivered over the CDN;
(d) upon receipt by a CDN-managed domain name server of a DNS query associated with the first CDN-specific hostname;
(i) identifying one or more CDN content servers;
(ii) receiving a request for the first content at one of the identified content servers;
(iii) if the first content is available to be served, serving the first content; and
(iv) if the first content is not available to be served, obtaining a copy of the first content from the first content storage directory as needed to respond to the request for the first content;
(e) upon receipt by a CDN-managed domain name server of a DNS query associated with the second CDN-specific hostname;
(i) identifying one or more CDN content servers;
(ii) receiving a request for the second content at one of the identified CDN content servers;
(iii) if the second content is available to be served, serving the second content; and
(iv) if the second content is not available to be served, obtaining a copy of the second content from the second content storage directory as needed to respond to the request for the second content;
where the second portion is common to each of the first and second CDN-specific hostnames, and where the first CDN-specific hostname also has associated therewith a value that identifies the first content storage directory from which the copy of the first content can be obtained, and where the second CDN-specific hostname also has associated therewith a value that identifies the second content storage directory from which the copy of the second content can be obtained;
wherein the one or more CDN storage sites include first and second CDN storage sites that are each located in different Internet-accessible locations and operate asynchronously and autonomously from one another.
1 Assignment
1 Petition
Accused Products
Abstract
A method for content storage on behalf of participating content providers begins by having a given content provider identify content for storage. The content provider then uploads the content to a given storage site selected from a set of storage sites. Following upload, the content is replicated from the given storage site to at least one other storage site in the set. Upon request from a given entity, a given storage site from which the given entity may retrieve the content is then identified. The content is then downloaded from the identified given storage site to the given entity. In an illustrative embodiment, the given entity is an edge server of a content delivery network (CDN).
-
Citations
10 Claims
-
1. A method of content storage and delivery, operative in a content delivery network (CDN) deployed, operated and managed by a service provider on behalf of participating content providers, where the participating content providers are distinct from the service provider, comprising:
-
(a) deploying a content delivery network that comprises (i) a plurality of CDN content servers that are organized into sets, (ii) one or more CDN storage sites that are distinct from the plurality of content servers; and
(iii) one or more CDN-managed domain name servers each of which is authoritative to resolve predetermined CDN-specific hostnames, where each such hostname has a first portion uniquely associated with a given participating content provider and a second portion associated with the service provider;(b) for a first participating content provider; (i) establishing a first content storage directory at a storage site; (ii) providing the first participating content provider with a first CDN-specific hostname for use in association with the first content storage directory, the first CDN-specific hostname having a first portion uniquely associated with the first participating content provider, and the second portion; (iii) receiving, via upload, and storing, in the first content storage directory at the storage site, first content, where the first content is one of;
a web object, a media file, or a software download that the first participating content provider desires to be stored and delivered over the CDN;(c) for a second participating content provider distinct from the first content provider; (i) establishing a second content storage directory at a storage site; (ii) providing the second participating content provider with a second CDN-specific hostname for use in association with the second content storage directory, the second CDN-specific hostname having a first portion uniquely associated with the second participating content provider, and the second portion; (iii) receiving, via upload, and storing, in the second content storage directory at the storage site, second content, where the second content is one of;
web object, a media file, or a software download that the second participating content provider desires to be stored and delivered over the CDN;(d) upon receipt by a CDN-managed domain name server of a DNS query associated with the first CDN-specific hostname; (i) identifying one or more CDN content servers; (ii) receiving a request for the first content at one of the identified content servers; (iii) if the first content is available to be served, serving the first content; and (iv) if the first content is not available to be served, obtaining a copy of the first content from the first content storage directory as needed to respond to the request for the first content; (e) upon receipt by a CDN-managed domain name server of a DNS query associated with the second CDN-specific hostname; (i) identifying one or more CDN content servers; (ii) receiving a request for the second content at one of the identified CDN content servers; (iii) if the second content is available to be served, serving the second content; and (iv) if the second content is not available to be served, obtaining a copy of the second content from the second content storage directory as needed to respond to the request for the second content; where the second portion is common to each of the first and second CDN-specific hostnames, and where the first CDN-specific hostname also has associated therewith a value that identifies the first content storage directory from which the copy of the first content can be obtained, and where the second CDN-specific hostname also has associated therewith a value that identifies the second content storage directory from which the copy of the second content can be obtained; wherein the one or more CDN storage sites include first and second CDN storage sites that are each located in different Internet-accessible locations and operate asynchronously and autonomously from one another. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
Specification