Practical, Real-time Centralized Control for CDN-based Live Video Delivery Matt Mukerjee , David Naylor, Junchen Jiang, Dongsu Han, Srini Seshan, Hui Zhang
Live Video is Becoming Wildly Popular • Commercial sports streams • User-generated streams
Live Video is Becoming Wildly Popular • Commercial sports streams • Single World Cup stream = 40% global Internet traffic • User-generated streams (e.g., Twitch) • Users watch 150b min of live video per month • Amazon buys Twitch for ~ $1Billion
Our Contributions • We design a video delivery network ( VDN ) to efficiently manage quality and cost, with high responsiveness Distributed Central Control Optimization Hybrid Control Responsiveness to Quality and cost joins and failures management
Outline Centralized Control Putting it all Problems with Hybrid Together Live Video Today Control Distributed Control
CDN Live Video Delivery Background Legend ◀ Data Control ▶︎ Video Requests: A B Sources Video 1 Video 2 HTTP RESPONSE Responses: Video 1 Reflector Video 2 Clusters C D HTTP GET Edge Clusters E F G Video Requests
CDN Live Video Delivery Background ◀ Data Control ▶︎ Video A B Sources 120 100 100 3K 1K 2K Link Cost Reflector Clusters C D Link Capacity 25 15 DNS 200 20 15 300 750 2K Edge Clusters E F G 1 10 1 0 300 750 700 500 Clients H I J
CDN Live Video Delivery Background ◀ Data Control ▶︎ Video A B Sources 120 100 100 Objective: 3K 1K 2K Link Cost Reflector Maximize service quality Clusters C D Link Capacity 25 15 DNS 200 20 15 300 & 750 2K Edge Clusters E F G Minimize delivery cost 1 10 1 0 300 750 700 500 Clients H I J
Problems with CDNs Today Service Quality Delivery Cost (per request) 8000 Optimal 7000 CDN Avg. Bitrate (Kbps) CDN 2.0x 6000 5000 4000 OPTIMAL 3000 1.0x 2000 1000 0 2 4 6 8 10 # of Videos (Thousands) Simulation using Conviva traces, Simulation using Conviva traces, modeling large sports events modeling user-generated content
Problems with CDNs Today Service Quality Not Fine-Grained 8000 Optimal 7000 CDN Avg. Bitrate (Kbps) 6000 Videos aggregated 5000 4000 into large groups 3000 2000 1000 0 2 4 6 8 10 # of Videos (Thousands) Delivery Cost Slow DNS Updates CDN OPTIMAL Can’t push updates 2.0x 1.0x DNS entries get cached QUANTITATIVE QUALITATIVE
Goals Service Quality Fine-Grained Control 8000 Optimal 7000 CDN Avg. Bitrate (Kbps) 6000 5000 Per-video Control 4000 3000 2000 1000 0 2 4 6 8 10 # of Videos (Thousands) Delivery Cost Real-time Response CDN OPTIMAL Sub-second response 2.0x 1.0x to failures and joins QUANTITATIVE QUALITATIVE Room for improvement, but Internet latency / loss
Goals Service Quality Fine-Grained Control 8000 Optimal 7000 CDN Avg. Bitrate (Kbps) 6000 5000 Per-video Control 4000 3000 2000 Centralization! 1000 0 2 4 6 8 10 # of Videos (Thousands) Delivery Cost Real-time Response [Liu, Xi et. al. A Case for a Coordinated Video Control Plane. SIGCOMM 2012] CDN OPTIMAL Sub-second response 2.0x 1.0x to failures and joins QUANTITATIVE QUALITATIVE Room for improvement, but Internet latency / loss
Outline Centralized Control Putting it all Problems with Hybrid Together Live Video Today Control Distributed Control
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Reflector Link Capacity Clusters C D DNS 200 750 2K 300 Edge Clusters E F G 500 300 700 750 Clients H I J
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Reflector Link Capacity Clusters C D Congestion! DNS 200 750 2K 300 Edge Clusters E F G 500 300 700 750 Clients 300 H I J
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Reflector Link Capacity Clusters C D DNS 200 750 2K 300 Edge Clusters E F G 500 300 700 750 Clients 300 200 H I J
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Needs global view to coordinate Reflector Link Capacity Clusters videos and network resources C D DNS 200 750 2K 300 Edge Clusters E F G 500 300 700 750 Clients 300 200 H I J
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Reflector Link Capacity Clusters C D DNS 200 750 2K 300 Edge Clusters E F G 500 300 700 750 Clients 300 200 H I J
Motivating Centralized Optimization ◀ Data Control ▶︎ Video 300 200 A B Sources 3K 2K 1K Reflector Link Capacity Clusters C D Central 200 750 2K 300 Controller Edge Clusters E F G 500 300 700 750 Clients 300 200 H I J
Solving Centralized Optimization SERVICE QUALITY MAXIMIZE DELIVERY COST MINIMIZE DON’T EXCEED LINK CAPACITY SUBJECT TO SENDER MUST HAVE RECEIVED VIDEO
Solving Centralized Optimization SERVICE QUALITY max w s · P max l ∈ L AS , o ∈ O Priority o · Request l , o · Serves l , o l ∈ L , o ∈ O Cost( l ) · Bitrate( o ) · Serves l , o w c · P − − P P DELIVERY COST subject to: · P · P · · − − l ∈ L , o ∈ O l , o ∈ subject to: subject to: ∀ l ∈ L , o ∈ O : Serves l , o ∈ { 0 , 1 } ∀ ∈ ∈ ∀ ∈ ∈ ∈ { } DON’T EXCEED LINK CAPACITY P : P o Bitrate( o ) · Serves l , o ≤ Capacity( l ) ∀ l ∈ L ∀ l ∈ L , o ∈ O : P l 0 ∈ InLinks( l ) Serves l 0 , o ≥ Serves l , o SENDER MUST HAVE RECEIVED VIDEO
Flexibility of Centralized Optimization ◀ Data Control ▶︎ Video 800 A B Sources 1 1 1 2K 2K 2K Link Cost ? Reflector Clusters C D Link Capacity 1 1 Central 2K 1 1 2K Controller 2K 1K Edge Clusters E F G 1 10 1 1 800 1K 800 1K Clients 800 800 H I J
Flexibility of Centralized Optimization ◀ Data Control ▶︎ Video 100 1 800 900 A B Sources 1 1 1 2K 2K 2K Link Cost Reflector Clusters C D Link Capacity 1 1 Central 2K 1 1 2K Controller Video Priority 2K 1K Edge Clusters E F G 1 10 1 1 800 1K 800 1K Clients 800 800 H I J 900
Centralized Optimization Service Quality Delivery Cost (per request) 8000 Optimal 7000 CDN Avg. Bitrate (Kbps) CDN 2.0x 6000 5000 4000 OPTIMAL 3000 1.0x 2000 1000 0 2 4 6 8 10 # of Videos (Thousands) Simulation using Conviva traces, Simulation using Conviva traces, modeling large sports events modeling user-generated content
Centralized Optimization Service Quality Delivery Cost (per request) 8000 VDN 7000 CDN Avg. Bitrate (Kbps) CDN 2.0x 6000 5000 4000 VDN 3000 1.0x 2000 1000 0 2 4 6 8 10 # of Videos (Thousands) Simulation using Conviva traces, Simulation using Conviva traces, modeling large sports events modeling user-generated content
Unfortunately… No Free Lunch Light Load Med. Load Hvy. Load 25 Fully Centralized Join Time (Seconds) 20 15 10 5 Slow join times! 0 0 50 100 150 200 # of videos Experiments on EC2 nodes with a centralized controller at CMU across the Internet
Problems with Centralization Legend ◀ Data Control ▶︎ Video Data Requests: 800 A B Sources Video 1 HIGH LATENCY Control Traffic: Video 1 Reflector Clusters C D HIGH LATENCY Central Controller Edge Clusters E F G The Internet Clients H I J
Outline Slow join times Centralized Control Putting it all Problems with Hybrid Together Live Video Today Control Distributed Control
Alternate Approach: Distributed Legend ◀ Data Control ▶︎ Video Data Requests: 800 A B Sources Video 1 1K 1K Responses: 3K 2K Video 1 Reflector Link Capacity Clusters C D Central 200 2K 800 800 Controller ? Edge Clusters E F G 500 300 700 750 Clients H I J 800
Alternate Approach: Distributed Legend ◀ Data Control ▶︎ Video Data Requests: 800 A B Sources Video 1 1K 1K Responses: 3K 2K Video 1 Build “distance-to-video” tables Reflector Link Capacity Clusters C D at each cluster, for each video Central 200 2K 2K 800 Controller ? Edge Clusters E F G 500 300 700 750 Clients H I J 800
Alternate Approach: Distributed Legend ◀ Data Control ▶︎ Video Data Requests: 800 A B Sources Video 1 1K 1K Responses: 3K 2K Video 1 1; (B, 2K) Reflector Link Capacity Clusters C D Central 200 2K 800 800 Controller ? Edge DISTANCE AT CLUSTER F Clusters VIDEO 1: E F G 500 300 700 750 Clients H I J 800
Alternate Approach: Distributed Legend ◀ Data Control ▶︎ Video Data Requests: 800 A B Sources Video 1 1K 1K Responses: 3K 2K Video 1 1; (B, 2K) Reflector Link Capacity Clusters C D Central 200 2K 800 800 Controller ? Edge DISTANCE AT CLUSTER F Clusters VIDEO 1: VIA C: 2; (B, 1K) E F G 500 300 700 750 Clients PATH BOTTLENECK H I J # OF HOPS TO VIDEO 800
Recommend
More recommend