1: \documentclass[conference]{IEEEtran}
2:
3:
4: \newtheorem{lemma}{Lemma}
5: \newtheorem{definition}{Definition}
6: \newtheorem{proposition}{Proposition}
7: \newtheorem{theorem}{Theorem}
8:
9: \usepackage[dvips]{graphics}
10: \usepackage{epsfig}
11: \usepackage{amsmath}
12: \usepackage{amsopn}
13: \usepackage{amssymb}
14: \usepackage{color}
15:
16: \begin{document}
17:
18: \title{Competition and Request Routing Policies in Content Delivery Networks}
19:
20: \author{\authorblockN{S. M. Nazrul Alam}
21: \authorblockA{Department of Computer Science\\
22: Cornell University\\
23: Ithaca, NY 14850 USA\\
24: Email: smna@cs.cornell.edu}
25: \and
26: \authorblockN{Peter Marbach}
27: \authorblockA{Department of Computer Science\\
28: University of Toronto\\
29: Toronto, ON M5S 3G4 Canada\\
30: Email: marbach@cs.toronto.edu}}
31:
32:
33: \maketitle
34:
35: \begin{abstract}
36: The role of competition and monetary benefits in the design of Content Delivery Networks (CDNs) is largely an unexplored area. In this paper, we investigate the effect of competition among the competitive web based CDNs and show that little difference in their performance may cause significant financial gain/loss. It turns out that the economy of scale effect is very significant for the success of a CDN in a competitive market. So CDN peering might be a good idea. Since performance and conforming to the service level agreement (SLA) with content providers is very important, we then focus on designing CDN from this perspective. We provide an asymptotically optimal static request routing policy for a CDN under a model where a CDN company guarantees a certain level of user latency to the content providers in the SLA.
37: \end{abstract}
38:
39:
40: \IEEEpeerreviewmaketitle
41:
42: \section{Introduction}
43: Content distribution (or, delivery) networks (CDNs) provide a means to improve the performance of web-based
44: applications where clients access information from an origin server~\cite{Verma:2002}. A CDN consists of a set of
45: surrogate servers that are placed at different ``points'' in the Internet. By directing requests to surrogate servers
46: that are located close (in terms of latency) to clients, CDNs avoid congested paths (parts) of the network and thus
47: are able to significantly reduce the response time of web-based applications.
48:
49:
50: In principle, each web-based content provider could setup its own CDN to better serve its clients. However, for most %%@
51: content providers it is financially and technically not feasible to maintain their own CDN. Therefore, in practice, %%@
52: content providers contract a CDN company to provide this service~\cite{akamai}~\cite{mirrorimage}.
53: Typically, a CDN company and a content provider sign a service level agreement (SLA) which determines the %%@
54: performance (quality of service) and price of the service provided by the CDN company to the content provider.
55:
56:
57: In this paper, we are interested in how economic aspects of commercial CDN companies influence the design of network %%@
58: protocols for CDNs (such as how client requests are optimally routed to surrogate servers). Like any other
59: business organization, the goal of a rational commercial CDN company is
60: maximizing its monetary benefit. There are two main factors which affect the monetary benefit of a CDN company: the %%@
61: performance and the price of the service. Naturally, when two CDN companies charge the same price then a content %%@
62: provider will contract the CDN which offers the better performance. On the other hand, if two CDN companies offer the %%@
63: same performance, content providers will choose the one with the lower price. Therefore, in order to predict the %%@
64: monetary benefit, or optimize the operation of a CDN company, one needs to develop an economic model that relates the %%@
65: performance and monetary benefit in the situation where several CDN companies compete for market share. To the best %%@
66: of our knowledge, there is no previous work on protocol design for CDN to maximize the monetary benefit in a %%@
67: competitive market.
68:
69:
70: For our analysis, we consider the situation where the service level
71: agreement (SLA) guarantees a certain level of performance improvement $\beta$ (given by the ratio of new and old %%@
72: request response time for clients) for the content provider. For the situation where a few CDN companies compete in a %%@
73: large market (in terms of content providers), we show that the CDN company which offers the best performance (in %%@
74: terms of $\beta$) will dominate the market. For example, in the case of two competitive CDNs, our model shows that
75: if one CDN has a very slight performance
76: advantage over its rival CDN (i.e., a better value of $\beta$)
77: then in equilibrium its revenue is at least four times higher than its rival. It is worth noting that this result is %%@
78: in line with what is happening in practice. Note that a CDN company can improve its performance by (a) deploying a %%@
79: large number of surrogates server and (b) deploying sophisticated algorithms for optimally routing client requests to %%@
80: surrogate servers. The above result then implies that large CDN companies (in terms of surrogate server) with %%@
81: sophisticated algorithms have a huge competitive advantage and will dominate the market. And indeed, currently the %%@
82: CDN market is dominated by a (very) small number of large CDN companies that closely guard their algorithms for %%@
83: client requests routing in order to keep their competitive advantage.
84:
85: Having established that performance (with respect to the SLA) is of utmost importance, we next develop a request %%@
86: routing (or, redirection) policy to maximize the number of requests that are served within the agreed value of %%@
87: $\beta$ in the SLA. In particular, we propose a simple static request routing policy and show that it is %%@
88: asymptotically optimal.
89:
90: The rest of the paper is organized as follows. Section~\ref{sec:comp} describes the relationship between the %%@
91: performance and the revenue of web-based CDNs in
92: a competitive market.
93: Section~\ref{sec:routingpolicy} describes the existing request routing policies
94: and presents a model for routing policies that is based on service level agreement. A static request routing policy %%@
95: for this model is proposed and it has been proven that this policy is asymptotically optimal.
96: Numerical results are given in the corresponding sections.
97: Section~\ref{sec:conclusion} concludes
98: the paper and suggests future research directions.
99:
100: \section{Relationship between Performance and Revenue of a CDN in a Competitive Market}
101: \label{sec:comp}
102: In the case of web-based competitive content delivery networks,
103: our goal is to understand how the
104: performance of a CDN affects its competitiveness.
105: Doing an exact analysis to get the equilibrium point requires solving a system of
106: linear equations where the number of equations
107: increases with the number of CDNs involved. As a result, although numerical calculation of equilibrium revenues
108: for particular values of various parameters are relatively easy for arbitrary number of competitive CDNs, %%@
109: theoretically
110: proving the general relationship among the equilibrium revenues is
111: difficult for the general case.
112: So instead of modeling a general case involving arbitrary number of CDNs,
113: we use a simple model of two CDNs
114: to understand the relationship between the performance
115: and the revenue of a CDN in the competitive
116: environment. Later we extend the model and analyze the competition among
117: three CDNs. In both cases, it is found that in equilibrium
118: a CDN having better performance attracts
119: substantially more users at a higher price
120: and thus generates significantly more revenue than
121: its competitors.
122:
123: Most of the time, the financial fate of
124: a CDN is determined by the service level agreement (SLA) signed between
125: CDN and the content provider. Service Level Agreements are documents that specify exactly what services the service %%@
126: provider will provide,
127: how much the customer will pay, and what will happen when things go wrong~\cite{Kaye:2002}.
128: Since a typical content provider is a small entity and lacks
129: necessary expertise and resources to
130: negotiate the terms and conditions of a SLA with a CDN, usually
131: a CDN determines the terms and conditions of its own SLA for all
132: of its potential customers and then publishes it. A content provider
133: looks at the SLAs of different CDNs and then chooses a CDN based
134: on the services, prices and penalties written on the SLA
135: so that its utility is maximized. The SLAs of different CDNs may vary but
136: all of them should have something in common, e.g., what would be the guaranteed
137: minimum improvement of user latency, what would be the level of price charged by the
138: CDN for the service and how much penalty the CDN would have to pay to the
139: content provider when it is unable to achieve the guaranteed performance.
140: Usually, a CDN does not get extra money if its level of performance is higher than the
141: level guaranteed in the SLA. Since most content providers themselves are unable to
142: monitor the performance, sometime independent
143: third party companies monitor the performance of the CDNs.
144:
145: \subsection{The Model}
146: Our model has some similarity with the model of~\cite{Gibbens:2000}, which they use to understand the competition for %%@
147: Internet service classes.
148: In our model, we use a performance parameter $\beta$ to quantify the performance of a CDN and
149: a sensitivity parameter $\theta$ to quantify the demand of a content provider.
150:
151: \subsubsection{Model of the CDNs}
152: Quantifying the performance of a CDN is very difficult. Traditionally,
153: lower user latency and higher availability have been the two most important services provided
154: by a CDN. Since most CDN usually guarantees 100\% availability, availability should not be
155: a big issue while analyzing the competition. Recently, content delivery networks
156: are offering various other services such as web hosting. However, for simplicity, in our model
157: we use user latency as the sole indicator of the performance of a CDN.
158:
159: From the
160: point of view of user latency, the performance of a CDN can be measured by the improvement
161: in user latency. Let, $\psi'$ be the time required to serve a typical request from an origin server and
162: $\psi_k$ be the time needed to serve the same request
163: when a CDN say, $CDN_k$, serves it. In other word, $\psi'$ is the old user
164: latency and $\psi_k$ is the new user latency when $CDN_k$ serves the request.
165: Then the performance of $CDN_k$ for that request can be defined as
166: $$\beta_k = \frac{\psi_k}{\psi'}.$$
167: The minimum (best) possible value of the $\psi_k$ is zero and the maximum (worst)
168: value of $\psi_k$ should be equal to the value of $\psi'$. The worst case scenario
169: occurs when a request is served by the origin server and then the value of $\beta_k$ is 1.
170: No rational
171: content provider would hire any $CDN_k$ having $\beta_k\geq 1$.
172: So we assume the value of $\beta$ lies between
173: 0 and 1 for all CDN. The smaller the value of $\beta$,
174: the better the performance of the corresponding CDN.
175:
176: Each $CDN_k$ announces its performance parameter $\beta_k$ and a price $w_k$ to the content providers. A
177: content provider chooses a CDN based on the values of $\beta_k$ and $w_k$ with an objective to maximize its own %%@
178: utility.
179: In this model, it is assumed that $\beta_k$ of each $CDN_k$ is fixed but the CDN can change its price $w_k$ to %%@
180: increase its competitiveness. The ultimate goal of a CDN is assumed to maximize its revenue.
181:
182: The revenue function of a CDN is defined as follows. Let, there are $K$ CDNs, say $CDN_1, CDN_2,...,CDN_K$, having
183: performance parameters $\beta_1, \beta_2,...,\beta_K$, respectively. They compete among them by changing their
184: respective prices $w_1, w_2,...,w_K$ to maximize their revenues.
185: Let, $\Lambda_1(w_1, w_2,...,w_K)$, $\Lambda_2(w_1,w_2,...,w_K)$,$...$,$\Lambda_K(w_1,w_2,...,w_K)$ be the number of %%@
186: customers (content providers) of $CDN_1, CDN_2,...,CDN_K$, respectively. The number of content providers of a CDN %%@
187: depends on its price as well as the price of its competitors. Definitely, $\Lambda$s depend on the values of %%@
188: $\beta$s as well, but for simplicity we keep that implicit, and note that the values of $\beta$ of each CDN is fixed %%@
189: during the whole competition process.
190: Since the revenue of a CDN can be obtained by multiplying the
191: number of customers with price, the revenue of $CDN_k$ can be defined as $$J_k(w_1, w_2,...,w_K)= %%@
192: \Lambda_1(w_1,w_2,...,w_K) \times w_k .$$
193:
194: Note that all CDNs would change their prices until they reach a point where a unilateral change of price
195: does not increase the revenue of that CDN. Such a point is usually refer to as a Nash Equilibrium. We actually want %%@
196: to find the
197: revenues at Nash Equilibrium. A Nash Equilibrium can be formally defined as follows.
198:
199: A Nash Equilibrium is a set of prices $(w_1^*, w_2^*,...,w_k^*,...,w_K^*)$, such that for any CDN, say $CDN_k$,
200: for all values of $w_k$,
201: $$ J_k(w_1^*, w_2^*,...,w_k^*,..,w_K^*) \geq J_1(w_1^*, w_2^*,...,w_k,..,w_K^*).$$
202:
203: In words: in a Nash Equilibrium, no CDN has a unilateral incentive to change its
204: strategy (i.e., price).
205:
206: From now on, we would write simply $\Lambda_k$ and $J_k$ instead of $\Lambda_k(w_1, w_2,...,w_K)$ and %%@
207: $J_k(w_1,w_2,...,w_K).$
208:
209:
210: \subsubsection{Model of the Content Providers}
211: All content providers are not equally sensitive to the service provided by a CDN. The benefit due to lower user %%@
212: latency
213: largely depends on the type of the content and the end users of the content provider. We use a sensitivity parameter %%@
214: $\theta$ to represent this
215: sensitivity of the content providers.
216:
217: We can define $\theta$ as the maximum utility that can be increased by any CDN for that particular content provider.
218: From the property of $\beta$, we know that the best possible value of $\beta$ is zero and the worst possible value is %%@
219: 1. So when $\beta_k=1$,
220: there is no gain in utility; and when $\beta_k= 0$ the gain in utility is maximum and it is $\theta-w_k$, where $w_k$ %%@
221: is the price charged by $CDN_k$.
222: So, when a content provider with sensitivity parameter $\theta$ hires $CDN_k$, the pay off function can be
223: defined as
224: $$U(\theta, k)= \theta \times (1-\beta_k)-w_k.$$
225:
226: In our model, all content providers are rational and they select the CDN which has the maximum value for the pay off %%@
227: function, i.e.,
228: a content provider with sensitivity $\theta$ selects $CDN_j$ if and only if
229: $$U(\theta, j) = \max_{\forall k} U(\theta, k).$$
230:
231:
232: \subsubsection{Assumptions}
233:
234: Other important assumptions of our model are stated below:
235: \begin{itemize}
236:
237: \item The utility of a content provider increases linearly with the decrease of
238: $\beta$ in the interval [0,1]. Although this assumption might not be the case
239: for some content providers, it captures the relevant feature that utility increases
240: with the decrease of $\beta$ while maintaining tractability.
241:
242: \item No content provider hire more than one CDN. It is a reasonable and practical
243: assumption.
244:
245: \item Content providers differ in their preferences for lower user latency. So different
246: content providers have different values for the sensitivity parameter $\theta$. To reflect
247: the range of preferences in the population of content providers in the simplest
248: manner, it is assumed that there is a continuum of content providers whose $\theta$
249: parameters form a population distribution which is uniformly distributed on the interval [0,1],
250: and the number of content providers $\Lambda$ is a very big number.
251: The uniform distribution is commonly used in
252: Economics for modeling competition among firms whose
253: products are of different qualities; see \cite{Shaked:1982, Gabszewicz:1986,Tirole:1988}
254: among many others.
255: This assumption tells that the total number of content providers having sensitivity between $\theta_1$
256: and $\theta_2$ (where $0 \leq \theta_1 \leq \theta_2 \leq 1$) is $\Lambda (\theta_2-\theta_1)$. We make an additional
257: assumption that the number of requests served by each CDN is proportional to the number of content providers it has. %%@
258: That
259: means that in order to compare the revenues of competitive CDNs,
260: we need to take into account only their price and the number of content providers they have. Real life scenario where %%@
261: content providers vary in their amount of content can be simulated in this model by representing a content provider %%@
262: with a number of content providers which is proportional to its content size.
263:
264: \item CDNs have no capacity constraints. That is each CDN can serve as many content providers as it can get. This is %%@
265: actually not very unrealistic assumption. If a CDN can not serve a request, it can always redirect it to the origin %%@
266: servers. In that case, the performance parameter $\beta$ of that CDN has a worse value.
267: \end{itemize}
268: A strategy for a content provider is a choice of CDN to join, given the prices quoted by the
269: CDNs. Throughout this paper, we would use a superscript $*$ to denote various terms at equilibrium (e.g., at %%@
270: equilibrium
271: the price, the number of content providers
272: and the revenue of $CDN_1$ are $w_1^*$, $\Lambda_1^*$, $J_1^*$, respectively).
273:
274: \subsection{Competition between two CDNs}
275: In this scenario, two CDNs, say $CDN_1$ and $CDN_2$, having performance parameter
276: $\beta_1$ and $\beta_2$, charges price $w_1$ and $w_2$, respectively.
277: Let $J_1(w_1, w_2)$ and $J_2(w_1, w_2)$ be the revenue of $CDN_1$ and $CDN_2$, respectively.
278:
279: Now the question we want to answer is:
280: \begin{quote}
281: Given the performance parameters $\beta_1$ and $\beta_2$, what is the relation between the equilibrium revenues of %%@
282: $CDN_1$ and $CDN_2$ in a duopoly?
283: \end{quote}
284:
285: For the sake of analysis, without loss of generality we assume $\beta_2\geq \beta_1$. In order to find the revenues %%@
286: of the two CDNs
287: at equilibrium at first we need to prove a few lemmas.
288:
289: \begin{lemma}
290: \label{lem:property1}
291: If $CDN_2$ is rational and $\beta_2 \geq \beta_1$, then $CDN_2$ would always set price such that $w_2 \leq w_1.$
292: \end{lemma}
293: \begin{proof}
294: The proof is straightforward. If $w_2 > w_1$,
295: then for any content provider, pay off function for $CDN_1$ has higher value than that of the payoff function for %%@
296: $CDN_2$.
297: So no rational content provider would choose $CDN_2$
298: and its revenue would be
299: zero. Since the objective of $CDN_2$ is to maximize its revenue, it will never charge price
300: higher than that of $CDN_1$.
301: \end{proof}
302:
303: When the value $\beta_1$ is equal to that of $\beta_2$, analysis is much easier;
304: both CDNs essentially end up with charging
305: same price and each gets the same number of content providers. So we focus on the case where
306: $\beta_2 > \beta_1$. In this case,
307: $w_2$ must be less than $w_1$, otherwise no rational content provider would hire $CDN_2$.
308:
309:
310: A content provider's selection of a particular CDN would depend on its sensitivity parameter
311: $\theta$. Following lemma shows best choices for different values of $\theta$.
312:
313: \begin{lemma}
314: \label{lem:property2}
315: There exist $\theta_1$ and $\theta_2$ such that for a content provider with sensitivity parameter $\theta$, if
316: $0 \leq \theta \leq \theta_2$ then $0 \geq U(\theta, 2)$ and $0 \geq U(\theta,1),$ i.e., choosing no CDN is the best %%@
317: option;
318: if $\theta_2 \leq \theta \leq \theta_1$ then $U(\theta, 2) \geq U(\theta,1)$ and $U(\theta,2) \geq 0,$ i.e., %%@
319: choosing $CDN_2$ is the best option;
320: if $\theta_1 \leq \theta \leq 1$ then $U(\theta, 1) \geq U(\theta,2)$ and $U(\theta,1) \geq 0,$ i.e., choosing %%@
321: $CDN_1$ is the best option.
322: \end{lemma}
323:
324: \begin{proof}
325: Fig.~\ref{fig:infprice} describes the constraints of the CDNs in choosing their prices. Since $\beta_1$ and $\beta_2$ %%@
326: are fixed, the slope of the utility
327: curve for each CDN is fixed. The CDNs can only change the prices to change the y-intercept. A content provider %%@
328: chooses the CDN which has the higher
329: utility at its sensitivity level. If the utilities of both CDNs are negative, then the content provider does not %%@
330: choose any CDN. Fig.~\ref{fig:infprice}
331: shows two scenarios where at least one CDN has no revenue, so the price charged by that CDN is not a feasible price %%@
332: at all. Fig.~\ref{fig:feaprice} shows
333: the feasible scenario where both CDNs have nonzero revenues and this lemma follows from this figure.
334: \end{proof}
335:
336:
337:
338: The two CDNs would play a non-cooperative game to maximize their own revenue.
339: In Nash-Equilibrium, both
340: CDNs would settle in prices $w_1=w_1^*$ and $w_2=w_2^*$ such that any unilateral change of
341: price would not increase the revenue. We consider that point as the equilibrium point.
342: Following theorem shows that in equilibrium, the revenue of $CDN_1$ is significantly higher
343: than that of $CDN_2.$
344:
345:
346: \begin{theorem}
347: \label{thm:tworevenue}
348: In equilibrium total revenue of $CDN_1$ is at least four times of that of $CDN_2$, i.e., we have,
349: $$J_1^* > 4 J_2^*.$$
350: \end{theorem}
351: \begin{proof}
352:
353: The critical value of $\theta_1$ is the identity of marginal content provider who is indifferent between $CDN_1$ and %%@
354: $CDN_2$, so we have
355: $U(\theta_1, 1)=U (\theta_1, 2),$ which implies that
356: $\theta_1\times(1-\beta_1)-w_1 = \theta_1\times(1-\beta_2)-w_2$, i.e.,
357: $$\theta_1 = \frac{w_1 - w_2}{\beta_2 - \beta_1}.$$
358: Again, the critical value of $\theta_2$ is the sensitivity of the marginal user who is
359: indifferent between hiring $CDN_2$ and hiring no CDN at all, so we have
360: $U(\theta_2,1)=0,$ which implies that
361: $\theta_2\times(1-\beta_2)-w_2 = 0$, i.e.,
362: $$\theta_2=\frac{w_2}{1-\beta_2}.$$
363: The content providers having the value of their sensitivity between $\theta_1$ and 1 will choose
364: $CDN_1$ (see Fig.~\ref{fig:feaprice}), while the content providers having the value of their
365: sensitivity between $\theta_2$ and $\theta_1$ will choose
366: $CDN_2$. So the masses
367: of content providers who join $CDN_1$ and $CDN_2$ are $(1-\theta_1)\times\Lambda$ and %%@
368: $(\theta_1-\theta_2)\times\Lambda,$ respectively
369: (given the assumption that the preferences are uniformly distributed on the unit interval
370: and $\Lambda$ is the total number of content providers).
371:
372: Now, total revenue of $CDN_1$ is
373: $J_1 = (1-\theta_1)\times\Lambda \times w_1$, i.e.,
374: $$J_1 = \left(1-\frac{w_1 - w_2}{\beta_2 -
375: \beta_1}\right)\times \Lambda\times w_1.$$
376: Similarly, total revenue of $CDN_2$ is
377: $J_2 = \left(\theta_1- \theta_2\right)\times\Lambda\times w_2$, i.e.,
378: $$J_2 = \left(\frac{w_1 - w_2}{\beta_2 -
379: \beta_1}- \frac{w_2}{1-\beta_2}\right)\times\Lambda\times w_2.$$
380: To get the point where revenue is maximum,
381: set first derivative to zero (provided the second derivative
382: is negative).
383:
384: \begin{figure}
385: \begin{center}
386: \input{infprice.pstex_t}
387: \caption{Price settings which are infeasible.}
388: \label{fig:infprice}
389: \end{center}
390: \end{figure}
391:
392:
393: \begin{figure}
394: \begin{center}
395: \input{feaprice.pstex_t}
396: \caption{Price setting where both CDNs have some revenue.}
397: \label{fig:feaprice}
398: \end{center}
399: \end{figure}
400:
401:
402: Now, $$\frac{dJ_1}{dw_1} = 0$$
403: $$\implies \left(1-\frac{w_1 - w_2}{\beta_2 -
404: \beta_1}\right)\times\Lambda - \frac{w_1\times\Lambda}{\beta_2 - \beta_1} =0$$
405: \begin{equation}
406: \label{eqn:cdncompp1}
407: \implies w_1 = \frac{\beta_2 -\beta_1 + w_2}{2}
408: \end{equation}
409:
410: Now for $CDN_2$,
411: $$\frac{dJ_2}{dw_2} = 0$$
412: \begin{eqnarray}
413: \implies &&\left(\frac{w_1 - w_2}{\beta_2 - \beta_1}-
414: \frac{w_2}{1-\beta_2}\right)\times\Lambda\nonumber\\
415: && + \left(\frac{-1}{\beta_2 -\beta_1} -
416: \frac{1}{1-\beta_2} \right)\times\Lambda \times w_2= 0\nonumber
417: \end{eqnarray}
418:
419: \begin{equation}
420: \label{eqn:cdncompp2}
421: \implies w_2 = \frac{w_1\times(1-\beta_2)}{2(1-\beta_1)}
422: \end{equation}
423:
424: Since the second derivatives are negative in both cases, the values we get are local maximum. So for a fix value of %%@
425: $w_2$, (\ref{eqn:cdncompp1}) gives the optimal value of $w_1$ for $CDN_1$; for a fix value of $w_1$, %%@
426: (\ref{eqn:cdncompp2}) gives the optimal value of $w_2$ for $CDN_2$. Now, if we solve (\ref{eqn:cdncompp1}) and %%@
427: (\ref{eqn:cdncompp2}), we get the equilibrium values $w_1^*$ and $w_2^*$ which are:
428: $$w_1^*=\frac{2(1-\beta_1)(\beta_2 -
429: \beta_1)}{4(1-\beta_1) - (1-\beta_2)},$$
430: $$w_2^*=\frac{(1-\beta_2)(\beta_2 - \beta_1)}{4(1-\beta_1)
431: - (1-\beta_2)}.$$
432:
433: The pair of prices $(w_1^*,w_2^*)$ gives the Nash Equilibrium, because if either of the CDN changes its price, then %%@
434: its revenue will go down.
435:
436: Now, since $\beta_2>\beta_1$, i.e., $(1-\beta_2) < (1
437: -\beta_1)$, we have,
438: $$w_1^* > \frac{2(1-\beta_2)(\beta_2 -
439: \beta_1)}{4(1-\beta_1) - (1-\beta_2)}$$
440: \begin{equation}
441: \label{eqn:twoprice}
442: \implies w_1^* > 2 w_2^*
443: \end{equation}
444:
445: Now, total number of content providers of $CDN_1$ is
446: \begin{eqnarray*}
447: \Lambda_1^*&=& (1 - \theta_1^*)\Lambda
448: = \left(1-\frac{w_1^* - w_2^*}{\beta_2
449: - \beta_1}\right)\Lambda \\
450: &=&\left(\frac{2(1-\beta_1)}{4(1-\beta_1) -
451: (1-\beta_2)}\right)\Lambda
452: \end{eqnarray*}
453: and the total number of content providers of $CDN_2$ is
454: \begin{eqnarray*}
455: \Lambda_2^*&=&(\theta_1^*-\theta_2^*)\Lambda
456: = \left(\frac{w_1^* -
457: w_2^*}{\beta_2 - \beta_1} -\frac{w_2^*}{1-\beta_2} \right)\Lambda
458: \\
459: &=&\left(\frac{(1-\beta_1)}{4(1-\beta_1) -
460: (1-\beta_2)}\right)\Lambda
461: \end{eqnarray*}
462: So we have,
463: \begin{equation}
464: \label{eqn:twousers}
465: \Lambda_1^*=2 \times \Lambda_2^*
466: \end{equation}
467: Now, equilibrium revenue of $CDN_1$ is
468: $J_1^* = w_1^*\Lambda_1^*.$
469: Using (\ref{eqn:twoprice}) and (\ref{eqn:twousers}), we have
470: $J_1^*> 4 w_2^*\Lambda_1^*.$
471: So, $$J_1^* > 4 J_2^*.$$
472: \end{proof}
473:
474: Note that, Theorem~\ref{thm:tworevenue} gives a conservative estimate which is always true
475: when $\beta_1>\beta_2$. The ratio of revenues increases significantly when the
476: difference between $\beta_1$ and $\beta_2$ increases.
477:
478: \subsection{Competition among Three CDNs}
479:
480: Let, three competitive CDNs, say, $CDN_1$, $CDN_2$, $CDN_3$,
481: have performance paratmeter $\beta_1$, $\beta_2$, $\beta_3$;
482: number of users $\Lambda_1$, $\Lambda_2$, $\Lambda_3$, and charge price
483: $w_1$, $w_2$, $w_3$, respectively.
484:
485:
486: \begin{theorem}
487: \label{thm:threerevenue}
488: If $\beta_1 <\beta_2 < \beta_3$, then in equilibrium,
489: $\Lambda_1^*>\Lambda_2^*>2 \Lambda_3^*$ and $w_1^* > 1.5w_2^* > 3w_3^*$.
490: So in equilibrium, the revenue of $CDN_2$ is at least four times of that of $CDN_3$ and
491: the revenue of $CDN_1$ is at least six times of that of $CDN_3$ i.e.,
492: $J_1^* > 1.5J_2^* > 6J_3^*.$
493: \end{theorem}
494: \begin{proof}
495: Similar techniques of the proof of Theorem~\ref{thm:tworevenue} can be used to proof this theorem.
496: Here we provide a brief proof sketch by mentioning values for key terms. For complete proof of this theorem, %%@
497: see~\cite{Alam:2004}.
498:
499: Equilibrium prices:
500: \begin{eqnarray*}
501: w_1^* &=& \Big[4(1-\beta_2)(\beta_2 - \beta_1)(\beta_3 -
502: \beta_1) -\\
503: & & (1-\beta_3)(\beta_2 - \beta_1)(\beta_2 -
504: \beta_1)\Big] \Big/\\ & &\Big[8(1-\beta_2)(\beta_3 - \beta_1)
505: -2(1-\beta_3)(\beta_2 -\beta_1) -\\& & 2(1-\beta_2)(\beta_3 -
506: \beta_2)\Big],
507: \end{eqnarray*}
508: \begin{eqnarray*}
509: w_2^* &=& \Big[(1-\beta_2)(\beta_2 - \beta_1)(\beta_3 -
510: \beta_2)\Big] \Big/ \\ & & \Big[4(1-\beta_2)(\beta_3 - \beta_1)
511: -(1-\beta_3)(\beta_2 -\beta_1)-\\ & & (1-\beta_2)(\beta_3 -
512: \beta_2)\Big]
513: \end{eqnarray*}
514: and
515: \begin{eqnarray*}
516: w_3^* &=& \Big[(1-\beta_3)(\beta_2 - \beta_1)(\beta_3 -
517: \beta_2)\Big] \Big/\\& & \Big[8(1-\beta_2)(\beta_3 - \beta_1)
518: -2(1-\beta_3)(\beta_2 -\beta_1) -\\ & & 2(1-\beta_2)(\beta_3 -
519: \beta_2)\Big].
520: \end{eqnarray*}
521: Since $\beta_3>\beta_2$, i.e., $(1-\beta_3) < (1
522: -\beta_2)$, we have,
523: \begin{equation}
524: \label{eqn:p2p3}
525: w_2^* > 2 w_3^*
526: \end{equation}
527: and $(1-\beta_2)(\beta_2 - \beta_1)(\beta_3 - \beta_1) >
528: (1-\beta_3)(\beta_2 - \beta_1)(\beta_2 - \beta_1)$, so we
529: have,
530: \begin{equation}
531: \label{eqn:p1p2}
532: w_1^* > \frac{3}{2} w_2^*
533: \end{equation}
534:
535: Number of content providers in equilibrium:
536: \begin{eqnarray*}
537: \Lambda_1^* &=& \Big[2(1-\beta_2)(\beta_3 - \beta_1)\Lambda-\frac{1}{2}(1-\beta_3)(\beta_2-\beta_1)\Lambda\Big%%@
538: ]\Big/\\
539: & & \Big[4(1-\beta_2)(\beta_3 - \beta_1)- (1-\beta_3)(\beta_2 -\beta_1) - \\
540: & & (1-\beta_2)(\beta_3 - \beta_2)\Big],
541: \end{eqnarray*}
542: \begin{eqnarray*}
543: \Lambda_2^* &=& \Big[(1-\beta_2)(\beta_3 - \beta_1)\Lambda + \frac{1}{2}(1-\beta_3)(\beta_2 - \beta_1)\Lambda \Big] %%@
544: \Big/ \\
545: & & \Big[4(1-\beta_2)(\beta_3 - \beta_1) -(1-\beta_3)(\beta_2 -\beta_1) - \\
546: & & (1-\beta_2)(\beta_3 - \beta_2)\Big]
547: \end{eqnarray*}
548: and
549: \begin{eqnarray*}
550: \Lambda_3^* &=& \Big[\frac{1}{2}(\beta_2 - \beta_1)(\beta_3 -
551: \beta_2)\Lambda\Big] \Big / \Big[
552: 4(1-\beta_2)(\beta_3 - \beta_1)
553: - \\ & &(1-\beta_3)(\beta_2 -\beta_1) - (1-\beta_2)(\beta_3 -
554: \beta_2)\Big].
555: \end{eqnarray*}
556: Now, since $1 - \beta_2 > 1- \beta_3$ and $\beta_3-\beta_1
557: > \beta_2- \beta_1$,
558: we have $(1 - \beta_2)(\beta_3-\beta_1) > (1-
559: \beta_3)(\beta_2- \beta_1),$ so,
560: \begin{equation}
561: \label{eqn:w1w2}
562: \Lambda_1^* > \Lambda_2^*
563: \end{equation}
564: Again, since $\beta_3-\beta_2 \leq 1 -\beta_2$ and $\beta_2 - \beta_1 < \beta_3 - \beta_1$, we have,
565: $(\beta_2 - \beta_1)(\beta_3-\beta_2) < (1-
566: \beta_2)(\beta_3- \beta_1),$ so,
567: \begin{equation}
568: \label{eqn:w2w3}
569: 2\Lambda_3^* < \Lambda_2^*
570: \end{equation}
571:
572: From (\ref{eqn:w1w2}) and (\ref{eqn:w2w3}), we have $\Lambda_1^*
573: > \Lambda_2^* >2\Lambda_3^*$ and
574: from (\ref{eqn:p2p3}) and (\ref{eqn:p1p2}),
575: we have $w_1^* > 1.5w_2^* > 3 w_3^*$ in equilibrium. Since, $J_1^*=\Lambda_1^*w_1^*$,
576: $J_2^*=\Lambda_2^*w_2^*$ and $J_3^*=\Lambda_3^*w_3^*$, clearly,
577: $J_1^* > 1.5J_2^* >6 J_3^*.$
578: \end{proof}
579:
580: Although Theorem~\ref{thm:threerevenue} gives a modest lower bound,
581: numerical results
582: of next section show that in most cases the performance advantage generates
583: far higher revenue than
584: this lower bound.
585:
586: \subsection{Numerical Results}
587: Here we present some numerical results from MATLAB simulation for various values
588: of $\beta$s. First we show results for our first model of two CDNs and then we present
589: results for three CDNs.
590:
591: \begin{table}[h]
592: \begin{center}
593: \caption{Ratio of equilibrium revenues of two competitive CDNs for different values of $\beta$.}
594: \label{table:twocdn1}
595: \begin{tabular}{|c|c|c|}
596: \hline
597: $\beta_1$ & $\beta_2$ & $\frac{J_1^*}{J_2^*}$ \\ \hline
598: 0.01 & 0.02 & 4.040816 \\
599: 0.11 & 0.12 & 4.045455 \\
600: 0.21 & 0.22 & 4.051282 \\
601: 0.31 & 0.32 & 4.058824 \\
602: 0.41 & 0.42 & 4.068966 \\
603: 0.51 & 0.52 & 4.083333 \\
604: 0.61 & 0.62 & 4.105263 \\
605: 0.71 & 0.72 & 4.142857 \\
606: 0.81 & 0.82 & 4.222222 \\
607: 0.91 & 0.92 & 4.500000 \\
608: \hline
609: \end{tabular}
610: \end{center}
611: \end{table}
612:
613: Results of Table~\ref{table:twocdn1} shows that when the difference of $\beta_1$ and $\beta_2$
614: is very small, equilibrium revenue of $CDN_1$ is almost always slightly higher than
615: four times of equilibrium revenue of $CDN_2$. Next, we keep $\beta_2$ fixed at 0.50 and check
616: the ratio of equilibrium revenues for different values of $\beta_1$ (see
617: Fig.~\ref{fig:75twocdn}). It is clear that
618: the more the difference between the values of $\beta_1$ and $\beta_2$, the higher the
619: ratio of equilibrium revenues.
620:
621:
622: \begin{table}[h]
623: \begin{center}
624: \caption{Ratios of equilibrium revenues of three competitive CDNs for different values of $\beta$.}
625: \label{table:threecdn1}
626: \begin{tabular}{|c|c|c|c|c|c|}
627: \hline
628: $\beta_1$ & $\beta_2$ & $\beta_3$ & $\frac{J_1^*}{J_2^*}$ & $\frac{J_2^*}{J_3^*}$&$\frac{J_1^*}{J_3^*}$\\ \hline
629: 0.01 & 0.02 & 0.03 & 4.924346 & 988.082474 & 4865.659794 \\
630: 0.11 & 0.12 & 0.13 & 4.927120 & 888.091954 & 4375.735632 \\
631: 0.21 & 0.22 & 0.23 & 4.930608 & 788.103896 & 3885.831169 \\
632: 0.31 & 0.32 & 0.33 & 4.935125 & 688.119403 & 3395.955224 \\
633: 0.41 & 0.42 & 0.43 & 4.941206 & 588.140351 & 2906.122807 \\
634: 0.51 & 0.52 & 0.53 & 4.949834 & 488.170213 & 2416.361702 \\
635: 0.61 & 0.62 & 0.63 & 4.963033 & 388.216216 & 1926.729730 \\
636: 0.71 & 0.72 & 0.73 & 4.985740 & 288.296296 & 1437.370370 \\
637: 0.81 & 0.82 & 0.83 & 5.034020 & 188.470588 & 948.764706 \\
638: 0.91 & 0.92 & 0.93 & 5.206731 & 89.142857 & 464.142857 \\
639: \hline
640: \end{tabular}
641: \end{center}
642: \end{table}
643:
644: Although theoretically the lower bound we achieve for three competitive CDNs are
645: relatively modest compare to the lower bound of two CDNs,
646: Table~\ref{table:threecdn1} shows that in the case of three competitive CDNs,
647: the ratio of equilibrium revenues for the top two CDNs are almost same as that for
648: two competitive CDNs. This result indicates that with the increase of number of competitors
649: the advantage of the CDN having best performance remains very significant. Another important
650: result is that in equilibrium the CDN having worst performance gets much smaller
651: revenue compare to other CDNs even with very small difference in their values
652: of $\beta$.
653:
654: \begin{figure}
655: \centering
656: \includegraphics[height=2in]{75twocdn.eps}
657: \caption{Ratio of equilibrium revenues of $CDN_1$ and $CDN_2$ for different
658: values of $\beta_1$ when $\beta_2$ is fixed at 0.75.}
659: \label{fig:75twocdn}
660: \end{figure}
661:
662: \subsection{Discussions}
663: In the model analyzed, it is found that
664: the performance of a CDN is very critical in a competitive
665: market, i.e., a little performance advantage
666: over the competitor may result in significant increase of revenue.
667: This results underscore the fact that during
668: SLA (service level agreement), each CDN would like to announce the
669: best performance it could achieve in order to
670: grab larger share of the market.
671: However, if it can not achieve
672: that performance in real life, it has to pay
673: huge penalty. This two facts imply the importance of designing a CDN with a
674: view to achieve that performance level as
675: much as possible. Next section describes how this idea can be incorporated in the
676: request routing policy employed by a web-based CDN.
677:
678: \section{Routing Policies Based on Service Level Agreements}
679: \label{sec:routingpolicy}
680: Here, we concentrate on the design of a CDN from the perspective
681: of maximizing revenue.
682: We assume that in a typical SLA
683: the CDN guarantees a minimum absolute (i.e., a fixed user
684: latency), or relative latency (i.e., a fixed $\beta$) and charges a price for it.
685: If the CDN can not achieve the specified $\beta$ for any request then it
686: has to pay some penalty for that. The penalty is proportionate to the number
687: of requests that can not be served within $\beta$.
688: It is assumed that there is no monetary incentive for the CDN to achieve $\beta$ better
689: than what is specified in the SLA.
690: So maximizing revenue of a CDN actually depends on how many requests
691: it can serve within a specified level of $\beta$.
692: The $\beta$ of a CDN is relevant to many design issues, such as
693: surrogate server allocation and placement,
694: request routing etc.
695:
696: For an existing CDN, little can be done about surrogate server allocation and
697: placement because the infrastructure can hardly be changed overnight. On the other hand,
698: in the long term the existing infrastructure of other CDNs changes as well as new competitors
699: enter the market. It requires much more market oriented information to
700: understand how the CDN react to competition in the long term. So we rather concentrate
701: on a model to determine request routing policy when the infrastructure (e.g., allocation and
702: placement of surrogate servers) of a CDN is fixed.
703:
704: \subsection{Background}
705: The request routing problem is to decide the appropriate surrogate server for a
706: particular client request in terms of certain metrics, e.g.,
707: surrogate server load (where surrogate server with the lowest load is chosen),
708: end-to-end latency (where surrogate server that offers the shortest response time
709: to the client is chosen), or distance (where surrogate server closest to the client
710: is chosen). Here, we look at the problem from a different perspective.
711: We assume that $\beta$ is already set by the service level agreement (SLA) and what
712: we need is to find a request routing policy to select a surrogate server so that the number of requests
713: that can be served within the required value of $\beta$ is maximized.
714:
715: The entire request routing problem can be split into two parts: devising a redirection
716: policy and selecting a redirection mechanism. A redirection policy defines how to
717: select a surrogate server in response to a given client request. It is basically an algorithm
718: invoked when the client request is made. A redirection mechanism, in turn, is a mean of
719: informing the client about this selection. Here, our focus is on the redirection policy.
720:
721: A redirection policy can be either adaptive or non-adaptive. The former considers
722: current system conditions while selecting a surrogate, whereas the latter does not.
723: Adaptive redirection policies usually take higher selection time, but they have
724: lower transmission and processing time due to better selection. Several adaptive
725: (see ~\cite{Wang:2002}~\cite{Huffaker:2002}~\cite{Rodriguez:2000}~\cite%%@
726: {Andrews:2002}~\cite{Ardaiz:2001}
727: ~\cite{Huffaker:2002}~\cite{Delgadillo:1999})
728: and nonadaptive policies
729: (see ~\cite{Pai:1998}~\cite{Rabinovich:1999}~\cite{Delgadillo:1999}) have been explored in the literature.
730:
731: A complex adaptive policy is used in Akamai~\cite{Dilley:2002}. It considers a few
732: additional metrics, like surrogate server load, the reliability of routes between
733: client and each of the surrogate servers, and bandwidth that is currently available
734: to a surrogate server. Unfortunately, the actual policy is subject to trade secret
735: and cannot be found in the published literature.
736:
737: \subsection{Redirection Policy based on $\beta$}
738: In this section, we investigate about the redirection policy to maximize the monetary benefit of the
739: CDN. We use a simplified model for the operation of a CDN and then analyze it to determine appropriate
740: redirection policy for that model. First, we use Dynamic Programming (DP) to find the optimal policy.
741: However, any dynamic policy has large overhead in terms of online computation time.
742: On the other hand, a static policy does not require any online computation,
743: easier to implement and the overhead is low, if not zero.
744: For our model, we propose a static request redirection
745: policy and prove that it is asymptotically optimal, i.e., optimal
746: for a system having very large arrival rate and service rate. Note that in the past static policy has been found %%@
747: asymptotically optimal in different contexts (e.g., congestion dependent network pricing~\cite{Paschalidis:2000}).
748:
749:
750: \subsubsection{The Model}
751: Here we introduce a model for the operation of a CDN.
752: For simplicity, we assume that all requests are identical
753: (i.e., take same resources such as bandwidth,
754: processor time etc., and the price and the penalty for every request are also same).
755: We also assume that the origin server is far away and so, the time to serve any
756: request from the origin server
757: is assumed to be same (i.e., old user latency is same for all end users). Then the required new user
758: latency $\psi$ (=$\beta\times$old user latency) is same for all end users.
759: Alternatively, this assumption is not required where the CDN guarantees a fixed user latency (i.e., $\psi$)
760: for the end users in the service level agreement with the content providers. For any request, if the CDN cannot serve %%@
761: it within $\psi$, then
762: it has to pay a penalty.
763:
764: Let, there are total $m$ surrogate servers and the total area of the network
765: is ${\cal A}$ (see Fig.~\ref{fig:commonarea}).
766: The end users are uniformly distributed over the whole network and
767: the exponential request arrival rate in total network ${\cal A}$
768: is $\lambda$. So arrival rate per unit area is $\frac{\lambda}{\cal A}$. Let, $\mu_1,\mu_2,...\mu_m$ be the %%@
769: exponential service rates of surrogate servers $1, 2,...,m$,
770: respectively (this service includes facing from the origin server, if needed).
771: Let $w_1$ be the price charged by a CDN for serving a request within $\psi$ and ${w_1}'$ be
772: the penalty for not serving it within the stipulated time.
773: It is also assumed that the servers have unlimited queuing capacity.
774:
775:
776:
777: Let, $n_i(t)$ be the number of requests pending in surrogate server $S_i$ at time $t$. We will
778: be writing $\mathbf{N}(t)=(n_1(t), \cdots, n_m(t))$. We assume that the requests are processed in %%@
779: first-come-first-serve basis. Then
780: on average the processing time for a request
781: arriving at time $t$ in surrogate server $S_i$
782: is $q_i(t)= \frac{n_i(t)+1}{\mu_i}$.
783:
784:
785: It is assumed that the time required for the end users to send a request to a surrogate
786: server is negligible and hence ignored. Now, a request that arrives
787: at time $t$ can be served by surrogate server $S_i$
788: within a required value of $\beta$ if the transmission time from the
789: end user and the surrogate server is less than or equal to $r_i(t) = \psi- q_i(t)$.
790: It is assumed that the transmission time is proportional to the distance and does not vary over time
791: (i.e., we ignore any time varying network congestion).
792: So any request originating at time $t$ within the radius $r_i(t)$ of server $S_i$ can be served
793: by that server within the required value of $\beta$ (i.e., $\psi$). Say, this area, characterized by
794: the radius $r_i(t)$, is $A_i(t)$. Now if this area of
795: two or more servers intersect at any time, then the requests which arrive from the
796: common area can be served by any of these servers. If a request can be served by more than one surrogate servers
797: within the required value of $\beta$ (i.e. $\psi$),
798: then the policy to determine the appropriate server with an objective to maximize the revenue can be described as
799: the routing policy we are looking for. If no server can serve the request within $\psi$, then it is served by the
800: origin server. So, we also ignore the availability issue of the CDN in our model.
801:
802:
803: \subsubsection{Analysis}
804:
805: At first, we focus on some important features of the model that give some idea about the potential solutions.
806:
807: \begin{lemma}
808: Under any policy the number of pending requests at any server $S_i$ is bounded by $\lceil \psi\mu_i-1 \rceil$.
809: \end{lemma}
810: \begin{proof}
811: Recall that the radius of any server $S_i$ is defined as $r_i(t)= \psi - \frac{n_i(t)+1}{\mu_i}$, where $n_i(t)$ is
812: the number of requests at server $S_i$ at time $t$. So when the number of
813: requests at server $S_i$ is $\lceil \psi\mu_i-1 \rceil$, the radius $r_i \leq 0$. That means that when at any server %%@
814: $S_i$, the number of pending
815: requests is $\lceil \psi\mu_i-1 \rceil$, no more requests can be served within the required value of $\psi$ and so %%@
816: the arrival rate is zero.
817: When the arrival rate is zero, the queue can not grow any more and so,
818: the maximum number of pending
819: requests in any surrogate server $S_i$ is bounded by $\lceil \psi\mu_i -1 \rceil$.
820: \end{proof}
821:
822: \begin{figure}
823: \centering
824: \input{commonarea.pstex_t}
825: \caption[An illustration of the term 'common area' and 'exclusive area' for a CDN having three surrogate servers.]
826: {An illustration of the term 'common area' and 'exclusive area' for a CDN having three surrogate servers.
827: Dotted line represents the total area ${\cal A}$ of the network. End users are uniformly
828: distributed over this area ${\cal A}$. At any time $t$, $\phi_1(t)$ is the common area
829: between server $S_1$ and $S_2$. Requests originated from this area can be served within the required value of
830: $\beta$ (i.e. $\psi$) by any of these two servers. Similarly,
831: $\phi_2(t)$ is the common area between server $S_1$ and $S_3$, $\phi_3(t)$ is the common area
832: between server $S_2$ and $S_3$, $\phi_4(t)$ is the common area
833: among servers $S_1$, $S_2$ and $S_3$. At any time $t$, requests originating from area $\Phi_1(t)$ can
834: only be served by server $S_1$ and so $\Phi_1(t)$ is the exclusive area of server $S_1$. Similarly, $\Phi_2(t)$
835: and $\Phi_3(t)$ are the exclusive areas of servers $S_2$ and $S_3$, respectively.}
836: \label{fig:commonarea}
837: \end{figure}
838:
839:
840: One important question for any routing policy is if any given request that can be served within $\psi$ should be %%@
841: served or not. It may be the case that
842: not serving the request may give the opportunity to serve more requests in the future. Following lemma shows that %%@
843: that is not the case.
844:
845: \begin{lemma}
846: \label{lem:allrequest}
847: If a request can be served by at least one surrogate server within the required
848: value of $\psi$, then on average serving the request returns more or at least equal revenue than not
849: serving it.
850: \end{lemma}
851: \begin{proof}
852: Suppose, there are two identical systems ${\cal S}$ and ${\cal S}'$ such that the number of surrogate servers,
853: their locations, service rates and the request arrivals everything is identical in both systems. Assume that system %%@
854: ${\cal S}'$ use an optimal request routing policy and it denies
855: service to a certain request, say $i$-th request, even when it can be served by a server, say
856: server $S_i$. Now if we can show that another policy in system ${\cal S}$ that admits the $i$-th request
857: to surrogate server $S_i$ and on average it can make at least as much revenue as system ${\cal S}'$,
858: then we are done.
859:
860: Suppose that $i$-th request is admitted to the server $S_i$ of system ${\cal S}$. Assume
861: system ${\cal S}$ and ${\cal S}'$ takes exactly same decision for all requests except $i$-th request. Now
862: assume $j$-th request ($j>i$) is the first request after $i$-th request where system ${\cal S}$ can not
863: serve the request within the required value of $\psi$ but system ${\cal S}'$ can. So, system ${\cal S}$ can not
864: admit that request and lose revenue. Now, when $j$-th request arrives, in the worst case,
865: server $S_i$ in system ${\cal S}$ has one more request to serve than the corresponding server in system
866: ${\cal S}'$ and all other servers in both system are in identical state. So, in system ${\cal S}'$,
867: server $S_i$ is the only server that can serve $j$-th request within the required value
868: of $\psi$. Now, when system ${\cal S}'$ accepts the $j$-th request, the revenue of both systems
869: are same. Since all requests are identical and both $i$-th and $j$-th requests
870: are served by server $S_i$ in system ${\cal S}$ and ${\cal S}'$, respectively, on average $i$-th request will depart
871: earlier in system ${\cal S}$ than $j$-th request in system ${\cal S}'$. So after that there would not be any request
872: that can be served by system ${\cal S}'$, but not
873: by system ${\cal S}$, and on average the revenue of system ${\cal S}'$ is not
874: greater than system ${\cal S}$. Note that, since on average $i$-th requests departs earlier than the arrival of
875: $j$-th request, on average total revenue of system ${\cal S}$ will actually be higher than system ${\cal S}'$.
876: \end{proof}
877:
878:
879: Following theorem defines a criteria to maximize the revenue.
880: \begin{theorem}
881: \label{thm:area}
882: The revenue is maximized if and only if the throughput of the system is maximized. The throughput of the system is %%@
883: maximized
884: if $$\lim_{T \rightarrow \infty} \frac{1}{T} E\left[\int_0^T
885: \left(A_1(t)\cup A_2(t)\cup ... \cup A_m(t)\right) dt \right]$$ is maximized and all requests that can be served %%@
886: within $\beta$ (i.e., $\psi$)
887: are actually served by a surrogate server.
888: \end{theorem}
889: \begin{proof}
890: Since all requests have identical price and penalty, obviously maximizing throughput maximizes revenue and vice %%@
891: versa.
892:
893: Now, at any time $t$ the number of requests that can be
894: served within $\psi$ is $\lambda \frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A}$ and the number of requests that %%@
895: can not
896: be served within $\psi$ is $\left(1- \lambda \frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A}\right)$.
897: Since from Lemma~\ref{lem:allrequest}, we know that not serving any request that can be served within $\psi$ does not %%@
898: increase overall revenue,
899: serving all the requests originating from the area $(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))$ will maximize the %%@
900: throughput and revenue.
901: So net revenue from the requests originating
902: at time $t$ is
903: \begin{eqnarray*}
904: \lefteqn{\lambda \frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A} w_1 - }\\
905: & \left(1- \lambda \frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A}\right){w_1}' \\
906: & =\lambda \frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A} (w_1+{w_1}') - {w_1}'.
907: \end{eqnarray*}
908: So, the expected long term average revenue is given by
909: \begin{eqnarray*}
910: &\lim_{T \rightarrow \infty} \frac{\lambda}{T} E\Big[\int_0^T
911: \Big(\frac{(A_1(t)\cup A_2(t)\cup ... \cup A_m(t))}{A}(w_1+{w_1}') -\\
912: & {w_1}' \Big) dt \Big].
913: \end{eqnarray*}
914: Since $\lambda, A, w_1, {w_1}'$ all are constants, above entity will be maximized if and only if the following entity %%@
915: is maximized
916: \begin{equation}
917: \label{eqn:networkpart_eqn1}
918: \lim_{T \rightarrow \infty} \frac{1}{T} E\left[\int_0^T
919: \left(A_1(t)\cup A_2(t)\cup ... \cup A_m(t)\right) dt \right]
920: \end{equation}
921: (The above limit exists for any routing policy, because the state
922: $\mathbf{N}=0$, corresponding to an empty system, is recurrent.)
923: \end{proof}
924:
925: Since maximizing throughput maximizes revenue, from now on, we would try to find the policy that maximizes throughput %%@
926: and
927: would not use the terms $w_1$ and ${w_1}'$ anymore.
928:
929: \subsubsection{Optimal Dynamic Policy using Dynamic Programming}
930:
931: Here we show how to obtain an optimal routing policy using
932: {\it dynamic programming (DP)}.
933: Since the number of choices for each request is limited by
934: the number of surrogate servers that can serve the request within $\beta$ (i.e. $\psi$),
935: the set $\Pi$ of all possible policies ($\pi$) is compact. Again, in this finite state dynamic
936: programming problem, all states communicate, i.e., for each pair of state $(\mathbf{N}, \mathbf{N'})$, there
937: exists a policy under which we can eventually reach $\mathbf{N'}$ starting from $\mathbf{N}$. So the state space is
938: irreducible. The Markov chain is also aperiodic. The expected holding time at any state is bounded by the service %%@
939: rate
940: and the arrival rate at that state. The reward rate is bounded by the number of servers that are non-empty at that %%@
941: state. Under
942: these assumptions, the standard dynamic programming theory applies and asserts that there exists a policy which
943: is optimal.
944:
945: The process $\mathbf{N}(t)$ is a continuous-time Markov chain. Since the total
946: transition out of any state is bounded by
947: $\nu= \lambda +\sum_{i=1}^m \mu_i$, this Markov chain can be uniformized,
948: leading to a Bellman equation of the form
949: \begin{multline}
950: \label{eqn:bellman}
951: J^* +h(\mathbf{N}) = \max_{\pi \in \Pi} \Big[ \sum_{i=1}^m I(n_i(\mathbf{N}))+ \\
952: \sum_{i=1}^m
953: \frac{\lambda_i^{\pi}(\mathbf{N})}{\nu} h(\mathbf{N}+e_i) + \sum_{i=1}^m \frac{\mu_i I(n_i(\mathbf{N}))}{\nu} %%@
954: h(\mathbf{N}-e_i)\\
955: +\left(1-\sum_{i=1}^m \frac{\lambda_i^{\pi}(\mathbf{N})}{\nu} - \sum_{i=1}^m \frac{\mu_i %%@
956: I(n_i(\mathbf{N}))}{\nu}\right) h(\mathbf{N})\Big]
957: \end{multline}
958:
959: Here, $\lambda_i^{\pi}(\mathbf{N})$ is the request arrival rate at server $S_i$ at system state $\mathbf{N}$ under %%@
960: policy $\pi$,
961: and to indicate the non-emptiness of a server we use $I(n_i(\mathbf{N}))$, where $n_i(\mathbf{N})$ denotes the number %%@
962: of requests
963: at server $S_i$ when the system is at state $\mathbf{N}$. We define $I(n_i(\mathbf{N}))$ as follows:
964: \begin{equation}
965: I(n_i(\mathbf{N}))=
966: \begin{cases}
967: 1 & \text{if } n_i(\mathbf{N})>0\\
968: 0 & \text{otherwise.}
969: \end{cases}
970: \nonumber
971: \end{equation}
972:
973: We impose the condition $h(0)=0$, in which case Bellman's equation has a unique solution
974: [in the unknowns $J^*$ and $h(\cdot)$].
975: Once Bellman's equation is solved, an optimal policy is readily
976: obtained by choosing the policy at each
977: state $\mathbf{N}$ that maximizes the right-hand side in (\ref{eqn:bellman}).
978: The solution to Bellman's equation has the following interpretation: the scalar $J^*$
979: is the optimal expected
980: reward per unit time, and $h(\mathbf{N})$ is the relative reward in state $\mathbf{N}$.
981: In particular, consider an optimal policy that attains the maximum in (\ref{eqn:bellman})
982: for every state $\mathbf{N}$. If we follow this policy starting from $\mathbf{N}'$
983: or state $\mathbf{N}$, the expectation of the difference in total rewards (over the
984: infinite horizon) is equal to ${(h(\mathbf{N}')-h(\mathbf{N}))}/{\nu}$.
985:
986: The solution to Bellman's equation and resulting optimal policy can be computed
987: using classical DP algorithms. However, the computational complexity
988: increases with the size of state space, which is exponential in the
989: number of surrogate servers $m$. For this reason, exact solution using DP is
990: only feasible only when the number of surrogate servers is quite small.
991:
992:
993: \subsection{Static Redirection Policy}
994: \label{sec:staticpolicy}
995: Here we focus on finding a static policy that is asymptotically optimal and at the same time the overhead is low (no %%@
996: runtime computation to select the server).
997:
998: \noindent
999: {\it Definition:} We say that a routing policy is {\it static} if a particular surrogate server is always responsible %%@
1000: to serve
1001: requests originating from a particular end user independent of the state of the system.
1002:
1003: The key idea of the proposed policy is distributing the common area among the participating servers in such a way %%@
1004: that
1005: the total throughput is maximized as well as the load is balanced among the surrogate servers as much as possible. We %%@
1006: calculate the proportions of each
1007: common area to be assigned to a participating server when the system is at empty state.
1008:
1009: \subsubsection{Optimization Problem and Proposed static policy, $\pi^s$}
1010: Suppose, when the system is at empty state the total number of common areas is $Z$, at empty state total arrival rate %%@
1011: at common area $z$ is $\phi_z=\phi_z(0)$,
1012: at empty state total arrival rate at exclusive area
1013: (i.e., not common with other servers) of
1014: server $S_i$ is $\Phi_i = \Phi_i(0)$ (see Fig.~\ref{fig:commonarea}). Say, our policy assigns $P_{iz}$ portion of %%@
1015: common area $z$ to server $S_i$.
1016: Let, the number of participating servers of common area $z$ is $z_a$ and they are denoted as $i_{z_1}...i_{z_a}$. %%@
1017: Similarly, server $S_i$ participates in
1018: total $i_b$ common areas denoted as $z_{i_1}..z_{i_b}$.
1019: Now, at empty state the total arrival rate for server $S_i$ is $\lambda_i(0)=\Phi_i + %%@
1020: \sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z$.
1021:
1022: Then the optimization problem is
1023: $$\max \sum_{i=1}^m I_i \left(\Phi_i + \sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z\right)$$
1024: subject to
1025: \begin{eqnarray}
1026: \label{eqn:policy}
1027: &0 \leq I_i \leq 1 \;\; \forall i, \nonumber \\
1028: &0 \leq I_i \left(\Phi_i + \sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z\right) \leq \mu_i \;\; \forall i, \nonumber\\
1029: &0 \leq P_{iz}\leq 1 \;\;\;\;\forall i\;\forall z\;,\nonumber\\
1030: &0 \leq \sum_{i=i_{z_1}}^{i_{z_b}} P_{iz} \leq 1 \;\;\;\;\forall z
1031: \end{eqnarray}
1032: Note that, in the optimal solution of the above problem,
1033: if $\lambda_i> \mu_i$, then the value of $I_i$ will be set in such a way that $I_i\lambda_i= \mu_i$,
1034: else if $\lambda_i \leq \mu_i$, the value of $I_i$ will be 1.
1035: Once we have solve above problem and have the values of $P_{iz}$'s then we divide common area
1036: $z$ among the servers such that each server $S_i$ gets $P_{iz}$ portion of the common area.
1037: So server $S_i$ will serve $P_{iz}$ portions of the requests that
1038: originates from common area $z$. Say, this proposed policy is $\pi^s$.
1039:
1040: The optimization problem ensures that
1041: $$\sum_{i=1}^m \min(\lambda_i(0), \mu_i) = \max_{\forall \pi \in \Pi} \sum_{i=1}^m \min(\lambda_i^{\pi}(0), \mu_i)$$ %%@
1042: where
1043: $\lambda_i(0)$ is the request arrival rate at server $S_i$ under our policy $\pi^s$ when the system is at empty %%@
1044: state; $\Pi$ is the set
1045: of all possible policies of distributing the common areas among the servers and $\lambda_i^{\pi}(0)$ is the request %%@
1046: arrival rate at server $S_i$ under
1047: policy $\pi$ when the system is at empty state. We use this information to prove that policy $\pi^s$ is %%@
1048: asymptotically optimal.
1049:
1050: Finally, in the asymptotic analysis of next section, it is shown that any solution of the optimization problem %%@
1051: (\ref{eqn:policy}) is sufficient
1052: to be optimal for a system where the arrival and service rate is close to infinity. However, in most cases, the %%@
1053: optimization problem (\ref{eqn:policy})
1054: has multiple solutions. Now the optimization problem (\ref{eqn:policy1}) can be used to pick the best solution among %%@
1055: those solutions so that
1056: the system performs well even with small arrival and service rate.
1057:
1058: If $\gamma$ denotes the
1059: optimal value of $\sum_{i=1}^m I_i \left(\Phi_i+\sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z\right)$, then the %%@
1060: optimization problem is
1061: $$\min \sum_{z=1}^{Z} \sigma(\lambda_{z_i}/\mu_{z_i})$$
1062: subject to
1063: \begin{eqnarray}
1064: \label{eqn:policy1}
1065: &\sum_{i=1}^m I_i \left(\Phi_i + \sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z\right)=\gamma, \nonumber\\
1066: &0 \leq I_i \leq 1 \;\; \forall i, \nonumber\\
1067: &0 \leq I_i \left(\Phi_i + \sum_{z=z_{i_1}}^{z_{i_b}}P_{iz}\phi_z\right) \leq \mu_i \;\; \forall i, \nonumber\\
1068: &0 \leq P_{iz}\leq 1 \;\;\;\;\forall i\;\forall z\;, \nonumber\\
1069: &0 \leq \sum_{i=i_{z_1}}^{i_{z_b}} P_{iz} \leq 1 \;\;\;\;\forall z
1070: \end{eqnarray}
1071:
1072: This way of solving multiobjective problems sequentially is known as the lexicographical
1073: method ~\cite{Fishburn:1974}~\cite{Szidar:1986}.
1074: Note that, $\sigma(\lambda_{z_i}/\mu_{z_i})$ represents the variance of load (i.e., arrival rate/ service rate)
1075: of the participating servers of common area $z$.
1076:
1077: \subsubsection{Asymptotic Analysis}
1078: Since under our proposed static policy $\pi^s$ the arrival rate in each surrogate server
1079: does not depend on the states of other servers, the analysis can be carried out for
1080: each individual server independently. At first, we analyze the case of a single server CDN
1081: and then extend it for a multiple server CDN to show that our proposed policy is asymptotically
1082: optimal i.e., ratio of the throughput of the proposed policy and the upper bound of the throughput
1083: under any policy converges to 1 when the arrival rate and the service rate of the system goes to infinity.
1084:
1085: \noindent
1086: {\em Throughput for a Single Server CDN}
1087:
1088: Consider a CDN consisting of one server which has exponential service rate $\mu$ and the exponential
1089: arrival rate at state $n$ is $\lambda(n)=\frac{\lambda}{{\cal A}} \pi \left(\psi-\frac{n+1}{\mu} \right)^2,$
1090: where $\frac{\lambda}{{\cal A}}$ is the state independent arrival rate per unit area and $\left(\psi-\frac{n+1}{\mu} %%@
1091: \right)$
1092: denotes the radius of the circular area covered by the server when there are
1093: $n$ requests in the server. So this system can be viewed as a special $M/M/1$ queue where exponential arrival rate %%@
1094: varies with the
1095: change of system state. State diagram for the system is shown in Fig.~\ref{fig:singlestate}.
1096:
1097: \begin{figure}
1098: \input{singlestate.pstex_t}
1099: \caption{State diagram for a single server CDN.}
1100: \label{fig:singlestate}
1101: \end{figure}
1102:
1103: We are interested in finding the throughput of such a CDN. Following lemma gives the exact value of the throughput.
1104: \begin{lemma}
1105: \label{lem:singlecdnthroughput}
1106: The throughput of the single server CDN is
1107: $$J_1=\mu\left(1- \frac{1}{1+ \sum_{n=1}^{\lceil \psi\mu-1 \rceil} \prod_{l=0}^{n-1} \frac{\lambda(l)}{\mu}}\right)$$
1108: \end{lemma}
1109: \begin{proof}
1110: Let $p_n$ be the probability that the system is at state $n$. Since the total number of states is finite (i.e. %%@
1111: $n_{max} = \lceil \psi\mu-1 \rceil $), the system is stable.
1112: So over a long period of time, the number of transitions from any state $n$ to state $n+1$ equals the number of %%@
1113: transitions from state $n+1$ to state $n$.
1114: Thus we obtain the balance equations
1115: $$p_n \lambda(n) = p_{n+1} \mu \;\;\; \text{for each } (\lceil \psi\mu-1 \rceil) > n \geq 0.$$
1116: So, we have, $$p_1= \frac{\lambda(0)}{\mu} p_0,$$
1117: $$p_2= \frac{\lambda(1)}{\mu} p_1= p_0 \frac{\lambda(1)}{\mu} \frac{\lambda(0)}{\mu},$$
1118: and in general,
1119: $$p_n= \frac{\lambda(1)}{\mu} p_{n-1}= p_0\prod_{l=0}^{n-1} \frac{\lambda(l)}{\mu}.$$
1120:
1121: Since summation of the probabilities of all states is 1, we have
1122: $$\sum_{n=0}^{\lceil \psi\mu-1 \rceil} p_n =1.$$
1123: Putting the values of $p_n$, we have
1124: $$p_0 + \sum_{n=1}^{\lceil \psi\mu-1 \rceil} p_0\prod_{l=0}^{n-1} \frac{\lambda(l)}{\mu} =1.$$
1125:
1126: Solving for $p_0$, we get
1127: $$p_0 = \frac{1}{1+ \sum_{n=1}^{\lceil \psi\mu-1 \rceil} \prod_{l=0}^{n-1} \frac{\lambda(l)}{\mu}}.$$
1128:
1129: So the throughput is $$\mu(1-p_0)=\mu\left(1- \frac{1}{1+ \sum_{n=1}^{\lceil \psi\mu-1 \rceil} \prod_{l=0}^{n-1} %%@
1130: \frac{\lambda(l)}{\mu}}\right).$$
1131: \end{proof}
1132:
1133: Now we use this result to do asymptotic analysis of the throughput of a single server CDN.
1134:
1135: \noindent
1136: {\em Asymptotic Analysis for a Single Server CDN}
1137:
1138: For asymptotic analysis, we scale the system through a proportional increase in arrival rate and service rate. More %%@
1139: specifically,
1140: let $c \geq1$ be a scaling factor. The scaled system has arrival rate $\lambda^c=c\lambda$ and the service rate %%@
1141: $\mu^c = c\mu$.
1142: Note that other parameters, total network area ${\cal A}$ and maximum allowed user latency $\psi$ are held fixed.
1143: We will use a superscript $c$ to denote various quantities of interest for
1144: the scaled system.
1145:
1146: At first, we would like to find an upper bound for the throughput for the single server.
1147: \begin{lemma}
1148: The upper bound for the throughput of a single server CDN is $$J_{ub}^c= \min(\lambda^c(0), \mu^c),$$
1149: where $\lambda^c(n)$ denote the arrival rate when number of requests at the server is $n$ and
1150: $\mu^c$ is the service rate.
1151: \end{lemma}
1152: \begin{proof}
1153: Since for all $n$, $\lambda^c(0) \geq \lambda^c(n)$, maximum arrival rate is $\lambda^c(0)$. Again, the server can %%@
1154: never serve at a rate faster than $\mu^c$. So clearly the
1155: throughput is bounded by $\min(\lambda^c(0), \mu^c).$
1156: \end{proof}
1157:
1158: Following lemma shows that the actual throughput of a very large system converges to this upper bound. It is easily %%@
1159: seen that the upper bound $J_{ub}^c$ and actual
1160: throughput $J_1^c$ will increase roughly linearly with $c$, and for this reason, a meaningful comparison should first %%@
1161: divide such quantities by $c$, as in the result
1162: that follows.
1163: \begin{lemma}
1164: \label{lem:asympss}
1165: For the single server CDN, $$\lim_{c \rightarrow \infty} \frac{1}{c}J_1^c =\lim_{c \rightarrow \infty} %%@
1166: \frac{1}{c}J_{ub}^c,$$ where $J_1^c$ is the actual throughput of the scaled system and
1167: $J_{ub}^c=\min(\lambda^c(0), \mu^c).$
1168: \end{lemma}
1169: \begin{proof}
1170: Fix some $\epsilon>0$ and let us consider a system with arrival rate $\lambda_{\epsilon}^c(0)=\lambda^c(0)+\epsilon$ %%@
1171: and other parameters $\mu^c, {\cal A}, \psi$ are kept same. Let
1172: $J_{1\epsilon}^c$ be the resulting actual throughput. Clearly, for every $n$, $\lambda_{\epsilon}^c(n) \geq %%@
1173: \lambda^c(n).$
1174: Now the probability of the empty state for this system is
1175: \begin{equation}
1176: \label{eqn:proempty1}
1177: p_{0\epsilon}^c = \frac{1}{1+ \sum_{n=1}^{c\mu \psi-1} \prod_{l=0}^{n-1} \frac{\lambda_{\epsilon}^c(l)}{\mu^c}}
1178: \end{equation}
1179: Since
1180: $$\frac{\frac{\lambda^c(n)}{\mu^c}}{\frac{\lambda^c(0)}{\mu^c}}= \frac{\lambda^c(n)}{\lambda^c(0)}=\frac{(\psi - %%@
1181: \frac{n+1}{c\mu})^2}{(\psi - \frac{1}{c\mu})^2}=\left(1- \frac{n}{c\mu \psi -1}\right)^2,$$
1182: we have,
1183: $$\frac{\lambda_{\epsilon}^c(n)}{\mu^c} \geq \frac{\lambda^c(n)}{\mu^c} = \left(1- \frac{n}{c\mu \psi -1}\right)^2 %%@
1184: \frac{\lambda^c(0)}{\mu^c}$$
1185: So, for any finite constant ${\cal C}$,
1186: $\lim_{c \rightarrow \infty} \frac{\lambda_{\epsilon}^c({\cal C})}{\mu^c} \geq \lim_{c \rightarrow \infty} %%@
1187: \frac{\lambda^c(0)}{\mu^c}$
1188: and then from (\ref{eqn:proempty1}), we have,
1189: \begin{eqnarray}
1190: \label{eqn:asympsingle}
1191: p_{0\epsilon}^c &\leq& \frac{1}{1+ \sum_{n=1}^{\cal C} \left({\frac{\lambda^c(0)}{\mu^c}}\right)^n + \sum_{n={\cal %%@
1192: C}+1}^{c\mu \psi-1} \prod_{l=0}^{n-1} \frac{\lambda_{\epsilon}^c(l)}{\mu^c}}\nonumber\\
1193: &\leq& \frac{1}{1+ \sum_{n=1}^{\cal{C}} \left({\frac{\lambda^c(0)}{\mu^c}}\right)^n}
1194: \end{eqnarray}
1195:
1196: Now, the arrival rate at empty state of the scaled system can be greater than, equal to or less than the service %%@
1197: rate. We prove the lemma separately for those cases.
1198:
1199: \noindent
1200: {\em Case 1: $\lambda^c(0) < \mu^c$}
1201:
1202: From (\ref{eqn:asympsingle}) we have,
1203: \begin{eqnarray}
1204: \lim_{c\rightarrow \infty} p_{0\epsilon}^c &\leq& \frac{1}{1+ \frac{\frac{\lambda^c(0)}{\mu^c}\left(1 - %%@
1205: \left(\frac{\lambda^c(0)}{\mu^c}\right)^{\cal{C}}\right)}{1-\frac{\lambda^c(0)}{\mu^c}}}\nonumber\\
1206: &=& \frac{1-\frac{\lambda^c(0)}{\mu^c}}{1 -\left(\frac{\lambda^c(0)}{\mu^c}\right)^{{\cal{C}}+1}}.\nonumber
1207: \end{eqnarray}
1208: When $c\rightarrow\infty$, we are free to choose an arbitrarily large value for $\cal{C}$, then the value of
1209: $\left(\frac{1-\frac{\lambda^c(0)}{\mu^c}}{1 -\left(\frac{\lambda^c(0)}{\mu^c}\right)^{{\cal{C}}+1}}\right)$ will %%@
1210: converges to $\left(1-\frac{\lambda^c(0)}{\mu^c}\right)$ and
1211: then we have,
1212: $$\lim_{c\rightarrow \infty} p_{0\epsilon}^c \leq \left(1-\frac{\lambda^c(0)}{\mu^c}\right).$$
1213:
1214: So
1215: \begin{equation}
1216: \label{eqn:singlethrou1}
1217: \lim_{c \rightarrow \infty} \frac{1}{c} J_{1\epsilon}^c=\lim_{c \rightarrow \infty} \frac{1}{c} %%@
1218: \mu^c(1-p_{0\epsilon}^c) \geq \lim_{c \rightarrow \infty} \frac{1}{c} \lambda^c(0)
1219: \end{equation}
1220:
1221: Again, since for all $n$, $\frac{\lambda_{\epsilon}^c(0)}{\mu^c} \geq \frac{\lambda_{\epsilon}^c(n)}{\mu^c}$, we have
1222: $\lim_{c\rightarrow \infty} p_{0\epsilon}^c \geq \frac{1}{1+ \sum_{n=1}^{\infty} %%@
1223: \left({\frac{\lambda_{\epsilon}^c(0)}{\mu^c}}\right)^n}$, which implies,
1224: $$\lim_{c\rightarrow \infty} p_0^c \geq \left(1-\frac{\lambda_{\epsilon}^c(0)}{\mu^c}\right).$$
1225:
1226: So
1227: \begin{equation}
1228: \label{eqn:singlethrou2}
1229: \lim_{c \rightarrow \infty} \frac{1}{c} J_{1\epsilon}^c=\lim_{c \rightarrow \infty} \frac{1}{c} %%@
1230: \mu^c(1-p_{0\epsilon}^c) \leq \lim_{c \rightarrow \infty} \frac{1}{c} \lambda_{\epsilon}^c(0)
1231: \end{equation}
1232:
1233: This is true for any positive $\epsilon$. We now let $\epsilon$ go to zero in which case $\lim_{c \rightarrow \infty} %%@
1234: \frac{1}{c} \lambda_{\epsilon}^c(0)$ tends to
1235: $\lim_{c \rightarrow \infty} \frac{1}{c} \lambda^c(0)$, and from (\ref{eqn:singlethrou1}) and %%@
1236: (\ref{eqn:singlethrou2}), we have
1237: $$\lim_{c \rightarrow \infty} \frac{1}{c} J_{1}^c =\lim_{c \rightarrow \infty} \frac{1}{c} \lambda^c(0) = \lim_{c %%@
1238: \rightarrow \infty} \frac{1}{c} J_{ub}^c.$$
1239:
1240:
1241: \noindent
1242: {\em Case 2: $\lambda^c(0) \geq \mu^c$}
1243:
1244: When $\frac{\lambda^c(0)}{\mu^c} \geq 1$ and the value for ${\cal C}$ is arbitrarily large, $\left(\frac{1}{1+ %%@
1245: \sum_{n=1}^{\cal{C}} \left({\frac{\lambda^c(0)}{\mu^c}}\right)^n}\right)$
1246: converges to zero. Since
1247: when $c\rightarrow\infty$, we are free to choose an arbitrarily large value for ${\cal C}$ and
1248: probability can not be negative,
1249: from (\ref{eqn:asympsingle}) we have, $$\lim_{c\rightarrow \infty} p_{0\epsilon}^c=0.$$
1250:
1251: This is true for any positive $\epsilon$. We now let $\epsilon$ go to zero in which case $\lim_{c \rightarrow \infty} %%@
1252: \frac{1}{c} p_{0\epsilon}^c$ tends to
1253: $\lim_{c \rightarrow \infty} \frac{1}{c} p_0^c$,
1254: and we have,
1255: $$\lim_{c \rightarrow \infty} \frac{1}{c} J_{1}^c =\lim_{c \rightarrow \infty} \frac{1}{c} \mu^c = \lim_{c %%@
1256: \rightarrow \infty} \frac{1}{c} J_{ub}^c.$$
1257: \end{proof}
1258:
1259: Although it seems that $c\rightarrow \infty$ is not practically feasible, a very good approximation is achieved for %%@
1260: fairly small values of $c$ (see
1261: Table~\ref{table:singlebiglam},~\ref{table:single},~\ref{table:sin%%@
1262: glesmalllam}).
1263:
1264: \noindent
1265: {\em Asymptotic Analysis for Multiple Server CDN under Static Policy, $\pi^s$}
1266:
1267: For the multiple server case we scale the system in the same way like the asymptotic analysis for single server CDN. %%@
1268: Let, ${\cal J}_s^c$ be the actual
1269: throughput of our static policy $\pi^s$ in the scaled system and ${\cal J}_{ub}^c$ be the upper bound of the %%@
1270: throughput under any policy.
1271:
1272: To assess the degree of suboptimality of our policy, we develop an upper bound of throughput for the multiple server %%@
1273: CDN
1274: under any policy.
1275:
1276: \begin{lemma}
1277: \label{lem:throughmul}
1278: For multiple server CDN, upper bound of throughput is
1279: $${\cal J}_{ub}^c = \sum_{i=1}^m \min\left( \lambda_i^c(0), \mu_i^c \right)$$
1280: where
1281: $\lambda_i^c(0)$ is the maximum available arrival rate for surrogate server $S_i$ at empty state after distributing
1282: the arrival rates in the common areas among the servers in such a way that $\sum_{i=1}^m \min\left( \lambda_i^c(0), %%@
1283: \mu_i^c \right)$ is maximized.
1284: \end{lemma}
1285: \begin{proof}
1286: Since any server can not serve at a rate higher than its service rate,
1287: the upper bound of the throughput is actually the minimum of the service rate and the arrival rate.
1288: The area covered by a server is maximum when it is idle (i.e., no outstanding request). So, when the system is at %%@
1289: empty state, total
1290: arrival rate is maximum. Now distributing the arrivals in the common area in such a way that maximizes the term
1291: $\sum_{i=1}^m \min\left( \lambda_i^c(0), \mu_i^c \right)$, where $\lambda_i^c(0)$ is the total arrival rate at server %%@
1292: $S_i$ after distribution, ensures that
1293: each server has maximum available arrival rate. Hence, the upper bound is determined by summation of the minimum of %%@
1294: this arrival rate and the service rate
1295: of each server.
1296: \end{proof}
1297:
1298: Following theorem shows that for very large system our policy actually achieve this upper bound.
1299: \begin{theorem}
1300: If ${\cal J}_s^c$ is the actual throughput of policy $\pi^s$ and ${\cal J}_{ub}^c$ is the upper bound of the %%@
1301: throughput under any policy, then
1302: $$\lim_{c \rightarrow \infty} \frac{1}{c}{\cal J}_s^c =\lim_{c \rightarrow \infty} \frac{1}{c}{\cal J}_{ub}^c.$$
1303: \end{theorem}
1304:
1305: \begin{proof}
1306: Since under policy $\pi^s$, each user is mapped to one and only surrogate server, the system will behave like $m$ %%@
1307: independent single server CDNs. So we can carry out the analysis
1308: for each server independently without taking into account the state of other servers. Let ${\cal J}_i^c$ be the %%@
1309: throughput of server $S_i$. Then we have,
1310: $${\cal J}_s^c=\sum_{i=1}^m {\cal J}_i^c.$$
1311:
1312: In multiple server case, for any server $S_i$, the arrival rate may be less than the arrival rate in the total %%@
1313: circular area encompassed by its radius due to sharing of
1314: common areas with other servers. Suppose, when the server $S_i$ is at empty state the size
1315: of the area inside its circle that is given to other servers is $a_{i,0}^c$ and when the server is at state $n$ the %%@
1316: size of the area inside its circle that is given to other servers is $a_{i,n}^c$.
1317:
1318: Fix some $\epsilon > 0$ and let us consider a system where the arrival rate in the whole network ${\cal A}$ is %%@
1319: $\lambda_{\epsilon}^c = \lambda^c +\epsilon$ and other parameters
1320: $\mu_i^c, {\cal A}, \psi$ are same as those of the original system. Due to uniform distribution of end users
1321: in the whole network, at empty state arrival rate for any server would be $\lambda_{i\epsilon}^c(0)=\lambda_{i}^c(0) %%@
1322: +\epsilon_i$ where $\epsilon_i \leq \epsilon$. Clearly for every $n$,
1323: $\lambda_{i\epsilon}^c(n) \geq \lambda_{i}^c(n)$.
1324:
1325: Since,
1326: $$\frac{\frac{\lambda_i^c(n)}{\mu_i^c}}{\frac{\lambda_i^c(0)}{\mu_%%@
1327: i^c}}= \frac{\lambda_i^c(n)}{\lambda_i^c(0)}=\frac{(\psi - \frac{n+1}{c\mu})^2 - a_{i,n}^c}{(\psi - %%@
1328: \frac{1}{c\mu_i})^2 -a_{i,0}^c},$$
1329: we have,
1330: $$\frac{\lambda_{i\epsilon}^c(n)}{\mu_i^c} \geq \frac{\lambda_i^c(n)}{\mu_i^c} = \left(\frac{(\psi - %%@
1331: \frac{n+1}{c\mu})^2 - a_{i,n}^c}{(\psi - \frac{1}{c\mu})^2 -a_{i,0}^c}\right) \frac{\lambda^c(0)}{\mu^c}$$
1332:
1333: Clearly $a_{i,0}^c \geq a_{i,n}^c \geq 0$ and $(\psi - \frac{1}{c\mu_i})^2- (\psi - \frac{n+1}{c\mu_i})^2 \geq %%@
1334: \frac{(a_{i,0}^c-a_{i,n}^c )}{\pi}$. So when $c\mu_i \gg n$, $(\psi - \frac{1}{c\mu_i})^2 \approx
1335: (\psi - \frac{n+1}{c\mu_i})^2$ and $a_{i,0}^c \approx a_{i,n}^c$. So, for any finite constant ${\cal C},$
1336: $\lim_{c \rightarrow \infty} \frac{(\psi - \frac{{\cal C}+1}{c\mu})^2 - a_{i,{\cal C}}^c}{(\psi - \frac{1}{c\mu})^2 %%@
1337: -a_{i,0}^c}$ converges to 1.
1338: So, for any finite constant ${\cal C}$,
1339: $$\lim_{c \rightarrow \infty} \frac{\lambda_{i\epsilon}^c(n)}{\mu_i^c} \geq \frac{\lambda^c(0)}{\mu^c}.$$
1340:
1341: Now using exactly the same technique of Lemma~\ref{lem:asympss}, we have,
1342: $$\lim_{c \rightarrow \infty} \frac{1}{c} {\cal J}_i^c = \lim_{c \rightarrow \infty} \frac{1}{c} %%@
1343: \min\left({\lambda_i^c(0), \mu_i}\right).$$
1344:
1345: Then,
1346: $$\lim_{c \rightarrow \infty} \frac{1}{c} {\cal J}_s^c = \lim_{c \rightarrow \infty} \frac{1}{c} \sum_{i=1}^m {\cal %%@
1347: J}_i^c= \lim_{c \rightarrow \infty} \frac{1}{c} \sum_{i=1}^m \min\left({\lambda_i^c(0), \mu_i}\right)$$
1348:
1349: But, by Lemma~\ref{lem:throughmul}, we have
1350: $${\cal J}_{ub}^c = \sum_{i=1}^m \min\left( \lambda_i^c(0), \mu_i^c \right)$$
1351: So, we have,
1352: $$\lim_{c \rightarrow \infty} \frac{1}{c} {\cal J}_s^c = \lim_{c \rightarrow \infty} \frac{1}{c} {\cal J}_{ub}^c.$$
1353: \end{proof}
1354:
1355: The result of above theorem shows that our static policy $\pi^s$ has asymptotically optimal throughput and thus %%@
1356: generate maximum revenue for very large system.
1357:
1358:
1359: \subsection{Numerical Results}
1360:
1361: In this section, we present some numerical results from MATLAB simulation that show that actual throughput converges %%@
1362: to the upper bound of the throughput when the system is large.
1363: We check the throughput for all three possible cases where arrival rate is greater than, equal to and less than the %%@
1364: service rate for a single server case.
1365: % empty state arrival rate higher than service rate
1366: \begin{table}[h]
1367: \begin{center}
1368: \caption{Single server CDN with $\lambda(0)>\mu$; $\psi=1000$, $\lambda(0)=1.05$, $\mu=1$.}
1369: \label{table:singlebiglam}
1370: \begin{tabular}{|c|c|c|c|c|}
1371: \hline
1372: $\text{Scaling factor,} c$ & Throughput & Upper Bound & $\frac{\text{Throughput }}{\text{Upper bound}}$\\ \hline
1373: 1 & 0.988756 & 1.000000 & 0.988756 \\
1374: 2 & 1.991859 & 2.000000 & 0.995930 \\
1375: 3 & 2.994649 & 3.000000 & 0.998216 \\
1376: 4 & 3.996626 & 4.000000 & 0.999156 \\
1377: 5 & 4.997924 & 5.000000 & 0.999585 \\
1378: 6 & 5.998744 & 6.000000 & 0.999791 \\
1379: 7 & 6.999250 & 7.000000 & 0.999893 \\
1380: 8 & 7.999556 & 8.000000 & 0.999944 \\
1381: 9 & 8.999739 & 9.000000 & 0.999971 \\
1382: 10 & 9.999848 & 10.000000 & 0.999985 \\
1383: 11 & 10.999911 & 11.000000 & 0.999992 \\
1384: 12 & 11.999949 & 12.000000 & 0.999996 \\
1385: 13 & 12.999970 & 13.000000 & 0.999998 \\
1386: 14 & 13.999983 & 14.000000 & 0.999999 \\
1387: 15 & 14.999990 & 15.000000 & 0.999999 \\
1388: 16 & 15.999994 & 16.000000 & 1.000000 \\
1389: \hline
1390: \end{tabular}
1391: \end{center}
1392: \end{table}
1393:
1394: \begin{table}[h]
1395: \begin{center}
1396: \caption{Single server CDN with $\lambda(0)=\mu$; $\psi=1000$, $\lambda(0)=1$ and $\mu=1$.}
1397: \label{table:single}
1398: \begin{tabular}{|c|c|c|c|}
1399: \hline
1400: $\text{Scaling factor,} c$& Throughput & Upper Bound & $\frac{\text{Throughput }}{\text{Upper bound}}$\\ \hline
1401: 1 & 0.9653 & 1 & 0.964094 \\
1402: 2 & 1.9506 & 2 & 0.974659\\
1403: 5 & 4.9213 & 5 & 0.983999 \\
1404: 10 & 9.8882 & 10 & 0.988695\\
1405: 20 & 19.8415 & 20 & 0.992010 \\
1406: 50 & 49.7487 & 50 & 0.994949\\
1407: 100 & 99.6442 & 100 & 0.996430\\
1408: 200 & 199.4964 & 200 & 0.997476\\
1409: 2000 & 1.9986e+03 & 2000 & 0.999311\\
1410: 20000 & 1.9995e+04 & 20000 & 0.999748 \\
1411: 200000 & 1.9998e+05 & 200000 & 0.999920\\
1412: 2000000 & 1.9999e+06 & 2000000 & 0.999975\\
1413: \hline
1414: \end{tabular}
1415: \end{center}
1416: \end{table}
1417:
1418:
1419: \begin{table}[h]
1420: \begin{center}
1421: \caption{Single server CDN with $\lambda(0)<\mu$; $\psi=1000$, $\lambda(0)=0.8$ and $\mu=1$.}
1422: \label{table:singlesmalllam}
1423: \begin{tabular}{|c|c|c|c|}
1424: \hline
1425: $\text{Scaling factor,} c$& Throughput & Upper Bound & $\frac{\text{Throughput}}{\text{Upper bound}}$\\ \hline
1426: 1 & 0.794054 & 0.800000 & 0.992567 \\
1427: 100& 79.993605 & 80.000000 & 0.999920 \\
1428: 200& 159.993603 & 160.000000 & 0.999960 \\
1429: 300 & 239.993602 & 240.000000 & 0.999973 \\
1430: 400& 319.993601 & 320.000000 & 0.999980 \\
1431: 500 & 399.993601 & 400.000000 & 0.999984 \\
1432: 600 & 479.993601 & 480.000000 & 0.999987 \\
1433: 700 & 559.993601 & 560.000000 & 0.999989 \\
1434: 800 & 639.993601 & 640.000000 & 0.999990 \\
1435: 900 & 719.993601 & 720.000000 & 0.999991 \\
1436: 1000 & 799.993601 & 800.000000 & 0.999992 \\
1437: \hline
1438: \end{tabular}
1439: \end{center}
1440: \end{table}
1441: Table~\ref{table:singlebiglam}, Table~\ref{table:single} and Table~\ref{table:singlesmalllam} show the cases where %%@
1442: the arrival rate at empty state is slightly greater than, equal to and slightly less than the service rate, %%@
1443: respectively. In all cases, for sufficiently large value of the scaling factor $c$, the throughput of the server %%@
1444: converges to the upper bound of the throughput. This result establishes our result that for a large system, the %%@
1445: throughput of a server equals the minimum of arrival rate at empty state and service rate. Note that, when the system %%@
1446: is not at empty state, the arrival rate is actually lower than the arrival rate of empty state. So, this result is %%@
1447: counterintuitive and this insight builds the foundation of our static request routing policy. Our routing policy %%@
1448: chooses the surrogate server for a request by solving the optimization problem where the objective is to maximize the %%@
1449: summation of the minimum of arrival rate at empty state and service rate for each of the servers of the CDN. As a %%@
1450: result, our policy achieves the upperbound of throughput for large system and so, it is asymptotically optimal for %%@
1451: multiple server CDN.
1452:
1453:
1454:
1455: \section{Conclusions}
1456: \label{sec:conclusion}
1457: We look at the big picture of content delivery network. Web based commercial CDNs compete with each other
1458: to grab the market share. The goal of the CEO is to maximize profit whereas the
1459: design engineer looks at the system performance. We try to incorporate this two perspectives in one single framework %%@
1460: and figure out
1461: which design methodology maximizes monetary benefit.
1462: In our analysis of competition, we find that economy of scale effect is very significant here. So peering agreement %%@
1463: among smaller CDNs may be a good
1464: idea to increase monetary benefits. Although we have analyzed the competition of CDNs using a model for two and three %%@
1465: CDNs, same techniques can be used to analyze
1466: competition among larger number of CDNs. However, with the increase of the number of CDNs the
1467: analysis becomes more and more tedious. Future works might include analyzing a more general model
1468: having arbitrary number of competing CDNs.
1469:
1470: We also provide a static request routing policy which has been shown as asymptotically optimal. Although our model %%@
1471: is developed in the context of a CDN, it is relevant to a
1472: variety of contexts. For example, our approach can be used to determine the routing policy for
1473: a website that maintains a number
1474: of mirrors in various places of the network and try to serve as many requests as
1475: possible within a fixed user latency.
1476:
1477: %\section*{Acknowledgments}
1478: \bibliographystyle{IEEE}
1479: \bibliography{cdn}
1480: %\appendix
1481: \end{document}
1482:
1483: