The present invention relates to a content delivery network (CDN) to provide delayed downloading services. More particularly, the present invention relates to a centralized scheduler for a content delivery network.
The prior art describes a scheduling algorithm for a single content server and a single cache server for delayed downloading services. Content delivery network (CDN) technology is typically used for a service that can render the requested content at a later time, delayed from the request time. Digital movie rental service can be a typical service of such.
CDN technology includes two key components: (1) allocate resource to distribute content to edge servers and (2) redirect a request (request-routing) to distribute content from an edge server to a client. In conventional CDN networks, request-routing is made to an edge server only if the content is available at the edge server.
The present invention describes a centralized scheduler for a content delivery network with cache/edge servers to achieve (1) traffic load balancing by selecting distribution paths and (2) traffic load smoothing by selecting distribution schedules at a centralized controller.
In the CDN of the present invention, request-routing can be made to an edge server even if the content is not yet available at an edge server. The ability to select a path of servers, which can deliver the requested content to the client is the request-routing function for the CDN of the present invention. That is, the centralized scheduler of the CDN of the present invention identifies a path in the CDN, through which the requested content will be distributed—via a request schedule using the centralized scheduler of the present invention.
A method for performing centralized scheduling of content delivery is described including performing admission control, locating a server that is a source of content, determining a content delivery schedule and reordering the content delivery schedule. Also described is a method for performing admission control including reordering a request queue based on partially served committed requests for content and newly arrived requests for content and determining if the newly arrived request for content can be admitted to the request queue.
The present invention defines the scheduling problem of a CDN system for delayed downloading services and proposes a heuristic method for solving the request-routing problem using (1) normalized rate ordering and (2) sequential path selection.
The method of the present invention for optimizing admission and establishing a delivery schedule is based on a centralized approach. The CDN of the present invention supports delayed downloading services that can be generalized as the problem depicted in
The parameters used in performing centralized scheduling in accordance with the present invention are as follows:
N={nj, j=0, . . . , J}—network node set, including a content server (j=0), I edge servers (j=1, . . . , I) and U clients (j=I+1, . . . , I+U=J).
At each node, there is a cache,
The optimization problem to be solved by the present invention is that given a request set, a scheduling set must be determined. At any time a new request arrives, the scheduling set must be determined that permits the fastest distribution of the requested content. The problem can be defined as follows:
Given a network [N, {cj(t)},{b((nj,nk),(t)}], a request set R(t0), and the initial condition of caches {Ci(t0), i=1 . . . I} and links {B((nj,nk),t0), (nj,nk)εL} at time t=t0, find a scheduling set S(t0)={sq(nj,nk); (nj,nk)εL} so that the latest schedule time for all requests on all links is minimized, that is:
Minimize [Max(sq(nj,nk); (nj,nk)εL & rqεR(t0))] (1)
(1) Due time constraints
d
q≦max[sq(nj,nk),(nj,nk)εL] for all rq
(2) Cache constraints at any time t≧t0,
|Ci(t)|=Σm
where |mq| is the size of content for the request rq, and
(3) Link capacity constraints at any time t≧t0,
l((nj,nk),t)=Σs
where g[x] is the step function. g[x]=1, x≧0, otherwise g[x]=0, and eq(nj,nk)=sq(nj,nk)+|mq|/∥mq∥ is the ending time of downloading the content for request rq. It is assumed that the content is delivered in one consecutive time slot at streaming rate.
Although the goal is to serve the whole request set as early as possible, i.e. giving a schedule time as early as possible, for a given request set, there can be many schedules that can satisfy the constraints, which include using different paths and serving the requests in different orders. The complexity of the path selection is O(pQ), where p is the average number of paths between the content server and a client. The complexity of serving/selecting orders can be up to O(Q!) in the extreme case.
The centralized scheduler of the present invention, includes a heuristic method that uses the following definitions/rules:
1) Request ordering:
2) Sequential path selection:
That is, the centralized scheduler of the present invention seeks to
Minimize [Max(sq(nj,nk); (nj,nk)εL)] (2)
The set of optimal schedules {sq(nj,nk), (nj,nk)εL} will be determined for each request rq based on the previously made scheduling vectors {sx(nj,nk); x=0, . . . , q−1}. Since each request seeks the best of its own schedule based on previous conditions, the scheduling decision is made for each request independent of future requests. The complexity becomes O(pQ).
Processing requests sequentially, each request's schedule is made as early as possible. In the normalized order, processing requests sequentially, the schedule is made as early as possible. This method is denoted herein as the normalized rate earliest delivery (NRED) method, which can be best described as follows:
The metrics for the shortest path algorithm can be defined, for example, as follows:
For a given CDN topology and a set of partially served requests for content and new requests for content, the request queue is reordered based on partially served committed requests and newly arrived requests. This procedure is called admission control. New requests for content are admitted if possible (resources permitting). Specifically, a centralized server determines if a new request for content can be admitted. The centralized scheduler of the present invention determines if a schedule can be developed that satisfies the new request for content without dropping an already admitted request. This determination is made by emulating the service of the partially served committed requests along with the newest request taken from the normalized request queue. A new request for content is rejected and removed from the request queue if no such schedule can be developed.
The centralized server of the present invention sends commands to edge servers and clients/users to invoke the downloading processes according to the schedules developed in satisfaction of the newest request for content admitted.
In an alternative embodiment, the method of the present invention can also use striping as long as each striped unit of content is defined as a single unit of content. A request for striped content can be made using multiple requests, one for each striped unit and each with optionally some pro-rated due time. While this increases the overall complexity of the method, it may also result in units of content delivered faster and perhaps even in parallel.
The method of the present invention (NRED) thus temporally and spatially smoothes the loads in a content distribution network and thereby delivers more requested content on time. Since content requests are often bursty (often coming at peak hours and from hotspots), without scheduling the content distribution network can be overloaded during some time periods and unused during other time periods.
It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device.
It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2006/011044 | 3/28/2006 | WO | 00 | 10/1/2009 |