### CMO

```Optimizing Cost and Performance for
Content Multihoming
Hongqiang Harry Liu
Ye Wang
Yang Richard Yang
Hao Wang
Chen Tian
Aug. 16, 2012
Yale LANS
Content Multihoming is Widely Used
Content
Publisher
Content Viewers
Yale LANS
Why Content Multihoming:
Performance Diversity
Yale LANS
Why Content Multihoming:
Performance Diversity
Table: The fraction of successful deliveries for objects with streaming
rate of 1Mbps | 2Mbps | 3Mbps.
Diversity in
different areas
Yale LANS
Diversity in different
streaming rates
Why Content Multihoming:
Cost Diversity
Volume in a charging period
Concave Function
MaxCDN
Yale LANS
Amazon CloudFront
Region Based
LiquidWeb
Our Goal
• Design algorithms and protocols for content
publishers to fully take advantage of content
multihoming to optimize
– publisher cost and
– content viewer performance.
Yale LANS
Key Question
• A content object can be delivered from multiple
CDNs, which CDN(s) should a content viewer use?
Yale LANS
Key Challenges
• Online vs statistical CDN performance
– e.g., real-time network congestions or server
• Complex CDN cost functions
– e.g., the cost of assigning one object to CDN(s)
depends on other assignments => coupling
Yale LANS
Our Approach: Two-Level Approach
Efficient Optimal Object
Assignment Algorithm
Guidance from Content
Publishers
Yale LANS
• Motivations
• Global optimization
– Problem definition
– CMO: An efficient optimization algorithm
• Evaluations
Yale LANS
• Motivations
• Global optimization
Problem definition
– CMO: An efficient optimization algorithm
• Evaluations
Yale LANS
Problem Definition:
Network Partition
Location Area a
Global Network
a
a
ti 1
t
ti 2
a5
i
Location Object i
t
a6
i
t
0
t
a7
i
Exclusion
a
ti
Object-i
Yale LANS
0
a3
i
a
ti 4
t
a8
i
Problem Definition:
CDN Statistical Performance
Global Network
99%
i
Target Performance: 90%
80%
a1
i
a2
92%
j
Fk  {i , j }
a1
Yale LANS
a7
CDN-k
a7
Statistical Performance: e.g.,
probability of successful
deliveries in an area
Problem Definition:
Optimization Formulation
Problem Q
Charging function in
region r of CDN-k
m ain
{ xi ,k }
s .t .

k
r
r 
a
a 
C k   xi ,k ti 
 a r

 i , a , ni  0 :  xi ,k  1
a
a
Traffic volume in
charging region-r of
CDN-k
All requests are served
k
 i , k , a , i  Fk : x i , k  0
a
a
Performance constraints
 i, k , a : xi ,k  0
a
a
xi,k
is the fraction of traffic put into CDN-k for location object i a
Yale LANS
Solving Problem Q:
Why not Standard Convex Programming or LP
• To minimize a concave objective function
• Problem scale is too large to be tractable:
– N objects, A locations and K CDNs =>
N*A*K variables, and N*K constraints
– For example, given N=500K, A=200 and K=3 =>
300M variables and 100M constraints
Yale LANS
• Motivations
Global optimization
– Problem definition
CMO: An efficient optimization algorithm
• Evaluations
Yale LANS
Developing the CMO Algorithm: Base
• Problem Q has an optimal solution which assigns
a location object into a single CDN.
• The object assignment problem is still hard:
Assignment Space
Yale LANS
K CDNs and
N location objects
=>
KN assignment
possibilities
CMO Key Idea:
Reduction in the Outcome Space
Assignment Space
Infeasible
Assignments
There are up to K points
with K CDNs and N location
objects
N
Yale LANS
Outcome (CDN Usage) Space
There are only N K R vertices
points, where R is the # of
charging regions (a small #)
Mapping From Object Assignment to
Outcome
Location Objects
v1
Traffic in Area-1
Traffic in Area-2
1
2
v2
1
v2
t1
0
t2
1
0
0
t1
0
t2
1
2
x1,1  1
1
x1,1  1
2
2
x 2 ,2  1
2
x 2 ,1  1
1
CDNs
CDN-1
CDN-2
Traffic in Region-1
t1  t 2
0
Traffic in Region-2
t1
1
1
2
Example assumption: Area-i is in charging Region-i
Yale LANS
2
v1
2
t2
Extensions
• CDN subscription levels (e.g. monthly plan)
– Introducing CDN capacity constraints
• Per-request cost
– Adding a row which indicates the #request in outcome
• Multiple streaming rates
– Considering each video at each encoding rate as an
independent object
Yale LANS
Extension Example: Per-request Cost
Location Objects
v1
Traffic in Area-1
1
2
v2
1
v2
t1
0
t2
1
0
Traffic in Area-2
0
t1
0
t2
#Request
n1
1
2
2
1
1
2
2
1
n1
x1,1  1
n2
n2
x 2 ,2  1
2
x1,1  1
2
x 2 ,1  1
1
CDNs
CDN-1
CDN-2
Traffic in Region-1
t1  t 2
0
Traffic in Region-2
t1
#Request
n1  n1  n 2
1
1
2
2
1
2
t2
1
Example assumption: Area-i is in charging Region-i
Yale LANS
2
v1
2
n2
From Algorithm to System
Long-term scale statistics
Client IP  area
Optimizer
CPDNS
Resolve obj-i.cp.com
CDN1
CloudFront
CNAME
d3ng4btfd31619.cloudfront.net
Passive Client
Yale LANS
CDN2
MaxCDN
Fast-scale fluctuations
• Motivations
• Global optimization
– Problem definition
– CMO: An efficient optimization algorithm
• Evaluations
Yale LANS
Active Clients
Primary CDN
h11
Backup CDN
h12
h21
Yale LANS
Informing Active Client
Manifestation Server
Optimizer
Resolve obj-i.cp.com
CDN1
CloudFront
Request
cp.com/sample.flv
Get CNAME
d3ng4btfd31619.cloudfront.net
Passive Client
Yale LANS
CDN2
MaxCDN
Multiple CDNs with
priorities
Active Client
How to Select Multiple CDNs?
• The same CMO algorithm, where input CDNs are
virtual CDNs (ranked CDN combinations)
• Example: Select 2 CDNs (primary + backup) for an
active client:
– Each pair of CDNs is a “virtual CDN”: k’ = (k, j)
– Fk’ : the set of location objects that CDN k and CDN j
together can achieve performance requirement
• Each with 90% statistics => together > 90%
– Objective function: for each location object ia , primary
CDN k delivers the normal amount of traffic and
backup j incurs backup amount of traffic.
Yale LANS
• QoE protection (feasibility):
– Achieve target QoE through combined available
resources of multiple CDN servers
• Prioritized guidance:
– Utilize the available bandwidth of a higher priority
server before that of a lower priority server
– No redistributing load among same-priority servers
unless it reduces concurrent connections
Yale LANS
Active Clients: Control Diagram
Primary CDN
Backup CDN
h11<R and h12>R
h11
h11>R and h12<R
h11<R and h12<R?
h12>R
h11>R
h12
h11+h12+h21
h11 + h12>R
h11 + h12<R
h11+h12
h11<R and h12<R
h11+ h12>R
Yale LANS
Realizing Control Diagram: Key Ideas
h21
• Controlling the windows
– AIMD
• Using the sliding windows
h12
– Priority assignment
from the server in a period T
h11
Pieces to request in T
Yale LANS
• Motivations
• Global optimization
– Problem definition
– CMO: An efficient optimization algorithm
Evaluations
Yale LANS
CMO Evaluation Setting
• 6-month traces from two VoD sites (CP1 and CP2):
– Video size
– #request in each area (learned from clients’ IP)
• Three CDNs
– Amazon CloudFront
– MaxCDN
– CDN3 (private)
• #request prediction
– Directly using #request last month in each area
• Compare 5 CDN selection strategies:
– Cost-only, Perf-only, Round-robin, Greedy, CMO
Yale LANS
Cost Savings of CMO
Avg Saving: ~35%
compared with Greedy
Yale LANS
Cost Savings of CMO
Avg Saving: ~40%
compared with Greedy
All three CDNs have good performance in US/EU
Yale LANS
Active Client Evaluation Setting
• Clients
– 500+ Planetlab nodes with Firefox 8.0 + Adobe Flash
10.1
• Two CDNs
– Amazon CloudFront
– CDN3
Yale LANS
Active Client Test Cases
• Stress test
– CDN3 as primary; CloudFront as backup
• Two servers in two CDNs: primary1, backup1
• Two servers in the primary CDN: primary1, primary2
– Control primary1’s capacity
• Step-down -> recover
• Ramp-down -> recover
• Oscillation
• Large scale performance test:
– CloudFront as primary, CDN3 as backup
– We saw real performance degradations
Yale LANS
Stress Tests (Step-down)
Different Priority
Step-down
Same Priority
Yale LANS
Recovery
Stress Tests (Ramp-down)
Different Priority
Recovery
Ramp-down
Same Priority
Yale LANS
Stress Tests (Oscillation)
Different Priority
Same Priority
Yale LANS
Active Client QoE Gain (CloudFront + CDN3)
Yale LANS
Yale LANS
Conclusions
• We develop and implement a two-level approach
to optimize cost and performance for content
multihoming:
– CMO: an efficient algorithm to minimize publisher cost
and satisfy statistical performance constraints
– Active client: an online QoE protection algorithm to
follow CMO guidance and locally handle network
Yale LANS
Q&A
Yale LANS
Related Work and Conclusions
• CDN switchers: seamless switch from one CDN to another
– One Pica Image
• CDN Load Balancers: executing traffic split rules among
CDNs
– Cotendo CDN
– Level 3 intelligent traffic management
• CDN Agent: CDN business on top of multiple CDNs
– XDN
– MetaCDN
• CDN Interconnection (CDNi)
– Content multihoming problem still exists in the CDN
delegations.
Yale LANS
Backup Slides
Yale LANS
Searching Extremal Assignments
Space of
V
How to find a proper P ?
P
V
How to enumerate all
possible extremal
assignments?
V *
(1) Separation Lemma: 
(2) Recall: V   v  e  v 
*
is extrem al   P ,     : P , V   V  *
*
0
  is extrem al   P ,     :  P , v  e  v  
*
*
v
v

P , v  e *
v
v
(3) We prove:  is extrem al   P ,  v , k    v  : P , v  e  P , v  e  
(4) With a proper P , we can find an extremal assignment:
• For each object v , there is a unique minimum element in set {
*
*
k
Yale LANS

*
v
P , v  ek |  k }
Picking Proper P
A Proper P:
•  v there is a unique minimum element in set
A special subset of P (S’): all elements in {
 v , k  j : P , v  ek  P , v  e j
{ P , v  ek |  k }
P , v  ek |  k }
are distinct
v1   e k  e j 
 P , v   ek  e j   0
Cell Enumeration of
Hyperplane Arrangements
v2   ek  e j 
P
We prove:
• Each extremal assignment can be found by an element in S’
• Two interior points from the same cell find the same extremal assignment
Conclusion:
• All possible extremal assignments are exhausted by S’.
• The number of extremal assignments is no more than the #cell (polynamial
with #object).
Yale LANS
Realizing Control Diagram: Key Ideas
• Yry (revise next slide) Draw a figure w/
– An active client
– 3 cdn servers
– Label a sliding window to conn. to each CDN
– Say 3 key techniques to control and use the
sliding window: total
Yale LANS
```